From 79e798e1651104d7e6556838e5077fa51db384fe Mon Sep 17 00:00:00 2001 From: =?utf8?q?Oto=20=C5=A0=C5=A5=C3=A1va?= Date: Fri, 3 May 2024 10:05:01 +0200 Subject: [PATCH] RTD placeholder --- .clang-tidy | 11 - .dir-locals.el | 10 - .gitattributes | 2 - .github/workflows/macOS.yaml | 52 - .gitignore | 85 +- .gitlab-ci.yml | 767 - .gitmodules | 9 - .luacheckrc | 99 - .mailmap | 58 - .readthedocs.yaml | 8 +- AUTHORS | 90 - CONTRIBUTING.md | 19 - COPYING | 695 - CodingStyle | 5 - Dockerfile | 55 - NEWS | 1469 - README.md | 73 - bench/bench_lru.c | 242 - bench/bench_lru_set1.tsv | 65536 ---------------- bench/meson.build | 24 - ci/deckard_commit_check.sh | 13 - ci/fix-meson-junit.sh | 5 - ci/gh_actions.py | 59 - ci/images/README.md | 54 - ci/images/build.sh | 23 - ci/images/debian-11-coverity/Dockerfile | 43 - ci/images/debian-11/Dockerfile | 146 - ci/images/debian-12/Dockerfile | 149 - ci/images/debian-buster/Dockerfile | 146 - ci/images/manager/Dockerfile | 21 - ci/images/push.sh | 8 - ci/images/update.sh | 22 - ci/images/vars.sh | 13 - ci/no_assert_check.sh | 3 - ci/pkgtest.yaml | 240 - ci/respdiff/kresd.config | 26 - ci/respdiff/respdiff-tcp.conf | 52 - ci/respdiff/respdiff-tls.conf | 52 - ci/respdiff/respdiff-udp.conf | 52 - ci/respdiff/restart-bind.sh | 3 - ci/respdiff/restart-kresd.sh | 12 - ci/respdiff/restart-unbound.sh | 4 - ci/respdiff/run-respdiff-tests.sh | 27 - ci/respdiff/start-resolvers.sh | 13 - contrib/base32hex.c | 277 - contrib/base32hex.h | 60 - contrib/base32hex.spdx | 10 - contrib/base64.c | 260 - contrib/base64.h | 95 - contrib/base64.spdx | 10 - contrib/base64url.c | 287 - contrib/base64url.h | 103 - contrib/ccan/asprintf/LICENSE | 1 - contrib/ccan/asprintf/asprintf.c | 57 - contrib/ccan/asprintf/asprintf.h | 51 - contrib/ccan/asprintf/asprintf.spdx | 10 - contrib/ccan/compiler/LICENSE | 1 - contrib/ccan/compiler/compiler.h | 232 - contrib/ccan/compiler/compiler.spdx | 10 - contrib/ccan/json/LICENSE | 1 - contrib/ccan/json/json.c | 1362 - contrib/ccan/json/json.h | 99 - contrib/ccan/json/json.spdx | 10 - contrib/cleanup.h | 25 - contrib/config.h | 7 - contrib/dynarray.h | 112 - contrib/dynarray.spdx | 10 - contrib/licenses/BSD-MIT | 21 - contrib/licenses/CC0 | 32 - contrib/licenses/LGPL2 | 506 - contrib/mempattern.c | 151 - contrib/mempattern.h | 92 - contrib/meson.build | 28 - contrib/murmurhash3/LICENSE | 1 - contrib/murmurhash3/murmurhash3.c | 76 - contrib/murmurhash3/murmurhash3.h | 9 - contrib/murmurhash3/murmurhash3.spdx | 10 - contrib/ucw/LICENSE | 1 - contrib/ucw/alloc.h | 38 - contrib/ucw/config.h | 58 - contrib/ucw/lib.h | 125 - contrib/ucw/libucw.spdx | 10 - contrib/ucw/mempool-fmt.c | 99 - contrib/ucw/mempool.c | 601 - contrib/ucw/mempool.h | 572 - daemon/bindings/api.h | 12 - daemon/bindings/cache.c | 376 - daemon/bindings/cache.rst | 338 - daemon/bindings/event.c | 209 - daemon/bindings/event.rst | 139 - daemon/bindings/impl.c | 95 - daemon/bindings/impl.h | 90 - daemon/bindings/modules.c | 77 - daemon/bindings/modules.rst | 43 - daemon/bindings/net.c | 1244 - daemon/bindings/net_client.rst | 34 - daemon/bindings/net_dns_tweaks.rst | 35 - daemon/bindings/net_server.rst | 225 - daemon/bindings/net_tlssrv.rst | 188 - daemon/bindings/net_xdpsrv.rst | 140 - daemon/bindings/worker.c | 80 - daemon/bindings/worker.rst | 35 - daemon/cache.test/clear.test.lua | 215 - .../insert_ns.test.integr/deckard.yaml | 14 - .../insert_ns.test.integr/kresd_config.j2 | 89 - .../nondelegated_auth.rpl | 59 - daemon/cache.test/testroot.zone | 1257 - daemon/cache.test/testroot.zone.unsigned | 216 - daemon/engine.c | 832 - daemon/engine.h | 105 - daemon/ffimodule.c | 304 - daemon/ffimodule.h | 36 - daemon/http.c | 1045 - daemon/http.h | 6 - daemon/io.c | 1133 - daemon/io.h | 64 - daemon/lua/controlsock.test.lua | 169 - daemon/lua/distro-preconfig.lua.in | 19 - daemon/lua/kluautil.lua | 94 - daemon/lua/kres-gen-30.lua | 687 - daemon/lua/kres-gen-31.lua | 696 - daemon/lua/kres-gen-32.lua | 697 - daemon/lua/kres-gen.sh | 380 - daemon/lua/kres.lua | 1143 - daemon/lua/krprint.lua | 340 - daemon/lua/krprint.test.lua | 292 - daemon/lua/log.test.lua | 42 - daemon/lua/map.test.integr/deckard.yaml | 38 - daemon/lua/map.test.integr/kresd_config.j2 | 193 - .../query-while-map-is-running.rpl | 312 - daemon/lua/meson.build | 131 - daemon/lua/postconfig.lua | 70 - daemon/lua/sandbox.lua.in | 844 - daemon/lua/trust_anchors.lua.in | 532 - daemon/lua/trust_anchors.rst | 123 - .../lua/trust_anchors.test/bootstrap.test.lua | 112 - .../err_attr_extra_attr.xml | 16 - .../err_attr_validfrom_invalid.xml | 16 - .../err_attr_validfrom_missing.xml | 16 - .../lua/trust_anchors.test/err_elem_extra.xml | 17 - .../trust_anchors.test/err_elem_missing.xml | 16 - .../lua/trust_anchors.test/err_multi_ta.xml | 19 - .../lua/trust_anchors.test/ok0_badtimes.xml | 16 - daemon/lua/trust_anchors.test/ok1.xml | 10 - .../lua/trust_anchors.test/ok1_expired1.xml | 16 - daemon/lua/trust_anchors.test/ok1_notyet1.xml | 16 - daemon/lua/trust_anchors.test/ok2.xml | 16 - daemon/lua/trust_anchors.test/regen.sh | 3 - daemon/lua/trust_anchors.test/root.keys | 1 - daemon/lua/trust_anchors.test/ta.test.lua | 85 - .../lua/trust_anchors.test/unsupp_nonroot.xml | 10 - .../lua/trust_anchors.test/unsupp_xml_v11.xml | 10 - daemon/lua/trust_anchors.test/webserv.lua | 236 - daemon/lua/trust_anchors.test/x509/ca-key.pem | 182 - daemon/lua/trust_anchors.test/x509/ca.pem | 24 - daemon/lua/trust_anchors.test/x509/ca.tmpl | 4 - daemon/lua/trust_anchors.test/x509/gen.sh | 13 - .../trust_anchors.test/x509/server-key.pem | 182 - daemon/lua/trust_anchors.test/x509/server.pem | 27 - .../lua/trust_anchors.test/x509/server.tmpl | 7 - .../trust_anchors.test/x509/wrongca-key.pem | 182 - .../lua/trust_anchors.test/x509/wrongca.pem | 24 - .../lua/trust_anchors.test/x509/wrongca.tmpl | 4 - daemon/lua/zonefile.lua | 93 - daemon/main.c | 663 - daemon/meson.build | 70 - daemon/network.c | 932 - daemon/network.h | 173 - daemon/proxyv2.c | 294 - daemon/proxyv2.h | 53 - daemon/proxyv2.test/deckard.yaml | 25 - daemon/proxyv2.test/dnsdist_config.j2 | 11 - daemon/proxyv2.test/kresd_config.j2 | 63 - daemon/proxyv2.test/proxyv2_valid.rpl | 72 - daemon/scripting.rst | 398 - daemon/session2.c | 1654 - daemon/session2.h | 1110 - daemon/tls.c | 1346 - daemon/tls.h | 137 - daemon/tls_ephemeral_credentials.c | 238 - daemon/tls_session_ticket-srv.c | 245 - daemon/udp_queue.c | 148 - daemon/udp_queue.h | 19 - daemon/worker.c | 2401 - daemon/worker.h | 165 - daemon/zimport.c | 740 - daemon/zimport.h | 48 - daemon/zimport.test/tz-rfc-a1-bad.zone | 14 - daemon/zimport.test/tz-rfc-a1.zone | 14 - daemon/zimport.test/tz-rfc-a2.zone | 35 - daemon/zimport.test/tz-rfc-a3.zone | 31 - daemon/zimport.test/tz-rfc-a4.zone | 37 - daemon/zimport.test/tz-rfc-a5.zone | 48 - daemon/zimport.test/zimport.test.lua | 47 - distro/config/apkg.toml | 13 - distro/pkg/arch/PKGBUILD | 99 - distro/pkg/deb/changelog | 6 - distro/pkg/deb/clean | 1 - distro/pkg/deb/compat | 1 - distro/pkg/deb/control | 149 - distro/pkg/deb/copyright | 440 - distro/pkg/deb/knot-resolver-core.dirs | 2 - distro/pkg/deb/knot-resolver-core.docs | 4 - distro/pkg/deb/knot-resolver-core.install | 34 - distro/pkg/deb/knot-resolver-core.manpages | 1 - distro/pkg/deb/knot-resolver-core.postinst | 15 - distro/pkg/deb/knot-resolver-core.postrm | 9 - distro/pkg/deb/knot-resolver-manager.install | 4 - distro/pkg/deb/knot-resolver-manager.links | 1 - distro/pkg/deb/knot-resolver-manager.manpages | 1 - .../deb/knot-resolver-module-dnstap.install | 1 - .../pkg/deb/knot-resolver-module-http.install | 7 - .../pkg/deb/knot-resolver-module-http.links | 5 - distro/pkg/deb/not-installed | 6 - distro/pkg/deb/rules | 64 - distro/pkg/deb/source/format | 1 - distro/pkg/nix/default.nix | 125 - distro/pkg/nix/top-level.nix | 12 - distro/pkg/rpm/knot-resolver.spec | 354 - distro/tests/extra/all/control | 2 - doc/README.md | 39 - doc/_static/css/dev.css | 31 - doc/_static/css/main.css | 6 - doc/_static/logo-negativ-dev.svg | 36 - doc/_static/package-lock.json | 2484 - doc/_static/package.json | 5 - doc/architecture-manager.drawio | 1 - doc/architecture-manager.svg | 3 - doc/architecture-schema.drawio | 1 - doc/architecture-schema.svg | 3 - doc/config-debugging.rst | 35 - doc/dev/Doxyfile | 23 - doc/dev/architecture-gc.rst | 12 - doc/dev/architecture-kresd.rst | 3 - doc/dev/architecture-manager.rst | 54 - doc/dev/architecture.rst | 48 - doc/dev/build.rst | 357 - doc/dev/cache-prefetch.rst | 12 - doc/dev/conf.py | 102 - doc/dev/config-answer-reordering.rst | 17 - doc/dev/config-lua-dnssec.rst | 17 - doc/dev/config-lua-experimental.rst | 14 - doc/dev/config-lua-logging-monitoring.rst | 99 - doc/dev/config-lua-network.rst | 63 - doc/dev/config-lua-overview.rst | 89 - doc/dev/config-lua-performance.rst | 35 - doc/dev/config-lua-policy.rst | 41 - doc/dev/daemon-bindings-cache.rst | 1 - doc/dev/daemon-bindings-net_client.rst | 1 - doc/dev/daemon-bindings-net_dns_tweaks.rst | 1 - doc/dev/daemon-bindings-net_server.rst | 1 - doc/dev/daemon-bindings-net_tlssrv.rst | 1 - doc/dev/daemon-bindings-net_xdpsrv.rst | 1 - doc/dev/daemon-bindings-worker.rst | 1 - doc/dev/daemon-scripting.rst | 1 - doc/dev/flowcharts/io_and_worker.dia | Bin 13771 -> 0 bytes doc/dev/flowcharts/task_ERD.dia | Bin 2700 -> 0 bytes doc/dev/flowcharts/tcp_task.dia | Bin 10812 -> 0 bytes doc/dev/flowcharts/udp_task.dia | Bin 4316 -> 0 bytes doc/dev/index.rst | 68 - doc/dev/infra-pages.rst | 73 - doc/dev/infra-warning.rst | 5 - doc/dev/lib.rst | 76 - doc/dev/logging_api.rst | 9 - doc/dev/manager-dev.rst | 115 - doc/dev/modules-bogus_log.rst | 1 - doc/dev/modules-daf.rst | 1 - doc/dev/modules-detect_time_jump.rst | 1 - doc/dev/modules-detect_time_skew.rst | 1 - doc/dev/modules-dns64.rst | 1 - doc/dev/modules-dnstap.rst | 1 - doc/dev/modules-edns_keepalive.rst | 1 - doc/dev/modules-experimental_dot_auth.rst | 1 - doc/dev/modules-hints.rst | 1 - doc/dev/modules-http-custom-services.rst | 1 - doc/dev/modules-http-trace.rst | 1 - doc/dev/modules-http.rst | 1 - doc/dev/modules-nsid.rst | 1 - doc/dev/modules-policy.rst | 1 - doc/dev/modules-prefill.rst | 1 - doc/dev/modules-priming.rst | 1 - doc/dev/modules-rebinding.rst | 1 - doc/dev/modules-refuse_nord.rst | 1 - doc/dev/modules-renumber.rst | 1 - doc/dev/modules-rfc7706.rst | 1 - doc/dev/modules-serve_stale.rst | 1 - doc/dev/modules-stats.rst | 1 - doc/dev/modules-ta_sentinel.rst | 1 - doc/dev/modules-ta_signal_query.rst | 1 - doc/dev/modules-view.rst | 1 - doc/dev/modules-watchdog.rst | 1 - doc/dev/modules_api.rst | 6 - doc/dev/rename_ln.sh | 9 - doc/dev/server_terminology.fodg | 869 - doc/dev/systemd-multiinst.rst | 1 - doc/dev/worker_api.rst | 7 - doc/kresctl.8.in | 67 - doc/kresd.8.in | 122 - doc/meson.build | 85 - doc/requirements.txt | 5 - doc/resolution.png | Bin 95991 -> 0 bytes doc/server_terminology.svg | 1106 - doc/user/NEWS.rst | 36 - doc/user/conf.py | 66 - doc/user/config-cache-predict.rst | 64 - doc/user/config-cache-prefill.rst | 51 - doc/user/config-cache.rst | 225 - doc/user/config-dns64.rst | 71 - doc/user/config-dnssec.rst | 143 - doc/user/config-edns-keepalive.rst | 23 - doc/user/config-experimental-dot-auth.rst | 90 - doc/user/config-experimental.rst | 13 - doc/user/config-forward.rst | 95 - doc/user/config-local-data.rst | 215 - doc/user/config-logging-bogus.rst | 46 - doc/user/config-logging-debugging.rst | 44 - doc/user/config-logging-dnstap.rst | 35 - doc/user/config-logging-monitoring.rst | 69 - doc/user/config-lua.rst | 61 - doc/user/config-monitoring-stats.rst | 108 - doc/user/config-multiple-workers.rst | 30 - doc/user/config-network-client.rst | 34 - doc/user/config-network-dns-tweaks.rst | 47 - doc/user/config-network-server-tls.rst | 202 - doc/user/config-network-server.rst | 152 - doc/user/config-network.rst | 63 - doc/user/config-nsid.rst | 22 - doc/user/config-overview.rst | 72 - doc/user/config-performance.rst | 34 - doc/user/config-policy-new.rst | 55 - doc/user/config-priming.rst | 22 - doc/user/config-rebinding.rst | 32 - doc/user/config-refuse-no-rd.rst | 16 - doc/user/config-renumber.rst | 36 - doc/user/config-reordering.rst | 16 - doc/user/config-rfc7706.rst | 12 - doc/user/config-serve-stale.rst | 23 - doc/user/config-ta-sentinel.rst | 20 - doc/user/config-ta-signal-query.rst | 35 - doc/user/config-time-jump-detection.rst | 26 - doc/user/config-time-skew-detection.rst | 29 - doc/user/config-views.rst | 99 - doc/user/deployment-advanced-no-manager.rst | 73 - ...loyment-advanced-no-systemd-privileges.rst | 67 - ...ployment-advanced-no-systemd-processes.rst | 27 - doc/user/deployment-advanced-no-systemd.rst | 39 - doc/user/deployment-advanced.rst | 9 - doc/user/deployment-docker.rst | 21 - doc/user/deployment-manual.rst | 15 - doc/user/deployment-systemd.rst | 20 - doc/user/deployment-warning.rst | 10 - doc/user/developer.rst | 9 - doc/user/gettingstarted-config.rst | 279 - doc/user/gettingstarted-install.rst | 36 - doc/user/gettingstarted-startup.rst | 57 - doc/user/index.rst | 76 - doc/user/manager-api.rst | 115 - doc/user/manager-client.rst | 297 - doc/user/upgrading-to-6.rst | 107 - doc/user/upgrading.rst | 21 - docs/index.md | 12 + {doc/_static => docs}/logo-negativ.svg | 0 {doc/_static/css => docs}/user.css | 0 etc/config/config.cluster | 36 - etc/config/config.docker | 97 - etc/config/config.internal | 18 - etc/config/config.isp | 64 - etc/config/config.personal | 21 - etc/config/config.privacy | 36 - etc/config/config.splitview | 30 - etc/config/meson.build | 35 - etc/icann-ca.pem | 82 - etc/meson.build | 35 - etc/root.hints | 92 - etc/root.keys | 1 - lib/README.rst | 317 - lib/cache/README.rst | 69 - lib/cache/api.c | 1041 - lib/cache/api.h | 197 - lib/cache/cdb_api.h | 120 - lib/cache/cdb_lmdb.c | 965 - lib/cache/cdb_lmdb.h | 17 - lib/cache/entry_list.c | 301 - lib/cache/entry_pkt.c | 203 - lib/cache/entry_rr.c | 112 - lib/cache/impl.h | 444 - lib/cache/knot_pkt.c | 94 - lib/cache/nsec1.c | 488 - lib/cache/nsec3.c | 495 - lib/cache/overflow.test.integr/deckard.yaml | 22 - .../overflow.test.integr/kresd_config.j2 | 93 - .../world_cz_vutbr_www.rpl | 298 - lib/cache/peek.c | 777 - lib/cache/test.integr/cache_minimal_nsec3.rpl | 4120 - lib/cache/test.integr/deckard.yaml | 13 - lib/cache/test.integr/kresd_config.j2 | 70 - lib/cache/util.h | 4 - lib/cookies/alg_containers.c | 59 - lib/cookies/alg_containers.h | 37 - lib/cookies/alg_sha.c | 110 - lib/cookies/alg_sha.h | 18 - lib/cookies/control.h | 37 - lib/cookies/helper.c | 268 - lib/cookies/helper.h | 74 - lib/cookies/lru_cache.c | 58 - lib/cookies/lru_cache.h | 57 - lib/cookies/nonce.c | 20 - lib/cookies/nonce.h | 31 - lib/defines.h | 108 - lib/dnssec.c | 626 - lib/dnssec.h | 204 - lib/dnssec/nsec.c | 315 - lib/dnssec/nsec.h | 69 - lib/dnssec/nsec3.c | 734 - lib/dnssec/nsec3.h | 116 - lib/dnssec/signature.c | 320 - lib/dnssec/signature.h | 29 - lib/dnssec/ta.c | 153 - lib/dnssec/ta.h | 61 - lib/generic/README.rst | 48 - lib/generic/array.h | 157 - lib/generic/lru.c | 249 - lib/generic/lru.h | 240 - lib/generic/pack.h | 221 - lib/generic/queue.c | 140 - lib/generic/queue.h | 230 - lib/generic/test_array.c | 99 - lib/generic/test_lru.c | 111 - lib/generic/test_pack.c | 68 - lib/generic/test_queue.c | 71 - lib/generic/test_trie.c | 154 - lib/generic/trie.c | 923 - lib/generic/trie.h | 150 - lib/generic/trie.spdx | 10 - lib/layer.h | 107 - lib/layer/cache.c | 20 - lib/layer/iterate.c | 1256 - lib/layer/iterate.h | 25 - lib/layer/mode.rst | 26 - lib/layer/test.integr/deckard.yaml | 13 - lib/layer/test.integr/iter_cname_length.rpl | 226 - .../test.integr/iter_limit_bad_glueless.rpl | 220 - lib/layer/test.integr/iter_limit_refuse.rpl | 150 - lib/layer/test.integr/kresd_config.j2 | 107 - lib/layer/validate.c | 1396 - lib/layer/validate.test.integr/deckard.yaml | 10 - .../fwd_insecure_but_rrsig_signer_invalid.rpl | 294 - .../validate.test.integr/kresd_config.j2 | 52 - lib/log.c | 330 - lib/log.h | 282 - lib/meson.build | 131 - lib/module.c | 148 - lib/module.h | 112 - lib/resolve-impl.h | 52 - lib/resolve-produce.c | 728 - lib/resolve.c | 1040 - lib/resolve.h | 438 - lib/rplan.c | 291 - lib/rplan.h | 241 - lib/rules/api.c | 1091 - lib/rules/api.h | 239 - lib/rules/defaults.c | 216 - lib/rules/forward.c | 174 - lib/rules/impl.h | 82 - lib/rules/local-addr.c | 236 - lib/rules/zonefile.c | 292 - lib/selection.c | 811 - lib/selection.h | 275 - lib/selection_forward.c | 136 - lib/selection_forward.h | 17 - lib/selection_iter.c | 381 - lib/selection_iter.h | 14 - lib/test_module.c | 39 - lib/test_rplan.c | 75 - lib/test_utils.c | 147 - lib/test_zonecut.c | 58 - lib/utils.c | 1398 - lib/utils.h | 619 - lib/zonecut.c | 593 - lib/zonecut.h | 165 - manager/.dockerignore | 8 - manager/.flake8 | 3 - manager/.gitignore | 20 - manager/.gitlab-ci.yml | 72 - manager/.python-version | 5 - manager/ARCHITECTURE.md | 41 - manager/ERROR_HANDLING.md | 60 - manager/README.md | 84 - manager/build_c_extensions.py | 16 - manager/etc/knot-resolver/.gitignore | 2 - manager/etc/knot-resolver/config.dev.yaml | 73 - .../knot-resolver/config.example.docker.yaml | 12 - .../config.example.internal.yaml | 27 - .../etc/knot-resolver/config.example.isp.yaml | 70 - .../config.example.personal.yaml | 23 - manager/etc/knot-resolver/config.yaml | 11 - manager/knot_resolver_manager/__init__.py | 1 - manager/knot_resolver_manager/__main__.py | 15 - manager/knot_resolver_manager/cli/__init__.py | 5 - manager/knot_resolver_manager/cli/__main__.py | 4 - .../knot_resolver_manager/cli/cmd/cache.py | 118 - .../cli/cmd/completion.py | 95 - .../knot_resolver_manager/cli/cmd/config.py | 222 - .../knot_resolver_manager/cli/cmd/convert.py | 74 - manager/knot_resolver_manager/cli/cmd/help.py | 24 - .../knot_resolver_manager/cli/cmd/metrics.py | 67 - .../knot_resolver_manager/cli/cmd/reload.py | 36 - .../knot_resolver_manager/cli/cmd/schema.py | 55 - manager/knot_resolver_manager/cli/cmd/stop.py | 32 - .../knot_resolver_manager/cli/cmd/validate.py | 63 - manager/knot_resolver_manager/cli/command.py | 125 - manager/knot_resolver_manager/cli/kresctl.py | 49 - manager/knot_resolver_manager/cli/main.py | 69 - .../knot_resolver_manager/compat/__init__.py | 3 - .../knot_resolver_manager/compat/asyncio.py | 128 - .../compat/dataclasses.py | 68 - manager/knot_resolver_manager/config_store.py | 77 - manager/knot_resolver_manager/constants.py | 96 - .../datamodel/__init__.py | 3 - .../datamodel/cache_schema.py | 139 - .../datamodel/config_schema.py | 173 - .../datamodel/design-notes.yml | 237 - .../datamodel/dns64_schema.py | 19 - .../datamodel/dnssec_schema.py | 45 - .../datamodel/forward_schema.py | 78 - .../datamodel/globals.py | 57 - .../datamodel/local_data_schema.py | 95 - .../datamodel/logging_schema.py | 153 - .../datamodel/lua_schema.py | 23 - .../datamodel/management_schema.py | 21 - .../datamodel/monitoring_schema.py | 25 - .../datamodel/network_schema.py | 181 - .../datamodel/options_schema.py | 36 - .../datamodel/policy_schema.py | 126 - .../datamodel/rpz_schema.py | 29 - .../datamodel/slice_schema.py | 21 - .../datamodel/static_hints_schema.py | 27 - .../datamodel/stub_zone_schema.py | 32 - .../datamodel/templates/__init__.py | 33 - .../datamodel/templates/cache.lua.j2 | 32 - .../datamodel/templates/config.lua.j2 | 61 - .../datamodel/templates/dns64.lua.j2 | 17 - .../datamodel/templates/dnssec.lua.j2 | 58 - .../datamodel/templates/forward.lua.j2 | 9 - .../datamodel/templates/local_data.lua.j2 | 41 - .../datamodel/templates/logging.lua.j2 | 43 - .../templates/macros/cache_macros.lua.j2 | 11 - .../templates/macros/common_macros.lua.j2 | 101 - .../templates/macros/forward_macros.lua.j2 | 42 - .../templates/macros/local_data_macros.lua.j2 | 101 - .../templates/macros/network_macros.lua.j2 | 55 - .../templates/macros/policy_macros.lua.j2 | 279 - .../templates/macros/view_macros.lua.j2 | 25 - .../datamodel/templates/monitoring.lua.j2 | 33 - .../datamodel/templates/network.lua.j2 | 102 - .../datamodel/templates/options.lua.j2 | 52 - .../datamodel/templates/static_hints.lua.j2 | 51 - .../datamodel/templates/views.lua.j2 | 25 - .../datamodel/templates/webmgmt.lua.j2 | 25 - .../datamodel/types/__init__.py | 66 - .../datamodel/types/base_types.py | 227 - .../datamodel/types/enums.py | 153 - .../datamodel/types/files.py | 137 - .../datamodel/types/generic_types.py | 38 - .../datamodel/types/types.py | 523 - .../datamodel/view_schema.py | 45 - .../datamodel/webmgmt_schema.py | 27 - manager/knot_resolver_manager/exceptions.py | 28 - manager/knot_resolver_manager/kres_manager.py | 306 - .../kresd_controller/__init__.py | 94 - .../kresd_controller/interface.py | 258 - .../kresd_controller/registered_workers.py | 49 - .../kresd_controller/supervisord/__init__.py | 269 - .../supervisord/config_file.py | 182 - .../supervisord/plugin/fast_rpcinterface.py | 173 - .../supervisord/plugin/manager_integration.py | 85 - .../supervisord/plugin/notifymodule.c | 176 - .../supervisord/plugin/patch_logger.py | 97 - .../supervisord/plugin/sd_notify.py | 214 - .../supervisord/supervisord.conf.j2 | 85 - manager/knot_resolver_manager/log.py | 105 - manager/knot_resolver_manager/main.py | 49 - manager/knot_resolver_manager/server.py | 637 - manager/knot_resolver_manager/statistics.py | 428 - .../knot_resolver_manager/utils/__init__.py | 45 - .../utils/async_utils.py | 129 - .../utils/custom_atexit.py | 20 - manager/knot_resolver_manager/utils/etag.py | 10 - .../knot_resolver_manager/utils/functional.py | 72 - .../utils/modeling/README.md | 155 - .../utils/modeling/__init__.py | 14 - .../modeling/base_generic_type_wrapper.py | 9 - .../utils/modeling/base_schema.py | 815 - .../utils/modeling/base_value_type.py | 45 - .../utils/modeling/exceptions.py | 63 - .../utils/modeling/json_pointer.py | 88 - .../utils/modeling/parsing.py | 99 - .../utils/modeling/query.py | 183 - .../utils/modeling/renaming.py | 90 - .../utils/modeling/types.py | 105 - .../knot_resolver_manager/utils/requests.py | 135 - .../utils/systemd_notify.py | 54 - manager/knot_resolver_manager/utils/which.py | 22 - manager/meson.build | 37 - manager/poe | 22 - manager/pyproject.toml | 152 - manager/scripts/_env.sh | 52 - manager/scripts/codecheck | 77 - manager/scripts/commit | 18 - manager/scripts/configure-vscode | 55 - manager/scripts/container.py | 284 - manager/scripts/create_setup.py | 66 - manager/scripts/docs | 10 - manager/scripts/examples | 11 - manager/scripts/install.sh | 11 - manager/scripts/make-package.sh | 71 - manager/scripts/man | 9 - manager/scripts/run | 44 - manager/scripts/run-debug | 13 - manager/setup.py | 54 - manager/shell-completion/client.bash | 33 - manager/shell-completion/client.fish | 6 - manager/shell-completion/meson.build | 13 - manager/tests/README.md | 9 - manager/tests/integration/.gitignore | 2 - manager/tests/integration/config.yml | 13 - manager/tests/integration/runner.py | 96 - manager/tests/packaging/control | 41 - manager/tests/packaging/dependencies.py | 33 - .../packaging/interactive/cache-clear.sh | 15 - manager/tests/packaging/interactive/etag.sh | 14 - .../tests/packaging/interactive/metrics.sh | 17 - manager/tests/packaging/interactive/reload.sh | 5 - .../tests/packaging/interactive/workers.sh | 17 - manager/tests/packaging/knot-resolver.sh | 7 - manager/tests/packaging/kresctl.sh | 7 - manager/tests/packaging/manpage.sh | 5 - manager/tests/packaging/systemd_service.sh | 50 - manager/tests/unit/__init__.py | 5 - .../datamodel/templates/test_cache_macros.py | 25 - .../datamodel/templates/test_common_macros.py | 90 - .../templates/test_forward_macros.py | 27 - .../templates/test_network_macros.py | 35 - .../datamodel/templates/test_policy_macros.py | 132 - .../datamodel/templates/test_types_render.py | 60 - .../datamodel/templates/test_view_macros.py | 43 - .../unit/datamodel/test_config_schema.py | 96 - .../unit/datamodel/test_forward_schema.py | 57 - .../tests/unit/datamodel/test_local_data.py | 37 - .../tests/unit/datamodel/test_lua_schema.py | 9 - .../unit/datamodel/test_management_schema.py | 21 - .../unit/datamodel/test_network_schema.py | 79 - .../unit/datamodel/test_policy_schema.py | 89 - .../tests/unit/datamodel/test_rpz_schema.py | 23 - .../unit/datamodel/types/test_base_types.py | 66 - .../unit/datamodel/types/test_custom_types.py | 319 - .../datamodel/types/test_generic_types.py | 61 - manager/tests/unit/test_config_store.py | 31 - .../tests/unit/test_knot_resolver_manager.py | 5 - .../unit/utils/modeling/test_base_schema.py | 213 - .../tests/unit/utils/modeling/test_etag.py | 15 - .../unit/utils/modeling/test_json_pointer.py | 72 - .../tests/unit/utils/modeling/test_query.py | 18 - .../unit/utils/modeling/test_renaming.py | 24 - .../tests/unit/utils/modeling/test_types.py | 38 - manager/tests/unit/utils/test_dataclasses.py | 15 - manager/tests/unit/utils/test_functional.py | 22 - meson.build | 398 - meson_options.txt | 241 - mkdocs.yml | 11 + modules/README.rst | 251 - modules/bogus_log/README.rst | 45 - modules/bogus_log/bogus_log.c | 135 - modules/bogus_log/meson.build | 22 - modules/bogus_log/test.integr/deckard.yaml | 13 - modules/bogus_log/test.integr/kresd_config.j2 | 90 - .../val_minimal_expiredsignature.rpl | 125 - modules/cookies/README.rst | 56 - modules/cookies/cookiectl.c | 689 - modules/cookies/cookiectl.h | 35 - modules/cookies/cookiemonster.c | 464 - modules/cookies/cookiemonster.h | 15 - modules/cookies/cookies.c | 78 - modules/daf/README.rst | 146 - modules/daf/daf.js | 295 - modules/daf/daf.lua | 392 - modules/daf/daf.test.lua | 82 - modules/daf/daf_http.test.lua | 216 - modules/daf/meson.build | 21 - modules/daf/test.integr/deckard.yaml | 12 - modules/daf/test.integr/kresd_config.j2 | 65 - modules/daf/test.integr/module_daf.rpl | 30 - modules/detect_time_jump/README.rst | 22 - modules/detect_time_jump/detect_time_jump.lua | 45 - modules/detect_time_skew/README.rst | 23 - modules/detect_time_skew/detect_time_skew.lua | 83 - modules/dns64/README.rst | 62 - modules/dns64/dns64.lua | 220 - modules/dns64/dns64.test.lua | 53 - modules/dnstap/README.rst | 42 - modules/dnstap/dnstap.c | 524 - modules/dnstap/dnstap.proto | 273 - modules/dnstap/meson.build | 56 - modules/edns_keepalive/README.rst | 22 - modules/edns_keepalive/edns_keepalive.c | 60 - modules/edns_keepalive/meson.build | 18 - modules/etcd/README.rst | 46 - modules/etcd/etcd.lua | 56 - modules/experimental_dot_auth/README.rst | 91 - .../experimental_dot_auth.lua | 122 - modules/experimental_dot_auth/meson.build | 13 - modules/extended_error/extended_error.c | 47 - modules/extended_error/meson.build | 18 - modules/graphite/README.rst | 49 - modules/graphite/graphite.lua | 146 - modules/hints/README.rst | 149 - modules/hints/hints.c | 339 - modules/hints/meson.build | 22 - modules/hints/tests/hints.test.hosts | 1 - modules/hints/tests/hints.test.lua | 69 - modules/hints/tests/hints_test.zone | 2 - modules/http/README.rst | 188 - modules/http/custom_services.rst | 145 - modules/http/debug_opensslkeylog.c | 370 - modules/http/http.lua.in | 418 - modules/http/http.test.lua | 128 - modules/http/http_doh.lua | 116 - modules/http/http_doh.test.lua | 419 - modules/http/http_tls_cert.lua | 186 - modules/http/http_trace.lua | 77 - modules/http/meson.build | 61 - modules/http/prometheus.lua | 182 - modules/http/prometheus.rst | 45 - modules/http/static/bootstrap-theme.min.css | 6 - .../http/static/bootstrap-theme.min.css.spdx | 11 - modules/http/static/bootstrap.min.css | 11 - modules/http/static/bootstrap.min.css.spdx | 11 - modules/http/static/bootstrap.min.js | 7 - modules/http/static/bootstrap.min.js.spdx | 11 - modules/http/static/d3.js | 6 - modules/http/static/d3.spdx | 12 - modules/http/static/datamaps.world.min.js | 3 - modules/http/static/datamaps.world.min.spdx | 11 - modules/http/static/dygraph.min.js | 7 - modules/http/static/dygraph.min.js.spdx | 12 - modules/http/static/epoch.css | 2 - modules/http/static/epoch.js | 4 - modules/http/static/epoch.spdx | 11 - modules/http/static/favicon.ico | Bin 1545 -> 0 bytes .../static/glyphicons-halflings-regular.spdx | 11 - .../static/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes modules/http/static/jquery.js | 5 - modules/http/static/jquery.spdx | 12 - modules/http/static/kresd.css | 44 - modules/http/static/kresd.js | 367 - modules/http/static/main.tpl | 87 - modules/http/static/selectize.bootstrap3.css | 418 - modules/http/static/selectize.min.js | 4 - modules/http/static/selectize.spdx | 11 - modules/http/static/topojson.js | 2 - modules/http/static/topojson.spdx | 12 - modules/http/test_tls/broken.crt | 3 - modules/http/test_tls/broken.key | Bin 512 -> 0 bytes modules/http/test_tls/ca.crt | 20 - modules/http/test_tls/chain.crt | 41 - modules/http/test_tls/test.crt | 20 - modules/http/test_tls/test.key | 27 - modules/http/test_tls/tls.test.lua | 193 - modules/http/trace.rst | 43 - modules/meson.build | 69 - modules/nsid/README.rst | 35 - modules/nsid/meson.build | 22 - modules/nsid/nsid.c | 113 - modules/nsid/nsid.test.lua | 22 - modules/policy/README.rst | 774 - modules/policy/lua-aho-corasick | 1 - modules/policy/meson.build | 51 - .../policy/noipv6.test.integr/broken-ipv6.rpl | 47 - .../policy/noipv6.test.integr/deckard.yaml | 12 - .../policy/noipv6.test.integr/kresd_config.j2 | 59 - .../policy/noipvx.test.integr/broken-ipvx.rpl | 35 - .../policy/noipvx.test.integr/deckard.yaml | 12 - .../policy/noipvx.test.integr/kresd_config.j2 | 60 - modules/policy/policy.lua | 953 - modules/policy/policy.rpz.test.lua | 65 - modules/policy/policy.slice.test.lua | 109 - modules/policy/policy.test.lua | 145 - modules/policy/policy.test.rpz | 18 - modules/policy/policy.test.rpz.soa | 5 - modules/policy/test.integr/deckard.yaml | 12 - modules/policy/test.integr/kresd_config.j2 | 59 - modules/policy/test.integr/refuse.rpl | 44 - modules/predict/README.rst | 52 - modules/predict/predict.lua | 175 - modules/predict/predict.test.lua | 61 - modules/prefetch/README.rst | 18 - modules/prefetch/prefetch.lua | 21 - modules/prefill/README.rst | 43 - modules/prefill/prefill.lua | 199 - modules/prefill/prefill.test/empty.zone | 0 modules/prefill/prefill.test/example.com.zone | 12 - modules/prefill/prefill.test/prefill.test.lua | 123 - modules/prefill/prefill.test/random.zone | 2 - modules/prefill/prefill.test/testroot.zone | 59 - .../prefill.test/testroot.zone.unsigned | 4 - .../prefill/prefill.test/testroot_no_soa.zone | 52 - modules/priming/README.rst | 18 - modules/priming/priming.lua | 130 - modules/rebinding/README.rst | 29 - modules/rebinding/rebinding.lua | 115 - modules/rebinding/test.integr/deckard.yaml | 12 - modules/rebinding/test.integr/kresd_config.j2 | 59 - .../test.integr/module_rebinding.rpl | 834 - modules/refuse_nord/README.rst | 16 - modules/refuse_nord/meson.build | 22 - modules/refuse_nord/refuse_nord.c | 38 - modules/refuse_nord/test.integr/deckard.yaml | 12 - .../refuse_nord/test.integr/kresd_config.j2 | 56 - .../refuse_nord/test.integr/refuse_nord.rpl | 24 - modules/renumber/README.rst | 36 - modules/renumber/renumber.lua | 181 - modules/renumber/renumber.test.lua | 103 - modules/rfc7706.rst | 12 - modules/serve_stale/README.rst | 23 - modules/serve_stale/serve_stale.lua | 42 - modules/serve_stale/test.integr/deckard.yaml | 12 - .../serve_stale/test.integr/kresd_config.j2 | 70 - .../test.integr/module_serve_stale.rpl | 280 - modules/stats/README.rst | 213 - modules/stats/meson.build | 23 - modules/stats/stats.c | 574 - modules/stats/test.integr/deckard.yaml | 12 - modules/stats/test.integr/kresd_config.j2 | 119 - modules/stats/test.integr/stats.rpl | 194 - modules/ta_sentinel/README.rst | 18 - modules/ta_sentinel/ta_sentinel.lua | 80 - modules/ta_signal_query/README.rst | 31 - modules/ta_signal_query/ta_signal_query.lua | 64 - modules/ta_update/meson.build | 21 - modules/ta_update/root.keys | 1 - modules/ta_update/ta_update.lua | 349 - .../ta_update.test.integr/deckard.yaml | 12 - .../ta_update.test.integr/kresd_config.j2 | 57 - .../rfc5011-monotonictime.rpl | 5755 -- .../ta_update.test.integr/rfc5011/README | 13 - .../ta_update.test.integr/rfc5011/dns2rpl.py | 222 - .../ta_update.test.integr/rfc5011/empty.rpl | 20 - .../rfc5011/genkeyszones.sh | 174 - .../rfc5011/knot.root.conf | 26 - .../ta_update.test.integr/rfc5011/pydnstest | 1 - .../rfc5011/unsigned_check.db | 8 - .../rfc5011/unsigned_ok.db | 8 - .../rfc5011_unsupported_key_rollover.rpl | 91 - modules/ta_update/ta_update.test.lua | 84 - .../deckard.yaml | 12 - .../kresd_config.j2 | 73 - .../rfc5011 | 1 - .../unmanagedkey-missing-monotonictime.rpl | 758 - .../unmanagedkey-present-monotonictime.rpl | 757 - .../unmanagedkey-revoke-monotonictime.rpl | 762 - modules/view/README.rst | 92 - modules/view/addr.test.integr/deckard.yaml | 12 - modules/view/addr.test.integr/kresd_config.j2 | 62 - .../addr.test.integr/module_view_addr.rpl | 79 - modules/view/meson.build | 11 - modules/view/tsig.test.integr/deckard.yaml | 12 - modules/view/tsig.test.integr/kresd_config.j2 | 64 - .../tsig.test.integr/module_view_tsig.rpl | 114 - modules/view/view.lua | 122 - modules/watchdog/README.rst | 43 - modules/watchdog/watchdog.lua | 129 - modules/workarounds/README.rst | 11 - modules/workarounds/workarounds.lua | 23 - python/knot_resolver.py.in | 10 - python/meson.build | 23 - python/setup.py.in | 12 - scripts/bench.sh | 12 - scripts/bugreport-journals.py | 194 - scripts/build-in-obs.sh | 32 - scripts/coverage_c_combine.sh | 26 - scripts/coverage_env.sh | 42 - scripts/doh_b64encode_query.py | 26 - scripts/enable-repo.py | 132 - scripts/gen-cdefs.sh | 87 - scripts/gen-pgp-keyblock.sh | 38 - scripts/get-date.sh | 14 - scripts/kresd-host.lua | 115 - scripts/kresd-query.lua | 63 - scripts/kresd.apparmor | 29 - scripts/luacov_gen_empty.sh | 18 - scripts/luacov_to_info.lua | 57 - scripts/make-archive.sh | 49 - scripts/make-doc.sh | 25 - scripts/make-obs.sh | 59 - scripts/map_install_src.lua | 168 - scripts/run-pylint.sh | 12 - scripts/run-scanbuild-with-args.sh | 51 - scripts/test-config.sh | 32 - scripts/test-integration-prepare.sh | 8 - scripts/update-authors.sh | 48 - scripts/update-root-hints.sh | 28 - scripts/upstream-version.sh | 9 - security.txt | 9 - systemd/README.rst | 11 - systemd/knot-resolver.service.in | 23 - systemd/kres-cache-gc.service.in | 19 - systemd/kresd.systemd.7.in | 100 - systemd/kresd.target | 9 - systemd/kresd@.service.in | 30 - systemd/meson.build | 79 - systemd/multiinst.rst | 99 - systemd/sysusers.d/knot-resolver.conf.in | 5 - systemd/tmpfiles.d/knot-resolver.conf.in | 6 - tests/.gitignore | 6 - tests/README.rst | 94 - tests/config/basic.test.lua | 211 - tests/config/cache.test.lua | 67 - tests/config/doh2.test.lua | 524 - tests/config/lru.test.lua | 84 - tests/config/meson.build | 41 - tests/config/net.test.lua | 67 - tests/config/tapered | 1 - tests/config/test.cfg | 46 - tests/config/test_dns_generators.lua | 134 - tests/config/test_utils.lua | 121 - tests/config/tls.test.lua | 29 - tests/config/worker.test.lua | 65 - tests/dnstap/meson.build | 11 - tests/dnstap/src/dnstap-test/config | 14 - tests/dnstap/src/dnstap-test/go.mod | 9 - tests/dnstap/src/dnstap-test/go.sum | 44 - tests/dnstap/src/dnstap-test/main.go | 247 - tests/dnstap/src/dnstap-test/run.sh | 34 - tests/integration/deckard | 1 - tests/integration/hints_zone.j2 | 10 - tests/integration/meson.build | 68 - .../testdata_notimpl/iter_class_any.rpl | 150 - .../testdata_notimpl/iter_dnsseclame_bug.rpl | 465 - .../testdata_notimpl/iter_dnsseclame_ds.rpl | 414 - .../iter_dnsseclame_ds_ok.rpl | 367 - .../testdata_notimpl/iter_dnsseclame_ta.rpl | 327 - .../iter_dnsseclame_ta_ok.rpl | 303 - .../testdata_notimpl/iter_dp_turnsuseless.rpl | 166 - .../testdata_notimpl/iter_ds_locate_ns.rpl | 145 - .../iter_ds_locate_ns_cname.rpl | 155 - .../iter_ds_locate_ns_detach.rpl | 296 - .../iter_ds_locate_ns_nosoa.rpl | 145 - .../testdata_notimpl/iter_emptydp.rpl | 263 - .../iter_emptydp_for_glue.rpl | 493 - .../testdata_notimpl/iter_fwdfirst.rpl | 157 - .../testdata_notimpl/iter_fwdfirstequal.rpl | 157 - .../testdata_notimpl/iter_fwdstub.rpl | 218 - .../testdata_notimpl/iter_fwdstubroot.rpl | 175 - .../testdata_notimpl/iter_got6only.rpl | 135 - .../testdata_notimpl/iter_pcdiff.rpl | 210 - .../testdata_notimpl/iter_pcnamerec.rpl | 275 - .../testdata_notimpl/iter_primenoglue.rpl | 383 - .../testdata_notimpl/iter_privaddr.rpl | 285 - .../testdata_notimpl/iter_ranoaa_lame.rpl | 293 - .../testdata_notimpl/iter_scrub_cname_an.rpl | 181 - .../iter_scrub_dname_insec.rpl | 250 - .../testdata_notimpl/iter_scrub_dname_sec.rpl | 212 - .../testdata_notimpl/iter_scrub_ns.rpl | 103 - .../testdata_notimpl/iter_scrub_ns_fwd.rpl | 103 - .../testdata_notimpl/iter_scrub_ns_side.rpl | 103 - .../testdata_notimpl/iter_stub_noroot.rpl | 64 - .../testdata_notimpl/iter_stubfirst.rpl | 157 - .../testdata_notimpl/iter_stublastresort.rpl | 259 - .../testdata_notimpl/iter_timeout_ra_aaaa.rpl | 244 - tests/meson.build | 61 - tests/pytests/README.rst | 69 - tests/pytests/certs/tt-certgen-expired.sh | 19 - tests/pytests/certs/tt-certgen.sh | 5 - tests/pytests/certs/tt-expired.cert.pem | 80 - tests/pytests/certs/tt-expired.key.pem | 27 - tests/pytests/certs/tt.cert.pem | 22 - tests/pytests/certs/tt.conf | 353 - tests/pytests/certs/tt.key.pem | 28 - tests/pytests/conftest.py | 102 - tests/pytests/conn_flood.py | 85 - tests/pytests/kresd.py | 316 - tests/pytests/meson.build | 77 - tests/pytests/proxy.py | 161 - tests/pytests/proxy/tls-proxy.c | 1038 - tests/pytests/proxy/tls-proxy.h | 34 - tests/pytests/proxy/tlsproxy.c | 198 - tests/pytests/pylintrc | 32 - tests/pytests/requirements.txt | 5 - tests/pytests/templates/kresd.conf.j2 | 62 - tests/pytests/test_conn_mgmt.py | 214 - tests/pytests/test_edns.py | 22 - tests/pytests/test_prefix.py | 102 - tests/pytests/test_random_close.py | 54 - tests/pytests/test_rehandshake.py | 52 - tests/pytests/test_tls.py | 83 - tests/pytests/utils.py | 136 - tests/unit/meson.build | 38 - tests/unit/mock_cmodule.c | 21 - tests/unit/packaging/debian/10/builddeps | 1 - tests/unit/packaging/test.sh | 2 - tests/unit/test.h | 110 - utils/cache_gc/.gitignore | 2 - utils/cache_gc/README.rst | 20 - utils/cache_gc/categories.c | 56 - utils/cache_gc/categories.h | 10 - utils/cache_gc/db.c | 284 - utils/cache_gc/db.h | 37 - utils/cache_gc/kr_cache_gc.c | 326 - utils/cache_gc/kr_cache_gc.h | 41 - utils/cache_gc/main.c | 163 - utils/cache_gc/meson.build | 33 - utils/cache_gc/test.integr/deckard.yaml | 37 - utils/cache_gc/test.integr/val_rrsig.rpl | 737 - utils/meson.build | 6 - 1014 files changed, 26 insertions(+), 206005 deletions(-) delete mode 100644 .clang-tidy delete mode 100644 .dir-locals.el delete mode 100644 .gitattributes delete mode 100644 .github/workflows/macOS.yaml delete mode 100644 .gitlab-ci.yml delete mode 100644 .gitmodules delete mode 100644 .luacheckrc delete mode 100644 .mailmap delete mode 100644 AUTHORS delete mode 100644 CONTRIBUTING.md delete mode 100644 COPYING delete mode 100644 CodingStyle delete mode 100644 Dockerfile delete mode 100644 NEWS delete mode 100644 README.md delete mode 100644 bench/bench_lru.c delete mode 100644 bench/bench_lru_set1.tsv delete mode 100644 bench/meson.build delete mode 100755 ci/deckard_commit_check.sh delete mode 100755 ci/fix-meson-junit.sh delete mode 100755 ci/gh_actions.py delete mode 100644 ci/images/README.md delete mode 100755 ci/images/build.sh delete mode 100644 ci/images/debian-11-coverity/Dockerfile delete mode 100644 ci/images/debian-11/Dockerfile delete mode 100644 ci/images/debian-12/Dockerfile delete mode 100644 ci/images/debian-buster/Dockerfile delete mode 100644 ci/images/manager/Dockerfile delete mode 100755 ci/images/push.sh delete mode 100755 ci/images/update.sh delete mode 100755 ci/images/vars.sh delete mode 100755 ci/no_assert_check.sh delete mode 100644 ci/pkgtest.yaml delete mode 100644 ci/respdiff/kresd.config delete mode 100644 ci/respdiff/respdiff-tcp.conf delete mode 100644 ci/respdiff/respdiff-tls.conf delete mode 100644 ci/respdiff/respdiff-udp.conf delete mode 100755 ci/respdiff/restart-bind.sh delete mode 100755 ci/respdiff/restart-kresd.sh delete mode 100755 ci/respdiff/restart-unbound.sh delete mode 100755 ci/respdiff/run-respdiff-tests.sh delete mode 100755 ci/respdiff/start-resolvers.sh delete mode 100644 contrib/base32hex.c delete mode 100644 contrib/base32hex.h delete mode 100644 contrib/base32hex.spdx delete mode 100644 contrib/base64.c delete mode 100644 contrib/base64.h delete mode 100644 contrib/base64.spdx delete mode 100644 contrib/base64url.c delete mode 100644 contrib/base64url.h delete mode 120000 contrib/ccan/asprintf/LICENSE delete mode 100644 contrib/ccan/asprintf/asprintf.c delete mode 100644 contrib/ccan/asprintf/asprintf.h delete mode 100644 contrib/ccan/asprintf/asprintf.spdx delete mode 120000 contrib/ccan/compiler/LICENSE delete mode 100644 contrib/ccan/compiler/compiler.h delete mode 100644 contrib/ccan/compiler/compiler.spdx delete mode 120000 contrib/ccan/json/LICENSE delete mode 100644 contrib/ccan/json/json.c delete mode 100644 contrib/ccan/json/json.h delete mode 100644 contrib/ccan/json/json.spdx delete mode 100644 contrib/cleanup.h delete mode 100644 contrib/config.h delete mode 100644 contrib/dynarray.h delete mode 100644 contrib/dynarray.spdx delete mode 100644 contrib/licenses/BSD-MIT delete mode 100644 contrib/licenses/CC0 delete mode 100644 contrib/licenses/LGPL2 delete mode 100644 contrib/mempattern.c delete mode 100644 contrib/mempattern.h delete mode 100644 contrib/meson.build delete mode 120000 contrib/murmurhash3/LICENSE delete mode 100644 contrib/murmurhash3/murmurhash3.c delete mode 100644 contrib/murmurhash3/murmurhash3.h delete mode 100644 contrib/murmurhash3/murmurhash3.spdx delete mode 120000 contrib/ucw/LICENSE delete mode 100644 contrib/ucw/alloc.h delete mode 100644 contrib/ucw/config.h delete mode 100644 contrib/ucw/lib.h delete mode 100644 contrib/ucw/libucw.spdx delete mode 100644 contrib/ucw/mempool-fmt.c delete mode 100644 contrib/ucw/mempool.c delete mode 100644 contrib/ucw/mempool.h delete mode 100644 daemon/bindings/api.h delete mode 100644 daemon/bindings/cache.c delete mode 100644 daemon/bindings/cache.rst delete mode 100644 daemon/bindings/event.c delete mode 100644 daemon/bindings/event.rst delete mode 100644 daemon/bindings/impl.c delete mode 100644 daemon/bindings/impl.h delete mode 100644 daemon/bindings/modules.c delete mode 100644 daemon/bindings/modules.rst delete mode 100644 daemon/bindings/net.c delete mode 100644 daemon/bindings/net_client.rst delete mode 100644 daemon/bindings/net_dns_tweaks.rst delete mode 100644 daemon/bindings/net_server.rst delete mode 100644 daemon/bindings/net_tlssrv.rst delete mode 100644 daemon/bindings/net_xdpsrv.rst delete mode 100644 daemon/bindings/worker.c delete mode 100644 daemon/bindings/worker.rst delete mode 100644 daemon/cache.test/clear.test.lua delete mode 100644 daemon/cache.test/insert_ns.test.integr/deckard.yaml delete mode 100644 daemon/cache.test/insert_ns.test.integr/kresd_config.j2 delete mode 100644 daemon/cache.test/insert_ns.test.integr/nondelegated_auth.rpl delete mode 100644 daemon/cache.test/testroot.zone delete mode 100644 daemon/cache.test/testroot.zone.unsigned delete mode 100644 daemon/engine.c delete mode 100644 daemon/engine.h delete mode 100644 daemon/ffimodule.c delete mode 100644 daemon/ffimodule.h delete mode 100644 daemon/http.c delete mode 100644 daemon/http.h delete mode 100644 daemon/io.c delete mode 100644 daemon/io.h delete mode 100644 daemon/lua/controlsock.test.lua delete mode 100644 daemon/lua/distro-preconfig.lua.in delete mode 100644 daemon/lua/kluautil.lua delete mode 100644 daemon/lua/kres-gen-30.lua delete mode 100644 daemon/lua/kres-gen-31.lua delete mode 100644 daemon/lua/kres-gen-32.lua delete mode 100755 daemon/lua/kres-gen.sh delete mode 100644 daemon/lua/kres.lua delete mode 100644 daemon/lua/krprint.lua delete mode 100644 daemon/lua/krprint.test.lua delete mode 100644 daemon/lua/log.test.lua delete mode 100644 daemon/lua/map.test.integr/deckard.yaml delete mode 100644 daemon/lua/map.test.integr/kresd_config.j2 delete mode 100644 daemon/lua/map.test.integr/query-while-map-is-running.rpl delete mode 100644 daemon/lua/meson.build delete mode 100644 daemon/lua/postconfig.lua delete mode 100644 daemon/lua/sandbox.lua.in delete mode 100644 daemon/lua/trust_anchors.lua.in delete mode 100644 daemon/lua/trust_anchors.rst delete mode 100644 daemon/lua/trust_anchors.test/bootstrap.test.lua delete mode 100644 daemon/lua/trust_anchors.test/err_attr_extra_attr.xml delete mode 100644 daemon/lua/trust_anchors.test/err_attr_validfrom_invalid.xml delete mode 100644 daemon/lua/trust_anchors.test/err_attr_validfrom_missing.xml delete mode 100644 daemon/lua/trust_anchors.test/err_elem_extra.xml delete mode 100644 daemon/lua/trust_anchors.test/err_elem_missing.xml delete mode 100644 daemon/lua/trust_anchors.test/err_multi_ta.xml delete mode 100644 daemon/lua/trust_anchors.test/ok0_badtimes.xml delete mode 100644 daemon/lua/trust_anchors.test/ok1.xml delete mode 100644 daemon/lua/trust_anchors.test/ok1_expired1.xml delete mode 100644 daemon/lua/trust_anchors.test/ok1_notyet1.xml delete mode 100644 daemon/lua/trust_anchors.test/ok2.xml delete mode 100755 daemon/lua/trust_anchors.test/regen.sh delete mode 100644 daemon/lua/trust_anchors.test/root.keys delete mode 100644 daemon/lua/trust_anchors.test/ta.test.lua delete mode 100644 daemon/lua/trust_anchors.test/unsupp_nonroot.xml delete mode 100644 daemon/lua/trust_anchors.test/unsupp_xml_v11.xml delete mode 100644 daemon/lua/trust_anchors.test/webserv.lua delete mode 100644 daemon/lua/trust_anchors.test/x509/ca-key.pem delete mode 100644 daemon/lua/trust_anchors.test/x509/ca.pem delete mode 100644 daemon/lua/trust_anchors.test/x509/ca.tmpl delete mode 100755 daemon/lua/trust_anchors.test/x509/gen.sh delete mode 100644 daemon/lua/trust_anchors.test/x509/server-key.pem delete mode 100644 daemon/lua/trust_anchors.test/x509/server.pem delete mode 100644 daemon/lua/trust_anchors.test/x509/server.tmpl delete mode 100644 daemon/lua/trust_anchors.test/x509/wrongca-key.pem delete mode 100644 daemon/lua/trust_anchors.test/x509/wrongca.pem delete mode 100644 daemon/lua/trust_anchors.test/x509/wrongca.tmpl delete mode 100644 daemon/lua/zonefile.lua delete mode 100644 daemon/main.c delete mode 100644 daemon/meson.build delete mode 100644 daemon/network.c delete mode 100644 daemon/network.h delete mode 100644 daemon/proxyv2.c delete mode 100644 daemon/proxyv2.h delete mode 100644 daemon/proxyv2.test/deckard.yaml delete mode 100644 daemon/proxyv2.test/dnsdist_config.j2 delete mode 100644 daemon/proxyv2.test/kresd_config.j2 delete mode 100644 daemon/proxyv2.test/proxyv2_valid.rpl delete mode 100644 daemon/scripting.rst delete mode 100644 daemon/session2.c delete mode 100644 daemon/session2.h delete mode 100644 daemon/tls.c delete mode 100644 daemon/tls.h delete mode 100644 daemon/tls_ephemeral_credentials.c delete mode 100644 daemon/tls_session_ticket-srv.c delete mode 100644 daemon/udp_queue.c delete mode 100644 daemon/udp_queue.h delete mode 100644 daemon/worker.c delete mode 100644 daemon/worker.h delete mode 100644 daemon/zimport.c delete mode 100644 daemon/zimport.h delete mode 100644 daemon/zimport.test/tz-rfc-a1-bad.zone delete mode 100644 daemon/zimport.test/tz-rfc-a1.zone delete mode 100644 daemon/zimport.test/tz-rfc-a2.zone delete mode 100644 daemon/zimport.test/tz-rfc-a3.zone delete mode 100644 daemon/zimport.test/tz-rfc-a4.zone delete mode 100644 daemon/zimport.test/tz-rfc-a5.zone delete mode 100644 daemon/zimport.test/zimport.test.lua delete mode 100644 distro/config/apkg.toml delete mode 100644 distro/pkg/arch/PKGBUILD delete mode 100644 distro/pkg/deb/changelog delete mode 100644 distro/pkg/deb/clean delete mode 100644 distro/pkg/deb/compat delete mode 100644 distro/pkg/deb/control delete mode 100644 distro/pkg/deb/copyright delete mode 100644 distro/pkg/deb/knot-resolver-core.dirs delete mode 100644 distro/pkg/deb/knot-resolver-core.docs delete mode 100644 distro/pkg/deb/knot-resolver-core.install delete mode 100644 distro/pkg/deb/knot-resolver-core.manpages delete mode 100644 distro/pkg/deb/knot-resolver-core.postinst delete mode 100644 distro/pkg/deb/knot-resolver-core.postrm delete mode 100644 distro/pkg/deb/knot-resolver-manager.install delete mode 100644 distro/pkg/deb/knot-resolver-manager.links delete mode 100644 distro/pkg/deb/knot-resolver-manager.manpages delete mode 100644 distro/pkg/deb/knot-resolver-module-dnstap.install delete mode 100644 distro/pkg/deb/knot-resolver-module-http.install delete mode 100644 distro/pkg/deb/knot-resolver-module-http.links delete mode 100644 distro/pkg/deb/not-installed delete mode 100755 distro/pkg/deb/rules delete mode 100644 distro/pkg/deb/source/format delete mode 100644 distro/pkg/nix/default.nix delete mode 100644 distro/pkg/nix/top-level.nix delete mode 100644 distro/pkg/rpm/knot-resolver.spec delete mode 100644 distro/tests/extra/all/control delete mode 100644 doc/README.md delete mode 100644 doc/_static/css/dev.css delete mode 100644 doc/_static/css/main.css delete mode 100644 doc/_static/logo-negativ-dev.svg delete mode 100644 doc/_static/package-lock.json delete mode 100644 doc/_static/package.json delete mode 100644 doc/architecture-manager.drawio delete mode 100644 doc/architecture-manager.svg delete mode 100644 doc/architecture-schema.drawio delete mode 100644 doc/architecture-schema.svg delete mode 100644 doc/config-debugging.rst delete mode 100644 doc/dev/Doxyfile delete mode 100644 doc/dev/architecture-gc.rst delete mode 100644 doc/dev/architecture-kresd.rst delete mode 100644 doc/dev/architecture-manager.rst delete mode 100644 doc/dev/architecture.rst delete mode 100644 doc/dev/build.rst delete mode 100644 doc/dev/cache-prefetch.rst delete mode 100644 doc/dev/conf.py delete mode 100644 doc/dev/config-answer-reordering.rst delete mode 100644 doc/dev/config-lua-dnssec.rst delete mode 100644 doc/dev/config-lua-experimental.rst delete mode 100644 doc/dev/config-lua-logging-monitoring.rst delete mode 100644 doc/dev/config-lua-network.rst delete mode 100644 doc/dev/config-lua-overview.rst delete mode 100644 doc/dev/config-lua-performance.rst delete mode 100644 doc/dev/config-lua-policy.rst delete mode 120000 doc/dev/daemon-bindings-cache.rst delete mode 120000 doc/dev/daemon-bindings-net_client.rst delete mode 120000 doc/dev/daemon-bindings-net_dns_tweaks.rst delete mode 120000 doc/dev/daemon-bindings-net_server.rst delete mode 120000 doc/dev/daemon-bindings-net_tlssrv.rst delete mode 120000 doc/dev/daemon-bindings-net_xdpsrv.rst delete mode 120000 doc/dev/daemon-bindings-worker.rst delete mode 120000 doc/dev/daemon-scripting.rst delete mode 100644 doc/dev/flowcharts/io_and_worker.dia delete mode 100644 doc/dev/flowcharts/task_ERD.dia delete mode 100644 doc/dev/flowcharts/tcp_task.dia delete mode 100644 doc/dev/flowcharts/udp_task.dia delete mode 100644 doc/dev/index.rst delete mode 100644 doc/dev/infra-pages.rst delete mode 100644 doc/dev/infra-warning.rst delete mode 100644 doc/dev/lib.rst delete mode 100644 doc/dev/logging_api.rst delete mode 100644 doc/dev/manager-dev.rst delete mode 120000 doc/dev/modules-bogus_log.rst delete mode 120000 doc/dev/modules-daf.rst delete mode 120000 doc/dev/modules-detect_time_jump.rst delete mode 120000 doc/dev/modules-detect_time_skew.rst delete mode 120000 doc/dev/modules-dns64.rst delete mode 120000 doc/dev/modules-dnstap.rst delete mode 120000 doc/dev/modules-edns_keepalive.rst delete mode 120000 doc/dev/modules-experimental_dot_auth.rst delete mode 120000 doc/dev/modules-hints.rst delete mode 120000 doc/dev/modules-http-custom-services.rst delete mode 120000 doc/dev/modules-http-trace.rst delete mode 120000 doc/dev/modules-http.rst delete mode 120000 doc/dev/modules-nsid.rst delete mode 120000 doc/dev/modules-policy.rst delete mode 120000 doc/dev/modules-prefill.rst delete mode 120000 doc/dev/modules-priming.rst delete mode 120000 doc/dev/modules-rebinding.rst delete mode 120000 doc/dev/modules-refuse_nord.rst delete mode 120000 doc/dev/modules-renumber.rst delete mode 120000 doc/dev/modules-rfc7706.rst delete mode 120000 doc/dev/modules-serve_stale.rst delete mode 120000 doc/dev/modules-stats.rst delete mode 120000 doc/dev/modules-ta_sentinel.rst delete mode 120000 doc/dev/modules-ta_signal_query.rst delete mode 120000 doc/dev/modules-view.rst delete mode 120000 doc/dev/modules-watchdog.rst delete mode 100644 doc/dev/modules_api.rst delete mode 100644 doc/dev/rename_ln.sh delete mode 100644 doc/dev/server_terminology.fodg delete mode 120000 doc/dev/systemd-multiinst.rst delete mode 100644 doc/dev/worker_api.rst delete mode 100644 doc/kresctl.8.in delete mode 100644 doc/kresd.8.in delete mode 100644 doc/meson.build delete mode 100644 doc/requirements.txt delete mode 100644 doc/resolution.png delete mode 100644 doc/server_terminology.svg delete mode 100644 doc/user/NEWS.rst delete mode 100644 doc/user/conf.py delete mode 100644 doc/user/config-cache-predict.rst delete mode 100644 doc/user/config-cache-prefill.rst delete mode 100644 doc/user/config-cache.rst delete mode 100644 doc/user/config-dns64.rst delete mode 100644 doc/user/config-dnssec.rst delete mode 100644 doc/user/config-edns-keepalive.rst delete mode 100644 doc/user/config-experimental-dot-auth.rst delete mode 100644 doc/user/config-experimental.rst delete mode 100644 doc/user/config-forward.rst delete mode 100644 doc/user/config-local-data.rst delete mode 100644 doc/user/config-logging-bogus.rst delete mode 100644 doc/user/config-logging-debugging.rst delete mode 100644 doc/user/config-logging-dnstap.rst delete mode 100644 doc/user/config-logging-monitoring.rst delete mode 100644 doc/user/config-lua.rst delete mode 100644 doc/user/config-monitoring-stats.rst delete mode 100644 doc/user/config-multiple-workers.rst delete mode 100644 doc/user/config-network-client.rst delete mode 100644 doc/user/config-network-dns-tweaks.rst delete mode 100644 doc/user/config-network-server-tls.rst delete mode 100644 doc/user/config-network-server.rst delete mode 100644 doc/user/config-network.rst delete mode 100644 doc/user/config-nsid.rst delete mode 100644 doc/user/config-overview.rst delete mode 100644 doc/user/config-performance.rst delete mode 100644 doc/user/config-policy-new.rst delete mode 100644 doc/user/config-priming.rst delete mode 100644 doc/user/config-rebinding.rst delete mode 100644 doc/user/config-refuse-no-rd.rst delete mode 100644 doc/user/config-renumber.rst delete mode 100644 doc/user/config-reordering.rst delete mode 100644 doc/user/config-rfc7706.rst delete mode 100644 doc/user/config-serve-stale.rst delete mode 100644 doc/user/config-ta-sentinel.rst delete mode 100644 doc/user/config-ta-signal-query.rst delete mode 100644 doc/user/config-time-jump-detection.rst delete mode 100644 doc/user/config-time-skew-detection.rst delete mode 100644 doc/user/config-views.rst delete mode 100644 doc/user/deployment-advanced-no-manager.rst delete mode 100644 doc/user/deployment-advanced-no-systemd-privileges.rst delete mode 100644 doc/user/deployment-advanced-no-systemd-processes.rst delete mode 100644 doc/user/deployment-advanced-no-systemd.rst delete mode 100644 doc/user/deployment-advanced.rst delete mode 100644 doc/user/deployment-docker.rst delete mode 100644 doc/user/deployment-manual.rst delete mode 100644 doc/user/deployment-systemd.rst delete mode 100644 doc/user/deployment-warning.rst delete mode 100644 doc/user/developer.rst delete mode 100644 doc/user/gettingstarted-config.rst delete mode 100644 doc/user/gettingstarted-install.rst delete mode 100644 doc/user/gettingstarted-startup.rst delete mode 100644 doc/user/index.rst delete mode 100644 doc/user/manager-api.rst delete mode 100644 doc/user/manager-client.rst delete mode 100644 doc/user/upgrading-to-6.rst delete mode 100644 doc/user/upgrading.rst create mode 100644 docs/index.md rename {doc/_static => docs}/logo-negativ.svg (100%) rename {doc/_static/css => docs}/user.css (100%) delete mode 100644 etc/config/config.cluster delete mode 100644 etc/config/config.docker delete mode 100644 etc/config/config.internal delete mode 100644 etc/config/config.isp delete mode 100644 etc/config/config.personal delete mode 100644 etc/config/config.privacy delete mode 100644 etc/config/config.splitview delete mode 100644 etc/config/meson.build delete mode 100644 etc/icann-ca.pem delete mode 100644 etc/meson.build delete mode 100644 etc/root.hints delete mode 100644 etc/root.keys delete mode 100644 lib/README.rst delete mode 100644 lib/cache/README.rst delete mode 100644 lib/cache/api.c delete mode 100644 lib/cache/api.h delete mode 100644 lib/cache/cdb_api.h delete mode 100644 lib/cache/cdb_lmdb.c delete mode 100644 lib/cache/cdb_lmdb.h delete mode 100644 lib/cache/entry_list.c delete mode 100644 lib/cache/entry_pkt.c delete mode 100644 lib/cache/entry_rr.c delete mode 100644 lib/cache/impl.h delete mode 100644 lib/cache/knot_pkt.c delete mode 100644 lib/cache/nsec1.c delete mode 100644 lib/cache/nsec3.c delete mode 100644 lib/cache/overflow.test.integr/deckard.yaml delete mode 100644 lib/cache/overflow.test.integr/kresd_config.j2 delete mode 100644 lib/cache/overflow.test.integr/world_cz_vutbr_www.rpl delete mode 100644 lib/cache/peek.c delete mode 100644 lib/cache/test.integr/cache_minimal_nsec3.rpl delete mode 100644 lib/cache/test.integr/deckard.yaml delete mode 100644 lib/cache/test.integr/kresd_config.j2 delete mode 100644 lib/cache/util.h delete mode 100644 lib/cookies/alg_containers.c delete mode 100644 lib/cookies/alg_containers.h delete mode 100644 lib/cookies/alg_sha.c delete mode 100644 lib/cookies/alg_sha.h delete mode 100644 lib/cookies/control.h delete mode 100644 lib/cookies/helper.c delete mode 100644 lib/cookies/helper.h delete mode 100644 lib/cookies/lru_cache.c delete mode 100644 lib/cookies/lru_cache.h delete mode 100644 lib/cookies/nonce.c delete mode 100644 lib/cookies/nonce.h delete mode 100644 lib/defines.h delete mode 100644 lib/dnssec.c delete mode 100644 lib/dnssec.h delete mode 100644 lib/dnssec/nsec.c delete mode 100644 lib/dnssec/nsec.h delete mode 100644 lib/dnssec/nsec3.c delete mode 100644 lib/dnssec/nsec3.h delete mode 100644 lib/dnssec/signature.c delete mode 100644 lib/dnssec/signature.h delete mode 100644 lib/dnssec/ta.c delete mode 100644 lib/dnssec/ta.h delete mode 100644 lib/generic/README.rst delete mode 100644 lib/generic/array.h delete mode 100644 lib/generic/lru.c delete mode 100644 lib/generic/lru.h delete mode 100644 lib/generic/pack.h delete mode 100644 lib/generic/queue.c delete mode 100644 lib/generic/queue.h delete mode 100644 lib/generic/test_array.c delete mode 100644 lib/generic/test_lru.c delete mode 100644 lib/generic/test_pack.c delete mode 100644 lib/generic/test_queue.c delete mode 100644 lib/generic/test_trie.c delete mode 100644 lib/generic/trie.c delete mode 100644 lib/generic/trie.h delete mode 100644 lib/generic/trie.spdx delete mode 100644 lib/layer.h delete mode 100644 lib/layer/cache.c delete mode 100644 lib/layer/iterate.c delete mode 100644 lib/layer/iterate.h delete mode 100644 lib/layer/mode.rst delete mode 100644 lib/layer/test.integr/deckard.yaml delete mode 100644 lib/layer/test.integr/iter_cname_length.rpl delete mode 100644 lib/layer/test.integr/iter_limit_bad_glueless.rpl delete mode 100644 lib/layer/test.integr/iter_limit_refuse.rpl delete mode 100644 lib/layer/test.integr/kresd_config.j2 delete mode 100644 lib/layer/validate.c delete mode 100644 lib/layer/validate.test.integr/deckard.yaml delete mode 100644 lib/layer/validate.test.integr/fwd_insecure_but_rrsig_signer_invalid.rpl delete mode 100644 lib/layer/validate.test.integr/kresd_config.j2 delete mode 100644 lib/log.c delete mode 100644 lib/log.h delete mode 100644 lib/meson.build delete mode 100644 lib/module.c delete mode 100644 lib/module.h delete mode 100644 lib/resolve-impl.h delete mode 100644 lib/resolve-produce.c delete mode 100644 lib/resolve.c delete mode 100644 lib/resolve.h delete mode 100644 lib/rplan.c delete mode 100644 lib/rplan.h delete mode 100644 lib/rules/api.c delete mode 100644 lib/rules/api.h delete mode 100644 lib/rules/defaults.c delete mode 100644 lib/rules/forward.c delete mode 100644 lib/rules/impl.h delete mode 100644 lib/rules/local-addr.c delete mode 100644 lib/rules/zonefile.c delete mode 100644 lib/selection.c delete mode 100644 lib/selection.h delete mode 100644 lib/selection_forward.c delete mode 100644 lib/selection_forward.h delete mode 100644 lib/selection_iter.c delete mode 100644 lib/selection_iter.h delete mode 100644 lib/test_module.c delete mode 100644 lib/test_rplan.c delete mode 100644 lib/test_utils.c delete mode 100644 lib/test_zonecut.c delete mode 100644 lib/utils.c delete mode 100644 lib/utils.h delete mode 100644 lib/zonecut.c delete mode 100644 lib/zonecut.h delete mode 100644 manager/.dockerignore delete mode 100644 manager/.flake8 delete mode 100644 manager/.gitignore delete mode 100644 manager/.gitlab-ci.yml delete mode 100644 manager/.python-version delete mode 100644 manager/ARCHITECTURE.md delete mode 100644 manager/ERROR_HANDLING.md delete mode 100644 manager/README.md delete mode 100644 manager/build_c_extensions.py delete mode 100644 manager/etc/knot-resolver/.gitignore delete mode 100644 manager/etc/knot-resolver/config.dev.yaml delete mode 100644 manager/etc/knot-resolver/config.example.docker.yaml delete mode 100644 manager/etc/knot-resolver/config.example.internal.yaml delete mode 100644 manager/etc/knot-resolver/config.example.isp.yaml delete mode 100644 manager/etc/knot-resolver/config.example.personal.yaml delete mode 100644 manager/etc/knot-resolver/config.yaml delete mode 100644 manager/knot_resolver_manager/__init__.py delete mode 100644 manager/knot_resolver_manager/__main__.py delete mode 100644 manager/knot_resolver_manager/cli/__init__.py delete mode 100644 manager/knot_resolver_manager/cli/__main__.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/cache.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/completion.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/config.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/convert.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/help.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/metrics.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/reload.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/schema.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/stop.py delete mode 100644 manager/knot_resolver_manager/cli/cmd/validate.py delete mode 100644 manager/knot_resolver_manager/cli/command.py delete mode 100644 manager/knot_resolver_manager/cli/kresctl.py delete mode 100644 manager/knot_resolver_manager/cli/main.py delete mode 100644 manager/knot_resolver_manager/compat/__init__.py delete mode 100644 manager/knot_resolver_manager/compat/asyncio.py delete mode 100644 manager/knot_resolver_manager/compat/dataclasses.py delete mode 100644 manager/knot_resolver_manager/config_store.py delete mode 100644 manager/knot_resolver_manager/constants.py delete mode 100644 manager/knot_resolver_manager/datamodel/__init__.py delete mode 100644 manager/knot_resolver_manager/datamodel/cache_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/config_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/design-notes.yml delete mode 100644 manager/knot_resolver_manager/datamodel/dns64_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/dnssec_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/forward_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/globals.py delete mode 100644 manager/knot_resolver_manager/datamodel/local_data_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/logging_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/lua_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/management_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/monitoring_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/network_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/options_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/policy_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/rpz_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/slice_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/static_hints_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/stub_zone_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/templates/__init__.py delete mode 100644 manager/knot_resolver_manager/datamodel/templates/cache.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/config.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/dns64.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/dnssec.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/forward.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/local_data.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/logging.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/macros/cache_macros.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/macros/forward_macros.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/macros/local_data_macros.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/macros/policy_macros.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/macros/view_macros.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/monitoring.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/network.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/options.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/static_hints.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/views.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/templates/webmgmt.lua.j2 delete mode 100644 manager/knot_resolver_manager/datamodel/types/__init__.py delete mode 100644 manager/knot_resolver_manager/datamodel/types/base_types.py delete mode 100644 manager/knot_resolver_manager/datamodel/types/enums.py delete mode 100644 manager/knot_resolver_manager/datamodel/types/files.py delete mode 100644 manager/knot_resolver_manager/datamodel/types/generic_types.py delete mode 100644 manager/knot_resolver_manager/datamodel/types/types.py delete mode 100644 manager/knot_resolver_manager/datamodel/view_schema.py delete mode 100644 manager/knot_resolver_manager/datamodel/webmgmt_schema.py delete mode 100644 manager/knot_resolver_manager/exceptions.py delete mode 100644 manager/knot_resolver_manager/kres_manager.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/__init__.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/interface.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/registered_workers.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/__init__.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/config_file.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/plugin/fast_rpcinterface.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/plugin/manager_integration.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/plugin/notifymodule.c delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/plugin/patch_logger.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/plugin/sd_notify.py delete mode 100644 manager/knot_resolver_manager/kresd_controller/supervisord/supervisord.conf.j2 delete mode 100644 manager/knot_resolver_manager/log.py delete mode 100644 manager/knot_resolver_manager/main.py delete mode 100644 manager/knot_resolver_manager/server.py delete mode 100644 manager/knot_resolver_manager/statistics.py delete mode 100644 manager/knot_resolver_manager/utils/__init__.py delete mode 100644 manager/knot_resolver_manager/utils/async_utils.py delete mode 100644 manager/knot_resolver_manager/utils/custom_atexit.py delete mode 100644 manager/knot_resolver_manager/utils/etag.py delete mode 100644 manager/knot_resolver_manager/utils/functional.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/README.md delete mode 100644 manager/knot_resolver_manager/utils/modeling/__init__.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/base_generic_type_wrapper.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/base_schema.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/base_value_type.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/exceptions.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/json_pointer.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/parsing.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/query.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/renaming.py delete mode 100644 manager/knot_resolver_manager/utils/modeling/types.py delete mode 100644 manager/knot_resolver_manager/utils/requests.py delete mode 100644 manager/knot_resolver_manager/utils/systemd_notify.py delete mode 100644 manager/knot_resolver_manager/utils/which.py delete mode 100644 manager/meson.build delete mode 100755 manager/poe delete mode 100644 manager/pyproject.toml delete mode 100644 manager/scripts/_env.sh delete mode 100755 manager/scripts/codecheck delete mode 100755 manager/scripts/commit delete mode 100755 manager/scripts/configure-vscode delete mode 100755 manager/scripts/container.py delete mode 100644 manager/scripts/create_setup.py delete mode 100755 manager/scripts/docs delete mode 100755 manager/scripts/examples delete mode 100644 manager/scripts/install.sh delete mode 100644 manager/scripts/make-package.sh delete mode 100755 manager/scripts/man delete mode 100755 manager/scripts/run delete mode 100755 manager/scripts/run-debug delete mode 100644 manager/setup.py delete mode 100644 manager/shell-completion/client.bash delete mode 100644 manager/shell-completion/client.fish delete mode 100644 manager/shell-completion/meson.build delete mode 100644 manager/tests/README.md delete mode 100644 manager/tests/integration/.gitignore delete mode 100644 manager/tests/integration/config.yml delete mode 100644 manager/tests/integration/runner.py delete mode 100644 manager/tests/packaging/control delete mode 100755 manager/tests/packaging/dependencies.py delete mode 100755 manager/tests/packaging/interactive/cache-clear.sh delete mode 100755 manager/tests/packaging/interactive/etag.sh delete mode 100755 manager/tests/packaging/interactive/metrics.sh delete mode 100755 manager/tests/packaging/interactive/reload.sh delete mode 100755 manager/tests/packaging/interactive/workers.sh delete mode 100755 manager/tests/packaging/knot-resolver.sh delete mode 100755 manager/tests/packaging/kresctl.sh delete mode 100755 manager/tests/packaging/manpage.sh delete mode 100755 manager/tests/packaging/systemd_service.sh delete mode 100644 manager/tests/unit/__init__.py delete mode 100644 manager/tests/unit/datamodel/templates/test_cache_macros.py delete mode 100644 manager/tests/unit/datamodel/templates/test_common_macros.py delete mode 100644 manager/tests/unit/datamodel/templates/test_forward_macros.py delete mode 100644 manager/tests/unit/datamodel/templates/test_network_macros.py delete mode 100644 manager/tests/unit/datamodel/templates/test_policy_macros.py delete mode 100644 manager/tests/unit/datamodel/templates/test_types_render.py delete mode 100644 manager/tests/unit/datamodel/templates/test_view_macros.py delete mode 100644 manager/tests/unit/datamodel/test_config_schema.py delete mode 100644 manager/tests/unit/datamodel/test_forward_schema.py delete mode 100644 manager/tests/unit/datamodel/test_local_data.py delete mode 100644 manager/tests/unit/datamodel/test_lua_schema.py delete mode 100644 manager/tests/unit/datamodel/test_management_schema.py delete mode 100644 manager/tests/unit/datamodel/test_network_schema.py delete mode 100644 manager/tests/unit/datamodel/test_policy_schema.py delete mode 100644 manager/tests/unit/datamodel/test_rpz_schema.py delete mode 100644 manager/tests/unit/datamodel/types/test_base_types.py delete mode 100644 manager/tests/unit/datamodel/types/test_custom_types.py delete mode 100644 manager/tests/unit/datamodel/types/test_generic_types.py delete mode 100644 manager/tests/unit/test_config_store.py delete mode 100644 manager/tests/unit/test_knot_resolver_manager.py delete mode 100644 manager/tests/unit/utils/modeling/test_base_schema.py delete mode 100644 manager/tests/unit/utils/modeling/test_etag.py delete mode 100644 manager/tests/unit/utils/modeling/test_json_pointer.py delete mode 100644 manager/tests/unit/utils/modeling/test_query.py delete mode 100644 manager/tests/unit/utils/modeling/test_renaming.py delete mode 100644 manager/tests/unit/utils/modeling/test_types.py delete mode 100644 manager/tests/unit/utils/test_dataclasses.py delete mode 100644 manager/tests/unit/utils/test_functional.py delete mode 100644 meson.build delete mode 100644 meson_options.txt create mode 100644 mkdocs.yml delete mode 100644 modules/README.rst delete mode 100644 modules/bogus_log/README.rst delete mode 100644 modules/bogus_log/bogus_log.c delete mode 100644 modules/bogus_log/meson.build delete mode 100644 modules/bogus_log/test.integr/deckard.yaml delete mode 100644 modules/bogus_log/test.integr/kresd_config.j2 delete mode 100644 modules/bogus_log/test.integr/val_minimal_expiredsignature.rpl delete mode 100644 modules/cookies/README.rst delete mode 100644 modules/cookies/cookiectl.c delete mode 100644 modules/cookies/cookiectl.h delete mode 100644 modules/cookies/cookiemonster.c delete mode 100644 modules/cookies/cookiemonster.h delete mode 100644 modules/cookies/cookies.c delete mode 100644 modules/daf/README.rst delete mode 100644 modules/daf/daf.js delete mode 100644 modules/daf/daf.lua delete mode 100644 modules/daf/daf.test.lua delete mode 100644 modules/daf/daf_http.test.lua delete mode 100644 modules/daf/meson.build delete mode 100644 modules/daf/test.integr/deckard.yaml delete mode 100644 modules/daf/test.integr/kresd_config.j2 delete mode 100644 modules/daf/test.integr/module_daf.rpl delete mode 100644 modules/detect_time_jump/README.rst delete mode 100644 modules/detect_time_jump/detect_time_jump.lua delete mode 100644 modules/detect_time_skew/README.rst delete mode 100644 modules/detect_time_skew/detect_time_skew.lua delete mode 100644 modules/dns64/README.rst delete mode 100644 modules/dns64/dns64.lua delete mode 100644 modules/dns64/dns64.test.lua delete mode 100644 modules/dnstap/README.rst delete mode 100644 modules/dnstap/dnstap.c delete mode 100644 modules/dnstap/dnstap.proto delete mode 100644 modules/dnstap/meson.build delete mode 100644 modules/edns_keepalive/README.rst delete mode 100644 modules/edns_keepalive/edns_keepalive.c delete mode 100644 modules/edns_keepalive/meson.build delete mode 100644 modules/etcd/README.rst delete mode 100644 modules/etcd/etcd.lua delete mode 100644 modules/experimental_dot_auth/README.rst delete mode 100644 modules/experimental_dot_auth/experimental_dot_auth.lua delete mode 100644 modules/experimental_dot_auth/meson.build delete mode 100644 modules/extended_error/extended_error.c delete mode 100644 modules/extended_error/meson.build delete mode 100644 modules/graphite/README.rst delete mode 100644 modules/graphite/graphite.lua delete mode 100644 modules/hints/README.rst delete mode 100644 modules/hints/hints.c delete mode 100644 modules/hints/meson.build delete mode 100644 modules/hints/tests/hints.test.hosts delete mode 100644 modules/hints/tests/hints.test.lua delete mode 100644 modules/hints/tests/hints_test.zone delete mode 100644 modules/http/README.rst delete mode 100644 modules/http/custom_services.rst delete mode 100644 modules/http/debug_opensslkeylog.c delete mode 100644 modules/http/http.lua.in delete mode 100644 modules/http/http.test.lua delete mode 100644 modules/http/http_doh.lua delete mode 100644 modules/http/http_doh.test.lua delete mode 100644 modules/http/http_tls_cert.lua delete mode 100644 modules/http/http_trace.lua delete mode 100644 modules/http/meson.build delete mode 100644 modules/http/prometheus.lua delete mode 100644 modules/http/prometheus.rst delete mode 100644 modules/http/static/bootstrap-theme.min.css delete mode 100644 modules/http/static/bootstrap-theme.min.css.spdx delete mode 100644 modules/http/static/bootstrap.min.css delete mode 100644 modules/http/static/bootstrap.min.css.spdx delete mode 100644 modules/http/static/bootstrap.min.js delete mode 100644 modules/http/static/bootstrap.min.js.spdx delete mode 100644 modules/http/static/d3.js delete mode 100644 modules/http/static/d3.spdx delete mode 100644 modules/http/static/datamaps.world.min.js delete mode 100644 modules/http/static/datamaps.world.min.spdx delete mode 100644 modules/http/static/dygraph.min.js delete mode 100644 modules/http/static/dygraph.min.js.spdx delete mode 100644 modules/http/static/epoch.css delete mode 100644 modules/http/static/epoch.js delete mode 100644 modules/http/static/epoch.spdx delete mode 100644 modules/http/static/favicon.ico delete mode 100644 modules/http/static/glyphicons-halflings-regular.spdx delete mode 100644 modules/http/static/glyphicons-halflings-regular.woff2 delete mode 100644 modules/http/static/jquery.js delete mode 100644 modules/http/static/jquery.spdx delete mode 100644 modules/http/static/kresd.css delete mode 100644 modules/http/static/kresd.js delete mode 100644 modules/http/static/main.tpl delete mode 100644 modules/http/static/selectize.bootstrap3.css delete mode 100644 modules/http/static/selectize.min.js delete mode 100644 modules/http/static/selectize.spdx delete mode 100644 modules/http/static/topojson.js delete mode 100644 modules/http/static/topojson.spdx delete mode 100644 modules/http/test_tls/broken.crt delete mode 100644 modules/http/test_tls/broken.key delete mode 100644 modules/http/test_tls/ca.crt delete mode 100644 modules/http/test_tls/chain.crt delete mode 100644 modules/http/test_tls/test.crt delete mode 100644 modules/http/test_tls/test.key delete mode 100644 modules/http/test_tls/tls.test.lua delete mode 100644 modules/http/trace.rst delete mode 100644 modules/meson.build delete mode 100644 modules/nsid/README.rst delete mode 100644 modules/nsid/meson.build delete mode 100644 modules/nsid/nsid.c delete mode 100644 modules/nsid/nsid.test.lua delete mode 100644 modules/policy/README.rst delete mode 160000 modules/policy/lua-aho-corasick delete mode 100644 modules/policy/meson.build delete mode 100644 modules/policy/noipv6.test.integr/broken-ipv6.rpl delete mode 100644 modules/policy/noipv6.test.integr/deckard.yaml delete mode 100644 modules/policy/noipv6.test.integr/kresd_config.j2 delete mode 100644 modules/policy/noipvx.test.integr/broken-ipvx.rpl delete mode 100644 modules/policy/noipvx.test.integr/deckard.yaml delete mode 100644 modules/policy/noipvx.test.integr/kresd_config.j2 delete mode 100644 modules/policy/policy.lua delete mode 100644 modules/policy/policy.rpz.test.lua delete mode 100644 modules/policy/policy.slice.test.lua delete mode 100644 modules/policy/policy.test.lua delete mode 100644 modules/policy/policy.test.rpz delete mode 100644 modules/policy/policy.test.rpz.soa delete mode 100644 modules/policy/test.integr/deckard.yaml delete mode 100644 modules/policy/test.integr/kresd_config.j2 delete mode 100644 modules/policy/test.integr/refuse.rpl delete mode 100644 modules/predict/README.rst delete mode 100644 modules/predict/predict.lua delete mode 100644 modules/predict/predict.test.lua delete mode 100644 modules/prefetch/README.rst delete mode 100644 modules/prefetch/prefetch.lua delete mode 100644 modules/prefill/README.rst delete mode 100644 modules/prefill/prefill.lua delete mode 100644 modules/prefill/prefill.test/empty.zone delete mode 100644 modules/prefill/prefill.test/example.com.zone delete mode 100644 modules/prefill/prefill.test/prefill.test.lua delete mode 100644 modules/prefill/prefill.test/random.zone delete mode 100644 modules/prefill/prefill.test/testroot.zone delete mode 100644 modules/prefill/prefill.test/testroot.zone.unsigned delete mode 100644 modules/prefill/prefill.test/testroot_no_soa.zone delete mode 100644 modules/priming/README.rst delete mode 100644 modules/priming/priming.lua delete mode 100644 modules/rebinding/README.rst delete mode 100644 modules/rebinding/rebinding.lua delete mode 100644 modules/rebinding/test.integr/deckard.yaml delete mode 100644 modules/rebinding/test.integr/kresd_config.j2 delete mode 100644 modules/rebinding/test.integr/module_rebinding.rpl delete mode 100644 modules/refuse_nord/README.rst delete mode 100644 modules/refuse_nord/meson.build delete mode 100644 modules/refuse_nord/refuse_nord.c delete mode 100644 modules/refuse_nord/test.integr/deckard.yaml delete mode 100644 modules/refuse_nord/test.integr/kresd_config.j2 delete mode 100644 modules/refuse_nord/test.integr/refuse_nord.rpl delete mode 100644 modules/renumber/README.rst delete mode 100644 modules/renumber/renumber.lua delete mode 100644 modules/renumber/renumber.test.lua delete mode 100644 modules/rfc7706.rst delete mode 100644 modules/serve_stale/README.rst delete mode 100644 modules/serve_stale/serve_stale.lua delete mode 100644 modules/serve_stale/test.integr/deckard.yaml delete mode 100644 modules/serve_stale/test.integr/kresd_config.j2 delete mode 100644 modules/serve_stale/test.integr/module_serve_stale.rpl delete mode 100644 modules/stats/README.rst delete mode 100644 modules/stats/meson.build delete mode 100644 modules/stats/stats.c delete mode 100644 modules/stats/test.integr/deckard.yaml delete mode 100644 modules/stats/test.integr/kresd_config.j2 delete mode 100644 modules/stats/test.integr/stats.rpl delete mode 100644 modules/ta_sentinel/README.rst delete mode 100644 modules/ta_sentinel/ta_sentinel.lua delete mode 100644 modules/ta_signal_query/README.rst delete mode 100644 modules/ta_signal_query/ta_signal_query.lua delete mode 100644 modules/ta_update/meson.build delete mode 100644 modules/ta_update/root.keys delete mode 100644 modules/ta_update/ta_update.lua delete mode 100644 modules/ta_update/ta_update.test.integr/deckard.yaml delete mode 100644 modules/ta_update/ta_update.test.integr/kresd_config.j2 delete mode 100644 modules/ta_update/ta_update.test.integr/rfc5011-monotonictime.rpl delete mode 100644 modules/ta_update/ta_update.test.integr/rfc5011/README delete mode 100755 modules/ta_update/ta_update.test.integr/rfc5011/dns2rpl.py delete mode 100644 modules/ta_update/ta_update.test.integr/rfc5011/empty.rpl delete mode 100755 modules/ta_update/ta_update.test.integr/rfc5011/genkeyszones.sh delete mode 100644 modules/ta_update/ta_update.test.integr/rfc5011/knot.root.conf delete mode 120000 modules/ta_update/ta_update.test.integr/rfc5011/pydnstest delete mode 100644 modules/ta_update/ta_update.test.integr/rfc5011/unsigned_check.db delete mode 100644 modules/ta_update/ta_update.test.integr/rfc5011/unsigned_ok.db delete mode 100644 modules/ta_update/ta_update.test.integr/rfc5011_unsupported_key_rollover.rpl delete mode 100644 modules/ta_update/ta_update.test.lua delete mode 100644 modules/ta_update/ta_update.unmanagedkey.test.integr/deckard.yaml delete mode 100644 modules/ta_update/ta_update.unmanagedkey.test.integr/kresd_config.j2 delete mode 120000 modules/ta_update/ta_update.unmanagedkey.test.integr/rfc5011 delete mode 100644 modules/ta_update/ta_update.unmanagedkey.test.integr/unmanagedkey-missing-monotonictime.rpl delete mode 100644 modules/ta_update/ta_update.unmanagedkey.test.integr/unmanagedkey-present-monotonictime.rpl delete mode 100644 modules/ta_update/ta_update.unmanagedkey.test.integr/unmanagedkey-revoke-monotonictime.rpl delete mode 100644 modules/view/README.rst delete mode 100644 modules/view/addr.test.integr/deckard.yaml delete mode 100644 modules/view/addr.test.integr/kresd_config.j2 delete mode 100644 modules/view/addr.test.integr/module_view_addr.rpl delete mode 100644 modules/view/meson.build delete mode 100644 modules/view/tsig.test.integr/deckard.yaml delete mode 100644 modules/view/tsig.test.integr/kresd_config.j2 delete mode 100644 modules/view/tsig.test.integr/module_view_tsig.rpl delete mode 100644 modules/view/view.lua delete mode 100644 modules/watchdog/README.rst delete mode 100644 modules/watchdog/watchdog.lua delete mode 100644 modules/workarounds/README.rst delete mode 100644 modules/workarounds/workarounds.lua delete mode 100644 python/knot_resolver.py.in delete mode 100644 python/meson.build delete mode 100644 python/setup.py.in delete mode 100755 scripts/bench.sh delete mode 100755 scripts/bugreport-journals.py delete mode 100755 scripts/build-in-obs.sh delete mode 100755 scripts/coverage_c_combine.sh delete mode 100755 scripts/coverage_env.sh delete mode 100755 scripts/doh_b64encode_query.py delete mode 100755 scripts/enable-repo.py delete mode 100755 scripts/gen-cdefs.sh delete mode 100755 scripts/gen-pgp-keyblock.sh delete mode 100755 scripts/get-date.sh delete mode 100755 scripts/kresd-host.lua delete mode 100755 scripts/kresd-query.lua delete mode 100644 scripts/kresd.apparmor delete mode 100755 scripts/luacov_gen_empty.sh delete mode 100755 scripts/luacov_to_info.lua delete mode 100755 scripts/make-archive.sh delete mode 100755 scripts/make-doc.sh delete mode 100755 scripts/make-obs.sh delete mode 100755 scripts/map_install_src.lua delete mode 100755 scripts/run-pylint.sh delete mode 100755 scripts/run-scanbuild-with-args.sh delete mode 100755 scripts/test-config.sh delete mode 100755 scripts/test-integration-prepare.sh delete mode 100755 scripts/update-authors.sh delete mode 100755 scripts/update-root-hints.sh delete mode 100755 scripts/upstream-version.sh delete mode 100644 security.txt delete mode 100644 systemd/README.rst delete mode 100644 systemd/knot-resolver.service.in delete mode 100644 systemd/kres-cache-gc.service.in delete mode 100644 systemd/kresd.systemd.7.in delete mode 100644 systemd/kresd.target delete mode 100644 systemd/kresd@.service.in delete mode 100644 systemd/meson.build delete mode 100644 systemd/multiinst.rst delete mode 100644 systemd/sysusers.d/knot-resolver.conf.in delete mode 100644 systemd/tmpfiles.d/knot-resolver.conf.in delete mode 100644 tests/.gitignore delete mode 100644 tests/README.rst delete mode 100644 tests/config/basic.test.lua delete mode 100644 tests/config/cache.test.lua delete mode 100644 tests/config/doh2.test.lua delete mode 100644 tests/config/lru.test.lua delete mode 100644 tests/config/meson.build delete mode 100644 tests/config/net.test.lua delete mode 160000 tests/config/tapered delete mode 100644 tests/config/test.cfg delete mode 100644 tests/config/test_dns_generators.lua delete mode 100644 tests/config/test_utils.lua delete mode 100644 tests/config/tls.test.lua delete mode 100644 tests/config/worker.test.lua delete mode 100644 tests/dnstap/meson.build delete mode 100644 tests/dnstap/src/dnstap-test/config delete mode 100644 tests/dnstap/src/dnstap-test/go.mod delete mode 100644 tests/dnstap/src/dnstap-test/go.sum delete mode 100644 tests/dnstap/src/dnstap-test/main.go delete mode 100755 tests/dnstap/src/dnstap-test/run.sh delete mode 160000 tests/integration/deckard delete mode 100644 tests/integration/hints_zone.j2 delete mode 100644 tests/integration/meson.build delete mode 100644 tests/integration/testdata_notimpl/iter_class_any.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_dnsseclame_bug.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_dnsseclame_ds.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_dnsseclame_ds_ok.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_dnsseclame_ta.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_dnsseclame_ta_ok.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_dp_turnsuseless.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_ds_locate_ns.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_ds_locate_ns_cname.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_ds_locate_ns_detach.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_ds_locate_ns_nosoa.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_emptydp.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_emptydp_for_glue.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_fwdfirst.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_fwdfirstequal.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_fwdstub.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_fwdstubroot.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_got6only.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_pcdiff.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_pcnamerec.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_primenoglue.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_privaddr.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_ranoaa_lame.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_scrub_cname_an.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_scrub_dname_insec.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_scrub_dname_sec.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_scrub_ns.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_scrub_ns_fwd.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_scrub_ns_side.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_stub_noroot.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_stubfirst.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_stublastresort.rpl delete mode 100644 tests/integration/testdata_notimpl/iter_timeout_ra_aaaa.rpl delete mode 100644 tests/meson.build delete mode 100644 tests/pytests/README.rst delete mode 100755 tests/pytests/certs/tt-certgen-expired.sh delete mode 100755 tests/pytests/certs/tt-certgen.sh delete mode 100644 tests/pytests/certs/tt-expired.cert.pem delete mode 100644 tests/pytests/certs/tt-expired.key.pem delete mode 100644 tests/pytests/certs/tt.cert.pem delete mode 100644 tests/pytests/certs/tt.conf delete mode 100644 tests/pytests/certs/tt.key.pem delete mode 100644 tests/pytests/conftest.py delete mode 100644 tests/pytests/conn_flood.py delete mode 100644 tests/pytests/kresd.py delete mode 100644 tests/pytests/meson.build delete mode 100644 tests/pytests/proxy.py delete mode 100644 tests/pytests/proxy/tls-proxy.c delete mode 100644 tests/pytests/proxy/tls-proxy.h delete mode 100644 tests/pytests/proxy/tlsproxy.c delete mode 100644 tests/pytests/pylintrc delete mode 100644 tests/pytests/requirements.txt delete mode 100644 tests/pytests/templates/kresd.conf.j2 delete mode 100644 tests/pytests/test_conn_mgmt.py delete mode 100644 tests/pytests/test_edns.py delete mode 100644 tests/pytests/test_prefix.py delete mode 100644 tests/pytests/test_random_close.py delete mode 100644 tests/pytests/test_rehandshake.py delete mode 100644 tests/pytests/test_tls.py delete mode 100644 tests/pytests/utils.py delete mode 100644 tests/unit/meson.build delete mode 100644 tests/unit/mock_cmodule.c delete mode 100644 tests/unit/packaging/debian/10/builddeps delete mode 100755 tests/unit/packaging/test.sh delete mode 100644 tests/unit/test.h delete mode 100644 utils/cache_gc/.gitignore delete mode 100644 utils/cache_gc/README.rst delete mode 100644 utils/cache_gc/categories.c delete mode 100644 utils/cache_gc/categories.h delete mode 100644 utils/cache_gc/db.c delete mode 100644 utils/cache_gc/db.h delete mode 100644 utils/cache_gc/kr_cache_gc.c delete mode 100644 utils/cache_gc/kr_cache_gc.h delete mode 100644 utils/cache_gc/main.c delete mode 100644 utils/cache_gc/meson.build delete mode 100644 utils/cache_gc/test.integr/deckard.yaml delete mode 100644 utils/cache_gc/test.integr/val_rrsig.rpl delete mode 100644 utils/meson.build diff --git a/.clang-tidy b/.clang-tidy deleted file mode 100644 index b496044c4..000000000 --- a/.clang-tidy +++ /dev/null @@ -1,11 +0,0 @@ ---- -Checks: 'bugprone-*,cert-*,-cert-dcl03-c,-clang-analyzer-unix.Malloc,-clang-analyzer-deadcode.DeadStores,-clang-analyzer-valist.Uninitialized,readability-*,-readability-braces-*,-readability-else-after-return,-readability-redundant-declaration,-readability-non-const-parameter,google-readability-casting,misc-*,-misc-static-assert,-misc-macro-parentheses,-misc-unused-parameters' -WarningsAsErrors: 'cert-*,misc-*,readability-*,clang-analyzer-*,-readability-non-const-parameter' -HeaderFilterRegex: 'contrib/ucw/*.h' -CheckOptions: - - key: readability-identifier-naming - value: 'lower_case' - - key: readability-function-size.StatementThreshold - value: '400' - - key: readability-function-size.LineThreshold - value: '500' diff --git a/.dir-locals.el b/.dir-locals.el deleted file mode 100644 index e0bab750d..000000000 --- a/.dir-locals.el +++ /dev/null @@ -1,10 +0,0 @@ -;; emacs local configuration settings for knot-resolver source -;; surmised by dkg on 2016-04-02 23:46:50-0300 -;; SPDX-License-Identifier: GPL-3.0-or-later - -((c-mode - (indent-tabs-mode . t) - (tab-width . 8) - (c-basic-offset . 8) - (c-file-style . "linux")) - ) diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1da6af478..000000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -*.c diff=cpp -*.cpp diff=cpp diff --git a/.github/workflows/macOS.yaml b/.github/workflows/macOS.yaml deleted file mode 100644 index f7fe0907a..000000000 --- a/.github/workflows/macOS.yaml +++ /dev/null @@ -1,52 +0,0 @@ -name: macOS - -on: push - -jobs: - build-test: - name: Build & unit tests & sanity check - runs-on: macOS-latest - strategy: - matrix: - knot-version: ['3.2', '3.3'] - - steps: - - name: Checkout resolver code - uses: actions/checkout@v2 - with: - submodules: true - - - name: Install dependecies from brew - run: - brew install cmocka luajit libuv lmdb meson nghttp2 autoconf automake m4 libtool pkg-config - - - name: Install libknot from sources - env: - KNOT_DNS_VERSION: ${{ matrix.knot-version }} - run: | - git clone -b ${KNOT_DNS_VERSION} https://gitlab.nic.cz/knot/knot-dns.git - cd knot-dns - autoreconf -fi - ./configure --prefix=${HOME}/.local/usr --disable-static --disable-fastparser --disable-documentation --disable-daemon --disable-utilities --with-lmdb=no - make -j2 install - cd .. - - - name: Build resolver - run: | - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${HOME}/.local/usr/lib/pkgconfig" - meson build_darwin --default-library=static --buildtype=debugoptimized --prefix=${HOME}/.local/usr -Dc_args='-fno-omit-frame-pointer' - ninja -C build_darwin -v install - - - name: Run unit tests - env: - MALLOC_CHECK_: 3 - MALLOC_PERTURB_: 223 - run: meson test -C build_darwin --suite unit - - - name: Run kresd - env: - MALLOC_CHECK_: 3 - MALLOC_PERTURB_: 223 - run: | - export DYLD_FALLBACK_LIBRARY_PATH="${DYLD_FALLBACK_LIBRARY_PATH}:${HOME}/.local/usr/lib/" - echo "quit()" | ${HOME}/.local/usr/sbin/kresd -a 127.0.0.1@53535 . diff --git a/.gitignore b/.gitignore index 32789e7ca..45ddf0ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,84 +1 @@ -*.6 -*.Plo -*.a -*.db -*.dylib -*.dylib.* -*.gcda -*.gcno -*.gcov -*.info -*.la -*.lo -*.log -*.mdb -*.o -*.out -*.so -*.so.* -*.swp -*~ -.deps -.dirstamp -.libs -.pytest_cache -/.build-depend -/.cache -/aclocal.m4 -/ar-lib -/autom4te.cache/* -/bench/bench_lru -/build* -/compile -/compile_commands.json -/config.guess -/config.h -/config.log -/config.status -/config.sub -/configure -/control -/coverage -/coverage.stats -/daemon/kresd -/daemon/lua/*.inc -/daemon/lua/trust_anchors.lua -/depcomp -/distro/tests/*/.vagrant -/doc/**/.doctrees -/doc/**/doxyxml -/doc/html -/doc/kresd.8 -/doc/texinfo -/doc/_static/config.schema.json -/doc/_static/schema_doc* -/doc/config-schema-body.md -/ephemeral_key.pem -/install-sh -/libkres.pc -/libtool -/ltmain.sh -/missing -/modules/dnstap/dnstap.pb-c.d -/pkg -/self.crt -/self.key -/stamp-h1 -/tags -/tests/pytests/*/tcproxy -/tests/pytests/*/tlsproxy -/tests/pytests/pytests.*.html -/tests/pytests/*.junit.xml -/tests/test_array -/tests/test_lru -/tests/test_map -/tests/test_module -/tests/test_pack -/tests/test_set -/tests/test_utils -/tests/test_zonecut -/ylwrap -_obj -kresd.amalg.c -libkres.amalg.c -luacov.*.out +site/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 5a13e7fc0..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,767 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# vim:foldmethod=marker -variables: - DEBIAN_FRONTEND: noninteractive - LC_ALL: C.UTF-8 - GIT_SUBMODULE_STRATEGY: recursive - GIT_STRATEGY: clone # sometimes unclean submodule dirs otherwise - RESPDIFF_PRIORITY: 5 - DISTROTEST_PRIORITY: 6 - RESPDIFF_COUNT: 1 - RESPDIFF_FORCE: 0 - RESPERF_FORCE: 0 - KNOT_VERSION: '3.1' - LIBKRES_ABI: 9 - LIBKRES_NAME: libkres - MESON_TEST: meson test -C build_ci* -t 4 --print-errorlogs - PREFIX: $CI_PROJECT_DIR/.local - EMAIL: 'ci@nic' - -image: $CI_REGISTRY/knot/knot-resolver/ci/debian-11:knot-$KNOT_VERSION -default: - interruptible: true - tags: - - docker - - linux - - amd64 - -stages: - - build - - sanity - - test - - respdiff - - deploy - - pkg - - # https://docs.gitlab.com/ce/ci/jobs/job_control.html#select-different-runner-tags-for-each-parallel-matrix-job -.multi_platform: &multi_platform - parallel: - matrix: - - PLATFORM: [ amd64, arm64 ] - tags: # some will override this part - - ${PLATFORM} - - docker - - linux - -.common: &common - except: - refs: - - master@knot/knot-resolver - - master@knot/security/knot-resolver - - tags - variables: - - $SKIP_CI == "1" - tags: - - docker - - linux - - amd64 - # Tests which decided to skip themselves get orange non-failure. - allow_failure: - exit_codes: - - 77 - -.after_build: &after_build - <<: *common - needs: - - build - before_script: - # meson detects changes and performs useless rebuild; hide the log - - ninja -C build_ci* &>/dev/null - - rm build_ci*/meson-logs/testlog*.txt # start with clean testlog - artifacts: - when: always - # The deckard-specific parts are a little messy, but they're hard to separate in YAML. - paths: - - build_ci*/meson-logs/testlog*.txt - - tmpdeckard* - - build_ci*/meson-logs/integration.deckard.junit.xml - reports: - junit: build_ci*/meson-logs/integration.deckard.junit.xml - -.nodep: &nodep - <<: *common - needs: [] - -# build {{{ -.build: &build - <<: *common - stage: build - artifacts: - when: always - paths: - - .local - - build_ci* - - pkg - reports: - junit: build_ci*/meson-logs/testlog.junit.xml - after_script: - - ci/fix-meson-junit.sh build_ci*/meson-logs/testlog.junit.xml - -archive: - <<: *build - except: null - script: - - apkg make-archive - -build: - <<: *build - script: - - meson build_ci --prefix=$PREFIX -Dmalloc=disabled -Dwerror=true -Dextra_tests=enabled - - ninja -C build_ci - - ninja -C build_ci install >/dev/null - - ${MESON_TEST} --suite unit --suite config --suite dnstap --no-suite snowflake - -build-knot32: - <<: *build - image: $CI_REGISTRY/knot/knot-resolver/ci/debian-11:knot-3.2 - script: - - meson build_ci_knot32 --prefix=$PREFIX -Dmalloc=disabled -Dwerror=true -Dextra_tests=enabled - - ninja -C build_ci_knot32 - - ninja -C build_ci_knot32 install >/dev/null - - ${MESON_TEST} --suite unit --suite config --suite dnstap --no-suite snowflake - -build-asan: - <<: *build - script: - # issues with UBSan and ASan in CI: - # - `ahocorasick.so` causes C++ problems - # - `--default-library=shared` causes link problems - - CC=clang CXX=clang++ CFLAGS=-fno-sanitize-recover=all CXXFLAGS=-fno-sanitize=undefined meson build_ci_asan --default-library=static --prefix=$PREFIX -Dmalloc=jemalloc -Db_sanitize=address,undefined -Dextra_tests=enabled - - ninja -C build_ci_asan - - ninja -C build_ci_asan install >/dev/null - # TODO _leaks: not sure what exactly is wrong in leak detection on config tests - # TODO skip_asan: all three of these disappear locally when using gcc 9.1 (except some leaks) - - MESON_TESTTHREADS=1 ASAN_OPTIONS=detect_leaks=0 ${MESON_TEST} --suite unit --suite config --suite dnstap --no-suite skip_asan --no-suite snowflake - -build:macOS: - <<: *nodep - only: - refs: - - branches@knot/knot-resolver - stage: build - when: delayed - start_in: 3 minutes # allow some time for mirroring, job creation - script: - - ci/gh_actions.py ${CI_COMMIT_REF_NAME} ${CI_COMMIT_SHA} - -docker: - <<: *nodep - stage: build - image: docker:latest - <<: *multi_platform - only: - refs: - - branches@knot/knot-resolver - tags: - - ${PLATFORM} - - dind - variables: - DOCKER_IMAGE_NAME: knot-resolver-test:${CI_COMMIT_SHA} - script: - - docker build --no-cache -t ${DOCKER_IMAGE_NAME} . - # TODO: perhaps try if the running image answers queries - after_script: # remove dangling images to avoid running out of disk space - - docker rmi ${DOCKER_IMAGE_NAME} - - docker rmi $(docker images -f "dangling=true" -q) - -sonarcloud: - <<: *nodep - stage: build - except: null - only: - - tags - - master@knot/knot-resolver - script: - - meson build_sonarcloud --prefix=$PREFIX -Dmalloc=disabled - - build-wrapper-linux-x86-64 --out-dir bw-output ninja -C build_sonarcloud - - > - sonar-scanner - -Dsonar.organization=cz-nic - -Dsonar.projectKey=CZ-NIC_knot-resolver - -Dsonar.sources=. - -Dsonar.cfamily.build-wrapper-output=bw-output - -Dsonar.host.url=https://sonarcloud.io - -Dsonar.projectVersion="$(git describe)" -# }}} - -# sanity {{{ -.sanity: &sanity - <<: *nodep - stage: sanity - -authors: - <<: *sanity - only: - refs: - - /^release.*$/ - script: - - LC_ALL=en_US.UTF-8 scripts/update-authors.sh - -news: - <<: *sanity - only: - refs: - - /^release.*$/ - script: - - head -n 1 NEWS | grep -q $(date +%Y-%m-%d) - -trivial_checks: # aggregated to save some processing - <<: *sanity - script: - - ci/no_assert_check.sh - - ci/deckard_commit_check.sh - -lint:other: - <<: *sanity - script: - - meson build_ci_lint &>/dev/null - - ninja -C build_ci* pylint - - ninja -C build_ci* flake8 - - ninja -C build_ci* luacheck - -lint:pedantic: - <<: *after_build - stage: sanity - script: - - meson build_pedantic_gcc -Dwerror=true -Dc_args='-Wpedantic' -Dextra_tests=enabled - - ninja -C build_pedantic_gcc - - > - CC=clang CXX=clang++ meson build_pedantic_clang -Dwerror=true -Dextra_tests=enabled -Dc_args=' - -Wpedantic -Wno-newline-eof -Wno-gnu-zero-variadic-macro-arguments -Wno-gnu-folding-constant' - - ninja -C build_pedantic_clang - -lint:scan-build: - <<: *after_build - # TODO migrate lint to debian-11 - image: $CI_REGISTRY/knot/knot-resolver/ci/debian-buster:knot-$KNOT_VERSION - before_script: - # -- end TODO - stage: sanity - artifacts: - when: on_failure - expire_in: '1 day' - paths: - - build_ci*/meson-logs/scanbuild - script: - - export SCANBUILD="$(realpath ./scripts/run-scanbuild-with-args.sh)" - - ninja -C build_ci* scan-build || true - - test "$(ls build_ci*/meson-logs/scanbuild/*/report-*.html | wc -l)" = 23 # we have this many errors ATM :-) - -lint:tidy: - <<: *after_build - # TODO migrate lint to debian-11 - image: $CI_REGISTRY/knot/knot-resolver/ci/debian-buster:knot-$KNOT_VERSION - before_script: - # -- end TODO - stage: sanity - script: - - ninja -C build_ci* tidy - -# Coverity reference: https://www.synopsys.com/blogs/software-security/integrating-coverity-scan-with-gitlab-ci/ -lint:coverity: - <<: *sanity - image: $CI_REGISTRY/knot/knot-resolver/ci/debian-11-coverity:knot-$KNOT_VERSION - only: - refs: - - nightly@knot/knot-resolver - - coverity@knot/knot-resolver - script: - - meson build_ci_cov --prefix=$PREFIX - - /opt/cov-analysis/bin/cov-build --dir cov-int ninja -C build_ci_cov - - tar cfz cov-int.tar.gz cov-int - - curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME - --form token=$COVERITY_SCAN_TOKEN --form email="knot-resolver@labs.nic.cz" - --form file=@cov-int.tar.gz --form version="`git describe --tags`" - --form description="`git describe --tags` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" - -.kres-gen: &kres-gen - <<: *sanity - script: - - meson build_ci_lib --prefix=$PREFIX -Dkres_gen_test=false - - ninja -C build_ci_lib daemon/kresd - - ninja -C build_ci_lib kres-gen - - git diff --quiet || (git diff; exit 1) -kres-gen-30: - <<: *kres-gen - image: $CI_REGISTRY/knot/knot-resolver/ci/debian-11:knot-3.0 -kres-gen-31: - <<: *kres-gen - image: $CI_REGISTRY/knot/knot-resolver/ci/debian-11:knot-3.1 -kres-gen-32: - <<: *kres-gen - image: $CI_REGISTRY/knot/knot-resolver/ci/debian-11:knot-3.2 - -root.hints: - <<: *sanity - only: - refs: - - /^release.*$/ - script: - - scripts/update-root-hints.sh -# }}} - -# test {{{ -.test_flaky: &test_flaky - <<: *after_build - stage: test - retry: - max: 1 - when: - - script_failure - -deckard: - <<: *test_flaky - # Deckard won't work with jemalloc due to a faketime bug: - # https://github.com/wolfcw/libfaketime/issues/130 - only: # trigger job only in repos under our control (privileged runner required) - - branches@knot/knot-resolver - - branches@knot/security/knot-resolver - tags: - - privileged - - amd64 - variables: - TMPDIR: $CI_PROJECT_DIR - script: - - ${MESON_TEST} --suite integration - -respdiff:basic: - <<: *after_build - stage: test - needs: - - build-asan - script: - - ulimit -n "$(ulimit -Hn)" # applies only for kresd ATM - - ./ci/respdiff/start-resolvers.sh - - ./ci/respdiff/run-respdiff-tests.sh udp - - $PREFIX/sbin/kres-cache-gc -c . -u 0 # simple GC sanity check - - cat results/respdiff.txt - - echo 'test if mismatch rate < 1.0 %' - - grep -q '^target disagrees.*0\.[0-9][0-9] %' results/respdiff.txt - after_script: - - killall --wait kresd - artifacts: - when: always - paths: - - kresd.log* - - results/*.txt - - results/*.png - - results/respdiff.db/data.mdb* - - ./*.info - -test:valgrind: - <<: *test_flaky - script: - - ${MESON_TEST} --suite unit --suite config --no-suite snowflake --wrap="valgrind --leak-check=full --trace-children=yes --quiet --suppressions=/lj.supp" - - MESON_TESTTHREADS=1 ${MESON_TEST} --wrap="valgrind --leak-check=full --trace-children=yes --quiet --suppressions=/lj.supp" --suite snowflake - -manager: - stage: test - needs: [] - trigger: - include: manager/.gitlab-ci.yml - strategy: depend - except: - refs: - - master@knot/knot-resolver - - master@knot/security/knot-resolver - - tags - variables: - - $SKIP_CI == "1" - -pytests: - <<: *test_flaky - needs: - - build-asan - artifacts: - when: always - paths: - - build_ci*/meson-logs/testlog*.txt - - tests/pytests/*.html - - tests/pytests/*.junit.xml - reports: # Can't have multiple junit XMLs? - junit: tests/pytests/pytests.parallel.junit.xml - script: - - ${MESON_TEST} --suite pytests -# }}} - -# respdiff {{{ -.condor: &condor - <<: *common - tags: - - condor - needs: [] - only: # trigger job only in repos under our control - - branches@knot/knot-resolver - - branches@knot/security/knot-resolver - # The set of respdiff+resperf jobs takes over two hours to execute. - when: manual - -.respdiff: &respdiff - <<: *condor - stage: respdiff - script: - - git diff-index --name-only origin/master | grep -qEv '^(AUTHORS|ci/|config.mk|COPYING|distro/|doc/|etc/|NEWS|README.md|scripts/|tests/|\.gitignore|\.gitlab-ci\.yml|\.travis\.yml)' || test $RESPDIFF_FORCE -gt 0 || exit 77 - - test ! -f /var/tmp/respdiff-jobs/buffer/buffer_$RESPDIFF_TEST_stats.json || test $RESPDIFF_FORCE -gt 0 || ( echo "Reference unstable, try again in ~3h or use RESPDIFF_FORCE=1."; exit 1 ) - - export LABEL=gl$(date +%s) - - export COMMITDIR="/var/tmp/respdiff-jobs/$(git rev-parse --short HEAD)-$LABEL" - - export TESTDIR="$COMMITDIR/$RESPDIFF_TEST" - - ln -s $COMMITDIR respdiff_commitdir - - > - sudo -u respdiff /var/opt/respdiff/contrib/job_manager/submit.py -w - -p $RESPDIFF_PRIORITY - -c $RESPDIFF_COUNT - $(sudo -u respdiff /var/opt/respdiff/contrib/job_manager/create.py - "$(git rev-parse --short HEAD)" -l $LABEL -t $RESPDIFF_TEST --knot-branch=$KNOT_VERSION - --respdiff-stats /var/tmp/respdiff-jobs/ref_current/*_${RESPDIFF_TEST}_stats.json) - - for f in $TESTDIR/*.json; do test -s "$f" || (cat $TESTDIR/*stderr*; cat $TESTDIR/j*_docker.txt; exit 1); done - - sudo -u respdiff /var/opt/respdiff/contrib/job_manager/plot_ref.sh $TESTDIR/.. /var/tmp/respdiff-jobs/ref_current $RESPDIFF_TEST - after_script: - - 'cp -t . respdiff_commitdir/$RESPDIFF_TEST/j* ||:' - - 'cp -t . respdiff_commitdir/*$RESPDIFF_TEST*.png ||:' - - 'cat respdiff_commitdir/$RESPDIFF_TEST/*histogram.tar.gz | tar -xf - -i ||:' - artifacts: - when: always - expire_in: 1 week - paths: - - ./j* - - ./*.png - - ./*histogram/* - -fwd-tls6-kresd.udp6: - <<: *respdiff - variables: - RESPDIFF_TEST: shortlist.fwd-tls6-kresd.udp6 - -fwd-udp6-kresd.udp6: - <<: *respdiff - variables: - RESPDIFF_TEST: shortlist.fwd-udp6-kresd.udp6 - -iter.udp6: - <<: *respdiff - variables: - RESPDIFF_TEST: shortlist.iter.udp6 - -iter.tls6: - <<: *respdiff - variables: - RESPDIFF_TEST: shortlist.iter.tls6 - -fwd-udp6-unbound.udp6: - <<: *respdiff - variables: - RESPDIFF_TEST: shortlist.fwd-udp6-unbound.udp6 - -fwd-udp6-unbound.tcp6: - <<: *respdiff - variables: - RESPDIFF_TEST: shortlist.fwd-udp6-unbound.tcp6 - -fwd-udp6-unbound.tls6: - <<: *respdiff - variables: - RESPDIFF_TEST: shortlist.fwd-udp6-unbound.tls6 - -.resperf: &resperf - <<: *condor - stage: respdiff - script: - - git diff-index --name-only origin/master | grep -qEv '^(AUTHORS|ci/|config.mk|COPYING|distro/|doc/|etc/|NEWS|README.md|scripts/|tests/|\.gitignore|\.gitlab-ci\.yml|\.travis\.yml)' || test $RESPERF_FORCE -gt 0 || exit 77 - - export LABEL=gl$(date +%s) - - export COMMITDIR="/var/tmp/respdiff-jobs/$(git rev-parse --short HEAD)-$LABEL" - - export TESTDIR="$COMMITDIR/$RESPERF_TEST" - - ln -s $COMMITDIR resperf_commitdir - - > - sudo -u respdiff /var/opt/respdiff/contrib/job_manager/submit.py -w - $(sudo -u respdiff /var/opt/respdiff/contrib/job_manager/create.py - "$(git rev-parse --short HEAD)" -l $LABEL --asan -t $RESPERF_TEST --knot-branch=$KNOT_VERSION) - - export EXITCODE=$(cat $TESTDIR/j*_exitcode) - - if [[ "$EXITCODE" == "0" ]]; then cat $TESTDIR/j*_resperf.txt; else cat $TESTDIR/j*_docker.txt; fi - - exit $EXITCODE - after_script: - - 'cp -t . resperf_commitdir/$RESPERF_TEST/j* ||:' - artifacts: - when: always - expire_in: 1 week - paths: - - ./j* - -rp:fwd-tls6.udp-asan: - <<: *resperf - variables: - RESPERF_TEST: resperf.fwd-tls6.udp - -rp:fwd-udp6.udp-asan: - <<: *resperf - variables: - RESPERF_TEST: resperf.fwd-udp6.udp - -rp:iter.udp-asan: - <<: *resperf - variables: - RESPERF_TEST: resperf.iter.udp -# }}} - -# deploy {{{ -# copy snapshot of current master to nightly branch for further processing -# (this is workaround for missing complex conditions for job limits in Gitlab) -nightly:copy: - stage: deploy - needs: [] - only: - variables: - - $CREATE_NIGHTLY == "1" - refs: - - master@knot/knot-resolver - script: - - 'tmp_file=$(mktemp)' - # delete nightly branch - - 'STATUS=$(curl --request PUT --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" -s -o ${tmp_file} -w "%{http_code}" "https://gitlab.nic.cz/api/v4/projects/147/repository/branches/nightly/unprotect")' - - '[ "x${STATUS}" == "x200" ] || { cat ${tmp_file}; rm ${tmp_file}; exit 1; }' - # no output from DELETE command - - 'STATUS=$(curl --request DELETE --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" -s -o ${tmp_file} -w "%{http_code}" "https://gitlab.nic.cz/api/v4/projects/147/repository/branches/nightly")' - # recreate nightly branch from current master - - 'STATUS=$(curl --request POST --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" -s -o ${tmp_file} -w "%{http_code}" "https://gitlab.nic.cz/api/v4/projects/147/repository/branches?branch=nightly&ref=master")' - - '[ "x${STATUS}" == "x201" ] || { cat ${tmp_file}; rm ${tmp_file}; exit 1; }' - - 'STATUS=$(curl --request PUT --header "PRIVATE-TOKEN: $GITLAB_API_TOKEN" -s -o ${tmp_file} -w "%{http_code}" "https://gitlab.nic.cz/api/v4/projects/147/repository/branches/nightly/protect")' - - '[ "x${STATUS}" == "x200" ] || { cat ${tmp_file}; rm ${tmp_file}; exit 1; }' - - 'rm ${tmp_file}' - -obs:trigger: &obs_trigger - stage: deploy - only: - variables: - - $OBS_REPO - dependencies: # wait for previous stages to finish - - archive - environment: - name: OBS/$OBS_REPO - url: https://build.opensuse.org/package/show/home:CZ-NIC:$OBS_REPO/knot-resolver - tags: - - condor - allow_failure: false # required to make when: manual action blocking - script: - - python3 -m venv ./venv - - source ./venv/bin/activate - - pip install --upgrade pip - - pip install apkg - - scripts/make-obs.sh - - echo y | scripts/build-in-obs.sh $OBS_REPO - -obs:release: - <<: *obs_trigger - only: - - tags - variables: - OBS_REPO: knot-resolver-latest - when: manual - -obs:odvr: - <<: *obs_trigger - stage: pkg # last stage to ensure it doesn't block anything - only: - - tags - variables: - OBS_REPO: knot-resolver-odvr - when: manual -# }}} - -# pkg {{{ -.pkg_deb_extras: &pkg_deb_extras - before_script: - - apt update - -.enable_repo_build: &enable_repo_build - before_script: - - ./scripts/enable-repo.py build - -.pkg_test: &pkg_test - stage: pkg - needs: - - pkg:make-archive - tags: - - lxc - - amd64 - script: - # make sure the archive from pkg:make-archive is available - - apkg info cache | grep archive/dev - - apkg install --build-dep - - apkg test --test-dep - -.pkg_test_user: &pkg_test_user - <<: *pkg_test - script: - - apkg info cache | grep archive/dev - - apkg build-dep --test-dep - - apkg make-archive - - chgrp -R test . - - chmod -R g+rwX . - - find -type d -exec chmod g+s {} + - - git config core.sharedRepository group - - sudo -u test git config --global --add safe.directory '*' - - sudo -u test apkg build - - apkg install - - apkg test - -.pkg_test_deb: &pkg_test_deb - <<: *pkg_test - <<: *pkg_deb_extras - -pkg:make-archive: - # archive is created once and reused in other pkg jobs - <<: *pkg_deb_extras - stage: pkg - image: $CI_REGISTRY/packaging/apkg/full/debian-11 - tags: - - lxc - - amd64 - needs: [] - artifacts: - paths: - - pkg/ - script: - - apkg build-dep - - apkg make-archive - -pkg:debian-12: - <<: *pkg_test_deb - image: $CI_REGISTRY/packaging/apkg/full/debian-12 - -pkg:debian-11: - <<: *pkg_test_deb - image: $CI_REGISTRY/packaging/apkg/full/debian-11 - -pkg:ubuntu-24.04: - <<: *pkg_test_deb - image: $CI_REGISTRY/packaging/apkg/full/ubuntu-24.04 - -pkg:ubuntu-22.04: - <<: *pkg_test_deb - image: $CI_REGISTRY/packaging/apkg/full/ubuntu-22.04 - -pkg:ubuntu-20.04: - <<: *pkg_test_deb - <<: *enable_repo_build - image: $CI_REGISTRY/packaging/apkg/full/ubuntu-20.04 - -pkg:fedora-39: - <<: *pkg_test - image: $CI_REGISTRY/packaging/apkg/full/fedora-39 - -pkg:fedora-38: - <<: *pkg_test - image: $CI_REGISTRY/packaging/apkg/full/fedora-38 - -pkg:alma-9: - <<: *pkg_test - image: $CI_REGISTRY/packaging/apkg/full/alma-9 - -pkg:arch: - <<: *pkg_test_user - image: $CI_REGISTRY/packaging/apkg/full/arch - before_script: - - pacman -Syy - -# RHEL 8 derivatives would need more work due to *default* python being old -#pkg:rocky-8: -# <<: *pkg_test -# image: $CI_REGISTRY/packaging/apkg/full/rocky-8 - -# Leap 15.4 would need more work due to *default* python being old -#pkg:opensuse-15.4: -# <<: *pkg_test -# <<: *enable_repo_build -# image: $CI_REGISTRY/packaging/apkg/full/opensuse-15.4 -# allow_failure: true # SUSE is always special -# }}} - -# docs: {{{ - -docs:build: - image: $CI_REGISTRY/packaging/apkg/lxc/fedora-36 - stage: deploy - needs: [] - script: - - git submodule update --init --recursive - - apkg build-dep -y - - dnf install -y python3-sphinx texinfo doxygen - - pip3 install -U -r doc/requirements.txt - - pip3 install -U sphinx_rtd_theme - - meson build_doc -Ddoc=enabled - - ninja -C build_doc doc - artifacts: - paths: - - doc/html - -# This job deploys the Knot Resolver documentation into a development -# environment, which may be found at -# . -# The actual URL is found in the `environment.url` property, where -# $CI_PROJECT_NAMESPACE will be "knot" on the upstream GitLab. -docs:develop: - stage: deploy - needs: - - docs:build - except: - refs: - - tags - script: - - echo "Propagating artifacts into develop environment" - artifacts: - paths: - - doc/html - environment: - name: docs-develop/$CI_COMMIT_REF_NAME - url: https://www.knot-resolver.cz/documentation/artifacts/$CI_JOB_ID/index.html - -# This job deploys the Knot Resolver documentation into a release environment, -# which may be found at -# . -# The actual URL is found in the `environment.url` property, where -# $CI_PROJECT_NAMESPACE will be "knot" on the upstream GitLab. -# The job requires the `DOCS_ENV_NAME` variable to be set by the user. -docs:release: - stage: deploy - needs: - - docs:build - only: - refs: - - tags - script: echo "Propagating artifacts into release environment" - artifacts: - paths: - - doc/html - environment: - name: docs-release/$CI_COMMIT_TAG - url: https://www.knot-resolver.cz/documentation/artifacts/$CI_JOB_ID/index.html - -# This job deploys the current docs as -pages: - stage: deploy - needs: - - docs:build - script: mv doc/html public - when: manual - artifacts: - paths: - - public - -# This job pushes the Knot Resolver documentation into a new branch of the -# `websites/knot-resolver.cz` repository. -docs:website: - stage: deploy - needs: - - docs:build - when: manual - variables: - script: - - "SRC_COMMIT_REF=\"$CI_COMMIT_TAG$CI_COMMIT_BRANCH$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\"" - - "git clone \"https://gitlab-ci-token:$WEBSITE_DOCS_CI_TOKEN@$CI_SERVER_HOST:$CI_SERVER_PORT/websites/knot-resolver.cz.git\" website" - - "cp --recursive --verbose \"doc/html\" \"website/content/documentation/$SRC_COMMIT_REF\"" - - cd website - - "git checkout -b \"docs/$SRC_COMMIT_REF\"" - - "git add \"content/documentation/$SRC_COMMIT_REF\"" - - "git commit -m \"docs: $SRC_COMMIT_REF\"" - - "git push --force --set-upstream origin \"docs/$SRC_COMMIT_REF\"" - -# }}} diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index aebacbe99..000000000 --- a/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule "tests/integration/deckard"] - path = tests/integration/deckard - url = https://gitlab.nic.cz/knot/deckard.git -[submodule "modules/policy/lua-aho-corasick"] - path = modules/policy/lua-aho-corasick - url = https://gitlab.nic.cz/knot/3rdparty/lua-aho-corasick.git -[submodule "tests/config/tapered"] - path = tests/config/tapered - url = https://gitlab.nic.cz/knot/3rdparty/lua-tapered.git diff --git a/.luacheckrc b/.luacheckrc deleted file mode 100644 index 28ef054d1..000000000 --- a/.luacheckrc +++ /dev/null @@ -1,99 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later -std = 'luajit' -new_read_globals = { - 'cache', - 'eval_cmd', - 'event', - 'help', - '_hint_root_file', - 'hostname', - 'map', - 'modules', - 'net', - 'package_version', - 'quit', - 'resolve', - 'ta_update', - 'fromjson', - 'todname', - 'tojson', - 'user', - 'worker', - 'kluautil_list_dir', - -- Sandbox declarations - 'kB', - 'MB', - 'GB', - 'sec', - 'second', - 'minute', - 'min', - 'hour', - 'day', - 'panic', - 'log', - 'log_error', - 'log_warn', - 'log_info', - 'log_debug', - 'log_fmt', - 'log_qry', - 'log_req', - 'log_level', - 'log_target', - 'log_groups', - 'LOG_CRIT', - 'LOG_ERR', - 'LOG_WARNING', - 'LOG_NOTICE', - 'LOG_INFO', - 'LOG_DEBUG', - 'mode', - 'reorder_RR', - 'option', - 'env', - 'debugging', - 'kres', - 'libknot_SONAME', - 'libzscanner_SONAME', - 'table_print', - '_ENV', -} - -new_globals = { - -- Modules are allowed to be set and accessed from global namespace - 'policy', - 'view', - 'stats', - 'http', - 'trust_anchors', - 'bogus_log', -} - --- Luacheck < 0.18 doesn't support new_read_globals -for _, v in ipairs(new_read_globals) do - table.insert(new_globals, v) -end - -exclude_files = { - 'modules/policy/lua-aho-corasick', -- Vendored - 'tests/config/tapered', - 'build*/**', -- build outputs - 'pkg/**', -- packaging outputs -} - --- Ignore some pedantic checks -ignore = { - '4.1/err', -- Shadowing err - '4.1/.', -- Shadowing one letter variables -} - --- Sandbox can set global variables -files['**/daemon/lua'].ignore = {'111', '121', '122'} -files['**/daemon/lua/kres-gen-*.lua'].ignore = {'631'} -- Allow overly long lines --- Tests and scripts can use global variables -files['scripts'].ignore = {'111', '112', '113'} -files['tests'].ignore = {'111', '112', '113'} -files['**/utils/upgrade'].ignore = {'111', '112', '113'} -files['**/modules/**/*.test.lua'].ignore = {'111', '112', '113', '121', '122'} -files['**/daemon/**/*.test.lua'].ignore = {'111', '112', '113', '121', '122'} diff --git a/.mailmap b/.mailmap deleted file mode 100644 index 8c373ea19..000000000 --- a/.mailmap +++ /dev/null @@ -1,58 +0,0 @@ -Aleš Mrázek -Alex Forster -Ali Asad Lotia -Anbang Wen -Anbang Wen -Andreas Rammhold -Daniel Kahn Gillmor -Daniel Salzman -daurnimator -David Beitey -Grigorii Demidov -Hasnat -Jiří Helebrant -Ivana Krumlová -Jakub Ružička -Jan Hák -Jan Holuša -Jan Pavlinec -Jan Včelák -Jan Včelák -Jayson Reis -Jonathan Coetzee -Josh Soref -Karel Slaný -Libor Peltan -Lukáš Ježek -Manu Bretelle -Marek Vavruša Marek Vavrusa -Marek Vavruša Marek Vavruša -Marek Vavruša Marek Vavruša -Marek Vavruša -Marek Vavruša -Michal Karm Babáček -Michal Lupečka -Ondřej Surý -Oto Šťáva -Paul Hoffman -Paul Hoffman -Pavel Doležal -Pavel Valach -Petr Špaček -rickhg12hs -Robert Šefr -SH -Simon South -Štěpán Balážik -Štěpán Kotek Stepan Kotek -Štěpán Kotek -The Gitter Badger -Tomáš Hozza -Tomáš Křížek -Ulrich Wisser -Leo Vandewoestijne - -Václav Šraier -Vicky Shrestha -Vítězslav Kříž -Vladimír Čunát diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 690ee8d4f..2dcc94569 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -5,12 +5,8 @@ build: tools: python: "3.11" -sphinx: - configuration: doc/conf.py - -python: - install: - - requirements: doc/requirements.txt +mkdocs: + configuration: mkdocs.yml formats: - pdf diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 3f8f226e2..000000000 --- a/AUTHORS +++ /dev/null @@ -1,90 +0,0 @@ -Knot Resolver was conceived and is being developed -by research department of CZ.NIC, the CZ TLD operator. - -Over the years many organizations and individuals contributed to the project. -Special thanks belongs to following organizations: -- Comcast -- Cloudflare -- ICANN - -People who contributed commits to our Git repo are: -Aleš Mrázek -Alex Forster -Ali Asad Lotia -Anbang Wen -Andreas Rammhold -Christophe Nowicki -Christopher Ng -cronfy -Daniel Kahn Gillmor -Daniel Salzman -daurnimator -David Beitey -Felix Yan -Grigorii Demidov -Hasnat -Héctor Molinero Fernández -Ivana Krumlová -Jakub Jirutka -Jakub Ružička -Jan Hák -Jan Holuša -Jan Pavlinec -Jan Včelák -Jayson Reis -Jiří Helebrant -Jonathan Coetzee -Josh Soref -Karel Slaný -Kirill A. Korinsky -Konstantin Amelichev -Ladislav Lhotka -Leo Vandewoestijne -Libor Peltan -Lukáš Ježek -Lukáš Ondráček -Manu Bretelle -Marek Vavruša -Michal Karm Babáček -Michal Lupečka -Ondřej Surý -Oto Šťáva -Paul Hoffman -Pavel Doležal -Pavel Valach -Peter Keresztes Schmidt -Petr Špaček -realPy -rickhg12hs -Robert Šefr -SH -Simon South -Štěpán Balážik -Štěpán Kotek -The Gitter Badger -Tomáš Hozza -Tomáš Křížek -Tom Herbers -Ulrich Wisser -Václav Šraier -Vicky Shrestha -Vítězslav Kříž -Vladimír Čunát - -Knot Resolver source tree also bundles code and content published by: -Austin Appleby -Dan Vanderkam -Jonathan Allard -Joseph A. Adams -Mark DiMarco -Michael Bostock -Rusty Russell -Thomas Park -Vincent Bernat -Fastly -jQuery Foundation -Knot DNS contributors -Twitter -United Computer Wizards - -Thanks to everyone who knowingly or unknowingly contributed! diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 1420c31c0..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,19 +0,0 @@ -Contributing -============ - -Please file issues and merge requests against the upstream repository: - -[https://gitlab.nic.cz/knot/knot-resolver](https://gitlab.nic.cz/knot/knot-resolver) - -Opening a merge request on gitlab.nic.cz ----------------------------------------- - -Unfortunately, due to administrative policy, forking is disabled by default. To -be able to fork, please send us an e-mail with your username to knot-resolver@labs.nic.cz - -We apologize for the inconvenience and if you can't be bothered, please -consider alternate ways of contributing, such as: - -- Opening a pull request on [github.com](https://github.com/CZ-NIC/knot-resolver). - We'll take care of it and move it to our upstream. -- Sending a patch to the users list: knot-resolver-users@lists.nic.cz diff --git a/COPYING b/COPYING deleted file mode 100644 index f390d9208..000000000 --- a/COPYING +++ /dev/null @@ -1,695 +0,0 @@ -Unless specifically indicated otherwise in a file or directory, -files are licensed under GNU GPL license either version 3, or -(at your option) any later version. - -SPDX-License-Identifier: GPL-3.0-or-later -SPDX-URL: https://spdx.org/licenses/GPL-3.0-or-later.html -License-Text: - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - - In addition, as a special exception, the copyright holders give -permission to link the code of portions of this program with the -OpenSSL library under certain conditions as described in each -individual source file, and distribute linked combinations including -the two. - You must obey the GNU General Public License in all respects for all -of the code used other than OpenSSL. If you modify file(s) with this -exception, you may extend this exception to your version of the -file(s), but you are not obligated to do so. If you do not wish to do -so, delete this exception statement from your version. If you delete -this exception statement from all source files in the program, then -also delete it here. diff --git a/CodingStyle b/CodingStyle deleted file mode 100644 index 004c65b07..000000000 --- a/CodingStyle +++ /dev/null @@ -1,5 +0,0 @@ -# Style - -Linux kernel [coding style][lkstyle], same practices for API documentation. - -[lkstyle]: https://www.kernel.org/doc/Documentation/process/coding-style.rst diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index c501f3469..000000000 --- a/Dockerfile +++ /dev/null @@ -1,55 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -# Intermediate container for build -FROM debian:11 AS build - -ENV OBS_REPO=knot-resolver-latest -ENV DISTROTEST_REPO=Debian_11 - - -RUN apt-get update -qq && \ - apt-get -qqq -y install python3-pip python3-venv devscripts && \ - pip3 install pipx && \ - pipx install apkg - -COPY . /source - -RUN cd /source && \ - export PATH="$PATH:/root/.local/bin" && \ - git submodule update --init --recursive && \ - git config --global user.name "Docker Build" && \ - git config --global user.email docker-build@knot-resolver && \ - /root/.local/bin/apkg build-dep -y && \ - /root/.local/bin/apkg build - - -# Real container -FROM debian:11-slim AS runtime - -ENV OBS_REPO=knot-resolver-latest -ENV DISTROTEST_REPO=Debian_11 - -RUN apt-get update -qq && \ - apt-get upgrade -qq - -COPY --from=build /source/pkg/pkgs/debian-11 /pkg - -# install resolver, minimize image and prepare config directory -RUN apt-get install -y /pkg/*/*.deb && \ - rm -r /pkg && \ - apt-get remove -y -qq curl gnupg2 && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* && \ - mkdir /config - -COPY manager/etc/knot-resolver/config.example.docker.yaml /config/config.yaml - -LABEL cz.knot-resolver.vendor="CZ.NIC" -LABEL maintainer="knot-resolver-users@lists.nic.cz" - -# Export plain DNS, DoT, DoH and management interface -EXPOSE 53/UDP 53/TCP 443/TCP 853/TCP 5000/TCP - -ENTRYPOINT ["/usr/bin/knot-resolver"] -CMD ["-c", "/config/config.yaml"] diff --git a/NEWS b/NEWS deleted file mode 100644 index 9b3ed72ad..000000000 --- a/NEWS +++ /dev/null @@ -1,1469 +0,0 @@ -Knot Resolver 6.0.8 (2024-0m-dd) -================================ - -Improvements ------------- -- TLS (DoT, DoH): respect crypto policy overrides in OS (!1526) -- arch package: fix after they renamed a dependency (!1536) -- manager: export metrics to JSON via management HTTP API (!1527) - - * JSON is the new default metrics output format - * the ``prometheus-client`` Python package is now an optional dependency, - required only for Prometheus export to work -- cache: prefetching records - - * predict module: prefetching expiring records moved to prefetch module - * prefetch module: new module to prefetch expiring records - -.. TODO: Change the link below to a versioned one when releasing. - -Incompatible changes --------------------- -- cache: the ``/cache/prediction`` configuration property has been reorganized - into ``/cache/prefetch/expiring`` and ``/cache/prefetch/prediction``, changing - the default behaviour as well. See the `relevant documentation section - `_ - for more. - - -Knot Resolver 6.0.7 (2024-03-27) -================================ - -Improvements ------------- -- manager: clear the cache via management HTTP API (#876, !1491) -- manager: added support for Python 3.12 and removed for 3.7 (!1502) -- manager: use build-time install prefix to execute `kresd` instead of PATH (!1511) -- docs: documentation is now separated into user and developer parts (!1514) -- daemon: ignore UDP requests from ports < 1024 (!1507) -- manager: increase startup timeout for processes (!1518, !1520) -- local-data: increase default DB size to 2G on 64-bit platforms (!1518) - -Bugfixes --------- -- fix listening by interface name containing dashes (#900, !1500) -- fix kresctl http request timeout (!1505) -- fix RPZ if it contains apex NS record (!1516) -- fix RPZ if SOA is repated, as usual in AXFR output (!1521) -- avoid RPZ overriding the root SOA (!1521) -- fix on 32-bit systems with 64-bit time_t (!1510) -- fix paths to knot-dns libs if exec_prefix != prefix (!1503) -- manager: add missing early check that neither a custom port nor TLS is set for - authoritative server forwarding (#902, !1505) - - -Knot Resolver 6.0.6 (2024-02-13) -================================ - -Security --------- -- CVE-2023-50868: NSEC3 closest encloser proof can exhaust CPU - - * validator: lower the NSEC3 iteration limit (150 -> 50) - * validator: similarly also limit excessive NSEC3 salt length - * cache: limit the amount of work on SHA1 in NSEC3 aggressive cache - * validator: limit the amount of work on SHA1 in NSEC3 proofs - * validator: refuse to validate answers with more than 8 NSEC3 records - -- CVE-2023-50387 "KeyTrap": DNSSEC verification complexity - could be exploited to exhaust CPU resources and stall DNS resolvers. - Solution boils down mainly to limiting crypto-validations per packet. - - We would like to thank Elias Heftrig, Haya Schulmann, Niklas Vogel and Michael Waidner - from the German National Research Center for Applied Cybersecurity ATHENE - for bringing this vulnerability to our attention. - -Improvements ------------- -- update addresses of B.root-servers.net (!1478) -- tweak the default run_dir on non-Linux (!1481) - -Bugfixes --------- -- fix potential SERVFAIL deadlocks if net.ipv6 = false (#880) -- fix validation of RRsets around 64 KiB size; needs libknot >= 3.4 (!1497) - - -Knot Resolver 6.0.5 (2024-01-09) -================================ - -6.0.x are "early access" versions, -not generally recommended for production use. - -6.0 contains biggest changes in the history of Knot Resolver releases. -You will have to rewrite your configuration. See documentation, in particular: -https://www.knot-resolver.cz/documentation/latest/upgrading-to-6.html - - - - -5.x branch longterm support -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Knot Resolver 5.7.2 (2024-03-27) -================================ - -Bugfixes --------- -- fix on 32-bit systems with 64-bit time_t (!1510) - - -Knot Resolver 5.7.1 (2024-02-13) -================================ - -Security --------- -- CVE-2023-50868: NSEC3 closest encloser proof can exhaust CPU - * validator: lower the NSEC3 iteration limit (150 -> 50) - * validator: similarly also limit excessive NSEC3 salt length - * cache: limit the amount of work on SHA1 in NSEC3 aggressive cache - * validator: limit the amount of work on SHA1 in NSEC3 proofs - * validator: refuse to validate answers with more than 8 NSEC3 records - -- CVE-2023-50387 "KeyTrap": DNSSEC verification complexity - could be exploited to exhaust CPU resources and stall DNS resolvers. - Solution boils down mainly to limiting crypto-validations per packet. - - We would like to thank Elias Heftrig, Haya Schulmann, Niklas Vogel and Michael Waidner - from the German National Research Center for Applied Cybersecurity ATHENE - for bringing this vulnerability to our attention. - -Improvements ------------- -- update addresses of B.root-servers.net (!1478) - -Bugfixes --------- -- fix potential SERVFAIL deadlocks if net.ipv6 = false (#880) - - -Knot Resolver 5.7.0 (2023-08-22) -================================ - -Security --------- -- avoid excessive TCP reconnections in a few more cases (!1448) - Like before, the remote server had to behave nonsensically in order - to inflict this upon itself, but it might be abusable for DoS. - - We thank Ivan Jedek from OryxLabs for reporting this. - CVE-2023-46317 got later assigned to this issue. - -Improvements ------------- -- forwarding mode: tweak dealing with failures from forwarders, - in particular prefer sending CD=0 upstream (!1392) - -Bugfixes --------- -- fix unusual timestamp format in debug dumps of records (!1386) -- adjust linker options; it should help less common platforms (!1384) -- hints module: fix names inside home.arpa. (!1406) -- EDNS padding (RFC 8467) compatibility with knot-dns 3.3 libs (!1422) - - -Knot Resolver 5.6.0 (2023-01-26) -================================ - -Security --------- -- avoid excessive TCP reconnections in some cases (!1380) - For example, a DNS server that just closes connections without answer - could cause lots of work for the resolver (and itself, too). - The number of connections could be up to around 100 per client's query. - - We thank Xiang Li from NISL Lab, Tsinghua University, - and Xuesong Bai and Qifan Zhang from DSP Lab, UCI. - -Improvements ------------- -- daemon: feed server selection with more kinds of bad-answer events (!1380) -- cache.max_ttl(): lower the default from six days to one day - and apply both limits to the first uncached answer already (!1323 #127) -- depend on jemalloc, preferably, to improve memory usage (!1353) -- no longer accept DNS messages with trailing data (!1365) -- policy.STUB: avoid applying aggressive DNSSEC denial proofs (!1364) -- policy.STUB: avoid copying +dnssec flag from client to upstream (!1364) - -Bugfixes --------- -- policy.DEBUG_IF: don't print client's packet unconditionally (!1366) - - -Knot Resolver 5.5.3 (2022-09-21) -================================ - -Security --------- -- fix CPU-expensive DoS by malicious domains - CVE-2022-40188 - -Improvements ------------- -- fix config_tests on macOS (both HW variants) - - -Knot Resolver 5.5.2 (2022-08-16) -================================ - -Improvements ------------- -- support libknot 3.2 (!1309) -- priming module: hide failures from the default log level (!1310) -- reduce memory usage in some cases (!1328) - -Bugfixes --------- -- daemon/http: improve URI checks to fix some proxies (#746, !1311) -- daemon/tls: fix a double-free for some cases of policy.TLS_FORWARD (!1314) -- hints module: improve parsing comments in hosts files (!1315) -- renumber module: fix renumbering with name matching again (#760, !1334) - - -Knot Resolver 5.5.1 (2022-06-14) -================================ - -Improvements ------------- -- daemon/tls: disable TLS resumption via tickets for TLS <= 1.2 (#742, !1295) -- daemon/http: DoH now responds with proper HTTP codes (#728, !1279) -- renumber module: allow rewriting subnet to a single IP (!1302) -- renumber module: allow arbitrary netmask (!1306) -- nameserver selection algorithm: improve IPv6 avoidance if broken (!1298) - -Bugfixes --------- -- modules/dns64: fix incorrect packet writes for cached packets (#727, !1275) -- xdp: make it work also with libknot 3.1 (#735, !1276) -- prefill module: fix lockup when starting multiple idle instances (!1285) -- validator: fix some failing negative NSEC proofs (!1294, #738, #443) - - -Knot Resolver 5.5.0 (2022-03-15) -================================ - -Improvements ------------- -- extended_errors: module for extended DNS error support, RFC8914 (!1234) -- policy: log policy actions; useful for RPZ debugging (!1239) -- policy: new action policy.IPTRACE for logging request origin (!1239) -- prefill module: prepare for ZONEMD, improve performance (!1225) -- validator: conditionally ignore SHA1 DS, as SHOULD by RFC4509 (!1251) -- lib/resolve: use EDNS padding for outgoing TLS queries (!1254) -- support for PROXYv2 protocol (!1238) -- lib/resolve, policy: new NO_ANSWER flag for not responding to clients (!1257) - -Incompatible changes --------------------- -- libknot >= 3.0.2 is required - -Bugfixes --------- -- doh2: fix CORS by adding `access-control-allow-origin: *` (!1246) -- net: fix listen by interface - add interface suffix to link-local IPv6 (!1253) -- daemon/tls: fix resumption for outgoing TLS (e.g. TLS_FORWARD) (!1261) -- nameserver selection: fix interaction of timeouts with reboots (#722, !1269) - - -Knot Resolver 5.4.4 (2022-01-05) -================================ - -Bugfixes --------- -- fix bad zone cut update in certain cases (e.g. AWS; !1237) - - -Knot Resolver 5.4.3 (2021-12-01) -================================ - -Improvements ------------- -- lua: add kres.parse_rdata() to parse RDATA from string to wire format (!1233) -- lua: add policy.domains() for exact domain name matching (!1228) - -Bugfixes --------- -- policy.rpz: fix origin detection in files without $ORIGIN (!1215) -- lua: log() works again; broken in 5.4.2 (!1223) -- policy: correctly include EDNS0 previously omitted by some actions (!1230) -- edns_keepalive: module is now properly loaded (!1229, thanks Josh Soref!) - - -Knot Resolver 5.4.2 (2021-10-13) -================================ - -Improvements ------------- -- dns64 module: also map the reverse (PTR) subtree (#478, !1201) -- dns64 module: allow disabling based on client address (#368, !1201) -- dns64 module: allow configuring AAAA subnets not allowed in answer (!1201) -- nameserver selection algorithm: improve IPv6 avoidance if broken (!1207) - -Bugfixes --------- -- lua: log() output is visible with default log level again (!1208) -- build: fix when knot-dns headers are on non-standard location (!1210) - - -Knot Resolver 5.4.1 (2021-08-19) -================================ - -Improvements ------------- -- docker: base image on Debian 11 (!1203) - -Bugfixes --------- -- fix build without doh2 support after 5.4.0 (!1197) -- fix policy.DEBUG* logging and -V/--version after 5.4.0 (!1199) -- doh2: ensure memory from unsent streams is freed (!1202) - - -Knot Resolver 5.4.0 (2021-07-29) -================================ - -Improvements ------------- -- fine grained logging and syslog support (!1181) -- expose HTTP headers for processing DoH requests (!1165) -- improve assertion mechanism for debugging (!1146) -- support apkg tool for packaging workflow (!1178) -- support Knot DNS 3.1 (!1192, !1194) - -Bugfixes --------- -- trust_anchors.set_insecure: improve precision (#673, !1177) -- plug memory leaks related to TCP (!1182) -- policy.FLAGS: fix not applying properly in edge cases (!1179) -- fix a crash with older libuv inside timer processing (!1195) - -Incompatible changes --------------------- -- see upgrading guide: - https://knot-resolver.readthedocs.io/en/stable/upgrading.html#to-5-4 -- legacy DoH implementation configuration in net.listen() was renamed from - kind="doh" to kind="doh_legacy" (!1180) - - -Knot Resolver 5.3.2 (2021-05-05) -================================ - -Security --------- -- validator: fix 5.3.1 regression on over-limit NSEC3 edge case (!1169) - Assertion might be triggered by query/answer, potentially DoS. - CVE-2021-40083 was later assigned. - -Improvements ------------- -- cache: improve handling write errors from LMDB (!1159) -- doh2: improve handling of stream errors (!1164) - -Bugfixes --------- -- dnstap module: fix repeated configuration (!1168) -- validator: fix SERVFAIL for some rare dynamic proofs (!1166) -- fix SIGBUS on uncommon ARM machines (unaligned access; !1167, #426) -- cache: better resilience on abnormal termination/restarts (!1172) -- doh2: fix memleak on stream write failures (!1161) - - -Knot Resolver 5.3.1 (2021-03-31) -================================ - -Improvements ------------- -- policy.STUB: try to avoid TCP (compared to 5.3.0; !1155) -- validator: downgrade NSEC3 records with too many iterations (>150; !1160) -- additional improvements to nameserver selection algorithm (!1154, !1150) - -Bugfixes --------- -- dnstap module: don't break request resolution on dnstap errors (!1147) -- cache garbage collector: fix crashes introduced in 5.3.0 (!1153) -- policy.TLS_FORWARD: better avoid dead addresses (#671, !1156) - - -Knot Resolver 5.3.0 (2021-02-25) -================================ - -Improvements ------------- -- more consistency in using parent-side records for NS addresses (!1097) -- better algorithm for choosing nameservers (!1030, !1126, !1140, !1141, !1143) -- daf module: add daf.clear() (!1114) -- dnstap module: more features and don't log internal requests (!1103) -- dnstap module: include in upstream packages and Docker image (!1110, !1118) -- randomize record order by default, i.e. reorder_RR(true) (!1124) -- prometheus module: transform graphite tags into prometheus labels (!1109) -- avoid excessive logging of UDP replies with sendmmsg (!1138) - -Bugfixes --------- -- view: fail config if bad subnet is specified (!1112) -- doh2: fix memory leak (!1117) -- policy.ANSWER: minor fixes, mainly around NODATA answers (!1129) -- http, watchdog modules: fix stability problems (!1136) - -Incompatible changes --------------------- -- dnstap module: `log_responses` option gets nested under `client`; - see new docs for config example (!1103) -- libknot >= 2.9 is required - - -Knot Resolver 5.2.1 (2020-12-09) -================================ - -Improvements ------------- -- doh2: send Cache-Control header with TTL (#617, !1095) - -Bugfixes --------- -- fix map() command on 32-bit platforms; regressed in 5.2.0 (!1093) -- doh2: restrict endpoints to doh and dns-query (#636, !1104) -- renumber: map to correct subnet when using multiple rules (!1107) - - -Knot Resolver 5.2.0 (2020-11-11) -================================ - -Improvements ------------- -- doh2: add native C module for DNS-over-HTTPS (#600, !997) -- xdp: add server-side XDP support for higher UDP performance (#533, !1083) -- lower default EDNS buffer size to 1232 bytes (#538, #300, !920); - see https://www.dnsflagday.net/2020/ -- net: split the EDNS buffer size into upstream and downstream (!1026) -- lua-http doh: answer to /dns-query endpoint as well as /doh (!1069) -- improve resiliency against UDP fragmentation attacks (disable PMTUD) (!1061) -- ta_update: warn if there are differences between statically configured - keys and upstream (#251, !1051) -- human readable output in interactive mode was improved -- doc: generate info page (!1079) -- packaging: improve sysusers and tmpfiles support (!1080) - -Bugfixes --------- -- avoid an assert() error in stash_rrset() (!1072) -- fix emergency cache locking bug introduced in 5.1.3 (!1078) -- migrate map() command to control sockets; fix systemd integration (!1000) -- fix crash when sending back errors over control socket (!1000) -- fix SERVFAIL while processing forwarded CNAME to a sibling zone (#614, !1070) - -Incompatible changes --------------------- -- see upgrading guide: - https://knot-resolver.readthedocs.io/en/stable/upgrading.html#to-5-2 -- minor changes in module API -- control socket API commands have to be terminated by "\n" -- graphite: default prefix now contains instance identifier (!1000) -- build: meson >= 0.49 is required (!1082) - - -Knot Resolver 5.1.3 (2020-09-08) -================================ - -Improvements ------------- -- capabilities are no longer constrained when running as root (!1012) -- cache: add percentage usage to cache.stats() (#580, !1025) -- cache: add number of cache entries to cache.stats() (#510, !1028) -- aarch64 support again, as some systems still didn't work (!1033) -- support building against Knot DNS 3.0 (!1053) - -Bugfixes --------- -- tls: fix compilation to support net.tls_sticket_secret() (!1021) -- validator: ignore bogus RRSIGs present in insecure domains (!1022, #587) -- build if libsystemd version isn't detected as integer (#592, !1029) -- validator: more robust reaction on missing RRSIGs (#390, !1020) -- ta_update module: fix broken RFC5011 rollover (!1035) -- garbage collector: avoid keeping multiple copies of cache (!1042) - - -Knot Resolver 5.1.2 (2020-07-01) -================================ - -Bugfixes --------- -- hints module: NODATA answers also for non-address queries (!1005) -- tls: send alert to peer if handshake fails (!1007) -- cache: fix interaction between LMDB locks and preallocation (!1013) -- cache garbage collector: fix flushing of messages to logs (!1009) -- cache garbage collector: fix insufficient GC on 32-bit systems (!1009) -- graphite module: do not block resolver on TCP failures (!1014) -- policy.rpz various fixes (!1016): $ORIGIN issues, - precision of warnings, allow answering with multi-RR sets - - -Knot Resolver 5.1.1 (2020-05-19) -================================ - -Security --------- -- fix CVE-2020-12667: mitigation for NXNSAttack DNS protocol vulnerability - -Bugfixes --------- -- control sockets: recognize newline as command boundary - - -Knot Resolver 5.1.0 (2020-04-29) -================================ - -Improvements ------------- -- cache garbage collector: reduce filesystem operations when idle (!946) -- policy.DEBUG_ALWAYS and policy.DEBUG_IF for limited verbose logging (!957) -- daemon: improve TCP query latency under heavy TCP load (!968) -- add policy.ANSWER action (!964, #192) -- policy.rpz support fake A/AAAA (!964, #194) - -Bugfixes --------- -- cache: missing filesystem support for pre-allocation is no longer fatal (#549) -- lua: policy.rpz() no longer watches the file when watch is set to false (!954) -- fix a strict aliasing problem that might've lead to "miscompilation" (!962) -- fix handling of DNAMEs, especially signed ones (#234, !965) -- lua resolve(): correctly include EDNS0 in the virtual packet (!963) - Custom modules might have been confused by that. -- do not leak bogus data into SERVFAIL answers (#396) -- improve random Lua number generator initialization (!979) -- cache: fix CNAME caching when validation is disabled (#472, !974) -- cache: fix CNAME caching in policy.STUB mode (!974) -- prefill: fix crash caused by race condition with resolver startup (!983) -- webmgmt: use javascript scheme detection for websockets' protocol (#546) -- daf module: fix del(), deny(), drop(), tc(), pass() functions (#553, !966) -- policy and daf modules: expose initial query when evaluating postrules (#556) -- cache: fix some cases of caching answers over 4 KiB (!976) -- docs: support sphinx 3.0.0+ (!978) - -Incompatible changes --------------------- -- minor changes in module API; see upgrading guide: - https://knot-resolver.readthedocs.io/en/stable/upgrading.html - - -Knot Resolver 5.0.1 (2020-02-05) -================================ - -Bugfixes --------- -- systemd: use correct cache location for garbage collector (#543) - -Improvements ------------- -- cache: add cache.fssize() lua function to configure entire free disk space on - dedicated cache partition (#524, !932) - - -Knot Resolver 5.0.0 (2020-01-27) -================================ - -Incompatible changes --------------------- -- see upgrading guide: https://knot-resolver.readthedocs.io/en/stable/upgrading.html -- systemd sockets are no longer supported (#485) -- net.listen() throws an error if it fails to bind; use freebind option if needed -- control socket location has changed (!922) -- -f/--forks is deprecated (#529, !919) - -Improvements ------------- -- logging: control-socket commands don't log unless --verbose (#528) -- use SO_REUSEPORT_LB if available (FreeBSD 12.0+) -- lua: remove dependency on lua-socket and lua-sec, used lua-http and cqueues (#512, #521, !894) -- lua: remove dependency on lua-filesystem (#520, !912) -- net.listen(): allow binding to non-local address with freebind option (!898) -- cache: pre-allocate the file to avoid SIGBUS later (not macOS; !917, #525) -- lua: be stricter around nonsense returned from modules (!901) -- user documentation was reorganized and extended (!900, !867) -- multiple config files can be used with --config/-c option (!909) -- lua: stop trying to tweak lua's GC (!201) -- systemd: add SYSTEMD_INSTANCE env variable to identify different instances (!906) - -Bugfixes --------- -- correctly use EDNS(0) padding in failed answers (!921) -- policy and daf modules: fix postrules and reroute rules (!901) -- renumber module: don't accidentally zero-out request's .state (!901) - - -Knot Resolver 4.3.0 (2019-12-04) -================================ - -Security - CVE-2019-19331 -------------------------- -- fix speed of processing large RRsets (DoS, #518) -- improve CNAME chain length accounting (DoS, !899) - -Bugfixes --------- -- http module: use SO_REUSEPORT (!879) -- systemd: kresd@.service now properly starts after network interfaces - have been configured with IP addresses after reboot (!884) -- sendmmsg: improve reliability (!704) -- cache: fix crash on insertion via lua for NS and CNAME (!889) -- rpm package: move root.keys to /var/lib/knot-resolver (#513, !888) - -Improvements ------------- -- increase file-descriptor count limit to maximum allowed value (hard limit; !876) -- watchdog module: support testing a DNS query (and switch C -> lua; !878, !881) -- performance: use sendmmsg syscall towards clients by default (!877) -- performance: avoid excessive getsockname() syscalls (!854) -- performance: lua-related improvements (!874) -- daemon now attempts to drop all capabilities (!896) -- reduce CNAME chain length limit - now <= 12 (!899) - - -Knot Resolver 4.2.2 (2019-10-07) -================================ - -Bugfixes --------- -- lua bindings: fix a 4.2.1 regression on 32-bit systems (#514) - which also fixes libknot 2.9 support on all systems - - -Knot Resolver 4.2.1 (2019-09-26) -================================ - -Bugfixes --------- -- rebinding module: fix handling some requests, respect ALLOW_LOCAL flag -- fix incorrect SERVFAIL on cached bogus answer for +cd request (!860) - (regression since 4.1.0 release, in less common cases) -- prefill module: allow a different module-loading style (#506) -- validation: trim TTLs by RRSIG's expiration and original TTL (#319, #504) -- NS choice algorithm: fix a regression since 4.0.0 (#497, !868) -- policy: special domains home.arpa. and local. get NXDOMAIN (!855) - -Improvements ------------- -- add compatibility with (future) libknot 2.9 - - -Knot Resolver 4.2.0 (2019-08-05) -================================ - -Improvements ------------- -- queries without RD bit set are REFUSED by default (!838) -- support forwarding to multiple targets (!825) - -Bugfixes --------- -- tls_client: fix issue with TLS session resumption (#489) -- rebinding module: fix another false-positive assertion case (!851) - -Module API changes ------------------- -- kr_request::add_selected is now really put into answer, - instead of the "duplicate" ::additional field (#490) - - -Knot Resolver 4.1.0 (2019-07-10) -================================ - -Security --------- -- fix CVE-2019-10190: do not pass bogus negative answer to client (!827) -- fix CVE-2019-10191: do not cache negative answer with forged QNAME+QTYPE (!839) - -Improvements ------------- -- new cache garbage collector is available and enabled by default (#257) - This improves cache efficiency on big installations. -- DNS-over-HTTPS: unknown HTTP parameters are ignored to improve compatibility - with non-standard clients (!832) -- DNS-over-HTTPS: answers include `access-control-allow-origin: *` (!823) - which allows JavaScript to use DoH endpoint. -- http module: support named AF_UNIX stream sockets (again) -- aggressive caching is disabled on minimal NSEC* ranges (!826) - This improves cache effectivity with DNSSEC black lies and also accidentally - works around bug in proofs-of-nonexistence from F5 BIG-IP load-balancers. -- aarch64 support, even kernels with ARM64_VA_BITS >= 48 (#216, !797) - This is done by working around a LuaJIT incompatibility. Please report bugs. -- lua tables for C modules are more strict by default, e.g. `nsid.foo` - will throw an error instead of returning `nil` (!797) -- systemd: basic watchdog is now available and enabled by default (#275) - -Bugfixes --------- -- TCP to upstream: fix unlikely case of sending out wrong message length (!816) -- http module: fix problems around maintenance of ephemeral certs (!819) -- http module: also send intermediate TLS certificate to clients, - if available and luaossl >= 20181207 (!819) -- send EDNS with SERVFAILs, e.g. on validation failures (#180, !827) -- prefill module: avoid crash on empty zone file (#474, !840) -- rebinding module: avoid excessive iteration on blocked attempts (!842) -- rebinding module: fix crash caused by race condition (!842) -- rebinding module: log each blocked query only in verbose mode (!842) -- cache: automatically clear stale reader locks (!844) - - -Module API changes ------------------- -- lua modules may omit casting parameters of layer functions (!797) - - -Knot Resolver 4.0.0 (2019-04-18) -================================ - -Incompatible changes --------------------- -- see upgrading guide: https://knot-resolver.readthedocs.io/en/stable/upgrading.html -- configuration: trust_anchors aliases .file, .config() and .negative were removed (!788) -- configuration: trust_anchors.keyfile_default is no longer accessible (!788) -- daemon: -k/--keyfile and -K/--keyfile-ro options were removed -- meson build system is now used for builds (!771) -- build with embedded LMBD is no longer supported -- default modules dir location has changed -- DNSSEC is enabled by default -- upstream packages for Debian now require systemd -- libknot >= 2.8 is required -- net.list() output format changed (#448) -- net.listen() reports error when address-port pair is in use -- bind to DNS-over-TLS port by default (!792) -- stop versioning libkres library -- default port for web management and APIs changed to 8453 - -Improvements ------------- -- policy.TLS_FORWARD: if hostname is configured, send it on wire (!762) -- hints module: allow configuring the TTL and change default from 0 to 5s -- policy module: policy.rpz() will watch the file for changes by default -- packaging: lua cqueues added to default dependencies where available -- systemd: service is no longer auto-restarted on configuration errors -- always send DO+CD flags upstream, even in insecure zones (#153) -- cache.stats() output is completely new; see docs (!775) -- improve usability of table_print() (!790, !801) -- add DNS-over-HTTPS support (#280) -- docker image supports and exposes DNS-over-HTTPS - -Bugfixes --------- -- predict module: load stats module if config didn't specify period (!755) -- trust_anchors: don't do 5011-style updates on anchors from files - that were loaded as unmanaged trust anchors (!753) -- trust_anchors.add(): include these TAs in .summary() (!753) -- policy module: support '#' for separating port numbers, for consistency -- fix startup on macOS+BSD when = 2.7.2 is required - -Improvements ------------- -- cache: handle out-of-space SIGBUS slightly better (#197) -- daemon: improve TCP timeout handling (!686) - -Bugfixes --------- -- cache.clear('name'): fix some edge cases in API (#401) -- fix error handling from TLS writes (!669) -- avoid SERVFAILs due to certain kind of NS dependency cycles (#374) - - -Knot Resolver 3.0.0 (2018-08-20) -================================ - -Incompatible changes --------------------- -- cache: fail lua operations if cache isn't open yet (!639) - By default cache is opened *after* reading the configuration, - and older versions were silently ignoring cache operations. - Valid configuration must open cache using `cache.open()` or `cache.size =` - before executing cache operations like `cache.clear()`. -- libknot >= 2.7.1 is required, which brings also larger API changes -- in case you wrote custom Lua modules, please consult - https://knot-resolver.readthedocs.io/en/latest/lib.html#incompatible-changes-since-3-0-0 -- in case you wrote custom C modules, please see compile against - Knot DNS 2.7 and adjust your module according to messages from C compiler -- DNS cookie module (RFC 7873) is not available in this release, - it will be later reworked to reflect development in IEFT dnsop working group -- version module was permanently removed because it was not really used by users; - if you want to receive notifications about new releases please subscribe to - https://lists.nic.cz/postorius/lists/knot-resolver-announce.lists.nic.cz/ - -Bugfixes --------- -- fix multi-process race condition in trust anchor maintenance (!643) -- ta_sentinel: also consider static trust anchors not managed via RFC 5011 - -Improvements ------------- -- reorder_RR() implementation is brought back -- bring in performance improvements provided by libknot 2.7 -- cache.clear() has a new, more powerful API -- cache documentation was improved -- old name "Knot DNS Resolver" is replaced by unambiguous "Knot Resolver" - to prevent confusion with "Knot DNS" authoritative server - - -Knot Resolver 2.4.1 (2018-08-02) -================================ - -Security --------- -- fix CVE-2018-10920: Improper input validation bug in DNS resolver component - (security!7, security!9) - -Bugfixes --------- -- cache: fix TTL overflow in packet due to min_ttl (#388, security!8) -- TLS session resumption: avoid bad scheduling of rotation (#385) -- HTTP module: fix a regression in 2.4.0 which broke custom certs (!632) -- cache: NSEC3 negative cache even without NS record (#384) - This fixes lower hit rate in NSEC3 zones (since 2.4.0). -- minor TCP and TLS fixes (!623, !624, !626) - - -Knot Resolver 2.4.0 (2018-07-03) -================================ - -Incompatible changes --------------------- -- minimal libknot version is now 2.6.7 to pull in latest fixes (#366) - -Security --------- -- fix a rare case of zones incorrectly downgraded to insecure status (!576) - -New features ------------- -- TLS session resumption (RFC 5077), both server and client (!585, #105) - (disabled when compiling with gnutls < 3.5) -- TLS_FORWARD policy uses system CA certificate store by default (!568) -- aggressive caching for NSEC3 zones (!600) -- optional protection from DNS Rebinding attack (module rebinding, !608) -- module bogus_log to log DNSSEC bogus queries without verbose logging (!613) - -Bugfixes --------- -- prefill: fix ability to read certificate bundle (!578) -- avoid turning off qname minimization in some cases, e.g. co.uk. (#339) -- fix validation of explicit wildcard queries (#274) -- dns64 module: more properties from the RFC implemented (incl. bug #375) - -Improvements ------------- -- systemd: multiple enabled kresd instances can now be started using kresd.target -- ta_sentinel: switch to version 14 of the RFC draft (!596) -- support for glibc systems with a non-Linux kernel (!588) -- support per-request variables for Lua modules (!533) -- support custom HTTP endpoints for Lua modules (!527) - - -Knot Resolver 2.3.0 (2018-04-23) -================================ - -Security --------- -- fix CVE-2018-1110: denial of service triggered by malformed DNS messages - (!550, !558, security!2, security!4) -- increase resilience against slow lorris attack (security!5) - -New features ------------- -- new policy.REFUSE to reply REFUSED to clients - -Bugfixes --------- -- validation: fix SERVFAIL in case of CNAME to NXDOMAIN in a single zone (!538) -- validation: fix SERVFAIL for DS . query (!544) -- lib/resolve: don't send unnecessary queries to parent zone (!513) -- iterate: fix validation for zones where parent and child share NS (!543) -- TLS: improve error handling and documentation (!536, !555, !559) - -Improvements ------------- -- prefill: new module to periodically import root zone into cache - (replacement for RFC 7706, !511) -- network_listen_fd: always create end point for supervisor supplied file descriptor -- use CPPFLAGS build environment variable if set (!547) - - -Knot Resolver 2.2.0 (2018-03-28) -================================ - -New features ------------- -- cache server unavailability to prevent flooding unreachable servers - (Please note that caching algorithm needs further optimization - and will change in further versions but we need to gather operational - experience first.) - -Bugfixes --------- -- don't magically -D_FORTIFY_SOURCE=2 in some cases -- allow large responses for outbound over TCP -- fix crash with RR sets with over 255 records - - -Knot Resolver 2.1.1 (2018-02-23) -================================ - -Bugfixes --------- -- when iterating, avoid unnecessary queries for NS in insecure parent. - This problem worsened in 2.0.0. (#246) -- prevent UDP packet leaks when using TLS forwarding -- fix the hints module also on some other systems, e.g. Gentoo. - - -Knot Resolver 2.1.0 (2018-02-16) -================================ - -Incompatible changes --------------------- -- stats: remove tracking of expiring records (predict uses another way) -- systemd: re-use a single kresd.socket and kresd-tls.socket -- ta_sentinel: implement protocol draft-ietf-dnsop-kskroll-sentinel-01 - (our draft-ietf-dnsop-kskroll-sentinel-00 implementation had inverted logic) -- libknot: require version 2.6.4 or newer to get bugfixes for DNS-over-TLS - -Bugfixes --------- -- detect_time_jump module: don't clear cache on suspend-resume (#284) -- stats module: fix stats.list() returning nothing, regressed in 2.0.0 -- policy.TLS_FORWARD: refusal when configuring with multiple IPs (#306) -- cache: fix broken refresh of insecure records that were about to expire -- fix the hints module on some systems, e.g. Fedora (came back on 2.0.0) -- build with older gnutls (conditionally disable features) -- fix the predict module to work with insecure records & cleanup code - - -Knot Resolver 2.0.0 (2018-01-31) -================================ - -Incompatible changes --------------------- -- systemd: change unit files to allow running multiple instances, - deployments with single instance now must use `kresd@1.service` - instead of `kresd.service`; see kresd.systemd(7) for details -- systemd: the directory for cache is now /var/cache/knot-resolver -- unify default directory and user to `knot-resolver` -- directory with trust anchor file specified by -k option must be writeable -- policy module is now loaded by default to enforce RFC 6761; - see documentation for policy.PASS if you use locally-served DNS zones -- drop support for alternative cache backends memcached, redis, - and for Lua bindings for some specific cache operations -- REORDER_RR option is not implemented (temporarily) - -New features ------------- -- aggressive caching of validated records (RFC 8198) for NSEC zones; - thanks to ICANN for sponsoring this work. -- forwarding over TLS, authenticated by SPKI pin or certificate. - policy.TLS_FORWARD pipelines queries out-of-order over shared TLS connection - Beware: Some resolvers do not support out-of-order query processing. - TLS forwarding to such resolvers will lead to slower resolution or failures. -- trust anchors: you may specify a read-only file via -K or --keyfile-ro -- trust anchors: at build-time you may set KEYFILE_DEFAULT (read-only) -- ta_sentinel module implements draft ietf-dnsop-kskroll-sentinel-00, - enabled by default -- serve_stale module is prototype, subject to change -- extended API for Lua modules - -Bugfixes --------- -- fix build on osx - regressed in 1.5.3 (different linker option name) - - -Knot Resolver 1.5.3 (2018-01-23) -================================ - -Bugfixes --------- -- fix the hints module on some systems, e.g. Fedora. - Symptom: `undefined symbol: engine_hint_root_file` - - -Knot Resolver 1.5.2 (2018-01-22) -================================ - -Security --------- -- fix CVE-2018-1000002: insufficient DNSSEC validation, allowing - attackers to deny existence of some data by forging packets. - Some combinations pointed out in RFC 6840 sections 4.1 and 4.3 - were not taken into account. - -Bugfixes --------- -- memcached: fix fallout from module rename in 1.5.1 - - -Knot Resolver 1.5.1 (2017-12-12) -================================ - -Incompatible changes --------------------- -- script supervisor.py was removed, please migrate to a real process manager -- module ketcd was renamed to etcd for consistency -- module kmemcached was renamed to memcached for consistency - -Bugfixes --------- -- fix SIGPIPE crashes (#271) -- tests: work around out-of-space for platforms with larger memory pages -- lua: fix mistakes in bindings affecting 1.4.0 and 1.5.0 (and 1.99.1-alpha), - potentially causing problems in dns64 and workarounds modules -- predict module: various fixes (!399) - -Improvements ------------- -- add priming module to implement RFC 8109, enabled by default (#220) -- add modules helping with system time problems, enabled by default; - for details see documentation of detect_time_skew and detect_time_jump - - -Knot Resolver 1.5.0 (2017-11-02) -================================ - -Bugfixes --------- -- fix loading modules on Darwin - -Improvements ------------- -- new module ta_signal_query supporting Signaling Trust Anchor Knowledge - using Keytag Query (RFC 8145 section 5); it is enabled by default -- attempt validation for more records but require it for fewer of them - (e.g. avoids SERVFAIL when server adds extra records but omits RRSIGs) - - -Knot Resolver 1.99.1-alpha (2017-10-26) -======================================= -This is an experimental release meant for testing aggressive caching. -It contains some regressions and might (theoretically) be even vulnerable. -The current focus is to minimize queries into the root zone. - -Improvements ------------- -- negative answers from validated NSEC (NXDOMAIN, NODATA) -- verbose log is very chatty around cache operations (maybe too much) - -Regressions ------------ -- dropped support for alternative cache backends - and for some specific cache operations -- caching doesn't yet work for various cases: - * negative answers without NSEC (i.e. with NSEC3 or insecure) - * +cd queries (needs other internal changes) - * positive wildcard answers -- spurious SERVFAIL on specific combinations of cached records, printing: - <= bad keys, broken trust chain -- make check -- a few Deckard tests are broken, probably due to some problems above -- also unknown ones? - - - -Knot Resolver 1.4.0 (2017-09-22) -================================ - -Incompatible changes --------------------- -- lua: query flag-sets are no longer represented as plain integers. - kres.query.* no longer works, and kr_query_t lost trivial methods - 'hasflag' and 'resolved'. - You can instead write code like qry.flags.NO_0X20 = true. - -Bugfixes --------- -- fix exiting one of multiple forks (#150) -- cache: change the way of using LMDB transactions. That in particular - fixes some cases of using too much space with multiple kresd forks (#240). - -Improvements ------------- -- policy.suffix: update the aho-corasick code (#200) -- root hints are now loaded from a zonefile; exposed as hints.root_file(). - You can override the path by defining ROOTHINTS during compilation. -- policy.FORWARD: work around resolvers adding unsigned NS records (#248) -- reduce unneeded records previously put into authority in wildcarded answers - - -Knot Resolver 1.3.3 (2017-08-09) -================================ - -Security --------- -- Fix a critical DNSSEC flaw. Signatures might be accepted as valid - even if the signed data was not in bailiwick of the DNSKEY used to - sign it, assuming the trust chain to that DNSKEY was valid. - -Bugfixes --------- -- iterate: skip RRSIGs with bad label count instead of immediate SERVFAIL -- utils: fix possible incorrect seeding of the random generator -- modules/http: fix compatibility with the Prometheus text format - -Improvements ------------- -- policy: implement remaining special-use domain names from RFC6761 (#205), - and make these rules apply only if no other non-chain rule applies - - -Knot Resolver 1.3.2 (2017-07-28) -================================ - -Security --------- -- fix possible opportunities to use insecure data from cache as keys - for validation - -Bugfixes --------- -- daemon: check existence of config file even if rundir isn't specified -- policy.FORWARD and STUB: use RTT tracking to choose servers (#125, #208) -- dns64: fix CNAME problems (#203) It still won't work with policy.STUB. -- hints: better interpretation of hosts-like files (#204) - also, error out if a bad entry is encountered in the file -- dnssec: handle unknown DNSKEY/DS algorithms (#210) -- predict: fix the module, broken since 1.2.0 (#154) - -Improvements ------------- -- embedded LMDB fallback: update 0.9.18 -> 0.9.21 - - -Knot Resolver 1.3.1 (2017-06-23) -================================ - -Bugfixes --------- -- modules/http: fix finding the static files (bug from 1.3.0) -- policy.FORWARD: fix some cases of CNAMEs obstructing search for zone cuts - - -Knot Resolver 1.3.0 (2017-06-13) -================================ - -Security --------- -- Refactor handling of AD flag and security status of resource records. - In some cases it was possible for secure domains to get cached as - insecure, even for a TLD, leading to disabled validation. - It also fixes answering with non-authoritative data about nameservers. - -Improvements ------------- -- major feature: support for forwarding with validation (#112). - The old policy.FORWARD action now does that; the previous non-validating - mode is still available as policy.STUB except that also uses caching (#122). -- command line: specify ports via @ but still support # for compatibility -- policy: recognize 100.64.0.0/10 as local addresses -- layer/iterate: *do* retry repeatedly if REFUSED, as we can't yet easily - retry with other NSs while avoiding retrying with those who REFUSED -- modules: allow changing the directory where modules are found, - and do not search the default library path anymore. - -Bugfixes --------- -- validate: fix insufficient caching for some cases (relatively rare) -- avoid putting "duplicate" record-sets into the answer (#198) - - -Knot Resolver 1.2.6 (2017-04-24) -================================ - -Security --------- -- dnssec: don't set AD flag for NODATA answers if wildcard non-existence - is not guaranteed due to opt-out in NSEC3 - -Improvements ------------- -- layer/iterate: don't retry repeatedly if REFUSED - -Bugfixes --------- -- lib/nsrep: revert some changes to NS reputation tracking that caused - severe problems to some users of 1.2.5 (#178 and #179) -- dnssec: fix verification of wildcarded non-singleton RRsets -- dnssec: allow wildcards located directly under the root -- layer/rrcache: avoid putting answer records into queries in some cases - - -Knot Resolver 1.2.5 (2017-04-05) -================================ - -Security --------- -- layer/validate: clear AD if closest encloser proof has opt-outed - NSEC3 (#169) -- layer/validate: check if NSEC3 records in wildcard expansion proof - has an opt-out -- dnssec/nsec: missed wildcard no-data answers validation has been - implemented - -Improvements ------------- -- modules/dnstap: a DNSTAP support module - (Contributed by Vicky Shrestha) -- modules/workarounds: a module adding workarounds for known - DNS protocol violators -- layer/iterate: fix logging of glue addresses -- kr_bitcmp: allow bits=0 and consequently 0.0.0.0/0 matches in view - and renumber modules. -- modules/padding: Improve default padding of responses - (Contributed by Daniel Kahn Gillmor) -- New kresc client utility (experimental; don't rely on the API yet) - -Bugfixes --------- -- trust anchors: Improve trust anchors storage format (#167) -- trust anchors: support non-root TAs, one domain per file -- policy.DENY: set AA flag and clear AD flag -- lib/resolve: avoid unnecessary DS queries -- lib/nsrep: don't treat servers with NOIP4 + NOIP6 flags as timed out -- layer/iterate: During packet classification (answer vs. referral) - don't analyze AUTHORITY section in authoritative answer if ANSWER - section contains records that have been requested - - -Knot Resolver 1.2.4 (2017-03-09) -================================ - -Security --------- -- Knot Resolver 1.2.0 and higher could return AD flag for insecure - answer if the daemon received answer with invalid RRSIG several - times in a row. - -Improvements ------------- -- modules/policy: allow QTRACE policy to be chained with other - policies -- hints.add_hosts(path): a new property -- module: document the API and simplify the code -- policy.MIRROR: support IPv6 link-local addresses -- policy.FORWARD: support IPv6 link-local addresses -- add net.outgoing_{v4,v6} to allow specifying address to use for - connections - -Bugfixes --------- -- layer/iterate: some improvements in cname chain unrolling -- layer/validate: fix duplicate records in AUTHORITY section in case - of WC expansion proof -- lua: do *not* truncate cache size to unsigned -- forwarding mode: correctly forward +cd flag -- fix a potential memory leak -- don't treat answers that contain DS non-existence proof as insecure -- don't store NSEC3 and their signatures in the cache -- layer/iterate: when processing delegations, check if qname is at or - below new authority - - -Knot Resolver 1.2.3 (2017-02-23) -================================ - -Bugfixes --------- -- Disable storing GLUE records into the cache even in the - (non-default) QUERY_PERMISSIVE mode -- iterate: skip answer RRs that don't match the query -- layer/iterate: some additional processing for referrals -- lib/resolve: zonecut fetching error was fixed - - -Knot Resolver 1.2.2 (2017-02-10) -================================ - -Bugfixes: ---------- -- Fix -k argument processing to avoid out-of-bounds memory accesses -- lib/resolve: fix zonecut fetching for explicit DS queries -- hints: more NULL checks -- Fix TA bootstrapping for multiple TAs in the IANA XML file - -Testing: --------- -- Update tests to run tests with and without QNAME minimization - - -Knot Resolver 1.2.1 (2017-02-01) -==================================== - -Security: ---------- -- Under certain conditions, a cached negative answer from a CD query - would be reused to construct response for non-CD queries, resulting - in Insecure status instead of Bogus. Only 1.2.0 release was affected. - -Documentation -------------- -- Update the typo in the documentation: The query trace policy is - named policy.QTRACE (and not policy.TRACE) - -Bugfixes: ---------- -- lua: make the map command check its arguments - - -Knot Resolver 1.2.0 (2017-01-24) -==================================== - -Security: ---------- -- In a policy.FORWARD() mode, the AD flag was being always set by mistake. - It is now cleared, as the policy.FORWARD() doesn't do DNSSEC validation yet. - -Improvements: -------------- -- The DNSSEC Validation has been refactored, fixing many resolving - failures. -- Add module `version` that checks for updates and CVEs periodically. -- Support RFC7830: EDNS(0) padding in responses over TLS. -- Support CD flag on incoming requests. -- hints module: previously /etc/hosts was loaded by default, but not anymore. - Users can now actually avoid loading any file. -- DNS over TLS now creates ephemeral certs. -- Configurable cache.{min,max}_ttl option, with max_ttl defaulting to 6 days. -- Option to reorder RRs in the response. -- New policy.QTRACE policy to print packet contents - -Bugfixes: ---------- -- Trust Anchor configuration is now more robust. -- Correctly answer NOTIMPL for meta-types and non-IN RR classes. -- Free TCP buffer on cancelled connection. -- Fix crash in hints module on empty hints file, and fix non-lowercase hints. - -Miscellaneous: --------------- -- It now requires knot >= 2.3.1 to link successfully. -- The API+ABI for modules changed slightly. -- New LRU implementation. - - -Knot Resolver 1.1.1 (2016-08-24) -================================ - -Bugfixes: ---------- - - Fix 0x20 randomization with retransmit - - Fix pass-through for the stub mode - - Fix the root hints IPv6 addresses - - Fix dst addr for retries over TCP - -Improvements: -------------- - - Track RTT of all tried servers for faster retransmit - - DAF: Allow forwarding to custom port - - systemd: Read EnvironmentFile and user $KRESD_ARGS - - systemd: Update systemd units to be named after daemon - - -Knot Resolver 1.1.0 (2016-08-12) -================================ - -Improvements: -------------- - - RFC7873 DNS Cookies - - RFC7858 DNS over TLS - - HTTP/2 web interface, RESTful API - - Metrics exported in Prometheus - - DNS firewall module - - Explicit CNAME target fetching in strict mode - - Query minimisation improvements - - Improved integration with systemd - - -Knot Resolver 1.0.0 (2016-05-30) -================================ - -Initial release: ----------------- - - The first initial release diff --git a/README.md b/README.md deleted file mode 100644 index 5a3bb1acd..000000000 --- a/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Knot Resolver - -[![Build Status](https://gitlab.nic.cz/knot/knot-resolver/badges/nightly/pipeline.svg?x)](https://gitlab.nic.cz/knot/knot-resolver/commits/nightly) -[![Coverage Status](https://gitlab.nic.cz/knot/knot-resolver/badges/nightly/coverage.svg?x)](https://www.knot-resolver.cz/documentation/latest) -[![Packaging status](https://repology.org/badge/tiny-repos/knot-resolver.svg)](https://repology.org/project/knot-resolver/versions) - -Knot Resolver is a caching full resolver implementation written in C and [LuaJIT][luajit], both a resolver library and a daemon. The core architecture is tiny and efficient, and provides a foundation and -a state-machine like API for extensions. There are three modules built-in - *iterator*, *validator*, *cache*, and a few more are loaded by default. Most of the [rich features](https://www.knot-resolver.cz/documentation/latest/config-overview.html) are written in Lua(JIT) and C. Batteries are included, but optional. - -The LuaJIT modules, support DNS privacy and DNSSEC, and persistent cache with low memory footprint make it a great personal DNS resolver or a research tool to tap into DNS data. TL;DR it's the [OpenResty][openresty] of DNS. - -Strong filtering rules, and auto-configuration with etcd make it a great large-scale resolver solution. - -The server adopts a [different scaling strategy][scaling] than the rest of the DNS recursors - no threading, shared-nothing architecture (except MVCC cache that may be shared) that allows you to pin instances on available CPU cores and grow by self-replication. You can start and stop additional nodes depending on the contention without downtime, which is by default automated by the included [manager][manager]. - -It also has strong support for DNS over TCP, notably TCP Fast-Open, query pipelining and deduplication, and response reordering. - -### Packages - -The latest stable packages for various distributions are available in our -[upstream repository](https://pkg.labs.nic.cz/doc/?project=knot-resolver). -Follow the installation instructions to add this repository to your system. - -Knot Resolver is also available from the following distributions' repositories. - -* [Fedora and Fedora EPEL](https://src.fedoraproject.org/rpms/knot-resolver) -* [Debian stable](https://packages.debian.org/stable/knot-resolver), - [Debian testing](https://packages.debian.org/testing/knot-resolver), - [Debian unstable](https://packages.debian.org/sid/knot-resolver) -* [Ubuntu](https://packages.ubuntu.com/jammy/knot-resolver) -* [Arch Linux](https://archlinux.org/packages/extra/x86_64/knot-resolver/) -* [Alpine Linux](https://pkgs.alpinelinux.org/packages?name=knot-resolver) - -### Building from sources - -Knot Resolver mainly [depends][depends] on Knot DNS libraries, [LuaJIT][luajit], and [libuv][libuv]. -See the [Building project][depends] documentation page for more information. - -### Docker image - -This is simple and doesn't require any dependencies or system modifications, just run: - -``` -$ docker run -Pit cznic/knot-resolver -``` - -The images are meant as an easy way to try knot-resolver, and they're not designed for production use. - -### Running - -The project builds a resolver library in the `lib` directory, and a daemon in the `daemon` directory. It requires no configuration or parameters to run a server on localhost. - -``` -$ kresd -``` - -See the documentation at [knot-resolver.cz/documentation/latest][doc] for more options. - -[depends]: https://www.knot-resolver.cz/documentation/latest/dev/build.html -[doc]: https://www.knot-resolver.cz/documentation/latest/ -[scaling]: https://www.knot-resolver.cz/documentation/latest/config-multiple-workers.html -[manager]: https://www.knot-resolver.cz/documentation/latest/architecture-manager.html -[deckard]: https://gitlab.nic.cz/knot/deckard -[luajit]: https://luajit.org/ -[libuv]: http://libuv.org -[openresty]: https://openresty.org/ - -### Contacting us - -- [GitLab issues](https://gitlab.nic.cz/knot/knot-resolver/issues) (you may authenticate via GitHub) -- [mailing list](https://lists.nic.cz/postorius/lists/knot-resolver-announce.lists.nic.cz/) -- [![Join the chat at https://gitter.im/CZ-NIC/knot-resolver](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/CZ-NIC/knot-resolver?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - diff --git a/bench/bench_lru.c b/bench/bench_lru.c deleted file mode 100644 index 06f77c0d9..000000000 --- a/bench/bench_lru.c +++ /dev/null @@ -1,242 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include -#include -#include -#include -#include -#include - -#include "contrib/ucw/lib.h" -#include "daemon/engine.h" -#include "lib/selection.h" - -typedef kr_nsrep_lru_t lru_bench_t; - -#define p_out(...) do { \ - printf(__VA_ARGS__); \ - fflush(stdout); \ - } while (0) -#define p_err(...) fprintf(stderr, __VA_ARGS__) - -#ifndef LRU_RTT_SIZE -#define LRU_RTT_SIZE 65536 /**< NS RTT cache size */ -#endif - -static int die(const char *cause) -{ - fprintf(stderr, "%s: %s\n", cause, strerror(errno)); - exit(1); -} - -static void time_get(struct timeval *tv) -{ - if (gettimeofday(tv, NULL)) - die("gettimeofday"); -} -static void time_print_diff(struct timeval *tv, size_t op_count) -{ - struct timeval now; - time_get(&now); - now.tv_sec -= tv->tv_sec; - now.tv_usec -= tv->tv_usec; - if (now.tv_usec < 0) { - now.tv_sec -= 1; - now.tv_usec += 1000000; - } - - size_t speed = round((double)(op_count) / 1000 - / (now.tv_sec + (double)(now.tv_usec)/1000000)); - - p_out("%ld.%06d", now.tv_sec, (int)now.tv_usec); - p_err(" s"); p_out(","); p_err("\t"); - p_out("%zd", speed); - p_err(" kops/s"); p_out(","); p_err("\n"); -} - -/// initialize seed for random() -static int ssrandom(char *s) -{ - if (*s == '-') { // initialize from time - struct timeval now; - time_get(&now); - srandom(now.tv_sec * 1000000 + now.tv_usec); - return 0; - } - - // initialize from a string - size_t len = strlen(s); - if (len < 12) - return(-1); - unsigned seed = s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24; - initstate(seed, s+4, len-4); - return 0; -} - -struct key { - size_t len; - char *chars; -}; - -/// read lines from a file and reorder them randomly -static struct key * read_lines(const char *fname, size_t *count, char **pfree) -{ - // read the file at once - int fd = open(fname, O_RDONLY); - if (fd < 0) - die("open"); - struct stat st; - if (fstat(fd, &st) < 0) - die("stat"); - size_t flen = (size_t)st.st_size; - char *fbuf = malloc(flen + 1); - *pfree = fbuf; - if (fbuf == NULL) - die("malloc"); - if (read(fd, fbuf, flen) < 0) - die("read"); - close(fd); - fbuf[flen] = '\0'; - - // get pointers to individual lines - size_t lines = 0; - for (size_t i = 0; i < flen; ++i) - if (fbuf[i] == '\n') { - fbuf[i] = 0; - ++lines; - } - *count = lines; - size_t avg_len = (flen + 1) / lines - 1; - - p_err("lines read: "); - p_out("%zu,", lines); - p_err("\taverage length "); - p_out("%zu,", avg_len); - - struct key *result = calloc(lines, sizeof(struct key)); - result[0].chars = fbuf; - for (size_t l = 0; l < lines; ++l) { - size_t i = 0; - while (result[l].chars[i]) - ++i; - result[l].len = i; - if (l + 1 < lines) - result[l + 1].chars = result[l].chars + i + 1; - } - - //return result; - // reorder the lines randomly (via "random select-sort") - // note: this makes their order non-sequential *in memory* - if (RAND_MAX < lines) - die("RAND_MAX is too small"); - for (size_t i = 0; i < lines - 1; ++i) { // swap i with random j >= i - size_t j = i + random() % (lines - i); - if (j != i) { - struct key tmp = result[i]; - result[i] = result[j]; - result[j] = tmp; - } - } - - return result; -} - -// compatibility layer for the older lru_* names -#ifndef lru_create - #define lru_get_new lru_set - #define lru_get_try lru_get -#endif - -static void usage(const char *progname) -{ - p_err("usage: %s [lru_size]\n", progname); - p_err("The seed must be at least 12 characters or \"-\".\n" - "Standard output contains csv-formatted lines.\n"); - exit(1); -} - - -int main(int argc, char ** argv) -{ - if (argc != 4 && argc != 5) - usage(argv[0]); - if (ssrandom(argv[3]) < 0) - usage(argv[0]); - - p_out("\n"); - size_t key_count; - char *data_to_free = NULL; - struct key *keys = read_lines(argv[2], &key_count, &data_to_free); - size_t run_count; - { - size_t run_log = atoi(argv[1]); - assert(run_log < 64); - run_count = 1ULL << run_log; - p_err("\ntest run length:\t2^"); - p_out("%zd,", run_log); - } - - struct timeval time; - const int lru_size = argc > 4 ? atoi(argv[4]) : LRU_RTT_SIZE; - - lru_bench_t *lru; - #ifdef lru_create - lru_create(&lru, lru_size, NULL, NULL); - #else - lru = malloc(lru_size(lru_bench_t, lru_size)); - if (lru) - lru_init(lru, lru_size); - #endif - if (!lru) - die("malloc"); - p_err("\nLRU capacity:\t"); - p_out("%d,", - #ifdef lru_capacity - lru_capacity(lru) // report real capacity, if provided - #else - lru_size - #endif - ); - - size_t miss = 0; - p_err("\nload everything:\t"); - time_get(&time); - for (size_t i = 0, ki = key_count - 1; i < run_count; ++i, --ki) { - unsigned *r = lru_get_new(lru, keys[ki].chars, keys[ki].len, NULL); - if (!r || *r == 0) - ++miss; - if (r) - *r = 1; - if (unlikely(ki == 0)) - ki = key_count; - } - time_print_diff(&time, run_count); - p_err("LRU misses [%%]:\t"); - p_out("%zd,",(miss * 100 + 50) / run_count); - p_err("\n"); - - unsigned accum = 0; // compute something to make sure compiler can't remove code - p_err("search everything:\t"); - time_get(&time); - for (size_t i = 0, ki = key_count - 1; i < run_count; ++i, --ki) { - unsigned *r = lru_get_try(lru, keys[ki].chars, keys[ki].len); - if (r) - accum += *r; - if (unlikely(ki == 0)) - ki = key_count; - } - time_print_diff(&time, run_count); - p_err("ignore: %u\n", accum); - - // free memory, at least with new LRU - #ifdef lru_create - lru_free(lru); - #endif - free(keys); - free(data_to_free); - - return 0; -} - diff --git a/bench/bench_lru_set1.tsv b/bench/bench_lru_set1.tsv deleted file mode 100644 index 7cb235188..000000000 --- a/bench/bench_lru_set1.tsv +++ /dev/null @@ -1,65536 +0,0 @@ -thumbs2.ebaystatic.com. -mountaineerpublishing.com. -www.mediafire.com. -s-static.ak.fbcdn.net. -lachicabionica.com. -www.freemarket.com. -sip.hotmail.com. -www.cangrejas.com. -google.com. -cache.defamer.com. -developers.facebook.com. -www.eucarvet.eu. -mail.mobilni-telefony.biz. -microsoft-powerpoint-2010.softonic.it. -profile.ak.fbcdn.net. -www.zunescene.mobi. -ads.smowtion.com. -196.127.197.94.in-addr.arpa. -armandi.ru. -solofarandulaperu.blogspot.com. -m.addthisedge.com. -ssl.google-analytics.com. -243.35.149.83.in-addr.arpa. -105.138.138.201.in-addr.arpa. -www.reuters.com. -mail.sodoit.com. -www.download.windowsupdate.com. -resquare.ca. -photos-e.ak.fbcdn.net. -csi.gstatic.com. -www.darty.lu. -6138.7370686f746f73.616b.666263646e.6e6574.80h3f617b3a.webcfs00.com. -frycomm.com.s9b2.psmtp.com. -www.apple.com. -www.haacked.com. -www.jujiaow.com. -170.44.153.187.in-addr.arpa. -a1007.w43.akamai.net. -api.facebook.com. -dns.msftncsi.com. -sageinc.com. -a.root-servers.net. -google.com. -photos-a.ak.fbcdn.net. -developers.facebook.com. -a995.mm1.akamai.net. -a.root-servers.net. -api.twitter.com. -a.root-servers.net. -pub.reggaefrance.com. -an.d.chango.com. -mogesa.com.mx. -0.11-a3092481.20483.1518.18a4.3ea1.410.0.ezg6u89nikkw32n9ssr1pcd8ei.avqs.mcafee.com. -www.gossiponthis.com. -www.asil.com.ar. -mail.mastertex.com. -www.foxsportsla.com. -profile.ak.fbcdn.net. -picture.immobilienscout24.de. -138.191.114.187.in-addr.arpa. -71.209.110.187.in-addr.arpa. -education.idoneos.com. -api.twitter.com. -photos-c.ak.fbcdn.net. -kepco.co.kr. -developers.facebook.com. -i2.ytimg.com. -202.160.142.190.in-addr.arpa. -blogparts.okwave.jp. -3.254.244.201.in-addr.arpa. -edge.quantserve.com. -a6.sphotos.ak.fbcdn.net. -hi-in.facebook.com. -cjqxdgoea.q61b6c1l. -google.com.mx. -profile.ak.fbcdn.net. -233.252.0.201.in-addr.arpa. -local-bay.contacts.msn.com. -www.facebook.com. -creative.ak.fbcdn.net. -ad.afy11.net. -es-es.facebook.com. -175.130.35.186.in-addr.arpa. -ares.jsc.nasa.gov. -madewithluv.com. -252.0.168.192.in-addr.arpa. -iztvkxdza.z57y1u5n. -quakerfabric.com. -s306.videobb.com. -washeen91.writingjob.hop.clickbank.net. -155.56.250.190.in-addr.arpa. -1.0.0.127.in-addr.arpa. -iguanas.mex.tl. -habbo.com.mx. -es-es.facebook.com. -www.gossipsauce.com. -251.206.15.201.in-addr.arpa. -trk.paid-surveys-at-home.com. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -andrewsullivan.com. -i499.photobucket.com. -www.hotelelreymoro.com. -www.microsoft.com. -www.gonelocal.com. -rad.msn.com. -tienda.imperioh2.cl. -a.root-servers.net. -img.apnanalytics.com. -apps.facebook.com. -www.shareyouritems.com. -yog34.games.ac4.yahoo.com. -www.man-engines.com. -translate.google.com.mx. -aoqrf2:by.v75i0e0a. -26.250.168.189.in-addr.arpa. -_156_03_7. -a.root-servers.net. -sbsio.coast.ru. -nothirst.com. -64.193.75.85.in-addr.arpa. -asktoolbar.weather.com. -160.204.126.216.in-addr.arpa. -a.root-servers.net. -img.youtube.com. -a.root-servers.net. -cn.pool.ntp.org. -www.facebook.com. -s1.wp.com. -tcpl.ca. -3d.angrybirds.name. -s.youtube.com. -gma.yahoo.com. -lh3.ggpht.com. -fistintheair.com. -_ldap._tcp. -connect.facebook.net. -hackingetico.com. -static.xvideos.com. -blog.mobango.com. -st.chatango.com. -marketingdesdelaromana.blogspot.com. -www.juegospara.com. -toolbarqueries.google.com. -chinamoly.com. -160.140.6.186.in-addr.arpa. -a.root-servers.net. -143.133.213.201.in-addr.arpa. -different-love.foroactivo.com. -data-recovery-free-help.blogspot.com. -stores.ebay.es. -darkanime.mforos.com. -cs.cornell.edu. -206.62.154.189.in-addr.arpa. -i2.ytimg.com. -a.root-servers.net. -dmse.com. -mediacdn.disqus.com. -profile.ak.fbcdn.net. -2.200.126.85.in-addr.arpa. -photos-e.ak.fbcdn.net. -cityvillefb0.static.zgncdn.com. -laplumadebarro.blogspot.com. -www.feelthesteel.biz. -84.178.30.190.in-addr.arpa. -www.google.com. -client66.dropbox.com. -t2.gstatic.com. -cdn.mediafire.com. -urls.api.twitter.com. -sanlasar.ru. -serialnumber.in. -tech-whitepapers.manta.com. -tsuki-yaoi.blogspot.com. -123mail.cl. -imap.gmail.com. -58.213.21.89.in-addr.arpa. -246.254.24.95.in-addr.arpa. -mychemhelena.obolog.com. -lbpdmsmsa01.d.r.dfait-maeci.gc.ca. -84.235.75.201.in-addr.arpa. -lhuhbu.com. -www.humorpower.com. -a1.sphotos.ak.fbcdn.net. -mn.wikipedia.org. -eu4.stvid.com. -www.difasa.net. -www.ct-7ob.com. -novp.spb.su. -video.xnxx.com. -mindspring.net. -142.190.65.95.in-addr.arpa. -ssl.gstatic.com. -www.cinemanow.com. -www.nolimitweb.nl. -ducs.millsshirley.com. -setting3.yeahost.com. -www.solo.aqui.creatusfrases.net. -static.ak.fbcdn.net. -6bf8e:23q.b92o9u1a. -developers.facebook.com. -a.root-servers.net. -butovo.com. -host1.dia.net. -lg-phones.org. -www.birdseye.com. -www.inpolitics.ro. -abajate.blogspot.com. -134.18.23.186.in-addr.arpa. -www.blackberry.com. -rodina-kino.ru. -91.233.90.2.in-addr.arpa. -ib.adnxs.com. -39.152.29.186.in-addr.arpa. -email.com. -0.11-270f7081.c120081.1518.195c.3ea0.210.0.rgc396q1h2icmzvnthlvztdn7v.avqs.mcafee.com. -static.ak.fbcdn.net. -_963_91_2. -zagsmoscow.ru. -37.50.93.200.in-addr.arpa. -sport.allyoubet.com. -www.facebook.com. -mt1.googleapis.com. -l.yimg.com. -a.root-servers.net. -t7.tagstat.com. -books.google.com.mx. -ucs.query.yahoo.com. -i4.ytimg.com. -rylandhomes.com. -google.com. -49.147.220.66.in-addr.arpa. -sfdr-cisd.com. -9-1.qlty.finarea.ch. -goodereader.disqus.com. -ch.tudelft.nl. -1496354998.mail.outlook.com. -landrover.tagworldwide.com. -87.197.160.201.in-addr.arpa. -_ldap._tcp. -i4.ytimg.com. -s1-excel.vo.msecnd.net. -download884.avast.com. -www.unrunescape.com. -hi-in.facebook.com. -translate.google.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.google.com. -www.bigearl.org. -www.bridedressup.net. -external.ak.fbcdn.net. -155.0.14.212.in-addr.arpa. -tpc.googlesyndication.com. -176.155.145.201.in-addr.arpa. -www.soho.com.co. -blog.seattlecoffeegear.com. -153.151.143.187.in-addr.arpa. -noticias.lainformacion.com. -www.facebook.com. -166.25.15.187.in-addr.arpa. -a.root-servers.net. -www.copytrans.jp. -www.michell.com.pe. -descargararesgratis.disqus.com. -redirector.c.youtube.com. -photos-f.ak.fbcdn.net. -i366.photobucket.com. -a.root-servers.net. -photos-h.ak.fbcdn.net. -s-static.ak.fbcdn.net. -api-read.facebook.com. -widgets.amung.us. -kjtafdhws.com.domain.local. -listino.omniauto.it. -time.nist.gov. -docs.google.com. -209.57.228.71.in-addr.arpa. -m.addthisedge.com. -img.mediaplex.com. -login.live.com. -afrozeprinting.com. -youtube-ui.l.google.com. -pohmtk.com. -57.30.47.189.in-addr.arpa. -145.87.17.85.in-addr.arpa. -apps.facebook.com. -www.google.com. -sponsoredcdn.speedbit.com. -a1.twimg.com. -www.xn--cabaasmazamitla-1qb.com. -181.45.24.125.in-addr.arpa. -176.17.24.190.in-addr.arpa. -developers.facebook.com. -idealcalor.com. -clients1.google.com. -mail.lab.comcor.ru. -a355.phobos.apple.com. -mail2lucky.com. -www.facebook.com. -www.bmag.org.uk. -mendozabieninforma.com.ar. -www.webtogs.co.uk. -api.twitter.com. -a.root-servers.net. -el.y8.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -a771.da1.akamai.net. -zynga2-a.akamaihd.net. -dlpiper.com. -canadianislamiccongress.com. -webmail-ru.bul.net. -175.81.81.186.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -gmaseven.blogspot.com. -a.root-servers.net. -52.67.250.189.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -sp.cwfservice.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -tijuana-kei.com. -versn.ru. -142.36.59.200.in-addr.arpa. -partted.com. -homey.ru. -cdn.api.twitter.com. -ns3.molehand.eu. -foxnews.sl.advertising.com. -www.reverbnation.com. -i3.ytimg.com. -2.1.168.192.in-addr.arpa. -www.fotosrarasgratis.com. -h-app01-06.hamachi.cc. -enblogs.com. -g.ceipmsn.com. -suggestqueries.google.com. -www.nuts.co.uk. -db._dns-sd._udp.lan. -www.msftncsi.com. -api.facebook.com. -rz5oq7:zr.72bo. -liduvinacarrera.blogspot.com. -cdn4.fmylife.com. -a.root-servers.net. -encrypted-tbn1.google.com. -msnportal.112.2o7.net. -a.root-servers.net. -need2bfit.com. -www.iegallery.com. -a.root-servers.net. -s2.youtube.com. -117.183.127.187.in-addr.arpa. -www.sqm.microsoft.com. -googlehosted.l.googleusercontent.com. -23.200.186.189.in-addr.arpa. -kuban-service.ru. -www.youtube.com. -sn1msg2010640.sn1.gateway.edge.messenger.live.com. -view.atdmt.com. -c-0.19-210fa081.8020081.1518.19d4.3ea1.410.0.c4b819z5a5p2j1wbcnuecanzp5.avqs.mcafee.com. -a.root-servers.net. -mail.landbank.com. -cuda.csystems.com. -mail.kwreferred.com. -www.google.com. -www.macgeneration.com. -www.youngcloseup.com. -www.youtube.com. -c0551612.cdn.cloudfiles.rackspacecloud.com. -snj-us-bkwp-712-att.kodak.com.home. -unijuris.fr. -147.149.168.192.in-addr.arpa. -_131_85_2. -a.root-servers.net. -safebrowsing-cache.google.com. -www.facebook.com. -xodusgroup.com. -download675.avast.com.lan. -party-games.zaural.ru. -26.1.237.78.in-addr.arpa. -_957_43_2. -www.winamp.com. -217.35.0.10.in-addr.arpa. -www.facebook.com. -images03.olx-st.com. -236.158.78.190.in-addr.arpa. -www.claro.com.pe. -photos-g.ak.fbcdn.net. -theflatland.com. -www.bocareydecopas.com.ar. -www.mmaaxx.com. -gswebhost.com. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -158.120.16.177.in-addr.arpa. -s3.amazonaws.com. -slmclaw.com.s6b1.psmtp.com. -www.google.com. -css.wlxrs.com. -ns1.facebook.com. -xwt.ru. -a995.mm1.akamai.net. -dinastia-stv.ru. -www.gayteacher.net. -a6.sphotos.ak.fbcdn.net. -audio-sv5-t1-1.pandora.com. -www.facebook.com. -www.swtorguidehq.com. -video01.ifeng.com. -petsafe.net.inbound15.mxlogicmx.net. -www.youtube.com. -teredo.ipv6.microsoft.com. -blog.gypsy05.com. -_ldap._tcp. -u20.eset.com. -a.root-servers.net. -sukellushaaja.fi. -cdn-5.moviebox.com. -196.103.232.189.in-addr.arpa. -74.115.44.83.in-addr.arpa. -sr.wikipedia.org. -cs10.chatropolis.com. -mx.games.yahoo.com. -www.roperscientific.com. -dwmailgate.delwestusa.com. -gfx4.hotmail.com. -www.itxchaos.co.uk. -132.176.56.92.in-addr.arpa. -es.safely.yahoo.com. -safebrowsing.clients.google.com. -b-0.19-22094008.61081.1518.19d4.3ea1.410.0.cfqf8cl1gw829ff7ctuvqcsszi.avqs.mcafee.com. -236.174.85.200.in-addr.arpa. -151.220.11.67.in-addr.arpa. -res2.windows.microsoft.com. -api.facebook.com. -207.56.65.217.in-addr.arpa. -a.root-servers.net. -sp.cwfservice.net. -a.root-servers.net. -pattygopez-mileycyrusprettycool.buzznet.com. -pixel.facebook.com. -a-0.19-a309d000.2170092.1518.19d4.3ea1.210.0.mjcu9aaeb23cpducliwh1wip8j.avqs.mcafee.com. -www.blinklist.com. -www.laughenough.com. -youtube-ui.l.google.com. -fugigreenwood.com. -ssl.google-analytics.com. -images.amazon.com. -a.root-servers.net. -202.1.0.192.in-addr.arpa. -www.desmotivaciones.es. -mmrrg.com.s8b1.psmtp.com. -proinfo.pandasoftware.com. -ns.dipmap.com. -stats.norton.com. -a.root-servers.net. -www.grupotelfor.com. -static.ak.connect.facebook.com. -fxfeeds.mozilla.com. -remote.infopark.ru. -fbcdn-profile-a.akamaihd.net. -gbnet.com. -www.theamazingspiderman.com. -136.179.71.74.in-addr.arpa. -a.root-servers.net. -a-0.19-a3007008.10092.1518.19d4.3ea1.410.0.31jpecqc8hl6humr2z82g26p46.avqs.mcafee.com. -apis.google.com. -www.gameark.com. -109.240.97.186.in-addr.arpa. -tracking.usage.app.conduit-services.com. -mail.samara.alice.ru. -a3.twimg.com. -photos-c.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -profile.ak.fbcdn.net. -www3.geosc.psu.edu. -playerservices.streamtheworld.com. -www.fb.com. -244.173.172.190.in-addr.arpa. -534-async.olark.com. -external.ak.fbcdn.net. -static.ak.fbcdn.net. -static.ak.fbcdn.net. -bstrlo51u.71zv. -babich.spb.ru. -ingameads.gameloft.com. -ein.gtkg.net. -kotonoha.monkey-pirate.com. -mail.marstu.net. -moricoli.com.mx4.mxtoolbox.com. -6.136.192.190.in-addr.arpa. -163.123.114.186.in-addr.arpa. -www.facebook.com. -hitext.ru. -creative.ak.fbcdn.net. -a.root-servers.net. -213.9.122.190.in-addr.arpa. -www.volviendoalabiblia.com.mx. -d1.media.v4.skyrock.net. -quality.ru. -pixel.facebook.com. -static.ak.fbcdn.net. -maria-truecolours.blogspot.com. -www.japonesasgratis.com.ar. -_654_58_5. -csc.beap.ad.yieldmanager.net. -127.222.42.186.in-addr.arpa. -lb._dns-sd._udp.lan. -. -www.gaymovieking.com. -xrjwye.com. -ns2.webland.ch. -20.48.25.190.in-addr.arpa. -developers.facebook.com. -de.answers.yahoo.com. -quitarverrugasylunares.net. -ytogmowi9.64ke. -0-jj-w.channel.facebook.com. -e24.tns-cs.net. -grincheux.irislink.com. -a.root-servers.net. -a.root-servers.net. -3d3nynsfk.h79x8v5n. -maps.gstatic.com. -assets.gamersunite.com. -completemortgageservice.com. -109.79.167.189.in-addr.arpa. -es.wikipedia.org. -www.oxygenez-vous.com. -row.bc.yahoo.com. -102.16.158.189.in-addr.arpa. -a.root-servers.net. -www.elamalta.com. -co.catawba.nc.us. -amorvida.bligoo.com. -locia.omega.mplik.ru. -79.18.158.187.in-addr.arpa. -fitnessatlantic.com. -a5.sphotos.ak.fbcdn.net. -gemmhomes.com. -52.90.44.190.in-addr.arpa. -dictionary.lunaescence.com. -accounts.google.com. -a8.sphotos.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -2acyxlnqn.73ih. -246.122.128.189.in-addr.arpa. -www.limited-uk.de. -static.ak.fbcdn.net. -343cyb7n5.87sv. -profile.ak.fbcdn.net. -wyikyf.com. -safebrowsing-cache.google.com. -secure.shared.live.com.edgekey.net. -time.chttl.com.tw. -photos-c.ak.fbcdn.net. -time.chttl.com.tw. -google.com. -hi-in.facebook.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -trueslant.com. -data.mobclix.com. -teredo.ipv6.microsoft.com. -xvideos-390.vo.llnwd.net. -www.blogger.com. -www.kaskus.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -auth.np.ac.playstation.net. -decentral-0.vo.llnwd.net. -mail.sura.ru. -lvpei.org. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -kccinter.net. -wirelessplanetusa.com. -www.google.com. -s4.histats.com. -119.216.63.189.in-addr.arpa. -cablevision.com.ar. -www.laurelcatering.com. -photos-e.ak.fbcdn.net. -barracuda.acgmedia.com. -www.mercerbears.com. -171.48.52.186.in-addr.arpa. -thepinoy.com. -login.yahoo.com. -support.ins.dell.com. -1.bp.blogspot.com. -mailin11mx.groovy.gr. -profile.ak.fbcdn.net. -www.kitco.com. -chicaskm.com. -engine.influads.com. -external.ak.fbcdn.net. -cgibin.erols.com. -98.178.244.190.in-addr.arpa. -kapel-la.ru. -www.ftalk.com. -clients1.google.com. -curryandco.com. -106.48.179.190.in-addr.arpa. -iesealarcos.es. -creative.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -dns.msftncsi.com. -adserving.cpxinteractive.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -www.gastrox.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -68.146.52.201.in-addr.arpa. -r._dns-sd._udp.lan. -a5.sphotos.ak.fbcdn.net. -mail.parishepiscopal.org. -pcstudents.us. -c.atdmt.com. -mail.tp.kurgan.ru. -wd-edge.sharethis.com. -s3pr.shoptowin.net. -ugc.ducati.kontain.com. -dns.msftncsi.com. -photos-e.ak.fbcdn.net. -optimized-by.rubiconproject.com. -www.ebay.es. -thumbs1.ebaystatic.com. -213.217.245.189.in-addr.arpa. -www.samsungpresenter.com. -www.bancomer.com. -ingeterra.espacioblog.com. -147.29.26.201.in-addr.arpa. -133.16.168.192.in-addr.arpa. -p01-calendarws.icloud.com. -adserver.adtech.de. -216.125.76.190.in-addr.arpa. -elrellano.co. -a1108.da1.akamai.net. -www.bravotube.co. -cdn.api.twitter.com. -mve8kjmk9.94qi. -accounts.google.com. -toyota-tsusho.com. -magaltc.com.inbound15.mxlogic.net. -hotmail.com. -metrics.el-mundo.net. -waldan.com. -144.187.132.189.in-addr.arpa. -www.hasrawy.net. -apps.facebook.com. -www.mapp-oea.net. -bluehillfarm.com. -fr-fr.facebook.com. -a.root-servers.net. -sp.cwfservice.net. -rehbaum.net. -www.rdanielstudios.com. -200.32.94.189.in-addr.arpa. -sites.google.com. -58.200.65.190.in-addr.arpa. -voipa.sip.yahoo.com. -tag.admeld.com. -d2n8p8eh14pae1.cloudfront.net. -db._dns-sd._udp.0.129.37.10.in-addr.arpa. -252.92.80.98.in-addr.arpa. -download.windowsupdate.com. -77.44.112.114.in-addr.arpa. -s-static.ak.facebook.com. -8.131.23.217.in-addr.arpa. -foothealth.about.com. -123.71.52.186.in-addr.arpa. -246.242.62.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -www.cityvox.co.uk. -a.root-servers.net. -preventionnetwork.info. -links4media.blogspot.com. -78.71.181.186.in-addr.arpa. -www.mayadstudios.com. -a.root-servers.net. -mail.slam.com. -crl.comodoca.com. -search.conduit.com. -museotextildeoaxaca.wordpress.com. -www.iglesialatina.org. -7.52.100.190.in-addr.arpa. -feeds.bbci.co.uk. -www.alz.org. -a1.sphotos.ak.fbcdn.net. -connect.facebook.net. -es.landing.playnik.com. -www.facebook.com. -192.207.15.187.in-addr.arpa. -mx1.educom.ru. -www2.winavi.com. -profile.ak.fbcdn.net. -89.237.69.190.in-addr.arpa. -18.232.69.186.in-addr.arpa. -photos-c.ak.fbcdn.net. -ph.answers.yahoo.com. -_177_16_3. -www.telegraph.co.uk. -www.yswhosting.com. -www.metodologiamad.cl. -i2.ytimg.com. -time.chttl.com.tw. -westerntraffic.com. -dalisigloxx.wordpress.com. -view.asiae.co.kr. -google.com. -co.nacogdoches.tx.us.s9b2.psmtp.com. -www.amazon.com. -hillevans.com.s7b2.psmtp.com. -historiasextraordinarias.files.wordpress.com. -a1.sphotos.ak.fbcdn.net. -bsf.smowtion.com. -24.media.tumblr.com. -a7.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -time.chttl.com.tw. -chsi.ru. -111.32.171.201.in-addr.arpa. -a.root-servers.net. -updatekeepalive.mcafee.com. -iu1l8ddxm.57kv. -download797.avast.com. -searchqutoolbar.imesh.wizard.applicationstat.com. -a4.da1.akamai.net. -xf_com_update_doctor.qq.com. -ads2.msads.net. -shwaish.com. -www.facebook.com. -9q2xe4p38.78hv. -es-la.facebook.com. -isearch.avg.com. -i4.ytimg.com. -141.134.233.190.in-addr.arpa. -636f6c.7374623030.732d6d736e.636f6d.80h413650e6.webcfs00.com. -a-0.19-309f081.8000033.1518.19d4.2f1c.10.0.bzi1cbn28dc16k8idwcb7lck5t.avqs.mcafee.com. -pagead2.googlesyndication.com. -a.root-servers.net. -sn18.mailshell.net. -www.facebook.com. -s42.undefined.home. -ajax.googleapis.com. -prog-net.com. -pharmfab.com. -80.171.246.85.in-addr.arpa. -66.26.211.81.in-addr.arpa. -id.google.com.mx. -i3.ytimg.com. -static.ak.fbcdn.net. -www.sexomax.net. -pixel.facebook.com. -srx.main.ebayrtm.com. -mangacan1.ucoz.com. -dalek.softonic.com. -lpadvisors.com. -content.yieldmanager.edgesuite.net. -api.facebook.com. -ar-ar.facebook.com. -img704.imageshack.us. -a1.sphotos.ak.fbcdn.net. -fr-fr.facebook.com. -a.root-servers.net. -123.36.93.200.in-addr.arpa. -tv.hir24.hu. -www.livesicilia.it. -_357_99_0. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -12.176.15.186.in-addr.arpa. -a.root-servers.net. -191.164.138.190.in-addr.arpa. -strappadometalblog.blogspot.com. -7.169.185.187.in-addr.arpa. -www.google.com. -www.kids-pages.com. -www.utj.edu.mx. -seychellegabrielfan.com. -a.root-servers.net. -ad.yieldmanager.com. -hosting.lockhosts.com. -mvzmil.ru. -al-nabaa.net. -www.struat.com. -www.mslitigationreview.com. -wg6jw1g4r.p41z2x6m. -ja.wikipedia.org. -ocsp.entrust.net. -a.root-servers.net. -www.aa.com. -www.sara-freder.com. -v1.sftcdn.net. -www.psp.wa.gov. -2040.ecarlist.com. -8.232.143.175.in-addr.arpa. -facebookcheating.com. -incanto.ru. -livingair-74.ru. -pagead2.googlesyndication.com. -time.windows.com. -www.google.com. -244.107.226.190.in-addr.arpa. -aaugonline.net. -family-home.ru. -www.youtube.com. -vel-com.ru. -go.microsoft.com. -imagenes-estaticas.elmercadona.es. -22.214.21.190.in-addr.arpa. -deporteyautismo.blogspot.com. -www.ed9101d8.com. -www.unonoticias.com.mx. -mail.gmail.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -loading3.widdit.com. -199.68.0.187.in-addr.arpa. -elcorillord.org. -itunes.com. -mail.globalinetbiz.net. -ads.bluelithium.com. -www.google.com. -under-your-skin.com. -7myjx2fjl.a36n3c9y. -ar-ar.facebook.com. -www.forosdelweb.com. -polldaddy.com. -doc.mbalib.com. -i67.servimg.com. -a.root-servers.net. -mesadtvm.com.br. -nflsoup.com. -checkip.dyndns.org. -photos-b.ak.fbcdn.net. -www.frbsf.org. -6ige7n4r7.w18s0b7x. -de.tynt.com. -boitaullresort.es. -download.windowsupdate.com. -95.146.220.66.in-addr.arpa. -id.google.com.mx. -hi-in.facebook.com. -a6.sphotos.ak.fbcdn.net. -mx.groups.yahoo.com. -www.providencenightlife.net. -video.google.com.mx. -15.26.254.190.in-addr.arpa. -prod1.rest-notify.msg.yahoo.com. -www.google.com. -83.85.182.189.in-addr.arpa. -s-static.ak.facebook.com. -pwi-forum.fr.perfectworld.eu. -yahoo.com.sg. -hbflarch.com. -odnoklassniki.com. -forum.fiance.com. -skateboard-trick-tips.com. -_ldap._tcp. -static.punishtube.com. -img846.imageshack.us. -x3w.zapto.org. -wilsonco.com. -www.yahoo.com. -gdjf.com. -filter.radersolutions.com. -profile.ak.fbcdn.net. -mailgate.cabair.com. -hotrodgrills.com. -www.crazy-tattoo-designs.com. -specialtycakecreations.com. -169.235.141.201.in-addr.arpa. -clock.fmt.he.net. -lh4.ggpht.com. -www.apple.com. -ratings-wrs.symantec.com. -ycmt-cdn.s3.amazonaws.com. -dc378.4shared.com. -cdn.api.twitter.com. -real.theoffside.com. -qetytug.com. -wpad. -a.root-servers.net. -sites.google.com. -shop.safewalls.org. -pics.ebaystatic.com. -googleads.g.doubleclick.net. -shoujo-s.livejournal.com. -104.76.51.190.in-addr.arpa. -31.190.63.69.in-addr.arpa. -efrtz24jq.p51y3m4p. -97.7.18.99.in-addr.arpa. -realtyexecutivesjulian.com. -content.ak.metrogames.com. -a1052.g.akamai.net. -cdn.api.twitter.com. -onlineaccess.mycreditcard.cc. -www.shemaletushy.com. -trexrb.ru. -106.108.102.189.in-addr.arpa. -ads.adk2.com. -bogotaku.mejorforo.net. -i4.ytimg.com. -b47nb2tdo.87dv. -www.lesbilicious.co.uk. -axiome.info. -gmail.com. -d18txuuu339yuz.cloudfront.net. -www.google.com. -152.49.50.174.in-addr.arpa. -59.240.57.83.in-addr.arpa. -mozilla.cdn.leaseweb.com. -www.google.com. -c-ak.static-rootmusic.com. -time.nist.gov. -beauty-women.ru. -s-static.ak.fbcdn.net. -102.87.142.79.in-addr.arpa. -136.253.77.190.in-addr.arpa. -teredo.ipv6.microsoft.com. -feeds.delicious.com. -www.imdb.com. -young-topmodels.info. -binatel.ru. -105.89.210.98.in-addr.arpa. -se.magadan.su. -static.ak.fbcdn.net. -www.natuzzi.com. -133.191.58.189.in-addr.arpa. -creativecommons.org. -outcampmail006.snc7.facebook.com. -1f7yqor1v.j89b6t2o. -video.mx.msn.com. -www.keaneshaped. -google.com. -gtaonline.com.ar. -accounts.google.com. -static.ak.fbcdn.net. -www.adobe.com. -cn1.redswoosh.akadns.net. -gamerandroide.blogspot.com. -wolseley.at. -41.197.46.201.in-addr.arpa. -www.scrapbook.com. -www.lancommand.co.uk. -86.59.250.111.in-addr.arpa. -214.162.73.190.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -a4.mzstatic.com. -uccebszps.biz. -159.183.58.99.in-addr.arpa. -203.1.108.99.in-addr.arpa. -30.205.201.108.in-addr.arpa. -c.atdmt.com. -160.68.90.186.in-addr.arpa. -carpet-rug.com. -www.hctc.com. -nts-0nline.net. -www.taxmann.com. -www.copine-coquine.com. -lagunasecagolf.com. -ads.bluelithium.com. -a3.sphotos.ak.fbcdn.net. -tools.google.com. -dr._dns-sd._udp.0.55.211.10.in-addr.arpa. -mmoga.de. -165.179.254.201.in-addr.arpa. -jjszo4ss1.72wq. -pagead2.googlesyndication.com. -external.ak.fbcdn.net. -154.4.26.190.in-addr.arpa. -ad.yieldmanager.com. -lh6.googleusercontent.com. -www.update.microsoft.com. -external.ak.fbcdn.net. -243.251.209.112.in-addr.arpa. -fileshare704.depositfiles.com. -www.gstatic.com. -i1fxw5q2d.83pc. -i.ytimg.com. -profil-furnitura.ru. -hidheadlightconversion.com. -a.root-servers.net. -e461.b.akamaiedge.net. -photos-g.ak.fbcdn.net. -www.facebook.com. -weichertacclaim.com. -www.google.com.mx. -ads.bluelithium.com. -a.root-servers.net. -soundcloud.com. -realtyplacement.com. -dns.msftncsi.com. -mx4.future.net.uk. -s.youtube.com. -feeds.bbci.co.uk. -234.77.153.187.in-addr.arpa. -dns.msftncsi.com. -mobilesources.net. -_951_93_2. -cdn.joomla.org. -tracker.ilibr.org. -iq7:vctbr.55ni. -lasd.org. -tour-foto.ru. -3636.313735.313233.313032.80h42af7b66.webcfs00.com. -www.escortvipbayan.com. -a.root-servers.net. -video327.myfreecams.com. -video.xnxx.com. -www.google.com. -api.twitter.com. -godleyfarms.com. -liveupdate.symantecliveupdate.com. -a.root-servers.net. -195.122.209.77.in-addr.arpa. -smtp2.halfen.com. -javadl-esd.sun.com. -chernobrovin.ru. -sertel2k.vtrbandaancha.net. -www.googleadservices.com. -www.thethreadexchange.com. -a.root-servers.net. -twitter.com. -www.123rf.com. -hotmail.com. -www.google-analytics.com. -www.pallcare.asn.au. -api.facebook.com. -a.root-servers.net. -billing.sharo4ka.ru. -gkudqnwrt.12mv. -www.facebook.com. -www.bestlaidschemes.com. -47.46.155.85.in-addr.arpa. -d2105651.xoom.it. -msc.wlxrs.com. -es-la.facebook.com. -fb-520.com. -billing.sharo4ka.ru. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -static.ak.fbcdn.net. -oluvwjgph.96zi. -a.root-servers.net. -photos-g.ak.fbcdn.net. -google.com. -cdn.stumble-upon.com. -ad.doubleclick.net. -hi-in.facebook.com. -musicjacker.com. -fishinggonewild.com. -alerts.conduit-services.com. -photos-b.ak.fbcdn.net. -yo.wikipedia.org. -static.ak.fbcdn.net. -188.8.32.201.in-addr.arpa. -vp.sip.messenger.msn.com. -facebook.com. -40.111.105.190.in-addr.arpa. -www.manhunt.net. -www.freexxxdot.com. -carwale.com. -mail.laserlightengines.com. -um16.eset.com. -www.googleadservices.com. -miscritscdn.brokenbulbstudios.com. -ssl.gstatic.com. -plus.google.com. -denver.bbb.org. -a7.sphotos.ak.fbcdn.net. -www.fulltono.com. -www.hqudc.org. -photos-e.ak.fbcdn.net. -google.com. -es-es.facebook.com. -mailserver2.techint.it. -hqwhtk8k:.89ii. -lwt.com. -248.12.4.189.in-addr.arpa. -www.takethewalk.net. -www.whatsapp.com. -spaces.live.com. -b._dns-sd._udp.0.81.168.192.in-addr.arpa. -142.41.241.201.in-addr.arpa. -t7.tagstat.com. -www.chilincasita.blogspot.com. -ns2.dnspod.net. -www.udec.com.mx. -www.parkinggames365.com. -cnfg.facemoods.com. -www.speakersblog.info. -0.gravatar.com. -suggestqueries.google.com. -mscca.mscgva.ch. -237.151.178.186.in-addr.arpa. -10.212.1.201.in-addr.arpa. -. -lwsa.mlb.com. -www.facebook.com. -sunvestusa.com. -a.root-servers.net. -www.amateurs-videos.net. -micros.co.za. -www.google.com. -a1005.w42.akamai.net. -i.t-mobile-favourites.net. -www.tagged.com. -getsu.zapto.org. -sevelina.ru. -www.appsmitten.com. -a3.sphotos.ak.fbcdn.net. -msn.foxsports.com. -c5.zedo.com. -177.164.77.190.in-addr.arpa. -a.root-servers.net. -fiorellabotteri.blogspot.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -ns.smartec.ru. -www.brucelipton.com. -89.244.107.190.in-addr.arpa. -r.openx.net. -mail.n-u-c.ru. -6.246.26.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -www.hojadeosaschool.org. -94.70.41.189.in-addr.arpa. -omniproductions.com. -isatap.wag160n. -apps.facebook.com. -28.161.168.192.in-addr.arpa. -226.19.23.187.in-addr.arpa. -vitamind3info.blogspot.com. -rotorrentmania.lx.ro. -s-static.ak.fbcdn.net. -vincotte.be. -static.ak.facebook.com. -is.mixmarket.biz. -a947.phobos.apple.com. -ssl.gstatic.com. -static.ak.fbcdn.net. -hotmail.com. -www.acer-euro.com. -pixer.meaningtool.com. -photos-a.ak.fbcdn.net. -dvdcovers.vidz.com. -mcneal.com.s7b2.psmtp.com. -b.static.ak.fbcdn.net. -mail.hmconsultores.pt. -moorcroftcs.co.uk. -www.osvdailytake.com. -motoxtreme.ru. -reporter.es.msn.com. -google.com. -nationalstrategy.com. -a.root-servers.net. -ci.national-city.ca.us.inbound15.mxlogic.net. -74.241.123.188.in-addr.arpa. -www.advocateclassic.com. -117.254.214.81.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -bfjoy.com.s5a1.psmtp.com. -dr._dns-sd._udp.0.11.168.192.in-addr.arpa. -smtp.dnsexit.com. -a.root-servers.net. -free-es-cf.softonic.com. -20.122.66.190.in-addr.arpa. -www.steam-sauna-benefits.com. -www.brad.ac.uk. -128.105.109.186.in-addr.arpa. -cdn2.widdit.com. -www.bywifi.com. -blog.vampirethemasquerade.com. -x9tfj3pby.60kv. -js2.wlxrs.com. -cs10398.vk.com. -www.facebook.com. -www.jenniferrizzo.com. -www.slstoredisplays.com. -cs10663.vk.com. -. -71.86.252.189.in-addr.arpa. -www.medellinmiempresa.com. -www.naturalmiscarriage.org. -www.acmoc.org. -b._dns-sd._udp.6.0.8.10.in-addr.arpa. -_394_90_5. -andiamo-tel.com. -a1132.da1.akamai.net. -150.246.198.190.in-addr.arpa. -www.adserver.bz. -lbjclinic.com. -platform.ak.fbcdn.net. -www.facebook.com. -www.msftncsi.com. -profile.ak.fbcdn.net. -124.59.155.187.in-addr.arpa. -a.root-servers.net. -130.171.158.187.in-addr.arpa. -ubs.ch. -jayse.us. -user.easycam.hk. -172.153.42.186.in-addr.arpa. -feedburner.google.com. -dnl-01.geo.kaspersky.com. -islamentrehermanas.forumactif.com. -instagram.com. -a6.sphotos.ak.fbcdn.net. -www.facebook.com. -a.root-servers.net. -profile.ak.fbcdn.net. -www.alessibici.com. -www.cuantarazon.com. -98.184.190.58.in-addr.arpa. -oakland.athletics.mlb.com. -www.google.com. -groups.live.com. -share.lockerz.com. -www.ghostrecon.es. -profile.ak.fbcdn.net. -o-o.preferred.ord08s03.v10.lscache8.c.youtube.com. -margalates.wordpress.com. -www.googleadservices.com. -ffin.com. -mx.septen.com. -wilsontechnologies.net.inbound15.mxlogicmx.net. -www.lasrecetasdetriana.com. -plusone.google.com. -mail04.hgc.ch. -adbucks.brandreachsys.com. -a5.sphotos.ak.fbcdn.net. -150.155.13.201.in-addr.arpa. -a.root-servers.net. -zynga2-a.akamaihd.net. -mail.gsdllc.com. -academiavascadegastronomia.com. -227.25.243.168.in-addr.arpa. -a.root-servers.net. -www.camzap.com. -a6.sphotos.ak.fbcdn.net. -87.17.41.177.in-addr.arpa. -upload.xvideos.com. -teredo.ipv6.microsoft.com. -profile.ak.fbcdn.net. -cmgp.ru. -leica-geosystems.com.s201b2.psmtp.com. -60.224.38.187.in-addr.arpa. -smokeinmycloset.blogspot.com. -www.emailapple.com. -a2.sphotos.ak.fbcdn.net. -a.root-servers.net. -galleries.nascar.com. -static.ak.fbcdn.net. -desdemimejana.blogspot.com. -194.102.173.189.in-addr.arpa. -:2o9depq3.l11o7j1x. -etzion.org.il. -mail.google.com. -mail.hardingmarketing.com. -photos-b.ak.fbcdn.net. -174.192.172.71.in-addr.arpa. -ksn1-12-part2.kaspersky-labs.com. -egoadmins.com. -o2mhaafyl.39hk. -liceopaillaco.bligoo.cl. -www3.discovirtual.com.ar. -a.root-servers.net. -179.35.166.81.in-addr.arpa. -static.ak.fbcdn.net. -cdn.lfstmedia.com. -docs.google.com. -mainc.rr.com. -a8.sphotos.ak.fbcdn.net. -msn.co.jp. -9aks9fdzi.59ly. -id.google.com.mx. -ffpaorg.com. -evsecure-ocsp.verisign.com. -curtmfg.com.s9b1.psmtp.com. -21.243.173.218.in-addr.arpa. -plus.google.com. -www.facebook.com. -alertasios.mundodeportivo.com. -chat.wibiya.com. -67.216.102.189.in-addr.arpa. -mail.sintondairyfoods.com. -www.voo.com. -129.3.19.186.in-addr.arpa. -_561_54_4. -74tf.ru. -a7.sphotos.ak.fbcdn.net. -g.ceipmsn.com. -springwood.net.bak-mx.na0107.smtpbak.com. -www.taringa.net. -a998.mm1.akamai.net. -elecomsoftware.com. -sites.google.com. -login.commbiz.commbank.com.au. -truelightproductions.com. -bestastrology.net. -88.52.203.62.in-addr.arpa. -pubads.g.doubleclick.net. -profile.ak.fbcdn.net. -247.75.80.68.in-addr.arpa. -qns.com. -kitchen-design-studio.com. -def.net. -www.schooltimegames.com. -gfx3.hotmail.com. -groups.google.com.mx. -api.twitter.com. -www.grupoindi.com. -85.206.80.208.in-addr.arpa. -o2.hit.gemius.pl. -horoscope.charlesayoub.com. -carmella-bing.crocostars.com. -photos-c.ak.fbcdn.net. -moneytreefsi.com. -creative.ak.fbcdn.net. -images.shaggybevo.com. -teredo.ipv6.microsoft.com. -228.242.193.173.in-addr.arpa. -208.169.179.190.in-addr.arpa. -dp.prisacom.com. -13.19.80.201.in-addr.arpa. -oldmotorclassic.blogspot.com. -lz.club.cul.sohu.com. -1.bp.blogspot.com. -meneame.net. -a6.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -obbit.net. -evoke.com. -114.168.138.187.in-addr.arpa. -sp.cwfservice.net. -www.militaryclothing.com. -www.wind-energy-the-facts.org. -smtp.cbi.com. -equa-net.com. -media.scanscout.com. -apis.google.com. -billing.sharo4ka.ru. -164.55.27.190.in-addr.arpa. -secure.baa.com. -time.windows.com. -www.mimejoorfrase.com. -130.75.168.192.in-addr.arpa. -apps.facebook.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -f.e.redbox.com. -cincodemayo.bicentenario.gob.mx. -healthprorecruiting.com. -41.146.62.186.in-addr.arpa. -235.216.226.189.in-addr.arpa. -dsn6.d.skype.net. -apis.google.com. -www.tribulus.tv. -sj-r.mycapture.com. -207.163.248.189.in-addr.arpa. -www.bbc.co.uk. -developers.facebook.com. -support.google.com. -37.230.44.90.in-addr.arpa. -180.94.167.78.in-addr.arpa. -apps.facebook.com. -www.nexiumresearch.com. -32.63.168.192.in-addr.arpa. -223.182.9.46.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -deltamobile.ru. -app.appatyze.com. -u.zhinei.com. -139.224.47.190.in-addr.arpa. -me.effectivemeasure.net. -mntr.babcdn.com. -64.118.31.190.in-addr.arpa. -apps.facebook.com. -zh-cn.facebook.com. -photos-f.ak.fbcdn.net. -guilbeauxlawfirm.net. -elementscanner.com. -www2.blogblog.com. -learnerbrown.hubpages.com. -ps4releasedate.net. -weather.service.msn.com. -30.10.62.186.in-addr.arpa. -www.bing.com. -www.jwwaterhouse.com. -www.facebook.com. -75.78.51.72.in-addr.arpa. -agatha.folhasp.com.br. -178.9.76.190.in-addr.arpa. -234.176.89.201.in-addr.arpa. -sitedown.concursolutions.com. -_565_63_1. -a.root-servers.net. -google.com. -g-rc.ru. -www.google-analytics.com. -www.youtube.com. -www.frankthomastheoriginalone.com. -a5.sphotos.ak.fbcdn.net. -www.dodgeram.dk. -www.zapaday.com. -smtp3.iho.ru. -kalvos.org. -pca-llc.com. -www.club24mainstreet.com. -on-ramp.net. -gb2k.deviantart.com. -snixykitchen.wordpress.com. -developers.facebook.com. -mx.saxquest.com. -a.root-servers.net. -rover.ebay.com. -i.ytimg.com. -o.sa.aol.com. -ad.yieldmanager.com. -www.estadao.com.br. -76.110.192.91.in-addr.arpa. -web.goldenspikesaward.com. -139.114.133.187.in-addr.arpa. -update.batterycare.net. -sepr.fr. -peru.com. -77.94.214.189.in-addr.arpa. -10.182.77.151.in-addr.arpa. -google-voice-and-video.softonic.com. -osirus.casarta.com. -coleman-bh.com.inbound15.mxlogic.net. -autoboerse-emsland.de. -ox.adjunky.com. -mail2.gudanggaramtbk.com. -baltimore.orioles.mlb.com. -heartutilities.com. -www.anzeigenannahme.mediapilot.de.dns.boreus.de. -radioweb4.com. -hugedl.com. -a4.sphotos.ak.fbcdn.net. -b._dns-sd._udp.lan. -www.facebook.com. -www.google-analytics.com. -escltd.ru. -www.lan.com. -182.74.149.187.in-addr.arpa. -www.facebook.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -dr._dns-sd._udp.0.245.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -165.118.177.124.in-addr.arpa. -gnebu.es. -bam.on.ca. -kerki.de. -196.173.33.65.in-addr.arpa. -profile.ak.fbcdn.net. -www.sellingantiques.co.uk. -ar-ar.facebook.com. -fbcdn-profile-a.akamaihd.net. -s.ytimg.com. -goped.com.s5a1.psmtp.com. -www.google.com. -canyonhill.org. -hosting2.nifty.com. -109.120.102.201.in-addr.arpa. -androidsdk.ads.mp.mydas.mobi. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -erieco.com.mail7.psmtp.com. -gfx2.hotmail.com. -iringer.softonic.com.br. -www.facebook.com. -photos-b.ak.fbcdn.net. -tags.w55c.net. -tour.clubalexis.com. -hulkshare.com. -search.twitter.com. -dns.msftncsi.com. -image23.bannch.com. -im11.gulfup.com. -photos-a.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -www.searchqu.com. -pogievendors.com. -eprints.ulster.ac.uk. -tig.com. -r5ohfqj7o.99ws. -mail.anandjon.com. -a.root-servers.net. -www.yahoo.com. -teredo.ipv6.microsoft.com. -allrecipes.com. -api.twitter.com. -www.myhdd.ro. -www.amazon.com. -gdata.youtube.com. -britecomputers.com.s8b1.psmtp.com. -googleads.g.doubleclick.net. -3.84.0.173.in-addr.arpa. -www.brothersoft.com. -posta.indire.it. -photos-h.ak.fbcdn.net. -profile.ak.fbcdn.net. -_269_40_8. -js.casalemedia.com. -nomodels.com.ua. -static.ak.fbcdn.net. -blog.japantimes.co.jp. -conflict-global-storm.softonic.com. -www.huishoudbeurs.nl. -a5.sphotos.ak.fbcdn.net. -s-static.ak.fbcdn.net. -china-media-ad.en.alibaba.com. -www.androiddevices.com.au. -mx1.okehosting.net. -www.upwallpapers.net. -transformers-the-game.softonic.com. -swupmf.adobe.com. -plus.google.com. -developers.facebook.com. -medifirst.ru. -www.guias11811.es. -external.ak.fbcdn.net. -www.anierm.org.mx. -apple.imap.mail.yahoo.com. -galant-cosmetic.ru. -ad.yieldads.com. -a2.sphotos.ak.fbcdn.net. -www.google.com. -www.facebook.com. -gocsg.net. -cgs.cz. -a4.sphotos.ak.fbcdn.net. -d2094047.xoom.it. -47.135.188.24.in-addr.arpa. -distilleryimage7.instagram.com. -185.43.108.99.in-addr.arpa. -google.com. -vex.wildtangent.com. -crafts.shop.ebay.com. -pixel.facebook.com. -110.150.105.186.in-addr.arpa. -ut7.xhamster.com. -azalis.org.ru. -laidesigngroup.com.inbound15.mxlogic.net. -dvd-decrypter.programas-gratis.net. -photos-f.ak.fbcdn.net. -apps.facebook.com. -noviosfelices.com. -zjnizub9i.v03y1f7r. -56.97.153.189.in-addr.arpa. -69.13.127.71.in-addr.arpa. -0af2d87b0af12c898897744f51c37b7f.co.cc. -v3.nonxt7.c.youtube.com. -www.epicgameads.com. -rcm.amazon.com. -teredo.ipv6.microsoft.com. -244.31.244.98.in-addr.arpa. -www.setyoufreenews.com. -chat.facebook.com. -bibliotecadeloselefantes.blogspot.com. -250.115.63.200.in-addr.arpa. -mail.design-logix.com. -view.atdmt.com. -32.135.249.186.in-addr.arpa. -api.conduit.com. -212.177.151.190.in-addr.arpa. -throneofroses.blogspot.com. -ati-catalyst-drivers-vista-7.softonic.com. -www.bdtonline.com. -3.44.78.201.in-addr.arpa. -royalholidaypress.com. -nwjdns40.innodata-isogen.com. -mail.municode.com. -s-static.ak.facebook.com. -valleyimpressions.com. -48.234.10.92.in-addr.arpa. -ajax.googleapis.com. -hellofest.com. -jtsports.com.2.arsmtp.com. -escookie.mystarworld.net. -160.119.127.201.in-addr.arpa. -cloudcell.com. -www.grogono.com. -d1r9j5rytlayy8.cloudfront.net. -121.119.204.190.in-addr.arpa. -profile.ak.fbcdn.net. -www.mybrowserbar.com. -mindsize.deviantart.com. -wpad. -ponyrama.browsergamez.com. -connect.facebook.net. -connect.facebook.net. -www.comofaz.org. -belltechlogix.com. -246.58.169.173.in-addr.arpa. -174.237.13.190.in-addr.arpa. -p04-btmmdns.icloud.com. -a6.sphotos.ak.fbcdn.net. -ssl.gstatic.com. -cult.cu. -gates.shapeservices.net. -a7.sphotos.ak.fbcdn.net. -matcher-rbc.bidder7.mookie1.com. -www.adobe.com. -top.qiyi.com. -apps.facebook.com. -smtp.iwaynet.net. -photos-g.ak.fbcdn.net. -vtsfpvpz.net. -photos-c.ak.fbcdn.net. -113.65.156.201.in-addr.arpa. -api.webrep.avast.com. -182.134.230.201.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -correodeinocentescapitulo.blogspot.com. -ad-g.doubleclick.net. -247.66.171.201.in-addr.arpa. -android.amberfog.com. -11.91.227.189.in-addr.arpa. -profile.ak.fbcdn.net. -pathwaytoascension.wordpress.com. -accounts.google.com. -www.rockford-industrial.com. -www.peliculasfox.com. -ad.yieldmanager.com. -27.229.171.69.in-addr.arpa. -appldnld.apple.com. -iowatelecom.net.com. -www.youtube.com. -cache.www.universalhidefclub.com. -144.218.177.190.in-addr.arpa. -_402_42_5. -192.176.179.190.in-addr.arpa. -www.googleadservices.com. -uksystem.co.kr. -stats.wordpress.com. -2.pool.ntp.org. -anime-dusk.activoforo.com. -photos-b.ak.fbcdn.net. -checkip.dyndns.org. -mail.google.com. -36.94.57.62.in-addr.arpa. -a1332.g.akamai.net. -www.eby.org.ar. -us.mg5.mail.yahoo.com. -shasta-rrs.symantec.com. -s0.2mdn.net. -140.78.252.189.in-addr.arpa. -136.43.166.190.in-addr.arpa. -sp.cwfservice.net. -update1.jdownloader.org. -www9.effectivemeasure.net. -kromprint.ru. -22.32.153.201.in-addr.arpa. -244.211.164.189.in-addr.arpa. -t.usnews.com. -cekuaces.blogspot.com. -208.157.227.2.in-addr.arpa. -img.animalsexmania.net. -esc10.ednet10.net. -apkiss.com. -orcart.facebook.com. -ninjago.lego.com. -isp.volgaonline.ru. -g.microsoft.com. -145.200.37.190.in-addr.arpa. -135.22.74.190.in-addr.arpa. -index.rpg.net. -a1490.g.akamai.net. -coolwebbies.googlepages.com. -romainbjames.com. -mianimex.org. -chevismo.disqus.com. -ac.babsrv.com. -www.antena3.com. -mail.google.com. -avisooportuno.mx. -picapinocarpinteria.blogspot.com. -photos-h.ak.fbcdn.net. -twitter.com. -en-maktoob.yahoo.com. -sdn2.clearsdn.com. -a.tribalfusion.com. -www.ppaproperties.com. -www.facebook.com. -billing.sharo4ka.ru. -accordcard.ru. -static2.drtuber.com. -a7.sphotos.ak.fbcdn.net. -by2msg4020309.gateway.messenger.live.com. -botones.blogalaxia.com. -google.com. -chester-nj.org.s5a2.psmtp.com. -cis-i.ru. -profiles.google.com. -m.adnxs.com. -ds.serving-sys.com. -carwheels.ru. -messenger.hotmail.com. -static.ak.fbcdn.net. -ghs.l.google.com. -time.nist.gov. -a.root-servers.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -tc19.easythumbhost.com. -cakeciamik.blogspot.com. -teredo.ipv6.microsoft.com. -pb.blabbers.com. -129.233.171.187.in-addr.arpa. -platform.ak.fbcdn.net. -www.olympia-verlag.de. -67.81.179.189.in-addr.arpa. -malahache.blogspot.com. -img299.imageshack.us. -dns.msftncsi.com. -a2.sphotos.ak.fbcdn.net. -64.91.138.187.in-addr.arpa. -photos-b.ak.fbcdn.net. -www.google-analytics.com. -support.google.com. -wssq9o13d.n92v4s1i. -cdbn.com. -67.146.215.84.in-addr.arpa. -_ldap._tcp. -ow.ly. -5.249.52.186.in-addr.arpa. -ws1.tapjoyads.com. -clayesmore.com. -geoiplookup.wikimedia.org. -bellsouthpwp.net. -dfdfh.com. -www.google.com. -mail.trans-k.ru. -jailbreak-j13.blogspot.com. -propagandacatolica.blogspot.com. -forums.vwvortex.com. -smtp.ebrandz.com. -173.130.231.89.in-addr.arpa. -maui.hawaii.edu. -www.facebook.com. -fxfeeds.mozilla.com. -63.129.190.186.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -86.171.172.190.in-addr.arpa. -twitter.com. -66eoaijft.66ae. -latam.msn.com. -www.alan-g.me.uk. -www.google.com. -i2.ytimg.com. -a.root-servers.net. -108.245.23.50.in-addr.arpa. -www.siri.com. -www.t-shirttimes.com. -www.cvs.saude.sp.gov.br. -rapidshare.com. -www.pecentral.org. -smi66gn42.88uc. -news.google.com.mx. -fxfeeds.mozilla.com. -api.twitter.com. -d3ojfab0q2dwum.cloudfront.net. -www.datafull.com. -agendadelpescador.blogspot.com. -tpopworld.blogspot.com. -mail.segeplan.gob.gt. -res3.windowsmedia.com. -csi.gstatic.com. -a.root-servers.net. -111.182.224.189.in-addr.arpa. -86lqs32zs.77ta. -rachael.foodnetwork.mobi. -ksn2-12.kaspersky-labs.com. -api.twitter.com. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.telurica.com. -36.179.170.201.in-addr.arpa. -b.scorecardresearch.com. -lifehealthpro.disqus.com. -plusone.google.com. -253.156.6.189.in-addr.arpa. -www.google-analytics.com. -teredo.ipv6.microsoft.com. -static.ak.fbcdn.net. -ad-g.doubleclick.net. -lgencove.k12.ny.us. -www.mercadolibre.com.co. -0-188.channel.facebook.com. -secure.shared.live.com. -s-static.ak.facebook.com. -signup.netflix.com. -d-0.19-a30f80b1.2d1031.1518.19d3.3ea1.210.0.iud63l4d8rput6efjed6dcljpj.avqs.mcafee.com. -pagead2.googlesyndication.com. -titanium30-en.url.trendmicro.com. -_360_57_4. -ridiculojustin.info. -photos-b.ak.fbcdn.net. -acommodity.com. -www.facebook.com. -203.64.166.190.in-addr.arpa. -teredo.ipv6.microsoft.com. -yoow.com. -futurespros.websol.barchart.com. -dessy.com. -a.root-servers.net. -posvetim.ru. -18.67.222.31.in-addr.arpa. -rad.msn.com. -www.bitcount.com. -155.12.101.187.in-addr.arpa. -photos-f.ak.fbcdn.net. -magazine.jungle.co.kr. -131.38.67.201.in-addr.arpa. -time.chttl.com.tw. -profile.ak.fbcdn.net. -muff-web.com. -d1j68ux4ukg4g1.cloudfront.net. -181.125.101.86.in-addr.arpa. -hdubtpvottklleq.mn. -79.191.150.189.in-addr.arpa. -www.spainselecta.com. -gillfordlm.com. -teredo.ipv6.microsoft.com. -cprpr1.wordpress.com. -_747_06_9. -240.131.48.186.in-addr.arpa. -gfx6.hotmail.com. -sp.cwfservice.net. -155.181.7.189.in-addr.arpa. -199.230.176.213.in-addr.arpa. -photos-a.ak.fbcdn.net. -164.176.171.189.in-addr.arpa. -22.138.22.186.in-addr.arpa. -www.msnbc.msn.com. -72.161.88.186.in-addr.arpa. -geo.messenger.services.live.com. -donbenitovillanueva.es. -162.28.140.200.in-addr.arpa. -199.206.17.50.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -m1.nsimg.net. -teredo.ipv6.microsoft.com. -themes2.gptop.com. -168.236.152.69.in-addr.arpa. -30.178.137.187.in-addr.arpa. -liveupdate.symantecliveupdate.com. -www.estadiosports.com. -www.google.com. -www.amazon.com. -205.200.79.190.in-addr.arpa. -uth.tmc.edu. -perfectgirls.cdn-z4.globecorp.net. -sucw:qb8m.d92e4c6m. -searchjs.s3.amazonaws.com. -safebrowsing-cache.google.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -uchicago.ru. -nederman.com. -rest-img.msg.yahoo.com. -i5.7kimg.cn. -crazybrush.ru. -safebrowsing-cache.google.com. -www.boxingnewsonline.net. -www.failimages.com. -p06-caldav.icloud.com. -www.kayfabenews.com. -a2.sphotos.ak.fbcdn.net. -img3.hotteengayboys.com. -billing.sharo4ka.ru. -a.root-servers.net. -_707_31_4. -processpipe.com. -static.ak.fbcdn.net. -mccradio.com.s8b2.psmtp.com. -account.netflix.com. -profile.ak.fbcdn.net. -ad.doubleclick.net. -api.facebook.com. -cv28.net. -119.93.27.216.bl.spamcop.net. -alchimiaweb.com. -www.bing.com. -omicrontech.net.mail6.psmtp.com. -tpibaltimore.com. -clipstyle.de. -149.138.232.190.in-addr.arpa. -20.151.206.90.in-addr.arpa. -free-smith-video-player.softonic.com. -zynga1-a.akamaihd.net. -tobolsk.info. -upgrade.bitdefender.com. -88.79.55.65.in-addr.arpa. -shop.magstore.com.au. -2.bp.blogspot.com. -242.114.222.137.in-addr.arpa. -251.76.61.186.in-addr.arpa. -platform.twitter.com. -teredo.ipv6.microsoft.com. -mail2.colorresourcesintl.com. -32.190.63.69.in-addr.arpa. -46.198.139.187.in-addr.arpa. -8.15.125.186.in-addr.arpa. -www.google.com.mx. -translate.google.com. -133.113.50.24.in-addr.arpa. -a5.mzstatic.com. -189.53.58.186.in-addr.arpa. -www.cdn.viber.com. -www.prabalgurung.com. -148.44.139.187.in-addr.arpa. -pagead2.googlesyndication.com. -prludmila.ru. -a.root-servers.net. -158.55.10.95.in-addr.arpa. -www.cambio.bo. -0-257.channel.facebook.com. -www.grabarz.net. -104.98.160.189.in-addr.arpa. -secon.nl. -www.uderzo.it. -17.208.154.83.in-addr.arpa. -www.cpxadspace.com. -a5.sphotos.ak.fbcdn.net. -218.200.203.68.in-addr.arpa. -d1.openx.org. -mail.rosttreid.ru. -s.youtube.com. -workingwithrails.com. -ludgate.nxtbook.com. -at-lan.ru. -images.google.com. -35.151.22.71.in-addr.arpa. -www.hammondindiana.com. -www.gstatic.com. -www.in.be. -www.descargakaraokegratis.com. -hotellid.reisiguru.ee. -mecssgprnqbmginn.org. -84.1.168.192.in-addr.arpa. -gfx4.hotmail.com. -54.249.137.189.in-addr.arpa. -static.ak.fbcdn.net. -hi-in.facebook.com. -22.27.159.187.in-addr.arpa. -a-0.19-a3092081.200b3.1518.19d4.3ea1.210.0.frdt39tm35rfzava51dg6fkzg5.avqs.mcafee.com. -www.google.com.mx. -facebookanime.com. -i.ytimg.com. -www.youtube.com. -66c9i6pj32d33-c.c.yom.mail.yahoo.com. -a.root-servers.net. -www.google.com. -report.freemake.com. -www.google-analytics.com. -3cw7l58k5.e05w6e8p. -www.cjmillisock.com. -www.gloria-pat.com. -www.averias.eu. -og.tvteam.info. -a.root-servers.net. -smtp.yellowbananas.com. -millavon.fsnet.co.uk. -tomsfoods.com. -profile.ak.fbcdn.net. -www.newmusicreviews.net. -_875_57_7. -diper.com. -feeds.feedburner.com. -a.root-servers.net. -metallp.ru. -adsfront.iminent.com. -sp.ask.com. -227.3.108.190.in-addr.arpa. -prohibidoleer.com. -www.reignonline.net. -gfx4.hotmail.com. -tandt-materials.com. -181.0.0.10.in-addr.arpa. -ar.wikipedia.org. -cmgmpyu.biz. -iphone.elnorte.com. -. -ocsp.digicert.com. -ssl.google-analytics.com. -i.w.inmobi.com. -mail.rkconst.com. -. -www.babyshowersinvitations.com.au. -static.ak.connect.facebook.com. -www.osh.net. -www.autemo.com. -www.neverthelessnation.com. -a.root-servers.net. -www.google.com. -ldkjflds.com. -mail.asmor.ru. -1601.live.streamtheworld.com. -www.sonnerie.net. -78.50.250.190.in-addr.arpa. -tc.v13.cache7.c.youtube.com. -7.30.72.46.in-addr.arpa. -vulgarization.com. -a.root-servers.net. -2.4.2.198.in-addr.arpa. -fujihunt.com.sg. -photos-d.ak.fbcdn.net. -a.root-servers.net. -208.153.141.189.in-addr.arpa. -100.153.14.201.in-addr.arpa. -www.swannysmodels.com. -h.live.com. -rad.msn.com. -adimpact.com.au. -www.gearreview.com. -nauta360.expansion.com. -108.240.162.78.in-addr.arpa. -api.facebook.com. -jabber.intellicontact.com. -rospres.com. -236.109.138.175.in-addr.arpa. -106.8.218.186.in-addr.arpa. -252.38.49.96.in-addr.arpa. -91.255.132.189.in-addr.arpa. -static01.videostream4u.com. -e5237.g.akamaiedge.net. -202.1.168.192.in-addr.arpa. -primeconstructions.gr. -btownmasti.com. -40.48.140.187.in-addr.arpa. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -zonabarranquilla.com. -www.sedo.com. -co101ds.mail.services.live.com. -www.elmendorf.af.mil. -www.charlamania.com. -darkorbit.browsergames.de. -inbound.washworldinc.com.netsolmail.net. -prod2.rest-notify.msg.yahoo.com. -www.facebook.com. -mxhost1.fni-stl.com. -images.builderhouseplans.com. -a.root-servers.net. -27.101.194.187.in-addr.arpa. -www.rassegna.it. -analytic.gatewayinterface.com. -photos-a.ak.fbcdn.net. -124.163.72.190.in-addr.arpa. -mymail.bright.net. -176.208.6.189.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -autos.starmedia.com. -clan-world-wide.foroa.org. -plusone.google.com. -time.stdtime.gov.tw. -i.ytimg.com. -download.windowsupdate.com. -www.modashop.it. -80.47.11.187.in-addr.arpa. -fxfeeds.mozilla.com. -ksn3-11.part1.kaspersky-labs.com. -www.sting.co.jp. -jsu.dt07.net. -windowssecrets.com. -www.grabmp3.org. -profile.ak.fbcdn.net. -img41.imageshack.us. -photos-f.ak.fbcdn.net. -es.wikipedia.org. -0-jj-w.channel.facebook.com. -googleads.g.doubleclick.net. -get.adobe.com. -nesma.net.sa. -www.autos.com. -pubads.g.doubleclick.net. -p0b.ru. -x8a.xanga.com. -www.filmyfair.com. -mail.penair.org. -124.190.245.87.in-addr.arpa. -s7.addthis.com. -goo.gl. -a4.sphotos.ak.fbcdn.net. -inca-gmbh.de. -l.longtailvideo.com. -images.hi5.com. -44.221.143.187.in-addr.arpa. -pagead2.googlesyndication.com. -posta74a.mailbeta.libero.it. -20.75.242.189.in-addr.arpa. -inbound.citizenscommunitybank.com.netsolmail.net. -a7.sphotos.ak.fbcdn.net. -matcinv1.matcin.net. -www.mondomacabrodvd.com. -94.211.141.201.in-addr.arpa. -62.68.206.190.in-addr.arpa. -orangehills.net. -deep.crocmovies.com. -blog.qmerdesign.net. -google.com. -139.206.23.189.in-addr.arpa. -millionaire-city-money-rewardss.blogspot.com. -webdesignburn.disqus.com. -44.32.118.190.in-addr.arpa. -a.root-servers.net. -filter.eclickz.com. -service.gc.apple.com.akadns.net. -toldiacosiendo.blogspot.com. -d1marr3m5x4iac.cloudfront.net. -razyr.cz. -t2.gstatic.com. -maeslunau.com. -dnl-18.geo.kaspersky.com. -inbound.ksenterprisesonline.com.netsolmail.net. -anime.about.com. -www.ebay.com. -a.root-servers.net. -safebrowsing-cache.google.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -www.youtube.com. -5.133.86.187.in-addr.arpa. -i4.ytimg.com. -0.11-2309e081.c020083.1518.1982.3ea1.210.0.rsh5s2r6smr3phe6pk85h9qpeb.avqs.mcafee.com. -photos-e.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -radionicaaplicada.blogspot.com. -a.root-servers.net. -www.studioverissimo.net. -ksn1-11-part2.kaspersky-labs.com. -www.facebook.com. -photos-d.ak.fbcdn.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-a.ak.fbcdn.net. -www.forodecine.com. -static.ak.fbcdn.net. -j.imagehost.org. -tracker.torrentbay.to. -fb.link.nokia.com. -ksrryc:r7.12ks. -rp.gwallet.com. -pagead2.googlesyndication.com. -204.207.95.201.in-addr.arpa. -tarus.com. -www.srisurf.com. -_ldap._tcp. -api.mixpanel.com. -power-rangers.chulojuegos.com. -pagead2.googlesyndication.com. -www.facebook.com. -166.27.14.187.in-addr.arpa. -explotar-mistico-en-la-india.juegosipo.com. -wffw.info. -homedecorbytpt.com. -letras.terra.com. -65.168.164.187.in-addr.arpa. -seriesid.com. -aerotrim.co.uk. -a1.sphotos.ak.fbcdn.net. -api.skype.com. -external.ak.fbcdn.net. -decoracion.de. -clients1.google.com. -206.183.90.186.in-addr.arpa. -s7.addthis.com. -gruqtwp.com. -70.53.173.112.in-addr.arpa. -www.kalpiko.com. -accounts.google.com. -mta7.am0.yahoodns.net. -www.littleabout.com. -www.youtube.com. -halmstad.net. -www.adobe.com. -245.105.42.177.in-addr.arpa. -www.business-in-asia.com. -a.root-servers.net. -s2abrd19b.n59g1o6d. -151.134.67.201.in-addr.arpa. -innerlink.net.mx1.rcimx.com. -a.l.yimg.com. -www.myspace.com. -106.249.205.109.in-addr.arpa. -apen-audio-cd-burner.softbull.com. -api-read.facebook.com. -api.facebook.com. -184.80.50.212.in-addr.arpa. -123.0.0.10.in-addr.arpa. -www.umoloda.kiev.ua. -119.37.212.201.in-addr.arpa. -hgfhj.com. -71.6.106.186.in-addr.arpa. -i3.ytimg.com. -9.193.168.192.in-addr.arpa. -243.183.157.93.in-addr.arpa. -www.esesli.com. -aujlntqh2.k06f6t0t. -_227_14_3. -127.0.0.1. -widget.gigatools.com. -a.root-servers.net. -71.142.106.58.in-addr.arpa. -a.root-servers.net. -131.160.66.187.in-addr.arpa. -static.ak.fbcdn.net. -57.194.102.200.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -goo.gl. -ssl.gstatic.com. -d5nxst8fruw4z.cloudfront.net. -cervantes.uah.es. -specsavers.com.s200b2.psmtp.com. -billing.sharo4ka.ru. -mail.cablek.com. -www.amazon.fr. -www.vh1la.com. -time.windows.com. -s.ytimg.com. -img3.etsystatic.com. -s2.youtube.com. -230.84.177.195.in-addr.arpa. -geminipartners.com. -photos-c.ak.fbcdn.net. -www.tremendo.com. -i4.ytimg.com. -ntp.glb.nist.gov. -199.48.40.201.in-addr.arpa. -20.197.59.90.in-addr.arpa. -metacafe.buscatube.org. -www.google.com. -m.addthisedge.com. -www.ofertasdeviajesbaratos.com. -zone28.hotwords.com.br. -webcache.googleusercontent.com. -sloac.stanford.edu. -www.familiasodalite.org. -mx1.cardiacspecialists.com. -www.myvoicenation.com. -checkip.dyndns.org. -176.131.5.174.in-addr.arpa. -49.149.220.66.in-addr.arpa. -seher.es. -photos-b.ak.fbcdn.net. -collegiumpharmaceuticals.com. -go.microsoft.com. -www.adxpansion.com. -smtp1.polyglass-com.fabbricadigitale.it. -mx2.e107.ru. -190.143.73.121.in-addr.arpa. -profile.ak.fbcdn.net. -mauriciogochez.wordpress.com. -www.google.com. -glassstreaminc.com. -144.107.49.190.in-addr.arpa. -static.ak.fbcdn.net. -clients1.google.com. -ask.com. -gravatar.com. -a.root-servers.net. -i.xiaomi.net. -ylmemphis.com. -svky722aq.g47y2u3b. -www.enceinte.com. -clk.secureintl.com. -rcp.na.blackberry.com. -pixel.quantserve.com. -titanium30-en.url.trendmicro.com. -d2058748.instant.xoom.it. -www.facebook.com. -mail.st10.ru. -creative.ak.fbcdn.net. -pixel.facebook.com. -ssl.gstatic.com. -www.bittorrent.com. -1.presence.emsc-csem.org. -lietest.ru. -a1209.phobos.apple.com. -a995.mm1.akamai.net. -ukrbiznes.com. -dns.msftncsi.com. -js2.wlxrs.com. -relay2.interexc.com. -s-static.ak.facebook.com. -feeds2.feedburner.com. -www.rapid.duareka.net. -154.71.100.190.in-addr.arpa. -182.137.137.201.in-addr.arpa. -www.tequilaelgranjurado.com. -tc21.easythumbhost.com. -cismdesign.com. -static.ak.facebook.com. -saltillo.olx.com.mx. -romancethelove.blogspot.com. -safebrowsing.clients.google.com. -transfire.transwitch.com. -tunnel.cfw.trustedsource.org. -books.google.com. -photos-a.ak.fbcdn.net. -mx.deportes.yahoo.com. -219.160.206.112.in-addr.arpa. -jpscu.com. -softwaregate.net. -126.197.17.177.in-addr.arpa. -seatgeek.com. -byfiles.storage.msn.com. -bloggingwomen.blogspot.com. -a3.twimg.com. -106.9.211.217.in-addr.arpa. -86yweeqdz.87th. -a.root-servers.net. -www.facebook.com. -users.ucom.net. -interspar.at. -login.yahoo.com. -vmx.alumni.iwu.edu.redcondor.net. -saintedwards.net. -dns.msftncsi.com. -www.facebook.com. -apps.facebook.com. -238.169.119.112.in-addr.arpa. -rnt.over-blog.com. -ecoart-group.ru. -db2.stb.s-msn.com. -jerimmio.com. -a.root-servers.net. -googleads.g.doubleclick.net. -zh-cn.facebook.com. -schools.naperville203.org. -www.vungtrom.com. -a1.sphotos.ak.fbcdn.net. -translate.google.com. -bs.serving-sys.com. -132.225.60.85.in-addr.arpa. -o-o.preferred.dfw06s10.v24.lscache5.c.youtube.com. -mx1.mail.eu.yahoo.com. -155.90.35.189.in-addr.arpa. -www.lge.com. -www.google.com. -xvideos.net. -97.48.173.186.in-addr.arpa. -clients2.google.com. -hdlpg.com. -b-0.19-21069008.60081.1518.19d4.2f4a.410.0.p4c4upl48i7g9jqs1u4ppgcikj.avqs.mcafee.com. -csi.gstatic.com. -baixartemplatesnovos.webs.com. -c.msn.com.tw. -googlemapsdirectory.com. -volgograd.gs.ru. -a3.sphotos.ak.fbcdn.net. -. -122.175.89.85.in-addr.arpa. -latasybotellasdejuancruz.blogspot.com. -37.233.114.201.in-addr.arpa. -svcs.cnn.com. -songsfrompaul.tumblr.com. -mail.condotteamerica.com. -zoomointernet.net. -ns1.purple-hosting.com. -ec.atdmt.com. -ville.mons.be. -js.revsci.net. -allegacyfcu.org.s5a2.psmtp.com. -www.20minutos.es. -gfas.com. -rjtcreative.com. -profile.ak.fbcdn.net. -www.bna.com.ar. -koa4x23zh.n34d6h5g. -121.3.234.190.in-addr.arpa. -4048971.frasesinolvidables1.com.ar. -wadmag.com. -resources.search.conduit.com. -www.chinaontrade.com. -a7.sphotos.ak.fbcdn.net. -chat.facebook.com. -www.zapreader.com. -. -mx2.deitron.de. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -safebrowsing-cache.google.com. -minicatalog.bandoo.com. -www.gotabletennis.com. -8.64.43.186.in-addr.arpa. -store.yahoo.com. -hugdablock.com. -api.twitter.com. -ui.skype.com. -a2.sphotos.ak.fbcdn.net. -38.242.49.116.in-addr.arpa. -tpebb.hanjin.com. -db._dns-sd._udp.0.177.168.192.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -a3.sphotos.ak.fbcdn.net. -g7qrj152p.07dq. -microjuris.com. -www.animalamigo.com. -photos-h.ak.fbcdn.net. -l.yimg.com. -cdn.lfstmedia.com. -beastpdx.com. -tsm04.eset.com. -a3.twimg.com. -simonsulca.blogspot.com. -static.ak.fbcdn.net. -6sbacyrhg.z15j4m9h. -apps.facebook.com. -156.155.214.189.in-addr.arpa. -www.lipsod.com. -imagenes.telematica.net. -broekhuisjuweliers.nl. -shared.live.com. -www.youtube.com. -angelaliguori.com. -google.com. -luminopress.com. -a.root-servers.net. -ajax.googleapis.com. -teredo.ipv6.microsoft.com. -126.64.219.108.in-addr.arpa. -lh4.ggpht.com. -www.semana.com. -215.117.99.177.in-addr.arpa. -cdnma.com. -_118_30_9. -odsgirl.com. -www.californiasar.org. -orthopa.com. -platform.twitter.com. -91.193.12.189.in-addr.arpa. -www.billingsupport.com. -accountservices.msn.com. -stun.client.akadns.net. -dns.msftncsi.com. -d2092087.xoom.it. -music.wikia.com. -46.72.4.186.in-addr.arpa. -pubads.g.doubleclick.net. -ejabat.google.com. -www.cnna.gob.ec. -www.facebook.com. -l5.zedo.com. -s7.addthis.com. -capitalhgroup.com.s200a1.psmtp.com. -olypen.com.s6b1.psmtp.com. -cs5096.vk.com. -greekave.com. -224.49.0.172.in-addr.arpa. -www.enigmasymisterios.net. -b.scorecardresearch.com. -tytut.com. -17.171.19.178.in-addr.arpa. -www.cari.net. -www.mentesdeacido.net. -7p18hlsar.x73g2g4i. -a.root-servers.net. -foss.com.s6b2.psmtp.com. -www.google.com. -178.12.186.190.in-addr.arpa. -lib.enmuros.cc.nm.us. -cs5984.vk.com. -ads.contentabc.com. -102.126.19.190.in-addr.arpa. -ghmslaw.com. -i1.ytimg.com. -dx.doi.org. -www.google.com. -itunes.apple.com. -avico.ru. -tacuru.ourproject.org. -228.115.103.177.in-addr.arpa. -col.stc.s-msn.com. -140.196.165.46.in-addr.arpa. -b.scorecardresearch.com. -45-courier.push.apple.com. -91.131.122.190.in-addr.arpa. -www.hell-yes-clothing.com. -csi.gstatic.com. -76188.hittail.com. -sync.mathtag.com. -kaydet.com. -dps.msg.yahoo.com. -www.alexnolan.net. -c0014159.ssl.cf1.rackcdn.com. -mail.craigandlori.com. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.facebook.com. -1804289383.localhost. -wrzuta.pl. -teredo.ipv6.microsoft.com. -www.youtube.com. -11.176.58.187.in-addr.arpa. -go.microsoft.com. -kamsanes.ru. -mail.live.com. -97.205.177.190.in-addr.arpa. -a1334.phobos.apple.com. -241.115.138.190.in-addr.arpa. -api.twitter.com. -ontika.net. -yonoestuvealli.blogspot.com. -it.html.net. -www.facebook.com. -mail.acegaming.ru. -profile.ak.fbcdn.net. -img1.blogblog.com. -a2.sphotos.ak.fbcdn.net. -83.100.245.190.in-addr.arpa. -a.root-servers.net. -pop.gmail.com. -profile.ak.fbcdn.net. -om.co. -pixel.quantserve.com. -alton.k12.nh.us.s5a2.psmtp.com. -s.ytimg.com. -a6.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.tecnomaq.com.mx. -www.bingomingoreklam.com. -odcons.com. -_584_15_0. -a.ads2.msads.net. -18.50.86.85.in-addr.arpa. -mail.epasa.com. -www.leipzig-sachsen.de. -abcgr.ru. -t0.gstatic.com. -www.facebook.com. -stage.traffiliate.com. -um12.eset.com. -www.youtube.com. -fbcdn-sphotos-a.akamaihd.net. -voipc.sip.yahoo.com. -mail.realestate-redding.com. -166.22.244.189.in-addr.arpa. -pixel.quantserve.com. -215.150.250.190.in-addr.arpa. -smtp2.eprod.com. -g.microsoft.com. -a.root-servers.net. -www.canalava.org.mx. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -mail.wescottlaw.com. -linksfolders.disqus.com. -16.140.37.177.in-addr.arpa. -nordkapp.ru. -23.146.182.189.in-addr.arpa. -mscrl.microsoft.com. -159.209.13.201.in-addr.arpa. -22.155.210.201.in-addr.arpa. -h.atdmt.com. -81.222.195.187.in-addr.arpa. -kreslatimo.ru. -mail.live.com. -api.webrep.avast.com. -4.99.24.189.in-addr.arpa. -i1.ytimg.com. -35.180.71.201.in-addr.arpa. -edctr.scdsb.on.ca. -166.190.174.189.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -www.facebook.com. -www.livejasmin.com. -s.youtube.com. -pixel.quantserve.com. -2leep.com. -mail.liasa.com. -www.tecowestinghouse.com.mx. -drmorley.net.s7b1.psmtp.com. -www.tusdiscosgratis.com. -apis.google.com. -a2.sphotos.ak.fbcdn.net. -ad-emea.doubleclick.net. -115.16.147.186.in-addr.arpa. -secure.shared.live.com. -a2.sphotos.ak.fbcdn.net. -m.google.com. -apps.facebook.com. -www.clipartlab.com. -p1t.ru. -184.204.10.68.in-addr.arpa. -frivcar.blogspot.com. -161.177.204.94.in-addr.arpa. -mail.bigguy.com. -mx.youtube.com. -teredo.ipv6.microsoft.com. -56.135.104.189.in-addr.arpa. -1m62:9zzv.05lv. -86.137.88.186.in-addr.arpa. -sprosidoctora.ru. -105.50.8.200.in-addr.arpa. -www.appleaks.com. -wpad. -burnhamonline.com.s7b2.psmtp.com. -a6.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -uig1saply.z78a3x8p. -a.root-servers.net. -profile.ak.fbcdn.net. -um13.eset.com. -10.rarbg.com. -p3old8fsi.z28s2c9q. -static.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -woofbyte.com. -www.addthis.com. -sn1msg3030109.gateway.messenger.live.com. -b.scorecardresearch.com. -b.scorecardresearch.com. -time.chttl.com.tw. -mx8.mail.ru. -monc.net. -stats.avg.com. -blog.ellegirl.com. -160.195.10.216.in-addr.arpa. -hiltonsanantonioap.com.1.arsmtp.com. -www.adobe.com. -www.gaysex.com. -api.ning.com. -135.82.76.187.in-addr.arpa. -www.guitarsound.net. -161.99.117.200.in-addr.arpa. -a.root-servers.net. -www.seizurechicken.com. -pagead2.googlesyndication.com. -i1.ytimg.com. -c7.zedo.com. -iavggug.info. -whoami.akamai.net. -ozconnect.net. -a.root-servers.net. -baymsg1020311.gateway.messenger.live.com. -translate.googleapis.com. -ns2.art-host.ru. -franklinfavorite.com. -www.youtube.com. -www.gstatic.com. -www.photovaco.com. -mario.chulojuegos.com. -61.112.39.77.in-addr.arpa. -a.root-servers.net. -windemo.deckadance.com. -god-vs-human.free-opinion.com. -halcobaca.min-saude.pt. -sitecheck2.opera.com. -www.youtube-nocookie.com. -alerts.conduit-services.com. -astound.net. -earthlinjk.net. -frogmans.net. -fonts.googleapis.com. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -146.141.208.201.in-addr.arpa. -www.smule.com. -tw.apple.com. -rad.msn.com. -highexpert.ru. -www.soumaya.com.mx. -bajaxtreme.com. -88.241.104.186.in-addr.arpa. -www.managua.gob.ni. -213.155.26.79.in-addr.arpa. -s7.addthis.com. -autos.mercadolibre.com.ar. -jabber13.liveprofile.com. -counterb.statcounter.com. -www.plcsim.com. -a.root-servers.net. -ats.tumri.net. -a3.da1.akamai.net. -mail-gw.bcp.com. -api.twitter.com. -i1.ytimg.com. -nova937.com.au. -221.126.224.80.in-addr.arpa. -250.91.10.187.in-addr.arpa. -l.addthiscdn.com. -dl5.torrentzap.com. -tinyprints.widget.custhelp.com. -itunes.apple.com. -21.133.222.201.in-addr.arpa. -covpatlaw.com.mx4.aantispam.rcimx.net. -www.parcs-naturels-regionaux.tm.fr. -us.tracker.worldofwarcraft.com. -pixel.facebook.com. -www.youtube.com. -ytimg.l.google.com. -ocsp.verisign.com. -api.facebook.com. -11-courier.push.apple.com. -a.root-servers.net. -admissions.arizona.edu. -a1.twimg.com. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -clkads.com. -a8.sphotos.ak.fbcdn.net. -17.2.60.186.in-addr.arpa. -www.youtube.com. -www.abibids.com. -ns2.makeshop.jp. -weboutlook.beiersdorfgroup.com. -google.com. -s.youtube.com. -www.webtoolol.com. -vy8uzdb5z.t24g0u8l. -57.225.172.186.in-addr.arpa. -a.root-servers.net. -5483.live.streamtheworld.com. -mail.webcapades.net. -1channel.ch. -www.rinconjuegos.com. -a.root-servers.net. -trade-futures.com. -www.telemundoeventos.com. -d5k8r31tz.69xz. -lemamed.ru. -googleads.g.doubleclick.net. -97.181.165.201.in-addr.arpa. -bay.gateway.messenger.live.com. -221.138.180.189.in-addr.arpa. -cox.net. -uk.yahoo.com. -facebook.com. -90.251.160.190.in-addr.arpa. -a.root-servers.net. -187.247.30.189.in-addr.arpa. -mail.fountain.ru. -support.google.com. -sturehof.com. -153.155.220.66.zen.spamhaus.org. -pixel.rubiconproject.com. -s.ytimg.com. -s1-onenote.vo.msecnd.net. -cdn1.certified-apps.com. -www.machinediagnostics.com. -ca.wikipedia.org. -mwcdn.50cubes.com. -clients1.google.com. -lenoxhomeloans.com. -www.medicalteams.org. -www.likepagebuilder.com. -j22mnely2.30yf. -apis.google.com. -shockbolt.deviantart.com. -a.root-servers.net. -pcf-ironmail01.wusm-pcf.wustl.edu. -profile.ak.fbcdn.net. -ads.lfstmedia.com. -www.amatuer-pics.net. -ytstatic.l.google.com. -googleads.g.doubleclick.net. -a-0.19-2709e071.d0d0083.1518.19d3.3ea1.410.0.wqgt8tgc81eq48q14ca4dz2tfb.avqs.mcafee.com. -dopplershift.net. -rts.fling.doublepimp.com. -245.98.184.186.in-addr.arpa. -60.128.45.186.in-addr.arpa. -evintl-aia.verisign.com. -tuned.mobi. -ds.addthis.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -88.27.230.119.in-addr.arpa. -g.espncdn.com. -81.123.168.189.in-addr.arpa. -183.207.39.187.in-addr.arpa. -tchimb.spb.su. -45.111.248.201.in-addr.arpa. -safebrowsing-cache.google.com. -226.172.138.201.in-addr.arpa. -dubai.isnuts.googlepages.com. -profiles.google.com. -sp.cwfservice.net. -r._dns-sd._udp.lan. -50.214.191.64.in-addr.arpa. -connect.facebook.net. -www.facebook.com. -hma.org. -maps.googleapis.com. -wiki.answers.com. -181.178.97.92.in-addr.arpa. -229.3.63.151.in-addr.arpa. -msc.wlxrs.com. -157.220.29.189.in-addr.arpa. -rad.msn.com. -googleads.g.doubleclick.net. -www.merchantselect.com. -a7.sphotos.ak.fbcdn.net. -u47.eset.com. -www.google.com. -9.174.251.190.in-addr.arpa. -boltamps.com. -static.pbc.com. -a.root-servers.net. -aterminus.files.wordpress.com. -tienda.jasani.es. -mail.google.com. -www.googleadservices.com. -a.root-servers.net. -images.ip.com. -tickets.musicbrainz.org. -searchclient.live.net. -echinoblog.blogspot.com. -mail.peaceful.com. -avtoperevozki.com. -safebrowsing.clients.google.com. -www.bywifi.com. -anastasiamexico.com. -prostimenya.com. -cw3.com. -inbound.fastener-express.com.netsolmail.net. -crl.microsoft.com. -pixel.facebook.com. -comune.savignone.ge.it. -smtp3.etssi.com. -lh6.googleusercontent.com. -members.livejasmin.com. -30.courier-push-apple.com.akadns.net. -profile.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -aforestfrolic.com. -www.rpmrcproducts.com. -252.165.91.186.in-addr.arpa. -apis.google.com. -wn5iftq5l.g50d2e9u. -www.easy-down.net. -www.atunexpress.com. -a.root-servers.net. -212.226.174.189.in-addr.arpa. -stores.ebay.com. -pilotmedia.ru. -cpk9p5jqy.52vj. -msn.com. -queer.com. -check6.facebook.com. -www.businessenglishebook.com. -my.msn.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.highboost.com. -rad.dsc.ru. -www.descuentocity.com. -es.wikipedia.org. -8.0.168.192.in-addr.arpa. -www.grist.org. -search.powersportsplus.com. -documentales.videosyonkis.com. -10-async.olark.com. -a.root-servers.net. -ssl.gstatic.com. -samsungmobilemoments.com. -a.root-servers.net. -memorva.jp. -www.facebook.com. -5nlkw2x23.c14b8o7y. -touhycjbkh.net. -va1en.sftcdn.net. -a4.sphotos.ak.fbcdn.net. -t1.gstatic.com. -translate.google.com. -txads.buzzcity.net. -twitter.com. -207.169.14.186.in-addr.arpa. -a.root-servers.net. -dns.msftncsi.com. -tcpv4.easythumbhost.com. -c707977.r77.cf2.rackcdn.com. -ncshkkoipm01.ap.jnj.com. -www.bmf.co.uk. -wfcgjjov9.v91b6e5y. -g.ceipmsn.com. -static03.boobytwister.com. -www.microsoft.com. -neuroskills.com. -ssl.gstatic.com. -google.com. -a.root-servers.net. -dns.msftncsi.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -download351.avast.com. -www.facebook.com. -api.webrep.avast.com. -kangas.no. -image.epost.go.kr. -213.73.135.187.in-addr.arpa. -twitter.com. -pop.advecs.com. -www.weebirdy.com. -highslide.com. -e5016.b.akamaiedge.net. -a-0.19-230fe081.a0e0580.1518.19d4.2f4a.400.0.smgql7jzk5g8d9zff4tq7njzcj.avqs.mcafee.com. -a.root-servers.net. -ages-collection.ru. -www.gstatic.com. -google.com. -bleachadventurerol.foroactivo.net. -falda.fr. -bioserv.de. -css1.beoo.com. -i3.ytimg.com. -checkip.dyndns.org. -105.240.51.190.in-addr.arpa. -www.banddirector.com. -www.stat-togo.org. -192.70.15.186.in-addr.arpa. -mx.queensborofarms.com. -www.checkers.com. -www.riveonline.com. -135.34.236.200.in-addr.arpa. -globalcontctsinc.com. -7.17.230.190.in-addr.arpa. -static.ak.fbcdn.net. -i.ytimg.com. -193.188.176.190.in-addr.arpa. -media.a1.com.mk. -wilky.co.uk. -17.192.139.175.in-addr.arpa. -photos-e.ak.fbcdn.net. -i4.ytimg.com. -www.sigrealm.com. -dibblyfresh1.blogspot.com. -2xixvsj9q.36lc. -i1.gatewayinterface.com. -humor.mundodescargas.com. -translate.googleapis.com. -freestylebmx.org. -translation.engine.conduit-services.com. -www.chulojuegos.com. -photos-f.ak.fbcdn.net. -safebrowsing.clients.google.com. -gurux.net. -mail.eland-energy.com. -28.8.57.186.in-addr.arpa. -www.pdf-lib.ru. -patrimonio.com.mx. -a.root-servers.net. -configuration.apple.com. -www.zerorc.com. -jagerbar.ru. -plus.google.com. -www.facebook.com. -ajax.googleapis.com. -mortgages4solutions.com. -support.google.com. -6.20.191.91.in-addr.arpa. -teympd:og.26jb. -www.iheartplayzynga.com. -ds.addthis.com. -_477_63_2. -mailserver.holidayinn-batam.com. -twitter.com. -www.morhipo.com. -sasib-na.com. -37.124.226.201.in-addr.arpa. -s3.amazonaws.com. -blu.stb.s-msn.com. -video.l3.fbcdn.net. -planetasigarra.blogspot.com. -0-44.channel.facebook.com. -lh4.googleusercontent.com. -_dns-llq._udp.push.apple.com. -4.11.31.211.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.perfil.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -69.33.248.189.in-addr.arpa. -s2.youtube.com. -www.update.microsoft.com. -www.mediawiki.org. -store.millerheiman.com. -blogs.eset-la.com. -a6.sphotos.ak.fbcdn.net. -a724.phobos.apple.com. -140cc.v.fwmrm.net. -db._dns-sd._udp.lan. -vh14.ppstream.com. -xcalabaja.com. -74.43.98.66.in-addr.arpa. -www.stick-up-kids.de. -www.juegos.com. -iphone.gogii.com. -static.ak.fbcdn.net. -latino.msn.com. -ilmiopensiero.forumcommunity.net. -www.update.microsoft.com. -mbcc.com. -www.recycling-machine.com. -csi.gstatic.com. -profile.ak.fbcdn.net. -accounts.l.google.com. -o-o.preferred.pz.www.google.com. -cscsrvnew1app30.amer.csc.com. -s10.histats.com. -profile.ak.fbcdn.net. -chromejs.s3.amazonaws.com. -a.root-servers.net. -2.30.231.201.in-addr.arpa. -royal-trading.jp. -www.google-analytics.com. -33.52.174.190.in-addr.arpa. -i1.ytimg.com. -photos-d.ak.fbcdn.net. -160.111.229.189.in-addr.arpa. -ergogroup.no. -9z772drlt.89ys. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -16.101.220.201.in-addr.arpa. -load.monohrome.com. -a1406.w42.akamai.net. -content.yieldmanager.edgesuite.net. -anemofilm.ru. -www.alexa.com. -mdawmdewotaxmjaxmg.org. -espanol.weather.com. -thumbs1.ebaystatic.com. -content.dl-rms.com. -no.hotels.com. -dailymaverick.co.za. -www.kurims.kyoto-u.ac.jp. -api.conduit.com. -179.28.214.66.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -serviceimg.pricegong.com. -86.176.19.83.in-addr.arpa. -sp.cwfservice.net. -justscandinavian.com. -medsos.ru. -zefone.com. -mail2.colibri.krsk.ru. -c-0.19-a309f481.483.1518.19d4.3ea1.210.0.cj1um18aa3789ls947agauibjb.avqs.mcafee.com. -s4.argim.net. -admin.mshome.net. -static02.olx-st.com. -h.live.com. -ksn2-12.kaspersky-labs.com. -www.go.microsoft.akadns.net. -gs-loc.apple.com. -aquariablog.wordpress.com. -www.kisseo.de. -126.207.40.114.in-addr.arpa. -hi-in.facebook.com. -104.0.0.192.in-addr.arpa. -cs510102.vkontakte.ru. -www.google.com. -99.153.60.183.in-addr.arpa. -www.roughcooking.com. -photos-e.ak.fbcdn.net. -sitepointbroadcast.createsend4.com. -60.39.191.95.in-addr.arpa. -165.213.186.189.in-addr.arpa. -photos-d.ak.fbcdn.net. -assuretec.com. -static.ak.fbcdn.net. -arendatr.ru. -googleads.g.doubleclick.net. -images.movielink.com. -acriacao.com. -www.youtube.com. -photos-g.ak.fbcdn.net. -dogtraining.com. -personal.avira-update.com. -theenvelope.latimes.com. -www.redefiningpiano.com. -kikkut.no. -a0.twimg.com. -nvsslassets.msnbc.msn.com. -a6.sphotos.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.krs.baltimore.ru. -_995_87_4. -gfx2.hotmail.com. -v20.nonxt2.c.youtube.com. -static.ak.fbcdn.net. -167.59.126.71.in-addr.arpa. -pop.jocrf.org. -www.lanvin.com. -www.hammervision.com.tr. -telbarato.net. -m.addthisedge.com. -_759_41_4. -vevo.ly. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -safebrowsing-cache.google.com. -xxy.com. -7.189.251.190.in-addr.arpa. -www.forever-christies.com. -profile.ak.fbcdn.net. -sisar4k.com. -198.86.168.192.in-addr.arpa. -dns.msftncsi.com. -couponbuddy.s3.amazonaws.com. -conduit.anybodyoutthere.com. -snsgw.samsungmobile.com. -apps.facebook.com. -www.naltqi.com. -www.google-analytics.com. -photos-g.ak.fbcdn.net. -250.254.243.190.in-addr.arpa. -69.227.51.173.in-addr.arpa. -chriss2d.deviantart.com. -musica.itematika.com. -us.lrd.yahoo.com. -189.147.13.187.in-addr.arpa. -166.98.232.189.in-addr.arpa. -83.104.130.85.in-addr.arpa. -www.cosmeticclub.es. -photos-a.ak.fbcdn.net. -www.losbackyardiganss.blogspot.com. -dynamicdialogs.alert.conduit-services.com. -241.195.137.186.in-addr.arpa. -log.adap.tv. -bathcc.com.s8a1.psmtp.com. -krisknits.blogspot.com. -www.chicashi5.org. -vtr.net. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -maps.gstatic.com. -a.root-servers.net. -203.211.82.95.in-addr.arpa. -redaktion-bahamas.org. -ms-frontend.hse.ru. -teredo.ipv6.microsoft.com. -app.rounds.com. -187.92.107.200.in-addr.arpa. -connect.facebook.net. -71.143.5.184.in-addr.arpa. -167.108.24.83.in-addr.arpa. -www.facebook.com. -slipknotla.blogspot.com. -242.146.102.94.in-addr.arpa. -www.cintegral.cl. -campaignjobs.asia. -fb.37cs.com. -google.com. -a3.sphotos.ak.fbcdn.net. -brightsideofthesun.com. -www.carascorridas.com. -www.facebook.com. -a718.g.akamai.net. -www.siteadvisor.com. -px.smowtion.com. -a3.sphotos.ak.fbcdn.net. -www.orangetree.co.uk. -courterco.com.s8a2.psmtp.com. -6-0.qlty.finarea.ch. -www.scvtv.com. -ing-things.blogspot.com. -deals.timeoutnewyorkkids.com. -i4.ytimg.com. -tc.v9.cache6.c.youtube.com. -www.bywifi.com. -cs9439.vk.com. -a.root-servers.net. -www.facebook.com. -eberspacher-russia.ru. -www.youtube.com. -_255_86_5. -muonline.biz. -safebrowsing.clients.google.com. -osnews.com. -www.gstatic.com. -243.131.110.123.in-addr.arpa. -pop3.live.com. -bostonrehab.com. -malah.biz. -mail.google.com. -static.ak.facebook.com. -support.google.com. -l35.member.mud.yahoo.com. -video-6.filmix.net. -b.scorecardresearch.com. -connect.facebook.net. -www.guardiantickets.co.uk. -support.google.com. -thumbnails46.imagebam.com. -a8.sphotos.ak.fbcdn.net. -www.businesssearchengine.com.au. -ad.doubleclick.net. -profile.ak.fbcdn.net. -174.244.240.201.in-addr.arpa. -www.facebook.com. -www.tmz.com. -www.xxxsexymilfs.com. -107.197.242.189.in-addr.arpa. -sites.google.com. -ad.yieldmanager.com. -feeds.cnet.com. -static.ak.fbcdn.net. -static.ak.fbcdn.net. -ads2.msads.net. -www.bigchestedbabes.com. -making50fabulous.blogspot.com. -www.vbauctions.net. -creative.ak.fbcdn.net. -141.138.193.173.in-addr.arpa. -dnl-01.geo.kaspersky.com. -blog.naver.com. -css3.info. -142.192.186.24.in-addr.arpa. -gfx2.hotmail.com. -kcstar.com. -_ldap._tcp. -ads.bluelithium.com. -a.root-servers.net. -249.180.204.190.in-addr.arpa. -scientxp.com. -132.199.55.96.in-addr.arpa. -www.google-analytics.com. -rosivg25.wordpress.com. -www.iamshekhar.co.cc. -99dn7z72y.43rs. -ads.adbrite.com. -whitecointerra.com. -251.42.156.201.in-addr.arpa. -technologie.gazeta.pl. -3.ns1631263.info. -ats.tumri.net. -aventuras.isladejuegos.es. -yourgamersparadise.com. -l.addthiscdn.com. -www.addthis.com. -twitter.com. -8.165.137.175.in-addr.arpa. -accugenix.com.s10a2.psmtp.com. -aliner.com. -safebrowsing-cache.google.com. -clients1.google.com. -s-static.ak.fbcdn.net. -a.root-servers.net. -uprl.kandk.ru. -www.download.windowsupdate.com. -www.hpwebos.com. -www.bigbuttslikeitbig.org. -www.facebook.com. -181.225.215.173.in-addr.arpa. -support.google.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -api.twitter.com. -www.nycgo.com. -236.251.171.200.in-addr.arpa. -www.aviransplace.com. -static.ak.fbcdn.net. -hospiceheart.org.s8a1.psmtp.com. -static.ak.fbcdn.net. -192.140.138.187.in-addr.arpa. -202.104.1.201.in-addr.arpa. -502.talkgadget.google.com. -t1.gstatic.com. -ksn3-11.part2.kaspersky-labs.com. -157.113.250.190.in-addr.arpa. -listen.cinemix.fr. -accountservices.msn.com. -sn104w.snt104.mail.live.com. -teredo.ipv6.microsoft.com. -www.draftfcb.com.mx. -l.yimg.com. -id.wikipedia.org. -218.239.84.59.in-addr.arpa. -members.ansi.org. -168.7.56.92.in-addr.arpa. -200.2.168.192.in-addr.arpa. -dcpff.tumblr.com. -a7.sphotos.ak.fbcdn.net. -swellwatch.wetsand.com. -adors.com. -www.rugsyd.com.au. -www.facebook.com. -www.aemultimedia.es. -ddpc.com.s5b2.psmtp.com. -240.196.197.68.in-addr.arpa. -geo.tp-cdn.com. -entergy.com. -met.no. -www.didacmania.com. -rar-repair.nsware.com. -www.easy.lv. -www.wheels-and-wings.org.uk. -89.140.112.200.in-addr.arpa. -apps.facebook.com. -kiteboard.ru. -s2.youtube.com. -54.96.72.202.in-addr.arpa. -136.137.232.24.in-addr.arpa. -www.belkin.com. -v4.nonxt3.c.youtube.com. -www.bridgepub.mx. -widgets.amung.us. -hyundai-info.ru. -ksn2-12.kaspersky-labs.com. -he.wikipedia.org. -archives.chennaionline.com. -20minutos.feedsportal.com. -p05-keyvalueservice.icloud.com.akadns.net. -google.com. -237.subnet118-97-164.static.astinet.telkom.net.id. -hybrydica.ru. -audiodrums.com. -3.203.183.189.in-addr.arpa. -100.141.121.74.in-addr.arpa. -col.stb00.s-msn.com. -www.c64-wiki.de. -bloggerplugins.org. -pixel.facebook.com. -m.addthisedge.com. -teredo.ipv6.microsoft.com. -jigsaw.w3.org. -a1725.l.akamai.net. -mail.google.com. -profile.ak.fbcdn.net. -alvarsoft.com. -pixel.facebook.com. -m.facebook.com. -manulifesecurities.com. -www.lazoblanco.org. -244.27.146.99.in-addr.arpa. -21.30.143.187.in-addr.arpa. -51.77.2.195.in-addr.arpa. -zsxifmeksub.org. -136.111.93.186.in-addr.arpa. -kumr.lns.com. -js.wlxrs.com. -www.levimage.com. -adhitzads.com. -cargo2000.dk. -safebrowsing-cache.google.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.l.google.com. -www.al-anonuk.org.uk. -creative.ak.fbcdn.net. -228.219.132.190.in-addr.arpa. -www.campaignjobs.asia. -www.secreto-chino.com. -www.google.com. -a.root-servers.net. -s1.wp.com. -fbcdn-profile-a.akamaihd.net. -r._dns-sd._udp.lan. -105.240.234.81.in-addr.arpa. -socpixel.bidsystem.com. -connect.facebook.net. -hysexch07.hye.co.il. -i140.photobucket.com. -174.162.108.186.in-addr.arpa. -137.142.243.147.in-addr.arpa. -courchevel.su. -wbns.com.s7b2.psmtp.com. -28.207.221.87.in-addr.arpa. -196.15.46.90.in-addr.arpa. -uwbfyc.com. -pixel.facebook.com. -www.threeweb.ad.jp. -profile.ak.fbcdn.net. -i1.tagstat.com. -www.youtube.com. -www.addingsite.com. -50.156.220.66.in-addr.arpa. -i4.ytimg.com. -45.31.168.192.in-addr.arpa. -146.131.177.189.in-addr.arpa. -srv.srvdomain.com. -apps.filestube.com. -yfrog.com. -www.monumentalgames.com. -174.196.91.186.in-addr.arpa. -images.emusic.com. -alimentosweb.galeon.com. -installer.frostwire.com. -connect.facebook.net. -ksn2-12.kaspersky-labs.com. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -dialtone.com. -tts.orel.ru. -assets.t.popupbooster.com. -www.facebook.com. -vk.com. -cdn1.xamez.inxy-host.com. -_546_20_1. -a.root-servers.net. -mosenergo.ru. -eltamborrugiente.blogspot.com. -www2.esmas.com. -www.latbus.com. -www.transl.net. -vgmanager.no. -kojyyj.com. -barracuda.montereyclub.com. -tools.google.com. -a.root-servers.net. -d2090462.xoom.it. -www.deskdivers.com. -tcacdn-3.thecelebarchive.net. -twitter.com. -usb.relaxunix.net. -69.204.152.201.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -ildesign.ru. -profile.ak.fbcdn.net. -www.beyzacases.com. -tein.net. -www.igorbass.com. -www.escape.ws. -199.64.139.189.in-addr.arpa. -privetsochi.ru. -188.104.248.189.in-addr.arpa. -c144101.memecenter.com. -a.root-servers.net. -wdw2.wdpromedia.com. -static.ak.fbcdn.net. -242.146.52.187.in-addr.arpa. -blvgroup.ru. -osuno.no-ip.biz. -29.203.238.190.in-addr.arpa. -www.all4myspace.de. -www.premiumhdv.com. -hmag.disqus.com. -entretenimiento.wikia.com. -www.laobesidad.net. -www.cesarcancino.com. -photos-g.ak.fbcdn.net. -money.cnn.com. -www.facebook.com. -your.net.com. -_080_52_9. -www.motors.ebay.com. -18.225.12.212.in-addr.arpa. -l.addthiscdn.com. -www.about-recipes.com. -js.parabebes.com. -11.105.168.189.in-addr.arpa. -www.funnythingsmykidsaid.com. -clockwatchers.net. -156.150.33.189.in-addr.arpa. -static.ak.fbcdn.net. -www.marcandangel.com. -ares.dl.playstation.net. -www.politraductor.com. -191.68.237.188.in-addr.arpa. -174.45.174.190.in-addr.arpa. -www.star-advertising.com. -profile.ak.fbcdn.net. -maxrealty.co.jp.s9a1.psmtp.com. -suivi.evenko.ca. -www.youtube.com. -banks2banks.ru. -i4.ytimg.com. -cdn2.image.tube8.phncdn.com. -photos-a.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -ddn:ak6vw.d84n0a5m. -164.131.138.187.in-addr.arpa. -29.media.tumblr.com. -www.youtube.com. -storage.conduit.com. -111.176.153.95.in-addr.arpa. -gratisxjuegos.com. -s-static.ak.fbcdn.net. -pennwoods.net. -a1351.v.phobos.apple.com. -196.137.175.208.in-addr.arpa. -www.grupo-sm.com. -download315.avast.com. -6.35.104.186.in-addr.arpa. -133.71.160.190.in-addr.arpa. -tr.adinterax.com. -d7.zedo.com. -apps.facebook.com. -eurostroygroup.ru. -a10.t26.net. -www.google-analytics.com. -9.a.4.d.7.2.6.8.9.b.9.0.1.9.c.1.6.7.e.9.7.3.1.4.0.0.0.0.1.0.0.2.ip6.arpa. -media.etoro.com. -a.root-servers.net. -146.127.142.189.in-addr.arpa. -b4. -mail.dbamlg.com. -ec2.images-amazon.com. -s7.addthis.com. -dejardefumar2.blogspot.com. -107.26.157.157.in-addr.arpa. -www.24log.es. -66.71.167.24.in-addr.arpa. -ahfc.state.ak.us. -upload.wikimedia.org. -camcom.net. -175.193.174.190.in-addr.arpa. -chromeunderground.blogspot.com. -help.weheartit.com. -compilr.com. -www.premiosarpa.com. -www.amazon.co.uk. -www.pixsblog.com. -131.140.37.190.in-addr.arpa. -sakura-no-tamashii.deviantart.com. -optimized-by.rubiconproject.com. -www.pritzkermilitarylibrary.org. -crl.globalsign.net. -mail.levelsaudio.com. -hdjlaw.com. -doba.si. -nanyang.com. -pole59.ru. -ms0.dfi.com.tw. -a3.sphotos.ak.fbcdn.net. -au.download.windowsupdate.com. -www.megauploadbay.com. -3.10.56.186.in-addr.arpa. -www.bestonlinerpggames.com. -www.google.com. -fibrespa.ru. -www.pwpthemes.com. -api.twitter.com. -www.facebook.com. -a8.sphotos.ak.fbcdn.net. -csi.gstatic.com. -twitter.com. -www.msn.com. -www.supertop100.com. -www.housingaforest.com. -www.facebook.com. -222.210.78.190.in-addr.arpa. -hotmail.com. -198.138.166.109.in-addr.arpa. -view.atdmt.com. -mx.youtube.com. -dr._dns-sd._udp.home. -platform.ak.fbcdn.net. -ciclusgroup.net. -www.facebook.com. -2.hsup.poczta.onet.pl. -a6.sphotos.ak.fbcdn.net. -prod2.rest-notify.msg.yahoo.com. -stats.adengage.com. -a.root-servers.net. -www.colorsound.com. -mail.gilfusa.com. -cadsa.com. -atmserver1.alibaba.com. -klit.startnow.com. -zarina.ru. -centrointegramurcia.blogspot.com. -assassin.nexon.com.au. -kabelspeed.at. -atphagraphics.com. -a5.sphotos.ak.fbcdn.net. -s0.2mdn.net. -83.209.192.187.in-addr.arpa. -view.atdmt.com. -shatim-trade.ru. -73.134.213.201.in-addr.arpa. -www.theyellowcommunity.com. -dsl-384-gw.architectsde.com. -online.no. -twitter.com. -groups.live.com. -www.google.com. -www.hoteldeca.com. -google.com. -www.myybiz.net. -no.wikipedia.org. -www.imanhearts.com. -www.facebook.com. -groups.google.com.mx. -a7.sphotos.ak.fbcdn.net. -pixel.facebook.com. -chermet-s.ru. -www.njstar.com. -mail.ashnet.it. -a968yfanx.12pc. -145.74.125.200.in-addr.arpa. -a.root-servers.net. -3.127.36.186.in-addr.arpa. -136.224.145.201.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -external.ak.fbcdn.net. -developers.facebook.com. -dbcmail02.ca.debeersgroup.com. -i3.ytimg.com. -www.samsung.com. -googleads.g.doubleclick.net. -static.ads.crakmedia.com. -static.hi5.com. -ads.dotomi.com. -a288.phobos.apple.com. -aol.com. -badoo.com. -photos-b.ak.fbcdn.net. -ad.xtendmedia.com. -site.delain.nl. -www.wweshop.com. -nass-sa.net. -studentlink.net. -msa.biglobe.ne.jp. -_sipinternal._tcp.quintiles.com.quintiles.net. -db.local.clamav.net. -217.188.57.186.in-addr.arpa. -partyrockpeople.com. -thebas.homelinux.com. -248.176.100.122.in-addr.arpa. -22.4.171.201.in-addr.arpa. -i1.ytimg.com. -profile.ak.fbcdn.net. -fb-0.hidden.zynga.com. -ar-ar.facebook.com. -smtp.unhsinc.com. -a1005.w42.akamai.net. -154.240.111.216.in-addr.arpa. -chdarchitects.com.inbound25.mxlogic.net. -81.213.249.70.in-addr.arpa. -226.198.137.190.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -www.womensoccer.com.au. -174.175.152.189.in-addr.arpa. -whos.amung.us. -globalmortgagecc.com. -www.mediawiki.org. -www.playwaitressgames.com. -playerusersvc.play.it. -www.ubilapaz.edu.bo. -86.180.70.71.in-addr.arpa. -photos-d.ak.fbcdn.net. -www.lux.org.uk. -steelmart.com. -www.groundcontrol.com. -api.twitter.com. -i1.ytimg.com. -132.19.147.187.in-addr.arpa. -52.186.176.189.in-addr.arpa. -cmedia-business.ru. -matthewcoxantiques.com. -mx-24-75-128-158.rivonline.net. -abeoidii4.38hn. -www.links-web.net. -97.240.110.201.in-addr.arpa. -photos-c.ak.fbcdn.net. -diseasesconditions-articledirectoryon.blogspot.com. -kemana.com. -poll.hotlayouts2u.com. -6wveoklwe.g27z5d6j. -www.facebook.com. -www.facebook.com. -194.1.131.187.in-addr.arpa. -a.root-servers.net. -www.ninoycancer.cl. -www.academie-francaise.fr. -69.187.213.91.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -appworld.blackberry.com. -secure.wlxrs.com. -akhal-teke.ru. -a.root-servers.net. -www.desertspeak.com. -sup.live.com. -a.root-servers.net. -www.mgar.net. -images.99bb.com. -57.117.42.201.in-addr.arpa. -a0.twimg.com. -www.ellabellaphotos.com. -fbcdn-profile-a.akamaihd.net. -www.campvslab.cl. -a.root-servers.net. -cdn.cartown.com. -teredo.ipv6.microsoft.com. -dnqkzyzxnstsvu.biz. -elkom.ru. -profile.ak.fbcdn.net. -ocsp.usertrust.com. -www.rasta-man.co.uk. -ptrv.ru. -arsenalmusic.ru. -ochnews.com. -login.yahoo.com. -juju.lt. -0-161.channel.facebook.com. -a.root-servers.net. -a.root-servers.net. -41.179.242.201.in-addr.arpa. -lazonadelosgraffitis.foroactivo.com. -a2.sphotos.ak.fbcdn.net. -gg.google.com. -crashboombangmusic.com. -static.ak.facebook.com. -www.sexreaction.com. -wpad. -www.abstractlogix.com. -storage.conduit.com. -api.mapabc.com. -geeksquads.goes2u.com. -photos-b.ak.fbcdn.net. -pernodricard-uk.com.s200b2.psmtp.com. -movies.gigantits.com. -. -169.101.89.186.in-addr.arpa. -ad-g.doubleclick.net. -www.netretina.com. -a7.sphotos.ak.fbcdn.net. -40.133.252.190.in-addr.arpa. -mail1.nadams.k12.in.us. -www.pmis.co.uk. -. -dpdartnbo.72ke. -255.197.231.69.in-addr.arpa. -librecinefilo.com. -c.msn.com. -t0.gstatic.com. -alexa.cn. -0-if-w.channel.facebook.com. -exp02.eset.com. -gfx4.hotmail.com. -www.abnertrujillo.com. -a1.twimg.com. -nextwave.universia.net. -134.199.40.65.in-addr.arpa. -stone-systems.com. -228.23.207.186.in-addr.arpa. -secure.military.com. -h.live.com. -www.stumbleupon.com. -gcwaeiddepudijfokaanpqja.mu. -photos-b.ak.fbcdn.net. -nbd.com. -46.106.18.190.in-addr.arpa. -images.google.com. -photos-h.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -accountservices.msn.com. -tconl.com. -34.141.181.190.in-addr.arpa. -ad.xtendmedia.com. -accor-mail.com.rbl2.mcafee.com. -img.rincondelvago.com. -a.root-servers.net. -d2060586.instant.xoom.it. -ad.yieldmanager.com. -csi.gstatic.com. -a.root-servers.net. -www.apartamentos-medellin.com. -canariolandia.mforos.com. -networkroadrunner.disqus.com. -dns2.dcsi.de. -tacata.com. -www.youtube.com. -9.32.209.201.in-addr.arpa. -www.google-analytics.com. -www.facebook.com. -gavan-invest.ru. -99.29.207.190.in-addr.arpa. -smtp.zoomtown.com. -www.jamienelson.com. -media.scholarshippoints.com. -profile.ak.fbcdn.net. -veneziaassociates.com. -www.google.com. -71.105.65.71.in-addr.arpa. -cbk1.google.com. -www.facebook.com. -pubads.g.doubleclick.net. -instagr.am. -cloud-search-msgplus.linkury.com. -www.woodturningonline.com. -38.181.235.189.in-addr.arpa. -google.com. -plug-in.com.br. -mail1.in2focus.com. -csdnimg.cn. -i.ytimg.com. -s-static.ak.facebook.com. -cti.gr. -24.151.244.189.in-addr.arpa. -client.akamai.com. -78.35.213.201.in-addr.arpa. -audience.netavenir.com. -a.root-servers.net. -photos-b.ak.fbcdn.net. -4nodbmbq1kg3jfkhn7m4ua4bn329jbnf-a-sites-opensocial.googleusercontent.com. -bebebaratisimo.com. -50.56.124.69.in-addr.arpa. -mail.ttknet.ru. -236.168.51.190.in-addr.arpa. -moberg.com. -a1725.l.akamai.net. -b._dns-sd._udp.0.129.37.10.in-addr.arpa. -ehovpfsnszg.net.company.com. -162.2.72.189.in-addr.arpa. -a.root-servers.net. -hb.whatsapp.net. -login.live.com. -www.comunidadpymes.com. -blog.bibliothek.kit.edu. -22.247.137.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -221.132.118.217.in-addr.arpa. -vvebcams.spb.ru. -deti.bazar.sk. -ksn1-11-part2.kaspersky-labs.com. -m.yahoo.co.jp. -123.16.0.10.in-addr.arpa. -mail2.fire.org.nz. -www.hotsassy.net. -137.73.82.200.in-addr.arpa. -sites.google.com. -echo.edge.messenger.live.com. -10.96.250.190.in-addr.arpa. -a1506.phobos.apple.com. -www.mbc.net. -apps.facebook.com. -165.33.186.201.in-addr.arpa. -imagenesangeles.com. -comunidad.semana.com. -www.informatique.com.mx. -chanokaqh.deviantart.com. -www.dejatuempleo.com. -mback.csgny.com. -21.122.136.175.in-addr.arpa. -18.73.51.24.in-addr.arpa. -mailbox.pircher.at. -www.rae.com. -38.147.220.66.in-addr.arpa. -a.root-servers.net. -netdark.files.wordpress.com. -coxhanson.ca. -249.79.112.190.in-addr.arpa. -www.facebook.com. -holmesproducts.com. -br.weather.com. -photos-g.ak.fbcdn.net. -client-software.real.com. -168.110.114.200.in-addr.arpa. -www.9gag.com. -safebrowsing-cache.google.com. -140.184.139.187.in-addr.arpa. -a-0.19-2209d081.c040082.1518.19d4.3ea1.410.0.uprtfjst5crek8qge2qz1693sb.avqs.mcafee.com. -www.belkin.com. -translate.google.com.mx. -www.domainit.com. -191.36.31.82.in-addr.arpa. -81.194.78.201.in-addr.arpa. -developers.facebook.com. -a.root-servers.net. -sc21.rules.mailshell.net. -148.157.201.190.in-addr.arpa. -:smz1pynj.a72l9r3t. -www.fashiontoast.com. -a4.mzstatic.com. -static.ak.fbcdn.net. -ad.xtendmedia.com. -www.pharmacyathand.co.uk. -a.root-servers.net. -stereoplus.com. -developers.facebook.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -inbound.advantech-inc.com.netsolmail.net. -hi-in.facebook.com. -searchvip1.sli-systems.net. -aol.com. -mundomoto.bligoo.com. -italiano.softmyhard.com. -s2.youtube.com. -video-g19.proxad.net. -22.43.111.174.in-addr.arpa. -fxfeeds.mozilla.com. -8cbnuqbnb.39sk. -chromejs.s3.amazonaws.com. -87.73.134.187.in-addr.arpa. -www.0.com. -blufiles.storage.msn.com. -126.166.91.91.in-addr.arpa. -localhost. -n003-000-000-000.static.ge.com. -a6.sphotos.ak.fbcdn.net. -a.root-servers.net. -clients2.google.com. -www.youtube.com. -developers.facebook.com. -telinvest.com. -i4.ytimg.com. -salemchamber.org. -defis.kis.ru. -images.barchart.com. -news.google.com.mx. -graph.facebook.com. -pagead2.googlesyndication.com. -www.sorbita.com. -sr.jailbreak-me.info. -quality-tour.com. -a5.sphotos.ak.fbcdn.net. -www.20minutos.es. -cdn1.static.tube8.phncdn.com. -www.jongales.com. -pagead2.googlesyndication.com. -search.jp.wsj.com. -steel.nsk.su. -clients2.google.com. -703.coll.ning.com. -_808_68_5. -www.cybermonday2011.com. -www.filemakertrial.com. -58.26.133.187.in-addr.arpa. -www.stc.com.sa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -37.128.16.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -150.137.98.76.in-addr.arpa. -www.youtube.com. -mail.homelocatorsrealty.com. -ad-g.doubleclick.net. -www.newz-premium.com. -mkz33xw:y.57ua. -www.peliculasfox.com. -googleads.g.doubleclick.net. -135.15.255.201.in-addr.arpa. -a.root-servers.net. -plantx.com. -www.twink-guys.com. -162.158.115.189.in-addr.arpa. -now.org. -heidegger.x-y.net. -google.com. -62.34.178.190.in-addr.arpa. -vdovichenko.ru. -time.chttl.com.tw. -playball.eluniversal.com. -yahoo.ytsa.net. -streamlfree.live-onweb.com. -photos-e.ak.fbcdn.net. -237.62.17.177.in-addr.arpa. -tracker.thepiratebay.org. -www.findyourfamilytree.com. -nortonsecurity.blinkweb.com. -dns.msftncsi.com. -teredo.ipv6.microsoft.com. -voydat.com. -156.112.28.83.in-addr.arpa. -56.15.182.189.in-addr.arpa. -espndeportes-assets.espn.go.com. -_784_41_7. -m.addthisedge.com. -mckechnie.com. -a.root-servers.net. -www.esedark.com. -tsm01.eset.com. -js.chatsend.com. -livingliberally.org. -gigantioempresarios.blogspot.com. -32.155.119.222.in-addr.arpa. -time-nw.nist.gov. -resolver3.ipsw.ctmail.com. -223.94.158.201.in-addr.arpa. -www.nvgopcaucus.com. -photos-e.ak.fbcdn.net. -no.wikipedia.org. -mx01.puc.rediris.es. -187.85.32.177.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.bromleybike.co.uk. -eurostar.voyages-sncf.com. -laposte.net. -_696_32_1. -hrndva-smtpin02.mail.rr.com. -cmmeiers.com. -www.videojuegos.com. -authenticpress.com. -www.update.microsoft.com. -62.158.220.66.in-addr.arpa. -192.172.152.187.in-addr.arpa. -css.wlxrs.com. -www.ipsca.com. -a.root-servers.net. -alerts.conduit-services.com. -adoftheyear.com. -www.videox2424.com. -remaxcolonial.com. -directimports.co.uk. -vid2c.disqus.com. -www.adobe.com. -5.175.77.219.in-addr.arpa. -tin.hongkong1.com. -a3.sphotos.ak.fbcdn.net. -static.ak.facebook.com. -228.143.71.77.in-addr.arpa. -apps.facebook.com. -lermanlaw.com.s8b1.psmtp.com. -194.32.82.190.in-addr.arpa. -jjjkc5h9v.07tp. -devices.live.com. -apps.facebook.com. -www.buenosairesdelivery.com. -253.239.186.93.in-addr.arpa. -gayshow.blogsome.com. -securemail.novartis.net. -yahoo.com. -rad.msn.com. -d1j68ux4ukg4g1.cloudfront.net. -ftp.porcupine.org. -img.feb-search.com. -rct395f5z.z62y4p9w. -profile.ak.fbcdn.net. -yourmayflower.com. -www.musica-online.org. -external.ak.fbcdn.net. -69.52.55.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -whinuxkern.executablychewi.fm. -destylesenaiguilles.wordpress.com. -fairfaxis.com. -fxfeeds.mozilla.com. -www.facebook.com. -104.6.73.219.in-addr.arpa. -oss-survey.securestudies.com. -169.94.6.189.in-addr.arpa. -au.download.windowsupdate.com. -www.google.com.mx. -www.youtube-nocookie.com. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -23.35.52.186.in-addr.arpa. -www.paratucuidado.com.ar. -apps.facebook.com. -a.root-servers.net. -safebrowsing-cache.google.com. -apis.google.com. -2oqe9qij7.56iy. -content.yieldmanager.edgesuite.net. -facemoods.com. -_585_54_6. -a.root-servers.net. -www.google-analytics.com. -231.92.80.190.in-addr.arpa. -1st-premier.com.s7a2.psmtp.com. -211.32.234.189.in-addr.arpa. -gujeha7d3.31el. -www.google.com. -a9xozbfz1.47mw. -home.costhelper.com. -qcode.us. -zopugiwepehowyj.info. -www.ceddet.org. -jestro.com. -www.eurocommuseum.com. -fbcdn-photos-a.akamaihd.net. -32.courier-push-apple.com.akadns.net. -laprincesacaprichosa.blogspot.com. -164.173.125.190.in-addr.arpa. -evintl-ocsp.verisign.com. -www.gladiatus.lv. -a.root-servers.net. -b.scorecardresearch.com. -b._dns-sd._udp.lan. -cmgtcontent.ahold.com.kpnis.nl. -www.teamovercome.net. -static.ak.fbcdn.net. -api.conduit.com. -24.media.tumblr.com. -fbcdn-profile-a.akamaihd.net. -www.facebook.com. -www.clocklink.com. -naacy.org. -d2111274.xoom.it. -www.lmolnar.com. -www.zynga.com. -todoaudio.cl. -a7.sphotos.ak.fbcdn.net. -lus.net. -hipstamaticapp.com. -a8.sphotos.ak.fbcdn.net. -isatap.belkin. -time.chttl.com.tw. -clock.fmt.he.net. -mail.bwrogers.com. -ksn2-12.kaspersky-labs.com. -photos-d.ak.fbcdn.net. -66.36.45.189.in-addr.arpa. -www.gruposyv.com. -mx1.martinlitho.com. -www.risorsegeek.net. -mail1.ingles-markets.com. -13.166.110.76.in-addr.arpa. -82.145.105.186.in-addr.arpa. -www.piadasnet.com. -www.royalsuitesturquesaresort.com. -sites.google.com. -mail.streamline-ops.com. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -d2055107.instant.xoom.it. -90.154.88.186.in-addr.arpa. -www.rotaterra.com. -0612com3s2a.freehostia.com. -216.128.112.128.in-addr.arpa. -cositphotography.com. -. -www.linkleak.org. -www.otherthings.com. -rad.msn.com. -addons.mozilla.org. -a.root-servers.net. -pubads.g.doubleclick.net. -centerpointvp.com. -m.detik.com. -adult-img02.olx.com.mx. -www.seasite.niu.edu. -s-static.ak.facebook.com. -simon1.me.uk. -platform.linkedin.com. -www.foofighters.fm. -oxgw7mx54.58an. -a5.sphotos.ak.fbcdn.net. -www.ggi.com.mx. -textad.xxxmatch.com. -streaming.mediamatters.org. -143.53.154.186.in-addr.arpa. -68.148.49.49.in-addr.arpa. -mx.youtube.com. -creative.ak.fbcdn.net. -tag.admeld.com. -123.4.10.85.in-addr.arpa. -www.hamptons.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.thinkteens.com. -163.127.6.189.in-addr.arpa. -mountainkeeper.org. -www.bloghissimo.com. -dist.divx.com. -www.piercingbible.com. -76.31.9.76.in-addr.arpa. -image2.cecash.com. -i1.ytimg.com. -155.170.88.200.in-addr.arpa. -www.info.lncc.br. -skins.gmodules.com. -nyc2k155.ameca.panorg.com. -lvrewelju.u52m3o9v. -mob.adwhirl.com. -t3.baidu.com. -ocsp.godaddy.com. -www.plena507.org. -zh-cn.facebook.com. -www.adxpansion.com. -coldngrey.blogspot.com. -qfj:95oem.r43l1a5h. -tetc1.ceryxefw.com. -112.126.106.189.in-addr.arpa. -53.153.206.200.in-addr.arpa. -platform.ak.fbcdn.net. -masabadell.wordpress.com. -mail.live.com. -i2.ytimg.com. -init.ess.apple.com. -evintl-ocsp.verisign.com. -i2.ytimg.com. -dc263.4shared.com. -sandesh.ganeshaspeaks.com. -profile.ak.fbcdn.net. -a.root-servers.net. -3.gvt0.com. -joinexpedia.com. -translate.googleapis.com. -stenske.kiev.ua. -um12.eset.com. -84.47.43.186.in-addr.arpa. -105.238.1.118.in-addr.arpa. -s.ytimg.com. -www.mochiads.com. -68.242.100.190.in-addr.arpa. -modnoe-mecto.ru. -130.154.128.190.in-addr.arpa. -mail.arzamarket.ru. -developer.ean.com. -www.shueisha.co.jp. -212.116.59.82.in-addr.arpa. -ns1.apk.net. -fbcdn-photos-a.akamaihd.net. -clients2.google.com. -musicandmore.bligoo.com.mx. -mail.capebouvard.com. -safebrowsing-cache.google.com. -csi.gstatic.com. -uspeh24.ru. -store.apolisglobal.com. -download326.avast.com. -a7.sphotos.ak.fbcdn.net. -9.47.21.201.in-addr.arpa. -beckersasc.com. -246.202.209.201.in-addr.arpa. -www.balashov.san.ru. -joplinfamilyy.org. -danielpowter.ru. -ad.doubleclick.net. -pixel.facebook.com. -www.stumbleupon.com. -241.61.154.187.in-addr.arpa. -www.tolaymat.com. -www.woodcrafter.com. -netvigator.com. -mail.google.com. -www.bulgaria-travel-guide.com. -gally.hellfiresex.com. -itaka-fan.los-foros.com. -lh3.googleusercontent.com. -www.facebook.com. -www.dotster.com. -171.19.251.190.in-addr.arpa. -a.root-servers.net. -www.absolutemadonna.com. -d1af033869koo7.cloudfront.net. -google.com. -mx.youtube.com. -www.facebook.com. -titanium30-en.url.trendmicro.com. -www.vidaabundante.com.mx. -a6.sphotos.ak.fbcdn.net. -www.hiyoko-g.com. -6.226.10.186.in-addr.arpa. -modder.net. -a34.g.akamai.net. -. -a.root-servers.net. -img03.taobaocdn.com. -lb._dns-sd._udp.lan. -www.fc.com. -ctzujo.com. -www.sohuads.com. -brisajuvenil.blogspot.com. -ar.thefreedictionary.com. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -ocsp.verisign.com. -59.218.95.201.in-addr.arpa. -9-courier.push.apple.com. -202.144.131.63.in-addr.arpa. -149.115.69.190.in-addr.arpa. -developers.facebook.com. -a2.twimg.com. -177.231.34.186.in-addr.arpa. -cmxr.com.s7b1.psmtp.com. -msvqdoq19.83ti. -secure.globalsign.net. -f.facemoods.com. -ad.doubleclick.net. -photos-f.ak.fbcdn.net. -youtu.be. -202.250.34.2.in-addr.arpa. -_054_09_1. -profile.ak.fbcdn.net. -shuttleworth-uk.co.uk.inbound10.mxlogic.net. -www.make-fabulous-cakes.com. -kanrou.net. -shelf-life.ew.com. -www.mundoanuncio.com.sv. -photos-f.ak.fbcdn.net. -hypesrus.com. -www.facebook.com. -daemon-tools.softonic.com. -bestbetting.sesmazing.com. -mystartantiphishing.com. -photos-g.ak.fbcdn.net. -63.124.226.190.in-addr.arpa. -www.be2.co.uk. -_381_41_3. -amsdocs.com. -twitter.com. -4.map.pop6.com. -gpc.ru. -mail.tellus.nl. -222.162.229.88.in-addr.arpa. -www-proxy.ericsson.se. -maxneutra.com. -liveupdate.symantecliveupdate.com. -www.groupon.com.ar. -6.190.172.201.in-addr.arpa. -spam2.e-land.gov.tw. -aidps.atdmt.com. -forum.aheadworks.com. -hotforex.com.hypestat.com. -carestream.ru. -www.facebook.com. -231.37.56.186.in-addr.arpa. -gye.hoy.net. -vip.mlstatic.com. -113.246.213.201.in-addr.arpa. -tools.google.com. -addons.mozilla.org. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.gogotorrent.com. -candocareer.com. -img844.imageshack.us. -tempomusic.com. -apis.google.com. -20.225.132.190.in-addr.arpa. -www.dorma-interior.com. -141.190.43.190.in-addr.arpa. -100.247.253.189.in-addr.arpa. -22.61.74.190.in-addr.arpa. -mail02.bg-group.com. -www.pimientaycanela.com. -zh-cn.facebook.com. -ns.magnetism.ru. -qpsisbest.com.m2.mx-route.com. -a1402.w40.akamai.net. -stacksvinyl.com. -photos-h.ak.fbcdn.net. -15.167.50.201.in-addr.arpa. -www.google-analytics.com. -wstat.wibiya.com. -js2.wlxrs.com. -store.dll-files.com. -www.facebook.com. -a.root-servers.net. -www.informationhospitaliere.com. -a.root-servers.net. -forelskelse.com. -static.ak.fbcdn.net. -clients4.google.com. -241.188.249.188.in-addr.arpa. -nobreastsnorequests.tumblr.com. -a.root-servers.net. -babcom4.lnc.net. -mccafferyinterests.com.s5a2.psmtp.com. -176.cim.meebo.com. -aquascene.com.au. -picasaweb.google.com. -graph.facebook.com. -profile.ak.fbcdn.net. -wpad. -233.124.241.189.in-addr.arpa. -www.zobo.ca. -gmfcollect.com. -www.google-analytics.com. -www.audiencescience.com. -a.root-servers.net. -twitter.com. -plusone.google.com. -mail.cfmcgroup.com. -_093_08_2. -hammond.org. -www.jvcpro.eu. -220.149.224.190.in-addr.arpa. -82.44.168.192.in-addr.arpa. -photos.americanlemans.com. -192.209.3.190.in-addr.arpa. -131.94.79.201.in-addr.arpa. -google.ail.com. -174.177.204.190.in-addr.arpa. -csi.gstatic.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -weather.bigspeedpro.com. -rerih.ru. -ssl.gstatic.com. -user.home. -thelongboardblog.com. -aspenbuilders.co.uk. -five.tefgame.com. -m.youtube.com. -www.wdc.com. -api.twitter.com. -italiacampersud.it. -214.51.229.189.in-addr.arpa. -219.101.194.186.in-addr.arpa. -189.111.22.71.in-addr.arpa. -lh4.googleusercontent.com. -ssl.gstatic.com. -i3.msdn.microsoft.com. -65.203.205.218.in-addr.arpa. -v17.lscache7.c.bigcache.googleapis.com. -new-rap.ru. -173.245.53.200.in-addr.arpa. -twitter.com. -sa-live.com. -www.shy22.com. -pagead2.googlesyndication.com. -profile.ak.fbcdn.net. -smtp1.ppcc.edu. -_784_28_0. -av1.tnz.myschools.net. -js2.wlxrs.com. -217.35.168.192.in-addr.arpa. -ussd.ru. -2f6508c4.allanalpass.com. -up.uchc.edu. -creative.ak.fbcdn.net. -hash.orbitdownloader.com. -ksn2-12.kaspersky-labs.com. -coachhousecraftingonabudget.blogspot.com. -economictimes.feedsportal.com. -t1.gstatic.com. -a2.sphotos.ak.fbcdn.net. -laprendizdechef.blogspot.com. -api202e.thefilter.com. -www.holidaycityflash.com. -252.26.0.181.in-addr.arpa. -image.web.cyberimg.com. -mta2.am0.yahoodns.net. -a4.sphotos.ak.fbcdn.net. -_572_46_2. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -igor.facemoods.com. -lioninthesunps.com. -col.stb01.s-msn.com. -www18.officedepot.com. -mail.sakurabloom.com. -d1j68ux4ukg4g1.cloudfront.net. -paynoattention.kicks-ass.net. -a4.sphotos.ak.fbcdn.net. -apix.iminent.com. -elsingular.com. -mail2.interyuna.ru. -yahoo.com. -www.freelearn110.com. -lc.mcafee.com. -www.cerur.org. -it-it.facebook.com. -i.ytimg.com. -a1.sphotos.ak.fbcdn.net. -www.cfmaroc.com. -210.238.143.187.in-addr.arpa. -www.dick.com. -dataage.blogspot.com. -safebrowsing-cache.google.com. -252.115.149.187.in-addr.arpa. -www.turquoise-voyages.fr. -www.mochiads.com. -121.78.126.71.in-addr.arpa. -v.gatcdn.com. -a.root-servers.net. -a.root-servers.net. -fisifvg.org. -dns.msftncsi.com. -tech.teachmyass.com. -site.beltoutlet.com. -rob2tall1.newsvine.com. -profile.ak.fbcdn.net. -orcart.facebook.com. -crittercorral.com. -blogantiheroes.files.wordpress.com. -www.demotores.es. -www.google-analytics.com. -api.facebook.com. -wukesha.k12.wi.us. -clients4.google.com. -a.root-servers.net. -71.90.216.150.in-addr.arpa. -mx.electricentertainment.com. -lacasaeuropa.blogspot.com. -quicktime.uptodown.com. -0-if-w.channel.facebook.com. -google.com. -sup.live.com. -at.7digital.com. -torresvedras.olx.pt. -42.33.145.189.in-addr.arpa. -pixel.quantserve.com. -static2.avast.com. -www.koolkiz.com. -www.dumcoach.com. -47.43.117.74.in-addr.arpa. -dx3723.tinyurl.com. -inferno.demonoid.me. -251.1.238.190.in-addr.arpa. -www.blowjobpimps.com. -admiralplc.com. -teredo.ipv6.microsoft.com. -ad.eqsv.jp. -www.strictlyreptiles.com. -wrapcritic.com. -sbnbox.com. -www.youtube.com. -pueblo-insurance.com. -quazy4quakers.com. -232.128.210.201.in-addr.arpa. -www.miniclip.com. -a.root-servers.net. -167.26.236.77.in-addr.arpa. -secure.shared.live.com. -gdata.youtube.com. -www.nlm.nih.gov. -a.root-servers.net. -www.socialgrowthtechnologies.com. -73.102.249.190.in-addr.arpa. -58.125.40.190.in-addr.arpa. -\(none\). -mail1.colmanagement.com. -mono.ximian.com. -www.bywifi.com. -evintl-ocsp.verisign.com. -200.91.248.189.in-addr.arpa. -hi-in.facebook.com. -photos-f.ak.fbcdn.net. -relay.voice.edge.messenger.live.com. -www.cooldictionary.com. -profile.ak.fbcdn.net. -43.208.33.177.in-addr.arpa. -www.dspdoctor.com. -photos-b.ak.fbcdn.net. -heavenlysweet.blogspot.com. -hi-in.facebook.com. -client29.dropbox.com. -photos-e.ak.fbcdn.net. -wzeu.ask.com. -developers.facebook.com. -www.print-gakufu.com. -eimail.com. -developers.facebook.com. -www.asiaticos.org. -twitter.com. -festoolownersgroup.com. -a.root-servers.net. -watsonreltycorp.com. -41.130.225.212.in-addr.arpa. -mgurxvgtykkrpqg.net. -billing.sharo4ka.ru. -a.root-servers.net. -imagine-graphics.net. -_767_24_0. -100.16.75.187.in-addr.arpa. -www9.effectivemeasure.net. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -25.97.48.190.in-addr.arpa. -www.viptickets.com. -emoticons.msn-beta.com. -adscachable.nfl.mobitv.com. -136.120.55.190.in-addr.arpa. -fr.webrep.avast.com. -19.201.168.192.in-addr.arpa. -a.root-servers.net. -external.ak.fbcdn.net. -24.188.35.201.in-addr.arpa. -mss.api.getjar.com. -touch.facebook.com. -partner.googleadservices.com. -www.imanmaleki.com. -ow2ryx7ij.58hy. -developers.facebook.com. -api.facebook.com. -blackmarketbikes.com. -dermadoctor.tt.omtrdc.net. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -mysecretceres.com. -swcdn.apple.com. -topcosales.com. -cdn.api.twitter.com. -d2095752.xoom.it. -150.17.16.206.in-addr.arpa. -www.wikimapia.org. -22.164.179.190.in-addr.arpa. -external.ak.fbcdn.net. -static.ak.fbcdn.net. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -94.152.117.200.in-addr.arpa. -safebrowsing-cache.google.com. -feeds.bbci.co.uk. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a2.twimg.com. -zynga1-a.akamaihd.net. -44.165.56.186.in-addr.arpa. -img.dukascopy.com. -tools.google.com. -sealns5.nstld.net. -220.224.45.190.in-addr.arpa. -wisconsinbenefits.com. -static.ak.fbcdn.net. -www.google.com.mx. -creative.ak.fbcdn.net. -twitter.com. -time.chttl.com.tw. -www.kickload.com. -opi.yahoo.com. -dem0003.in. -59.120.209.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -safebrowsing.clients.google.com. -b.static.ak.fbcdn.net. -fbcdn-photos-a.akamaihd.net. -games.yahoo.com. -a.root-servers.net. -mail.creamyradio.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.badboyonline.com. -av.ru.s200b1.psmtp.com. -_ldap._tcp. -stores.guitarcenter.com. -lb.wordpress.com. -www.718c.com. -t1.gstatic.com. -blog.penyubiru.com. -revolucionindustrialrosana.blogspot.com. -234.40.172.109.in-addr.arpa. -www.carinos.com. -prch.org. -profile.ak.fbcdn.net. -a1.da1.akamai.net. -amer.rel.msn.com. -www.arcat.com. -creative.ak.fbcdn.net. -cqwmw8qzr.v77g6s3s. -31.63.229.78.in-addr.arpa. -bin-short.whatsapp.net. -youtube-5th.softonic.com. -inbound.icdcoc.com.netsolmail.net. -accesorioshp.com. -www.absolutefigures.com. -www.kalipedia.com. -a2.sphotos.ak.fbcdn.net. -m.facebook.com. -i2.cdn.turner.com. -apps.facebook.com. -244.208.88.201.in-addr.arpa. -feeds.bbci.co.uk. -119.10.168.192.in-addr.arpa. -51.16.235.99.in-addr.arpa. -juanmanuel-vivenciasinteriores.blogspot.com. -panelogic.com. -108.206.243.41.in-addr.arpa. -www.mrbigler.com. -11.29.229.190.in-addr.arpa. -search.imesh.com. -www.bing.com. -a.root-servers.net. -79.216.231.212.in-addr.arpa. -autos.divendo.mx. -db._dns-sd._udp.0.129.37.10.in-addr.arpa. -44993amailer.net. -ssl.gstatic.com. -i3.ytimg.com. -au.answers.yahoo.com. -s2.youtube.com. -login.oscar.aol.com. -stretchmarkinstitute.com. -www.chinabusinessworld.com. -kgtzu68yo.j56g6y2b. -dc261.4shared.com. -mx.oceanlakes.com. -118.181.153.109.in-addr.arpa. -platform.ak.fbcdn.net. -www.theinnovationdiaries.com. -11.231.195.190.in-addr.arpa. -kzbwk7r7h.h45l9n0f. -cdn.smosh.com. -211.175.138.187.in-addr.arpa. -4.25.168.192.in-addr.arpa. -x.tagstat.com. -i2.ytimg.com. -rodajes.net. -s1-word-view.vo.msecnd.net. -191.208.36.190.in-addr.arpa. -awck.com. -13.124.236.98.in-addr.arpa. -www.facebook.com. -assets4.castle.zgncdn.com. -ad.yieldmanager.com. -76.190.248.213.in-addr.arpa. -twitter.com. -136.243.168.189.in-addr.arpa. -a.root-servers.net. -_481_28_2. -www.congratulationstext.com. -hxenmd382.88tt. -ssl.gstatic.com. -p18-buy.itunes.apple.com. -journals.lww.com. -inbound.phoenixgroup.org.netsolmail.net. -_695_16_7. -152.151.192.187.in-addr.arpa. -154.230.132.190.in-addr.arpa. -itech.fgcu.edu. -tm.dp.yieldmanager.net. -www.youtube.com. -puertorico.koalatrends.com. -www.google.com. -www.google.com. -vt2000.ru. -hotmail.com. -tc.v2.cache3.c.youtube.com. -oaid.uab.es. -ssl.gstatic.com. -descargarpeliculasgratis.ziflo.net. -cdn.api.twitter.com. -static.ak.fbcdn.net. -240.111.104.87.in-addr.arpa. -s2.googleusercontent.com. -a-tsb.ru. -specialolympicswisconsin.org. -sync.imob2.com. -31.204.226.201.in-addr.arpa. -ad.doubleclick.net. -a5.sphotos.ak.fbcdn.net. -platform.twitter.com. -a.root-servers.net. -19.134.60.213.in-addr.arpa. -59.211.222.189.in-addr.arpa. -forum.gamesports.net. -www.embeddedpc.net. -b.z.eset.rs. -platform.twitter.com. -www.models.or.kr. -adaneslaberinto.espacioblog.com. -api-read.facebook.com. -u44b9qf:y.94wa. -s.mobclix.com. -blog.online-convert.com. -a4.sphotos.ak.fbcdn.net. -madcoyote.com. -apis.google.com. -a1.sphotos.ak.fbcdn.net. -brand-yourself-blog.disqus.com. -www.adobe.com. -book-with-pictures.blogspot.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -apps.facebook.com. -pnrws.skype.com. -18.82.165.58.in-addr.arpa. -vetlearn.com.s7b1.psmtp.com. -about.tagged.com. -153.144.167.190.in-addr.arpa. -www.google.com. -47.38.181.220.in-addr.arpa. -in1.msg.vip.re2.yahoo.com. -premieroutdoorproperties.com. -ajax.googleapis.com. -www.algzar99.com. -8.36.75.190.in-addr.arpa. -195.89.17.71.in-addr.arpa. -41.23.19.186.in-addr.arpa. -cc-codi.fr. -www.borne.cc. -dragonet.es. -3.29.34.187.in-addr.arpa. -a489.ac-images.myspacecdn.com. -echo.edge.messenger.live.com. -28.247.3.89.in-addr.arpa. -s7.addthis.com. -i4-img3.mangachapter.net. -external.ak.fbcdn.net. -erwbtkidthetcwerc.com. -naval.mforos.com. -images6.cuantocabron.com. -download851.avast.com. -hartmannhouse.ru. -aka-cdn-ns.adtechus.com. -www.techadmirer.com. -www.tutorialsgarden.com. -26.49.196.190.in-addr.arpa. -static.pcomperf.com. -233.34.158.187.in-addr.arpa. -offers.veer.com. -mail.niia.net. -0.5475251.com. -telezhka.com.ru. -idpix.media6degrees.com. -kvs.be. -16.147.220.66.in-addr.arpa. -loading6.widdit.com. -_921_97_7. -vopyzyk.com. -74.234.47.189.in-addr.arpa. -www.20minutos.es. -mail.planning.gov.sa. -apps.104.6rtl.com. -plusone.google.com. -mail.platbank.com. -www.logitravel.com.br. -photos-h.ak.fbcdn.net. -bing.com. -_219_24_2. -a1505.l.akamai.net. -clients1.google.com.mx. -. -www.gastroanthropology.com. -www.google.com. -mail.efdgroup.net. -creative.ak.fbcdn.net. -profile.ak.fbcdn.net. -a.root-servers.net. -ajax.googleapis.com. -trans.in-freight.spb.ru. -102.138.45.83.in-addr.arpa. -nudt.edu.cn. -6.25.68.189.in-addr.arpa. -members.dyndns.org. -ocsp.verisign.com. -mgmt.beta.toolbar.msn.com. -diosaladyruby.blogspot.com. -exchange.thebeverageworks.com. -a6.sphotos.ak.fbcdn.net. -cuantocabron.com. -teredo.ipv6.microsoft.com. -87.35.31.190.in-addr.arpa. -524r1tqe3.r96w0c5a. -www.harrenmediatools.com. -b.scorecardresearch.com. -avante.net.mx. -btq26vmu9.87yu. -concienciacristiana.blogspot.com. -nautilus.scene7.com. -121.164.139.98.dnsbl.sorbs.net. -75.23.0.192.in-addr.arpa. -b.scorecardresearch.com. -static.99widgets.com. -secure.wlxrs.com. -time.chttl.com.tw. -mail.sinosure.com.cn. -sannicolasdelosgarza.olx.com.mx. -server4.web-stat.com. -go.srvnow.com. -197.242.185.201.in-addr.arpa. -hootsuite.com. -fbcdn-profile-a.akamaihd.net. -elainemeinelsupkis.typepad.com. -a.root-servers.net. -a.root-servers.net. -fieldforce.cz. -market.android.com. -www.facebook.com. -www.experiencewa.com. -safebrowsing-cache.google.com. -60.194.87.115.in-addr.arpa. -www.puppiesforsalecheap.net. -bigeast.org. -www2.scjn.gob.mx. -_609_47_3. -254.208.68.98.in-addr.arpa. -mcgrigors.com. -121.177.225.123.in-addr.arpa. -0.11-a70ea079.2.1518.18a4.3ea1.210.0.2ft7kv1rbn483wbvsuclmwjhtb.avqs.mcafee.com. -clients1.google.com. -www.ncbi.nlm.nih.gov. -euro.mediotiempo.com. -google.com. -a.root-servers.net. -nfrr.ru. -dns.msftncsi.com. -exgf4bz4z.h73d0p2s. -a1.sphotos.ak.fbcdn.net. -developers.facebook.com. -bit.ly. -mafiascum.net. -photos-c.ak.fbcdn.net. -allprosupplements.com. -starrtincup.com. -iijmio-mail.jp. -photos-b.ak.fbcdn.net. -sn1msg1010620.gateway.messenger.live.com. -a6.sphotos.ak.fbcdn.net. -www.miga.org. -zea.com. -vodkaonly.com. -fbcdn-profile-a.akamaihd.net. -imkontext.at. -172.55.221.216.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -books.google.com.mx. -portalde.info. -100.206.143.201.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -ksn3-11.part1.kaspersky-labs.com. -ubiqq.com. -kmlafilm.com. -boroughmarket.org.uk. -google.com. -sp.fieldhealth.com. -img1.blogblog.com. -healthywaterman.com. -www.altromercato.it. -www.google.com.mx. -nicregi.hubpages.com. -customwebdesigners.com. -a.root-servers.net. -photos-b.ak.fbcdn.net. -geox.ru. -snt0-omc3-s18.snt0.hotmail.com. -48.1.65.50.in-addr.arpa. -i4.ytimg.com. -144.224.250.99.in-addr.arpa. -wu-international.com. -fbcdn-sphotos-a.akamaihd.net. -88.gt2.vkadre.ru. -del.icio.us. -www.google.com.mx. -images.speedbit.com. -86.254.70.190.in-addr.arpa. -84.73.57.62.in-addr.arpa. -131.52.79.184.in-addr.arpa. -1.bp.blogspot.com. -video.xnxx.com. -www.ant.com. -2.55.89.120.in-addr.arpa. -www.clickamateur.es. -nightclassmembers.blogspot.com. -www.afsvlaanderen.be. -mobile.twitter.com. -162.84.84.200.in-addr.arpa. -129.212.11.201.in-addr.arpa. -s-static.ak.fbcdn.net. -85g4jaxbq.l92r1l1h. -mail.brighterdaysent.com. -162.55.66.212.in-addr.arpa. -articleslot.info. -124.50.248.201.in-addr.arpa. -pod.xxxmatch.com. -68.160.72.78.in-addr.arpa. -api.facebook.com. -www.goojue.com. -theframeproblem.wordpress.com. -teredo.ipv6.microsoft.com. -clu-in.org. -206.183.66.201.in-addr.arpa. -a.root-servers.net. -photos-c.ak.fbcdn.net. -sp.ask.com. -29.media.tumblr.com. -3dhelpcenter.com. -rxvwf5b7m.c62m8i2j. -api.twitter.com. -a.root-servers.net. -www.ipcos.com. -a7.sphotos.ak.fbcdn.net. -maukdesign.com.inbound15.mxlogic.net. -perigree.net. -a7.sphotos.ak.fbcdn.net. -yaahoo.co.uk. -static.chartbeat.com. -244.66.19.186.in-addr.arpa. -vuz2006.ru. -losyvr5z6.24uo. -mujer.latercera.com. -ilchildcare.org. -photos-b.ak.fbcdn.net. -juancamef.blogspot.com. -a4.sphotos.ak.fbcdn.net. -check6.facebook.com. -mail-2.netbauds.net. -i3.ytimg.com. -images02.olx.com. -gta-san-andreas-homeboys.softonic.com.br. -photos-g.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -www.neverthirsty.org. -218.18.155.109.in-addr.arpa. -miportal.att.net. -eruptedale.mcentcoughwith.tm. -www.infolinks.com. -149.172.109.200.in-addr.arpa. -smurfs.capcomcanada.com. -ioatelecom.net. -roljoc.cl. -befrikimyfriend.blogspot.com. -caballonegroeditora.com.ar. -www.unsystem.org. -i1202.photobucket.com. -baitassawadah.com. -7.127.230.201.in-addr.arpa. -www.google.com. -zvpyn58u5.04cu. -0-jx-w.channel.facebook.com. -mail-attachment.googleusercontent.com. -exp.msn.com. -csi.gstatic.com. -www.youtube.com. -17.240.45.203.in-addr.arpa. -cash2track.com. -19.0.234.96.in-addr.arpa. -notes.pcoa.com. -a.root-servers.net. -163.85.153.201.in-addr.arpa. -225.218.84.108.in-addr.arpa. -mxmail.diverseoptics.com. -213.209.29.151.in-addr.arpa. -www.upsjobs.com. -a6.sphotos.ak.fbcdn.net. -apps.facebook.com. -a4.sphotos.ak.fbcdn.net. -117.3.18.108.in-addr.arpa. -peruahora.wordpress.com. -creative.ak.fbcdn.net. -mx.terraempresas.com.br. -photos-g.ak.fbcdn.net. -terminal29.ru. -a.root-servers.net. -251.224.177.189.in-addr.arpa. -mwbankers.com. -amertech.com. -fr.answers.yahoo.com. -a8.sphotos.ak.fbcdn.net. -ro66ljmob.37tb. -a.root-servers.net. -rospres.com. -tkprok.ru. -106.133.224.190.in-addr.arpa. -altavistagraphics.com. -cesblogfeed.thinkpyxl.com. -www.intel.com. -www.gaybaires.net. -www.ambito.com. -20minutos.feedsportal.com. -fr-fr.facebook.com. -developers.facebook.com. -mx.ppiseattle.com. -tandem.spb.su. -www.facebook.com. -mail.gvan.ru. -andreas.com. -ssl.google-analytics.com. -mail.gciframing.com. -108.27.168.192.in-addr.arpa. -ladamadelnilo.blogspot.com. -253.191.136.189.in-addr.arpa. -s-external.ak.fbcdn.net. -littleowlski.wordpress.com. -syndication.traffichaus.com. -platform.ak.fbcdn.net. -cv-extreme.chatango.com. -36.147.220.66.in-addr.arpa. -www.facebook.com. -pixerloadbalancer-126298269.us-east-1.elb.amazonaws.com. -img2.blogblog.com. -booking.ihotelier.com.akadns.net. -mx20.mame-imprimeurs.com. -s-external.ak.fbcdn.net. -twitter.com. -mail.prendergast.net. -149.83.23.186.in-addr.arpa. -www.youtube.com. -va.starcat.ne.jp. -a4.sphotos.ak.fbcdn.net. -qswkrjd:h.n09e8i6c. -profile.ak.fbcdn.net. -bcl.wikipedia.org. -facemoods.com. -231.31.245.189.in-addr.arpa. -_854_29_5. -a.root-servers.net. -gohongkong.about.com. -151.159.168.192.in-addr.arpa. -s.ytimg.com. -106.112.186.189.in-addr.arpa. -60.80.193.123.in-addr.arpa. -www.googleadservices.com. -www.update.microsoft.com. -cs506204.vk.com. -sfis.k12.nm.us. -raisingzona.com. -mail2ray.com. -repo.beyoip.com. -plainview.k12.mn.us. -tarea-escolar.blogspot.com. -www.osrami.com. -i2.ytimg.com. -e5413.g.akamaiedge.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -sergecote.net. -ncpennysaver.com. -ssl.gstatic.com. -api.conduit.com. -ack-exchange.ask.ru. -xads.zedo.com. -ac3filter.en.softonic.com. -k-e-s.ru. -external.ak.fbcdn.net. -ar-ar.facebook.com. -bmc.org. -astronomy.com.s8a1.psmtp.com. -27.212.254.88.in-addr.arpa. -26.216.193.62.in-addr.arpa. -ajax.googleapis.com. -10.190.119.79.in-addr.arpa. -twitter.com. -youtube.com. -api.twitter.com. -profile.ak.fbcdn.net. -www.woozworld.com. -www.ashtead-technology.com. -tmss.trendmicro.com. -233.57.132.190.in-addr.arpa. -208.16.10.201.in-addr.arpa. -ar-ar.facebook.com. -www.oemdirtbikeparts.com. -init.ess.apple.com. -download4.dreamstime.com. -www.facebook.com. -igreen.net. -g14755.chrome.funnygames.org. -glennloomis.tcaps.net. -www.discovirtual.com.ar. -healtubgrant.com. -sovereigngroup.com. -monpetitmoment.blogspot.com. -spacingmontreal.ca. -fexea.com. -30.83.111.189.in-addr.arpa. -m.youtube.com. -www.gotibia.com. -photos-d.ak.fbcdn.net. -legatarm.in. -checkip.dyndns.com. -assuredenvironments.com.s9a1.psmtp.com. -i1.ytimg.com. -www.hotelpiacenza.com. -crl.verisign.com. -a.root-servers.net. -. -help.trillian.im. -v4.sftcdn.net. -pixel.quantserve.com. -api.twitter.com. -www.google.com. -worldoflya.blogspot.com. -apis.google.com. -hud93j8wi.47lv. -165.191.10.187.in-addr.arpa. -voxcast.oyunlar1.com. -www.gamer.ne.jp. -www.pinklolita.com.br. -81.24.23.187.in-addr.arpa. -a.ads2.msads.net. -s-static.ak.fbcdn.net. -100.187.58.186.in-addr.arpa. -facebook.conduitapps.com. -itd.pns.com.my. -www.celeb-king.com. -graph.facebook.com. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -static.ak.fbcdn.net. -www.msftncsi.com. -reomobile.com. -19.224.171.69.in-addr.arpa. -2.0.168.192.in-addr.arpa. -www.egos.co.za. -platform.twitter.com. -174.193.166.81.in-addr.arpa. -server-6.reportgoogle.com. -www.google.com. -fonts.googleapis.com. -hgarden.org.2.0001.arsmtp.com. -b.scorecardresearch.com. -pda-bes.amazon.com. -a.root-servers.net. -38.109.223.189.in-addr.arpa. -ad-g.doubleclick.net. -adwhirllb-473732162.us-east-1.elb.amazonaws.com. -time.nist.gov. -www.youtube.com. -60.247.212.89.in-addr.arpa. -i.ebayimg.com. -profile.ak.fbcdn.net. -96.32.88.69.in-addr.arpa. -pixel.facebook.com. -mail.disqus.net. -s-static.ak.fbcdn.net. -mva.oryol.ru. -config.conduitapps.com. -www.scootergalleri.dk. -forum.kijiji.ca. -a8.sphotos.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -minduertex.com. -bleedingespresso.com. -245.102.55.157.in-addr.arpa. -americanmaint.net. -www.yohandry.com. -www.carspluscash.com. -bit.ly. -api.twitter.com. -it-it.facebook.com. -photos-e.ak.fbcdn.net. -44.140.173.114.in-addr.arpa. -api.twitter.com. -lighbound.com. -i.ytimg.com. -anubis.iseclab.org. -accountservices.msn.com. -facebook.com. -corp.iminent.com. -44.228.171.69.in-addr.arpa. -tonio.com. -www.quelocura.net. -108.175.235.190.in-addr.arpa. -56.248.159.110.in-addr.arpa. -presents.lolapps.com. -21.36.182.189.in-addr.arpa. -197.206.229.189.in-addr.arpa. -www.msftncsi.com. -netflix887.pop3.la.nflximg.com.edgesuite.net. -northfox.uw.hu. -sammrat.com. -a.root-servers.net. -cdn.plugrush.com. -d2057192.instant.xoom.it. -www.theliquidateher.com. -newsrss.bbc.co.uk. -179.29.52.83.in-addr.arpa. -photos-b.ak.fbcdn.net. -rcp.na.blackberry.com. -238.91.139.98.bl.spamcop.net. -www.div3x.com. -fls.doubleclick.net. -3ie33cpgj6dhi-c.c.yom.mail.yahoo.com. -groups.google.com.mx. -misrmedical.com. -megadresses.com. -info.yahoo.com. -ml.fb.telaxo.com. -76.186.137.189.in-addr.arpa. -www.bywifi.com. -nokec.nkz.ru. -koreanair.com. -swa.mail.ru. -70.146.38.77.in-addr.arpa. -www.sublimepussy.com. -omp1039.mail.ird.yahoo.com. -photos-c.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -angel-dark.ps.ztod.com. -a.root-servers.net. -ari-texelectric.net. -store.widdit.com. -gfx8.hotmail.com. -www.hoygan.info. -nazer26.blogspot.com. -www.eknigu.org. -ad-emea.doubleclick.net. -www.fjhuari.com. -www.kibagames.com. -a1407.phobos.apple.com. -351.coll.ning.com. -login.live.com. -www.domainmastertools.com. -m1.zedo.com. -notifam.net. -levenger.com. -s1-powerpoint.vo.msecnd.net. -foreca.palmaryservice.com. -a4.sphotos.ak.fbcdn.net. -www.bloomberg.co.jp. -wa7edzah2an.blogspot.com. -us-w1.rockmelt.com. -hotmail.com. -128.201.36.186.in-addr.arpa. -d2059982.instant.xoom.it. -29.219.23.186.in-addr.arpa. -api.twitter.com. -a1.sphotos.ak.fbcdn.net. -97.95.78.190.in-addr.arpa. -74819mailb.com. -www.mydarkcirclesblog.com. -dsn9.d.skype.net. -services.addons.mozilla.org. -a.root-servers.net. -a.root-servers.net. -altayvitamin.com. -4wc24wv8u.68sg. -billing.sharo4ka.ru. -47.149.220.66.in-addr.arpa. -ecn.dev.virtualearth.net. -ocsp.digicert.com. -91.169.214.201.in-addr.arpa. -static.ak.fbcdn.net. -api.facebook.com. -233.90.55.65.bl.spamcop.net. -searchclient.live.net. -53.98.122.212.in-addr.arpa. -books.google.com. -farforest.btinternet.com. -88.76.74.189.in-addr.arpa. -www.mobileboner.com. -gallys.nastydollars.com. -seeyourimpact.org. -islam.maktoob.com. -www.mrskincdn.com. -19.223.203.81.in-addr.arpa. -kleyt.ru. -127.0.0.1. -www.google.com. -_261_67_3. -61.212.141.201.in-addr.arpa. -worldofenglish.com. -icode.renren.com. -a1.sphotos.ak.fbcdn.net. -highgate.k12.vt.us. -pixel.facebook.com. -chat2.doook.com. -celeberitypictures.blogspot.com. -cdn1.s.saboom.com. -static.ak.fbcdn.net. -et9.xhamster.com. -safebrowsing.clients.google.com. -evsecure-ocsp.verisign.com. -twister.nyroc.rr.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -4.189.173.189.in-addr.arpa. -twobyhomes.com. -3.170.158.157.in-addr.arpa. -miconstruct.com.au. -leglue.com. -119.50.0.10.in-addr.arpa. -mypixcontest.cotssl.net. -igoogle.ca. -57.11.53.201.in-addr.arpa. -boomers.com. -pixel.facebook.com. -yeee.com. -t3.gstatic.com. -eventomundial.com. -regallen.files.wordpress.com. -telecomllc.net. -stribling.com. -offcars.blogspot.com. -ir.ebaystatic.com. -photos-b.ak.fbcdn.net. -ns4.rambler.ru. -ads.handycafe.com. -rad.msn.com. -. -api.twitter.com. -www.google.com. -creative.ak.fbcdn.net. -profile.ak.fbcdn.net. -xv3uyxra3.70jq. -developers.facebook.com. -161.221.52.201.in-addr.arpa. -www.losfotologs.com. -home.mywebsearch.com. -156.185.138.189.in-addr.arpa. -a995.mm1.akamai.net. -a.root-servers.net. -www.googletagservices.com. -a.root-servers.net. -www.mafiavirtual.com.ar. -ferchillgroup.com. -www.theaudiophile.net. -mail.nycap.rr.com. -yahoo.com. -a.root-servers.net. -142.56.151.187.in-addr.arpa. -rad.msn.com. -www.youtube-nocookie.com. -nlh.nl.ca. -pixel.33across.com. -market.android.com. -37.165.149.187.in-addr.arpa. -184.39.32.189.in-addr.arpa. -box2.pc51.com. -api.applifier.com. -tour.cinamuse.com. -www.bywifi.com. -belarus.by.com. -cyclonecom.com. -111.105.104.189.in-addr.arpa. -profile.ak.fbcdn.net. -91.184.239.189.in-addr.arpa. -lhsystems.hu. -torrentz.eu. -www.ibervideos.es. -mail.cmc-jobs.com. -193.244.68.66.in-addr.arpa. -yahoo.ca. -65.206.166.81.in-addr.arpa. -s-static.ak.facebook.com. -dnl-01.geo.kaspersky.com. -metronorthnews.com. -illiweb.com. -etzatlan.mundoanuncio.com.mx. -41.193.183.24.in-addr.arpa. -www.camelback.net. -fbcdn-sphotos-a.akamaihd.net. -a.root-servers.net. -169.110.50.190.in-addr.arpa. -79.240.47.114.in-addr.arpa. -alt2.gmail-smtp-in.l.google.com. -black-byte.com. -elonigiri.blogspot.com. -214.165.10.187.in-addr.arpa. -157.10.40.196.in-addr.arpa. -www.cylex.com.co. -news.l.google.com. -photos-f.ak.fbcdn.net. -nicola.com.s8b2.psmtp.com. -11.rarbg.com. -abacus.tumblr.com. -tr.y8.com. -ad.reachjunction.com. -200.137.106.186.in-addr.arpa. -www.conclavist.com. -hotmail.com. -www.facebook.com. -155.98.193.82.in-addr.arpa. -www.panasiabeauty.com. -132.182.168.192.in-addr.arpa. -content.yieldmanager.edgesuite.net. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -i2.ytimg.com. -media.trafficjunky.net. -www.globalbx.com. -relay2.elcom.ru. -a4.sphotos.ak.fbcdn.net. -www.alignment2012.com. -c.prodigy.msn.com. -mail4.bizland-inc.net. -d2090520.xoom.it. -profile.ak.fbcdn.net. -cjmoto.com. -mail.hhicorp.com. -iwkwhuplspkkpmbc.info. -www.zentosa.com. -photos-h.ak.fbcdn.net. -datavis.com.inbound15.mxlogic.net. -star.facebook.com. -clients1.google.com. -a.root-servers.net. -198.78.162.31.in-addr.arpa. -167.190.51.190.in-addr.arpa. -rospres.com. -dbupd281f.u94d5u6c. -profile.ak.fbcdn.net. -www.desirablebody.co.uk. -cheezburger.com. -pontodefuga.deviantart.com. -165.93.188.186.in-addr.arpa. -laclasedetercero-carmen.blogspot.com. -bit.ly. -cdn.content.sweetim.com. -googleads.g.doubleclick.net. -www.sosoni.com. -voipc.sip.yahoo.com. -27.57.59.186.in-addr.arpa. -www.thestrapsmith.com. -c2.glitch.bz. -www.hotel-s.es. -plus.google.com. -pagead2.googlesyndication.com. -tlhenterprisesin.com. -www.uniongang.tv. -moneycontrol.net. -77.0.135.91.in-addr.arpa. -www.youtube.com. -a114.w23.akamai.net. -a-1imaging.com. -livel.co.uk. -74.47.51.203.in-addr.arpa. -bmi-md.com. -istana.ru. -aus2.mozilla.org. -144.136.173.187.in-addr.arpa. -static.ak.fbcdn.net. -t3.gstatic.com. -fra01-video4-2.justin.tv. -67.33.215.108.in-addr.arpa. -chahue.umar.mx. -www.kaskus.com. -ent.163.com. -sun-garden.ch. -a.root-servers.net. -photos-c.ak.fbcdn.net. -station.com. -www.marias-santafe.com. -pemper.sulit.com.ph. -87.148.59.199.in-addr.arpa. -forotopeleven.forofutbol.biz. -issue2.show-star.biz. -aloha.viber.com. -g.ceipmsn.com. -gualtiero.com. -www.webactus.net. -ocsp.godaddy.com. -photos-g.ak.fbcdn.net. -t.co. -ksn1.kaspersky-labs.com. -54.62.201.187.in-addr.arpa. -teredo.ipv6.microsoft.com. -ads17056.hotwords.es. -api-read.facebook.com. -www.youtube.com. -157.70.111.189.in-addr.arpa. -www.backgroundsforpowerpoint.net. -117.34.84.200.in-addr.arpa. -s1.assets.howtospendit.com. -feedback.weather.com. -st.chatango.com. -api18.thetrafficstat.net. -img693.imageshack.us. -pagead2.googlesyndication.com. -a.root-servers.net. -www.cineplane.com. -www.nsfcentc.org. -dr._dns-sd._udp.lan. -a.root-servers.net. -www.montealban.org.mx. -www.google-analytics.com. -121.58.255.201.in-addr.arpa. -www.google.com. -155.11.0.192.in-addr.arpa. -a.hikebike.gpsies.com. -www.nguys.com. -132.191.145.187.in-addr.arpa. -a.root-servers.net. -229.78.93.76.in-addr.arpa. -i49.host%20no%20permitido. -38.143.253.159.in-addr.arpa. -mbc-law.com. -imageup.liveasianwebcams.com. -www.rosadesaron.net. -www.industriasvargas.com. -www.google-analytics.com. -www.hassinen.eu. -www.rbs.co.uk. -a.root-servers.net. -www.mujeres-guapas.com. -a3.sphotos.ak.fbcdn.net. -www.materialmontessori.com. -fetch.yixingguanggao.trendcr002.com. -vjzyuqpqq.k88x1x3f.domain.name. -incub.ru. -api.zynga.com. -www.facebook.com. -i1.ytimg.com. -a7.sphotos.ak.fbcdn.net. -inbound.markfrink.com.netsolmail.net. -140.61.142.186.in-addr.arpa. -_055_03_6. -ksn1-11-part2.kaspersky-labs.com. -photos-d.ak.fbcdn.net. -154.71.43.208.in-addr.arpa. -secure.quamm.net. -golf-tees-story.info. -svr4.hotweb.dk. -103.19.253.190.in-addr.arpa. -amer.rel.msn.com. -i.ytimg.com. -comdpx01.banacol.com.co. -154.179.199.213.in-addr.arpa. -creative.ak.fbcdn.net. -cascaderaft.com. -41.222.37.174.in-addr.arpa. -airwis.com. -246.231.38.189.in-addr.arpa. -www.grannyflash.com. -253.66.31.180.in-addr.arpa. -a.root-servers.net. -directory.services.live.com. -www.blogextremo.com. -231.157.74.187.in-addr.arpa. -56.13.91.2.in-addr.arpa. -www.sinhogar.org. -bff-games.com. -10.53.74.187.in-addr.arpa. -css.wlxrs.com. -www.cyberstep.com. -blog.sina.com.tw. -a5.sphotos.ak.fbcdn.net. -www.google.es. -fuyagil.blogspot.com. -www.web-site-scripts.com. -11.176.253.189.in-addr.arpa. -175.22.158.189.in-addr.arpa. -mail.modernspanish.com. -patolinx.files.wordpress.com. -www.empleosh.co. -www.facebook.com. -s-static.ak.fbcdn.net. -a.root-servers.net. -google.com. -fr-fr.facebook.com. -sky.766.com. -photos-c.ak.facebook.com.edgesuite.net. -i2.ytimg.com. -bing.com. -bluelaguna.net. -files.myopera.com. -mail.thethinkpad.com. -s2.youtube.com. -a.root-servers.net. -mail.foxrunorchardpark.com. -ads.tlvmedia.com. -125.53.54.85.in-addr.arpa. -cdn.thefreshxpress.com. -photos-e.ak.fbcdn.net. -plus.google.com. -dc341.4shared.com. -perumusic-entreteiment.blogspot.com. -twitter.com. -www.birdclipart.com. -www.google.com. -a.root-servers.net. -a6.sphotos.ak.fbcdn.net. -developers.facebook.com. -121.245.19.204.in-addr.arpa. -www.adobe.com. -waterworth.org.uk. -ad.clickotmedia.com. -sport1hbl.neopoly.com. -40.34.254.165.in-addr.arpa. -platform.twitter.com. -mail.topshelf-construction.com. -craftworkinc.com.inbound15.mxlogic.net. -8kcj2ge41.36hi. -119.49.87.121.in-addr.arpa. -www.laiting.com. -www.fjx.co.jp. -a.root-servers.net. -accounts.google.com. -polaris.vo.llnwd.net. -books.google.com. -mvcdmirror.webasyst.net. -cdn.rockyou.com. -schoedon.nl. -mx.mg4.mail.yahoo.com. -a.root-servers.net. -mail.realprof.ru. -runic.ru. -www.recettes-de-cuisine-de-chef.fr. -photos-b.ak.fbcdn.net. -a.espncdn.com. -haring.com. -wzipkkjry.z22o1s3b. -www.sikharchives.com. -foreverwrap.net. -o1.t26.net. -www.facebook.com. -250.10.134.189.in-addr.arpa. -titofilm.com. -static.ak.fbcdn.net. -historia-sf.blogspot.com. -160.31.152.189.in-addr.arpa. -a.root-servers.net. -www.fictionratings.com. -www.library.mohdy.com. -e-olam.com. -ihiar9aj:.45rx. -drainc.net. -ja.wikipedia.org. -jazzartistas.com. -226.95.18.190.in-addr.arpa. -external.ak.fbcdn.net. -97.214.188.189.in-addr.arpa. -nexdimension.net. -i3.ytimg.com. -a.root-servers.net. -www.shiloh-fernandez.com. -pt-br.facebook.com. -dc417.4shared.com. -14.249.122.84.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -ecom.be. -www.myriahsbazaar.com. -k4:7jxg9m.t76l9a0e. -174.26.34.156.in-addr.arpa. -phox.de. -www.msn.com. -d2060676.instant.xoom.it. -ae.adserver.yahoo.com. -dns.msftncsi.com. -a.root-servers.net. -bbswefong.myweb.hinet.net. -153.127.4.31.in-addr.arpa. -mail.airschool.ru. -content.yieldmanager.edgesuite.net. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -html.rincondelvago.com. -242.47.137.190.in-addr.arpa. -169.36.80.69.in-addr.arpa. -banners.point2.com. -a.root-servers.net. -212.242.142.187.in-addr.arpa. -www.google.com. -www.facebook.com. -ntp1.dlink.com. -6tsgsc1y7.78ct. -www.youtube-nocookie.com. -217.124.93.178.in-addr.arpa. -mail.production-systems.com. -profile.ak.fbcdn.net. -125.134.255.201.in-addr.arpa. -youtube-global.blogspot.com. -www.msftncsi.com. -www.reunion-parcnational.fr. -cdn.api.twitter.com. -static2.shufuni.com. -35.154.165.83.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -www.aljahraa.com. -l.yimg.com. -210.53.176.190.in-addr.arpa. -transfer.ivwbox.de. -api-read.facebook.com. -blogergadgets.googlecode.com. -www.linkedin.com. -m.google.com. -mozilla.cdn.leaseweb.com. -adserver.adtechus.com. -shirgie-story.blogspot.com. -243.13.53.186.in-addr.arpa. -search.yahoo.com. -209.185.204.112.in-addr.arpa. -212.209.32.174.in-addr.arpa. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.rhythmism.com. -montreal.stepbystep.com. -220.78.167.78.in-addr.arpa. -www.joomfactory.com. -127.75.163.189.in-addr.arpa. -creative.ak.fbcdn.net. -www.youtube.com. -s0.2mdn.net. -www.facebook.com. -a1650.g.akamai.net. -mx02.realvestcorp.com. -buyback.letsbuy.com. -board.u18chan.com. -a6.sphotos.ak.fbcdn.net. -pfifilter.com. -imguser.pandora.tv. -flamenco.com. -gfx1.hotmail.com. -qlibykkydx.info. -www.hydroasis.com. -t.co. -south-park-super-mario-bros.softonic.com. -63.131.144.189.in-addr.arpa. -www.italiannis.com. -akteamsters.com.s8a1.psmtp.com. -wwwimages.adobe.com. -www.nightmarefactory.com. -98.50.224.88.in-addr.arpa. -ut5.xhamster.com. -static.ak.fbcdn.net. -a1343.phobos.apple.com.edgesuite.net. -webeffective.keynote.com. -clipartspot.net. -a.root-servers.net. -profile.ak.fbcdn.net. -209.154.86.201.in-addr.arpa. -www.google.com. -mail1.sig.com. -mp3muffin.com. -waps.net. -hi-in.facebook.com. -0123456789nonexistent.corn. -lindsayhuffman.tumblr.com. -clients1.google.com. -photos-e.ak.fbcdn.net. -www.bhbenz.com. -www.cheapcoachmall.com. -photos-c.ak.fbcdn.net. -www.google.com. -ocsp.thawte.com. -csscript.com. -trinitycatering.com.inbound10.mxlogicmx.net. -config.acc.sogou.com. -petshop.teamlava.com. -photos-a.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -www.update.microsoft.com. -111.251.113.186.in-addr.arpa. -accountservices.msn.com. -55.44.100.190.in-addr.arpa. -222.125.69.190.in-addr.arpa. -pagesinxt.com. -126.0.202.87.in-addr.arpa. -atenas-librosyenciclopedias.espacioblog.com. -ukravto.kiev.ua. -db._dns-sd._udp.0.234.168.192.in-addr.arpa. -p15-buy.itunes.apple.com. -photos2.hi5.com. -216.199.182.189.in-addr.arpa. -external.ak.fbcdn.net. -woho-nails.blogspot.com. -z8bt1wxv4.y35c9z6g. -chromejs.s3.amazonaws.com. -www.lingeriebbwtgp.com. -a6.sphotos.ak.fbcdn.net. -dns.msftncsi.com. -www.cristoparalasnaciones.com. -ema-2009.mtvnimages.com. -checkip.dyndns.org. -www.amateurdumper.com. -mariaeugeniasandin.blogspot.com. -herring.south-west-water.co.uk. -tag.admeld.com. -www.elnuevodiario.com.ni. -www.supercars.com. -60.255.253.77.in-addr.arpa. -www.bywifi.com. -tuvlnqzjy.75nq. -253.99.52.186.in-addr.arpa. -106.255.34.177.in-addr.arpa. -pathofgrowth.altervista.org. -vwebhost.com. -i4.ytimg.com. -201.62.159.189.in-addr.arpa. -ads.smowtion.com. -s02.s3c.es. -ve.starmedia.com. -249.77.3.181.in-addr.arpa. -alias.cyberpass.net. -khairul-syahir.com. -connect.facebook.net. -connect.facebook.net. -www.google.com. -webassets3.sparkybee.com. -netusa1.net. -c.atdmt.com. -code.jquery.com. -google.com. -platform.twitter.com. -www.abchoy.com.ar. -www.flasharcade.com. -a2.sphotos.ak.fbcdn.net. -181.9.23.67.zen.spamhaus.org. -cn1.kaboodle.com. -www.facebook.com. -a.root-servers.net. -promoscopio.com. -im10.gulfup.com. -api.search.us-west-1.iminent.com. -www.derechoteca.com. -photos-e.ak.fbcdn.net. -s.mobclix.com. -a.root-servers.net. -tr.y8.com. -api.twitter.com. -www.addonsnetwork.com. -client-software.real.com. -s.youtube.com. -www.iamburaot.com. -wellfed.net. -teredo.ipv6.microsoft.com. -ac2farm.ign.com. -136.198.242.201.in-addr.arpa. -auersteel.com.s7a2.psmtp.com. -static.ak.fbcdn.net. -a.root-servers.net. -toolbar.skype.com. -www.facebook.com. -www.facebook.com. -graph.facebook.com. -wooff1.com. -edge.quantserve.com. -musicaserver5.info. -img.mediaplex.com. -fbcdn-profile-a.akamaihd.net. -233.16.61.128.in-addr.arpa. -static.ak.fbcdn.net. -a.root-servers.net. -www.google-analytics.com. -a.root-servers.net. -casa.univision.com. -www.consejodehombresbuenos.es. -worldofbraiding.wordpress.com. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -emptydream.tistory.com. -usd.de.fx-exchange.com. -www.facebook.com. -uvuhwxanqn.com. -_954_98_1. -www.gstatic.com. -firststringent.com. -photos-f.ak.fbcdn.net. -vcs2.msg.yahoo.com. -www.body-perfect-fitness.com. -u20.eset.com. -nray.ru. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -counter.yadro.ru. -loading321.com. -www.youtube. -blogdelectoescritura.blogspot.com. -136.158.48.65.in-addr.arpa. -photos-a.ak.fbcdn.net. -img-cdn.mediaplex.com. -a4.da1.akamai.net. -salud.latam.msn.com. -i3.ytimg.com. -apis.google.com. -i2.ytimg.com. -www.bizar-media.com. -dtboot.orbitdownloader.com. -b-0.19-a3008089.11481.1518.19d4.3ea1.210.0.lrvg7fljw5s2ze5phskpfk98jb.avqs.mcafee.com. -livefiles19.vo.msecnd.net. -44.195.117.121.in-addr.arpa. -s1-word-edit.vo.msecnd.net. -60.11.11.186.in-addr.arpa. -mx3.axiomainc.com. -time.nist.gov. -hif.wikipedia.org. -mi.hsbc.com.hk. -b.scorecardresearch.com. -mail.elbosco.ru. -www.trouvelamour.com. -usoakf01.pr-ury.pr-rcsa.org. -benefitcorp.com.mx3.viyu.rcimx.net. -encheres.nouvelles-frontieres.fr. -sports.gaeatimes.com. -sz4.tencent.com. -by153w.bay153.mail.live.com. -www.googleadservices.com. -v3.lscache5.googlevideo.com. -www.facebook.com. -fbcdn-sphotos-a.akamaihd.net. -qzone-music.qq.com. -www.breakeven.org. -a1092.g.akamai.net. -mta6.am0.yahoodns.net. -rmgelectrical.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.crazywisdomthemovie.com. -www.slate.com. -mijuchipila.com. -238.191.236.77.in-addr.arpa. -facial-neuralgia.org. -www.googleadservices.com. -118.158.13.189.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -um14.eset.com. -ppp85-140-31-73.pppoe.mtu-net.ru. -194.231.90.74.in-addr.arpa. -download.windowsupdate.com. -margu5.galeon.com. -dasolutions.us. -www9.effectivemeasure.net. -prod.rest-core.msg.yahoo.com. -www.moneyville.ca. -mobileage.com. -i4.ytimg.com. -www.google-analytics.com. -i4.tagstat.com. -s-static.ak.fbcdn.net. -sakura.japanphilly.org. -agestado.com.br. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -musifthiasno.tm. -109.40.237.189.in-addr.arpa. -www.youtube.com. -a.root-servers.net. -www.noticias-de-hoy.com. -conquistar-al-hombre.info. -www.luerzersarchive.net. -136.45.128.189.in-addr.arpa. -mail.ci.lynn.ma.us. -3g.quick.com. -i4.ytimg.com. -photos-b.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -giglogo.com. -113.72.219.201.in-addr.arpa. -www.strengthcoach.com. -websitesmakeover.com. -www.google-analytics.com. -www.cuc.edu.co. -tinyurl.com. -smtp.electricpenis.com. -plusone.google.com. -pioneerbuildersinc.com. -fr.wikinews.org. -125.132.205.190.in-addr.arpa. -160.107.201.190.in-addr.arpa. -10.112.46.196.in-addr.arpa. -167.32.1.181.in-addr.arpa. -www.facebook.com. -15.209.19.186.in-addr.arpa. -www.dvdvideosoft.com. -sns.nskes.ru. -174.0.159.189.in-addr.arpa. -db._dns-sd._udp.0.10.168.192.in-addr.arpa. -www.mercurytheatre.info. -api.facebook.com. -73.234.130.41.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -spam.dixie.edu. -google.com. -csi.gstatic.com. -my248nqay.l83x5m5n. -thunder-nba.com. -adedy.com. -graph.facebook.com. -diana.dti.ne.jp. -559.coll.ning.com. -a771.da1.akamai.net. -168.8.31.88.in-addr.arpa. -niaeeq.com. -177.8.41.201.in-addr.arpa. -teredo.ipv6.microsoft.com. -a8.sphotos.ak.fbcdn.net. -dingtao333.3322.org. -h1.flashvortex.com. -s.youtube.com. -inbound.thepentadgroup.com.netsolmail.net. -a.root-servers.net. -didier.longueville.free.fr. -mundomatematicas.blogspot.com. -tdandh.com. -a.root-servers.net. -profile.ak.fbcdn.net. -twitter.com. -www.downloadhelper.net. -aol.com. -21.45.4.186.in-addr.arpa. -sb-ssl.google.com. -circavintageclothing.com.au. -a3.sphotos.ak.fbcdn.net. -chronicleholic.wordpress.com. -239.2.30.186.in-addr.arpa. -a1.mzstatic.com. -subwaynw.com. -a.root-servers.net. -bayertechnology.com. -fxfeeds.mozilla.com. -_594_48_2. -a995.mm1.akamai.net. -a3.sphotos.ak.fbcdn.net. -www.googleadservices.com. -176.203.239.189.in-addr.arpa. -41.158.220.66.in-addr.arpa. -i2.ytimg.com. -166.100.79.189.in-addr.arpa. -70.83.101.189.in-addr.arpa. -connect.facebook.net. -14.174.210.201.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.yousaytoo.com. -redir.uol.com.br. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -76.153.231.67.in-addr.arpa. -www.dish.com.mx. -a.root-servers.net. -mail.abodehome.com. -iveracity.com. -teredo.ipv6.microsoft.com. -167.36.153.24.in-addr.arpa. -sr01-sf02.stratixcorp.com. -118.4.93.186.in-addr.arpa. -www.carsampaf.org. -ar.myspace.com. -www.bing.com. -smtp3.intermedia.net. -zzkn5k1t9.80eg. -cgw.download.nokia.com. -sapopositivevibes.podomatic.com. -185.122.250.190.in-addr.arpa. -kayros.com.ar. -translate.googleapis.com. -p0b.ru. -ads1.msads.net. -18.128.135.117.in-addr.arpa. -60.210.129.186.in-addr.arpa. -feeds.bbci.co.uk. -safebrowsing-cache.google.com. -teredo.ipv6.microsoft.com. -s10.histats.com. -137.35.138.220.in-addr.arpa. -ca.idoget.me. -geogebreando.blogspot.com. -agromex.de. -i.w55c.net. -195.212.139.98.dnsbl.sorbs.net. -2cb3g5w24.j01g2r7u. -safebrowsing-cache.google.com. -diccionario.babylon.com. -acercadeorange.orange.es. -rainhaecuckold.blogspot.com. -fbcdn-photos-a.akamaihd.net. -pop001.masterhost.ru. -photos-e.ak.fbcdn.net. -profile.ak.fbcdn.net. -2.pool.ntp.org. -www.dogtipper.com. -www.auditionsfinder.com. -67.139.210.201.in-addr.arpa. -a1764.phobos.apple.com. -www.startopnews.com. -194.29.95.201.in-addr.arpa. -b.scorecardresearch.com. -encinerados.blogspot.com. -1.bp.blogspot.com. -www.jamacareercenter.com. -terralliance.com.2.0001.arsmtp.com. -233.63.170.201.in-addr.arpa. -a998.mm1.akamai.net. -iphone-ld.apple.com. -datatrakpharmaceuticals.com. -paperwise.com.1.0001.arsmtp.com. -briz.com.ru. -www.dahotre.com. -_389_87_1. -a.root-servers.net. -wpad. -sinbad.se. -mailgate1.royalchacehotel.co.uk. -central.cardomain.com. -suggest.infospace.com. -www.hardsextube.com. -apps.facebook.com. -google.com. -www.facebook.com. -31.167.252.190.in-addr.arpa. -a1.s6img.com. -profile.ak.fbcdn.net. -rbsmail.rutgers.edu. -ijet.com. -www.casinoesdinero.com. -9to5mac.com. -pjgitnik.com. -www.edsitement.neh.gov. -caserver.china.huawei.com. -s1-excel.vo.msecnd.net. -developers.facebook.com. -a5.sphotos.ak.fbcdn.net. -evsecure-ocsp.verisign.com. -inbound.prix.com.netsolmail.net. -search.twitter.com. -streetlegal.co.uk. -sites.google.com. -www.blogger.com. -socpixel.bidsystem.com. -ticker.conduit.com. -unb.ca. -185.215.52.186.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -r._dns-sd._udp.lan. -facemoods.com. -www.google.com. -antiplaneta.ru. -qorpak.com.s7a2.psmtp.com. -twitter.com. -22flowavenue.com. -konntiwa.ranks1.apserver.net. -secure.smflorida.com. -digitaldatatrust.com. -174.250.102.201.in-addr.arpa. -148.88.92.186.in-addr.arpa. -profile.ak.fbcdn.net. -www.google-analytics.com. -89.168.184.111.in-addr.arpa. -44.28.138.187.in-addr.arpa. -jameique.com. -d2102520.xoom.it. -powerclip.ru. -a1404.w41.akamai.net. -www.michalkotek.com. -160.225.42.177.in-addr.arpa. -thebrothersz.com. -photos-g.ak.fbcdn.net. -dns.msftncsi.com. -foro.naruto-fans.net. -12.224.171.69.in-addr.arpa. -it-it.facebook.com. -bios-repair.co.uk. -ads2.msads.net. -profile.ak.fbcdn.net. -s.youtube.com. -www.konami-pes2011.com. -www.facebook.com. -www.gaybcn.com.ar. -maslibres.org. -tools.google.com. -tucodigo.mx. -mothernewyork.com. -khm1.google.com. -76.143.140.190.in-addr.arpa. -omp1057.mail.ne1.yahoo.com. -. -www.jamestaylor.com. -i2.ytimg.com. -a3.da1.akamai.net. -evsecure-ocsp.verisign.com. -www.dietpillrating.com. -time.chttl.com.tw. -dl.qt.nokia.com. -aserver.jp.ru. -www.facebook.com. -img.mexat.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -110.106.53.75.in-addr.arpa. -www.update.microsoft.com. -update.wildtangent.com. -76.216.152.85.in-addr.arpa. -agebottom.com. -www.google.com. -211.2.0.192.in-addr.arpa. -124.89.156.189.in-addr.arpa. -pixel.quantserve.com. -a6.sphotos.ak.fbcdn.net. -landing.widdit.com. -vaughanrealtors.com. -evsecure-crl.verisign.com. -kdc.uas.aol.com. -damagents.com.inbound30.mxlogicmx.net. -developers.facebook.com. -api.conduit.com. -umfa.ca. -photos-h.ak.fbcdn.net. -rz4:eo8vt.i20i9r3a. -p.twimg.com. -hotmail.com. -pop3.live.com. -146.208.94.190.in-addr.arpa. -haptonstahl.org. -s-static.ak.fbcdn.net. -ar-ar.facebook.com. -136.86.163.189.in-addr.arpa. -voipb.sip.yahoo.com. -remote.wras.co.uk. -1zioube8g.24kh. -tw8:u6nq7.92bj. -cust20020-2.in.mailcontrol.com. -mail.crwf.com. -76.37.89.83.in-addr.arpa. -77.8.181.186.in-addr.arpa. -www.google.com. -cs11261.vk.com. -simages.artofthetrench.com. -data.flurry.com. -sitesbrasil.com. -149.96.155.81.in-addr.arpa. -i3.ytimg.com. -2.75.150.201.in-addr.arpa. -5.61.50.190.in-addr.arpa. -www.google.com. -mail.pcisynthesis.com. -photos-d.ak.fbcdn.net. -100.146.220.66.in-addr.arpa. -242.67.42.24.in-addr.arpa. -mail2.endosolutions.net. -a7.sphotos.ak.fbcdn.net. -1xbzfvc1l.p34f1h4z. -cs11125.vk.com. -www.sfdi.com. -shop.lenovo.com. -itunes.apple.com. -static.pkt.pl. -fuller-ve.com. -fotos.videochaterotico.com. -www.songstraducidas.com. -img1.blogblog.com. -siteground160.com. -ma90-r.analytics.edgesuite.net. -static.ak.fbcdn.net. -www.foxsportsla.com. -gab2.sub.ru. -8.65.173.190.in-addr.arpa. -www.hupo.com. -tracker.publicbt.com. -forums.land-and-sea.com. -www.trigosubs.org. -www.editorial.udg.mx. -th822.photobucket.com. -www.leadershipdigital.com. -benefitmall.com.s7a2.psmtp.com. -pixel.rubiconproject.com. -kayser-photography.com. -photos-g.ak.fbcdn.net. -a.root-servers.net. -jewelry-and-watches.become.com. -www.google.com. -www.satakore.com. -plus.google.com. -rec.eprice.it. -grics.net. -rs39tl2.rapidshare.com. -photos-e.ak.fbcdn.net. -www.nintendo.it. -a.root-servers.net. -cdn.fastclick.net. -167.180.236.81.in-addr.arpa. -blogverde.com. -marmidicarrara.com. -www.plusnetwork.com. -nissan-avtogrand.ru. -226.216.139.189.in-addr.arpa. -dns.msftncsi.com. -www.musicboxtheatre.com. -18.98.205.190.in-addr.arpa. -static.ak.fbcdn.net. -hotmail.com. -www.nemosvjerovat.com. -itunes.apple.com. -graph.facebook.com. -profile.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -39.180.250.88.in-addr.arpa. -www.silverpricepergram.net. -a1.mzstatic.com. -thriftmeblog.com. -www.chemicalelements.com. -profile.ak.fbcdn.net. -liveupdate.symantecliveupdate.com. -photos-f.ak.fbcdn.net. -mail7.digitalwaves.co.nz. -bigwheels.ru. -get.adobe.com. -mt0.google.com. -google.com. -cs5103.vkontakte.ru. -inca.com. -183.172.191.186.in-addr.arpa. -www.imdb.com. -lakhanijordan.com.2.0001.arsmtp.com. -www.bajadvd.com. -sip.gmail.com. -wext.ru. -droidexpyoudroid.appspot.com. -a8.sphotos.ak.fbcdn.net. -mail.appframeworks.com. -liveupdate.symantecliveupdate.com. -video.google.com.mx. -88.31.119.177.in-addr.arpa. -photos-b.ak.fbcdn.net. -199.140.175.187.in-addr.arpa. -perlasdelfutbol.blogspot.com. -pixel.facebook.com. -www.classicmarry.com. -carica.com. -external.ak.fbcdn.net. -mail.propanecentral.com. -www.fundacionorange.es. -www.cadeus.blogspot.com. -a.root-servers.net. -www.betajeux.com. -www.specwarnet.net. -partner.googleadservices.com. -stats.qalabs.symantec.com. -www.nicso.com.ar. -static.ak.fbcdn.net. -www.fmoriente.com.ar. -d15be99dzjsmyn.cloudfront.net. -www.camlive.com. -help.vestax.co.jp. -dns.msftncsi.com. -mail.kazan-n.ru. -dns.msftncsi.com. -triplexqueens.wordpress.com. -content.yieldmanager.edgesuite.net. -crl.microsoft.com. -cookex.amp.gapx.yahoodns.net. -www.facebook.com. -1.gravatar.com. -google.com.mx. -safebrowsing-cache.google.com. -www.bucorp.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-c.ak.fbcdn.net. -connect.facebook.net. -sp.cwfservice.net. -au.download.windowsupdate.com. -www.google.com. -photos-e.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -o1.t26.net. -kworp:25z.32gt. -a5.sphotos.ak.fbcdn.net. -norsk-data.com. -a2.sphotos.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -cdngw.ustream.tv. -mail.employeeconnect.com. -cnfg.toolbarservices.com. -a.root-servers.net. -q1byqqepe.r48x2g9y. -ads.adtiger.de. -s.ytimg.com. -tpb.tracker.thepiratebay.org. -static.ak.fbcdn.net. -www.facebook.com. -teredo.ipv6.microsoft.com. -197.68.7.189.in-addr.arpa. -65.61.166.184.in-addr.arpa. -a.ads2.msads.net. -googleads.g.doubleclick.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -db._dns-sd._udp.lan. -9.4.79.190.in-addr.arpa. -s7.chatango.com. -mx.ekipage.sp.ru. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -smtp3.masergy.com. -compassgroup-nad.com. -maps.google.com. -gmmxc.imr.gm.com. -hipay.com. -85.192.185.93.in-addr.arpa. -mx.studiolegalemarzano.com. -www.imss.gob.mx. -www.risk.net. -orcart.facebook.com. -branco.com.s9b1.psmtp.com. -i2.ytimg.com. -siteslegais.com. -atomic-vfx.com. -128.186.183.88.in-addr.arpa. -widgets.amung.us. -91.169.120.186.in-addr.arpa. -_492_16_1. -profile.ak.fbcdn.net. -gol.grosseto.it. -139.195.152.190.in-addr.arpa. -autos.yahoo.com. -32.171.160.187.in-addr.arpa. -cdn.toolstation.com. -maestrodelacomputacion.blogspot.com. -timmsmot.freeserve.co.uk. -65.227.193.190.in-addr.arpa. -digsin.com. -fjpoemas.soopbook.es. -static.ak.fbcdn.net. -static.ak.fbcdn.net. -mail4.emagister.com. -204.76.44.187.in-addr.arpa. -portugaltradicionalista.blogspot.com. -bluelfs.files.wordpress.com. -photos-f.ak.fbcdn.net. -divxrepair.softonic.com. -www.google.com. -a1513.oadz.com. -98b7nkh7s.h49e5t6e. -uniqsolutions.ru. -gdata.youtube.com. -photos-g.ak.fbcdn.net. -av1.ibm.com. -csi.gstatic.com. -www.setbook.org. -picasaweb.google.com. -assets3.castle.zgncdn.com. -a1402.w40.akamai.net. -static.adsender.us. -ksn1-11-part1.kaspersky-labs.com. -84.87.17.190.in-addr.arpa. -www.biglinks.com.br. -notify3.dropbox.com. -choose-language.ru. -www.facebook.com. -instagr.am. -hylinecruises.com.s7a1.psmtp.com. -mechel-bank-msk.ru. -a1726.b.akamai.net. -59.98.170.189.in-addr.arpa. -static.ak.fbcdn.net. -www.gamecompare.com. -42.90.233.213.in-addr.arpa. -92.12.52.186.in-addr.arpa. -xxzgfpxn8.25xx. -safebrowsing-cache.google.com. -sport.se.msn.com. -netflix360.pop3.la.nflximg.com.edgesuite.net. -vitoria.campusanuncios.com. -www.sensible.com. -medimax.org. -nats.seemybucks.com. -sp.cwfservice.net. -a.root-servers.net. -nikita.dod.ru. -utm9.apn.ask.com. -172.2.35.174.in-addr.arpa. -ads.intergi.com. -api.twitter.com. -static.ak.fbcdn.net. -www.lynxeffect.com. -photos-h.ak.fbcdn.net. -cdn59.atkingdom-network.com. -177.195.18.186.in-addr.arpa. -ssl.gstatic.com. -a995.mm1.akamai.net. -147.100.205.112.in-addr.arpa. -osterdowjones.net. -o.xbox.com. -protk.com.inbound15.mxlogic.net. -76.208.30.50.in-addr.arpa. -alliance1.com. -developers.facebook.com. -melodi.ru. -secureninja.com. -udg.com. -247.104.9.177.in-addr.arpa. -ad.doubleclick.net. -mail2.andreevsoft.ru. -www.belkin.com. -photos-a.ak.fbcdn.net. -ohxasi.com. -www.facebook.com. -lh3.ggpht.com. -7368656c6c.77696e646f7773.636f6d.80h4137e259.webcfs00.com. -tracker.istole.it. -www.seuatdigital.edu.mx. -ksn2-12.kaspersky-labs.com. -254.1.253.201.in-addr.arpa. -ads.wicked.com. -146.43.174.190.in-addr.arpa. -tomclemente.com. -_836_16_7. -109.229.2.173.in-addr.arpa. -googleads.g.doubleclick.net. -morehod.com. -cathotmail.com. -hotguitarist.com. -p0b.ru. -www.halosweet.com. -35.92.249.77.in-addr.arpa. -www.bitbest.ru. -mail.reefdevelopment.com. -static3.educaedu.com.mx. -129.129.140.189.in-addr.arpa. -adwhirllb-473732162.us-east-1.elb.amazonaws.com. -5.64.112.189.in-addr.arpa. -www.dragonflygame.com. -33.50.169.118.in-addr.arpa. -www.fanfarlo.com. -sp.cwfservice.net. -mgb.minutebuzz.com. -img1.imagilive.com. -224.241.191.89.in-addr.arpa. -profile.ak.fbcdn.net. -pixel.facebook.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -ar.voicefive.com. -karen. -www.sitc.ru. -164.60.0.10.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -www.bookclub.kodansha.co.jp. -217.224.48.60.in-addr.arpa. -emirnewusenglish.112.2o7.net. -eslprintables.ourtoolbar.com. -support.google.com. -222.206.195.187.in-addr.arpa. -172.77.37.46.in-addr.arpa. -ebookbrowse.com. -8.153.190.186.in-addr.arpa. -183.122.5.181.in-addr.arpa. -clients.sidesmedia.com. -urs.microsoft.com. -scfafsbfs.com. -monsterone.netease.net. -zh-cn.facebook.com. -tracker21.970dbf83-5db6-4e8f-9c50-678fcc4b29a3.automated.snxd.com. -www.pelislatino.com. -a.root-servers.net. -ajax.googleapis.com. -226.139.101.187.in-addr.arpa. -mail.lordflex.com. -yoghismo.org. -preppyplayer.blogspot.com. -teredo.ipv6.microsoft.com. -inbound.cai-value.com.netsolmail.net. -mail.eoffice-virtualassist.com. -www.autopenhosting.org. -www.adobe.com. -www.stopusa.be. -www.hotelnjoy.com. -blackstartube.com. -yahoo.com. -www.rugby.invescoperpetual.co.uk. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -theeconomist.com. -www.musica-online.org. -hi-in.facebook.com. -126.213.11.109.in-addr.arpa. -www.xtoolspro.com. -a1.da1.akamai.net. -80.89.145.64.in-addr.arpa. -www.vocibo.com. -im2.b.qq.com. -a8.sphotos.ak.fbcdn.net. -58.129.6.189.in-addr.arpa. -plusone.google.com. -multistreaminghost.com. -sn1msg1010831.gateway.messenger.live.com. -www.tagorormusic.com. -mail.impauto.com. -wron.net. -youtu.be. -i-69ee300c.us-east-1b.service.amazonsilk.com. -sender1.critsend.com. -a8.sphotos.ak.fbcdn.net. -158.23.130.181.in-addr.arpa. -rpc.ant.com. -api.nanigans.com. -a.root-servers.net. -photos-g.ak.fbcdn.net. -gimp.nl.softonic.com. -accugenix.com. -btopenworld.com. -s0.2mdn.net. -www.crocschile.cl. -arstravelgroup.com. -d2094296.xoom.it. -a.tribalfusion.com. -www.periodistasenlinea.org. -ib.adnxs.com. -www.alquz.com. -safebrowsing-cache.google.com. -lagrimasdescarcha.blogspot.com. -horsemart.co.uk. -gmail.com. -0.11-a30f6081.80410b1.1518.19d4.3ea1.410.0.61kaku9epkicp1kh283n94tccv.avqs.mcafee.com. -photos-h.ak.fbcdn.net. -www.google-analytics.com. -s.youtube.com. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -games.metaservices.microsoft.com. -www.html.am. -8888123.com. -tlk.tc. -mp3magic.ru. -api.bing.com. -static3.carsablanca.de. -time.windows.com. -53.107.170.189.in-addr.arpa. -254.55.153.81.in-addr.arpa. -242.175.28.187.in-addr.arpa. -photos-c.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -a.root-servers.net. -a3.sphotos.ak.fbcdn.net. -www.turtlemax.com. -otcopymadrid.wordpress.com. -90.23.191.186.in-addr.arpa. -blu.stj.s-msn.com. -profiles.google.com. -48-courier.push.apple.com. -freelaptops4you.net. -59.115.36.186.in-addr.arpa. -www.guittard.com. -api.search.iminent.com. -touch.facebook.com. -infoterra.com. -profile.ak.fbcdn.net. -beacon.shazam.com. -rustel.ru. -creative.ak.fbcdn.net. -flyvar28.33x.com. -ajax.googleapis.com. -ksn2-12.kaspersky-labs.com. -www.postcardchess.com. -es.answers.yahoo.com. -apps.facebook.com. -evsecure-crl.verisign.com. -tractors.com.sg. -c1.softonicads.com. -pixel.facebook.com. -feldchevrolet.com. -168.12.56.188.in-addr.arpa. -wweenvivo.com.mx. -64.189.59.186.in-addr.arpa. -www.iegallery.com. -photos-a.ak.fbcdn.net. -p07-keyvalueservice.icloud.com. -apps.skype.com. -a8.sphotos.ak.fbcdn.net. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -147.9.165.189.in-addr.arpa. -photos-b.ak.fbcdn.net. -www.expertosensalarios.com. -plus.google.com. -119.22.254.201.in-addr.arpa. -172.93.48.190.in-addr.arpa. -s1-excel.vo.msecnd.net. -fbcdn-profile-a.akamaihd.net. -a.rad.msn.com. -articulosinformativos.com.mx. -developers.facebook.com. -notepad2.en.softonic.com. -canvasli.com. -www.facebook.com. -mail.avrupaholding.com.tr. -www.igaymobile.com. -zpay.static.zynga.com. -kick.com. -mx.yahoo.com. -photos.end.com.ni. -ads5.speedbit.com. -gorna.net. -polar.dyndns.tv. -daricemichelle.com. -www.sumospeed.com. -www.aroundphilly.com. -189.142.149.189.in-addr.arpa. -75.28.168.192.in-addr.arpa. -www.tumejorindirecta.com. -servizi.tiscali.it. -assets2.castle.zgncdn.com. -a5.sphotos.ak.fbcdn.net. -134.16.132.187.in-addr.arpa. -www.lesbuan.com. -215.19.113.187.in-addr.arpa. -nextel.tv. -ie9cvlist.ie.microsoft.com. -www.metropolisweddingdress.com. -me1sifs30001.unilever.com. -42.204.15.187.in-addr.arpa. -194.176.22.190.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.kat.ph. -yahoo.co.uk. -api.yontoo.com. -profile.ak.fbcdn.net. -www.riegl.com. -bizarringa.blogspot.com. -217.163.139.110.in-addr.arpa. -adtech.habbo.com. -165.60.168.200.in-addr.arpa. -local. -www.ntteuropeonline.es. -bcmls2.glpals.com. -kimmymanga.deviantart.com. -weldstar.com. -eq.leadtrks.com. -idols-rock.blogspot.com. -pollstar.com. -www.visjonnorge.com. -www.dinsdoc.com. -www.facebook.com. -dns.msftncsi.com. -connect.facebook.net. -www.viacom.com. -platform.twitter.com. -180.97.0.190.in-addr.arpa. -info-depresion.blogspot.com. -invisiblemente.blogspot.com. -www.facebook.com. -a.root-servers.net. -photos-c.ak.fbcdn.net. -deimagenesnaruto.blogspot.com. -ad-g.doubleclick.net. -t3.gstatic.com. -google.com.mx. -connect.facebook.net. -www.revista-wicca.com.ar. -a.root-servers.net. -tap.rubiconproject.com. -www.facebook.com. -photos-b.ak.fbcdn.net. -www.papelenblanco.com. -nopalinaeuropa.com. -notaria93.com. -fourstaradvertising.com. -www.google.com. -login.bearshare.com. -sec-consulting.com. -130.108.182.175.in-addr.arpa. -a.root-servers.net. -maps.l.google.com. -enpathmedical.com. -cxi1asjvv.87iq. -a-0.19-3109e001.a040082.1518.19d3.36d4.210.0.nhhqd33j1qiwjll937r7qq7acv.avqs.mcafee.com. -a.root-servers.net. -searchclient.live.net. -audibleuk.tt.omtrdc.net. -www.pbk.org. -a17.x-traceur.com. -www.chatcasero.com. -zelenb.com. -mail.communityservicescouncil.ca. -services.tvkaista.fi. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -pixel.facebook.com. -www.textsrv.com. -www.arezzo.com.br. -0-jw-w.channel.facebook.com. -. -253.98.224.71.in-addr.arpa. -www.runescape-private-server.info. -bestworldprofit.com. -www.megacockcravers.com. -tripadvice.ru. -a.root-servers.net. -215.159.0.189.in-addr.arpa. -108.90.145.175.in-addr.arpa. -wpad. -profile.ak.fbcdn.net. -196.234.132.190.in-addr.arpa. -hotamatuermoms.com. -103.166.131.187.in-addr.arpa. -blackmetal.co.uk. -www.avimont.com. -uhzdkco1y.81th. -classic.weezer.com. -_643_82_0. -boosted.com. -67.185.164.189.in-addr.arpa. -r13.lhr14g01.c.youtube.com. -smtp.vallivue.org. -safebrowsing.clients.google.com. -rcp.na.blackberry.com. -c.atdmt.com. -sdafds.com. -economia.gob.mx. -rcxbgprpl.b58f1z0c. -42.148.126.186.in-addr.arpa. -108.226.82.81.in-addr.arpa. -s7.addthis.com. -206.14.235.123.in-addr.arpa. -smtp.uggc.com. -97.73.127.200.in-addr.arpa. -canalcocina.es. -profile.ak.fbcdn.net. -albion.net. -ocsp.digicert.com. -fbcdn-photos-a.akamaihd.net. -realtyventurecap.com. -aebersold.ch. -webunlp.unlp.edu.ar. -mymodernmet.mobify.me. -css.wlxrs.com. -a6.sphotos.ak.fbcdn.net. -www.outline.it. -cercopdf.com. -mail.wyobuilds.com. -a.root-servers.net. -childers-construction.com. -games.espn.go.com. -www.compromisorse.com. -a1404.w41.akamai.net. -scholar.google.com. -mail.coralcadillac.com. -www.stellaoflondon.co.uk. -mail.whessoe.co.uk. -ak-media.soundcloud.com. -28.47.255.201.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -lensylproducts.com.s9a2.psmtp.com. -homeserve.com. -mail.bca.ru. -www.aitfa.org. -40.232.86.74.in-addr.arpa. -www.thetoshibatablet.com. -www.autonotel.es. -www.ciafp.com. -27.media.tumblr.com. -48.100.11.190.in-addr.arpa. -h.live.com. -11.248.230.190.in-addr.arpa. -alterglobalizacion.wordpress.com. -market.android.com. -102.243.47.189.in-addr.arpa. -www.facebook.com. -www.pulug.com. -fc60.deviantart.com. -www.koala.net. -www.lavidasegunxime.com. -119.217.239.201.in-addr.arpa. -broekhuisjuweliers.nl. -ping3.teamviewer.com. -learningexchange.ptc.com. -162.220.159.82.in-addr.arpa. -www.viamujer.com. -0.1887503.com. -a367.phobos.apple.com.edgesuite.net. -picasaweb.google.com. -farm3.static.flickr.com. -static.ak.fbcdn.net. -hotmail.co.uk. -antropologiadelareligion.blogspot.com. -206.16.122.24.in-addr.arpa. -www.einicio.com. -fashionscandal.com. -ads.revsci.net. -modulstroy.ru. -news.google.com.mx. -creative.ak.fbcdn.net. -234.33.88.186.in-addr.arpa. -cache5.bbs.cn.yahoo.com. -vf.cloud.avg.com. -64.78.178.95.in-addr.arpa. -watchdrama24.com. -adm.citytlt.ru. -clients1.google.com. -207.236.35.177.in-addr.arpa. -40.4.235.178.in-addr.arpa. -cf.addthis.com. -209.37.136.190.in-addr.arpa. -www.apple.com. -rjins.com. -mail.dmlp.net. -av-desk.ru. -www.hellas-jet.com. -www.hoteldeturistas.net. -a2.sphotos.ak.fbcdn.net. -cm.ac3.msn.com. -ktones.us. -20.165.32.188.in-addr.arpa. -fstkrahwrq.org. -photos-a.ak.fbcdn.net. -. -chat.facebook.com. -212.63.33.62.in-addr.arpa. -mntr.babcdn.com. -lascosicasdeange.blogspot.com. -rk:d7p136.27bn. -www.google.com. -172.7.127.200.in-addr.arpa. -protaxservices.com. -privacy.io. -jalateqla.blogspot.com. -es-la.facebook.com. -golfetc.com. -23.122.226.98.in-addr.arpa. -119.50.74.190.in-addr.arpa. -www.youtube.com. -www.google-analytics.com. -118.28.148.109.in-addr.arpa. -canalbruselas.blogspot.com. -accounts.google.com. -l68dqdzmrcyj16j56pudqgup22n50iuoqmwfr.com. -albassfed.org. -fs579.uploading.com. -iv:c7dnvp.s42e5m6y. -226.151.203.190.in-addr.arpa. -photos-d.ak.fbcdn.net. -mainonta.jatkoaika.com. -179.40.116.99.in-addr.arpa. -dr._dns-sd._udp.lan. -a.root-servers.net. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -dsn1.d.skype.net. -a7.sphotos.ak.fbcdn.net. -bsf.smowtion.com. -ww2.clothingshowroom.com. -www.google.com. -www.strengtheningmarriage.com. -clients1.google.com. -21.211.171.201.in-addr.arpa. -altavista.su. -photos-e.ak.fbcdn.net. -a.root-servers.net. -cooksign.com. -ads2.msads.net. -92.158.26.46.in-addr.arpa. -bpt.net. -mail.imageriedigitale.com. -graph.facebook.com. -80.91.139.98.sa-accredit.habeas.com. -m.facebook.com. -smtp-gw.qti.com. -177.13.51.190.in-addr.arpa. -victortabernero.wordpress.com. -www.microsoft.com. -65.137.113.186.in-addr.arpa. -www.aado.org. -mgtracker.org. -35.100.241.189.in-addr.arpa. -i1159.photobucket.com. -143.157.8.78.in-addr.arpa. -nuts-and-bolts-of-cakephp.com. -www.google-analytics.com. -6.236.171.118.in-addr.arpa. -platform.ak.fbcdn.net. -specath.ru. -a.root-servers.net. -154.60.58.186.in-addr.arpa. -rs742tl.rapidshare.com. -mail.warris.com. -ksn3-11.part1.kaspersky-labs.com. -acumetrics-com.mail.eo.outlook.com. -terpsys.com. -w671.photobucket.com. -etalon-centre.ru. -www.stopbadware.org. -www.femdomnirvana.com. -s-external.ak.fbcdn.net. -anki.ichi2.net. -bsnav9vog.h10m0z1y. -craneplasticsmfg.com.s5b1.psmtp.com. -na3sys010aog103.obsmtp.com. -ds.serving-sys.com. -twitter.com. -www.greenfeet.com. -irc.kelebekmafia.com. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.google.com. -mail. -gnuworldorder.info. -taxi-profi.ru. -www.texasonline.state.tx.us. -sea.liveatc.net. -www.nobel.unam.mx. -creative.ak.fbcdn.net. -hipay.com. -pcimagenetwork.com. -ad.harrenmedianetwork.com. -hotmail.com. -www.supporter.com. -us.data.toolbar.yahoo.com. -clients1.google.com. -europa.meteoconsult.es. -dwiex402.mumc.nl. -a-0.19-220f0001.590.1518.19d4.3ea1.410.0.261uh4tz9r79h32int7h8u92it.avqs.mcafee.com. -agoldenworld.files.wordpress.com. -facebook.com. -ad.yieldmanager.com. -www.aspeneducation.com. -websearch.ask.com. -a.root-servers.net. -cityvillefb0.static.zgncdn.com. -ad.yieldmanager.com. -sp.cwfservice.net. -photos-b.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -170.94.5.190.in-addr.arpa. -akko.es. -www.gn4me.com. -fr-fr.facebook.com. -392327.r.msn.com. -es-la.facebook.com. -www.rodatec.com. -s0.2mdn.net. -www.indonesiacommerce.com. -orcart.facebook.com. -201.1.60.68.in-addr.arpa. -profile.ak.fbcdn.net. -translate.google.com.mx. -www.pokemontcg.com. -mitchhedberg.net. -logc214.xiti.com. -sp.cwfservice.net. -www.crecenegocios.com. -127.86.21.107.in-addr.arpa. -csc3-2004-crl.verisign.com. -t3.gstatic.com. -www.mediawiki.org. -t4ft.de. -trailw.dealply.com. -shared.live.com. -30.188.77.189.in-addr.arpa. -24.15.107.76.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -173.23.255.190.in-addr.arpa. -ox-d.appprizes.com. -128.148.163.190.in-addr.arpa. -86.73.43.190.in-addr.arpa. -73.138.146.195.in-addr.arpa. -www.markdom.de. -xvideos-176.vo.llnwd.net. -a.root-servers.net. -www.groovybookmarks.com. -65.151.59.174.in-addr.arpa. -profile.ak.fbcdn.net. -relay.gt66.ru. -39.220.112.186.in-addr.arpa. -virtualdubmod.en.softonic.com. -zierkecompany.com. -toolbarqueries.clients.google.com. -csc3-2004-crl.verisign.com. -google.com. -s-static.ak.fbcdn.net. -80.119.101.76.in-addr.arpa. -developer.amazonwebservices.com. -sms-group.net. -www.facebook.com. -133.80.158.79.in-addr.arpa. -jewelleryrussia.ru. -43.60.93.200.in-addr.arpa. -mepunoonaker.ws. -www.facebook.com. -bloggergadgets.googlecode.com. -www.as.com. -global.wetter.com. -a1375.g.akamai.net. -ad.yieldmanager.com. -www.superior-replica.com. -ad-g.doubleclick.net. -a.ads1.msads.net. -mms602.whatsapp.net. -apix.iminent.com. -clients1.google.com. -demsandemir.com. -mbspares.chance.ru. -igor.facemoods.com. -bmx.burg-gmbh.de. -27.16.229.89.in-addr.arpa. -prl.res.in. -www.stetina.com. -26.158.33.83.in-addr.arpa. -glorycycles.csell.store.yahoo.net. -ut9.xhamster.com. -a.root-servers.net. -connect.facebook.net. -photos-a.ak.fbcdn.net. -cy.wikipedia.org. -141.8.165.142.in-addr.arpa. -arkleh.state.ar.us. -twitter.com. -safebrowsing-cache.google.com. -hi-in.facebook.com. -www.shopper.pk. -www.gstatic.com. -www.google.com. -a.root-servers.net. -189.25.111.95.in-addr.arpa. -www.andamanadventures.com. -18733.ua.all.biz. -www.mindennapok.hu. -uny2.com. -photos-c.ak.fbcdn.net. -111.165.195.190.in-addr.arpa. -nigmahon.blogspot.com. -www.yout. -apps.facebook.com. -profile.ak.fbcdn.net. -159.147.239.190.in-addr.arpa. -avalera.net. -mail2.oblgazeta.ru. -sanfranciscogym.info. -38.12.137.82.in-addr.arpa. -bogpost.dk. -45.52.222.189.in-addr.arpa. -www.artrabbit.com. -blog.baomoi.com. -static.ak.fbcdn.net. -www.belkin.com. -creative.ak.fbcdn.net. -a1408.w43.akamai.net. -profile.ak.fbcdn.net. -isb-sib.ch. -cdn.api.twitter.com. -7f4b6f993392711663fac8b835e717f5.dnsbl7.mailshell.net. -www.website-monitoring.com. -row.bc.yahoo.com. -vinossingulares.wordpress.com. -carloslugo2008.blogspot.com. -photos-a.ak.fbcdn.net. -s2.youtube.com. -www.cookbakelove.com. -google.com. -campusconnect.depaul.edu. -dns.msftncsi.com. -itunes.apple.com. -www.pocketpcthoughts.com. -ksn2-12.kaspersky-labs.com. -www.blogmond.com. -a.root-servers.net. -static.ak.fbcdn.net. -profile.live.com. -73.107.64.109.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -www.barcelonatv.com. -es.888.com. -www.maturesexual.com. -a1.sphotos.ak.fbcdn.net. -4na5h:8x6.29jg. -plusone.google.com. -ds.addthis.com. -www.sonography.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -nortwork.com.br. -specialflorist.com. -21.228.171.69.in-addr.arpa. -crl.microsoft.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail2.amarahotels.com. -digg.com. -www.nude-imps.biz. -photos-f.ak.fbcdn.net. -cdtorg.ru. -bbti7po78.b85o3p3m. -mf.ebfarm.com. -www.frenchculturenow.com. -a6.sphotos.ak.fbcdn.net. -mail.duxpond.com. -connect.facebook.net. -www.animationconnection.com. -videos.flv2.redtubefiles.com. -104.30.148.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -www.lamborghini-energy.com. -170.165.40.177.in-addr.arpa. -youtube.com. -dc.tvteam.info. -a.root-servers.net. -93.11.143.188.in-addr.arpa. -ujktmlmbmj.tv. -blu0-omc4-s35.blu0.hotmail.com. -pubads.g.doubleclick.net. -c.live.com. -137.126.17.177.in-addr.arpa. -taosbooks.com. -prov.us.mydlink.com. -pop3.live.com. -static.ak.fbcdn.net. -www.elephanttube.com. -www.contracorriente.eu. -97.240.114.186.in-addr.arpa. -ilovemiamispice.com. -0.162.198.187.in-addr.arpa. -www.1st-milkshake-n-smoothie-recipes.com. -39.204.189.12.in-addr.arpa. -mailbox.rudebecks.se. -maps.gstatic.com. -safelistmailbox.net. -ratings-wrs.symantec.com. -t.co. -connect.facebook.net. -17.63.169.88.in-addr.arpa. -bjsjzf.en.alibaba.com. -allanjwilkinson.co.uk. -www.youtube.com. -a.root-servers.net. -row.bc.yahoo.com. -photos-f.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -www.hennieviljoensafaris.com. -127.19.224.77.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -178.31.55.186.in-addr.arpa. -casa-de-patinhos.blogspot.com. -pagead2.googlesyndication.com. -pixel.facebook.com. -photos-h.ak.fbcdn.net. -197.158.142.189.in-addr.arpa. -www.usafed.org. -www.bbc.co.uk. -community.ebay.com. -217.198.34.189.in-addr.arpa. -s0.2mdn.net. -68.194.98.99.in-addr.arpa. -alt4.gmail-smtp-in.l.google.com. -s7.addthis.com. -agora-gallery.com.s8b1.psmtp.com. -orcart.facebook.com. -js2.wlxrs.com. -photos-a.ak.fbcdn.net. -www.endsmugenmexico.com. -a7.sphotos.ak.fbcdn.net. -236.150.17.213.in-addr.arpa. -h.live.com.nsatc.net. -a.root-servers.net. -static.onemodelplace.com. -sanalofis.net. -a.root-servers.net. -180.130.155.184.in-addr.arpa. -www.talkfast.com.br. -a.root-servers.net. -support.google.com. -summitfx.com. -killallhippies.ru. -lawstlouis.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -142.132.8.90.in-addr.arpa. -csl99f4ht.t60z1i1g. -l.yimg.com. -css.wlxrs.com. -afontive.fileave.com. -translate.google.com. -ads.adap.tv. -174.44.235.88.in-addr.arpa. -orienta.universia.net.mx. -sp.cwfservice.net. -groups.google.com.mx. -photos-c.ak.fbcdn.net. -mail.redhillnetworks.com. -dbg400.homeip.net. -accounts.google.com. -eltrajeyelmundo.files.wordpress.com. -www.vercapitulo.com. -216.228.122.187.in-addr.arpa. -dc504.4shared.com. -terabitwarez.net. -www.google.com. -97.57.123.200.in-addr.arpa. -maps.l.google.com. -lehuaorchids.com. -www.crit-iq.com.au. -a8.sphotos.ak.fbcdn.net. -20.94.253.88.in-addr.arpa. -static.ak.fbcdn.net. -mail.1991.ru. -www.btparadise.com. -a1.sphotos.ak.fbcdn.net. -m.addthisedge.com. -61.7.188.189.in-addr.arpa. -xhcdn.com. -0-ji-w.channel.facebook.com. -21.133.124.190.in-addr.arpa. -t2.gstatic.com. -developers.facebook.com. -i1.ytimg.com. -h.live.com. -s0.2mdn.net. -p.l.qq.com. -accounts.google.com. -msfs.nspmotion.com. -r._dns-sd._udp.0.160.168.192.in-addr.arpa. -safebrowsing-cache.google.com. -a323.yahoofs.com. -static.ak.fbcdn.net. -download343.avast.com. -time.stdtime.gov.tw. -65.250.132.189.in-addr.arpa. -akcontent.ebuddy.com. -www.findingmyforest.org. -204.244.189.190.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -kendallharmon.net. -www.angrybird.biz. -barclayproducts.com. -calculatusemisiones.com. -255.218.26.98.in-addr.arpa. -tc26.easythumbhost.com. -req1.appads.com. -74.80.225.190.in-addr.arpa. -db._dns-sd._udp.lan. -t0.gstatic.com. -a.root-servers.net. -plus.google.com. -ru-promo.ru. -ixlbp78k3.99tb. -182.95.92.186.in-addr.arpa. -exchange.alacare.com. -img2.blogblog.com. -liveupdate.symantecliveupdate.com. -a.root-servers.net. -photos-h.ak.fbcdn.net. -ecologiasomosnaturaleza.blogspot.com. -40.104.214.189.in-addr.arpa. -28.253.34.174.in-addr.arpa. -seeklogo.com. -186.66.178.190.in-addr.arpa. -ad57.feeldmc.com. -sites.google.com. -stamps.shop.ebay.com. -www.outstandingnudes.com. -fmcicesports.com.s5a1.psmtp.com. -72.110.110.201.in-addr.arpa. -post.andertons.co.uk. -146.27.242.201.in-addr.arpa. -2.54.200.91.in-addr.arpa. -baymsg1010710.gateway.messenger.live.com. -www.hardcoreposts.com. -rdh-env.com.inbound15.mxlogicmx.net. -mail.assets-school.net. -renewconcrete.org. -_935_41_1. -www.4shared.com. -photos-e.ak.fbcdn.net. -idleaire.com.s9a1.psmtp.com. -154.30.216.89.in-addr.arpa. -static.ak.fbcdn.net. -static.ak.fbcdn.net. -gostore.3g.cn. -www.elosopanda.com. -135.228.132.190.in-addr.arpa. -www.patagoniavirgin.com. -rreloj.files.wordpress.com. -www.scribd.com. -photos-f.ak.fbcdn.net. -profile.ak.fbcdn.net. -. -mx.easynet.nl. -www.google.com. -www.coedsneedcashlive.com. -g.ceipmsn.com. -maxwells.co.uk. -tl.answers.com. -252.216.103.190.in-addr.arpa. -0-jj-w.channel.facebook.com. -139.189.160.187.in-addr.arpa. -230.225.82.71.in-addr.arpa. -dbz-los-rivales-mas-poderosos-cooler1.blogspot.com. -csi.gstatic.com. -7b7e9eaa.allanalpass.com. -dns.msftncsi.com. -googleads.g.doubleclick.net. -voipb.sip.yahoo.com. -www.fonttester.com. -static.ak.connect.facebook.com. -a.root-servers.net. -157.159.53.83.in-addr.arpa. -pixel.facebook.com. -time.windows.com. -a1.sphotos.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -stats.wordpress.com. -blog.tv2.dk. -photos-f.ak.fbcdn.net. -sn2files.storage.msn.com. -content.yieldmanager.edgesuite.net. -euro.mediotiempo.com. -www.milftits.net. -subtitledmusic.blogspot.com. -sp.ask.com. -i.dailymail.co.uk. -matefinacierab1.galeon.com. -jcjdatacomm.co.uk. -marbelle.ru. -photos-e.ak.fbcdn.net. -grandhotelrodina.ru. -jred.co. -www.update.microsoft.com. -vcs1.msg.yahoo.com. -a.root-servers.net. -pdgraphic.com. -address.yahoo.com. -au.answers.yahoo.com. -time-b.nist.gov. -tracker.bittorrent.am. -netype.com. -110.101.212.201.in-addr.arpa. -a.root-servers.net. -53.93.156.187.in-addr.arpa. -a.root-servers.net. -www.taringa.net. -a2.sphotos.ak.fbcdn.net. -thebarongroup.com. -mercurymetalcraft.com. -65.3.224.186.in-addr.arpa. -mail.live.com. -photos-g.ak.fbcdn.net. -developers.facebook.com. -a5.sphotos.ak.fbcdn.net. -en.wikipedia.org. -cdn.wibiya.com. -bmx.com. -a.root-servers.net. -a.root-servers.net. -appldnld.apple.com. -224.1.200.94.in-addr.arpa. -master3342.servehttp.com. -_543_45_8. -79.215.141.190.in-addr.arpa. -dynamicdialogs.toolbar.conduit-services.com. -zoomer2.hc1.ca. -placidayeye.blogia.com. -t3.gstatic.com. -cdn-colo-ch-10.mbt.com. -pixel.facebook.com. -jobs.topusajobs.com. -_840_95_5. -www.simoniddol.com. -default01.static.socialpointgames.com. -softdl2.360.cn. -a.root-servers.net. -193.120.108.186.in-addr.arpa. -i.ytimg.com. -www.pspublicidad.com. -40.209.54.189.in-addr.arpa. -log.opentracker.net. -www.chistesbuenos.com.mx. -www.microsoft.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -gpcom.com.mx2.gpcom.rcimx.net. -www.bikeland.ru. -translate.google.com.mx. -teredo.ipv6.microsoft.com. -localhost. -photos-e.ak.fbcdn.net. -ts.videosz.com. -butlerrubin.com.inbound10.mxlogicmx.net. -mx10.activator.com. -wsh.gamib.com. -a.root-servers.net. -images8.sextubestore.com. -ulearngolf.com. -old.aliste.info. -cdn.g.promosrv.com. -www.amazingbridalshowers.com. -www.facebook.com. -photos-f.ak.fbcdn.net. -y1hm6bqc:.v26o0y7v. -profile.ak.fbcdn.net. -twitter.com. -kerosin13.ru. -p08-caldav.icloud.com.akadns.net. -translate.google.es. -disqus.com. -44.212.230.190.in-addr.arpa. -es-es.facebook.com. -www.luisxl.com. -cloud-q.duba.net. -a1.sphotos.ak.fbcdn.net. -apps.facebook.com. -data.coremetrics.com. -apis.google.com. -platform.ak.fbcdn.net. -www.cichlidforums.com. -cdn.wsi.com.c.footprint.net. -photos-a.ak.fbcdn.net. -78.236.87.95.in-addr.arpa. -rochellegirl.polyvore.com. -benta.spb.ru. -ic.tynt.com. -www.premier-tools.com. -joomla16.siteground.com. -www.textsrv.com. -i.imwx.com. -pixel.facebook.com. -lh3.googleusercontent.com. -88.188.134.187.in-addr.arpa. -u21.eset.com. -17.27.33.90.in-addr.arpa. -spaces.live.com. -innotec.ru. -accountservices.msn.com. -h4kurd.com. -a.root-servers.net. -www.tracert.org. -al-ramady.com. -www.john-cena.net. -ksn1-11-part1.kaspersky-labs.com. -mail.safali.ru. -cookex.amp.yahoo.com. -hawaiiusafcu.com.inbound10.mxlogicmx.net. -profile.live.com. -134.235.76.178.in-addr.arpa. -omega-press.ru. -unicam-studio.ru. -e-ternaltreasures.com. -photos-g.ak.fbcdn.net. -avatarthelastairbenderonline.com. -wgtot45.digitalriver.com. -m.addthisedge.com. -mx.westbrook-village.com. -bs.serving-sys.com. -166.4.106.186.in-addr.arpa. -15.53.193.187.in-addr.arpa. -clients1.google.com. -thomas-hardye.dorset.sch.uk. -photos-e.ak.fbcdn.net. -ns1.yandex.net. -cn1.redswoosh.akadns.net. -220.186.138.201.in-addr.arpa. -mail.indiatravel.ru. -www.taskforceapp.com. -picture.cdn.pixmac.com. -blufiles.storage.msn.com. -107.49.87.62.in-addr.arpa. -safebrowsing-cache.google.com. -dns.msftncsi.com. -www.juegosdiarios.com. -mail.ibew110.org. -altresactivitatsproductives.blogspot.com. -28.8.16.190.in-addr.arpa. -113.24.115.187.in-addr.arpa. -www.google-analytics.com. -www.google-analytics.com. -157.181.173.201.in-addr.arpa. -www.ioha.fgv.br. -mgs17.acecounter.com. -c.iogous.com. -dr._dns-sd._udp.lan. -132.33.86.186.in-addr.arpa. -platform.twitter.com. -143.244.84.200.in-addr.arpa. -imap.gmail.com. -venus.grires.com. -214.3.62.186.in-addr.arpa. -zh-cn.facebook.com. -dns.msftncsi.com. -126.17.254.8.in-addr.arpa. -www.google.com. -www.googleadservices.com. -8-courier.push.apple.com. -ajax.googleapis.com. -195.233.160.190.in-addr.arpa. -americapgroup.com. -ads2.msads.net. -misc.blogsmith.aol.com.aol.akadns.net. -c7.zedo.com. -airgchatinfo.blogspot.com. -a.root-servers.net. -readinglessons.com. -www.facebook.com. -pics03.adooscore.com. -ib.adnxs.com. -empleos-temporarios.vivavisos.com.ar. -yahll.com. -clients1.google.com. -iz:hnafgl.q71e7o2c. -a.root-servers.net. -wsl.cotas.com. -13.120.105.190.in-addr.arpa. -rsntqiqbhykc.net. -rexee-11.vo.llnwd.net. -profile.spb.ru. -mail.google.com. -www.chinabusinessworld.com. -profile.ak.fbcdn.net. -m.facebook.com. -rssocapps.rosettastone.com. -225.186.234.190.in-addr.arpa. -www.google-analytics.com. -upgrade.bitdefender.com. -244.231.35.189.in-addr.arpa. -a.root-servers.net. -197.17.5.88.in-addr.arpa. -a569.g.akamai.net. -watermill.com.inbound10.mxlogic.net. -talewis.com. -sepetibatecon.com.br. -manaranews1.blogspot.com. -av.vimeo.com. -sites.google.com. -51.213.51.201.in-addr.arpa. -_517_23_8. -r.openx.net. -fbogsecendrrr.mp. -s.youtube.com. -131.92.158.189.in-addr.arpa. -static.ak.fbcdn.net. -www.macizorras.com. -developers.facebook.com. -graphicbook.com. -www.todaycal.com. -ravefeca.tv. -www.facebook.com. -lacataratadelsanisidoro.blogspot.com. -eluneknights.latin-foro.net. -202.65.254.201.in-addr.arpa. -anal-forum.com. -js.dmtry.com. -spam01.wiredmedium.com. -photos-g.ak.fbcdn.net. -nsx.np.dl.playstation.net. -static.ak.fbcdn.net. -4.courier-push-apple.com.akadns.net. -digg.com. -s-static.ak.fbcdn.net. -217.215.228.190.in-addr.arpa. -www.webgrafics.es. -178.54.51.190.in-addr.arpa. -a.root-servers.net. -91.121.55.65.in-addr.arpa. -plusone.google.com. -www.gas-servei.com. -gfx3.hotmail.com. -www.entertoinet.com. -google.com. -a1.sphotos.ak.fbcdn.net. -informika.ru. -ns2.otys.nl. -calearth.org. -fr-fr.facebook.com. -a5.sphotos.ak.fbcdn.net. -mail.obeetee.com. -ts04.eset.com. -a7.sphotos.ak.fbcdn.net. -210.104.53.186.in-addr.arpa. -138.211.172.78.in-addr.arpa. -infodepot.wikia.com. -park2.dns.im. -safebrowsing.clients.google.com. -113.68.125.186.in-addr.arpa. -studychacha.com. -fbib6nsj4.06hh. -pixel.facebook.com. -pr.starmedia.com. -www.greatsuccessfulpeople.com. -weather.service.msn.com. -86.56.171.216.in-addr.arpa. -www.filipina88.com. -mail.tribiq.net. -sii.fr. -a7.sphotos.ak.fbcdn.net. -162.251.97.176.in-addr.arpa. -data.flurry.com. -ustre.am. -rad.msn.com. -dustbowl.wordpress.com. -s2.youtube.com. -146.39.31.173.in-addr.arpa. -www.bywifi.com. -www.facebook.com. -www.weather.com. -www.terra.com. -k-soya.ru. -mail.belfastmediagroup.com. -www.ecomagazin.ro. -202.175.218.186.in-addr.arpa. -www.cwdomination.com. -getprof.es.np.community.playstation.net. -www.suburban.com.mx. -csi.gstatic.com. -www.fishjava.com. -csi.gstatic.com. -disneylatino.com. -google.com. -www.chicasgames.com. -geoiplookup.wikimedia.org. -dx3723.tinyurl.com. -a.root-servers.net. -api-secure.solvemedia.com. -photos-e.ak.fbcdn.net. -edge.quantserve.com. -cheatsbysuperlegends.chatango.com. -aa.net. -fb-0.hidden.zynga.com. -a2.sphotos.ak.fbcdn.net. -eamail1.unisys.com. -external.ak.fbcdn.net. -tools.google.com. -41.114.160.187.in-addr.arpa. -125.217.34.186.in-addr.arpa. -1.0.168.192.in-addr.arpa. -boltax.blogspot.com. -apps.facebook.com. -dnl-01.geo.kaspersky.com. -skotos.net. -www.gstatic.com. -srcaccess.net.s9b1.psmtp.com. -0-292.channel.facebook.com. -a4.sphotos.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.infinitypublishing.com. -goldenbow.com. -eiastillero.blogspot.com. -30.88.105.186.in-addr.arpa. -mailserver.limohire.com. -www.bestprideparades.com. -151.37.32.189.in-addr.arpa. -smtp.shk-group.com. -mail.mainstreetmediainc.com. -photarium.com. -usyd.edu.au. -77.73.86.67.in-addr.arpa. -www.tango.hagaselamusica.com. -adserving.cpxinteractive.com. -www.facebook.com. -242.137.124.186.in-addr.arpa. -ssl.gstatic.com. -www.xvideos.com. -a.root-servers.net. -31dlth2z2.o78o2y1i. -pop3.hot.glbdns.microsoft.com. -botones.blogalaxia.com. -a2.sphotos.ak.fbcdn.net. -126.213.217.196.in-addr.arpa. -a749.g.akamai.net. -www.facicons.com. -www.facebook.com. -adadvisor.net. -elsurdelafrontera.blogdiario.com. -mx1.darkorbit.bigpoint.com. -s-static.ak.fbcdn.net. -plusone.google.com. -www.celebrationideasonline.com. -3.1.168.192.in-addr.arpa. -time.nist.gov. -www.freshrapidlinks.com. -249.39.236.190.in-addr.arpa. -msbmo.com. -204.45.158.187.in-addr.arpa. -bayimg.com. -snecma.ru. -fr-fr.facebook.com. -www.frecuenciadigital.es. -coinworld.com.inbound15.mxlogicmx.net. -adsfront.iminent.com. -tcyonline.com. -teredo.ipv6.microsoft.com. -40.216.74.187.in-addr.arpa. -creative.ak.fbcdn.net. -www.rememberthemilk.com. -jasusa.com.2.arsmtp.com. -a.root-servers.net. -buckshare.com. -101.165.173.189.in-addr.arpa. -t3.gstatic.com. -docs.google.com. -recursos.promocionesweb.com. -youtube-espanol.blogspot.com. -medkrug.ru. -mch-pllp.com.mail8.psmtp.com. -checkip.dyndns.com. -45.122.155.200.in-addr.arpa. -accounts.google.com. -fuelingcomponents.com.pri-mx.na0104.smtproutes.com. -external.ak.fbcdn.net. -samhouston.army.mil. -peregrinesolutions.com. -_744_96_9. -fbcdn-photos-a.akamaihd.net. -snsgw.samsungmobile.com. -suggestqueries.google.com. -a1.sphotos.ak.fbcdn.net. -69.63.250.201.in-addr.arpa. -81.187.137.190.in-addr.arpa. -es.wikiquote.org. -www.kayak.com. -dns.msftncsi.com. -photos-g.ak.fbcdn.net. -www.letsgosago.net. -supersat.net. -bellsouth.net. -corporacionpro.com. -apple-mobile.query.yahooapis.com. -segment-pixel.invitemedia.com. -profile.ak.fbcdn.net. -203.20.190.189.in-addr.arpa. -support.maktoob.com. -galaxylife.digitalchocolate.com. -host-delay.logmein-gateway.com. -time.windows.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -besitosdeosopolar.blogspot.com. -static.ak.fbcdn.net. -lvs.com.ru. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -android.holfeld.com. -clkads.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -212.25.179.190.in-addr.arpa. -flasuncoast.net. -view.atdmt.com. -secure.wlxrs.com. -1.115.112.190.in-addr.arpa. -212.102.45.39.in-addr.arpa. -porokov.net. -213.218.69.200.in-addr.arpa. -img.imgsmail.ru. -www.facebook.com. -a.root-servers.net. -_146_03_1. -grantenguisito.nu. -usue.ru. -analytics.pch.com. -correointeligente.com. -www.1accesshost.com. -253.219.22.186.in-addr.arpa. -120.175.209.201.in-addr.arpa. -torrentdealer.ath.cx. -c0058712.cdn.cloudfiles.rackspacecloud.com. -viroc.pt. -www.google.com. -master4.teamviewer.com. -crl.microsoft.com. -www.cupcakerecipes.com. -m3.rvsanmiguel.com. -support.google.com. -na.blackberry.com. -creative.ak.fbcdn.net. -f4999.mail.yahoo.com. -av.aaomembers.org. -mail.saletour.ru. -ksn7-12.kaspersky-labs.com. -eross-666.hi5.com. -pixel.invitemedia.com. -a2.sphotos.ak.fbcdn.net. -abitoldernow.tumblr.com. -www.clubhaleysweet.com. -www.portada-online.com. -www.minhaconexao.com.br. -addons.mozilla.org. -silvergroup.com. -u.zillow.com. -www.tj-archivo.org. -m.facebook.com. -3.149.39.190.in-addr.arpa. -echo7.bluehornet.com. -a1015.g.akamai.net. -cpl.biz. -a.root-servers.net. -api.twitter.com. -clients2.google.com. -ravtograf.ru. -81.102.114.186.in-addr.arpa. -pix04.revsci.net. -inversedelirium.libsyn.com. -_899_72_2. -a.root-servers.net. -cdn.bid-tag.com. -wey.icritical.com. -www.folkebevaegelsen.dk. -api.conduit.com. -external.ak.fbcdn.net. -cdn.api.twitter.com. -psicotecnopatas.com. -cdn.xvideoswatch.com. -profile.ak.fbcdn.net. -instrumedinc.com. -66.29.188.90.in-addr.arpa. -www.twitter.com. -books.google.com. -www.sport.org. -teredo.ipv6.microsoft.com. -i3.ytimg.com. -233.244.167.190.in-addr.arpa. -160.248.156.24.in-addr.arpa. -27.186.49.190.in-addr.arpa. -103.59.69.190.in-addr.arpa. -www.open-mind.vc. -translate.google.com. -www.google.com. -graphicsleader.pt. -mail1.rs-it.co.uk. -www.verenettawarner.com. -design-incentives.com. -edge.quantserve.com. -adelphia.net. -www.gamefaqs.com. -16.167.102.99.in-addr.arpa. -www.horrorsquad.com. -www.orbeezone.com. -www.arrihanpress.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -106.49.232.91.in-addr.arpa. -api-read.facebook.com. -www.facebook.com. -linkurywebservices-msgplus.trafficmanager.net. -connect.facebook.net. -illy.com. -a5.sphotos.ak.fbcdn.net. -d1ae3bdqlkjebx.cloudfront.net. -fusion.google.com. -static.ak.fbcdn.net. -profile.ak.fbcdn.net. -office-point.ru. -www.lindisima.com. -seancronanphotography.com. -www.google.com. -billing.sharo4ka.ru. -122.45.78.189.in-addr.arpa. -lafxpills.ru.dob.sibl.support-intelligence.net. -faup.ucentral.cl. -131.174.25.190.in-addr.arpa. -photos-b.ak.fbcdn.net. -167.8.55.189.in-addr.arpa. -plus.google.com. -102.14.124.70.in-addr.arpa. -a.root-servers.net. -nhansuvietnam.vn. -creative.ak.fbcdn.net. -155.48.172.81.in-addr.arpa. -s0.2mdn.net. -_424_85_9. -230.239.104.187.in-addr.arpa. -ceritanafsuku.co.cc. -a7.sphotos.ak.fbcdn.net. -www.graffititextlive.com. -sw-rec.ru. -pedazosdecarbono.blogspot.com. -148.144.220.66.combined.njabl.org. -mediadesignprogram.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -g0.gstatic.com. -pagead2.googlesyndication.com. -icompass.insightexpressai.com. -navgw2.usxpress.com. -www.facebook.com. -sites.google.com. -a.root-servers.net. -ssl.gstatic.com. -www.showmyweather.com. -piedraconsupieldecebolla.blogspot.com. -i4.ytimg.com. -ajax.googleapis.com. -my.igain.com. -170.204.172.201.in-addr.arpa. -adspaces.ero-advertising.com. -www.angermanagementresource.com. -video.google.com.mx. -\(none\). -time.nist.gov. -47.147.220.66.in-addr.arpa. -www.nccam.nih.gov. -a1725.l.akamai.net. -167.57.161.77.in-addr.arpa. -52.42.225.189.in-addr.arpa. -36.46.122.187.in-addr.arpa. -81.127.47.190.in-addr.arpa. -time-nw.nist.gov. -twitter.com. -c-0.19-230f4000.a260011.1518.19d1.3ea1.210.0.um5jqsq46s93587gpv5kkiqkpt.avqs.mcafee.com. -a.root-servers.net. -a.root-servers.net. -www.poetas.com. -vardy.me. -c-0.19-a30f1081.8000081.1518.19d4.3ea1.210.0.v7f5m9tctl8k377dvvzj5bs74t.avqs.mcafee.com. -bit.ly. -l.yimg.com. -www.google.com. -9.10.168.187.in-addr.arpa. -www.open-speech.com. -131.100.10.200.in-addr.arpa. -nbalakershistory.blogspot.com. -196.78.71.190.in-addr.arpa. -upyachka.ru. -www.drpenafiel.com. -_018_76_7. -photos-c.ak.fbcdn.net. -mfeeds.economictimes.indiatimes.com. -profile.ak.fbcdn.net. -www.gstatic.com. -teamtechinc.net.s8a1.psmtp.com. -www.facebook.com. -photos-g.ak.fbcdn.net. -mw2.google.com. -ads1.msads.net. -uk-bm.ru. -www.4realamateurs.net. -insider.msg.yahoo.com. -api.tweetdeck.com. -users.cs.fiu.edu. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -186.45.132.81.in-addr.arpa. -dreamthebiggestdream.com. -db.useful-apps.com. -translate.googleapis.com. -78.13.181.99.in-addr.arpa. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -rover.ebay.com. -www.merlinbeats.com. -161.13.34.68.in-addr.arpa. -salmanonline.net. -msnportal.112.2o7.net. -api.twitter.com. -keshmuney.com. -secure.shared.live.com. -ntp1.dlink.com. -a.root-servers.net. -smtp.mooreauto.com. -a1.da1.akamai.net. -152.34.204.130.in-addr.arpa. -files.prays.webnode.es. -syndication.traffichaus.com. -150.234.104.186.in-addr.arpa. -_968_82_6. -s.youtube.com. -www.paulstips.com. -www.unipromo.es. -img100.xvideos.com. -86.109.148.46.in-addr.arpa. -sportboats.apolloduck.com. -www.2cutepartybags.com.au. -ssl.gstatic.com. -fbcdn-profile-a.akamaihd.net. -mensfitnessmagazine.uk.intellitxt.com. -acroipm.adobe.com. -skv-telecom.ru. -15.2.168.192.in-addr.arpa. -www.facebook.com. -caipadova.it. -piano.net.ru. -chavismasonry.com. -eng.krx.co.kr. -developers.facebook.com. -. -m.addthisedge.com. -www.countrysidemag.com. -parenthetically.blogspot.com. -www.google.com. -external.ak.fbcdn.net. -apis.google.com. -www.submarinoviagens.com.br. -safebrowsing-cache.google.com. -www.extremetube.com. -a3.sphotos.ak.fbcdn.net. -qm.net. -253.102.141.201.in-addr.arpa. -www.orl.ucla.edu. -t3.gstatic.com. -toolbar.google.com. -smx.asurams.edu.redcondor.net. -www.sexogratiswebcams.com. -blacklady1.blogspot.com. -www.pacmoore.com. -6.98.190.189.in-addr.arpa. -sp.cwfservice.net. -the-order-of-cupcake.blogspot.com. -ad.yieldmanager.com. -static.ak.fbcdn.net. -ksn4.kaspersky-labs.com. -241.101.35.177.in-addr.arpa. -a1402.w40.akamai.net. -www.jcreport.com. -monsters-inc-2-trailers.blogspot.com. -ksn6-12.kaspersky-labs.com. -99.67.135.189.in-addr.arpa. -28.144.149.190.in-addr.arpa. -www.gstatic.com. -ja.wikipedia.org. -64.230.31.190.in-addr.arpa. -dns.msftncsi.com. -guptaequities.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.exgftube.net. -apple3.musicdna-interface.com. -cyberfretbass.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.responsesource.com. -etvdupood.b11w9m4x. -ns.vegatele.com. -176.202.78.94.in-addr.arpa. -clients1.google.com. -fb-fb-0.castle.zynga.com. -138.138.172.190.in-addr.arpa. -rad.msn.com. -a.root-servers.net. -a.root-servers.net. -a.root-servers.net. -www.smartcampaign.co.kr. -www.santillanaele.com. -www.filmaciones.unlugar.com. -static.ak.fbcdn.net. -email.grammarly.com. -107.146.220.66.in-addr.arpa. -feeds.bbci.co.uk. -mail.irondequoit.org. -dns.msftncsi.com. -94.225.31.190.in-addr.arpa. -ie9.discoverbing.com. -mail.thesimonsgroup.net. -mailgatensw1.fairfax.com.au. -creative.ak.fbcdn.net. -mail2.atlanticsales.com. -d3lvr7yuk4uaui.cloudfront.net. -wieson.com. -mail.google.com. -www.onak.cl. -16.51.248.201.in-addr.arpa. -nicalis.com. -a.root-servers.net. -o2kilie47.r49l5v8w. -isap.sejm.gov.pl. -lavidaessilbar.blogspot.com. -228.169.106.220.in-addr.arpa. -www.cruelforcedsex.com. -104.187.81.186.in-addr.arpa. -accounts.google.com. -owa.macpapers.com. -profile.ak.fbcdn.net. -mtalk.google.com. -cdn.api.twitter.com. -a.root-servers.net. -profile.ak.fbcdn.net. -a.root-servers.net. -hb.cloud.avg.com. -mail.kansascommerce.com. -creative.ak.fbcdn.net. -85.35.68.111.in-addr.arpa. -www.randyrun.es. -_551_04_1. -17.94.175.189.in-addr.arpa. -www.tudakozo.t-com.hu. -135.13.160.189.in-addr.arpa. -www.ima.umn.edu. -_378_24_3. -99.195.240.85.in-addr.arpa. -login.toolbar.conduit-services.com. -themes.googleusercontent.com. -178.237.37.178.in-addr.arpa. -cs13464.vkontakte.ru. -img688.imageshack.us. -download822.avast.com. -www.mariacamilamesa.com. -www.facebook.com. -shinamall.ru. -www.medgle.es. -cmylaw.com. -photos-h.ak.fbcdn.net. -julied.bsofivectteiat.tm. -t3.gstatic.com. -mail2.gundermann.com. -120.47.108.85.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -212.161.60.213.in-addr.arpa. -webmaster.drtuber.com. -www.facebook.com. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -mail3.hunterdouglas.ru. -pentagramas.files.wordpress.com. -a-0.19-83096081.10033.1518.19d4.2f1c.10.0.4ntf88pba9hhdjt7vhm5spjl35.avqs.mcafee.com. -mx.mujer.yahoo.com. -211.44.228.76.in-addr.arpa. -www.comicstale.com. -m2pnaper.com. -a1.sphotos.ak.fbcdn.net. -mx.gbcarch.com.cust.b.hostedemail.com. -5ngm:uvux.r33w6b0u. -www.profantasyrodeo.com. -google.com. -saltymilk.com. -mx01.filter.magicmail.co.uk. -xfactor.spb.ru. -southernx.ne.jp. -60.33.53.173.in-addr.arpa. -_934_54_9. -chart.apis.google.com. -www.google.com. -www.smartthinkingbook.com. -profile.ak.fbcdn.net. -d.yimg.com. -inbound.ithacah-d.com.netsolmail.net. -w.sharethis.com. -www.regionesartificiales.com. -b._dns-sd._udp.lan. -db._dns-sd._udp.lan. -a.root-servers.net. -fbcdn-sphotos-a.akamaihd.net. -walmartstores.com. -evo-tour.ru. -160.12.48.190.in-addr.arpa. -gradient-ltd.com.ua. -1.0.0.223.lbl7.mailshell.net. -150.20.227.188.in-addr.arpa. -lildolliedaily.com. -es.wikipedia.org. -mail.cornerstonehealthcare.net. -54.13.105.189.in-addr.arpa. -143.124.133.190.in-addr.arpa. -846-car.net. -commonwealthtowers.com. -bbcore.cloudapp.net. -www.cpxadspace.com. -profile.ak.fbcdn.net. -www.hilltopglossy.com. -o3lbcqq2p.55to. -254.106.189.90.in-addr.arpa. -www.facebook.com. -news.gree.jp. -mitologia4.blogspot.com. -8.17.22.187.in-addr.arpa. -www.adobe.com. -view.atdmt.com. -kviltstina.blogspot.com. -www.bing.com. -unicentrooccidente.com. -joindiaspora.com. -jordicastell.blog.terra.cl. -www.alabanzascristianas.blogspot.com. -smtp.ofsy.net. -ktvbzqi7y.p47a4h3n. -clima.msn.com. -img.quemensajes.com. -demilovato-argentina.blogspot.com. -plusone.google.com. -dn-serv.com. -sp.cwfservice.net. -31.166.185.190.in-addr.arpa. -img2.blogblog.com. -external.ak.fbcdn.net. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -luisenriquemusic.com. -hits.e.cl. -api.twitter.com. -www.myhottube.com. -dr._dns-sd._udp.lan. -i1.ytimg.com. -www.solidnijistota.cz. -accounts.google.com. -a1028.g.akamai.net. -smtp1.spameater.net. -sip.ipvideotalk.com. -194.43.165.178.in-addr.arpa. -www.almitra.com. -www.911truth.org. -heartbeat.belkin.com. -en-us.fxfeeds.mozilla.com. -4.bp.blogspot.com. -google.com. -a2.sphotos.ak.fbcdn.net. -mekcztylfg.net. -sites.google.com. -215.114.141.201.in-addr.arpa. -photos-a.ak.fbcdn.net. -www.180south.com. -s135.cnzz.com. -profile.ak.fbcdn.net. -153.144.220.121.in-addr.arpa. -210.25.249.199.in-addr.arpa. -interlinq.com. -a2.sphotos.ak.fbcdn.net. -sites.google.com. -eizij:z93.r41x1t6h. -ingdirect.com.au. -fp.enter.net. -94.118.255.201.in-addr.arpa. -65.177.29.201.in-addr.arpa. -rs712l34.rapidshare.com. -www.facebook.com. -dr._dns-sd._udp.0.2.0.10.in-addr.arpa. -155.212.130.190.in-addr.arpa. -mt1.google.com. -creative.ak.fbcdn.net. -_792_76_7. -i3.ytimg.com. -4pz7:un2w.x56k4m7i. -www.businesslist.sg. -67.152.213.201.in-addr.arpa. -it-it.facebook.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -ecaustria.at. -secure.wlxrs.com. -erols.com. -deanfoods.com.s8a2.psmtp.com. -mail.jhb.wbs.co.za. -www.google.com. -www.fabricwarehouse.co.uk. -mx1.task.com.br. -www.bijuegos.com. -pdf.dirale.com. -www.belkin.com. -dvdp3eqjh.57we. -tap2-cdn.rubiconproject.com. -fbcdn-photos-a.akamaihd.net. -_061_57_3. -www.trucoteca.com. -i3.ytimg.com. -a.root-servers.net. -laposada.rockresorts.com. -59.64.64.1.in-addr.arpa. -45.112.168.192.in-addr.arpa. -xylon.asfh-berlin.de. -45.122.172.201.in-addr.arpa. -login.live.com. -121.189.231.125.in-addr.arpa. -115.43.170.189.in-addr.arpa. -mailsrv11.hartrodt.com. -chromejs.s3.amazonaws.com. -matcher.bidder8.mookie1.com. -86.19.251.189.in-addr.arpa. -16.147.102.220.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -fo-eu-ec.ay1.b.yahoodns.net. -apir.webrep.avast.com. -hooping.net. -www.google-analytics.com. -www.philips.pl. -103.253.40.92.in-addr.arpa. -www.google.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -mediacdn.disqus.com. -128.48.8.88.in-addr.arpa. -www.google-analytics.com. -yours.com. -www.facebook.com. -o1.t26.net. -photos-g.ak.fbcdn.net. -911.talk4free.com. -news.google.com.mx. -ksn3-12.part1.kaspersky-labs.com. -log.goodnetads.org.lan. -netspape.net. -michaelkors.com. -primaryfocalpoints.net. -www.savspeed.co.za. -www.davidsbridal.ca. -www.granpick.com. -news.google.com. -mail.nbzs.com. -mail.flappellatelaw.com. -dailydujour.com. -caracolasfem.blogspot.com. -94.119.239.189.in-addr.arpa. -evsecure-ocsp.geotrust.com. -mail.trepel.com. -17.43.85.186.in-addr.arpa. -mail.imrtest.com. -a2.sphotos.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -ssl.gstatic.com. -153.156.6.210.in-addr.arpa. -static.exoclick.com. -chicago.cubs.mlb.com. -www.mineralweb.com. -17.213.178.190.in-addr.arpa. -a.root-servers.net. -www.google.com. -photos-b.ak.fbcdn.net. -a.root-servers.net. -imagesrv.adition.com. -27-courier.push.apple.com. -proxy-55.dailymotion.com. -img25.imageshack.us. -conseilsdeco.net. -voipc.sip.yahoo.com. -www.google.com. -a2.sphotos.ak.fbcdn.net. -ad.yieldmanager.com. -iphone-wu.apple.com. -secure-uk.imrworldwide.com. -photos-b.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -a.root-servers.net. -static.exoclick.com. -alerts.conduit-services.com. -hawthornfarm.wanadoo.co.uk. -mail.cascpa.net. -clock.fmt.he.net. -alajmy.com. -www.guitarjapan.com. -www.google.com. -external.ak.fbcdn.net. -vicioadictos.blogspot.com. -netzdero.com. -emob1089.photobucket.com. -sentence-extractor.googlecode.com. -dsjlondon.com. -thebranfordgroup.com.s8b1.psmtp.com. -a2.sphotos.ak.fbcdn.net. -b-0.19-270e9219.b1081.1518.19d4.3ea1.210.0.9win1zdcdhpc8qvz14k5gi6l5v.avqs.mcafee.com. -registration.ess.apple.com.akadns.net. -a5.sphotos.ak.fbcdn.net. -col.stb01.s-msn.com. -photos-a.ak.fbcdn.net. -www.facebook.com. -227.89.208.82.in-addr.arpa. -www.energydelta.org. -a.root-servers.net. -133.86.22.201.in-addr.arpa. -www.spermbankcalifornia.com. -cs.wikipedia.org. -clkads.com. -www.histats.com. -a7.sphotos.ak.fbcdn.net. -pixel.facebook.com. -spicnic.com. -s10.flagcounter.com. -114.216.191.186.in-addr.arpa. -bs2.yokacdn.com. -accounts.google.com. -406.cim.meebo.com. -kkpfaq.bay.livefilestore.com. -omnipure.com. -millercenter.org. -155.219.192.173.in-addr.arpa. -multi21.thumb.edenflirt.com. -125.116.204.190.in-addr.arpa. -y2le2vcbd.y77z1m5m. -antiguaguatemata.olx.com.gt. -seq.es. -www.google.com. -safebrowsing-cache.google.com. -plus.google.com. -www.apple.com. -concert-casse.de. -voipb.sip.yahoo.com. -4.218.15.189.in-addr.arpa. -studiemetro.au.dk. -www.linodriegheart.com. -www.opselect.com. -136.7.104.187.in-addr.arpa. -r.mzstatic.com. -mx.risotech.com. -a2.sphotos.ak.fbcdn.net. -underhile.blogspot.com. -a.root-servers.net. -socialsciences.uchicago.edu. -jers2.info. -foianasnoiansoim.blogspot.com. -mail.fgisp.com. -night-at-the-museum-3-trailer.blogspot.com. -unarespuestaparacadapregunta.blogspot.com. -www.cenetec.salud.gob.mx. -a4.sphotos.ak.fbcdn.net. -fxfeeds.mozilla.com. -instagramers.com. -smtp01.usccg.com. -email-thewhitecompany.com. -hotmail.com. -profile.ak.fbcdn.net. -about.tagged.com. -forums.imore.com. -176.0.195.108.in-addr.arpa. -dns.msftncsi.com. -favorites.live.com. -idolbloglive.com. -time.nist.gov. -echo.edge.messenger.live.com. -benbarnesfansite.blogspot.com. -www.yumyume.com. -google.com. -duluxaddingcolourtopeopleslives.ru. -sefora.b-rail.be. -aka-cdn-ns.adtechus.com. -photos-c.ak.fbcdn.net. -www.bywifi.com. -www.blogmktg.com. -a.root-servers.net. -mail-attachment.googleusercontent.com. -friends.spy-from-sky.com. -249.114.137.201.in-addr.arpa. -66.197.168.192.in-addr.arpa. -www.automoto.com.sv. -www.investoronline.info. -pruebas.amman.cervantes.es. -sp.cwfservice.net. -a.root-servers.net. -nubuk.info. -photos.merinews.com. -90.64.50.182.in-addr.arpa. -a.root-servers.net. -lb._dns-sd._udp.belkin. -www.sunrainly.com. -unikomerc.ba. -google.com. -www.youtube.com. -a.root-servers.net. -partner.googleadservices.com. -212.63.0.186.in-addr.arpa. -surferbear.net. -resolver4.pand.ctmail.com. -18.133.159.201.in-addr.arpa. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -226.38.13.88.in-addr.arpa. -yahoo.com. -mail.dellen.com. -221.90.113.186.in-addr.arpa. -u.ytbbs.com. -a.root-servers.net. -teredo.ipv6.microsoft.com. -67.113.174.109.in-addr.arpa. -m.addthisedge.com. -www.facebook.com. -maygurney.co.uk. -musicaclaro.com. -www34.zippyshare.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -belindalove.com. -www.mentalhealthy.co.uk. -79.8.162.190.in-addr.arpa. -ofmtrx381.20zs. -www.microsoft.com. -37.26.52.186.in-addr.arpa. -cdn.krxd.net. -www.packerchatters.com. -demo.chevereto.com. -i.imgur.com. -m.addthisedge.com. -ad-g.doubleclick.net. -a.prisacom.com. -rlcallahan.com. -js.wlxrs.com. -millerfh.com. -f-passage.net.ru.lan. -88.114.134.187.in-addr.arpa. -14.65.146.187.in-addr.arpa. -pbmnutritionals.com.s7b1.psmtp.com. -mothernature.com. -get.adobe.com. -c.bing.com. -www.facebook.com. -107.113.51.190.in-addr.arpa. -fxfeeds.mozilla.com. -www.tenso.es. -earthtech.co.uk. -85.247.75.151.in-addr.arpa. -photos-f.ak.fbcdn.net. -martinlibre.blogspot.com. -210.176.250.190.in-addr.arpa. -searchjs.s3.amazonaws.com. -_120_46_5. -bow.juegosfriv.us. -_339_43_1. -www.falomirjuegos.com. -pato.ienter.net. -lion-t.ru. -www.facebook.com. -www.escueladepadresprimerizos.com. -www.subcarrie.com. -weather.wapp.wii.com. -time.windows.com. -s-static.ak.facebook.com. -104.75.176.190.in-addr.arpa. -rv.ginyas.com. -www.google.com. -www.facebook.com. -oceanparadise.com. -168.179.50.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -ejabat.google.com. -ax.init.itunes.apple.com. -photos-f.ak.fbcdn.net. -jacobsons.com. -www.dentaldeml.com. -fromportlandtopeonies.blogspot.com. -redirector.c.youtube.com. -129.50.168.192.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -p6y.ru. -elfish-and-chips.learnenglishonline.yuku.com. -ssl.gstatic.com. -rss.news.yahoo.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mf1.bestbuy.selectionassistant.com. -a.root-servers.net. -a.root-servers.net. -www.ipodnews.com.ar. -profile.ak.fbcdn.net. -www.provisum-illumina.com. -microsoftwllivemkt.112.2o7.net. -www.google-analytics.com. -static.ak.fbcdn.net. -www.aspoonfulofsugardesigns.com. -a4.sphotos.ak.fbcdn.net. -www.facebook.com. -ie9cvlist.ie.microsoft.com. -sp.cwfservice.net. -c1.researchgate.net. -webassets.sparkybee.com. -ua.bname.ru. -38.34.48.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -a1132.da1.akamai.net. -233.241.88.2.in-addr.arpa. -s-static.ak.fbcdn.net. -147.197.165.190.in-addr.arpa. -_362_64_1. -www.ashidakim.com. -teredo.ipv6.microsoft.com. -www.megghy.com. -:as3fwc5v.00zn. -175.216.60.213.in-addr.arpa. -122.124.179.190.in-addr.arpa. -a.root-servers.net. -clipfish.de. -carmenmarques.blogspot.com. -36.60.5.187.in-addr.arpa. -j35i1w8gj.j19t9k7s. -a.root-servers.net. -19.77.228.67.in-addr.arpa. -translateru.livejournal.com. -sidewinder.makedesignnotwar.com. -mm.admob.com. -elpormsabb.tm. -lefcobank.ru. -www.starpirates.net. -css.lainformacionalsegundo.com. -otmail.com. -oligoi.com. -204.70.93.186.in-addr.arpa. -dark-neo.cc. -windows.microsoft.com. -a2.sphotos.ak.fbcdn.net. -197.16.18.186.in-addr.arpa. -player.gametreat.com. -www.update.microsoft.com. -s-static.ak.facebook.com. -www.trailertrashwhores.com. -db._dns-sd._udp.lan. -isatap.home. -www.facebook.com. -i2.ytimg.com. -mail.netscape.everyone.net. -hpinnigleek.polyvore.com. -birdman.seriespepito.com. -www.google.com. -38-courier.push.apple.com. -moritz.si. -www.caepe.org.ar. -photos-a.ak.fbcdn.net. -214.18.168.192.in-addr.arpa. -www.aurn.com. -a.root-servers.net. -deweysquare.com.s200b2.psmtp.com. -ksn5-12.kaspersky-labs.com. -teredo.ipv6.microsoft.com. -crl.globalsign.net. -static.ak.fbcdn.net. -124.44.59.85.in-addr.arpa. -www.google.com. -cert-commerce.zune.net. -idcindia.com.s7a2.psmtp.com. -145.244.193.187.in-addr.arpa. -mscrl.microsoft.com. -photos-d.ak.fbcdn.net. -www.mlfnt.com. -wpad. -_431_27_2. -a3.sphotos.ak.fbcdn.net. -vis.stanford.edu. -ecpics.hardsextube.com. -static.slide.com. -124.54.209.190.in-addr.arpa. -c2h1-roc.smtp.bti.net.ph. -www.jmydm.com. -pixel.facebook.com. -mypacks.net. -thethingsgirlslove.tumblr.com. -spamhunter.attend.jp. -m.facebook.com. -246.54.42.201.in-addr.arpa. -69.161.253.190.in-addr.arpa. -us.data.toolbar.yahoo.com. -a8.sphotos.ak.fbcdn.net. -weather.services.conduit.com. -time.chttl.com.tw. -ro.wikipedia.org. -americasbestlending.com. -rsoserv.ru. -www.google.com. -a.root-servers.net. -15.149.220.66.in-addr.arpa. -a.root-servers.net. -ec.atdmt.com. -saabplus.ru. -lead2net.net. -coll.ning.com. -www.nintendowifi.com. -sgsp02.jvc-asia.com.sg. -www.idiomaydeporte.com. -tourshow.ru. -qnkwpkntu.44dl. -apis.google.com. -193.67.139.190.in-addr.arpa. -apps.facebook.com. -es.dilandau.eu. -www.weightlosseasytoday.com. -90.210.160.201.in-addr.arpa. -cdn-http.audio-bible.api.youversion.com. -www.facebook.com. -barbie-doll.programas-gratis.net. -htri.net.s9a2.psmtp.com. -googleads.g.doubleclick.net. -plusone.google.com. -a1.sphotos.ak.fbcdn.net. -link.camelino.ca. -www.facebook.com. -8.130.194.190.in-addr.arpa. -139.120.204.186.in-addr.arpa. -accounts.google.com. -st1.helpmycash.net. -certifier.ru. -translate.googleapis.com. -83.235.177.190.in-addr.arpa. -time-a.nist.gov. -www.youtube.com. -medexfol-online.ru. -tatoogallery.info. -i1.ytimg.com. -215.221.139.216.zen.spamhaus.org. -www.scootertechno.com. -s0.2mdn.net. -204.190.54.65.sbl-xbl.spamhaus.org. -e-2dj6wdmigocjiho.stats.esomniture.com. -120.145.170.201.in-addr.arpa. -unpunto.com. -dns.msftncsi.com. -29.79.191.67.in-addr.arpa. -209.157.121.200.in-addr.arpa. -photos-f.ak.fbcdn.net. -ds.serving-sys.com. -tnb3.4gayfetish.com. -spktech.ru. -platform.ak.fbcdn.net. -2.bp.blogspot.com. -csi.gstatic.com. -eerie-cuties-italian.blogspot.com. -44.13.148.189.in-addr.arpa. -thetruthbehindthescenes.files.wordpress.com. -www.celebrityhousepictures.com. -169.57.237.204.in-addr.arpa. -cdn3.picadmedia.com. -static.genericlink.com. -games.yahoo.com. -a8.sphotos.ak.fbcdn.net. -gravityjack.com. -static.ak.fbcdn.net. -platform.twitter.com. -d15gt9gwxw5wu0.cloudfront.net. -www.gstatic.com. -a4.sphotos.ak.fbcdn.net. -www.youtube.com. -www.youtube.com. -10.148.204.187.in-addr.arpa. -ntp.glb.nist.gov. -theshowguide.co.uk. -223.243.35.189.in-addr.arpa. -manfredi.ru. -mail.mepc-consultants.com. -static.ak.fbcdn.net. -quatrx.com. -profile.ak.fbcdn.net. -2leep.com. -www.pulpinternational.com. -www.searchqu.com. -mscrl.microsoft.com. -www.rollingcounters.com. -albavideo.blogspot.com. -bouislendlease.com. -fxfeeds.mozilla.com. -nanmckay.com. -fbcdn-profile-a.akamaihd.net. -www.umi.com.co. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -photos-d.ak.fbcdn.net. -211.219.103.190.in-addr.arpa. -7072697361636f6d.313132.326f37.6e6574.80h42eb8ba6.webcfs00.com. -a.root-servers.net. -svali.ru. -dnl-01.geo.kaspersky.com. -www.google.com. -cnfg.montiera.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -ax.init.itunes.apple.com. -a1.sphotos.ak.fbcdn.net. -safebrowsing-cache.google.com. -www.terapia-fisica.com. -advoconsult.com. -117.222.26.96.in-addr.arpa. -client5.dropbox.com. -3d.qdq.com. -cs.wikipedia.org. -0-56.channel.facebook.com. -. -122.164.100.177.in-addr.arpa. -csmx5.sover.net. -lgbp.podbean.com. -safebrowsing-cache.google.com. -www.operacarolina.org. -time.chttl.com.tw. -99.2.207.186.in-addr.arpa. -prensaciudadana.com. -maximonline.com.s7b1.psmtp.com. -dns.msftncsi.com. -binupdate.mail.ru. -denis.stalker.h3q.com. -wsubompxa.n29p1m0j. -9.229.118.85.in-addr.arpa. -tvtodo.com. -wconect.com.br. -fonts.googleapis.com. -11.164.132.109.in-addr.arpa. -eu.dockers.com. -a5.sphotos.ak.fbcdn.net. -www.elpuertodesantamaria.es. -a6.sphotos.ak.fbcdn.net. -_900_39_1. -www.coches-es.com. -relay-logs-p-1.oxigen.net. -4.140.177.216.in-addr.arpa. -bs.serving-sys.com. -delta2.tatungmx.com. -diantzdesign.info. -en.wikipedia.org. -www.deltares.nl. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -mail.santarosasells.com. -wpad.corp.ipgnetwork.com. -endtimespropheticwords.wordpress.com. -kingsfurniture.co.uk. -us.i1.yimg.com. -gritton-com.mail.eo.outlook.com. -174.203.39.190.in-addr.arpa. -google.com. -imap.gmail.com. -lindson.com. -www.phoenixpermaculture.org. -pixel.facebook.com. -245.244.28.120.in-addr.arpa. -apps.facebook.com. -twitter.com. -photos-c.ak.fbcdn.net. -167.236.174.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -c.msn.com. -_603_12_1. -www.youtube.com. -db._dns-sd._udp.0.129.37.10.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -k7eku:l7b.e79p7f4d. -insecta.isladejuegos.es. -interaseo.com.co. -amx.blueridgecarpet.com.redcondor.net. -kissing-games.dressup.me. -i2.ytimg.com. -googleads.g.doubleclick.net. -a7.sphotos.ak.fbcdn.net. -47.181.240.216.in-addr.arpa. -about-chinesefood.com. -134.244.226.189.in-addr.arpa. -buzzhunt.co.uk. -www.facebook.com. -s20.vuclip.com. -af.avg.com. -maturescreenshots.blogspot.com. -www.googletagservices.com. -domino.automation.rockwell.com. -longisland.newsday.com. -21.87.51.190.in-addr.arpa. -whos.amung.us. -202.82.184.201.in-addr.arpa. -96.114.229.190.in-addr.arpa. -alt1.gmail-smtp-in.l.google.com. -a.root-servers.net. -www.core-learning.com. -samaratoday.ru. -photos-f.ak.fbcdn.net. -www.adobe.com. -s4.histats.com. -www.google.com. -39.12.29.83.in-addr.arpa. -agglo-lepuyenvelay.fr. -cellbio.com. -mail.honoe.com. -artsyspot.disqus.com. -www.can-global.com. -static.ak.fbcdn.net. -www.pickupsplus.com. -a3.twimg.com. -landingpages.bpcdn.net. -go.srvnow.com. -ntp.glb.nist.gov. -cfh.wapp.wii.com. -a6.sphotos.ak.fbcdn.net. -dns.msftncsi.com. -surfcheap.com. -uu1.orbitdownloader.com. -mx.zwebtech.com. -danlent.com. -a.root-servers.net. -3fdzznnil.74gj. -59.214.38.187.in-addr.arpa. -listas.20minutos.es. -53.38.174.189.in-addr.arpa. -a2.da1.akamai.net. -www.google.com. -www.facebook.com. -248.232.187.186.in-addr.arpa. -103.23.84.188.in-addr.arpa. -mx1.triera.net. -a.root-servers.net. -cgey.com. -blog.coquipr.com. -gft-us.s3.amazonaws.com. -rs992tl5.rapidshare.com. -m.youtube.com. -vertvdeportes.chatango.com. -www.googleadservices.com. -clients1.google.com. -63.130.171.189.in-addr.arpa. -gallery.clickthecity.com. -static.ak.fbcdn.net. -138.130.52.186.in-addr.arpa. -secure-uk.imrworldwide.com. -tag.admeld.com. -12.63.6.189.in-addr.arpa. -gmail.com. -www.pixazza.com. -adspaces.ero-advertising.com. -comcast.net. -pathway.net.com. -141.196.8.200.in-addr.arpa. -www.tetovani66.cz. -www.eyesskyward.com. -www.pantiesflash.com. -img39.ownskin.com. -google.com. -graph.facebook.com. -127.51.175.187.in-addr.arpa. -thinbrowser.net. -my.yahoo.com. -a.root-servers.net. -60.126.110.87.in-addr.arpa. -www.televisa.com.ar. -158.110.172.187.in-addr.arpa. -www.empresaexterior.com. -www.luismiguelsite.com. -mass10.massmulti.hop.clickbank.net. -133.184.68.67.in-addr.arpa. -45.coll.ning.com. -ax.init.itunes.apple.com. -audrinaxo.celebuzz.com. -bug.report.url. -www.nimsoft.com. -www.alltimemedical.com. -195.26.36.186.in-addr.arpa. -sun.idiom.com. -profile.ak.fbcdn.net. -27.243.132.190.in-addr.arpa. -www.hi.is. -19.10.73.190.in-addr.arpa. -productads.amazon.com. -toc.music.metaservices.microsoft.com. -www.google.com. -www.tubepleasure.com. -feedburner.google.com. -hhgo.com. -apps.facebook.com. -www.carlberry.co.uk. -tiger.apscc.nau.edu. -103.122.32.83.in-addr.arpa. -www.google.com. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -profile.ak.fbcdn.net. -www.belkin.com. -a.root-servers.net. -a.root-servers.net. -fogeli.co.il. -api.webrep.avast.com. -safebrowsing-cache.google.com. -googleads.g.doubleclick.net. -mx.dreambuilderspr.com. -fr-fr.facebook.com. -232.103.158.109.in-addr.arpa. -25.218.72.190.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -spam3.fpinet.net. -safebrowsing-cache.google.com. -110.253.206.173.in-addr.arpa. -56.216.73.190.in-addr.arpa. -www.imdb.com. -yahoo.ccom. -8.174.115.66.in-addr.arpa. -pagead2.googlesyndication.com. -digitalcommons.pace.edu. -kamalballan.ru. -212.92.159.189.in-addr.arpa. -220.10.183.189.in-addr.arpa. -168.61.87.186.in-addr.arpa. -clients1.google.com. -thedottedi.net. -download.skype.com. -90.92.255.190.in-addr.arpa. -personal.de.avira-update.net. -news.google.nl. -webcache.googleusercontent.com. -google.com.mx. -a1.mzstatic.com. -srtravel.com. -d37saox78.s55w4m9r. -translate.googleapis.com. -utilestoonix.wordpress.com. -www.rsagroup.com.ar. -pjpur.tripod.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.treadmill-ratings-n-reviews.net. -a5.sphotos.ak.fbcdn.net. -col.stb00.s-msn.com. -photos-g.ak.fbcdn.net. -www.dasa.mod.uk. -pixel.facebook.com. -www.humansciences.mq.edu.au. -9nl37njin.m42h4c9p. -tc.v4.cache4.c.pack.google.com. -diamondgame.com.s9a1.psmtp.com. -fmc8jixpr.39vi. -b.scorecardresearch.com. -www.facebook.com. -photos-d.ak.fbcdn.net. -12.142.121.95.in-addr.arpa. -67.220.49.71.in-addr.arpa. -as.cd.impact-ad.jp. -ksn1-11-part1.kaspersky-labs.com. -ksn3-11.part2.kaspersky-labs.com. -smtp.evidence.com. -www.usrecallnews.com. -63.112.212.201.in-addr.arpa. -55.15.237.189.in-addr.arpa. -231.252.24.72.in-addr.arpa. -plusone.google.com. -a2.sphotos.ak.fbcdn.net. -www.bywifi.com. -elcaballerodelaluna2.blogspot.com. -clients1.google.com. -dolarhoy.com. -csi.gstatic.com. -www.apple.com. -web.de. -s.ytimg.com. -sedty.com. -a6.sphotos.ak.fbcdn.net. -ws.faad.co. -86.120.189.24.in-addr.arpa. -e3353.c.akamaiedge.net. -www.cidra.com. -sundogfirearms.com. -a995.mm1.akamai.net. -pix.speedbit.com. -platform.linkedin.com. -dns.msftncsi.com. -www.diariopyme.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -guidosfreshmaretplace.com. -mail.mcewancpa.com. -a.root-servers.net. -227.212.171.189.in-addr.arpa. -248.216.82.200.in-addr.arpa. -nist1-sj.ustiming.org. -corplodging.com.2.0001.arsmtp.com. -87.100.93.201.in-addr.arpa. -a.root-servers.net. -www.maximhuerta.com. -www.gmail.google.com. -_ldap._tcp. -wnu.naughtyamerica.com. -www.googleadservices.com. -p02-mobilebackup.icloud.com.akadns.net. -www.update.microsoft.com. -www.kingmax.com. -secure.shared.live.com. -mtalk.google.com. -i3.tagstat.com. -mail.megasila.ru. -www.boom.ge. -my.bureauveritas.com. -profile.ak.fbcdn.net. -ess.khhq.net. -www.diaryofstyleblog.com. -us.tomsgames.com. -91.68.152.81.in-addr.arpa. -clients2.google.com. -www.germanshepherdrescue.co.uk. -profile.ak.fbcdn.net. -91.253.164.85.in-addr.arpa. -mail2.adcohvac.com. -21.27.26.201.in-addr.arpa. -eanes.k12.tx.us. -164.81.135.187.in-addr.arpa. -media.photobucket.com. -218.224.227.61.in-addr.arpa. -172.192.138.174.in-addr.arpa. -243.77.7.75.in-addr.arpa. -rad.msn.com. -www.collegepartyhouse.com. -apps.facebook.com. -sad-stone.com. -www.iwdeepblowjob.com. -55.33.220.186.in-addr.arpa. -a.root-servers.net. -ca.answers.yahoo.com. -profile.ak.fbcdn.net. -listorbit.net. -201.51.21.190.in-addr.arpa. -19.246.215.201.in-addr.arpa. -cdn.api.twitter.com. -ausdcx64amer19.amer.dell.com. -i3.ytimg.com. -elpoderdelpensamientopositivo.over-blog.es. -a8.sphotos.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -invision-studios.com. -c0013979.ssl.cf1.rackcdn.com. -samzas.ru. -shadow.atkingdom.com. -corporateapartmentsinbrazil.com. -adornatusolapa.blogspot.com. -rock799.no-ip.biz. -static.ak.connect.facebook.com. -139.154.171.189.in-addr.arpa. -time.chttl.com.tw. -sa.bbc.com. -220.122.146.189.in-addr.arpa. -widgets.montiera.com. -www.rdistore.com. -mx.medwell.us. -ads2.msads.net. -creative.ak.fbcdn.net. -i1.ytimg.com. -mail.red-wagon.com. -mozilla.cdn.leaseweb.com. -search2.fcc.gov. -intelisyscorp.com.inbound10.mxlogic.net. -a.root-servers.net. -englishpod.com. -b.c-0.19-21095008.30081.1518.19d3.3ea1.410.0.rqw7f386mgq5i2vj71kkslquhj.avqs.mcafee.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -212.23.87.190.in-addr.arpa. -skype.com.multi.surbl.org. -alerts.conduit-services.com. -www.facebook.com. -s.ytimg.com. -e3353.c.akamaiedge.net. -p.twimg.com. -time.chttl.com.tw. -static.ak.fbcdn.net. -www.undecimahora.org. -www.cronistasoficiales.com. -cid-a602674d8489e429.users.storage.live.com. -cs10095.vk.com. -b.scorecardresearch.com. -i4.ytimg.com. -www.abc.es. -www.laprovinciadicremona.it. -a.root-servers.net. -store.urge.com. -a3.sphotos.ak.fbcdn.net. -urs.microsoft.com. -bioguide.congress.gov. -65.65.204.187.in-addr.arpa. -harbingermortgage.com. -a1.sphotos.ak.fbcdn.net. -phx-sync552.services.mozilla.com. -plusone.google.com. -4105616.frasesinolvidables1.com.ar. -plus.google.com. -www.adidasrunningday.com. -a0.twimg.com. -tracker.thepiratebay.org. -tinypets.tinyco.com. -external.ak.fbcdn.net. -203.96.51.190.in-addr.arpa. -gs-loc.isg-apple.com.akadns.net. -a3.sphotos.ak.fbcdn.net. -instagr.am. -thinkitsystems.net. -nefteport.ru. -a.root-servers.net. -a3.twimg.com. -elite-servers.com.ua. -www.ps2-fate.com. -imap-ssl.mail.yahoo.com. -img.atwiki.jp. -creative.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -prada-love.tumblr.com. -inbound.onecallcom.net.netsolmail.net. -www.coverjunkie.com. -www.remediar.gov.ar. -221.150.71.93.in-addr.arpa. -www.itescam.edu.mx. -www.cumtobun.com. -static.ak.fbcdn.net. -google.com. -es.wikipedia.org. -. -relay.voice.edge.messenger.live.com. -246.202.58.186.in-addr.arpa. -s-static.ak.facebook.com. -151.60.104.86.in-addr.arpa. -a.root-servers.net. -s-static.ak.fbcdn.net. -144.251.27.190.in-addr.arpa. -download.windowsupdate.com. -schomburg.ru.s200a2.psmtp.com. -www.scanalert.com. -a.root-servers.net. -photos-d.ak.fbcdn.net. -grim.bungie.org. -photos-h.ak.fbcdn.net. -www.kktanhp.com. -mailserver.pacificlifegroup.com. -199.192.176.189.in-addr.arpa. -170.19.230.189.in-addr.arpa. -antropologia-online.blogspot.com. -ccbill.com. -live-receptionist.com. -i1118.photobucket.com. -dipaul.ru. -meta.charlesworks.com. -mail.yimg.com. -s0.2mdn.net. -rcanoevents.com.1.0001.arsmtp.com. -lb._dns-sd._udp.0.224.16.172.in-addr.arpa. -shtoryizabel.ru. -186.99.152.187.in-addr.arpa. -thumbs1.ebaystatic.com. -68.95.82.203.in-addr.arpa. -a.root-servers.net. -ntp.glb.nist.gov. -allenskenpojujitsu.com. -subs.sams.bw.semcs.net. -api.twitter.com. -www.waynegraham.com. -sovitas.ru. -crl.microsoft.com. -lindsey.edu. -106.249.143.201.in-addr.arpa. -30.100.217.166.in-addr.arpa. -wonder-shop.ru. -cloud-search.linkury.com. -138.76.22.113.in-addr.arpa. -www.mayhemuk.co.uk. -www.clubmaxmikita.com. -www.bollywoodsamachar.com. -www.calibex.com. -v1.cache2.c.youtube.com. -ajax.googleapis.com. -xyte4aqlg.m68c7c4h. -a1408.w43.akamai.net. -wy.com. -kiel.de. -dns.msftncsi.com. -2ab7t4h6m.k78x4b0y. -api.conduit.com. -a.root-servers.net. -ocsp.dpwn.net. -claritycvc.com. -www.facebook.com. -ingdirect.com.au. -picasaweb.google.ca. -clients2.google.com. -mi-technologies.com.2.0001.arsmtp.com. -www.skankazoid.com. -mail2.micci.com. -221.209.223.201.in-addr.arpa. -www.xvideosdecul.com. -e-press.ru. -apps.facebook.com. -tracking.traviangames.com. -assets.dealply.com. -s-static.ak.fbcdn.net. -jbtfoodtech.ru. -s0.2mdn.net. -message.real.com. -eo.wikipedia.org. -a.root-servers.net. -photos-a.ak.fbcdn.net. -mail2.sw-hk.com. -wow.lk. -google.com. -upload.wikimedia.org. -h.live.com. -www.facebook.com. -caifane.blogspot.com. -col.stb00.s-msn.com. -savoia.net. -steveelling.blogs.cbssports.com. -13.222.149.186.in-addr.arpa. -109.221.29.99.in-addr.arpa. -1.bp.blogspot.com. -204.228.40.83.in-addr.arpa. -www.google-analytics.com. -mitmproxy.org. -s1016.photobucket.com. -getaway-travel.com. -231.241.19.176.in-addr.arpa. -si0.twimg.com. -a.root-servers.net. -www.graduatearchitecture.com. -a.root-servers.net. -s-static.ak.facebook.com. -katolicamusic.blogspot.com. -edge.quantserve.com. -treocapitalgroup.com.inbound10.mxlogicmx.net. -pixel.facebook.com. -204.122.253.189.in-addr.arpa. -bmx.waseca.k12.mn.us.redcondor.net. -a8.sphotos.ak.fbcdn.net. -s.youtube.com. -apps.facebook.com. -www.arquimov.com.ar. -bton.ac.uk. -138.104.114.87.in-addr.arpa. -ad.where.com. -pagead2.googlesyndication.com. -orcart.facebook.com. -pubads.g.doubleclick.net. -ak.imgfarm.com. -a.root-servers.net. -r._dns-sd._udp.lan. -www.proyectar.com.mx. -mtalk.google.com. -latin.technetium.be. -mail.eastwardho.net. -g8ajzzxh9.94pm. -ssl.gstatic.com. -www.maxgxl.com. -jamesdot.com. -53.224.89.186.in-addr.arpa. -www.googletagservices.com. -bonzacards.com. -gei.net. -ordrmopmmiihqhhe.com. -www.youtube.com. -217.160.41.200.in-addr.arpa. -es.sizegainplus.com. -www.facebook.com. -m7j3m1z4j.77nz. -corelmania.com. -s.ytimg.com. -104.173.110.189.in-addr.arpa. -indore.quikr.com. -lasmilcancionesdel2000.blogspot.com. -photos-f.ak.fbcdn.net. -static.app.widdit.com. -inbound.sonicvision.com.netsolmail.net. -google.com. -mx.ce.net.cust.a.hostedemail.com. -jytv5afi4.u78b4g3g. -photos-c.ak.fbcdn.net. -spritelight.com. -b.mouseflow.com. -194.71.119.46.in-addr.arpa. -o2ejza2hs.s86w6c5a. -external.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -login.live.com. -etown.k12.ky.us. -www.setyourtiming.com. -mke-inc.com.inbound25.mxlogic.net. -huntergathererer.blogspot.com. -net.philsite.net. -register.hp.com. -bluelight.net. -32.250.228.190.in-addr.arpa. -plusone.google.com. -blcomp.co.uk. -api.twitter.com. -chilloutpoint.com. -yui.yahooapis.com. -dc-mail-f01.quelle.ru. -a4.sphotos.ak.fbcdn.net. -ad-g.doubleclick.net. -mx6.me.com.akadns.net. -vidavet.es. -227.201.69.173.in-addr.arpa. -0.tqn.com. -xetgs.xboxlive.com. -ikoo.zedo.com. -blackberryforums.pinstack.com. -apps.facebook.com. -www.elimperiodelsexo.com. -kb2.adobe.com. -algebraweb.net. -ashes-to-ashes.seriespepito.com. -113.37.198.190.in-addr.arpa. -mail.alivegames.com. -theiphonewiki.com. -ssl.gstatic.com. -teredo.ipv6.microsoft.com. -198.78.122.84.in-addr.arpa. -www.thecopiercompany.com.au. -www.10wallpaper.com. -bmlfuw.gv.at. -www.googletagservices.com. -14.179.192.187.in-addr.arpa. -www.google.com. -www.adobe.com. -238.163.230.85.in-addr.arpa. -cdn.api.twitter.com. -www.fat-sex.net. -www.adidaswings-au.com. -a.root-servers.net. -www.flowersfoods.com. -www.qw.com. -loading5.widdit.com. -xmpp003.hpeprint.com. -www.flowelectro.net. -b._dns-sd._udp.lan. -statse.webtrendslive.com. -156.165.86.201.in-addr.arpa. -252.143.159.189.in-addr.arpa. -affiliation.qcnscruise.com. -rcp.na.blackberry.com. -s-static.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -nerienlouper.tv-replay.fr. -photos-a.ak.fbcdn.net. -home.mywebsearch.com. -googleads.g.doubleclick.net. -www.maturebritish.com. -api-read.facebook.com. -fr-fr.facebook.com. -creative.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -www.kanjukulive.com. -a.root-servers.net. -video.dailynylongalleries.com. -ktpae.gr. -www.wallcreate.com. -homta.ajaxpong.com. -arms.kazan.su. -a.root-servers.net. -www.regaloselescaparate.com. -gogil.com. -photos-d.ak.fbcdn.net. -www.update.microsoft.com. -www.facebook.com. -a6.sphotos.ak.fbcdn.net. -14.118.74.189.in-addr.arpa. -plus.google.com. -a.root-servers.net. -world3.knightfight.se. -nickzucc.blogspot.com. -www.google.com. -www.neoreviews.org. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -lifestyle.allwomenstalk.com. -google.com. -. -platform.twitter.com. -okmbui.com. -a8.sphotos.ak.fbcdn.net. -s.ytimg.com. -5mkqtnqxl.15db. -a3.sphotos.ak.fbcdn.net. -www.epoxyproducts.com. -ymcabra.org. -mail.abix.ch. -www.arrowofmorality.com. -images.dragspecialties.com. -232.45.1.201.in-addr.arpa. -89.167.195.190.in-addr.arpa. -www.rareflora.com. -sn1msg1010720.gateway.messenger.live.com. -www.movietome.com. -a4.sphotos.ak.fbcdn.net. -www.wupload.com. -110.158.89.201.in-addr.arpa. -yui.yahooapis.com. -guzzoni.apple.com. -www.tusconfesiones2.com.ar. -30.178.241.201.in-addr.arpa. -tynan-darcy.com.s200a2.psmtp.com. -accounts.google.com. -arorafashions.com. -wikisource-lb.pmtpa.wikimedia.org. -239.7.137.118.in-addr.arpa. -. -rpig-ltd.com. -107.197.148.189.in-addr.arpa. -messenger.hotmail.com. -bg.stylem.com. -a.root-servers.net. -3.186.242.200.in-addr.arpa. -static.cyworld.com.cn. -updatekeepalive.mcafee.com. -www.ge.com. -www.aynax.com. -griffin.co.uk. -profile.ak.fbcdn.net. -87lf3f6hh.11xi. -theplazaregency.com. -nordfarm.se. -ad.yieldmanager.com. -aol.com. -217.199.165.141.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -1.189.35.187.in-addr.arpa. -toolbarqueries.google.com. -94.151.55.189.in-addr.arpa. -1.gravatar.com. -fs19.formsite.com. -ajax.googleapis.com. -rts.phn.doublepimp.com. -graph.facebook.com. -mmi.explabs.net. -www.podtropolis.com. -ads.mbendi.com. -ssl.gstatic.com. -ad19.feeldmc.com. -polynext.ru. -hotmail.com. -pagead2.googlesyndication.com. -ajax.googleapis.com. -a.root-servers.net. -_ldap._tcp. -mx1.overline.com. -artion.dk. -www.mediatoday.co.kr. -ask.scriptmafia.org. -kay.cantonrep.com. -pixel.quantserve.com. -182.156.136.190.in-addr.arpa. -secure.wlxrs.com. -files.discountechnology.com. -oascentral.stackmag.com. -i3.ytimg.com. -www.dcx.co.kr. -external.ak.fbcdn.net. -pagead2.googlesyndication.com. -bbb.at. -assets1.procpr.org. -internet.sbi.com. -ii7kgap58.n62f8h9a. -zynga1-a.akamaihd.net. -c14.smaato.net. -inbound.sbmelectronics.com.cust.comcastmailservice.com. -a5.sphotos.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -inbound.theangelus.com.netsolmail.net. -id.google.com.mx. -safebrowsing-cache.google.com. -171.20.58.186.in-addr.arpa. -www.hippiecamper.com. -6-courier.sandbox.push.apple.com. -ssl.google-analytics.com. -vcm.cz. -dev. -mail.rootcom.net. -a.root-servers.net. -b._dns-sd._udp.lan. -photos-d.ak.fbcdn.net. -photos-f.ak.fbcdn.net. -randbrentals.com. -a.root-servers.net. -m.addthisedge.com. -a.root-servers.net. -166.81.68.201.in-addr.arpa. -ludys.com. -tgppsd2.triad-group.net. -powerspan.com.s8b2.psmtp.com. -d2100078.xoom.it. -m.adnxs.com. -a.analytics.yahoo.com. -c-0.19-230f1041.40081.1518.19d3.3ea1.410.0.kn9e331jip5d71gr69pjl3h56t.avqs.mcafee.com. -www.pandora.com. -www.foxsportsla.com. -. -apis.google.com. -psdresources.com. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -media.wix.com. -www.milksmartmama.com. -www.bywifi.com. -229.19.167.187.in-addr.arpa. -internet.downv.com. -portal9.7803986842.com. -a.root-servers.net. -pixel.facebook.com. -121.199.247.92.in-addr.arpa. -pcim-02.psohealth.com. -pix04.revsci.net. -32-courier.push.apple.com. -gate.ygi.msk.ru. -www.drtubercams.com. -wpqsl2zh6.24zh. -clients1.google.com. -s.sharecare.com. -www.everycollegegirl.com. -pixel.facebook.com. -s0.2mdn.net. -113.184.30.190.in-addr.arpa. -a.root-servers.net. -3.189.31.83.in-addr.arpa. -msc.wlxrs.com. -dsflash.es. -boq.com. -ssl.gstatic.com. -storage.conduit.com. -a8.sphotos.ak.fbcdn.net. -static1.spilcdn.com. -fbcdn-profile-a.akamaihd.net. -i4.ytimg.com. -mail.advancebankus.com. -joequispe.com. -www.ic.daad.de. -www.rackspace.com. -connect.facebook.net. -mail.mced.com. -125.189.176.66.in-addr.arpa. -w7fwzaaue.22iq. -clients1.google.com. -cgi1.ebay.com. -acs.manuscriptcentral.com. -www.humor1.net. -139.197.86.200.in-addr.arpa. -www.wordreference.com. -139.105.47.211.in-addr.arpa. -piola.it. -a2.sphotos.ak.fbcdn.net. -es.kioskea.net. -berry71bleu.blogspot.com. -user.ipcam.hk. -i55.tinypic.com. -transword.ru. -veronicascornucopia.com. -common.retronyms.com. -vestidosdenovia.ybodas.com. -sc2.rules.mailshell.net. -free-math.ru. -euro2012.interia.pl. -kumisenshi.cl. -a.root-servers.net. -google.com. -garaj.ru. -a.root-servers.net. -crl.thawte.com. -www.investir.fr. -a7.sphotos.ak.fbcdn.net. -246.162.250.201.in-addr.arpa. -140.14.0.181.in-addr.arpa. -145.230.211.201.in-addr.arpa. -join.tissuequeens.com. -support.google.com. -tap2-cdn.rubiconproject.com. -freewebdesigntutorials.com. -134.105.232.24.in-addr.arpa. -fr-fr.facebook.com. -www.pigeonelite.com. -84.7.35.81.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -v7f61npcy.87gs. -t2.gstatic.com. -csi.gstatic.com. -hotmail.com. -tick.stdtime.gov.tw. -a.root-servers.net. -a.root-servers.net. -a.root-servers.net. -co.portage.wi.us. -www.anastasianielsen.com. -g.live.com. -i4.ytimg.com. -184.156.183.189.in-addr.arpa. -sites.google.com. -apps.facebook.com. -124.56.167.187.in-addr.arpa. -www.varieteguineenne.com. -i41.tinypic.com. -neilpeart.net. -mail.philadelphiasign.com. -i3.ytimg.com. -ss7g3r43p.x26f9p9g. -mail.cvproducts.com. -a.root-servers.net. -www.cepesju.org. -144.84.90.186.in-addr.arpa. -197.12.122.187.in-addr.arpa. -s-static.ak.fbcdn.net. -www.luna-maya.com. -m.ak.fbcdn.net. -bicycling.about.com. -m4.licdn.com. -alertas.wikio.es. -content.yieldmanager.edgesuite.net. -partner.googleadservices.com. -artisticaccentsonline.com. -zynga2-a.akamaihd.net. -29.61.224.190.in-addr.arpa. -platform.ak.fbcdn.net. -www.adultsitelaw.com. -m.google.com. -www.medicalfashioncollection.com. -profile.ak.fbcdn.net. -fotos.muyzorras.com. -maricarmensalas.blogspot.com. -www.bsef.com. -46.99.139.112.in-addr.arpa. -checkip.dyndns.org. -61.125.234.95.in-addr.arpa. -ocsp.thawte.com. -www.milfgfs.com. -111.206.152.189.in-addr.arpa. -socinforum.ru. -orig-10006.conduit.cotcdn.net. -orosucio.madryn.com. -1.203.159.189.in-addr.arpa. -udc.msn.com. -photos-e.ak.fbcdn.net. -inbound.advancedidcorp.com.netsolmail.net. -182.82.37.81.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -www.youtube.com. -a4.sphotos.ak.fbcdn.net. -photos-f.ak.fbcdn.net. -ad.yieldmanager.com. -69.180.29.183.in-addr.arpa. -www.mundoforo.com. -ajax.googleapis.com. -connect.facebook.net. -chatenabled.mail.google.com. -clients1.google.com. -98.1.56.157.in-addr.arpa. -accentlights.com. -cdn.api.twitter.com. -vocypyt.com. -182.125.168.192.in-addr.arpa. -pflanigan.com. -sites.google.com. -zman22674.u.yuku.com. -hulkshare.com. -imgn.dt07.net. -motors.shop.ebay.com. -iframes.wildfireapp.com. -static.ak.fbcdn.net. -gfx5.hotmail.com. -plusone.google.com. -a.root-servers.net. -www.colby-sawyer.edu. -kiss.crimea.ua. -tc26.easythumbhost.com. -js.wlxrs.com. -40.154.192.187.in-addr.arpa. -loading.retry.widdit.com. -fsedistffalal.mp. -www.gstatic.com. -msc.wlxrs.com. -a.c.2s-0.19-a70f0211.5140081.1518.19d4.3ea1.210.0.v1gz6g6fhcftq9amdt4ssmde7v.avqs.mcafee.com. -intellanetad.com. -piclist.friendfinder.com. -115.214.30.78.in-addr.arpa. -iphone-wu.apple.com. -world76.runescape.com. -google.com. -etehplus.ru. -gillmorgang.techcrunch.com. -www.google-analytics.com. -www.smartbuyglasses.co.uk. -boolable.ca. -developers.facebook.com. -www.bambi.de. -www.shantaram.com. -photos-g.ak.fbcdn.net. -cluster8.eu.messagelabs.com. -a.root-servers.net. -services.winamp.com. -photo-tech.com. -www.backlink.de.lv. -www.facebook.com. -ygj32yzri.k84m7d4c. -www.wikimapia.com. -a1.sphotos.ak.fbcdn.net. -120.204.195.187.in-addr.arpa. -mlocate.spotlife.net. -agmennox.ru. -quickpay.carmunity.de. -www.yobt.com. -templatesaver.com. -webcache.googleusercontent.com. -www.curious-straight-boys.com. -75.67.199.190.in-addr.arpa. -facebook.com. -realtracks.com. -hulkshare.com. -142.249.82.200.in-addr.arpa. -mailserver.knebworthhouse.com. -www.derechopenalenlared.com. -s-static.ak.facebook.com. -www9.effectivemeasure.net. -t1.pdanet.co. -www.facebook.com. -daviscollege.edu.inbound25.mxlogicmx.net. -mail.iwlink.net. -c76.altospam.com. -time.chttl.com.tw. -supl.nokia.com. -neuffr.lan. -xmjbyvveu.j52d7p9s. -mx.quartz.synacor.com. -93.95.243.189.in-addr.arpa. -www.bitdefender.com. -id.google.com. -ib.adnxs.com. -pop.gmx.de. -238.166.172.189.in-addr.arpa. -24.147.161.189.in-addr.arpa. -102.151.28.75.in-addr.arpa. -newtab.conduit-hosting.com. -mail.kiwa.nl. -s-static.ak.fbcdn.net. -85.168.120.200.in-addr.arpa. -96.167.30.46.in-addr.arpa. -www.creaturespot.com. -141.16.158.190.in-addr.arpa. -us.bc.yahoo.com. -52.221.165.122.in-addr.arpa. -mail.triwarp.com. -bo.portalmundos.com. -download808.avast.com. -u6790.96.spylog.com. -teredo.ipv6.microsoft.com. -www.futbolgesdeport.com. -touch.facebook.com. -bh.contextweb.com. -101.239.49.190.in-addr.arpa. -cinema.gallery.net.pluzmedia.com. -28.213.141.201.in-addr.arpa. -hurkens.iae-csic.org. -mailx1.iitm.ac.in. -a.root-servers.net. -144.178.43.190.in-addr.arpa. -www.nelsonautonews.com. -wpad.home. -www.tifozi.info. -interact.com. -28.18.17.190.in-addr.arpa. -t1:gss52f.14dg. -127.120.145.187.in-addr.arpa. -profile.ak.fbcdn.net. -folkloremiperu.com. -mail.minowitz.com. -123.37.229.189.in-addr.arpa. -ax.init.itunes.apple.com. -213.121.57.71.in-addr.arpa. -6.130.164.81.in-addr.arpa. -www.bdsm365.net. -ur2mkumun.z98p4i6l. -s-3.com. -js.revsci.net. -fusion.google.com. -75.208.2.88.in-addr.arpa. -ad.doubleclick.net. -macbeth.com. -quienmemandabaami.blogspot.com. -westarfunds.com. -narcosphere.narconews.com. -a5.sphotos.ak.fbcdn.net. -safebrowsing-cache.google.com. -www.earningdiary.com. -67.53.212.201.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -fxfeeds.mozilla.com. -157.57.210.178.in-addr.arpa. -a1920.g.akamai.net. -a180.v.phobos.apple.com. -a.root-servers.net. -bay.messenger.services.live.com. -www.golinker.com. -84.233.28.190.in-addr.arpa. -www.google-analytics.com. -photos-h.ak.fbcdn.net. -i2.ytimg.com. -www.dirtydatinglive.com. -s.ytimg.com. -apis.google.com. -tracker.torrentbox.com. -a4.sphotos.ak.fbcdn.net. -d1j68ux4ukg4g1.cloudfront.net. -_625_60_6. -www.facebook.com. -aglobal.go.com. -113.246.140.220.in-addr.arpa. -widgets.twimg.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -static.ak.fbcdn.net. -252.187.250.201.in-addr.arpa. -i4.ytimg.com. -pixel.facebook.com. -eaamericas.ecolab.com. -25.204.58.95.in-addr.arpa. -twitter.com. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -vu57aqmik.48mp. -semivrat.ru. -www.ikenvape.com. -db5:3:3qv.25wf. -www.moviequotesandmore.com. -chorrol.com. -mail.wingscc.com. -cdn.api.twitter.com. -i3.ytimg.com. -de-de.facebook.com. -t1.softonicads.com. -pubads.g.doubleclick.net. -smtp.xcountry.tv. -240.12.166.71.in-addr.arpa. -profile.ak.fbcdn.net. -237.17.126.188.in-addr.arpa. -www.mcanime.net. -content.yieldmanager.edgesuite.net. -imagos.escortsite.com. -monster.frivmini.com. -98.250.219.80.in-addr.arpa. -connect.facebook.net. -78.225.90.84.in-addr.arpa. -irohe.blogspot.com. -apture.com. -q1sx3dd:r.70jg. -www.nptdiy.com. -metric.starz.com. -profile.ak.fbcdn.net. -webres4.pand.ctmail.com. -photos-d.ak.fbcdn.net. -208.244.158.189.in-addr.arpa. -tottuas.com. -s-static.ak.facebook.com. -tyler.newsvine.com. -www.youpron.com. -mail. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -mailserver.s21.com. -creative.ak.fbcdn.net. -vuelohotel.airfrance.es. -s7.addthis.com. -rhyason.com. -www.bankresearch.org. -cdn.api.twitter.com. -restat.com.s9a1.psmtp.com. -apis.google.com. -cn1.redswoosh.akadns.net. -static.ak.fbcdn.net. -groups.live.com. -113.154.134.186.in-addr.arpa. -www.facebook.com. -rad.msn.com. -www.facebook.com. -80.74.141.201.in-addr.arpa. -vlcr9ii:2.01cs. -dns.msftncsi.com. -www.netlog.com. -a47.photo.store.qq.com. -youtu.be. -37.21.154.189.in-addr.arpa. -s1.trrsf.com. -34-courier.push.apple.com. -img.mediaplex.com. -141.16.174.190.in-addr.arpa. -www.googleadservices.com. -jo.countrysearch.tradekey.com. -mail.google.com. -networld.com. -www.wowjobs.co.nz. -a.root-servers.net. -mscrl.microsoft.com. -_312_06_2. -isvw2.rurallink.gov.my. -a7.sphotos.ak.fbcdn.net. -crl.microsoft.com. -ksde.org. -tenesol-al.com. -sites.google.com. -mail2open.com. -www.allposters.nl. -brigadadesaludpopular.blogspot.com. -200.26.68.108.in-addr.arpa. -mx1.ynemail.com. -_790_51_8. -174.108.193.200.in-addr.arpa. -support.google.com. -www.msftncsi.com. -rmonline.actionsystems.com. -106.24.195.210.in-addr.arpa. -es.answers.yahoo.com. -www.cadaver.org. -170.2.250.111.in-addr.arpa. -www.google.com. -64.107.24.98.in-addr.arpa. -drcranton.com. -www.disenowebenmexico.com. -folkartmuseum.org. -i1.ytimg.com. -clock.fmt.he.net. -g.msn.com. -mail.rfpl.org. -discoverwaterfront.com. -44.73.231.78.in-addr.arpa. -mandiloves.wordpress.com. -az15112.vo.msecnd.net. -cfefd.com. -tc.v2.cache6.c.youtube.com. -netzero.net. -googleads.g.doubleclick.net. -46.232.50.200.in-addr.arpa. -rhpoultry.com. -. -accounts.google.com. -photos-e.ak.fbcdn.net. -www.tweetc.com. -ajax.googleapis.com. -v3.nonxt8.c.pack.google.com. -a8.sphotos.ak.fbcdn.net. -plusone.google.com. -www.teamr.com. -lists.cs.columbia.edu. -ca.wikipedia.org. -a.root-servers.net. -shop.mudshop.com. -1.map.pop6.com. -154.98.54.121.in-addr.arpa. -bbcmundo.com. -twitter.com. -www.ingenico-us.com. -www.evs.ee. -ns02.sumicol.com. -smarticon.geotrust.com. -fido.vsi.ru. -212.24.192.99.in-addr.arpa. -www.goojue.com. -b-0.19-a3096008.481.1518.19d4.3ea1.410.0.gw4z1h94peialrfff35risskvj.avqs.mcafee.com. -ksn2-12.kaspersky-labs.com. -zh-cn.facebook.com. -digrouparchitecture.com.s6a1.psmtp.com. -profile.ak.fbcdn.net. -180.76.113.186.in-addr.arpa. -181.171.56.186.in-addr.arpa. -pixel.facebook.com. -profile.ak.fbcdn.net. -console-ssl.service.playfish.com. -att.wellphone.com. -190.51.7.199.in-addr.arpa. -de.wikipedia.org. -www.creacionenglobo.com.mx. -www.sqm.microsoft.com. -time.chttl.com.tw. -www.max-johnson.blogspot.com. -148.200.29.201.in-addr.arpa. -kmet.ee. -a5.sphotos.ak.fbcdn.net. -ssl.gstatic.com. -plusone.google.com. -sn3.mailshell.net. -fbmessenger2.crispapp.com. -apps.facebook.com. -www.facebook.com. -dotmena.com. -ad-g.doubleclick.net. -29.210.171.189.in-addr.arpa. -pt-br.facebook.com. -alert.services.conduit.com. -bt.peerseed.ru. -250.225.89.186.in-addr.arpa. -izlence.mbirgin.com. -a2.sphotos.ak.fbcdn.net. -uhdu2qejt.09qr. -css.wlxrs.com. -api.facebook.com. -30.167.53.85.in-addr.arpa. -api.webrep.avast.com. -www.ntdtv.jp. -clarin.feedsportal.com. -www.youtube.com. -dubaicountryclub.com. -www.msftncsi.com. -carddav.address.yahoo.com. -absolutelyangie.blogspot.com. -sukinson.ru. -www.primerasexperiencias.com. -9.31.165.90.in-addr.arpa. -a.root-servers.net. -static.aupeo.com. -www.juegos.com. -thegranitegroup.com. -mkportal.net.ru. -android.l.google.com. -226.210.77.200.in-addr.arpa. -www6.inscription.tn. -a.root-servers.net. -crowndiamond.net. -isatap.home. -platform.twitter.com. -holeditk.com. -content.yieldmanager.edgesuite.net. -aa.avg.com. -189.27.125.186.in-addr.arpa. -google.com. -photos-g.ak.fbcdn.net. -public.krasnet.ru. -almibarimposible.files.wordpress.com. -www.purotorrent.com. -img717.imageshack.us. -mail.reiffmolding.com. -17.159.232.77.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.c-0.19-230f7081.d110081.1518.19c2.3ea0.210.0.189i4g7wtbdgc4m6kmvbg52kf6.avqs.mcafee.com. -api.twitter.com. -static.ak.fbcdn.net. -107.16.23.187.in-addr.arpa. -rol.net. -xn--strike-37dbbbbb.ws. -dwexchange.dongwon.com. -www.faceboo.co. -_108_93_8. -u4cesos:c.55vl. -www.nudeslutpics.net. -a2.sphotos.ak.fbcdn.net. -27.137.173.187.in-addr.arpa. -ksn1-11-part1.kaspersky-labs.com. -m.facebook.com. -www.facebook.com. -addictedtothai.ru. -fb-tc-1.farmville.com. -214.246.49.186.in-addr.arpa. -yahoosbc.com. -shiki-comunity.activoforo.com. -rq2.com.s5a2.psmtp.com. -i.imwx.com. -211.234.161.190.in-addr.arpa. -trophy01.np.community.playstation.net. -fox21online.com. -a3.sphotos.ak.fbcdn.net. -www.youtube.com. -214.20.168.192.in-addr.arpa. -www.youtube.com. -cacfrealty.com. -instagr.am. -lexaudit.khn.ru. -a.rad.msn.com. -ads.adxpansion.com. -aspmx.l.google.com. -cuentosyfabulas.wordpress.com. -creative.ak.fbcdn.net. -123.24.167.190.in-addr.arpa. -5.145.57.200.combined.njabl.org. -photos-f.ak.fbcdn.net. -school1415.ru. -pinkchocolate-break.blogspot.com. -buscandoellook.blogspot.com. -external.ak.fbcdn.net. -googleads.g.doubleclick.net. -www.trafficshop.com. -www.facebook.com. -search.conduit.com. -wwba1040.com. -www.theflowermart.com. -www.ladysonia.org. -srv.prozess.ru. -i.ytimg.com. -manila.com. -teredo.ipv6.microsoft.com. -34.195.252.115.in-addr.arpa. -www.movies-city.com. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -init.gc.apple.com. -f.doodlemobile.com.\027. -a.root-servers.net. -ntp.glb.nist.gov. -profile.ak.fbcdn.net. -ruagro.ru. -springdaleark.org. -66.206.42.201.in-addr.arpa. -pagead2.googlesyndication.com. -149.83.111.95.in-addr.arpa. -www.stumbleupon.com. -www.lauraingallswilder.com. -140.53.106.186.in-addr.arpa. -media.tumblr.com. -twitter.com. -pop.gmail.com. -twitter.com. -m2.nsimg.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-a.ak.fbcdn.net. -inmigracionenestadosunidosenelsigloxix.files.wordpress.com. -bxo3p2sok.k14p7o9n. -s.ytimg.com. -googleads.g.doubleclick.net. -msghouasg02.bhi-net.com. -robertwhitehead.com. -profacebookfanpage.com. -ib.adnxs.com. -goshaka.com. -a5.sphotos.ak.fbcdn.net. -rs529tl.rapidshare.com. -data.flurry.com. -92.1.253.201.in-addr.arpa. -164.102.75.190.in-addr.arpa. -board.km.ua. -content.yieldmanager.edgesuite.net. -es-la.facebook.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -thecelebritycafe.disqus.com. -static.ak.fbcdn.net. -www.theagitator.net. -photos-g.ak.fbcdn.net. -cigar.com. -www.computerrelatedsites.com. -ads2.msads.net. -www.antoniodepinto.com. -platform.twitter.com. -ikui5t7qe.b09e7h5l. -opentorrent.ru. -v2.nonxt1.c.youtube.com. -ksn7.kaspersky-labs.com. -75.39.194.187.in-addr.arpa. -7.96.175.190.in-addr.arpa. -www.trustlogo.com. -heartbeat.belkin.com. -d3l3lkinz3f56t.cloudfront.net. -237.74.167.189.in-addr.arpa. -j34s11ort.04kt. -11.1.168.192.in-addr.arpa. -feeds.intoday.in. -www.regenwald.org. -119.114.69.219.in-addr.arpa. -diaryofananny.naughtyamerica.com. -mscrl.microsoft.com. -179.181.139.93.in-addr.arpa. -195.233.10.187.in-addr.arpa. -fesnak.com.inbound30.elephantoutlook.com. -dc.tvteam.info. -221.25.150.200.in-addr.arpa. -50.34.173.189.in-addr.arpa. -gelert.5.com1.ru. -www.facebook.com. -139.144.56.186.in-addr.arpa. -tgpvideos.dvdbox.com. -albaniaonline.net. -msc.wlxrs.com. -a.root-servers.net. -connect.facebook.net. -www.aro.com.au. -guide-paris-france.ru. -194.88.127.201.in-addr.arpa. -astronpc.com. -annewatkins.com. -images.google.com. -img.i.yunduan.cn. -tudwal.orangehome.co.uk. -www.medibolics.com. -a.root-servers.net. -avidinc.com.inbound10.mxlogicmx.net. -hootcourse.com. -zkolos.ru. -wpad. -spravedlivo-online.ru. -img853.imageshack.us. -adsformula.sitescout.netdna-cdn.com. -apps.facebook.com. -nxcache.nexon.net. -198.15.120.200.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -nwjustice.org. -www.simicondon.com. -243.11.6.186.in-addr.arpa. -228.206.59.200.in-addr.arpa. -hotmail.com. -yui.yahooapis.jp. -track-hub.appspot.com. -toolbarqueries.google.com. -a.root-servers.net. -tc.v2.cache8.c.youtube.com. -relay1.cityline.ru. -www.face.net. -www.netvibes.com. -ad.yieldmanager.com. -profile.ak.fbcdn.net. -krwetatnt.net. -weather.service.msn.com. -84.220.147.213.in-addr.arpa. -xvideos-466.vo.llnwd.net. -cnfg.facemoods.com. -236.179.117.76.in-addr.arpa. -www.univision.com. -24.173.240.201.in-addr.arpa. -secure.social-server.com. -um12.eset.com. -directorym.com. -www.nometoqueslashelveticas.com. -ib.adnxs.com. -maila.cosmetique.com. -time.stdtime.gov.tw. -www.facebook.com. -www.google.com.mx. -fbcdn-profile-a.akamaihd.net. -evolutiongroove.com. -haasjr.org. -49.53.131.187.in-addr.arpa. -38.125.99.41.in-addr.arpa. -a.root-servers.net. -www.sg8.info. -www.guatevoluntaria.org. -secure.wlxrs.com. -artesanias-decoracion.blogspot.com. -esc.rr.com. -safebrowsing-cache.google.com. -dns.msftncsi.com. -mx.nhplace.com. -vikesfan.com. -apps.facebook.com. -209.14.158.190.in-addr.arpa. -143.203.219.90.in-addr.arpa. -kabbalahgroup.info. -c.brightcove.com. -alpha-proff.ru. -. -107.146.220.66.in-addr.arpa. -barbie.es. -www.facebook.com. -www.inkfrog.com. -ladyluck13.net. -old.pixmac.com. -profile.ak.fbcdn.net. -235.206.183.189.in-addr.arpa. -a.root-servers.net. -scholar.l.google.com. -profile.ak.fbcdn.net. -petardylandia.blogspot.com. -content.yieldmanager.edgesuite.net. -s-static.ak.facebook.com. -32.226.28.190.in-addr.arpa. -weplay.com. -a1402.w40.akamai.net. -www.alegsa.com.ar. -s-static.ak.facebook.com. -yonan.en.alibaba.com. -deserttreasurez.com. -profile.ak.fbcdn.net. -www.glutenfree.com.au. -m-w.com. -i4.ytimg.com. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -instagr.am. -photos-h.ak.fbcdn.net. -a.root-servers.net. -orcart.facebook.com. -www.cargamimovil.com. -srx.befr.ebayrtm.com. -www.auxmoney-blog.de. -api.twitter.com. -a.root-servers.net. -www.ole.clarin.com. -33.115.20.201.in-addr.arpa. -www.trucoteca.com. -highcountrysurveyors.com. -castanuelasychurros.blogspot.com. -mail2.home8.ru. -cdn.cpmstar.com. -142.48.11.201.in-addr.arpa. -udawggraphics.com.s7b2.psmtp.com. -a-0.19-230fe001.580.1518.19d4.3ea1.410.0.i31f462m9abipbegahw5czg3si.avqs.mcafee.com. -photos-c.ak.fbcdn.net. -api.facebook.com. -gateway-press.com. -download735.avast.com. -www.google.com. -au.download.windowsupdate.com. -104.52.18.89.zz.countries.nerd.dk. -www.skipunx.com. -sp.cwfservice.net. -www.positivos.com. -i.minus.com. -maximaf.ru. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -97.91.18.24.in-addr.arpa. -tsm05.eset.com. -www.bramjnet.com. -forums.fatakat.com. -static.ak.connect.facebook.com. -www.newhentai.com. -a.root-servers.net. -photos-a.ak.fbcdn.net. -54.120.245.69.in-addr.arpa. -www.sergiocortes.es. -a5.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -anuncie.taringa.net. -183.121.69.190.in-addr.arpa. -210.134.16.190.in-addr.arpa. -www.enterfactory.com. -www.autopressnews.com. -img.cruelzoo.com. -pixel.facebook.com. -eatsleepdraw.com. -130.39.0.10.in-addr.arpa. -www.facebook.com. -fl01.ct2.comclick.com. -tammy.webegirls.biz. -baby.163.com. -www.scorpionmezcal.com. -i.ytimg.com. -echo.edge.messenger.live.com. -165.250.30.137.in-addr.arpa. -soq:noz64.64ey. -ads.adgator.co.za. -a1003.w41.akamai.net. -ec.atdmt.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -224.129.248.201.in-addr.arpa. -observadorvirtual.blogspot.com. -www.facebook.com. -www.facebook.com. -skillpod.com. -www.facebooks.com.mx. -jsonip.appspot.com. -86.195.253.201.in-addr.arpa. -s-static.ak.facebook.com. -a7.sphotos.ak.fbcdn.net. -208.61.122.186.in-addr.arpa. -static.ifa.camads.net. -s.ytimg.com. -www.fantastigames.com. -teredo.ipv6.microsoft.com. -sethigherstandards.com. -cinnabar.cc. -eu-st.xhamster.com. -usgs.com. -us.lrd.yahoo.com. -www.facebook.com. -dns.msftncsi.com. -tocahistoria.blogspot.com. -cfile66.uf.daum.net. -www.googleadservices.com. -blog.educaedu.com. -gdata.youtube.com. -www.w3.org. -copticorphans.org. -i4.ytimg.com. -i6.tagstat.com. -82.137.203.190.in-addr.arpa. -mail.cad-net.com. -a.c-0.19-a30fa000.30011.1518.19d4.3ea1.210.0.2ua9b1g27pez7vahzjw2dsb2dq.avqs.mcafee.com. -frasebook.net. -cssmixer.com. -p.imgci.com. -www.idownloadbox.com. -a.root-servers.net. -skoda-auto.co.in. -a.root-servers.net. -msc.wlxrs.com. -winkel.vpro.nl. -151.119.244.85.in-addr.arpa. -oseltd.ru. -www.veodetodotv.com. -dns.msftncsi.com. -view.atdmt.com. -cm.g.doubleclick.net. -i.cdn.turner.com. -mail.northeastdigestive.com. -dragonballforever-goku6384.blogspot.com. -energyinnovation.net. -www.magicdust.com.au. -swannhadley.com. -tzt9sk3ku.f10t7w7p. -atravesadasporlacultura.wordpress.com. -www.strongchicks.com. -a.root-servers.net. -photos-d.ak.fbcdn.net. -www.being.com. -www3.smartadserver.com. -cakewalknews.cakewalk.com. -172.53.106.189.in-addr.arpa. -166.86.217.217.in-addr.arpa. -a.root-servers.net. -www.azalyrics.net. -a6.sphotos.ak.fbcdn.net. -barracuda.burns-scalo.com. -2000charge.com. -profile.ak.fbcdn.net. -www.xmaduras.com. -ad.doubleclick.net. -www.adultswimla.com. -photos-g.ak.fbcdn.net. -apps.facebook.com. -www.crunchbase.com. -b.scorecardresearch.com. -alteradosdemercedes.blogspot.com. -www.yourirondisciples.net. -www.mrc-hnr.cam.ac.uk. -ironcita.blogspot.com. -81.14.250.189.in-addr.arpa. -32.48.132.187.in-addr.arpa. -photos-a.ak.fbcdn.net. -rad.msn.com. -163.36.250.201.in-addr.arpa. -gamesforxperiaplay.com. -titanium30-en.url.trendmicro.com. -www.crouchingdragon.com. -safebrowsing.clients.google.com. -158.236.141.201.in-addr.arpa. -mail.prince.com. -checkip.dyndns.org. -justdancegame.au.ubi.com. -empleo.mitula.mx. -www.dimofinf.net. -a.root-servers.net. -fbcdn-video-a.akamaihd.net. -news.gohome.com.hk. -software.canon-europe.com. -a7.sphotos.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -mail.google.com. -www.farmville.com. -0-74.channel.facebook.com. -a.root-servers.net. -. -www.similares.net. -9gibtn6v5.30su. -energyunited.com. -www.scribd.com. -73.37.168.192.in-addr.arpa. -a.root-servers.net. -extratorrent.com. -6.246.7.187.in-addr.arpa. -aldrinchavarria.wordpress.com. -ibmafia.com. -208.188.170.201.in-addr.arpa. -eddea-emontoya.blogspot.com. -vqta1sjkl.h08n4z7y. -ads1.msads.net. -photos-f.ak.fbcdn.net. -e2ci.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -plus.google.com. -profile.ak.fbcdn.net. -translate.google.com.mx. -91.187.159.189.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -v2qgm2mlf.s76z3f5f. -wpc.0c28.edgecastcdn.net. -www.explosiongay.com.ar. -media.ladbrokes.com. -dns.msftncsi.com. -a.root-servers.net. -blowfishunlocks.com. -a1.sphotos.ak.fbcdn.net. -swf.extensionfile.net. -aa.online-metrix.net. -www.hospitalangelespedregal.com.mx. -abc.csar.go.com. -mulfordconcreteinc.com. -www.drogaconsulta.com.ar. -facemoods.com. -a8.sphotos.ak.fbcdn.net. -google.com. -87.48.141.201.in-addr.arpa. -182.74.160.187.in-addr.arpa. -193.51.167.190.in-addr.arpa. -35.7.2.187.in-addr.arpa. -www.google.com. -photos-a.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -182.49.48.108.in-addr.arpa. -www.hp.com. -apis.google.com. -google.com. -fbcdn-profile-a.akamaihd.net. -www.trfirmaekle.com. -www.gigisapparel.com. -189.223.228.189.in-addr.arpa. -apps.facebook.com. -119.14.108.76.in-addr.arpa. -hi-in.facebook.com. -cctupgrades.com. -s0.2mdn.net. -pangiatech.com. -nataliaseweryn.buzznet.com. -photos-g.ak.fbcdn.net. -pixel.facebook.com. -161.28.77.190.in-addr.arpa. -a1725.l.akamai.net. -mabeslor.com. -es-la.facebook.com. -20.180.95.109.in-addr.arpa. -img69.imageshack.us. -photos-g.ak.fbcdn.net. -clients1.google.com. -ad.doubleclick.net. -www.google-analytics.com. -gruporahn.com. -mail.cacoon.ru. -adq.nextag.com. -swaab.net. -kube.en.muxxu.com. -185.174.171.189.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -correctcryogenics.com. -jfriend.smugmug.com. -. -raywal.com. -www.belkin.com. -mx2.glr.nl. -www.kartfinder.com. -secure.wlxrs.com. -www.google.com. -ns2.p15.dynect.net. -cs5353.vkontakte.ru. -me.effectivemeasure.net. -i1.ytimg.com. -eduardoguille.artelista.com. -ds.serving-sys.com. -content-cdn.walmart.com. -atyt.net. -f9d5q6kc2.28ug. -hbf.cloud.avg.com. -21.174.168.192.in-addr.arpa. -vcs2.msg.yahoo.com. -teredo.ipv6.microsoft.com. -155.184.217.85.in-addr.arpa. -loveday.getmylove.net. -a1.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -onthepin.com. -mitsloanexperts.com. -www.mcleodgaming.com. -pop3.live.com. -u.4f61a6b43bfdf105.com. -www.diigo.com. -i3.ytimg.com. -api.twitter.com. -update.utorrent.com.local. -ads.trafficjunky.net. -profile.ak.fbcdn.net. -viva.gr. -118.249.192.190.in-addr.arpa. -www.google.com. -profile.ak.fbcdn.net. -mebeletta.ru. -252.133.132.187.in-addr.arpa. -42.142.49.96.in-addr.arpa. -www.tribalwars.ae. -google.com. -www.mujeresdesnudas.com.es. -54.164.145.201.in-addr.arpa. -webcache.googleusercontent.com. -dns.msftncsi.com. -s-static.ak.facebook.com. -ji.zh.ch. -safebrowsing.clients.google.com. -api.facebook.com. -oxfordpolymers.com. -sp.cwfservice.net. -market.android.com. -members.dyndns.org. -www.actosdeamor.com. -a5.sphotos.ak.fbcdn.net. -creative.ak.fbcdn.net. -. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -cdn.emily18.com. -a5.sphotos.ak.fbcdn.net. -188.14.245.78.in-addr.arpa. -fxfeeds.mozilla.com. -combatarms.nexon.net. -a.root-servers.net. -www.revistaneurocirugia.com. -ucs.query.yahoo.com. -poetsofthefallargentina.wordpress.com. -innsofcourt.org. -xcdn.xgraph.net. -13.3.185.31.in-addr.arpa. -www.infinityflashgames.com. -us.mc464.mail.yahoo.com. -g:gjvrs7d.m21s4q7v. -images.apple.com. -platform.ak.fbcdn.net. -agrupacionexconscriptos.blogspot.com. -130.33.56.186.in-addr.arpa. -legendabeatles.blogspot.com. -i4.ytimg.com. -mail.fitaihi.com.sa. -msc.wlxrs.com. -dis.criteo.com. -usodelarazon.blogspot.com. -a.root-servers.net. -108.1.168.192.in-addr.arpa. -134.184.142.175.in-addr.arpa. -ipcanswers.com. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -28.media.tumblr.com. -vfbinsurance.com. -cdn4.theigroup.co.uk. -www.zynga.com. -www.iloveblackgirls.net. -armmf.adobe.com. -lh6.googleusercontent.com. -1.117.166.118.in-addr.arpa. -www.facebook.com. -153.154.114.190.in-addr.arpa. -45.229.26.125.in-addr.arpa. -36.196.191.72.in-addr.arpa. -p05-keyvalueservice.icloud.com. -28.ape.bigmuscle.com. -94.187.100.189.in-addr.arpa. -a.root-servers.net. -photos-g.ak.fbcdn.net. -by2msg3020414.gateway.messenger.live.com. -business-prof.ru. -www.getfirefox.com. -itunes.apple.com. -es-es.facebook.com. -108.42.214.201.in-addr.arpa. -czechmat.ru. -www.azul.com.ec. -www.segurosrossi.com.ar. -lawrencemandel.com. -profile.ak.fbcdn.net. -picasaweb.l.google.com. -safebrowsing.clients.google.com. -1272039.r.msn.com. -photos-e.ak.fbcdn.net. -uptowntruckingdisposal.com. -ib.adnxs.com. -www.legislation.qld.gov.au. -stomatsamara.ru. -fbcdn-profile-a.akamaihd.net. -200.69.169.87.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -accounts.google.com. -ad-g.doubleclick.net. -a.root-servers.net. -www.facebook.com. -s-external.ak.fbcdn.net. -co116w.col116.mail.live.com. -www.3ddgames.com. -photos-f.ak.fbcdn.net. -google.com. -download983.avast.com. -www.asianborderlands.net. -platform.ak.fbcdn.net. -246.221.57.187.in-addr.arpa. -a1402.w40.akamai.net. -111.100.62.189.in-addr.arpa. -accounts.google.com. -a-0.19-a309d081.d8f0082.1518.19d4.3ea0.210.0.b7gkhu4wutrenl222ip5f7zh6q.avqs.mcafee.com. -www.iphone4.fr. -news.google.com.mx. -teredo.ipv6.microsoft.com. -24.119.111.189.in-addr.arpa. -161.169.59.186.in-addr.arpa. -androidpost.net. -www.facebook.com. -www.apple.com. -idcmstask.app.joy.cn. -191.237.74.187.in-addr.arpa. -adocean-by.hit.gemius.pl. -www.cbd-habitat.com. -ssl.gstatic.com. -ronan-parke.org. -www.google.es. -rkthb.co. -123.220.74.212.in-addr.arpa. -touch.facebook.com. -garexdoors.ru. -a.root-servers.net. -b.thumbs.redditmedia.com. -apps.facebook.com. -144.36.167.201.in-addr.arpa. -telus-updates.radialpoint.net. -www.creditcardsguidance.com. -locaporlaluna.lacoctelera.net. -101.236.69.114.in-addr.arpa. -a.root-servers.net. -xxxl-cash.net. -78.21.67.190.in-addr.arpa. -photos-g.ak.fbcdn.net. -a.root-servers.net. -84.129.50.189.in-addr.arpa. -i1.ytimg.com. -pim.raz.htcsense.com. -stargen.com. -29.15.237.189.in-addr.arpa. -dns.msftncsi.com. -aviva-giles.blogspot.com. -gtssl-crl.geotrust.com. -23.143.106.186.in-addr.arpa. -col.stb.s-msn.com. -cdn.data.mobilytrip.com. -a.root-servers.net. -mail-in-a.mx.xnet.hr. -performance-suspension.eibach.de. -a.root-servers.net. -bay.messenger.services.live.com. -cf.addthis.com. -simai.ru. -0.0.0.0.in-addr.arpa. -spa-resources-international.com. -www.google.com.mx. -external.ak.fbcdn.net. -mtsmail.org. -ratings-wrs.symantec.com. -74.27.150.190.in-addr.arpa. -smtaextrwc02.gene.com. -scholar.google.es. -59.172.138.201.in-addr.arpa. -mail.tydex.ru. -croftmotors.co.uk. -urs.microsoft.com. -groups.google.com.mx. -10.246.197.204.in-addr.arpa. -big.assets.huffingtonpost.com. -fbcdn-photos-a.akamaihd.net. -197.205.1.201.in-addr.arpa. -53.106.223.201.in-addr.arpa. -www.macromedia.com. -rtsi.wemfbox.ch. -ad.xtendmedia.com. -252.109.224.1.in-addr.arpa. -a.root-servers.net. -www.mercadolibre.com.pe. -sp.cwfservice.net. -a.root-servers.net. -www.jscount.com. -www.medicinatndr.com. -apps.facebook.com. -www.campbells.com.mx. -www.bmwusa.com. -www.digitalfieldguide.com. -www.peruwptravelthemes.com. -g.live.com. -185.249.30.189.in-addr.arpa. -skyscape.sky.com. -a3.sphotos.ak.fbcdn.net. -155.75.104.71.in-addr.arpa. -bi1uy6trk.u09l3r0u. -a1402.w40.akamai.net. -125.153.40.187.in-addr.arpa. -afsdv.ru. -www.appsleak.com. -007sz.net. -www.peeperz.com. -167.60.23.94.in-addr.arpa. -www.mapsfordesign.com. -apis.google.com. -www.facebook.com. -0.11-230f8081.c120081.1518.17f8.3ea0.210.0.6sildrlmua1jhig1sfve2se1fi.avqs.mcafee.com. -_782_46_6. -84.63.99.190.in-addr.arpa. -empiredistrict.com. -cinecero.blogspot.com. -82.46.53.201.in-addr.arpa. -asas.ru. -www.mk12.com. -www.urovirtual.net. -24.62.236.190.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -221.134.231.125.in-addr.arpa. -mx1.aragon.es. -29.media.tumblr.com. -iscreative.com. -45.170.254.169.in-addr.arpa. -thirdtribemarketing.com. -64.89.62.151.in-addr.arpa. -155.85.9.186.in-addr.arpa. -136.215.8.186.in-addr.arpa. -www.ucolick.org. -14.128.52.96.in-addr.arpa. -maps.google.com.om. -www.bing.com. -70.180.57.186.in-addr.arpa. -exch-w.atdmt.com. -sum-tech.ru. -docs.google.com. -talismgmt.com.inbound10.mxlogic.net. -rd.rlcdn.com. -ksn2-12.kaspersky-labs.com. -gilchristconst.com. -www.mindvalleyhispano.com. -pensamientoexperimental.blogspot.com. -jasnetworks.net. -agricol.e.telefonica.net. -piv.pivpiv.dk. -165.143.172.189.in-addr.arpa. -231.179.244.190.in-addr.arpa. -dnl-01.geo.kaspersky.com. -cs10008.vkontakte.ru. -www.descargar-youtube.com. -205.22.101.99.in-addr.arpa. -tommti-systems.de. -m.facebook.com. -b-0.19-220a4008.91081.1518.19d4.3ea1.410.0.j5iruwmdnhcmblwaj57k9gcj55.avqs.mcafee.com. -www.gamesandgeeks.com. -112.23.132.187.in-addr.arpa. -accounts.google.com. -71.59.52.201.in-addr.arpa. -www.paypalobjects.com. -www.facebook.com. -123.130.233.189.in-addr.arpa. -checkip.dyndns.org. -www.igirlsgames.com. -ns1.root.ru. -kgiswx1bb.62gz. -mail1.rhcc.com. -www.facebook.com. -nielsenfineart.com. -profile.ak.fbcdn.net. -assets.tumblr.com. -support.live.com. -profile.ak.fbcdn.net. -coffeetime.de. -acmilan.ru. -www.facebook.com. -www.etruth.com. -a7.sphotos.ak.fbcdn.net. -www.serviwebrd.com. -www.hollywoodreporter.com. -um14.eset.com. -a.root-servers.net. -152.67.213.83.in-addr.arpa. -pics.haircutshairstyles.com. -244.50.230.67.in-addr.arpa. -gs-loc.apple.com. -54.153.25.187.in-addr.arpa. -ssl.gstatic.com. -a.root-servers.net. -diglib.auburn.edu. -183.66.59.186.in-addr.arpa. -recursos.fotocajon.com. -a.root-servers.net. -cdn-colo-ch-3.mbt.com. -tonycolamarino.com. -rikain.com. -photos-a.ak.fbcdn.net. -41-courier.push.apple.com. -mail.ci.missoula.mt.us. -facebook.com. -187.204.237.64.in-addr.arpa. -a.root-servers.net. -pubads.g.doubleclick.net. -ocsp.verisign.com. -twitter.com. -mx.suddenlink.net. -www.cnfl.go.cr. -www.hollywoodgothique.com. -8.8.217.63.in-addr.arpa. -srv.ubplastik.ru. -email.radcliffe.in. -ocio.superdeporte.es. -bl148w.blu148.mail.live.com. -yofuidel4delinea.blogspot.com. -dns.msftncsi.com. -mta1.am0.yahoodns.net. -teredo.ipv6.microsoft.com. -gamecheats.com. -ads.adxpansion.com. -m.addthisedge.com. -hyp12hvotnrh14eumxp42jvozjti15mzg43c49.info. -s.youtube.com. -photos-a.ak.fbcdn.net. -dc353.4shared.com. -sup.live.com. -g.ceipmsn.com. -arttaste.ru. -rivaldofans.ifrance.com. -mail.ard-kazan.ru. -lekstore.ru. -k.kuwo.cn. -photos-h.ak.fbcdn.net. -www.microsoft.com. -143.49.104.88.in-addr.arpa. -yingjunjiu.deviantart.com. -sbeton.ru. -www.greginhollywood.com. -fr.wikipedia.org. -a.root-servers.net. -pocketcents.com. -225.154.144.189.in-addr.arpa. -www.1channel.ch. -aol.com. -static-resource.np.community.playstation.net. -99.218.23.203.in-addr.arpa. -newswander.com. -www.viharjelzes.hu. -newsrss.bbc.co.uk. -ikelite.com. -bitly.com. -yui.yahooapis.com. -_carddavs._tcp.yahoo.com. -googleads.g.doubleclick.net. -a.root-servers.net. -db._dns-sd._udp.enhwi-n3. -eshops.mercadolibre.com.mx. -mail-server2.profiseti.ru. -www.google-analytics.com. -hylinx.com. -dns.msftncsi.com. -www.facebook.com. -nmcpas-com.mail.eo.outlook.com. -94.51.122.190.in-addr.arpa. -165.55.141.189.in-addr.arpa. -email-us.huawei.com. -maps.google.com. -www.diablos. -100500.tv. -search.twitter.com. -web1.designerapparel.com. -230.235.148.190.in-addr.arpa. -fe1.cgp.21ctl.com. -travel.france24.com. -112.230.49.190.in-addr.arpa. -www.socialgrowthtechnologies.com. -57.113.104.200.in-addr.arpa. -248.101.4.189.in-addr.arpa. -www.ooyala.com. -www.tripadvisor.com. -noos.fr. -photos-a.ak.fbcdn.net. -a.root-servers.net. -www.google.com. -expedia.fr. -apps.facebook.com. -246.129.121.189.in-addr.arpa. -zercustoms.com. -plus.google.com. -gearsofwar.wikia.com. -204.128.128.186.in-addr.arpa. -www.gigisapparel.com. -imgs.gamesbannernet.com. -platform.ak.fbcdn.net. -mx4.evzo.org. -dns.msftncsi.com. -ads.youmago.ro. -apps.facebook.com. -photos-c.ak.fbcdn.net. -ds.addthis.com. -yahoo.com. -mxs.valuehost.ru. -shout.dk. -www.koliscar.si. -i1.ytimg.com. -a4.sphotos.ak.fbcdn.net. -fb.statusking.net. -pixel.facebook.com. -go.microsoft.com. -time.stdtime.gov.tw. -riceboy.jho-tan.com. -sblincoln.com.s8a1.psmtp.com. -oncewest.com. -a.root-servers.net. -www.tia.org. -a.collective-media.net. -up.absba.com. -fbcdn-photos-a.akamaihd.net. -www.globostuky.com.ar. -kentuckysportsradio.com. -www.sport365.com. -a.root-servers.net. -www.lpdedicated.com. -image2.tailieu.vn. -hi-in.facebook.com. -www.mcanime.net. -a.root-servers.net. -d1j68ux4ukg4g1.cloudfront.net. -www.jscount.com. -pruittgushee.com. -external.ak.fbcdn.net. -b.scorecardresearch.com. -12173.ua.all.biz. -100.236.67.201.in-addr.arpa. -www.facebook.com. -ytimg.l.google.com. -120.148.168.192.in-addr.arpa. -rs991l34.rapidshare.com. -panelnaranja.rpxnow.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -dtboot.orbitdownloader.com. -api.facebook.com. -americanheritageins.com.bak-mx.na0106.smtpbak.com. -go.srvnow.com. -45.237.108.186.in-addr.arpa. -pagead2.googlesyndication.com. -www.bing.com. -ku2.ru. -mx.yakuel.com. -www.toptanciyiz.net. -api.twitter.com. -lite.ebuddy.com. -www.imdb.com. -www.6565.cn. -5w.ru. -. -a.root-servers.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -api.mingscape.com. -www.cnf.gob.mx. -2.56.230.190.in-addr.arpa. -a.ads2.msads.net. -laserdrive.com.s5a2.psmtp.com. -maitlandrealty.com. -de-de.facebook.com. -www.expoplasticos.com.mx. -gcp.es. -www.legalleadersblog.com. -freddiemqueen.forumfree.it. -www.luifil.com. -www.activeherb.com. -www.facebook.com. -www.mediafire.com. -113.84.181.213.in-addr.arpa. -api.viglink.com. -www.gazetalubuska.pl. -a7.sphotos.ak.fbcdn.net. -photos-f.ak.fbcdn.net. -159.177.82.177.in-addr.arpa. -googleads.g.doubleclick.net. -thisisf1.com. -kokotovich.com. -a.root-servers.net. -_ldap._tcp. -adf.ly. -pt-br.facebook.com. -mail.celebrityintl.com. -209.187.154.186.in-addr.arpa. -lowest-rate-loans.com. -www.crimesofwar.org. -19.91.248.189.in-addr.arpa. -img.gotomeeting.com. -53.106.235.186.in-addr.arpa. -www.professionisti.bticino.it. -xlqgtsk26.h17q5k2i. -spc.edu.s10a2.psmtp.com. -134.25.212.201.in-addr.arpa. -195.184.142.187.in-addr.arpa. -secure-us.imrworldwide.com. -a5.sphotos.ak.fbcdn.net. -www.duckload.com. -19.237.50.96.in-addr.arpa. -user.easyn.cn. -52.104.172.201.in-addr.arpa. -s-static.ak.fbcdn.net. -3.bp.blogspot.com. -sp.cwfservice.net. -chicago.cbslocal.com. -167.113.231.189.in-addr.arpa. -clients1.google.com. -www.facebook.com. -neonisi.com. -thefoodaddicts.com. -google.com. -rospres.com. -166.7.216.201.in-addr.arpa. -groups.google.com.ar. -152.153.158.205.in-addr.arpa. -58.255.205.186.in-addr.arpa. -152.253.134.187.in-addr.arpa. -t0.gstatic.com. -sp.cwfservice.net. -26.161.168.192.in-addr.arpa. -support.google.com. -202.151.249.92.in-addr.arpa. -titanium30-en.url.trendmicro.com. -114.208.96.174.in-addr.arpa. -kalifbanane.deviantart.com. -15.252.53.200.in-addr.arpa. -smfc.thescore.com. -www.machineryzone.es. -ping3.teamviewer.com. -23.59.168.192.in-addr.arpa. -photos-e.ak.fbcdn.net. -apps.facebook.com. -a.root-servers.net. -www.chicaswebcam.eu. -96.12.214.176.in-addr.arpa. -dgsr3tffm.f23z5d6w. -228.10.74.180.in-addr.arpa. -cs10030.vkontakte.ru. -signin.ebay.com. -theatre.ru. -88.119.51.190.in-addr.arpa. -www.tesolconvention.org. -www.subiegal.com. -spamfilter.kier.re.kr. -creative.ak.fbcdn.net. -www.aqps.info. -geo.yahoo.com. -forum.lyrsense.com. -www.piel-sana-vida-sana.com. -a.root-servers.net. -www222.pair.com. -t3.gstatic.com. -mx1.brickit.com. -www.yahoo.com. -43.169.1.120.in-addr.arpa. -touch.facebook.com. -mail.jjranchpro.com. -a2.sphotos.ak.fbcdn.net. -www.facebook.com. -www.iguoguo.net. -www.google.com. -nubiagroup-powerpoint-collection.blogspot.com. -15.4.80.69.in-addr.arpa. -221.199.105.77.in-addr.arpa. -att-mail.com.dnsbl7.mailshell.net. -profile.ak.fbcdn.net. -upload.facebook.com. -194.140.23.187.in-addr.arpa. -mobileads.nimbuzz.com. -mexico.ilww.com. -musica. -_374_14_1. -login.live.com. -www.gm.tv. -www.google.es. -mail.samui-island.ru. -rs607l36.rapidshare.com. -a2.sphotos.ak.fbcdn.net. -sp.cwfservice.net. -www.cenerick.com.ar. -img3.teddy-girls.com. -25.156.230.190.in-addr.arpa. -www.solosalta.com. -email1-east.aero.org. -202.189.218.195.in-addr.arpa. -c.prodigy.msn.com. -72.100.151.67.in-addr.arpa. -ssl.google-analytics.com. -206.36.192.108.in-addr.arpa. -img100.xvideos.com. -mail.urfc.ru. -blog.gisuser.com. -www.factsaboutanimals.net. -view.atdmt.com. -108.135.138.187.in-addr.arpa. -webres4.pand.ctmail.com. -es-la.facebook.com. -external.ak.fbcdn.net. -38.15.82.200.in-addr.arpa. -ajax.googleapis.com. -rrcvexydh.l33z2r2a. -flowdebarrio.com. -dr._dns-sd._udp.lan. -plus.google.com. -webcache.googleusercontent.com. -entertainer.mvourtown.com. -www.weather.com. -mail3.volny.cz. -cts.channelintelligence.com. -ts.videosz.com. -zynga2-a.akamaihd.net. -7.201.31.80.in-addr.arpa. -207.172.75.190.in-addr.arpa. -profile.ak.fbcdn.net. -cdn-7.pics.t8premium.com. -exch-w.atdmt.com. -api.facebook.com. -43.84.8.190.in-addr.arpa. -www.broknes.net. -photos-d.ak.fbcdn.net. -www.shemale-comics.net. -mail.wselectronics.com. -industrycasting.com.au. -bmzojkdspg.ru. -www.goats.com. -sagastumes.mypressonline.com. -www.facebook.com. -unitedtitleservices.com.inbound10.mxlogic.net. -i1.ytimg.com. -ns2.ulink.ru. -227.228.59.99.in-addr.arpa. -www.dieslermusic.com. -ads.contentabc.com. -gipat.ru. -6.38.61.99.in-addr.arpa. -swsb3guoh.g48b1g2u. -www.youtube-nocookie.com. -homes.onlineathens.com. -www.facebook.com. -www.somoto.com. -secure-au.imrworldwide.com. -m8fu78fnc.08vw. -mail2.checkfree.com. -publicstorage.com. -dnl-01.geo.kaspersky.com. -pop3.live.com. -www.facebook.com. -252.218.132.187.in-addr.arpa. -1.3.168.192.in-addr.arpa. -3.201.107.193.in-addr.arpa. -graph.facebook.com. -193.111.159.69.in-addr.arpa. -www.hispanicmarketweekly.com. -superdeportes.com. -time.windows.com. -207.12.250.189.in-addr.arpa. -almeria.guia.hola.com. -crashteams.com. -s-static.ak.fbcdn.net. -a.root-servers.net. -a.root-servers.net. -27.media.tumblr.com. -atgcompanies.com. -hoosiertimescoupons.com. -_537_03_1. -xslt.alexa.com. -3.bp.blogspot.com. -www.bing.com. -56.132.251.190.in-addr.arpa. -static.ak.fbcdn.net. -212.200.249.111.in-addr.arpa. -mirror.alfredstate.edu. -l2.zedo.com. -162.1.168.192.in-addr.arpa. -nomail1.circulomexico.com. -no.wikipedia.org. -acsc.com. -pattersonresearch.net. -morganlawohio.com. -armmf.adobe.com. -mail.msihoa.com. -a.root-servers.net. -mensajesatucorazon.blogspot.com. -hergoodybag.com. -dnl-01.geo.kaspersky.com. -peliculas2.com. -external.ak.fbcdn.net. -x439.com. -a1725.l.akamai.net. -90.147.219.62.in-addr.arpa. -muzikalia.com. -190.102.138.187.in-addr.arpa. -e-markit.info. -www.youtube.com. -fandeloup.centerblog.net. -a.root-servers.net. -slamit.net. -mbj.nifty.co. -www.lacare.org. -dnl-06.geo.kaspersky.com. -www.firm-consult.de. -api.conduit.com. -213.127.122.200.in-addr.arpa. -www.facebook.com. -www.postcefalu.blogspot.com. -time.chttl.com.tw. -bg.rhenus.com. -wpad. -amer.rel.msn.com. -mail.kktooldesign.com. -71.101.197.84.in-addr.arpa. -relay.partout.it. -denis.stalker.h3q.com. -search.babylon.com. -byrnemedia.co.uk. -unlease.ru. -tempo.folha.com.br. -corntoromyout.nu. -a.root-servers.net. -221.85.198.190.in-addr.arpa. -check6.facebook.com. -gfx4.hotmail.com. -www.trisomy.org. -iphone-wu.apple.com. -connect.facebook.net. -rapidshare.com. -lh3.ggpht.com. -images.thecandidforum.com. -www.womensweightgain.com. -r2now.com. -s-static.ak.facebook.com. -klinger.ru. -midmaine.com. -www.fullquimica.com. -cs5683.vk.com. -www.gamecetera.com. -a3.sphotos.ak.fbcdn.net. -waynefarms.com. -rmd.atdmt.com. -a.root-servers.net. -www.facebook.com. -profile.ak.fbcdn.net. -www.tannan-fm.com. -platform.twitter.com. -cbr.digitalinsight.com. -www.searchqu.com. -a.root-servers.net. -feeds.bbci.co.uk. -_437_58_9. -194.189.195.187.in-addr.arpa. -jers2.info. -blog.facebook.com. -74.115.57.71.in-addr.arpa. -d2095542.xoom.it. -www.techfever.net. -payment.6waves.com. -pioneerelectronics.com. -time.nist.gov. -www.real-bikini-beach.com. -24.69.124.189.in-addr.arpa. -ejabat.google.com. -support.google.com. -mntr.babcdn.com. -a2.sphotos.ak.fbcdn.net. -226.59.14.195.in-addr.arpa. -hi-in.facebook.com. -irepvm.com. -www.1aria.com. -shoppas.com. -www.laruinaoculta.com. -ad.yieldmanager.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -203.103.105.189.in-addr.arpa. -photos-h.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -cnnespanol.wordpress.com. -www.salt-themovie.com. -sherlock-holmes-nemesis.softonic.com. -safebrowsing-cache.google.com. -tc.v11.cache5.c.youtube.com. -rooadrunner.com. -google.com. -2012taiwanlantern.net. -adserving.cpxinteractive.com. -cecytneza2.galeon.com. -a.root-servers.net. -www.vsp.state.va.us. -assets.tumblr.com. -i4.ytimg.com. -www.cosmos.com.mx. -d2054836.instant.xoom.it. -rad.msn.com. -img5.ranchoweb.com. -www.blogoozle.com. -www.adobe.com. -cardsharing.us. -aloha.viber.com. -153.74.164.190.in-addr.arpa. -alt4.gmail-smtp-in.l.google.com. -211.50.83.62.in-addr.arpa. -caw.ny.us.criteo.com. -www.facebook.com. -www.ebaygivingworks.com. -www.turuo.com. -sitemail.everyone.net. -www.jvc.com. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -104.146.185.190.in-addr.arpa. -equitylinepa.com. -apps.facebook.com. -a4.sphotos.ak.fbcdn.net. -fehth5u8x.83kc. -www.google-analytics.com. -nmusd.k12.ca.us. -133.0.87.66.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -omnimetal.com. -princesasailormoon.blogspot.com. -www.facebook.com. -thebilgepumps.com. -wakefieldreutlinger.com.inbound15.mxlogic.net. -207.109.39.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -www.dayendra.web.id. -idreseller.ru. -sp.cwfservice.net. -safebrowsing.clients.google.com. -baymsg1020431.by2.gateway.edge.messenger.live.com. -app.net. -router.infolinks.com. -syndication.mmismm.com. -www.dainbinder.com. -224.175.150.200.in-addr.arpa. -ad-g.doubleclick.net. -www.adobe.com. -104.248.204.199.in-addr.arpa. -128.20.34.110.in-addr.arpa. -www.4shared.com. -www.google.com. -aberdeen-chamber.com. -42.49.138.98.in-addr.arpa. -sp.cwfservice.net. -assets1.mynewsdesk.com. -secure.dominio.com. -toomeycustoms.us.intellitxt.com. -www.youtube.com. -dbmmgt.com. -simssoc.game.playfish.com. -www.googleadservices.com. -gatekeeperus.trintech.com. -_596_67_3. -mail.leader-panama.com. -5ballov.com.ru. -en.foodlexicon.org. -a.c-0.19-250f8081.c140081.1518.19d2.3ea1.210.0.5zfq4hzzfe4k2efksc2whfpj8t.avqs.mcafee.com. -by2msg4010610.gateway.messenger.live.com. -mynationlink.net. -nspmotion.com. -173.228.225.190.in-addr.arpa. -www.seoindonesiaku.com. -photos-h.ak.fbcdn.net. -cdn.api.twitter.com. -vermeerdir.com. -www.ticketek.com.ar. -dr._dns-sd._udp.0.92.16.172.in-addr.arpa. -googleads.g.doubleclick.net. -openlead.bankimia.com. -guestbooks.fotki.com. -ar.answers.yahoo.com. -apps.facebook.com. -a6.sphotos.ak.fbcdn.net. -126.205.52.83.in-addr.arpa. -img39.imageshack.us. -es1w1.tw.innogames.net. -static.ak.facebook.com. -246.22.139.175.in-addr.arpa. -sro.whatsapp.net. -www.newstyledirect.com.au. -www.15a20.com.mx. -www.smartbusinesscorp.com. -www.linuxinsight.com. -176.179.17.201.in-addr.arpa. -myfotojournal.com. -zynga2-a.akamaihd.net. -crochets-emi.blogspot.com. -166.96.86.74.in-addr.arpa. -58.109.87.186.in-addr.arpa. -www.autozine.org. -ad.adtegrity.net. -wunderlist.com. -www.globe-info.org. -creative.ak.fbcdn.net. -ad.doubleclick.net. -209.144.218.188.in-addr.arpa. -. -profile.ak.fbcdn.net. -freezebomb.bigcartel.com. -s.ytimg.com. -www.kidsclick.com. -151.222.165.83.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -t3.tagstat.com. -cosplay-play.blogspot.com. -ozarkcoop.com. -agirlsguidetoshoes.blogspot.com. -sp.cwfservice.net. -brap.org.uk. -www.beachcalifornia.com. -agtc.com.s5b2.psmtp.com. -s-static.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -heartbeat.belkin.com. -photos-d.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -career.dol.ru. -caceres.cope.es. -www.buruo.com. -aspmx2.googlemail.com. -www.revenge.com. -rembrandts.com. -. -www.google.com. -wow-recons.foroactivo.org. -d2060296.instant.xoom.it. -119.229.90.200.in-addr.arpa. -155.19.25.190.in-addr.arpa. -ads.yimg.com. -poddonn.ru. -77.142.56.186.in-addr.arpa. -www.gifmania.com.co. -dowacousticsinc.com. -localhost. -www.palco-vip.com. -. -www.tirian.com. -a7.sphotos.ak.fbcdn.net. -vayda.ru. -www.bbvanetoffice.com. -191.210.202.84.in-addr.arpa. -apix.iminent.com. -lampiweb.com. -50.25.85.85.in-addr.arpa. -ocsp.thawte.com. -weddings.alltop.com. -mail.bitwisepublishing.com. -bfis.fis.ru. -gwqsbvbnj.info. -www.grapeshot-media.net. -a4.sphotos.ak.fbcdn.net. -153.133.132.217.in-addr.arpa. -245.240.67.174.in-addr.arpa. -8vco9o7nuj5c2siebikqjj1a53konthn-a-fc-opensocial.googleusercontent.com. -9qrk4a9hb.u79n3m6r. -85.243.17.198.in-addr.arpa. -121.244.245.190.in-addr.arpa. -i2.ytimg.com. -s.youtube.com. -a.root-servers.net. -l.sharethis.com. -forums.utherverse.com. -www.facebook.com. -home.live.com. -85.229.33.201.in-addr.arpa. -www.kaltura.com. -winznews.blog98.fc2.com. -ad.yieldmanager.com. -spb.top-kniga.ru. -s2.youtube.com. -sp.cwfservice.net. -static.searchya.com. -www.rinconsantafesino.net. -a.root-servers.net. -67.92.81.83.in-addr.arpa. -s.ytimg.com. -ocsp.digicert.com. -www.google.com. -nioxinhair.ru. -static.ak.fbcdn.net. -91.224.233.118.in-addr.arpa. -itsystemsgroup.com.s5a1.psmtp.com. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -static.rpxnow.com. -70.22.183.209.in-addr.arpa. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -186.95.2.187.in-addr.arpa. -rs433tl4.rapidshare.com. -gustinadvertising.net. -186.51.171.201.in-addr.arpa. -ad.yieldmanager.com. -port75.mx16.sps.mxfw.net. -u10933.29.spylog.com. -noteprobable.com. -ramon.rwlynch.com. -millennianet.com. -in.getclicky.com. -l.yimg.com. -login.givemepink.com. -88.95.46.184.in-addr.arpa. -shared.live.com. -upmhvgmnnltgfurm.biz. -ad.harrenmedianetwork.com. -adserving.cpxinteractive.com. -d2106904.xoom.it. -thuule.pair.com. -static.ak.fbcdn.net. -s-static.ak.facebook.com. -a.root-servers.net. -time.chttl.com.tw. -nelleke.deviantart.com. -newversion.epyte.com. -transitk2000.ru. -www.googletagservices.com. -exchange.caosco.com. -mw.tn.ru. -sites.google.com. -aol.com. -www.clickestetica.com. -osiprint.com. -instagr.am. -v7.cache6.c.youtube.com. -21.148.59.199.in-addr.arpa. -xvizxie21.89dz. -twitter.com. -capitolcreag.com. -r._dns-sd._udp.lan. -_848_24_6. -developers.facebook.com. -44.20.86.186.in-addr.arpa. -mail1.sterlingethanol.com. -time.chttl.com.tw. -33.103.222.189.in-addr.arpa. -www.youtube.com. -www.pohlarchitekten.de. -top100sexiestwomen.com. -platform.ak.fbcdn.net. -accounts.google.com. -googthis.tk. -gfx3.hotmail.com. -smtp2.transource.com. -img5.xooimage.com. -www.detikfood.com. -s2.youtube.com. -getprof.us.np.community.playstation.net. -_144_55_2. -www.institutoalma.org. -news.google.com.mx. -mail.indharness.com. -26.48.173.201.in-addr.arpa. -h.live.com. -www.rainydaymagazine.com. -167.131.42.201.in-addr.arpa. -mypaleokitchen.blogspot.com. -globalmar.ru. -rss.allaboutwindowsphone.com. -www.ubalert.com. -platform.twitter.com. -tsprints.com. -static.ak.fbcdn.net. -dns.msftncsi.com. -211.188.104.189.in-addr.arpa. -www.qwa3ed.i8.com. -ns2.h17.domen.com.ua. -cdn1.inner-active.mobi. -mail.matthewbarney.com. -flowenglish.dev01.atlanticbt.net. -e5153.b.akamaiedge.net. -samrphotography.blogspot.com. -a7.sphotos.ak.fbcdn.net. -254.52.28.186.in-addr.arpa. -www.elprisma.com. -mail.tpwh.com. -photos-h.ak.fbcdn.net. -34.132.146.186.in-addr.arpa. -www.feriadesanmarcos.gob.mx. -photos-f.ak.fbcdn.net. -wj8.so-net.ne.jp. -a749.g.akamai.net. -www.mt-box.org. -mail.google.com. -216.185.186.189.in-addr.arpa. -profile.live.com. -247.170.13.180.in-addr.arpa. -www.facebook.com. -www.uisg.org. -jack-cole.com. -cache.pack.google.com. -89.168.227.61.in-addr.arpa. -216.151.152.186.in-addr.arpa. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.tormenttube.com. -photos-d.ak.fbcdn.net. -82.199.229.190.in-addr.arpa. -deloitte.fr.s200b2.psmtp.com. -221.58.139.187.in-addr.arpa. -199.234.109.24.in-addr.arpa. -d3lvr7yuk4uaui.cloudfront.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -bay-labels.com. -emergency-boot-cd-rom.softonic.com. -54.73.42.186.in-addr.arpa. -245.149.130.189.in-addr.arpa. -profile.ak.fbcdn.net. -www.trampolinesystems.com. -ecn.t2.tiles.virtualearth.net. -170.113.92.186.in-addr.arpa. -mail.conduit-ventures.com. -a.i.blip.tv. -google.com. -v1.cache2.c.youtube.com. -resources.search.conduit.com. -www.urbaks.com. -teredo.ipv6.microsoft.com. -9ncitkxzf.27cy. -www.l.google.com. -www.luwaran.com. -secure.wlxrs.com. -jvm.ing.onored.com. -time.nist.gov. -mtalk.google.com. -sites.google.com. -_845_62_9. -181.161.153.89.in-addr.arpa. -mail.edu.rocmn.nl. -104.73.156.187.in-addr.arpa. -www.google.com.mx. -api.conduit.com. -massman.net.mail5.psmtp.com. -sn1msg1010616.gateway.messenger.live.com. -myaccount.kelloggs.com. -210.134.253.99.in-addr.arpa. -static.ak.fbcdn.net. -37-courier.push.apple.com. -www.facebook.com. -laserhosts.com. -webcache.googleusercontent.com. -styleline.us. -www.thedivinemercy.org. -nl.vandermoolen.com. -g.live.com. -www.youtube.com. -a.root-servers.net. -onespot.wsj.com. -photos-g.ak.fbcdn.net. -51.157.82.189.in-addr.arpa. -clients1.google.com. -mx-1.naver.com. -www.histats.com. -www.oya-es.net. -google.com.mx. -ads.lfstmedia.com. -47.95.122.84.in-addr.arpa. -www.facebook.com. -stats.pokerist.com. -d2103064.xoom.it. -clients2.google.com. -www.4shared.com. -s-static.ak.fbcdn.net. -apps.facebook.com. -ad.bannerconnect.net. -www.lyngsat-logo.com. -api.twitter.com. -www.bulkblacksex.com. -chroniclesmagazine.org. -a6.sphotos.ak.fbcdn.net. -www.lipdub.eu. -ssl.gstatic.com. -www.facebook.com. -www.negrasdelbronx.com. -bayfiles.com. -a.root-servers.net. -241.245.13.187.in-addr.arpa. -secure.shared.live.com. -tfgrtezqnfkewpchzgyronljweoyop.nl. -www.egopixel.com. -a7.sphotos.ak.fbcdn.net. -e-2dj6aelyqgc5igp.stats.esomniture.com. -www.howtotranslatepdf.com. -sp.cwfservice.net. -davainksth.ordingslil.nu. -138.52.55.46.in-addr.arpa. -profile.ak.fbcdn.net. -201.95.127.93.in-addr.arpa. -www.facebook.com. -ctar.ru. -pds.catholic.or.kr. -www.naesv.org. -download346.avast.com. -creative.ak.fbcdn.net. -a.root-servers.net. -ynetnvjhr.76fz. -blst.msn.com. -a7.sphotos.ak.fbcdn.net. -www.verfutbolhd.net. -ungewitter.de. -profile.ak.fbcdn.net. -180.24.230.201.in-addr.arpa. -www.fimkastore.com. -blog.jaredcompany.com. -secure.applifier.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -img.movieberry.com. -rentshark.com. -_487_21_5. -apis.google.com. -101.63.253.189.in-addr.arpa. -static.pbc.com. -billing.sharo4ka.ru. -prudentialcresfl.com. -a.root-servers.net. -photos-h.ak.fbcdn.net. -post.telecom-f.ru. -tuongphong2.com. -tbr.ask.com. -textad.xxxmatch.com. -crl.microsoft.com. -a.root-servers.net. -smtp.ci.hayward.ca.us. -ksn7.kaspersky-labs.com. -3.146.222.189.in-addr.arpa. -savetheroots.com. -ads1.msads.net. -mail1.humed.com. -o.nimbuzz.com. -www.airbridgecargo.com. -themes.truethemes.net. -www.gorestruly.com. -themartletshospice.co.uk. -mail.pinocchiosplace.com. -dns.msftncsi.com. -a.root-servers.net. -time.windows.com. -www.esmusicagratis.com. -siemens.co. -profootball.scout.com. -winmedms.com. -63.251.229.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -cdn.publicidad.net. -81.146.192.187.in-addr.arpa. -mail.welhuis.com. -teamdemilovatoptonatales.blogspot.com. -c-0.19-430cc069.20001.1518.19d3.2f4a.210.0.j8sccva3btb8ua63e31zf9hgtj.avqs.mcafee.com. -. -mksol.dseg.ti.com. -248.225.45.93.in-addr.arpa. -101.16.109.83.in-addr.arpa. -mail.trufina.com. -titanium30-en.url.trendmicro.com. -foreveryounglala.wordpress.com. -external.ak.fbcdn.net. -divinecnatraining.com. -rad.msn.com. -weather.services.conduit.com. -a-0.19-a309e081.c0b0082.1518.19d2.3ea1.210.0.f6gh2675ft2wdhqj6nbmrsj136.avqs.mcafee.com. -38.249.10.186.in-addr.arpa. -profile.ak.fbcdn.net. -federaldirect.net. -56nq4nu82.87ba. -_758_24_0. -122.204.222.201.in-addr.arpa. -www.aving.co.kr. -cdn.applifier.com. -www.yahoo.com. -249.95.51.201.in-addr.arpa. -mxs.mail.ru. -www.facebook.com. -ak.imgfarm.com. -safebrowsing.clients.google.com. -dns.msftncsi.com. -mscrl.microsoft.com. -92.215.159.189.in-addr.arpa. -248.248.115.85.in-addr.arpa. -www.facebook.com. -cu018.www.duba.net.home. -197.185.150.189.in-addr.arpa. -profile.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -accounts.google.com. -adfarm.mediaplex.com. -imap.mail.yahoo.com. -download.windowsupdate.com. -www.goldenchile.cl. -123.186.172.178.zz.countries.nerd.dk. -www.confezionicrosby.com. -s.ytimg.com. -blog.iconshock.com. -www.interbiu.com. -soundcloud.tumblr.com. -ic.tynt.com. -a.root-servers.net. -www.belkin.com. -static.ak.fbcdn.net. -grc.mx. -nypd.org. -166.251.182.95.in-addr.arpa. -_558_82_9. -tools.google.com. -229.219.250.190.in-addr.arpa. -platform.ak.fbcdn.net. -ad-emea.doubleclick.net. -checkip.dyndns.org. -crl.microsoft.com. -209.127.47.190.in-addr.arpa. -reedbusiness.com.au. -newtoseeblog.info. -ad.yieldmanager.com. -id.google.com. -www.google.com. -xwjdciibb.99yy. -c14.zedo.com. -vmwebfe.voice.yahoo.com. -bfrwkzqj.info. -ksn3-11.part1.kaspersky-labs.com. -144.220.68.99.in-addr.arpa. -jarvis.net. -lpi.msk.su. -s348256632.mialojamiento.es. -pool.ntp.org. -a771.da1.akamai.net. -197.35.214.67.in-addr.arpa. -a.root-servers.net. -234.193.121.95.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -m.addthisedge.com. -www.google-analytics.com. -60.66.226.189.in-addr.arpa. -129.157.221.108.in-addr.arpa. -htmlbook.ru. -api-read.facebook.com. -80.34.251.201.in-addr.arpa. -blufiles.storage.msn.com. -businessplus.com. -195.2.0.192.in-addr.arpa. -mail.eidnet.org. -zqvxxwkwh.q11p1a3r. -dns.msftncsi.com. -fgb.net.s5a2.psmtp.com. -139.122.196.190.in-addr.arpa. -a.root-servers.net. -2.159.169.189.in-addr.arpa. -6.101.138.187.in-addr.arpa. -yahoo.com. -lobnya.ru. -www.acubens.com.ar. -external.ak.fbcdn.net. -www.ngopulse.org. -z5hbstzvi.82en. -www.big-pub.com. -113.128.177.190.in-addr.arpa. -msc.wlxrs.com. -politicalinsider.com. -i1.ytimg.com. -www.juaneslavagalan.com. -presentesausencias.blogspot.com. -support.google.com. -235.247.137.189.in-addr.arpa. -www.crouzet.com. -photos-b.ak.fbcdn.net. -inbound.deck2.com.netsolmail.net. -haefeles.com. -i4.ytimg.com. -0-ie-w.channel.facebook.com. -commons.wikimedia.org. -157.114.25.89.in-addr.arpa. -mailsputnik.mail.ru. -time.windows.com. -mail.columbus.rr.com.lan. -s.ytimg.com. -msn.com. -login.yahoo.com. -popdynamite.com. -www.myshoptoday.co.za. -nylim.com. -a.root-servers.net. -gccnj.edu. -creative.ak.fbcdn.net. -mor3ben.com. -creative.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -116s.pl. -www.leeyora.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -tdy.prodigy.msn.com. -58.116.4.24.in-addr.arpa. -www.casadellibro.com. -16.134.234.190.in-addr.arpa. -dns.msftncsi.com. -w88.go.com. -166.93.209.201.in-addr.arpa. -merck.websitesampling.com. -dns.msftncsi.com. -www4.esu.edu. -sn3.mailshell.net. -profile.ak.fbcdn.net. -rdee-ont.ca. -plus.google.com. -isatap.domain.name. -a6.sphotos.ak.fbcdn.net. -www.facebook.com. -www.facebook.com. -100.16.109.186.in-addr.arpa. -s-static.ak.fbcdn.net. -www.ehas.org. -sn3.mailshell.net. -es.lanoire.wikia.com. -www.facebook.com. -www.syfyuniversal.es. -ceups.contabilidad.unmsm.edu.pe. -c-0.19-23098481.483.1518.19d4.3ea1.410.0.l6rt2gtgmcst4e8d6pu8zqmhrb.avqs.mcafee.com. -web.knotice.com. -parana2003.galeon.com. -28.71.68.201.in-addr.arpa. -mail.g-ss.ru. -_ldap._tcp. -d3lvr7yuk4uaui.cloudfront.net. -104.31.39.187.in-addr.arpa. -gateway.messenger.hotmail.com. -windsongtherapy.com. -handwriting.shuru.qq.com. -a8.sphotos.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -clarkstonconsulting.com.mail10.psmtp.com. -tools.google.com. -mnpsmail2.nashville.gov. -user.baofeng.com. -i1.ytimg.com. -i5.createsend4.com. -a2.sphotos.ak.fbcdn.net. -static11.juegosoka.com. -i1.ytimg.com. -a.root-servers.net. -platform.ak.fbcdn.net. -www.getfoundingoogle.com.au. -worldpress.org. -apps.facebook.com. -toolbarqueries.google.com. -www.telenovelasgratis.com. -blogger-loader.googlecode.com. -akvamarin.ru. -jiandan3.34245.com. -imagenarium.ru. -224.199.218.83.in-addr.arpa. -2.61.204.72.in-addr.arpa. -rt.legolas-media.com. -fbcdn-profile-a.akamaihd.net. -convad.net. -putty.softonic.de. -widenetwork.ning.com. -254.74.134.189.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -ksn2-12.kaspersky-labs.com. -xvideos-738.vo.llnwd.net. -www.latribunadelahistoria.es. -aptoverde.info. -developers.facebook.com. -manta.harrisinteractive.com. -www.youtube.com. -a3.sphotos.ak.fbcdn.net. -everythingtoshare.com. -sogospel.com. -dns.msftncsi.com. -suddenlink.net. -a.root-servers.net. -doomadgee.qld.gov.au. -thumbs4.ebaystatic.com. -support.game321.com. -a995.mm1.akamai.net. -248.30.252.189.in-addr.arpa. -toolbarqueries.google.com. -api.configar.org. -a5.sphotos.ak.fbcdn.net. -90.129.68.189.in-addr.arpa. -voxgraeca.blogspot.com. -www.oldnavy.gap.com. -73.63.122.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -205.43.233.189.in-addr.arpa. -www.skills2lead.com. -google.com. -quincyrehab.com. -docs.google.com. -www.ocsmedia.net. -a.root-servers.net. -fbcdn-profile-a.akamaihd.net. -91.243.77.190.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -97.221.10.187.in-addr.arpa. -yahoo.match.com. -a4.sphotos.ak.fbcdn.net. -198.148.240.111.in-addr.arpa. -www.imakenews.com. -www.miniclip.co. -www.msftncsi.com. -boards.gandreas.com. -armdl.adobe.com. -scullypacking.com. -mint.yes.fm. -zynga2-a.akamaihd.net. -www.nethunter.cl. -reedbusiness.com.au. -p05-bookmarks.icloud.com. -www.orlworld.com. -a.root-servers.net. -hook.yieldbuild.com. -152.41.215.189.in-addr.arpa. -thirdmaritime.com. -a.root-servers.net. -es-es.facebook.com. -118.114.233.190.in-addr.arpa. -www.ciudadaniaestudiantil.com. -www.torrenteros.org. -yamaguchi-u.ac.jp. -www.update.microsoft.com. -www.youtube.de. -52.132.97.212.in-addr.arpa. -www.isidrosobrino.com. -nendo.softonic.com. -pagead2.googlesyndication.com. -_876_98_3. -www.uptodown.com. -235.225.166.189.in-addr.arpa. -stlamerican.com. -r._dns-sd._udp.0.10.168.192.in-addr.arpa. -art.123seguro.com.ar. -crl.microsoft.com. -a.root-servers.net. -photos-b.ak.fbcdn.net. -mx01.pathcom.com. -messiahmauldin.org. -sn104w.snt104.mail.live.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.update.microsoft.com. -www.slideshare.net. -www.ptdf.org.mx. -auto.drom.ru. -platform.ak.fbcdn.net. -pagead2.googleadservices.com. -imp.ad-plus.cn. -a2.sphotos.ak.fbcdn.net. -www.facebook.com. -169.29.58.186.in-addr.arpa. -p.visualrevenue.com. -groups.google.com.mx. -webcache.googleusercontent.com. -46.16.49.190.in-addr.arpa. -extendedvision.com.au. -a.root-servers.net. -midmac.net. -zbar.zynga.com. -198.179.0.201.in-addr.arpa. -203.238.228.190.in-addr.arpa. -b._dns-sd._udp.lan. -www.symantec.com. -www.adobe.com. -255.162.140.120.in-addr.arpa. -fb-zc1.cityville.zynga.com. -tock.usno.navy.mil. -ssibr.com. -i7.tagstat.com. -ci.camas.wa.us. -a4.sphotos.ak.fbcdn.net. -127.0.0.1. -lb._dns-sd._udp.lan. -photos-f.ak.fbcdn.net. -bernco.com. -5aawh4y3x.v08r7e0m. -googleads.g.doubleclick.net. -megaasesoriainmobiliaria.blogdiario.com. -a.root-servers.net. -appsmetadata.toolbar.conduit-services.com. -ifw.com. -s-static.ak.facebook.com. -153.21.83.201.in-addr.arpa. -comtonduling.com. -proof.hsifin.com. -efd8zvfdi.78jy. -www.toneitupdiet.com. -www.sportdiver.com. -www.madison.k12.wi.us. -mini5.opera-mini.net. -dwuinc.com.pri-mx.na0109.smtproutes.com. -158.66.55.174.in-addr.arpa. -ad.adtegrity.net. -google.com. -mail.co.wayne.ny.us. -ogo9mh::a.52vn. -dl3.avgate.net. -platform.ak.fbcdn.net. -203.94.77.190.in-addr.arpa. -wpad. -devilon-m.msk.ru. -iliack4mr.s63j6v7y. -azloans4you.com. -s9.addthis.com. -a3.twimg.com. -google.com. -suffragan.com. -11.25.69.189.in-addr.arpa. -dingtao333.3322.org. -pattencpa.net. -callofduty.filefront.com. -mmaweekly.performancemma.com. -218.196.173.119.in-addr.arpa. -. -dss1.siteadvisor.com. -v-lazer.magadan.ru. -r.admob.com. -ctcn.com. -mail.jbl1.com. -external.ak.fbcdn.net. -51.137.91.95.in-addr.arpa. -c33.ru. -thumbs3.ebaystatic.com. -www.facebook.com. -jedineka.com. -www.facebook.com. -mail.mailcontractors.com. -mail2.dahlmotors.com. -23.229.171.69.in-addr.arpa. -em.adpro-ads.com. -dns.msftncsi.com. -a7.sphotos.ak.fbcdn.net. -www.vipstreamservice.com. -mail.e-salt.ru. -ax.init.itunes.apple.com. -a.root-servers.net. -www.onlinedatingsafetytips.com. -rv.coupish.com. -230.173.49.190.in-addr.arpa. -nutzworld.com. -109.179.164.186.in-addr.arpa. -static.jisiklog.com. -colegioelhayaenglishcorner.blogspot.com. -www.fal.com.co. -6.96.84.200.in-addr.arpa. -m.addthisedge.com. -goodsonauto.com. -46.158.76.188.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -de-de.facebook.com. -a.root-servers.net. -73.24.144.189.in-addr.arpa. -search.iminent.com. -196.237.235.201.in-addr.arpa. -teredo.ipv6.microsoft.com. -a1051.b.akamai.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.enladisco.com. -localhost. -apps.facebook.com. -_075_21_2. -cdn.api.twitter.com. -c0013512.r32.cf1.rackcdn.com. -54.63.73.46.in-addr.arpa. -218.166.36.114.in-addr.arpa. -www.ncbi.nlm.nih.gov. -api.twitter.com. -voipc.sip.yahoo.com. -fbcdn-profile-a.akamaihd.net. -static.ak.fbcdn.net. -a.root-servers.net. -careers.digitaldomain.com. -www.29arabicletters.com. -a.root-servers.net. -87.25.65.93.in-addr.arpa. -relay.voice.messenger.msn.com. -e2756.b.akamaiedge.net. -www.torquecars.com. -mx.images.search.yahoo.com. -u:ym6bwws.v62b7m9d. -44.207.72.84.in-addr.arpa. -dns.msftncsi.com. -www.gronkcomic.com. -m.addthisedge.com. -time.chttl.com.tw. -photos-b.ak.fbcdn.net. -www.planning.wa.gov.au. -bicentenario.unc.edu.ar. -decorarts.files.wordpress.com. -cdn.viglink.com. -www.telegraph.co.uk. -152.246.171.24.in-addr.arpa. -52.21.129.158.in-addr.arpa. -pbimail3.prodigy.net. -17.192.177.190.in-addr.arpa. -a.root-servers.net. -baade.dba.dk. -aspelle.com. -www.turkodesigns.com. -a1.twimg.com. -220.241.152.187.in-addr.arpa. -mail.sportsonesource.com. -mx1.grattanproperty.com. -71.193.34.60.in-addr.arpa. -s.ytimg.com. -www.blogazos.com. -2.13.111.189.in-addr.arpa. -www.bullsfloor.com. -231.199.201.190.in-addr.arpa. -228.94.55.174.in-addr.arpa. -m.xp1.ru4.com. -ib.adnxs.com. -113.191.15.189.in-addr.arpa. -a.root-servers.net. -localhost. -a.blip.tv. -164.3.226.190.in-addr.arpa. -mail.kroog.ru. -secure.fishgame3d.com. -7xko:62o9.15gk. -www.honeybee.com.au. -outreachconnect.org. -a.l.yimg.com. -2.19.149.186.in-addr.arpa. -www.styleandpepperblog.com. -anycast-europe.quantserve.com.akadns.net. -www.apple.com. -smilesandflirts.com. -29.26.109.84.in-addr.arpa. -s1-word-edit.vo.msecnd.net. -a.root-servers.net. -a4.sphotos.ak.fbcdn.net. -apps.facebook.com. -yahoo.com. -191.146.122.77.in-addr.arpa. -es.elderscrolls.wikia.com. -scribe.twitter.com. -msgr.updates.yahoo.com. -wsoulrc.com. -www.14ers.com. -www.google-analytics.com. -google.com. -9h371za7k.84ml. -www.youtube.com. -agothsphere.com. -consumerone.com. -www.ziaruldebacau.ro. -connect.facebook.net. -wfa4l9tu2.35sk. -_855_17_2. -a.root-servers.net. -www.realgirlglam.com. -storage.store2phone.com. -www.cheapnbajerseys.biz. -newsrss.bbc.co.uk. -amer.rel.msn.com. -blogdelfuturo.com. -verybigdays.net. -sulima.org. -a.root-servers.net. -8nl1r99e6.r35f1v6r. -tr.com.s5a2.psmtp.com. -myallamericanlending.com. -doug1izaerwt3.cloudfront.net. -images.nokiagate.com. -2.71.155.189.in-addr.arpa. -cf.addthis.com. -ma156-r.analytics.edgesuite.net. -mail.thefrontierproject.com. -googleads.g.doubleclick.net. -m.facebook.com. -cz-user.he.cninfo.net. -a.root-servers.net. -news.kmdevantagens.com.br. -www.uvvu.com. -profile.ak.fbcdn.net. -static.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -moddys.com. -p18-buy.itunes.apple.com. -www.layeredtech.com. -rs3.scribd.com. -pds2.miclub.com. -158.121.12.86.in-addr.arpa. -graph.facebook.com. -a.root-servers.net. -celinedion.com. -www.clubsnap.com. -ad.yieldmanager.com. -photos-f.ak.fbcdn.net. -adserving.cpxinteractive.com. -peloterotv.blogspot.com. -251.25.111.95.in-addr.arpa. -www.arcatapet.com. -static.xvideos.com. -profile.ak.fbcdn.net. -b.scorecardresearch.com. -www.facebook.com. -a.root-servers.net. -c-0.19-a309f481.20483.1518.19d4.3ea1.410.0.7mq42g1burzz6enmpeuv8t3lh5.avqs.mcafee.com. -boi.perfectworld.com. -www.moviereplicasdirect.com. -a7.sphotos.ak.fbcdn.net. -th07.deviantart.net. -mec.deviantclip.com. -a.root-servers.net. -syncservices.me.com. -2.0.168.192.in-addr.arpa. -102.226.32.177.in-addr.arpa. -www.facebook.com. -yui.yahooapis.com. -a.root-servers.net. -www.l.google.com. -img.msg.yahoo.com. -32.127.71.86.in-addr.arpa. -update.sanasecurity.com. -180.175.168.192.in-addr.arpa. -p50-buy.itunes.apple.com.akadns.net. -www.conduit.com. -cdn2.grupos.emagister.com. -secure.wlxrs.com. -a5.sphotos.ak.fbcdn.net. -external.ak.fbcdn.net. -clients2.google.com. -15minutefashion.about.com. -sp.cwfservice.net. -61.164.34.189.in-addr.arpa. -www.stormwise.com. -ebookbrowse.com. -onsenjikan.dreamwidth.org. -www.google.com. -4.bp.blogspot.com. -creative.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -84.223.160.187.in-addr.arpa. -lh4.ggpht.com. -www.l.google.com. -beta.stun.voice.yahoo.com. -xowneisrh.h25d6r7s. -mx2.actsyuma.net. -_524_58_5. -www.msanet.com.mx. -www.adobe.com. -114.241.225.190.in-addr.arpa. -a.root-servers.net. -www.4shared.com. -a.root-servers.net. -auth.leonardo.it. -mmorales.diarioeldia.cl. -gateway.messenger.hotmail.com. -ads.yimg.com. -www.sickbeard.com. -profile.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -140.140.134.186.in-addr.arpa. -reviews.singerco.com. -118.188.189.78.in-addr.arpa. -tc21.easythumbhost.com. -fbcdn-profile-a.akamaihd.net. -directory.services.live.com. -99.139.175.189.in-addr.arpa. -6.123.30.189.in-addr.arpa. -console-ssl.service.playfish.com. -pixel.mathtag.com. -a.root-servers.net. -ocsp.verisign.com. -a.root-servers.net. -128.38.110.189.in-addr.arpa. -ydyb7ga1u.g11y8v8k. -18.185.233.94.in-addr.arpa. -www.euroresidentes.com. -rs667tl2.rapidshare.com. -46.201.173.190.in-addr.arpa. -47.28.158.17.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -107.224.225.190.in-addr.arpa. -essalud.gob.pe. -directfurniture.com. -a5.sphotos.ak.fbcdn.net. -egate.net56.com. -photos-a.ak.fbcdn.net. -articulossobrebelleza.blogspot.com. -a.root-servers.net. -u20.eset.com. -ejabat.google.com. -gd5.ru. -242.248.130.186.in-addr.arpa. -47.198.78.189.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -250.207.167.190.in-addr.arpa. -wallst.jpmorganchase.com. -39.200.209.201.in-addr.arpa. -1internet.com. -eset-la.com.dnsbl7.mailshell.net. -a.root-servers.net. -www.lfpslebanon.com. -_ldap._tcp. -clients4.google.com. -158.90.127.201.in-addr.arpa. -crl.microsoft.com. -webcache.googleusercontent.com. -a8.sphotos.ak.fbcdn.net. -smtp.wanadoo.fr. -photos-c.ak.fbcdn.net. -vofydac.com. -admin.loading321.com. -ciitlahore.edu.pk. -flol.sabayacafe.com. -thefluffingtonpost.com. -asamblea.gob.ni. -www.argladou.com. -19.248.90.187.in-addr.arpa. -ksn1-11-part2.kaspersky-labs.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -_790_26_3. -adamwhiles.com. -ssl.gstatic.com. -cyberrelief.com. -assets3.castle.zgncdn.com. -61.5.157.201.in-addr.arpa. -194.205.232.76.in-addr.arpa. -251.91.106.200.in-addr.arpa. -log.video.mail.ru. -175.82.137.201.in-addr.arpa. -australia.urbansketchers.org. -124.156.181.175.in-addr.arpa. -midi-pyrenees.cci.fr. -crimecitymafiacodes.com. -242.152.161.142.in-addr.arpa. -ph9rfx8j6.13ni. -radar.cedexis.com. -142.149.106.85.in-addr.arpa. -112.125.168.192.in-addr.arpa. -js.admeld.com. -bridge1.admarketplace.net. -thumbs.hotmature.in. -248.41.52.186.in-addr.arpa. -gilat.com. -cdn.api.twitter.com. -clat99yq7.k30g3x3d. -lsum.com. -www.getansweronline.com. -xxlcc.com. -jbjs.org. -www.cag.es. -a.root-servers.net. -prudentialatlantic.com. -photos-a.ak.fbcdn.net. -36c:a7gcs.l56k5z0d. -227.137.19.189.in-addr.arpa. -creative.ak.fbcdn.net. -m78mnt884.96ig. -login.only10.com. -_746_57_9. -g.msn.com. -vp.sip.messenger.msn.com. -www.kitcosilver.com. -ads.neighborhoodnotes.com. -ejkbi2tdz.f31m9l0f. -a.root-servers.net. -personalitypedagogy.arcadia.edu. -profile.ak.fbcdn.net. -p9u.ru. -a.root-servers.net. -245.104.131.41.in-addr.arpa. -mtalk.google.com. -makemeunder.blogspot.com. -50cubes-a.akamaihd.net. -photos-f.ak.fbcdn.net. -www.socialgrowthtechnologies.com. -shared.live.com. -googleads.g.doubleclick.net. -external.ak.fbcdn.net. -p072.ezboard.com. -227.47.106.27.in-addr.arpa. -photos-a.ak.fbcdn.net. -cta-service.cms.hubspot.com. -a1.sphotos.ak.fbcdn.net. -. -jcqkm:zim.80db. -10.img.v4.skyrock.net. -cs12814.vk.com. -blog.facebook.com. -169.webim0214.webim.myspace.com. -www.webcamxtc.com. -mail.twobest.com. -mn.com. -www.av.com. -photos-b.ak.fbcdn.net. -34.243.35.187.in-addr.arpa. -time.windows.com. -_978_73_3. -googleads.g.doubleclick.net. -a.root-servers.net. -36.138.91.186.in-addr.arpa. -www.buzzbinmagazine.com. -udencuar.com.domain_not_set.invalid. -advisor.fidelity.com. -dvln.com. -tvwebfamosos.blogspot.com. -a.root-servers.net. -55.187.24.201.in-addr.arpa. -fthr.com.s7b2.psmtp.com. -www.20min.ch. -d15gt9gwxw5wu0.cloudfront.net. -a-0.19-a20fd081.a060131.1518.19d4.3ea1.410.0.555215vife6tps7czkhjhiiz15.avqs.mcafee.com. -ubst.dk. -29.159.209.190.in-addr.arpa. -www.thughunter.com. -www.liveroof.com. -172.50.189.201.in-addr.arpa. -ksn1-11-part2.kaspersky-labs.com. -c.lomadee.com. -www.italianmoda.com.es. -www.google.com. -ad-g.doubleclick.net. -apps.facebook.com. -www.whyimcatholic.com. -254.70.51.173.in-addr.arpa. -www.youtube.com. -www.frivy8games.com. -twitter.com. -cfpinsurance.com. -s.youtube.com. -relay.i-gorod.com. -developers.facebook.com. -xf:riuj5v.c97d6b9c. -boss.com.s201a1.psmtp.com. -stats.buysellads.com. -mail.disneinc.com. -lh5.googleusercontent.com. -mail.scalando.com. -www.findtubes.com. -helifax-web.com. -c2i.net. -sullana.amarillasperu.net. -www.facebook.com. -i2.ytimg.com. -cgil.brescia.it. -d261sv3xac0f7i.cloudfront.net. -ad.foxnetworks.com. -www.galleries.lilkelly.com. -craftsmanmold.com.2.arsmtp.com. -ece.uic.edu. -231.119.105.190.in-addr.arpa. -musica.itematika.com. -www.customquillingbydenise.com. -a.root-servers.net. -rbscorp.net. -www.facebook.com. -www.aspaym.org. -cshoppingbox.partner.leguide.com. -cuttingnyc.com. -protesen.dk. -clicktrack3.ziyu.net. -loading.widdit.com. -amserv.ru. -1klik.com. -v14.nonxt3.c.bigcache.googleapis.com. -36.0.108.116.in-addr.arpa. -safepla.net. -weather.service.msn.com. -csi.gstatic.com. -bc41b2bjhrjwem9m6m9d3dll3t.hop.clickbank.net. -mail2.digitalfoundation.net. -platform.ak.fbcdn.net. -tallerdeelectricidadelespinillo.blogspot.com. -www.youtube.com. -m.addthisedge.com. -a.root-servers.net. -i.dailymail.co.uk. -a.root-servers.net. -j.local. -smith-gibson.com. -jcenter.ru. -smgplaw.com.s5a2.psmtp.com. -amsystem.es. -254.141.234.189.in-addr.arpa. -bcp.crwdcntrl.net. -www.metainstaller.com. -yahoo.com. -228.77.250.189.in-addr.arpa. -apis.google.com. -b3.123show.com. -mail1.bagroup.com. -mail.sendero.cl. -www.numberjacks.co.uk. -www.lenodown.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -4cventures.com. -d:6pmofe7.l39g0z0b. -s-static.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -relay3.aeroflot.ru. -www.youtube.com. -a.root-servers.net. -www.snoopdogg.com. -2.6.167.213.in-addr.arpa. -safebrowsing.clients.google.com. -211.42.134.188.in-addr.arpa. -0-250.channel.facebook.com. -stoke.gov.uk. -199.47.159.189.in-addr.arpa. -api.facebook.com. -www.buenastareas.com. -5.50.220.189.in-addr.arpa. -www.vestirjogos.com. -uni-sys.com.inbound15.mxlogic.net. -photos-f.ak.fbcdn.net. -api-read.facebook.com. -a.root-servers.net. -safebrowsing-cache.google.com. -cyclope.auto-futura.ru. -80.16.118.187.in-addr.arpa. -71.25.92.86.in-addr.arpa. -pagead2.googlesyndication.com. -inbound.adamtravel.net.netsolmail.net. -www.pcpowerspeed.com. -alyrica.net. -blogcindad.com. -www.ectaco-store.com. -ja-jp.facebook.com. -a1725.l.akamai.net. -www.librosgratisweb.com. -performersoft.s3.amazonaws.com. -paragonrea.com.s9b2.psmtp.com. -246.112.159.78.in-addr.arpa. -pagead2.googlesyndication.com. -pop3.sitek.net. -twitter.com. -www.google.com. -mx2.luukku.com. -www.caciquecapoeira.com. -www.kissafattie.com. -www.hugetitspicture.com. -8.150.93.201.in-addr.arpa. -bosonweb.com. -www.mercurynews.com. -pubmirrors.reflected.net. -apps.facebook.com. -a.rad.msn.com. -0-jj-w.channel.facebook.com. -mobile.twitter.com. -weima.com. -static.ak.fbcdn.net. -orig-10006.europapress.cotcdn.net. -6-0.qlty.finarea.ch. -v18.ou.sdo.com. -fitocracy.com. -widgets.amung.us. -www.facebook.com. -fbcdn-profile-a.akamaihd.net. -tinhoc.net.vn. -alt1.v6.cache5.c.pack.google.com. -176.237.240.210.in-addr.arpa. -plaza1.net. -www.google.com. -a.root-servers.net. -www.towing.co.uk. -twitter.com. -arkitekt-christiansen.dk. -gramafacil.softonic.com. -plus.google.com. -www.cam4premium.com. -a1.sphotos.ak.fbcdn.net. -p99-imap.mail.me.com. -fimm4825d.v41j1m1a. -215.80.170.201.in-addr.arpa. -16.147.220.66.in-addr.arpa. -coronadopaint.com. -developers.facebook.com. -www.biodegradable.com.mx. -appsec.eniro.com. -adokin66.blogspot.com. -www.musicsonglyrics.com. -mail2.martinyale.com. -www.michael-pratt.com. -ads.mopub.com. -253.24.71.75.in-addr.arpa. -nglgdczcxk.net. -108.241.143.201.in-addr.arpa. -208.136.115.186.in-addr.arpa. -disneyland.disney.go.com. -www.script-tutorials.com. -dns.msftncsi.com. -www.decoz.com. -profile.ak.fbcdn.net. -manualidades.chiquipedia.com. -photos-d.ak.fbcdn.net. -mx2.kulturit.no. -136.234.251.189.in-addr.arpa. -heroesxsiempre.wordpress.com. -www.yolandaadamslive.com. -_031_71_4. -vmtubes.com.br. -winwin.ift.fr. -casema.nl. -a3.sphotos.ak.fbcdn.net. -photos-f.ak.fbcdn.net. -parishilton.fansitio.com. -checkip.dyndns.org. -www.google.com. -l.yimg.com. -photos-a.ak.fbcdn.net. -mailer.cherus.ru. -rus-reshenie.ru. -sentimientos-leydy1006.blogspot.com. -photos-d.ak.fbcdn.net. -devices.live.com. -3yqrensot.15ci. -157.246.250.201.in-addr.arpa. -ssl.gstatic.com. -accounts.google.com. -www.nobelcom.com. -www.google.com. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -darkesthourmovie.com. -nspmotion.com. -fbcdn-profile-a.akamaihd.net. -www.geosyr.com.ar. -mail.yimg.com. -www.explorenaples.com. -photos-d.ak.fbcdn.net. -love.zinzanni.org. -api2.4shared.com. -gfx4.hotmail.com. -creative.ak.fbcdn.net. -appad.gamevil.com. -school.net. -collector7.netgamesusa.com. -www.manosegunda.com.mx. -www.gomestic.com. -gdyn.cnn.com. -a.root-servers.net. -3dprinters.ru. -20minutos.feedsportal.com. -api.webrep.avast.com. -roland-oldala.mindenkilapja.hu. -caps.fool.com. -jjo.ru. -_065_35_0. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a3.twimg.com. -cville.net. -developers.facebook.com. -safebrowsing.clients.google.com. -acoustica.softonic.com. -profile.ak.fbcdn.net. -pop3.live.com. -messagebusiness.ru. -143.173.62.177.in-addr.arpa. -616e616a73.656c6d756e646f.6573.80hc16e80c3.webcfs00.com. -liveupdate.symantecliveupdate.com. -m.addthisedge.com. -creative.ak.fbcdn.net. -safebrowsing.clients.google.com. -101.122.51.190.in-addr.arpa. -dl3.jvckenwood.com. -si0.twimg.com. -pdtm.blarg.net. -sp.qbyrd.com. -166.102.174.190.in-addr.arpa. -a.root-servers.net. -www.gstatic.com. -i1.ytimg.com. -aktakom.ru. -tvenvivogratis.teleserviciosperu.com. -maresco.gr. -a5.sphotos.ak.fbcdn.net. -www.bladder-surgery.net. -medivisor.com. -46-164-112-222.maxnet.ir. -40.243.26.189.in-addr.arpa. -espanol.yahoo.com. -87.52.63.186.in-addr.arpa. -tfnkm:phd.44xn. -gfx4.hotmail.com. -rojoblog.wordpress.com. -s2000.spb.ru. -st.chatango.com. -www.facebook.com. -www.facebook.com. -bayyinah.com. -omh.state.us. -145.169.237.64.in-addr.arpa. -e2umail.com. -photos-e.ak.fbcdn.net. -www.oxan.com. -euro.mediotiempo.com. -developers.facebook.com. -41-courier.push.apple.com. -quoteassociate.com. -mcccharlotte.com. -70.126.151.178.in-addr.arpa. -header.vacationsmadeeasy.com. -cs301806.vk.com. -update.alot.com. -img.widgets.video.s-msn.com. -a.c-0.19-309b000.10033.1518.19d4.2f1c.10.0.wkj94emevza8c94129h2db22fi.avqs.mcafee.com. -www.ctnewsjunkie.com. -www.l.google.com. -embassysuitesaz.com. -adserver.juicyads.com. -photos-e.ak.fbcdn.net. -s-external.ak.fbcdn.net. -136.233.3.190.in-addr.arpa. -www.facebook.com. -plus.google.com. -19-courier.push.apple.com. -mgz.cl. -www.msftncsi.com. -s0.2mdn.net. -i3.ytimg.com. -strangeglue.com. -interop.com.multi.surbl.org. -accounts.google.com. -a8.sphotos.ak.fbcdn.net. -44-courier.push.apple.com. -it-it.facebook.com. -tools.google.com. -fbcdn-photos-a.akamaihd.net. -rosenblatt-law.co.uk. -med.greatviews.de. -www.icdp.org.co. -hostalaquimequedo.com. -www.redtube.com. -v0rak3.net. -112.235.43.190.in-addr.arpa. -227.76.93.186.in-addr.arpa. -translate.google.com.mx. -es-es.fxfeeds.mozilla.com. -232.159.253.189.in-addr.arpa. -usersamara.ru. -cdn.api.twitter.com. -163.184.32.180.in-addr.arpa. -googleads.g.doubleclick.net. -90.60.185.186.in-addr.arpa. -134.42.24.189.in-addr.arpa. -usam.edu.sv. -m.google.com.vn. -mvhrkvaekw.net. -a.root-servers.net. -a.root-servers.net. -gg.google.com. -50.29.204.223.in-addr.arpa. -www.electricsupercharger.com. -a.root-servers.net. -bochsa.site.voila.fr. -241.57.192.173.in-addr.arpa. -www.google.com.mx. -dfgdfgdf.com. -localization.maktoob.com. -fxfeeds.mozilla.com. -a-0.19-a3090081.d030082.1518.19d4.3ea1.410.0.n37zcitfvmd9sl8h1z9j597jl6.avqs.mcafee.com. -pbimail9.prodigy.net. -lokotronicprincezz.blogspot.com. -timne.ru. -www.google.com. -a.root-servers.net. -_005_01_8. -csc3-2010-crl.verisign.com. -www.bflix.info. -gumilla.org. -overtopropetorrents.com. -b-0.19-23006089.8251081.1518.19c7.3ea1.210.0.4qu8elj1p4riw36ub52iebr9uq.avqs.mcafee.com. -blu.rr.msn.com. -static.ak.connect.facebook.com. -mail.pst-net.ru. -profile.ak.fbcdn.net. -furries.ru. -www.imj.gob.mx. -www.pixel2life.com. -animegamusic.blogspot.com. -hg1sddx19.57qn. -eldec.com. -a.root-servers.net. -www.truebrutalmovies.com. -fingrp.com. -img.hotwords.com.br. -predatorperformance.com. -mx.dca.untd.com. -101.61.240.189.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -189.69.203.200.in-addr.arpa. -peru.amarillaslatinas.net. -channelonetv.com. -s.ytimg.com. -mail.ccronline.com. -www.arabia-ms.com. -117.122.114.186.in-addr.arpa. -sgw02.mtr.com.hk. -photos-c.ak.fbcdn.net. -m.eukanuba.es. -avantgarde.com. -teredo.ipv6.microsoft.com. -smtp.acmebros.com. -www.appstrip.com. -pagead2.googlesyndication.com. -19thcentury.wordpress.com. -249.41.29.186.in-addr.arpa. -www.zylomgames.com. -reddingtank.com. -netzero.com. -clients1.google.com. -app.appatyze.com. -www.voanews.com. -www.google-analytics.com. -ex7.stingraytackle.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -photos-e.ak.fbcdn.net. -223.118.176.78.in-addr.arpa. -s225.meetrics.net. -platform.ak.fbcdn.net. -g.promosrv.com. -www.facebook.com. -blogcristiano.net. -172.94.201.190.in-addr.arpa. -twitter-any.s3.amazonaws.com. -www.facebook.com. -ontera.net. -sierramonitor.com. -elmaanareynos.disqus.com. -hosting.live-e.tv. -culpinak.blogspot.com. -anka.ru. -tunnel.cfw.trustedsource.org. -whos.amung.us. -photos-h.ak.fbcdn.net. -arte-history.blogspot.com. -www.motorcheck.ie. -ping3.dyngate.com. -230.180.42.60.in-addr.arpa. -time.nist.gov. -www.usmagazine.com. -100.131.103.201.in-addr.arpa. -99.20.0.192.in-addr.arpa. -learn.caim.yale.edu. -69.3.168.192.in-addr.arpa. -mail.live.com. -mail-carlc.gillhotels.com. -zulu.tweetmeme.com. -meeker.k12.co.us.s9b1.psmtp.com. -a248.e.akamai.net. -www.google-analytics.com. -mail.nashbroselectrical.com. -24.124.46.99.in-addr.arpa. -s.ytimg.com. -twimg0-a.akamaihd.net. -luisalberto941.wordpress.com. -robbiewilliamsradio.com. -138.69.34.156.in-addr.arpa. -photos-f.ak.fbcdn.net. -connect.facebook.net. -nullmx.div.net. -mail.ufoc.org. -style.alibaba.com. -static.ak.fbcdn.net. -my-stats.info. -u22.eset.com. -www.catholicfraternity.net. -photos-c.ak.fbcdn.net. -www.gm.com. -orcart.facebook.com. -250.179.137.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -www.green.com. -daggertools.com. -tc.v6.cache6.c.youtube.com. -photos-d.ak.fbcdn.net. -www.thaimed.us. -cdn.adslfaqs.com.ar. -pagead2.googlesyndication.com. -entrecard.com. -profile.ak.fbcdn.net. -arts.mitrasites.com. -www.buenosaires.com.ar. -computerkiddoswiki.pbwiki.com. -122.109.8.200.in-addr.arpa. -www.croatia.hr. -. -24.183.171.201.in-addr.arpa. -anetstv.ru. -clock.nyc.he.net. -a8.sphotos.ak.fbcdn.net. -slatoninsurance.com.1.arsmtp.com. -connect.facebook.net. -www-google-analytics.l.google.com. -pt-br.facebook.com. -mail3.infomart2000.com. -123.244.92.186.in-addr.arpa. -www.bing.com. -6to4.ipv6.microsoft.com. -112.214.232.190.in-addr.arpa. -zbar2.zynga.com. -a1324.da1.akamai.net. -www.facebook.com. -f86j.myhome.tv. -224.133.124.201.in-addr.arpa. -c.www.endless.com. -diariodeunmiope.lacoctelera.net. -www.xvideoslive.com. -api.twitter.com. -developers.facebook.com. -livlifetoo.blogspot.com. -geecsrztk.z02b7x4y. -234.42.116.174.in-addr.arpa. -apix.iminent.com. -www.peope.mx. -232.68.220.189.in-addr.arpa. -giuj.com. -g.ceipmsn.com. -photos-d.ak.fbcdn.net. -. -apps.facebook.com. -teredo.ipv6.microsoft.com. -mail.crazycarrot.com.au. -api.twitter.com. -142.49.128.190.in-addr.arpa. -mx18.comquatro.com.br. -mail.primate.net. -configuration.apple.com. -css.wlxrs.com. -a.root-servers.net. -159.213.141.201.in-addr.arpa. -sysna.com. -www.guarras.com. -a.root-servers.net. -fbcdn-profile-a.akamaihd.net. -_363_27_6. -205.57.4.46.in-addr.arpa. -i1.ytimg.com. -a3.sphotos.ak.fbcdn.net. -235.187.83.200.in-addr.arpa. -image.usedvictoria.com. -hayfork.net. -103.111.238.41.in-addr.arpa. -facebook.com. -pt-br.www.mozilla.com. -40.162.255.173.in-addr.arpa. -platform.ak.fbcdn.net. -api.twitter.com. -67.170.57.186.in-addr.arpa. -pixel.facebook.com. -samplast.ru. -www.espaces.ca. -s.youtube.com. -enter.racksandblacks.com. -mail.blomsma.net. -d3.c2.b7.a1.top.mail.ru. -sp.cwfservice.net. -86.191.34.186.in-addr.arpa. -clients1.google.com.mx. -52.174.203.190.in-addr.arpa. -peru.paginasamarillas.com. -language-reader.softonic.com. -zknwrqbcrm.ru. -theshadowconspiracy.tumblr.com. -6.103.224.190.in-addr.arpa. -cust2916-2.in.mailcontrol.com. -www.nationaloutdoors.net. -api.twitter.com. -todoovni.bligoo.cl. -by120fd.bay120.hotmail.msn.com. -goo.gl. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -text.kcl.ac.uk. -m.addthisedge.com. -tsm04.eset.com. -naifandtastic.blogspot.com. -41.240.87.212.in-addr.arpa. -23.217.78.190.in-addr.arpa. -110.27.239.77.in-addr.arpa. -mail2.besttransformer.com. -at160.com. -number-32.magazine-fashion.net. -178.250.121.109.in-addr.arpa. -rssgov.windows.microsoft.com. -142.227.198.190.in-addr.arpa. -_192_63_1. -www.izucar.info. -media.trafficjunky.net. -longnosecelebs.hoxpedaje.com. -davisequip.com.s5a1.psmtp.com. -creative.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -netmag.com.mx. -a.root-servers.net. -www.taringa.net. -89.163.95.200.in-addr.arpa. -seter.com.mx. -60.79.151.186.in-addr.arpa. -m.addthisedge.com. -tradewindtours.com. -53.221.170.90.in-addr.arpa. -www.fondationtf1.fr. -content.yieldmanager.edgesuite.net. -www.techawards.org. -www.google.com. -adm.fwmrm.net. -9.9.192.190.in-addr.arpa. -a.root-servers.net. -a1015.g.akamai.net.0.1.cn.akamaitech.net. -www.mercadolibre.com.ar. -7.206.1.181.in-addr.arpa. -dns.msftncsi.com. -88.27.219.85.in-addr.arpa. -ns2.mokr.ru. -mx.youtube.com. -biztv.ru. -ad.yieldmanager.com. -60.175.15.201.in-addr.arpa. -bit.ly. -resolver5.wguard.ctmail.com. -pjallseasons.blogspot.com. -63.32.133.186.in-addr.arpa. -_618_22_9. -dnl-18.geo.kaspersky.com. -apis.google.com. -219.73.168.192.in-addr.arpa. -pixel.facebook.com. -ar-ar.facebook.com. -sc.cc.wy.us. -fbcdn-photos-a.akamaihd.net. -a.root-servers.net. -orajydoh4.08ri. -liveupdate.symantecliveupdate.com. -244.255.146.216.in-addr.arpa. -img3.annuncicdn.it. -www.geotaku-no-fansub.com. -www.devenir-rentier.fr. -www.zehnders.com. -wnnfans.com. -mail.renta-auto.ru. -64.173.231.190.in-addr.arpa. -creative.ak.fbcdn.net. -www.gaypaycheck.com. -a3.sphotos.ak.fbcdn.net. -. -www.ofertas-ocasion-mercedes.com. -google.com. -36.179.70.217.in-addr.arpa. -s.youtube.com. -ssl.gstatic.com. -i3.ytimg.com. -clansunset.files.wordpress.com. -a1820.phobos.apple.com. -a.root-servers.net. -api.nanigans.com. -metrics.news.co.uk. -www.powerslaverecords.com. -smtp.dvinaland.ru. -cloud.rovio.com. -www.gamecdkey.org. -irizrb:dw.e95p5k2h. -creative.ak.fbcdn.net. -creative.ak.fbcdn.net. -segurosencasa.com. -a.root-servers.net. -www.interactivestuff.org. -122.166.130.189.in-addr.arpa. -217.26.121.186.in-addr.arpa. -a.root-servers.net. -7.17.135.187.in-addr.arpa. -api.facebook.com. -www.facebook.com. -174.84.176.187.in-addr.arpa. -i1237.photobucket.com. -nyhbpr.com. -hostgrantor.org. -a.root-servers.net. -magnacarta.surrey.sch.uk. -45.193.42.62.in-addr.arpa. -peoplepc.com. -20.16.43.186.in-addr.arpa. -a.root-servers.net. -www.gamer.ne.jp. -a.root-servers.net. -a.root-servers.net. -yahoo.download.vmn.net. -www.google.com. -rs501tl5.rapidshare.com. -relay.voice.edge.messenger.live.com. -encuadernacion.realbiblioteca.es. -210.65.122.84.in-addr.arpa. -byfiles.storage.msn.com. -61.42.201.190.in-addr.arpa. -api-read.facebook.com. -mx.ptmail.sapo.pt. -dns.msftncsi.com. -a8.sphotos.ak.fbcdn.net. -www.wdc.com. -236.194.78.186.in-addr.arpa. -229.0.55.157.in-addr.arpa. -pagead2.googlesyndication.com. -pagead2.googlesyndication.com. -eastoregonian.com. -www.mangolanguages.com. -mail.cognisurf.com. -www.gstatic.com. -teredo.ipv6.microsoft.com. -a.root-servers.net. -download346.avast.com. -192.12.68.189.in-addr.arpa. -e1463.b.akamaiedge.net. -231.36.168.192.in-addr.arpa. -static.ak.fbcdn.net. -230.20.20.67.in-addr.arpa. -i29.servimg.com. -vingan.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -www.google-analytics.com. -a6.sphotos.ak.fbcdn.net. -12.229.127.201.in-addr.arpa. -48.196.243.201.in-addr.arpa. -smtp.telelogix.net. -twitter.com. -www.facebook.com. -webcache.googleusercontent.com. -photos-c.ak.fbcdn.net. -www.interpanama.com. -mx4.etrn.canit4.3d.net.uk. -developers.facebook.com. -endling.deviantart.com. -promo.msgpluslive.net. -a.root-servers.net. -www.directbigboobsreloaded.net. -sites.google.com. -www.facebook.com. -93.68.73.186.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -os.ning.com. -a.root-servers.net. -bigdealutah.kostizi.com. -support.google.com. -notify19.dropbox.com. -s-static.ak.fbcdn.net. -cinci.rr.com. -plusmall.golfsky.com. -crl.microsoft.com. -www.mixx.com. -ovv7ckhrk.s14s9c3m. -22-courier.push.apple.com. -ksn2-12.kaspersky-labs.com. -activesync.hot.glbdns.microsoft.com. -pixel.facebook.com. -sp.cwfservice.net. -sailinghawks.com. -a.root-servers.net. -mail.insomnia-sales.com. -76.252.160.201.in-addr.arpa. -a.root-servers.net. -pixel.quantserve.com. -feralon.blogspot.es. -ana-marin.blogspot.com. -a1505.l.akamai.net. -estaticosak1.tuenti.com. -a.root-servers.net. -www.ratteb.com. -colegiala-informe-11-parte-del-pudin-esta-en-estudio.planetadepeliculas.com. -204.236.7.95.in-addr.arpa. -a.sigalert.com. -ar2006.emcdda.europa.eu. -www.mexicosmagazine.com. -s-static.ak.fbcdn.net. -aol.com. -www.bookmarksbookshop.co.uk. -marlerclark.com.s9b2.psmtp.com. -nsiadvisors.com. -a5.sphotos.ak.fbcdn.net. -97.172.31.190.in-addr.arpa. -static.ak.fbcdn.net. -neude.tumblr.com. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.rickross.com. -165.178.133.189.in-addr.arpa. -a1725.l.akamai.net. -gumps.com.s7a2.psmtp.com. -gdata.youtube.com. -ping.ginoplayer.net. -a6.sphotos.ak.fbcdn.net. -dss1.siteadvisor.com. -mx.youtube.com. -a.root-servers.net. -forum.sky.it. -officesm.ru. -h.live.com. -www.waraqat.net. -megaconsolas.foros.bz. -www.whitehouse.gov. -www.amountainofcrushedice.com. -a.root-servers.net. -img3.catalog.video.msn.com. -rovio1.appads.com.\224[\173\001. -. -a.root-servers.net. -keithclarkephotography.com. -64.20.54.1.in-addr.arpa. -tmss.trendmicro.com. -dc461.4shared.com. -vp.sip.messenger.msn.com. -apis.google.com. -cableone.net. -bolyai.cs.elte.hu. -_230_86_4. -passwaynet.com. -www.fiveguys.net. -qwar.spb.ru. -138.188.224.125.in-addr.arpa. -profile.ak.fbcdn.net. -176.32.58.186.in-addr.arpa. -api4s.dayup.org. -brayleino.co.uk. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -a.root-servers.net. -210.213.38.190.in-addr.arpa. -um12.eset.com. -126.41.155.189.in-addr.arpa. -twitter.com. -www.vxsbill.com. -pixel.facebook.com. -recookie-767972906.us-east-1.elb.amazonaws.com. -developers.facebook.com. -www.androidtabletpcsupport.com. -www.bicimotor.com. -i.yimg.jp. -www.earthakittfanclub.com. -www.goutremoval.com. -x26.xanga.com. -hortigas.org. -mscrl.microsoft.com. -checkip.dyndns.org. -external.ak.fbcdn.net. -svrintl-g3-crl.verisign.com. -80.85.38.68.in-addr.arpa. -cody.wtp.net. -p03-contacts.icloud.com. -ocsp.verisign.com. -108.31.193.108.in-addr.arpa. -www.superdelivery.com.ar. -cuauhtemocsuarez.tumblr.com. -mail.agency-legion.ru. -help.weheartit.com. -fbcdn-photos-a.akamaihd.net. -external.ak.fbcdn.net. -cdn.api.twitter.com. -loading5.widdit.com. -psgw.t-mobilesgws.com. -www.shemaleladys.com. -c.bing.com. -ssl.gstatic.com. -_671_21_1. -fs438.uploading.com. -voipc.sip.yahoo.com. -urs.microsoft.com. -photos-a.ak.fbcdn.net. -www.irememberjfk.com. -www.addthis.com. -15.149.220.66.in-addr.arpa. -yui.yahooapis.com. -www.afroonblondes.com. -shopperinc.com. -146.4.75.200.in-addr.arpa. -packman.links2linux.org. -v7.cache2.c.youtube.com. -a.root-servers.net. -9.248.113.71.in-addr.arpa. -inscapllc.com. -www.keep-project.eu. -v3.nonxt2.c.pack.google.com. -0-56.channel.facebook.com. -webcache.googleusercontent.com. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -www.facebook.com. -www.videosmaduras.org. -cart.taobao.com. -insider.msg.yahoo.com. -javadl-esd.sun.com. -vf.cloud.avg.com. -a.root-servers.net. -gateway.deiser.es. -mail2.keybuild.com. -bryansk.ru. -www.modernwallcompany.com. -comprarcreatina.net. -public.liss.slidesharecdn.com.edgesuite.net. -201.212.44.200.in-addr.arpa. -noble-empire.com. -ads.yimg.com. -eshop.infobel.com. -photos-g.ak.fbcdn.net. -rekam-auto.ru. -enfrentalaverdad.activo.mx. -tc.v23.cache4.c.youtube.com. -www.studiocalico.com. -bit.ly. -dns.msftncsi.com. -a954.phobos.apple.com. -news.bbc.co.uk. -www.mileycyrusgames.net. -sapiens.ya.com. -orcart.facebook.com. -39.62.215.189.in-addr.arpa. -listserv.repp.org. -mail.google.com. -a7.sphotos.ak.fbcdn.net. -sp.cwfservice.net. -dns.msftncsi.com. -www.walletshop.com.au. -a.root-servers.net. -ad.bannerconnect.net. -cn1.redswoosh.akadns.net. -8.163.10.186.in-addr.arpa. -tick.stdtime.gov.tw. -miraflores.gob.pe. -129.168.230.190.in-addr.arpa. -www.servoprax.com. -a8.sphotos.ak.fbcdn.net. -maybones.polyvore.com. -www.800mainstreet.com. -www.p1q.eu. -rutafreak.blogspot.com. -www.aerobic-online.com. -dc350.4shared-china.com. -168.169.28.190.in-addr.arpa. -tobolsk.info. -apis.google.com. -ipswebfilter.molindia.com. -7.213.43.200.in-addr.arpa. -api.facebook.com. -vp.sip.messenger.msn.com. -www.gtliens.fr. -www.ign.com. -73.114.168.192.in-addr.arpa. -www.google.com. -243.114.106.177.in-addr.arpa. -bt1.divalium.com. -feeds.bbci.co.uk. -138.34.60.186.in-addr.arpa. -autocadprojects.blogspot.com. -70.139.163.90.in-addr.arpa. -baptisthealh.net. -mail.kudlow.com. -photos-g.ak.fbcdn.net. -www.trpk.net. -ad.yieldmanager.com. -www.nylon-xxx.com. -it-demo.com.ua. -valiumchat.chatango.com. -www.bookfinder.com. -s-external.ak.fbcdn.net. -www.twinkspicsorgasm.com. -denis.stalker.h3q.com. -tracker.ktxp.com. -www.svpg.com. -a.root-servers.net. -tc.v6.cache8.c.youtube.com. -126.73.88.200.in-addr.arpa. -s2.youtube.com. -madonna.connexion.free.fr. -email.houcon.com. -fei9988.3322.org. -_547_98_4. -fs433.uploading.com. -www.cuartodecomunicaciones.com. -f0.img.v4.skyrock.net. -127.0.0.1. -www.internethealthlibrary.com. -www.thomsonscientific.com. -www.esperanzanews.com.ar. -m.hotmail.com. -router.bitcomet.net. -um18.eset.com. -a.root-servers.net. -234.16.39.190.in-addr.arpa. -mail.highklass.ru. -. -sp.cwfservice.net. -o-o.preferred.lga15s20.v10.lscache1.c.youtube.com. -_535_07_7. -a8.sphotos.ak.fbcdn.net. -vicclap.hu. -mstu.redu.ru. -s2.youtube.com. -www.4mybaby.ch. -ogil.files.wordpress.com. -tw.burberry.com. -147.8.94.189.in-addr.arpa. -mailer.cimesa.net. -www.radanpro.com. -222.200.233.190.in-addr.arpa. -profile.ak.fbcdn.net. -google.com. -teredo.ipv6.microsoft.com. -www.jorudan.co.jp. -inferno.demonoid.com. -static.ak.facebook.com. -static.ak.facebook.com. -datawingsff.monbe.be. -169.157.253.201.in-addr.arpa. -a921.phobos.apple.com. -apps.facebook.com. -a.root-servers.net. -41.32.216.190.in-addr.arpa. -l.sscdn.co. -a.root-servers.net. -api-read.facebook.com. -a.root-servers.net. -three-part-harmony.com. -mail.saratov.su. -55.180.47.31.in-addr.arpa. -www.bddlgroup.com. -itunes.com. -www.googleadservices.com. -www.dotcr.ost.dot.gov. -plus.google.com. -im-from-wasteland.tumblr.com. -www.mylovedtranny.com. -www.msftncsi.com. -ar.babel.com. -adc.bmjjournals.com. -www.lucialapiedradesnuda.com. -www.manhelper.com. -x5ah2rbgj.95wi. -xrpvt59gh.o63y7w1b. -katzenlaw.net. -mail.bushtracksafrica.com. -img7.imageshack.us. -ksn1-12-part2.kaspersky-labs.com. -156.33.66.187.in-addr.arpa. -commons.wikimedia.org. -sp.cwfservice.net. -heartbeat.belkin.com. -a.root-servers.net. -g.microsoft.com. -cableone.net.mail5.psmtp.com. -images.intl.match.com. -picnic.com. -196.91.52.94.in-addr.arpa. -mx.tcrcd.net. -www.textsrv.com. -www.simplysupersoft.com. -9-1.qlty.finarea.ch. -mail.aeronauticalelectric.com. -tolteca-guillermomarin.blogspot.com. -ajax.cloudflare.com. -db2.stb00.s-msn.com. -www.facebook.com. -api.geo.kontagent.net. -salonesoterico.com. -a4.sphotos.ak.fbcdn.net. -check.sanasecurity.com. -0-250.channel.facebook.com. -9-courier.push.apple.com. -zh-cn.facebook.com. -google.com. -pravbrat.ru. -www.bodydragon.com. -0-ig-w.channel.facebook.com. -ads.traffichaus.com. -platform.ak.fbcdn.net. -www.bookdepository.com. -chunsreef.globalhost.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -t5.tagstat.com. -www.dvbviewer.com. -a1920.g.akamai.net. -mail.sofaselections.com. -managedindustrial.com. -www.monsterdivx.com. -www.adobe.com. -6to4.ipv6.microsoft.com. -accounts.google.com. -charter.net. -174.16.110.68.in-addr.arpa. -comicsinvasion.blogspot.com. -rospres.com. -mail.pavcol.com. -s.youtube.com. -c.wb.mapbox.com. -a5.sphotos.ak.fbcdn.net. -forsuccess.ru. -triaid.rr.com. -arlenegoldbard.com. -bw33xoel:.z73d3n9o. -s.youtube.com. -google.com. -29.27.176.189.in-addr.arpa. -www.forosdelweb.com. -10.1.168.192.in-addr.arpa. -155.213.69.190.in-addr.arpa. -www.youtube.com. -map.secondlife.com.s3.amazonaws.com. -www.indeed.com. -russadventures.ru. -185.78.244.189.in-addr.arpa. -toolbarqueries.clients.google.com. -crl.microsoft.com. -pixel.facebook.com. -hydrogen.yatho.de. -youtu.be. -a.root-servers.net. -lb._dns-sd._udp.belkin. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.4girlsfingerpaint.com. -uwpho.to. -29.200.230.188.in-addr.arpa. -cdn1.ads.brazzers.com. -thumbnails.infolinks.com. -crossword-forge.uptodown.com. -daytona.backpage.com. -a.root-servers.net. -192.248.167.184.in-addr.arpa. -www.softonic.com. -rdmail.com. -jjegonzalezf.files.wordpress.com. -mundotdc.bancomer.com.mx. -a.root-servers.net. -counterb.statcounter.com. -4benchmark.com. -d2o307dm5mqftz.cloudfront.net. -180.144.130.201.in-addr.arpa. -webex.com.rbl2.mcafee.com. -deliriosdemuekitacat.blogspot.com. -www.equipo63.com. -_530_88_0. -www8.incredimail.com. -xxlcc.com. -exch2k7.npes.org. -download.windowsupdate.com. -creative.ak.fbcdn.net. -ib.adnxs.com. -23.112.144.79.in-addr.arpa. -yoteoriento.blogspot.com. -bcisouthwest.com. -www.mumstuff.co.uk. -westsoundelectric.com. -127.0.0.1. -external.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -22.53.218.190.in-addr.arpa. -rmail1.aeroplan.spb.ru. -fr.webrep.avast.com. -static.ak.connect.facebook.com. -groups.google.as. -82.76.173.218.in-addr.arpa. -rewe-brinkmann.de. -iphonedeveloperhelp.info. -www.listengo.com. -b.imwx.com. -mx.ezfloorplan.com. -mail.medinformatix.com. -safebrowsing.clients.google.com. -189.39.222.186.in-addr.arpa. -mailgw4.gnresound.com. -flash.y9.vc. -www.trouvetamosquee.fr. -videos.publimetro.cl. -a.root-servers.net. -pagead.l.doubleclick.net. -virtualwave.com. -223.16.92.201.in-addr.arpa. -globalite.com.br. -104.0.84.186.in-addr.arpa. -www.lineahome.com. -_624_21_2. -m.facebook.com. -inglife.ru. -marisol-espurnetes.blogspot.com. -mtalk.google.com. -billitall.com. -ssl.gstatic.com. -viniloseroticos.blogspot.com. -fisica.net. -forum.kismac-ng.org. -www.hispanicfund.org. -60.100.8.99.in-addr.arpa. -100500.tv. -feeds.bbci.co.uk. -114.18.152.189.in-addr.arpa. -cuda1.tcworks.net. -27.0.1.10.in-addr.arpa. -qnr6pa2:l.81xy. -id.google.com.mx. -shared.live.com. -a.root-servers.net. -clients1.google.com. -a4.sphotos.ak.fbcdn.net. -www.seccionamarilla.com.mx. -cs13243.vkontakte.ru. -f.facemoods.com. -159.158.156.175.in-addr.arpa. -ajax.googleapis.com. -11.1.168.192.in-addr.arpa. -44.215.85.209.rbl7.mailshell.net. -o-o.preferred.lax04s12.v10.lscache5.c.youtube.com. -a.root-servers.net. -65.66.6.186.in-addr.arpa. -108.119.13.187.in-addr.arpa. -86.101.188.189.in-addr.arpa. -fr.wunderman.com.s200a1.psmtp.com. -lh4.googleusercontent.com. -gateway.messenger.hotmail.com. -profile.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -167.196.81.201.in-addr.arpa. -31.240.49.186.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.google.com. -208.30.8.200.in-addr.arpa. -certifiedair.net.s5a2.psmtp.com. -www.vanderlande.com. -98.115.215.189.in-addr.arpa. -spotcrime.com. -www.elsotano.com.mx. -javadl-esd.sun.com. -celebrity-weight-loss.info. -m.facebook.com. -www.amazon.com. -aenianos.wordpress.com. -ssl.google-analytics.com. -196.252.223.201.in-addr.arpa. -126.17.50.190.in-addr.arpa. -xatihujigonako.com. -www.cuentosparacolorear.com. -www.imdb.com. -altacosta.ru. -google.com. -fr-fr.facebook.com. -www.fighterplanegames.net. -www.naviopirata.com. -ws-cloud-msgplus.linkury.com. -jp.yupis.org. -pixel.facebook.com. -blog.soluciones3f.com.ar. -vcs2.msg.yahoo.com. -connect.facebook.net. -www.script-tutorials.com. -static.ak.fbcdn.net. -news.google.com.mx. -settings.toolbar.conduit-services.com. -251.121.68.189.in-addr.arpa. -noir-gothly.blogspot.com. -cox.net. -www.vbsoporte.com. -liftlab.com. -scimail.silvercloud.com. -181.159.253.190.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -img820.imageshack.us. -www.kenquestmedical.com. -www.telegraph.co.uk. -238.45.54.208.in-addr.arpa. -www.google.com. -ib.adnxs.com. -c.prodigy.msn.com. -www.ece.byu.edu. -a4.da1.akamai.net. -www.sandy-xxx.com. -a.root-servers.net. -laborlawyers.com.s8b2.psmtp.com. -www.google-analytics.com. -www.paginasamarillas.com.ar. -www4.pictures.gi.zimbio.com. -16.147.220.66.in-addr.arpa. -docs.google.com. -apps.facebook.com. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -mail.newroads.org. -lujazos.com. -a2.sphotos.ak.fbcdn.net. -webres1.pand.ctmail.com. -e.yieldmanager.net. -prev.explabs.net. -ad.yieldmanager.com. -samor.ru. -feeds.bbci.co.uk. -cableone.net.mail7.psmtp.com. -adserving.cpxinteractive.com. -mail.sembolferforje.com. -ksn2-12.kaspersky-labs.com. -ns.ett.ua. -a2.twimg.com. -photos-e.ak.fbcdn.net. -abtaudit.ru. -codeblocks.org. -193.142.215.173.in-addr.arpa. -youtu.be. -mediacdn.disqus.com. -fbbmusclegirls.blogspot.com. -gfx1.hotmail.com. -dynda.net. -mail2.deis.unical.it. -surgient.com. -34.98.250.189.in-addr.arpa. -msc.wlxrs.com. -clients1.google.com. -fishermotors.com.s9a1.psmtp.com. -www.facebook.com. -centromedicomty.com. -grandcanyon.ru. -44.82.77.219.in-addr.arpa. -external.ak.fbcdn.net. -sharpusa.com. -www.gapa.de. -a1.sphotos.ak.fbcdn.net. -www.youtube.com. -ajax.googleapis.com. -www.facebook.com. -rwpike.deviantart.com. -orcart.facebook.com. -bernatcomas.com. -translate.googleapis.com. -tncu.org. -_429_57_2. -a7.sphotos.ak.fbcdn.net. -c-0.19-a30f1081.60081.1518.19d2.3ea0.210.0.9z5w4fe9kicv8b19mbh6svh7ui.avqs.mcafee.com. -a.root-servers.net. -loquelacomidasellevo.blogspot.com. -sitemap.gamefaqs.com. -b.scorecardresearch.com. -matcher-rbc.bidder7.mookie1.com. -51.56.112.186.in-addr.arpa. -156.219.192.173.in-addr.arpa. -icons.cubics.com. -213.44.0.10.in-addr.arpa. -fugazyintl.com. -welcometobaltimorehon.com. -www.institutoasegurador.com.ar. -www.htmlgraphic.com. -191.163.245.189.in-addr.arpa. -231.120.69.190.in-addr.arpa. -s-static.ak.fbcdn.net. -www.kisscleveland.com. -wewecity.s3.amazonaws.com. -es.disney.wikia.com. -1.bp.blogspot.com. -22.1.111.186.in-addr.arpa. -96.250.115.186.in-addr.arpa. -creative.ak.fbcdn.net. -brightonpainting.com. -i1.ytimg.com. -olsten.com. -229.21.192.187.in-addr.arpa. -24.145.228.84.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -mobileblogmoney.com. -www.allpsychologyschools.com. -mail.gadaletoramsby.com. -62.108.173.118.in-addr.arpa. -201.127.172.67.in-addr.arpa. -ijfdiiuvirghdlkqrdapq.cc. -www.tebca.com. -www.avkube.ru. -s2.youtube.com. -jywuua.com. -207.196.51.190.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -18.70.133.189.in-addr.arpa. -fr.onehourtranslation.com. -photos-a.ak.fbcdn.net. -static.ak.fbcdn.net. -media.adxpansion.com. -msgr.updates.yahoo.com. -mail.bristol.mass.edu. -safebrowsing-cache.google.com. -a1768.g.akamai.net. -psgw.t-mobilesgws.com. -wtabfgempt.info. -telecom.cz. -a.root-servers.net. -img216.imageshack.us. -ad.ifwcash.com. -www.courts.state.ny.us. -time.nist.gov. -delanteroizquierdo.blogspot.com. -gfjdyrfcb.net. -www.facebook.com. -dnl-02.geo.kaspersky.com. -. -www.bylatino.mx. -loading.retry.widdit.com. -chat009.vs.com. -forums.opalauctions.com. -twitter.com. -www.olx.com.do. -m.facebook.com. -fbcdn-profile-a.akamaihd.net. -mail.btk.ru. -usf.com. -nwcoughlin.com. -m.facebook.com. -alt2.gmail-smtp-in.l.google.com. -click.sandglass.tv. -61.10.89.183.in-addr.arpa. -mail.owzw.com. -131.235.88.200.in-addr.arpa. -a.root-servers.net. -phpfusion.org. -8.0.168.192.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -www.cljhealth.com. -www.facebook.com. -photos-d.ak.fbcdn.net. -mail.satlinker.com. -fi.wikipedia.org. -www.facebook.com. -apis.google.com. -images.apple.com. -155.138.189.189.in-addr.arpa. -videosjustinbieber.com.ar. -www.20minutos.es. -lykwrwb65.y20y7r0v. -i2.ytimg.com. -ejabat.google.com. -centroidcnc.com. -www.wise.edu.jo. -hyperiontechnologies.com. -rtlnow.de. -30-courier.push.apple.com. -weather.bigmir.net. -photos-e.ak.fbcdn.net. -channeltechno.com. -www.unbeatablesale.com. -adsc.com. -144.148.85.209.in-addr.arpa. -asap-utilities.en.softonic.com. -www.nursery.com.au. -skateboardmsm.mpora.de. -19.208.247.92.in-addr.arpa. -199.97.75.65.in-addr.arpa. -gmx.at. -a.root-servers.net. -87.210.2.201.in-addr.arpa. -ads.adxpansion.com. -itu.int.s201a2.psmtp.com. -openx-adserver-balancer-2134199362.us-west-1.elb.amazonaws.com. -promarkit.com. -dikomp.saratov.ru. -www.facebook.com. -www.ftp8.co.uk. -ugij8vgz3.01ui. -googleads.g.doubleclick.net. -spider-wl023.proxy.aol.com. -jjlennon.com. -www.facebook.com. -a1132.da1.akamai.net. -a.root-servers.net. -42.112.55.187.in-addr.arpa. -183.37.55.92.in-addr.arpa. -q2sg6c68:.70si. -clients4.google.com. -www.twifansadnet.com. -tmss.trendmicro.com. -thirdwavepartners.net. -blogs.tudiscovery.com. -www.perfectdiva.ro. -182.55.198.187.in-addr.arpa. -112.230.29.189.in-addr.arpa. -gmt.nl. -www.google.com. -153.149.233.189.in-addr.arpa. -abcfamily.go.com. -62.178.130.186.in-addr.arpa. -213.129.204.186.in-addr.arpa. -14.136.206.190.in-addr.arpa. -cbsystem.fr. -121.24.93.97.in-addr.arpa. -247.44.79.94.in-addr.arpa. -twitter.com. -www.vuelosbaratos.com.mx. -a8.sphotos.ak.fbcdn.net. -www.iwanttostopsnoring.com. -straight.com. -photos-f.ak.fbcdn.net. -any-latamrc.a01.yahoodns.net. -i.w55c.net. -gitrust.com. -s7.addthis.com. -a1108.da1.akamai.net. -ic.tynt.com. -5.194.242.201.in-addr.arpa. -6.125.158.187.in-addr.arpa. -www.google-analytics.com. -www.furl.net. -a4.sphotos.ak.fbcdn.net. -bs.serving-sys.com. -195.189.255.201.in-addr.arpa. -www.multicam.com. -196.98.193.173.in-addr.arpa. -71.193.39.187.in-addr.arpa. -a.root-servers.net. -55.0.46.190.in-addr.arpa. -s7.addthis.com. -www.facebook.com. -201.139.34.177.in-addr.arpa. -tracker.openbittorrent.com. -www.bkrtx.com. -149.148.10.187.in-addr.arpa. -apps.facebook.com. -att.net. -docs.google.com. -db._dns-sd._udp.0.55.211.10.in-addr.arpa. -205.217.19.190.in-addr.arpa. -_789_63_3. -34.35.32.186.in-addr.arpa. -rvmconstrucion.com. -login.netgame.com. -firstclassbuilders.com. -www.scatmodelpower.com. -wyattfirm.com.mail6.psmtp.com. -thetwistfamily.blogspot.com. -16.54.119.200.in-addr.arpa. -img9.ask.fm. -gossipgirls.episodeseason.com. -221.121.224.190.in-addr.arpa. -ds.serving-sys.com. -www.bathmate.ca. -profile.ak.fbcdn.net. -www.santuariock.com.ar. -ib.adnxs.com. -barracuda.tulsarealtors.com. -bigond.com. -cm.g.doubleclick.net. -fbcdn-profile-a.akamaihd.net. -clock.fmt.he.net. -rad.msn.com. -fbcdn-profile-a.akamaihd.net. -www.gaportal.org. -padgk93gf.q08g1d7w. -197.83.97.93.in-addr.arpa. -photos-f.ak.fbcdn.net. -228.50.59.186.in-addr.arpa. -www.hungryhappenings.com. -0.2.0.e.1.7.4.e.8.2.f.6.b.8.c.1.6.7.e.9.7.3.1.4.0.0.0.0.1.0.0.2.ip6.arpa. -partner.googleadservices.com. -pixel.quantserve.com. -a.root-servers.net. -adm-skhodnya.ru. -external.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.adobe.com. -t2.gstatic.com. -www.abc.com.py. -254.119.236.92.in-addr.arpa. -204.87.56.187.in-addr.arpa. -gisy.com.inbound25.mxlogic.netet. -bgs.bethsoft.com. -star.facebook.com. -165.72.232.189.in-addr.arpa. -static.ak.fbcdn.net. -homepage.mac.com. -www.larips.com. -equityrisk.com.inbound15.mxlogicmx.net. -pricelist.skype.com. -www.fallinginreversestore.com. -www.orcius.com. -images.intellitxt.com. -cs301713.vk.com. -adscdn.avalonsunsplash.com. -api.twitter.com. -pixel.facebook.com. -static.sl.lumosity.com. -_924_10_1. -222.103.222.189.in-addr.arpa. -api.twitter.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.google.com. -a.root-servers.net. -vcs1.msg.yahoo.com. -a5.sphotos.ak.fbcdn.net. -11.249.233.190.in-addr.arpa. -220.188.7.88.in-addr.arpa. -www.appsomniac.com. -bs.serving-sys.com. -b._dns-sd._udp.lan. -webcache.googleusercontent.com. -10.211.16.190.in-addr.arpa. -desionlinemovies.blogspot.com. -www.amor-yaoi.com. -107.112.2.190.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -247.102.55.157.in-addr.arpa. -www.vicor-china.com. -196.217.230.190.in-addr.arpa. -pixel.facebook.com. -195.156.129.78.in-addr.arpa. -_477_58_0. -_767_13_7. -www.gilligansisle.com. -xabantech.files.wordpress.com. -bfr.com. -www.melindasweet.com. -www.intel.com. -gardnerfoxremodeling.files.wordpress.com. -24.135.93.186.in-addr.arpa. -ad.yieldmanager.com. -www.bestbreakfast.ca. -119.37.191.201.in-addr.arpa. -search.vuze.com. -2highstudios.com. -www.cope.es. -sn2files.storage.msn.com. -73.237.171.201.in-addr.arpa. -www.mylanguageexchange.com. -www.miantojo.com.mx. -0-undefined.facebook.com. -www.loni.ucla.edu. -entretenimiento.latam.msn.com. -112.6.165.46.in-addr.arpa. -www.facebook.com. -a.root-servers.net. -mail.satinbedding.com. -83.135.28.190.in-addr.arpa. -translate.google.com.mx. -a2.da1.akamai.net. -static.ak.fbcdn.net. -ce.lijit.com. -thompsonflanagan.com. -couponbuddy.s3.amazonaws.com. -56.128.212.24.in-addr.arpa. -api.facebook.com. -164.162.11.92.in-addr.arpa. -8.121.210.201.in-addr.arpa. -www.l.google.com. -fxfeeds.mozilla.com. -148.111.72.94.in-addr.arpa. -zimmerli-wagner.ch. -info.xvideos.com. -126.132.149.186.in-addr.arpa. -mt0.google.com. -apps.facebook.com. -www.fybeca.com. -251.58.214.81.in-addr.arpa. -a.root-servers.net. -i1184.photobucket.com. -crl.geotrust.com. -csi.gstatic.com. -a.root-servers.net. -ed3q65m:n.l56p8c6w. -jessicalk.com. -117.122.183.180.in-addr.arpa. -6.75.174.189.in-addr.arpa. -fantasy.footbo.com. -google.com. -106.199.106.78.in-addr.arpa. -206.163.30.186.in-addr.arpa. -www.youtube.com. -_812_59_5. -xhcdn.com. -earnings.ru. -mail.tempinbox.com. -www.facebook.com. -a3.sphotos.ak.fbcdn.net. -mail.trak.spb.ru. -hq.rt.ru. -www.testiphone.com. -connect.facebook.net. -dmtjuo.com. -www.youtube.com. -yujh77.dg0.cn. -www.google-analytics.com. -teredo.ipv6.microsoft.com. -www.mariopilato.com. -66.141.56.186.in-addr.arpa. -versioncheck.addons.mozilla.org. -58.52.0.10.in-addr.arpa. -176.210.164.189.in-addr.arpa. -static.mp3bear.com. -ahtm.wordpress.com. -mail. -www.mbvmusic.com. -www.imdb.com. -162.48.168.213.in-addr.arpa. -www.facebook.com. -i4.ytimg.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -tvphotosandmore.blogspot.com. -www.facebook.com. -a.root-servers.net. -172.201.134.46.in-addr.arpa. -caribbeaneco-living.blogspot.com. -upay-cdn1.playspan.com. -mx.omegatech.ru. -50.213.93.59.in-addr.arpa. -212.69.207.223.in-addr.arpa. -img02.s-msn.com. -jayco.net. -eresources.loc.gov. -20minutos.feedsportal.com. -mature.wantvids.com. -mx.technicatech.com. -www.fudefs.com. -lh5.googleusercontent.com. -mscrl.microsoft.com. -vlmx00.secure.ne.jp. -a.root-servers.net. -pixel.quantserve.com. -info.infotecstt.ru. -a4.sphotos.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.fotosmujeresbellas.com. -ilovegelcandles.com. -d1.openx.org. -checklists.com. -rikardoelterrible.blogspot.com. -240.208.245.201.in-addr.arpa. -218.127.180.71.in-addr.arpa. -videojuegos.yo-anime.com.ar. -www.lyrics-house.com. -cloudsindo.files.wordpress.com. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.toplinestrategies.com. -eradio.ust.edu.ph. -74.71.58.186.in-addr.arpa. -google.com. -7.228.36.81.in-addr.arpa. -www.ontheedgeblog.com. -57.133.200.98.in-addr.arpa. -goneoffdeep.com. -translate.googleapis.com. -sdweddinginsider.com. -rterybrstutnrsbberve.com. -et6.xhamster.com. -clients1.google.com. -api.facebook.com. -universal-downloader.softonic.com. -www.tirateunpalo.com. -www.burladero.com. -164.88.33.178.in-addr.arpa. -photos-h.ak.fbcdn.net. -prod2.rest-notify.msg.yahoo.com. -www.bettamx.com. -www.facebook.com. -mail.rosactive.com. -visitfayettevillenc.com.inbound10.mxlogicmx.net. -www.karlscalculus.org. -static.ak.fbcdn.net. -www.islamhouse.com. -time.chttl.com.tw. -photos-d.ak.fbcdn.net. -serendipitouschat.com. -a6.sphotos.ak.fbcdn.net. -mail.coffmans.com. -de-de.facebook.com. -mail.prairietitle.com. -www.artelectronico.com. -req1.appads.com. -shared.live.com. -www.gstatic.com. -www.420science.com. -uomjkh.com.lan. -www.psicolibroswaslala.com. -external.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.zumiez.com. -wpad.mshome.net. -creative.ak.fbcdn.net. -creative.ak.fbcdn.net. -pastebay.com. -240.10.210.186.in-addr.arpa. -profile.ak.fbcdn.net. -agency.com. -instagr.am. -i.t.net.ar. -bubber.tv2.dk.tv2.dk. -kimi-raikkonen.ru. -21.16.14.95.in-addr.arpa. -a.root-servers.net. -167.101.215.201.in-addr.arpa. -25.203.238.190.in-addr.arpa. -extreme-sochi.ru. -www.kazdey.co.uk. -a.root-servers.net. -copymasters.ru. -s.ytimg.com. -profile.ak.fbcdn.net. -a1567.phobos.apple.com. -3grenouilles.blogspot.com. -dsient.com. -mlocate.spotlife.net. -191.6.58.186.in-addr.arpa. -fotocvetov.ru. -www.freepatternsonline.com. -lnmmc3m7i.q55k9m3c. -external.ak.fbcdn.net. -asd.su. -tools.google.com. -safebrowsing.clients.google.com. -smtp.kunstlaw.com. -www.channel.com. -profile.ak.fbcdn.net. -blufiles.storage.msn.com. -sitestart.net. -www.publipaginas.net. -teredo.ipv6.microsoft.com. -pinpoint-transportation.com. -mail.oplink.net. -cust17503-2.in.mailcontrol.com. -teamsters631.com.2.0001.arsmtp.com. -curriclumconnection.net. -d3k9hgzf8ej9hc.cloudfront.net. -myfcc.frederick.edu. -91.145.154.89.in-addr.arpa. -www.youtube.com. -www.tuslesbianas.es. -www.newspaperdirect.com. -34-courier.push.apple.com. -static.ak.fbcdn.net. -mx02.register.com. -kachina-semi.com. -blog.assparade.com. -iluminandotierra.blogspot.com. -model.susu.ru. -plus.google.com. -arrivo.br. -en.wikipedia.org.af.mk.gd. -poll-as06.kyte.tv. -csi.gstatic.com. -162.189.87.203.in-addr.arpa. -67.97.172.81.in-addr.arpa. -145.28.135.190.in-addr.arpa. -cdn-de-c-142.heias.com. -plan-espana.org. -10.193.141.63.in-addr.arpa. -store.digitalstores.co.uk. -puertorico.countrytoolbox.com. -www.rastreamento.org. -a.analytics.yahoo.com. -www.kingmantraining.com. -api.twitter.com. -dc454.4shared.com. -dns.msftncsi.com. -s.youtube.com. -a1294.w20.akamai.net. -www.auto-ping.com. -mgw1.asb.dk. -www.update.microsoft.com. -media.adxpansion.com. -a.root-servers.net. -www.google-analytics.com. -static.ak.facebook.com. -mx.foratec.net. -ar-ar.facebook.com. -a2.sphotos.ak.fbcdn.net. -v2.nonxt1.c.youtube.com. -a0.twimg.com. -chrometheme.tumblr.com. -mail.google.com. -b-0.19-2300b008.11001.1518.19d4.3ea1.410.0.zhfh1t3w3a82d254pc5c8gdqab.avqs.mcafee.com. -www.google.com. -download.xbox.com. -developers.facebook.com. -spymouse.cloudcell.com. -photos-d.ak.fbcdn.net. -bvdlawfirm.com. -33.65.122.76.in-addr.arpa. -potency.lbl.gov. -crl.verisign.net. -www.spilgames.com. -11.28.31.190.in-addr.arpa. -kbl8psban.f58i2b1r. -hhwnclaw.com. -gca.net.s8b2.psmtp.com. -www.alutec.es. -www.gimnasiolee.com. -114.188.43.202.in-addr.arpa. -www.anahionline.com. -www.microsoft.com. -m.facebook.com. -210.195.146.189.in-addr.arpa. -yubil.com. -emob93.photobucket.com. -i-cf508eaa.us-east-1b.service.amazonsilk.com. -www.facebook.com. -fallout3.nexusmods.com. -javiastudillo.tumblr.com. -service.lazywormapps.com. -a5.sphotos.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -i4.ytimg.com. -googleads.g.doubleclick.net. -docs.google.com. -a1404.w41.akamai.net. -a.root-servers.net. -m.facebook.com. -184.35.1.190.in-addr.arpa. -www.google.com. -taylorfloyd.newsvine.com. -slogin.oscar.aol.com. -www.youtube.com. -13.160.22.64.in-addr.arpa. -apis.google.com. -theolivebranch.net. -ts1.mm.bing.net. -unepaix.blogspot.com. -fearlessfathers.wordpress.com. -qolsze22k.77av. -safebrowsing.clients.google.com. -a.root-servers.net. -www.slashattack.com. -180.186.123.186.in-addr.arpa. -gs-loc.apple.com. -156.5.134.190.in-addr.arpa. -123.44.105.124.in-addr.arpa. -apps.facebook.com. -akabodyart.co.uk. -www.dubai-worldislands.com. -pixel.quantserve.com. -17.164.9.186.in-addr.arpa. -229.152.68.201.in-addr.arpa. -73.19.237.77.in-addr.arpa. -mqnj.com. -www.google.com.mx. -agma.ru. -www.portarrivals.com. -csi.gstatic.com. -zezao.com. -mail.upyourcredits.com. -34.108.50.189.in-addr.arpa. -www.gtaseries.com. -www.reglasdecalculo.com. -www.ualrtrojans.com. -www.kagi.fo. -mx.kraft-s.net. -boss.blogs.nytimes.com. -a8.sphotos.ak.fbcdn.net. -directorio.pixelmod.net. -mail.mitchellsonline.com. -b._dns-sd._udp.lan. -personal.nl.avira-update.net. -csi.gstatic.com. -www.animal-sex-library.com. -www.caracolinternacional.com. -vintage-hardcore.mrvoyeur.net. -214.228.206.167.in-addr.arpa. -design2u.loc.ru. -photos-d.ak.fbcdn.net. -names2.businessserve.co.uk. -162.157.136.175.in-addr.arpa. -hc.pcw.dk. -sbcglobal.prodigy.net. -support.msi.com. -192.79.167.59.in-addr.arpa. -static.ak.fbcdn.net. -www.formarse.com.ar. -iaie.net. -fbcdn-profile-a.akamaihd.net. -121.206.104.70.in-addr.arpa. -evsecure-ocsp.verisign.com. -apps.facebook.com. -dinero.univision.com. -m.facebook.com. -app2.neulion.com. -petitpren.com. -clients1.google.com. -110.36.104.186.in-addr.arpa. -www.id2tag.com. -www.wtp101.com. -mail.filasur.com. -7.77.60.194.in-addr.arpa. -www.capsis.cl. -252.210.194.74.in-addr.arpa. -clients1.google.com. -87.175.15.201.in-addr.arpa. -anakena.ru. -isatap.domain.name. -threadic.com. -plus.l.google.com. -www.sweetim.com. -blogs.avid.com. -www.angrybirds.com. -136.13.16.68.in-addr.arpa. -bh.contextweb.com. -erinbuenger.blogspot.com. -www.facebook.com. -106.187.46.72.in-addr.arpa. -www.benet.org. -www.amateur-indian-girls.com. -www.amazon.com. -ntp.glb.nist.gov. -newsrss.bbc.co.uk. -cracked.hopto.org. -opinion-tenerife.vlex.es. -ad.yieldmanager.com. -nfdqftxxtuetsn.net. -www.bloggertipandtrick.net. -21.8.98.177.in-addr.arpa. -touchmusic.ru. -a1.sphotos.ak.fbcdn.net. -ar-ar.facebook.com. -megasfiles.com. -70.60.98.217.in-addr.arpa. -www.seabreeltelon.es. -pop.gmail.com. -www.google.com. -www.margaretwheatley.com. -108.252.56.184.in-addr.arpa. -www.facebook.com. -produktinfo.conrad.com. -images.google.com. -a8.sphotos.ak.fbcdn.net. -mpcstatic.com. -www.rusegame.com. -a.root-servers.net. -www.entrepreneur.com. -relay.voice.messenger.msn.com. -th.nyklogistics.com. -fonts.googleapis.com. -aaffd0e4.linkbucks.com. -d12079a.ess.barracudanetworks.com. -guardianproject.info. -www.facebook.com. -www.elcoto.com. -profile.ak.fbcdn.net. -www.swglff.com. -www.eaglepub.com. -6.184.152.201.in-addr.arpa. -a1007.w43.akamai.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -community.sba.gov. -duplicadoweb.reniec.gob.pe. -www.aglasshalffull.org. -it21.ru. -novascotialeo.org. -toolbarqueries.google.com. -woodbridge-va.patch.com. -rt.liftdna.com. -uchilishe.ru. -www.myspace.com. -darkc.foroactivo.com. -ksn1-11-part2.kaspersky-labs.com. -other.friv2.org. -101.142.55.65.in-addr.arpa. -ds.serving-sys.com. -11.228.171.69.in-addr.arpa. -sp.cwfservice.net. -www.astroglide.com. -a2.sphotos.ak.fbcdn.net. -smtp.queensbury.com. -image2.pubmatic.com. -forums.visual-paradigm.com. -vip.radioexitolatino.com. -98.45.113.187.in-addr.arpa. -114.178.15.84.in-addr.arpa. -profile.ak.fbcdn.net. -maccosmetics.tumblr.com. -external.ak.fbcdn.net. -www.vertigomagazine.co.uk. -islacanela.costasur.com. -ax.init.itunes.apple.com. -expressandstar.com. -124.29.251.190.in-addr.arpa. -tracker.blazing.de. -dns.msftncsi.com. -mx25.valuehost.ru. -232.186.13.201.in-addr.arpa. -di104.shopping.com. -img1.blogblog.com. -122.213.137.186.in-addr.arpa. -kitart.ru. -s1-onenote.vo.msecnd.net. -plus.google.com. -www.google.com. -sup.live.com. -194.78.166.189.in-addr.arpa. -partner.googleadservices.com. -139.158.245.189.in-addr.arpa. -www.ndctz.com. -bmxplusmag.com. -mshop.ionroad.com. -www.facebook.com. -yulon-nissan.com.tw. -142.243.167.118.in-addr.arpa. -marshsedge.net. -www.gaerneshoes.com. -pixel.facebook.com. -108.28.28.186.in-addr.arpa. -apps.facebook.com. -www.fundaciontarpuy.org.ar. -ec.atdmt.com. -org.saferpage.com. -181.51.168.192.in-addr.arpa. -digitalforum.com. -www.facebook.com. -smtp.alleghenyfinancial.com. -cataclysmguide.ru. -33-courier.push.apple.com. -dbskcafe.co.nr. -65.74.236.190.in-addr.arpa. -201.212.139.98.bl.spamcop.net. -hcfsinc.com. -this.id. -243.123.58.216.in-addr.arpa. -dns.msftncsi.com. -freearticlesubmissionsdirectory.com. -col.stb00.s-msn.com. -buxsmb.com. -www.bello.gov.co. -mlogin.yahoo.com. -clients1.google.com. -ltgc.com.s5b1.psmtp.com. -inspiration.alltop.com. -futbol.univision.com. -44.35.57.186.in-addr.arpa. -i2.ytimg.com. -graph.facebook.com. -img100.xvideos.com. -21.242.171.69.in-addr.arpa. -renderscope.com. -234.28.112.186.in-addr.arpa. -3-courier.push.apple.com. -creative.ak.fbcdn.net. -property. -a.root-servers.net. -a.root-servers.net. -cerillion.com. -www.lemontroyal.qc.ca. -1pehva4w8.88tk. -4.113.50.85.in-addr.arpa. -ns-912.amazonaws.com. -a.root-servers.net. -static.ak.fbcdn.net. -loading3.widdit.com. -45-courier.push.apple.com. -kapriol.com. -a.root-servers.net. -i2.ytimg.com. -12.2.54.60.in-addr.arpa. -5.164.59.199.in-addr.arpa. -v15.nonxt3.c.youtube.com. -www.brazzerscafe.com. -profile.ak.fbcdn.net. -47.106.87.187.in-addr.arpa. -180.220.176.187.in-addr.arpa. -google.com. -ajax.googleapis.com. -www.accurate-target.com. -apps.facebook.com. -realclimate.org. -dressesmania.com. -static.ak.fbcdn.net. -210.131.254.190.in-addr.arpa. -10.184.60.184.in-addr.arpa. -_244_92_7. -maomelody.wordpress.com. -es-la.facebook.com. -img3.imageshack.us. -lcmcompany.com.s5a2.psmtp.com. -hges.oao-ntek.ru. -a3.sphotos.ak.fbcdn.net. -fyeahforeveralone.tumblr.com. -rewardchannelcenter.com. -_472_30_1. -air-review.ru. -m.addthisedge.com. -60.85.160.201.in-addr.arpa. -82.188.49.190.in-addr.arpa. -41.70.168.192.in-addr.arpa. -google.com. -smtp1.xentrisllc.com. -a.root-servers.net. -photos-g.ak.fbcdn.net. -_339_84_5. -a.root-servers.net. -a.root-servers.net. -mscrl.microsoft.com. -a2.sphotos.ak.fbcdn.net. -cdn.bidsystem.com. -es.ponetelaroja.com. -www.bendicioness.com. -sp.cwfservice.net. -i1.ytimg.com. -ar-ar.facebook.com. -handels.gu.se. -widgets.twimg.com. -sunnet.com.br. -sj88p6fyi.a13l8z7b. -222.11.65.66.in-addr.arpa. -www.onpointdigital.com. -_454_04_3. -docs.google.com. -ajaxhttpheaders2.appspot.com. -s1-word-edit.vo.msecnd.net. -bauldelafamiliaingalls.blogspot.com. -2101093106605581157-a-1802744773732722657-s-sites.googlegroups.com. -android.clients.google.com. -tools.google.com. -virtultech.com. -g.ceipmsn.com. -156.199.162.189.in-addr.arpa. -www.immigrazioneoggi.it. -mercadeoprofesional.com. -gamingzone.dk.msn.com. -tobolsk.info. -179.9.138.24.in-addr.arpa. -www.colombiaenunsolopunto.com. -in.answers.yahoo.com. -static.ak.fbcdn.net. -download340.avast.com. -www.eng.mcmaster.ca. -71.48.154.186.in-addr.arpa. -a248.e.akamai.net. -60.253.82.190.in-addr.arpa. -www.facebook.com. -32.136.152.190.in-addr.arpa. -profile.ak.fbcdn.net. -static.socialvi.be. -xyzxaon53.35do. -www.statefarm.com. -www.facebook.com. -www.solrojo.org. -view.atdmt.com. -checkip.dyndns.org. -av40.hls1.vimeocdn.com. -www.pauldotcom.com. -a.root-servers.net. -www.videosearch.tv. -de.ufc.com. -a.root-servers.net. -scooter.mforos.com. -wpad. -ca.reuters.com. -teredo.ipv6.microsoft.com. -scholar.google.com. -www.effectmatrix.com. -bitacoras.com. -141.3.0.151.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -x73.cc. -a1.sphotos.ak.fbcdn.net. -m.addthisedge.com. -googleads.g.doubleclick.net. -www.facebook.com. -www.google.com. -www.webmujeractual.com. -ib.adnxs.com. -www.whichfranchise.net.au. -www.clasicooo.com. -mx02.ecn.purdue.edu. -cdn.wibiya.com. -static.ak.facebook.com. -www.livingroomfurniturenow.com. -a1796.g.akamai.net. -135.237.37.174.in-addr.arpa. -www.laviejaime.com. -blog.walter-riso.com. -imap.gmail.com. -mail.google.com. -bs.serving-sys.com. -16.85.168.192.in-addr.arpa. -s-static.ak.fbcdn.net. -www.formulamania.com. -espanol.yahoo.com. -csi.gstatic.com. -a.root-servers.net. -mtalk.google.com. -dpmail01.doteasy.com. -www.universalaccess.it. -204.156.222.201.in-addr.arpa. -locaboat.com. -riodb01.ibase.aist.go.jp. -search.conduit.cm. -www.igroup.co.za. -irc.purchaseservice.com. -bjr.sagepub.com. -172.179.149.187.in-addr.arpa. -ads.admarvel.com. -ajax.googleapis.com. -vwiy83tle.65ys. -e906.g.akamaiedge.net. -i1.ytimg.com. -www.cuevana.tv. -capitolfax.com. -www.gottransmissions.com. -ebudy.co. -c72khh:xe.52jj. -us.taylorwoodrow.com. -boringpittsburgh.com. -mail.lincoln-associates.fr. -89.58.171.187.in-addr.arpa. -www.ceciliaperez.com. -huhahi.ru. -www.subeimagenes.com. -a.root-servers.net. -profile.ak.fbcdn.net. -rospres.com. -224.5.156.187.in-addr.arpa. -cdn.api.twitter.com. -www.affiliateyard.com. -lists.formoza.ru. -versioncheck.addons.mozilla.org. -creatives.livejasmin.com. -a.root-servers.net. -www.nlm.nih.gov. -sub.ezinedirector.net. -s-static.ak.fbcdn.net. -mx1.hotmail.com. -utmtrk.vimeo.com. -accountservices.msn.com. -static.ak.fbcdn.net. -117.229.81.108.in-addr.arpa. -114.188.53.60.in-addr.arpa. -20.113.102.189.in-addr.arpa. -read.chcm.ubc.ca. -23.152.222.189.in-addr.arpa. -safebrowsing-cache.google.com. -leak-squad.ca. -blog.opensys911.net. -a1.sphotos.ak.fbcdn.net. -www.sonirodban.com. -met-inc.com. -caminosdeayer.blogspot.com. -127.233.170.201.in-addr.arpa. -a.root-servers.net. -alt1.gmail-smtp-in.l.google.com. -113.31.221.95.in-addr.arpa. -profile.ak.fbcdn.net. -time.windows.com. -www.kseba.info. -awio.zendesk.com. -www-google-analytics.l.google.com. -tx.sbc.primusvoip.com. -fbcdn-photos-a.akamaihd.net. -profile.ak.fbcdn.net. -www.jessicachina.net. -google-sketchup-free.softonic.de. -profile.ak.fbcdn.net. -a.ads2.msads.net. -ib.adnxs.com. -126.224.110.186.in-addr.arpa. -4083.live.streamtheworld.com. -tc.v18.cache7.c.youtube.com. -s0.2mdn.net. -s-static.ak.fbcdn.net. -idrc.org. -tejiendohaciendoconelcorazon.blogspot.com. -201.53.106.177.in-addr.arpa. -photos-a.ak.fbcdn.net. -83.99.14.201.in-addr.arpa. -h30471.www3.hp.com. -mail.softassist.com. -www.villaserbelloni.com. -aol.com. -switch.atdmt.com. -0day.in. -heartbeat.belkin.com. -pobeda-cinema.ru. -clients2.google.com. -fusion.google.com. -www.3-0b6f-415d-b5c7-832f0.com. -www.alfonsosanchez.net. -m.youtube.com. -www.izi.fraunhofer.de. -profile.ak.fbcdn.net. -a.root-servers.net. -blst.msn.com. -maison-otaku.net. -ecms.net. -focustechnologies.com. -sp.cwfservice.net. -webcache.googleusercontent.com. -www.reform.co.uk. -www.facebook.com. -v4.cache5.c.youtube.com. -to4vb5ak9.12vr. -reshade.com. -18.8.42.201.in-addr.arpa. -lb._dns-sd._udp.lan. -gdata.youtube.com. -97.15.168.192.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -gandalf.webcohort.com. -175.190.191.71.in-addr.arpa. -37.200.10.87.in-addr.arpa. -42.24.74.187.in-addr.arpa. -a1804.phobos.apple.com. -www.textsrv.com. -www.tuslibrosgratis.net. -www.logitech.com. -gn.wikipedia.org. -photos-e.ak.fbcdn.net. -www.greenhasitalia.com. -75.128.253.84.in-addr.arpa. -pictaregallery.blogspot.com. -nudebollywood.blog.com. -mail2.energytransfer.com. -2bcool.net. -calendar.live.com. -www.youtube.com. -socialmediadaily.com.au. -apps.facebook.com. -www.facebook.com. -meta.izhcom.ru. -www.appbrain.com. -indosharing.net. -www.phototecnia.com. -www.facebook.com. -connect.facebook.net. -mailin-03.mx.aol.com. -www.google-analytics.com. -www.cenex.com. -www.elcolombiano.com. -rcp.eu.blackberry.com. -profile.ak.fbcdn.net. -179.141.207.190.in-addr.arpa. -ads.buzzcity.net. -211.148.84.190.in-addr.arpa. -stjeromes.wa.edu.au. -adserver.twitpic.com. -23.252.220.91.in-addr.arpa. -enac.com. -0-jx-w.channel.facebook.com. -redblogsarquitectura.suju.eu. -mail.northvillecsd.k12.ny.us. -mail.google.com. -189.240.212.217.in-addr.arpa. -te.ru. -mail2.megatv.com. -www.msftncsi.com. -mail.bgok.ru. -www.google.com. -connect.facebook.net. -ballwy.com. -n4jzv72fv.r23v0l4l. -a7.sphotos.ak.fbcdn.net. -253.94.57.62.in-addr.arpa. -108.164.155.92.in-addr.arpa. -images-na.ssl-images-amazon.com. -itb.co.uk. -226.25.191.189.in-addr.arpa. -denis.stalker.h3q.com. -mail1.cosprop.com. -mail. -www.gfidalex.com. -bellfuels.com. -ssl.apple.com. -profile.ak.fbcdn.net. -www.gstatic.com. -www9.effectivemeasure.net. -www.youtube.com. -apps.facebook.com. -171.206.225.190.in-addr.arpa. -mcgin.com. -a.root-servers.net. -twpiano.opentech.mobi. -connect.facebook.net. -www.google.com. -58.152.241.201.in-addr.arpa. -v.giantrealm.com. -97.20.57.85.in-addr.arpa. -193.65.2.187.in-addr.arpa. -fls.doubleclick.net. -d1j68ux4ukg4g1.cloudfront.net. -mail.featurecreeptechnology.com. -d1j68ux4ukg4g1.cloudfront.net. -238.45.16.187.in-addr.arpa. -redfaceplus.com. -pixel.facebook.com. -www.wellsfargo.com. -aoltech.com. -col.stb00.s-msn.com. -sites.google.com. -ktc-net.ru. -bitdefender.surveyesun.sgizmo.com. -www.planering.org. -muzig-prod.muzigle.com. -www.aljsad.net. -150.216.82.62.in-addr.arpa. -edipresse.adocean.pl. -www.youtube.com. -photos-c.ak.fbcdn.net. -api.nanigans.com. -business.shop.ebay.com. -urs.microsoft.com. -a1001.w40.akamai.net. -i4.ytimg.com. -224.252.68.201.in-addr.arpa. -gtaonline.com.ar. -47.53.136.14.in-addr.arpa. -fileham.com. -static.ak.facebook.com. -mart.spb.ru. -a.root-servers.net. -129.239.31.190.in-addr.arpa. -www.lavilla2.com. -www.trust-guard.com. -ferti-val.com. -cs5188.vkontakte.ru. -www.youtube.com. -61.191.34.201.in-addr.arpa. -217.43.21.190.in-addr.arpa. -1d2kusc:c.t11g9f7c. -amermac.com. -jamiexelite.ourtoolbar.com. -95.25.130.181.in-addr.arpa. -www.bloomberg.co.jp. -www.uominiedonneanticipazioni.it. -a.root-servers.net. -tst.social.technet.microsoft.com. -ksn2-12.kaspersky-labs.com. -111.38.252.189.in-addr.arpa. -56.163.160.187.in-addr.arpa. -prov.mydlink.com. -253.189.137.187.in-addr.arpa. -194.240.91.27.in-addr.arpa. -i1.ytimg.com. -pop.secureserver.net. -pixel.facebook.com. -api.twitter.com. -filter.fristampumps.com. -cadaverlab.com. -photos-f.ak.fbcdn.net. -102.146.220.66.in-addr.arpa. -enforce.com. -dns.msftncsi.com. -18.80.108.83.in-addr.arpa. -www-e.uni-magdeburg.de. -www.g.home. -superbar.ru. -ntp.glb.nist.gov. -fashionvip.polyvore.com. -www.gioie.it. -www.inm.gob.mx. -mail.matsongmac.com. -tcpconn2.tencent.com. -_517_63_5. -sgtlaw.com.s5a2.psmtp.com. -qomxppppudxhdfl.com. -libromagicodeembrujo.blogspot.com. -spreadsheets.google.com. -www.reflexionesmarginales.com. -www.gabrielbustamante.pe. -a.root-servers.net. -a.root-servers.net. -download654.avast.com. -teredo.ipv6.microsoft.com. -us.data.toolbar.yahoo.com. -blogs.sowetanlive.co.za. -16.10.107.187.in-addr.arpa. -archiv.fagms.de. -ak.imgfarm.com. -fieldale.com. -90.174.127.201.in-addr.arpa. -widgets.montiera.com. -static.ak.fbcdn.net. -webassets3.sparkybee.com. -www.gstatic.com. -echo.edge.messenger.live.com. -ns1.exit109.com. -llcrew.com. -www.google.com. -jwhodgespc.com. -www.googleadservices.com. -google.com. -barnfield.org. -wk.net. -beamershop24.net. -dr._dns-sd._udp.0.55.211.10.in-addr.arpa. -nullmx.2extreme.net. -a5.sphotos.ak.fbcdn.net. -www.wiseupkids.com. -rad.msn.com. -systeam.ru. -19.253.191.207.in-addr.arpa. -3.105.93.212.in-addr.arpa. -daydreamer0207.tumblr.com. -a1634.phobos.apple.com. -www.gadi-nowblog.blogspot.com. -beautyandababy.blogspot.com. -www.tugbbs.com. -labitacoradehobsbawm.blogspot.com. -budwolfchevy.com. -profile.ak.fbcdn.net. -www.leycosmica.org. -admin.vpxsports.com. -www.qzal.net. -www.google.com. -c.aol.com. -wpad. -weather.service.msn.com. -www.addthis.com. -login.domains.live.com. -pix04.revsci.net. -dinz.ru. -radiopopper.com. -www.arab-ency.com. -google.com. -registry.nafta-sec-alena.org. -pixel.facebook.com. -_069_15_0. -6to4.ipv6.microsoft.com. -carsale.uol.com.br. -pop3.live.com. -directoresenredlga.over-blog.es. -ads.e-planning.net. -i4.ytimg.com. -149.242.212.90.in-addr.arpa. -www.disneylatino.com. -sickestaddictions.com. -100.185.69.216.in-addr.arpa. -armmf.adobe.com. -92.204.54.108.in-addr.arpa. -pagead2.googlesyndication.com. -183.82.43.89.in-addr.arpa. -insidemovies.ew.com. -a7.sphotos.ak.fbcdn.net. -soundcloud.com. -photos-d.ak.fbcdn.net. -www.newuniversity.org. -s-static.ak.fbcdn.net. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -forums.triplezoom.com. -5tvm8ne41.f84w6z5t. -a-0.19-27090041.9050083.1518.19d4.2f4a.10.0.nza1ldzdki8qrtrc7upjzq5b95.avqs.mcafee.com. -68.139.149.187.in-addr.arpa. -intermarketandmore.finanza.com. -fr-fr.facebook.com. -www.ucmalumnistore.com. -kapiolani.hawaii.edu. -w7c6iosj3.w14g9q2q. -www.paypal.es. -www.thumbgenie.com. -autos.mercadolibre.com.ar. -www.facebook.com. -translate.googleapis.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -ja.wikipedia.org. -www.tiendamasterhacks.com. -profile.ak.fbcdn.net. -www.7irtny.com. -135.13.31.177.in-addr.arpa. -mail2.fremuragroup.com. -i1.ytimg.com. -phs.org. -cdn.api.twitter.com. -s.ytimg.com. -hustleruniversity.blogspot.com. -star.facebook.com. -213.226.2.188.in-addr.arpa. -www.juegosdepadrinosmagicos.blogspot.com. -181.3.149.83.in-addr.arpa. -pacbev.sg. -. -hardingcreative.com. -www.ebay.in. -s0000090.ecdomain.net.packaging.sca.se. -mail.gibbymedia.com. -162.164.178.74.in-addr.arpa. -www.anaheimoc.org. -www.google.com. -45.34.30.190.in-addr.arpa. -70.138.7.221.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -sp.ask.com. -cdn.mediafire.com. -b._dns-sd._udp.0.11.168.192.in-addr.arpa. -filetram.com. -0-jf-w.channel.facebook.com. -bibmed.ucla.edu.ve. -csi.gstatic.com. -safebrowsing-cache.google.com. -untwisting.ru. -api-read.facebook.com. -twitter.com. -a2.twimg.com. -www.google.com. -csi.gstatic.com. -lakelly.co.uk. -teredo.ipv6.microsoft.com. -0.3896415.com. -drug.now.nu. -themixsantamonica.com. -www.amateurnudie.com. -www.flour.com. -a8.sphotos.ak.fbcdn.net. -ca.hello.dj. -mostlybricks.com. -social.bidsystem.com. -82.133.253.189.in-addr.arpa. -billing.sharo4ka.ru. -registeridm.com. -a.root-servers.net. -backup-mx.wannafind.dk. -a3.sphotos.ak.fbcdn.net. -scholar.google.com. -www.google.com. -contactsullivan.com. -ocsp.verisign.com. -28.16.191.190.in-addr.arpa. -bearby.us. -da.wikipedia.org. -profile.ak.fbcdn.net. -aibi.ph. -iddqd.ru. -251.182.253.190.in-addr.arpa. -a.root-servers.net. -www.webpartypro.com. -www.google.com. -180.62.250.190.in-addr.arpa. -198.114.30.186.in-addr.arpa. -mw2.google.com. -luelinks.net. -mx7.surw.ru. -fbcdn-photos-a.akamaihd.net. -www.injoy.com. -www.youtube.com. -jsm-law.com. -85.223.1.72.in-addr.arpa. -a.root-servers.net. -www.google.com. -signin-it.g.ebay.com. -162.49.77.64.in-addr.arpa. -a.root-servers.net. -casitadepapel.wordpress.com. -85.20.76.188.in-addr.arpa. -googleads.g.doubleclick.net. -a2000.phobos.apple.com. -prodika.com. -wrma.com.inbound15.mxlogicmx.net. -google.com. -www.google.ch. -214.244.253.189.in-addr.arpa. -qnjcm71pu.z50h8i4e. -www.mistertorrent.com. -avatar.xboxlive.com. -twitter.com. -214.55.246.201.in-addr.arpa. -zencarttemplates.info. -calgarytunnelling.com. -edytv.blogspot.com. -s-static.ak.facebook.com. -a.root-servers.net. -extended-validation-ssl.verisign.com. -80.6.97.190.in-addr.arpa. -a.root-servers.net. -bestbuyideax.com. -sgc5vr5iq.26ta. -ssl.gstatic.com. -news.google.com.mx. -a.root-servers.net. -w.sharethis.com. -anyonesson.com. -pixel.quantserve.com. -tfws.threatfire.com. -8nacr96qu.q67n9f6f. -26.229.171.69.in-addr.arpa. -beautyfashiontips.net. -alt2.aspmx.l.google.com. -photos-b.ak.fbcdn.net. -b.scorecardresearch.com. -www.bing.com. -aresline.com. -d.yimg.com. -41.213.90.200.in-addr.arpa. -partner.googleadservices.com. -areahouses.com. -www.erantis.com. -developers.facebook.com. -211.11.123.186.in-addr.arpa. -i3.ytimg.com. -cc.usart.ru. -mesu.apple.com. -a.root-servers.net. -www.cualcompro.com. -cdn.api.twitter.com. -131.105.158.190.in-addr.arpa. -oss.ticketmaster1st.akadns.net. -hrcaonline.org. -nmetrics.samsung.com. -hotmail.com. -249.31.11.82.in-addr.arpa. -144.45.36.187.in-addr.arpa. -mx1.qwestoffice.com. -gaom.hit.gemius.pl. -secure.qmiles.com. -www.google-analytics.com. -thumbs4.ebaystatic.com. -iskrauraltel.ru. -es1.darkorbit.bigpoint.com. -www.addtoany.com. -nuestrobux.com. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -data.publishflow.com. -server3.profileservice.movisol.com. -www.revistaquimica.cl. -www.cupoint.com. -a-patch-2011.softonic.com. -da.cb.b9.a1.top.mail.ru. -pixel.facebook.com. -xlocomotionchannel20x.api.channel.livestream.com. -www.visual-basic.com.ar. -ajax.aspnetcdn.com. -115.120.30.186.in-addr.arpa. -s.ytimg.com. -www.google.com. -www.besteducationalgrants.org. -125.11.183.67.in-addr.arpa. -partner.googleadservices.com. -247.182.131.208.in-addr.arpa. -a.root-servers.net. -img215.imageshack.us. -mscrl.microsoft.com. -pagead2.googlesyndication.com. -91.166.243.189.in-addr.arpa. -youtube.com. -video.l.google.com. -53.173.174.206.in-addr.arpa. -support.createmybb.com. -www.amazingbizkey.com. -ocsp.verisign.com. -download.microsoft.com. -historiasydemasparanoias.blogspot.com. -98.73.196.84.in-addr.arpa. -93.79.37.190.in-addr.arpa. -xcelplus.com. -grbnotes.grblaw.com. -246.16.108.190.in-addr.arpa. -appsmetadata.toolbar.conduit-services.com. -19.52.78.186.in-addr.arpa. -turtlezen.com. -a2.sphotos.ak.fbcdn.net. -lvs.fok.nl. -www.casasderematemonterrey.com. -en.data.wrapper.services.alawar.com. -136.105.113.186.in-addr.arpa. -yahoo.com. -211.40.46.190.in-addr.arpa. -94.116.255.206.in-addr.arpa. -search.iminent.com. -profile.ak.fbcdn.net. -api.facebook.com. -cs12717.vkontakte.ru. -www.linkwithin.com. -designs.fedmich.com. -www.googel.com. -232.43.168.192.in-addr.arpa. -tiggermail.com. -deals.dealply.com. -www.dr-machine.com. -a6.sphotos.ak.fbcdn.net. -www.winamp.com. -external.ak.fbcdn.net. -cdn.labpixies.com. -childrentales.org.mialias.net. -zpay.static.zynga.com. -158.244.3.187.in-addr.arpa. -api-read.facebook.com. -66.82.11.186.in-addr.arpa. -photos-d.ak.fbcdn.net. -pismo.com.s8a2.psmtp.com. -www.google.com. -b.compunass.org. -ads.cartrade.com. -a8.sphotos.ak.fbcdn.net. -38.50.45.190.in-addr.arpa. -ethionet.et. -adserving.cpxinteractive.com. -triwest.net. -www.laboiteverte.fr. -www.conexionabierta.com.ar. -teredo.ipv6.microsoft.com. -www.youtube.com. -62.15.254.201.in-addr.arpa. -e3499.c.akamaiedge.net. -rsemfg5bv.i36c2j2q. -mail.isilo.com. -ap.dasglobal.com. -mms.whatsapp.net. -static.yandex.st. -aol.com. -forthebubbles.wordpress.com. -plusone.google.com. -external.ak.fbcdn.net. -www.facebook.com. -95.238.109.84.in-addr.arpa. -g.msn.com. -s-static.ak.fbcdn.net. -crl.microsoft.com. -wpc.3adc.edgecastcdn.net. -a.root-servers.net. -static.ak.fbcdn.net. -ad.z5x.net. -creative.ak.fbcdn.net. -a.root-servers.net. -www.juegosgt.com. -www.iej.cl. -projectfive-oh.blogspot.com. -www.quien.com. -42.96.212.201.in-addr.arpa. -ims.tkmna.thyssenkrupp.com. -a2.sphotos.ak.fbcdn.net. -www.forexinvestments.de. -www.youtube.com. -a.root-servers.net. -photos-a.ak.fbcdn.net. -lbcwre.com. -a.root-servers.net. -programming-tools.ab-archive.net. -152.187.152.189.in-addr.arpa. -lrvbokqag.cn. -ar-ar.facebook.com. -www.quiebrapiezas.blogspot.com. -twitter.com. -ajax.googleapis.com. -a845.b.akamai.net. -apis.google.com. -mail.americaninterbanc.com. -www.bilderberg.org. -52.133.213.201.in-addr.arpa. -bo.starmedia.com. -gfx2.hotmail.com. -23.184.8.186.in-addr.arpa. -photos-g.ak.fbcdn.net. -www.todox.org. -mfcllp.com. -wiaderko.net. -cotendo.cedexis.com. -12meds.com.lan. -static.ak.fbcdn.net. -3-ps.googleusercontent.com. -es-es.fxfeeds.mozilla.com. -alexandertranfer.com. -www.tuinfosoft.net. -221.54.134.190.in-addr.arpa. -adfiscass.nl. -a2.sphotos.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.justfashionmodels.com. -dns.msftncsi.com. -a.root-servers.net. -v8.nonxt5.c.youtube.com. -m5pqh4nwr.66vi. -91.166.109.186.in-addr.arpa. -116.182.136.2.in-addr.arpa. -publicidade.abril.com.br. -127.0.0.1. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -a248.e.akamai.net. -sites.google.com. -86.180.105.177.in-addr.arpa. -haaallie-.piczo.com. -138.247.132.187.in-addr.arpa. -google.com. -55.115.173.190.in-addr.arpa. -10.124.40.77.in-addr.arpa. -lovecalculator2.com. -ws-cloud-msgplus.linkury.com. -profile.ak.fbcdn.net. -t3.gstatic.com. -www.arcticultra.de. -time-nw.nist.gov. -planocreativo.files.wordpress.com. -hv2m91.tu.tv. -pixel.facebook.com. -shopping.search.yahoo.co.jp. -nodes.affidirect.com. -static.4shared.com. -ar-ar.facebook.com. -skydrive.live.com. -4mostip.com. -www.asian-pleasures-asianpleasures.com. -escribesconmigo.blogspot.com. -photos-d.ak.fbcdn.net. -a.root-servers.net. -a.root-servers.net. -www.smartadserver.com. -54.205.50.190.in-addr.arpa. -msn.com. -_872_53_4. -www.google-analytics.com. -johnsonbodyshop.com. -ksn2-12.kaspersky-labs.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -xqeydnuwhqt.net. -metronews.com.s8a1.psmtp.com.vval.com. -a.root-servers.net. -www.facebook.com. -a3.sphotos.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -vf.cloud.avg.com. -yourwardrobeunlockd.com. -s3.amazonaws.com. -c.gigcount.com. -69.151.241.201.in-addr.arpa. -79.111.8.201.in-addr.arpa. -external.ak.fbcdn.net. -walworthcountytoday.com. -222.9.106.186.in-addr.arpa. -_068_02_6. -i2.ytimg.com. -www.facebook.com. -photos-a.ak.fbcdn.net. -mail.google.com. -rd.meebo.com. -www.emol.com. -244.135.41.119.in-addr.arpa. -113.190.250.189.in-addr.arpa. -pop.mail.yahoo.com.cn. -www.facebook.com. -_669_83_3. -www.youtube.com. -www.seebiz.eu. -www.ehea.info. -www.loverpass.com. -a5.sphotos.ak.fbcdn.net. -presicom.com. -smtp01.delhi.edu. -7.198.98.189.in-addr.arpa. -1979304085345356636-a-1802744773732722657-s-sites.googlegroups.com. -www.facebook.com. -firstamericanmortgageinc.com. -api.twitter.com. -www.dwinsider.com. -whos.amung.us. -mail.dynamicfenceinc.com. -149.21.16.190.in-addr.arpa. -djknight.com. -premier.sonetpremier.com. -www.google.com. -ntp.glb.nist.gov. -matcher.bidder8.mookie1.com. -pwdsl3w71.61nf. -www.google-analytics.com. -garyes.stormloader.com. -70.205.97.190.in-addr.arpa. -www.webmoney.ru. -time.windows.com. -talkmarketing.com. -www.smiles.ie. -245.41.141.89.in-addr.arpa. -www.amantesdeteruel.es. -connect.facebook.net. -sniperlandia.webcindario.com. -farm7.static.flickr.com. -b._dns-sd._udp.lan. -ntp.glb.nist.gov. -grandcyberglobal.com. -173.114.136.190.in-addr.arpa. -177.172.93.186.in-addr.arpa. -www.facebook.com. -external.ak.fbcdn.net. -ci.lincoln.ca.us. -companyname.122.2o7.net. -209.125.53.186.in-addr.arpa. -ww2.shemaleambush.com. -radioalgarve.com. -226.61.168.192.in-addr.arpa. -www.swingsurgeon.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -www.googleadservices.com. -photos.pokerplayer.co.uk. -cbmcint-org.mail.eo.outlook.com. -a.root-servers.net. -photos-h.ak.fbcdn.net. -wpad. -wwws.projectgenesis.org. -29.51.66.187.in-addr.arpa. -0bps664l3vqk05dj8qih0t5renri9iic.ig.ig.gmodules.com. -checkip.dyndns.org. -es-es.facebook.com. -googleads.g.doubleclick.net. -jp.tous.com. -81.229.246.148.in-addr.arpa. -fotos.amigate.com. -www.fastmarkets.com. -wickedcampers.com.au. -62.197.88.74.in-addr.arpa. -a.root-servers.net. -static.ak.fbcdn.net. -www.google.com. -137.227.250.190.in-addr.arpa. -w3.coh.arizona.edu. -64.102.30.190.in-addr.arpa. -static.exoclick.com. -pixel.facebook.com. -fbpanel.sourceforge.net. -view.atdmt.com. -3.242.114.200.in-addr.arpa. -mx1.cboss.ru. -photos-e.ak.fbcdn.net. -webs.rakurs.com. -www.extremista.com.ar. -i.lulzimg.com. -feeds.bbci.co.uk. -a.root-servers.net. -186.187.142.187.in-addr.arpa. -mail.modernpest.com. -217.137.145.201.in-addr.arpa. -www.revistakronos.com. -184.89.241.66.in-addr.arpa. -public5.tektek.org. -rebeccaminkoff.com. -a.root-servers.net. -bioware.com. -www2.nissan.es. -heltenkelthosmig.blogspot.com. -gfx2.hotmail.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -certs.opera.com. -safebrowsing.clients.google.com. -168.187.202.190.in-addr.arpa. -243.171.153.187.in-addr.arpa. -donate.cwf-fcf.org. -directorio.fandejuegos.com. -242.82.153.189.in-addr.arpa. -www.cabinainterestelar.com. -www.derechoambiental.udp.cl. -severe-caning.spanking18.com. -prin.ru. -a.root-servers.net. -2.1.168.192.in-addr.arpa. -79.48.168.192.in-addr.arpa. -unixcommerce.com. -www.pinkribbonstore.com. -a4.sphotos.ak.fbcdn.net. -65.10.171.187.in-addr.arpa. -themes.googleusercontent.com. -tracker.ilibr.org. -d3.iesc.org. -www.facebook.com. -i3.ytimg.com. -gfx3.hotmail.com. -pgnzheoi.info. -176.62.76.190.in-addr.arpa. -leercondevoridad.blogspot.com. -loewarch.com. -bloggista.com. -www.stayvillage.com. -profile.ak.fbcdn.net. -supports.jiaju.sina.com.cn. -dsn8.d.skype.net. -pubads.g.doubleclick.net. -a1.sphotos.ak.fbcdn.net. -hosting.lockhosts.com. -count.pro09.iciba.com. -www.clr.net. -faml.ru. -pld.com.s9b2.psmtp.com. -www.bodyjewelry.com. -sn21.mailshell.net. -www.fulltubemovies.com. -mail.who-remembers-me.com. -www.marcorascon.org. -external.ak.fbcdn.net. -samson.hac.com. -www.na7la.com. -relay2.sptk.com.ru. -www.therecruitmentjob.com. -photos-h.ak.fbcdn.net. -a06.t26.net. -19.133.210.201.in-addr.arpa. -www.juegosvestirchicas.com. -partner.googleadservices.com. -affiliate.buy.com. -mail.samaraintour.ru. -www.facebook.com. -72.115.164.190.in-addr.arpa. -zbar.zynga.com. -fonts.googleapis.com. -a.root-servers.net. -rocketmail.om. -csi.gstatic.com. -msgr.updates.yahoo.com. -www.heritagedaily.com. -en.wikipedia.org. -shankars.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a957.g.akamai.net. -158.88.212.190.in-addr.arpa. -jiguli.ru. -www.aardvarkrecords.co.uk. -haverford.edu. -vp.sip.messenger.msn.com. -cnna.gob.ec. -2.203.92.201.in-addr.arpa. -easel.ru. -s-static.ak.fbcdn.net. -kcnet.net. -ragnartheraider.newgrounds.com. -atomixmag.com. -t-one.net.s5a1.psmtp.com. -a7.sphotos.ak.fbcdn.net. -bs.serving-sys.com. -foro.ludoslegio.com. -eccocanada.com. -cdn-5.pics.t8premium.com. -www.justin.tv. -buscandouniversidad.com. -124.102.198.190.in-addr.arpa. -photos-e.ak.fbcdn.net. -sci.com. -google.com. -s0.2mdn.net. -fms-eu5.panet.co.il. -mx02.peoplepc.com. -profile.ak.fbcdn.net. -rvb.wikia.com. -106.179.190.190.in-addr.arpa. -a.root-servers.net. -www.buraannews.com. -weiterleitung.k1.cx. -api.twitter.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -b.scorecardresearch.com. -touch.facebook.com. -www.ntius.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -smtpmsa.msanet.com. -209.199.56.85.in-addr.arpa. -www.laira.dominarlaira.com. -jameique.com. -ads.iforex.com. -s7.addthis.com. -www.brunoymaria.com. -www.facebook.com. -www.troid.org. -fbcdn-photos-a.akamaihd.net. -sp-metal.ru. -rwerheinbraun.com. -counter.cnw.cz. -estaticos04.cache.el-mundo.net. -wac.edgecastcdn.net. -photos-c.ak.fbcdn.net. -ads.bluelithium.com. -mygzytvo6.52ez. -potugalmail.pt. -www.fbookbanners.net. -204.69.65.187.in-addr.arpa. -cdn.api.twitter.com. -lanza.chulojuegos.com. -quintoatieneunblog.blogspot.com. -profile.ak.fbcdn.net. -www.wdc.com. -photos-a.ak.fbcdn.net. -api.twitter.com. -mail.google.com. -164.231.97.92.in-addr.arpa. -translate.google.com. -nyit.com. -mail.urlmutual.com. -zse.com. -www.avis.com.ar. -a4.sphotos.ak.fbcdn.net. -es-la.facebook.com. -pagead2.googlesyndication.com. -mghribia.canalblog.com. -dqobor.com. -t.co. -cdn.api.twitter.com. -time.chttl.com.tw. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -a.root-servers.net. -gmx.ivwbox.de. -106.227.155.85.in-addr.arpa. -hepburnlaw.com. -tsm05.eset.com. -comcs.net. -itistimetothinkformyself.blogspot.com. -mail1.maciraq.com. -117.51.46.189.in-addr.arpa. -t2.gstatic.com. -129.186.253.189.in-addr.arpa. -googleads.g.doubleclick.net. -lascuentasbancarias.com.ar. -107.15.165.189.in-addr.arpa. -chiraltech.com.inbound15.mxlogic.net. -ut45forvh.j60l4q7i. -www.andaluciajunta.es. -us.mg1.mail.yahoo.com. -anuncios-personales.vivastreet.com.mx. -zh-cn.facebook.com. -techspotting.org. -www.tungstenworld.com. -buscador.terra.com.pe. -www.google.com. -a.root-servers.net. -pt-br.facebook.com. -s2.youtube.com. -communities.disqus.com. -12.139.49.81.in-addr.arpa. -itbusiness.disqus.com. -b.mail.google.com. -339mbwbhs.76qa. -a.root-servers.net. -mail.glare-n-dazzle.com. -optimized-by.rubiconproject.com. -_sip._tls.wartsila.com. -i4.ytimg.com. -ww.pendonas.net. -www.videostravelguide.com. -a1.sphotos.ak.fbcdn.net. -rss.msnbc.msn.com. -exprintur.com. -www.18toplay.com. -developers.facebook.com. -tc22.easythumbhost.com. -www.facebook.com. -182.126.197.201.in-addr.arpa. -swebmail.net. -m.facebook.com. -fbcdn-profile-a.akamaihd.net. -www.avrilsforum.net. -e.deviantart.net. -rgzl1hp3b.b19o1w5q. -www.urmc.rochester.edu. -jimdo.ru. -106.190.13.189.in-addr.arpa. -static.ak.fbcdn.net. -mail.gudemangroup.com. -www.textsrv.com. -load.exelator.com. -pitchfork.com. -www.update.microsoft.com. -www.apple.com. -:yd1wrz11.19gr. -sijoittajaksi.blogit.kauppalehti.fi. -se.altavista.com. -s-static.ak.facebook.com. -a.root-servers.net. -img203.yfrog.com. -cleorecs.com. -161.109.236.204.in-addr.arpa. -ping3.dyngate.com. -timelapses.tv. -crl.microsoft.com. -customapp.golfballs.com. -ib.adnxs.com. -photos-c.ak.fbcdn.net. -platform.twitter.com. -www.facebook.com. -orient-usa.com.inbound15.mxlogicmx.net. -safebrowsing-cache.google.com. -131.245.50.211.in-addr.arpa. -trilliumcorp-com.mail.eo.outlook.com. -www.slideshare.net. -251.133.221.189.in-addr.arpa. -none. -www.guerillahost.com. -www.facebook.com. -mail.ravitron.com. -cs13088.vkontakte.ru. -astrologia.com.co. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -es-la.facebook.com. -www.ingdirect.com.au. -opensudoku.softonic.com. -supertracker.flashget.com. -paac.org. -. -newsrss.bbc.co.uk. -21.57.81.173.in-addr.arpa. -mail2.kcs.ru. -41.0.160.189.in-addr.arpa. -static.ak.fbcdn.net. -feedlb2.feedsportal.com. -ads1.msads.net. -www.facebook.com. -www.msdiagnosed.org. -anthologymag.com. -photos-g.ak.fbcdn.net. -digg.com. -james-camerons-avatar-the-game.en.softonic.com. -services.vesti.ru. -197.48.106.216.in-addr.arpa. -hog.assets.zgncdn.com. -pubads.g.doubleclick.net. -101.172.168.67.in-addr.arpa. -alerts.conduit-services.com. -nz.video.yahoo.com. -www.formatmag.com. -253.224.121.200.in-addr.arpa. -131.169.111.98.in-addr.arpa. -236.124.136.175.in-addr.arpa. -huevosoro.com. -102.86.139.187.in-addr.arpa. -lwltlvlwl.com. -supremenola.com. -economics.uoregon.edu. -tweetcam.me.s3-website-us-east-1.amazonaws.com. -pixel.facebook.com. -hi-in.facebook.com. -media.king5.com. -airbrakeapp.com. -www.sabadell.net. -www.facebook.com. -proxy-bay.contacts.msn.com. -a4.sphotos.ak.fbcdn.net. -col.stj.s-msn.com. -voipc.sip.yahoo.com. -zgn.static.zynga.com. -interceptor.ridgways.com. -googleads.g.doubleclick.net. -mail.wood-guard.com. -mx.s.dion.ne.jp. -m.ak.fbcdn.net. -dotjohn.com. -airlineguide.org. -upload.wikimedia.org. -lightworker.com. -www.pantythumbz.com. -elkaru.ru. -138.24.24.187.in-addr.arpa. -adserving.cpxinteractive.com. -rktekt.com. -mail.the3rdlevel.com. -scrambledbrains.net. -pubads.g.doubleclick.net. -www.google.com. -a5.sphotos.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -www.pinballrebel.com. -a1811.g.akamai.net. -legioninsurance.com.inbound10.mxlogicmx.net. -mailserver.newhorizonsglobal.com. -apis.google.com. -photos-b.ak.fbcdn.net. -d31ahpoxjzaj3o.cloudfront.net. -c.gigcount.com. -cl.hilti.com. -discoveryresourcesinc.com. -msc.wlxrs.com. -profile.ak.fbcdn.net. -psimago.blogspot.com. -toolbarqueries.google.com. -accounts.google.com. -49.135.107.71.in-addr.arpa. -ds.serving-sys.com. -a.root-servers.net. -www.ultrafastproxy.com. -bly.chel.rgs.ru. -ldr.newsltd.com.au. -googleads.g.doubleclick.net. -tb.gooofull.com. -ca.indeed.com. -147.28.0.181.in-addr.arpa. -mesu.apple.com. -secure-uk.imrworldwide.com. -microsoft.com.rhsbl.ahbl.org. -community.istaria.com. -api.demandbase.com. -colon.com. -cheatsoft.su. -185.173.44.190.in-addr.arpa. -151.0.130.66.in-addr.arpa. -alerts.conduit-services.com. -cdn.api.twitter.com. -kualaterengganu.olx.com.my. -10.240.7.50.in-addr.arpa. -cdn.anastasiadate.com. -a5.sphotos.ak.fbcdn.net. -interactivos.lavanguardia.com. -www.autodoc.ru. -a6.sphotos.ak.fbcdn.net. -ping.chartbeat.net. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -developers.facebook.com. -netlink.co.uk. -serv.luch-pk.ru. -waypt.com. -get.adobe.com. -74.9.95.190.in-addr.arpa. -ersiko.ru. -101.80.237.68.in-addr.arpa. -a.root-servers.net. -1.map.pop6.com. -apis.google.com. -ssl.gstatic.com. -fuelcellsworks.com. -a.root-servers.net. -a.root-servers.net. -www3.l.google.com. -a5.sphotos.ak.fbcdn.net. -166.148.144.187.in-addr.arpa. -tools.google.com. -tzlynnby.info. -www.yo-auto.ru. -227.110.171.187.in-addr.arpa. -uniqsolutions.ru. -t2.gstatic.com. -95.181.87.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -107.167.226.189.in-addr.arpa. -a.root-servers.net. -143.149.134.186.in-addr.arpa. -relay.voice.messenger.msn.com. -123.cn. -93.186.181.89.in-addr.arpa. -rollshield.com. -a8.sphotos.ak.fbcdn.net. -members.allover30.com. -www.hedgehogim.com. -mail.rus01.ru. -a.root-servers.net. -clients1.google.com. -lefima.net. -messenger.services.live.com. -c5.zedo.com. -www.radio-electronics.com. -www.ybonline.co.uk. -thumbs.bondagester.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -218.180.82.200.in-addr.arpa. -www.facebook.com. -images.findthebestteens.com. -www.tazaghiin.com. -www.note4piano.com. -a6.sphotos.ak.fbcdn.net. -www.miningtopnews.com. -messenger.vo.msecnd.net. -136.92.6.189.in-addr.arpa. -mail.carelsa.com. -a.root-servers.net. -connect.facebook.net. -www.cuk.ch. -57.197.39.46.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -121.223.84.200.in-addr.arpa. -i1081.photobucket.com. -220.54.106.186.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.foroclasico.com. -superiorsoft.com. -t.co. -poppedculture.stumbleupon.com. -65.216.141.79.in-addr.arpa. -www.xntk.net. -toolbar.zynga.com. -sympatico.ca. -scgi.ebay.com. -checkip.dyndns.org. -www.marykayintouch.com.mx. -www.sorry.com.co. -a.root-servers.net. -a.root-servers.net. -g.ceipmsn.com. -api.partners.ezetop.com. -54.90.14.186.in-addr.arpa. -0bps664l3vqk05dj8qih0t5renri9iic.ig.ig.gmodules.com. -onlinebizdirectory.com. -a.tribalfusion.com. -a.root-servers.net. -mavericktv.co.uk. -theschuckcorporation.com. -rblns69.mailshell.net. -www1.macys.com. -www.facebook.com. -static.ak.fbcdn.net. -5ssc.com. -a6.sphotos.ak.fbcdn.net. -109.107.81.190.in-addr.arpa. -a.root-servers.net. -i.ytimg.com. -214.186.187.79.in-addr.arpa. -accounts.google.com. -fresno.apartmenthomeliving.com. -pbimail1.prodigy.net. -csklegal.com.pri-mx.na0100.smtproutes.com. -a.root-servers.net. -179.149.102.218.in-addr.arpa. -ad.app366.com. -218.23.173.95.in-addr.arpa. -www.tragamonedas-online.com.ar. -clients2.google.com. -hths.mcvsd.k12.nj.us. -ponafotipuboduk.in. -elrellano.com. -i3.ytimg.com. -61.231.252.72.in-addr.arpa. -ilovemilkandcookies.blogspot.com. -crl.microsoft.com. -da.wikipedia.org. -creative.ak.fbcdn.net. -sionosexy.com. -www.facebook.com. -www.abc.es. -www.multimediaboom.com. -weightloss.about.com. -c713352.r52.cf2.rackcdn.com. -www.recettesdevalerie.com. -football.frivcute.com. -static.ak.fbcdn.net. -ybinst3.ec.yimg.com. -_237_57_7. -a1108.da1.akamai.net. -236.11.105.190.in-addr.arpa. -drawdogg.blogspot.com. -lilitmac.tumblr.com. -29.media.tumblr.com. -ismailia.ie-eg.com. -a.root-servers.net. -accounts.l.google.com. -coloradocollege.edu.mail4.psmtp.com. -photos-b.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -soultouchenterprisesllc.com. -mariosonicgames.blogspot.com. -www.hotmail-iniciarsesion.com. -www.xtremetop100.com. -click.infospace.com. -3.13.93.115.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -fieldjerger.com.s7a2.psmtp.com. -182.184.207.213.in-addr.arpa. -koolatsafety.com.au. -developers.facebook.com. -www.google-analytics.com. -zh-cn.facebook.com. -weather.partners.msn.com. -28.189.90.186.in-addr.arpa. -www.flowhot.net. -google.com. -maps.google.es. -mail.foss-as.no. -mail.takneat.com. -photos-a.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -tablero.ms.gba.gov.ar. -accountservices.msn.com. -t.invitemedia.com. -kaskus.com. -78.151.9.118.in-addr.arpa. -photos-h.ak.fbcdn.net. -pix04.revsci.net. -87.35.255.201.in-addr.arpa. -www.diariodetuxpan.com.mx. -167.230.109.83.in-addr.arpa. -hpiintl.com. -a771.da1.akamai.net. -fab.at. -ads.bluelithium.com. -63.233.10.186.in-addr.arpa. -_468_85_1. -teredo.ipv6.microsoft.com. -_174_62_2. -htamerica.com. -t2.gstatic.com. -amer.rel.msn.com. -150.226.44.200.in-addr.arpa. -allisimpsonfans.com. -images.compunoa.com. -32.71.6.186.in-addr.arpa. -devsgoons.com. -232.78.240.189.in-addr.arpa. -6.113.207.186.in-addr.arpa. -gla1as50.aggrekonet.biz. -photos-f.ak.fbcdn.net. -www.googleadservices.com. -login.live.com. -news.google.com.mx. -a.root-servers.net. -a.root-servers.net. -cdn6.liquidtelevision.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -hyperquan.com. -m.addthisedge.com. -209.90.251.190.in-addr.arpa. -geo.tp-cdn.com. -a.root-servers.net. -xnd3dsf:u.75hx. -karpovka.spb.ru. -fandmbank.com. -32.178.160.218.in-addr.arpa. -external.ak.fbcdn.net. -32.191.178.186.in-addr.arpa. -db.local.clamav.net. -135.209.251.190.in-addr.arpa. -chi8yedhy.58gs. -www.youtube.com. -79.4.43.186.in-addr.arpa. -platform.twitter.com. -1066087.r.msn.com. -www.bcba.sba.com.ar. -a.root-servers.net. -a.root-servers.net. -plusone.google.com. -moorti.org.ru. -msfs.nspmotion.com. -www.spokentoyou.com. -transfer-net.ru. -developers.facebook.com. -websearch.ask.com. -s01.divxden.com. -23.56.101.187.in-addr.arpa. -api-read.facebook.com. -139.2.8.200.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -plus.google.com. -static.ak.fbcdn.net. -syndication.exoclick.com. -16-courier.push.apple.com. -live.com. -www.whatsalary.com. -mail.piedmontcsb.org. -bmo.com. -nabewise.com. -www.google.com. -tap2-cdn.rubiconproject.com. -www.holisticmedicine.org. -megatitan.ru. -www.manhattanmedia.com. -216.74.175.187.in-addr.arpa. -brahms.ircam.fr. -s-static.ak.fbcdn.net. -es-la.facebook.com. -s2.youtube.com. -googleads.g.doubleclick.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -ratings-wrs.symantec.com. -srp.mtvn.com. -safebrowsing.clients.google.com. -s-static.ak.facebook.com. -support.google.com. -kurdish.sbeiy.com. -uk.motoseller.com. -_271_17_1. -mx.yahoo.com. -www.facebook.com. -videos.softonic.com. -mxico2022-2026.blogspot.com. -253.115.49.190.in-addr.arpa. -mail.autoinsuranceamerica.com. -mdcontinentalconstruction.com. -lovepredictions.net. -www.150babes.com. -a6.sphotos.ak.fbcdn.net. -ns1.blink.ca. -www.translate.google.es. -static2.dmcdn.net. -a7.sphotos.ak.fbcdn.net. -i3.ytimg.com. -books.google.com.mx. -s0.2mdn.net. -fupducktv.com. -breath.net. -mefas.com. -. -33.240.137.187.in-addr.arpa. -www.youtube.com. -connect.facebook.net. -barnhartguess.com. -yui.yahooapis.com. -api.appshopper.com. -www.vgf.com. -194.52.139.98.combined.njabl.org. -77.216.193.173.in-addr.arpa. -hotmail.com. -widgets.montiera.com. -:sr1293gx.15yt. -www.blogger.com. -3ibe9g88l.47by. -magazintravel.ru. -jo4zfro63.77id. -a8.sphotos.ak.fbcdn.net. -dl-ssl.google.com. -www.optionsclearing.com. -248.196.226.190.in-addr.arpa. -180.16.159.187.in-addr.arpa. -download310.avast.com. -bulrlrh14axe11gshtmwatm39kyn40ntg23gs.net. -a-0.19-2709a081.99c0083.1518.19d2.3ea1.210.0.aktazdp51b34gma5pp33cfbhh5.avqs.mcafee.com. -updatekeepalive.mcafee.com. -142.8.122.190.in-addr.arpa. -accounts.google.com. -playmorfarm.com. -vw2so4spb.j04k3f2x. -api.gamatar.org. -es.wikipedia.org. -mrglaubitz.com. -margotloyola.ucv.cl. -www.wathakker.net. -153.148.191.189.in-addr.arpa. -photos-a.ak.fbcdn.net. -3.bp.blogspot.com. -eventureevents.com. -4food.ru. -a.root-servers.net. -r.mzstatic.com. -197.45.160.187.in-addr.arpa. -www.redpymes.org.ar. -4minutos.es. -photos-f.ak.fbcdn.net. -cdcconinc.com. -www.valinor.com.br. -m.adnxs.com. -creative.ak.fbcdn.net. -73.139.130.12.bl.spamcop.net. -www.miniclip.com. -skydrive.live.com. -i3.ytimg.com. -porquesi.obolog.com. -req.appads.com. -gvntv.gvnstudio.com. -it.kingdomhearts.wikia.com. -blogacsessories.googlecode.com. -pagead2.googlesyndication.com. -95.196.203.190.in-addr.arpa. -0-ih-w.channel.facebook.com. -82.39.52.190.in-addr.arpa. -e3191.c.akamaiedge.net. -static-ak.vivastreet.com. -igor.facemoods.com. -crl.microsoft.com. -ocsp.entrust.net. -222.95.86.200.in-addr.arpa. -aol.com. -www.muzlife.com. -pagead2.googlesyndication.com. -www.google-analytics.com. -renees.com.s200b2.psmtp.com. -openx.wooga.com. -cbs1.com. -169.147.69.189.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -slb.liveprofile.com. -80.249.228.189.in-addr.arpa. -psp.ongames.com. -bauer-at.com. -linkhelp.clients.google.com. -bahamas.com. -photos-e.ak.fbcdn.net. -b18azismxlxk67gviqf52o31n60d30k57f32eucw.com. -www.facebook.com. -ib.adnxs.com. -217.13.216.15.in-addr.arpa. -quintadoriodao.com. -ns2.dialsprint.net. -lospatosenlaluna.blogspot.com. -img2.rexmag.net. -yong0218.translatej.hop.clickbank.net. -8.18.168.192.in-addr.arpa. -granciasa.com. -134.61.223.189.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -a.root-servers.net. -podcasts.yahoo.com. -a4.sphotos.ak.fbcdn.net. -www.nicholasrhea.co.uk. -alerts.conduit-services.com. -www.emadbaghi.com. -169.96.69.87.in-addr.arpa. -api.twitter.com. -b.scorecardresearch.com. -dentalsolo.ru. -mail.ausonia.ru. -clients1.google.com. -morose.fotoplenka.users.photofile.ru. -sp.search-results.com. -www.sim.redee.com. -safebrowsing.clients.google.com. -235.3.161.189.in-addr.arpa. -checkvist.com. -a.root-servers.net. -a.root-servers.net. -dns.msftncsi.com. -portal.ku.edu.kw. -www.wikimediafoundation.org. -www.rockrose.ca. -a.root-servers.net. -9.162.14.181.in-addr.arpa. -dr._dns-sd._udp.lan. -www.orc.ru. -mail.arquetipopublicidad.net. -78.123.180.189.in-addr.arpa. -coca.com. -53.194.33.187.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -69.184.188.190.in-addr.arpa. -cbdengineering.com. -203.34.52.71.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -vnxsolutions.com. -dipproject.ru. -120.223.173.190.in-addr.arpa. -google.com. -pretty-ditty.blogspot.com. -49.247.156.189.in-addr.arpa. -images01.olx.com.co. -static.ak.fbcdn.net. -media.fastclick.net. -www.google.com. -a1.sphotos.ak.fbcdn.net. -definicion.de. -filtre.chuq.qc.ca. -click.email.nlg.com. -199.67.59.186.in-addr.arpa. -kemont.ru. -mts-k.ru. -db._dns-sd._udp.lan. -. -51.150.95.201.in-addr.arpa. -a-0.19-a30f7000.c070081.1518.19d4.3ea1.410.0.tzin1lvkubqbfgzgrbj44qlek5.avqs.mcafee.com. -videos.videopress.com. -www.psrd.hawaii.edu. -www.bancofrances.com.ar. -alb3d.maktoobblog.com. -profile.ak.fbcdn.net. -tags.expo9.exponential.com. -www.techopinions.com. -sp.cwfservice.net. -a.c-0.19-a309a081.c870082.1518.19d4.3ea1.210.0.gprbcpw39smc9azb9c4cbskdkq.avqs.mcafee.com. -macabre.ru. -a.root-servers.net. -creative.ak.fbcdn.net. -api.conduit.com. -cbswzgc.files.wordpress.com. -s-static.ak.facebook.com. -games.m7shsh.com. -trackermo.com. -www.mozilla.org. -mail.ekoteks.ru. -microsoft-word-2011.softonic.pl. -google.com. -api.facebook.com. -213.48.146.187.in-addr.arpa. -a.root-servers.net. -a1725.l.akamai.net. -efacebook.in. -apps.facebook.com. -www.circuloastronomico.cl. -cache.pack.google.com. -www.facebook.com. -developers.facebook.com. -www.belkin.com. -securepubads.g.doubleclick.net. -safebrowsing-cache.google.com. -s10.histats.com. -dsw.quik.com. -99.50.173.190.in-addr.arpa. -lh5lrh2ks.g78z5q4a. -4.113.205.189.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -bl163w.blu163.mail.live.com. -m2.nsimg.net. -a3.sphotos.ak.fbcdn.net. -cdn.api.twitter.com. -photos-h.ak.fbcdn.net. -habeby.com. -quidestveritas07.blogspot.com. -vacacionesbook.com. -cuervo-negro.blogspot.com. -glquery.blackberry.com. -195.171.58.82.in-addr.arpa. -mscrl.microsoft.com. -static.ak.fbcdn.net. -www.hotmetart.com. -safebrowsing.clients.google.com. -yellowsurveys.com. -www.vinculame.com. -tienda.youcel.com. -bluepearl-skins.com. -www.canadianmedsworld.org. -twitter.com. -www.godlygamez.com. -www.kasperskylab.co.kr. -bigbloger.lidovky.cz. -dns.msftncsi.com. -90.66.223.189.in-addr.arpa. -www.proveedoresturisticos.com.mx. -image01.videobox.com. -253.30.30.186.in-addr.arpa. -www.grabonebottle.co.nz. -kriss.re.kr. -27.231.237.189.in-addr.arpa. -pegasustransfers.com.au. -www.ptcbox.com. -i1.ytimg.com. -www.fotonostra.com. -www.gordosnuncamas.blogspot.com. -secure.wlxrs.com. -lolieroidol.blog79.fc2.com. -a3.sphotos.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -www.sexfg.com. -solar-m.ru. -ad.yieldmanager.com. -mail.cti.com. -a.root-servers.net. -www.google.com. -odcdance.org. -partner.googleadservices.com. -mail.evyap.com.tr. -www.facebook.com. -www.opendi.mx. -msdxmlc.dll. -clients1.google.com. -download.windowsupdate.com. -profile.ak.fbcdn.net. -mail.google.com. -wuostc.com. -www.aspirateur-silencieux.fr. -www.playingbythebook.net. -apis.google.com. -static.muslimadnetwork.com. -static.ak.fbcdn.net. -synexches.synerfac.com. -es-la.facebook.com. -twitter.com. -www.youtube.com. -www.plasticsportal.net. -static.ak.connect.facebook.com. -time.windows.com. -www.ehbonline.org. -85.51.1.181.in-addr.arpa. -jimsmash.blogspot.com. -i2.cdn.turner.com. -www.elorientalonline.com. -www.televox.com. -plus.google.com. -131.203.177.187.in-addr.arpa. -61.25.31.95.in-addr.arpa. -242.129.33.187.in-addr.arpa. -d1aivi5dp2wry5.cloudfront.net. -storage.conduit.com. -salud.latam.msn.com. -switchboard.real.com. -creative.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -coolberman.wordpress.com. -e3353.c.akamaiedge.net. -securesignupoffers.net. -www.pigtronix.com. -blackozil.blogspot.com. -. -60.36.153.190.in-addr.arpa. -emediate.apmmedia.net. -cm5.esignal.com. -smsshkola.ru. -a2.sphotos.ak.fbcdn.net. -osrah.net. -clients1.google.com. -www.diamondcs.com.au. -intervale.com. -townandcountryproperties.com. -simoncaleb.com. -63.74.237.189.in-addr.arpa. -babinbuildingsolutions.com. -50-57-46-243.static.cloud-ips.com. -developers.facebook.com. -en-us.fxfeeds.mozilla.com. -www.edovia.com. -www.dailymotion.com. -242.129.244.201.in-addr.arpa. -208.97.84.200.in-addr.arpa. -europe.com. -a.root-servers.net. -www.facebook.com. -ddb.fr.s7b2.psmtp.com. -planeta.gul.es. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -providian.com. -211.123.225.78.in-addr.arpa. -ma10104.computerhaus.net. -pixel.facebook.com. -couponbuddy.s3.amazonaws.com. -abswa.com. -bit.ly. -photos-b.ak.fbcdn.net. -creative.ak.fbcdn.net. -a.root-servers.net. -ec.atdmt.com. -th4.theteenest.com. -newmachine.com. -125.100.233.76.in-addr.arpa. -www.medicentro.com.co. -images.intellitxt.com. -www.odioentrenar.com. -static.ak.fbcdn.net. -:7gnvfxuw.k20q6a5l. -hindi.babylon.com. -www.modern-styles.net. -www.okc.cc.ok.us. -baxterlaw.com. -parrotsociety.org.au. -www.youtube-nocookie.com. -www.google-analytics.com. -gemini.com. -171.146.55.87.in-addr.arpa. -time.windows.com. -comfitel.ru. -m.facebook.com. -corbettresearch.com. -accounts.google.com. -www.square-enix.co.jp. -a1408.w43.akamai.net. -www.gerardo-perez.com.ar. -static.exoclick.com. -94.130.242.212.in-addr.arpa. -insidetrackcoaching.com.s5a1.psmtp.com. -wolfblock.com.mx1.electric.net. -www.lingopal.com. -plus.google.com. -www.facebook.com. -accounts.google.com. -mail2.demo-hmc.com.ar. -188.92.220.189.in-addr.arpa. -gayastrology.blogspot.com. -175.236.127.201.in-addr.arpa. -imgburn.softonic.cn. -www.123jump.co.uk. -www.gmg-entertainment.com. -spajardin.com. -www.editorialtaurus.com. -echo.edge.messenger.live.com. -api.geo.kontagent.net. -sp.search-results.com. -a5.sphotos.ak.fbcdn.net. -live.gnome.org. -s0.2mdn.net. -static.ak.fbcdn.net. -ax.init.itunes.apple.com. -www.juntaflorida.gub.uy. -static.ak.fbcdn.net. -arch.inkom.ru. -88.76.160.189.in-addr.arpa. -www.tripadvisor.es. -_ldap._tcp. -sp.cwfservice.net. -16.204.61.67.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -33.22.137.201.in-addr.arpa. -228.113.166.178.in-addr.arpa. -loading1.widdit.com. -press.absolut.com. -www.campus3deducacion.com. -matroska-pack-full.softonic.com. -www.bairesgirls.net. -download337.avast.com. -inotify.live.net. -a2.twimg.com. -a.root-servers.net. -login.toolbar.conduit-services.com. -116.28.178.186.in-addr.arpa. -pagead2.googlesyndication.com. -b-0.19-a3001008.41081.1518.19d4.3ea1.410.0.2rpliwfdaimtdteu1ia7bwlbsq.avqs.mcafee.com. -www.honeymoonersreviewguide.com. -googleads.g.doubleclick.net. -www.piter-press.ru. -ssl.gstatic.com. -ajax.googleapis.com. -js.blinkadr.com. -clipat.maktoob.com. -help.freephpbb3.com. -darveylitho.com. -mail.pcexchange.net. -capgemini.ru. -www.penesgays.com.ar. -www.kaossoftwear.com. -a.root-servers.net. -www.travian.gr. -profile.ak.fbcdn.net. -b-0.19-23058479.10081.1518.19d4.2f4a.210.0.lwchdlgbpnlvjj7ass77a8nrvt.avqs.mcafee.com. -photos-c.ak.fbcdn.net. -www.nuvet.com. -apmkzodsq.p63l7j9c. -pixel.facebook.com. -ad.yieldmanager.com. -a.root-servers.net. -www.vitralesexclusivos.com.ar. -www.gstatic.com. -184.21.238.83.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -ad.doubleclick.net. -client.akamai.com. -i2.ytimg.com. -de.hyperionics.com. -dns.msftncsi.com. -external.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -www.myhabit.com. -squote.yuanta.com.tw. -130.120.166.190.in-addr.arpa. -digitalcuttlefish.blogspot.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -prosportshop.ru. -8okjz1wzv.v71w6n6r. -sochs.com. -profile.ak.fbcdn.net. -31.145.170.189.in-addr.arpa. -warez-bb.org. -b-0.19-2200a008.11081.1518.19d3.3ea1.410.0.v1a2qe64ph7fk7393unb8z6wlb.avqs.mcafee.com. -www.firefox.ro. -3dedp2zth.u63z8z0p. -sla.com.s9b1.psmtp.com. -teredo.ipv6.microsoft.com. -ad.jumbaexchange.com. -showadsak.pubmatic.com. -www.facebook.com. -ajax.googleapis.com. -img534.imageshack.us. -rsconsultants.co.uk. -clients4.google.com. -s.youtube.com. -112.169.123.190.in-addr.arpa. -4121518.frasesinolvidables1.com.ar. -imagesak.wildwestdomains.com. -www.bloopdigital.com. -api-read.facebook.com. -www.google.com. -. -www.yahoo.com. -birdingpal.org. -150.25.102.201.in-addr.arpa. -s.youtube.com. -tcpv2.easythumbhost.com. -dns.msftncsi.com. -clients1.google.com. -120.86.130.189.in-addr.arpa. -it-it.facebook.com. -blog.stata.com. -calendar.live.com. -news.google.com.mx. -reimanpub.com.s9a1.psmtp.com. -checkip.dyndns.com. -a6.sphotos.ak.fbcdn.net. -a.root-servers.net. -connect.facebook.net. -ssl.gstatic.com. -86.19.176.190.in-addr.arpa. -a.root-servers.net. -qcc.com.sa. -www.agava.ru. -profile.ak.fbcdn.net. -cdn.loading321.com. -api.facebook.com. -webcache.googleusercontent.com. -170.93.249.201.in-addr.arpa. -shocktune.com. -79.192.57.186.in-addr.arpa. -api.openfeint.com. -238.66.36.176.in-addr.arpa. -cookisgood.blogspot.com. -www.google.com. -content-1.emagistercdn.com. -mihran.com. -afproteinpharmaceuticals.com. -37.7.130.27.in-addr.arpa. -stun.client.akadns.net. -uwrrwmxeexlrmwo.net. -ardry.com. -www.watchesseek.com. -m5.eastlink.ca. -176.162.126.84.in-addr.arpa. -70.5.75.50.in-addr.arpa. -www.el-ladies.com. -checkip.dyndns.org. -177.71.173.70.in-addr.arpa. -t0.gstatic.com. -msgr.updates.yahoo.com. -edit.yahoo.com. -telus.net. -a7.sphotos.ak.fbcdn.net. -221.6.62.186.in-addr.arpa. -densho.com.mx. -teredo.ipv6.microsoft.com. -jers3.info. -a.root-servers.net. -187.207.145.187.in-addr.arpa. -mail.iqpuzzles.com. -webofdebt.wordpress.com. -evt.collarity.com. -smtp.sherbtel.net. -homepages.luc.edu. -www.digimonmasters.org. -mail.chmelik.com. -yaminoyukihime.blogspot.com. -simple.wikipedia.org. -beardedmagazine.co.uk. -depositfiles.com. -a.root-servers.net. -dnl-16.geo.kaspersky.com. -futsal1930.blogspot.com. -dzoom.org.es. -massivepress.com. -wawick.net. -crl.microsoft.com. -129.72.131.187.in-addr.arpa. -plusone.google.com. -static.ak.fbcdn.net. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -r._dns-sd._udp.home. -www.weather.gov. -www.sptechs.com. -_kerberos._tcp.dc._msdcs.la.jnj.com. -i3.sinaimg.cn. -4.148.175.190.in-addr.arpa. -pics1.pof.com. -profile.ak.fbcdn.net. -231.49.235.190.in-addr.arpa. -cdn2.widdit.com. -d1ros97qkrwjf5.cloudfront.net. -a1505.l.akamai.net. -slfusco.com.inbound30.mxlogic.net. -dns.msftncsi.com. -www.adobe.com. -mail.autopick.com. -a2.sphotos.ak.fbcdn.net. -clients1.google.com. -support.google.com. -www.melsdrive-in.com. -ds.addthis.com. -ssl.gstatic.com. -www.textsrv.com. -mthigh.com. -i4.ytimg.com. -safebrowsing.clients.google.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -7db1t4r::.21ac. -blankizdat.ru. -ipod4ladies.wordpress.com. -ssl.gstatic.com. -a.root-servers.net. -iejaor.com. -www.quehoroscopo.com. -www.google.com.mx. -profile.ak.fbcdn.net. -www.pensacolaciviccenter.com. -api.facebook.com. -radley.me.uk. -cerca.unita.it. -aaaga.com. -support.google.com. -a7.sphotos.ak.fbcdn.net. -utstarcom.ru. -a.root-servers.net. -www.addthis.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -_272_37_4. -a.root-servers.net. -23.99.51.190.in-addr.arpa. -ksn3-12.part1.kaspersky-labs.com. -o-o.preferred.atl14s01.v23.lscache8.c.youtube.com. -i1.ytimg.com. -classicrr.com.s8b1.psmtp.com. -thumbs1.wetgrannysex.com. -11.39.18.190.in-addr.arpa. -203.113.214.189.in-addr.arpa. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -212.51.168.192.in-addr.arpa. -platform.twitter.com. -i0.ifrype.com. -www.ramirezcuevas.es. -tracker.stigalaria.org. -www.facebook.com. -profile.ak.fbcdn.net. -www.zionrootswear.com. -yhioo.com. -otfs.net. -pt-br.facebook.com. -photos-b.ak.fbcdn.net. -31-courier.push.apple.com. -a7.sphotos.ak.fbcdn.net. -zaitcev.mee.nu. -77.233.52.216.in-addr.arpa. -www.iwsmile.it. -js.wlxrs.com. -plus.google.com. -puertyxdvud.info. -50.51.173.201.in-addr.arpa. -a.root-servers.net. -struer.dk. -ancalayoli.blogspot.com. -219.131.34.186.in-addr.arpa. -ncree.org. -profile.ak.fbcdn.net. -1.2.168.192.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -a1174.g.akamai.net. -153.137.231.189.in-addr.arpa. -mail. -132.243.230.201.in-addr.arpa. -www.registrar.psu.edu. -rydata-a.akamaihd.net. -news.mtgir.com. -www.google.com. -e5016.b.akamaiedge.net. -i3.ytimg.com. -images.hi5.com. -u21.eset.com. -104.126.92.201.in-addr.arpa. -yui.yahooapis.com. -grupozawa.com. -165.85.192.190.in-addr.arpa. -partner.googleadservices.com. -www.download.windowsupdate.com. -miangelitoespecial.blogspot.com. -support.google.com. -61.18.110.123.in-addr.arpa. -e4344.g.akamaiedge.net. -a.root-servers.net. -www.google-analytics.com. -28.175.186.189.in-addr.arpa. -photos-c.ak.fbcdn.net. -136.133.55.189.in-addr.arpa. -em1x-278.lhr.messaging.nokia.com. -www.facebook.com. -pixel.facebook.com. -adlog.com.com. -191.83.26.201.in-addr.arpa. -s2.youtube.com. -pxahzae6r.15sr. -126.235.82.186.in-addr.arpa. -a.root-servers.net. -static.ak.fbcdn.net. -www.poni.ca. -secure.cbtnuggets.com. -183.106.236.186.in-addr.arpa. -www.gstatic.com. -29.161.115.186.in-addr.arpa. -external.ak.fbcdn.net. -www.thereis.co.uk. -tap2-cdn.rubiconproject.com. -mail.yimg.com. -www.google-analytics.com. -www.youtube.com. -42.153.143.201.in-addr.arpa. -myweb.vodafone.co.uk. -a.root-servers.net. -photos-d.ak.fbcdn.net. -ratings-wrs.symantec.com. -loading7.widdit.com. -www.nmm.ac.uk. -a.root-servers.net. -ad.doubleclick.net. -pagead2.googlesyndication.com. -z-ecx.images-amazon.com. -www.juegos-autos.com. -156.125.142.189.in-addr.arpa. -www.google-analytics.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -platform.twitter.com. -a.tribalfusion.com. -_334_96_3. -ads.iforex.com. -43.99.156.187.in-addr.arpa. -78.157.200.98.in-addr.arpa. -21.143.194.187.in-addr.arpa. -www.google-analytics.com. -www.juegosgratis1x.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -80.188.221.67.in-addr.arpa. -appleglobal.112.2o7.net. -e.f.f.f.f.f.f.f.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa. -carbofer.ru. -a7.sphotos.ak.fbcdn.net. -translate.google.com.mx. -mail.rabotagrad.ru. -toolbarqueries.clients.google.com. -7.97.24.203.in-addr.arpa. -187.163.145.189.in-addr.arpa. -www.nytimes.com. -89.55.36.174.in-addr.arpa. -unicam-studio.ru. -fbcdn-photos-a.akamaihd.net. -www.missindonesia.co.id. -10.237.39.190.in-addr.arpa. -cnfg.funmoods.com. -apis.google.com. -unesco.com. -sb8z44iyo.k70w5x1y. -230.240.133.189.in-addr.arpa. -chat.facebook.com. -domnapogrebah.ru. -a.root-servers.net. -158.60.207.200.in-addr.arpa. -. -www.kentelectricalservices.com. -android.clients.google.com. -ar.answers.yahoo.com. -www.gstatic.com. -mouse.latercera.cl. -www.mundohogar.com. -babystrology.com. -developers.facebook.com. -7794ietim.x15n4z7x. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -leetufrase.com. -cdn1.widdit.com. -cf.addthis.com. -thumbs1.ebaystatic.com. -62.28.94.189.in-addr.arpa. -brambles.com.s5b2.psmtp.com. -www.mezee.me. -www.angelfire.com. -js.adsonar.com. -blogtuembarazo.com. -mail.karavelle.co.uk. -external.ak.fbcdn.net. -b-0.19-230c3479.81.1518.19d4.3ea1.410.0.1mpgha3eadg4cnkstpgnth3v86.avqs.mcafee.com. -wwwimages.adobe.com. -10.216.22.186.in-addr.arpa. -dsa411.com. -apps.facebook.com. -221.221.15.76.in-addr.arpa. -swa.mail.ru. -partners.gallery.live.com. -zebarthadvisors.com. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -tavernrestaurantgroup.com. -sp.ask.com. -ogier.com. -search-cdn.walmart.com. -att.com. -boxmail.spb.ru. -photographytreasure.com. -www.hawanaajd.com. -static.ak.fbcdn.net. -facebook.com. -sp.cwfservice.net. -a.root-servers.net. -www.voiceboks.com. -apis.google.com. -a.root-servers.net. -:os11aman.z59u0d0w. -v14.nonxt6.c.youtube.com. -www.googleadservices.com. -pixel.33across.com. -www.vivirguadalajara.com. -www.quantenwelt.de. -bay.messenger.services.live.com. -delirios-anonimos.blogspot.com. -www.paintbits.com. -228.95.119.99.in-addr.arpa. -25.media.tumblr.com. -mvs.com.mx. -www.smutblaster.com. -a.root-servers.net. -www.moneytalkvillage.com. -2.gvt0.com. -c0058712.cdn.cloudfiles.rackspacecloud.com. -187.112.173.88.in-addr.arpa. -a.root-servers.net. -96.224.241.201.in-addr.arpa. -rcp.na.blackberry.com. -a.root-servers.net. -storage.conduit.com. -107.68.148.88.in-addr.arpa. -129.151.127.201.in-addr.arpa. -mx2.balanced.homie.mail.dreamhost.com. -qc1dlpkvw.43yc. -plusone.google.com. -24.233.73.200.in-addr.arpa. -mcfarlandarchitects.com. -grafos.softonic.com. -60.199.137.70.in-addr.arpa. -a.root-servers.net. -223.173.175.187.in-addr.arpa. -grubees.aliexpress.com. -zh-cn.facebook.com. -carlcox.com. -a.root-servers.net. -a4.sphotos.ak.fbcdn.net. -mail.kolaregion.ru. -seexycams3.da.ru. -sb2573.ru. -204.93.139.187.in-addr.arpa. -www.bombasindustriales.cl. -rs702l35.rapidshare.com. -php.hdcmct.com. -b-0.19-a7096008.8030081.1518.19ce.3ea1.410.0.rpsti6q8dj1qv7cger6ab8s5fq.avqs.mcafee.com. -a.root-servers.net. -179.wap517.org. -150.213.209.189.in-addr.arpa. -www.varelaenred.com.ar. -docs.google.com. -185.255.150.99.in-addr.arpa. -photos-b.ak.fbcdn.net. -www.manga-access.com. -ensenadagotico.blogspot.com. -farm3.static.flickr.com. -mail.jgua.com. -102.39.154.187.in-addr.arpa. -dns.msftncsi.com. -um12.eset.com. -ad.yieldmanager.com. -125.166.129.95.in-addr.arpa. -del.icio.us. -mx.f1123.mail.yahoo.com. -197.21.1.181.in-addr.arpa. -www.juegosdemates.com. -techrepublic.custhelp.com. -faculty.deanza.fhda.edu. -fbnffb.s3.amazonaws.com. -230.116.1.201.in-addr.arpa. -a1831.g.akamai.net. -apis.google.com. -gsbflavorcreators.com.s8b1.psmtp.com. -profile.ak.fbcdn.net. -i3.ytimg.com. -124.8.241.201.in-addr.arpa. -171.79.216.186.in-addr.arpa. -120.79.125.74.in-addr.arpa. -www.vegetomania.com. -www.chinabusinessworld.com. -panatweb.com. -76.93.106.186.in-addr.arpa. -cdn.blogsmasterd.com. -profile.ak.fbcdn.net. -www.blogger.com. -86.31.73.189.in-addr.arpa. -75.9.19.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -styleflat.ru. -harsco.com. -clients1.google.com. -pro-team.com.s7a1.psmtp.com. -urs.microsoft.com. -rsi.hotmail.com. -218.182.5.189.in-addr.arpa. -sherman-associates.com.inbound15.mxlogicmx.net. -jetstreamwireless.com. -amfbakery.com. -photos-g.ak.fbcdn.net. -fbcdn-photos-a.akamaihd.net. -42.153.122.69.in-addr.arpa. -110.172.185.190.in-addr.arpa. -creative.ak.fbcdn.net. -pagead.l.doubleclick.net. -saledrug.info.lan. -guitartricks.us1.list-manage.com. -photos-a.ak.fbcdn.net. -kb.cyberoam.com. -www.endotext.com. -232.216.210.201.in-addr.arpa. -15.149.220.66.in-addr.arpa. -a.root-servers.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -69.168.161.200.in-addr.arpa. -pixel.quantserve.com. -tracker.mightynova.com. -www.weather.com. -mxbackup.mail.sysonline.net. -6965y6kzp.p06j1f5v. -121.45.109.79.in-addr.arpa. -jt2im267w.w33k1y7h. -www.4ureyesonly.com. -www.facebook.com. -www.shoesofyourdreams.com. -gday.ru. -photos-c.ak.fbcdn.net. -tv.msn.com. -www.facebook.com. -ja-jp.facebook.com. -graph.facebook.com. -argus-spectrum.ru. -www.accountmarket.com. -mkgallery.com. -www.thewhiteribbon.co.uk. -m.google.com. -www.gmail.com. -content.yieldmanager.edgesuite.net. -a.root-servers.net. -a.root-servers.net. -. -234.154.138.190.in-addr.arpa. -photos-d.ak.fbcdn.net. -googleads.g.doubleclick.net. -8.17.189.99.in-addr.arpa. -frontal1.erenis.fr. -time.nist.gov. -videotronres.112.2o7.net. -lasa.com. -justin.multimedios.tv. -dns.msftncsi.com. -www.blogrelaciones.com. -rs11tl4.rapidshare.com. -tag.admeld.com. -tools.google.com. -www.google.com. -www.thecharityhive.ca. -4.bp.blogspot.com. -fas.fr. -mobile.papi.com. -jruby.org. -osl.ugr.es. -profile.ak.fbcdn.net. -www.edenred.es. -firstmomtube.com. -gw.roma.ua. -sites.google.com. -www.cuidadospediatricos.blogspot.com. -107.173.107.186.in-addr.arpa. -gfx1.hotmail.com. -www.paxnet.co.kr. -nainashville-com.mail.eo.outlook.com. -a4.sphotos.ak.fbcdn.net. -www.facebook.com. -ppo1l9gbl.48hc. -68.187.214.189.in-addr.arpa. -csi.gstatic.com. -mail.lbsglobal.com. -www.mediasyndicate.in. -org.mx. -alilahotels.com. -apis.google.com. -a.root-servers.net. -julianred.lookbook.nu. -sonics.ru. -mail.google.com. -photos-f.ak.fbcdn.net. -gcg.com. -evolutiongroupfl.com. -profile.ak.fbcdn.net. -vega-h.ru. -rs210tl4.rapidshare.com. -graph.facebook.com. -www.techsutram.com. -www.google.com. -97.46.184.89.in-addr.arpa. -rostovauto.ru. -creatupropiamoda.com. -my.mail.ru. -api.zynga.com. -www.wordreference.com. -19.224.171.69.in-addr.arpa. -api.conduit.com. -hyatts.com. -ferroesquevedos.blogspot.com. -cs.picjoke.net. -es.wikipedia.org. -aaamiamicounty.com. -2kgam.es. -external.ak.fbcdn.net. -0-jg-w.channel.facebook.com. -74.30.249.190.in-addr.arpa. -tvfacebook.lge.com. -h.live.com. -s2.youtube.com. -_885_08_4. -primestaffusa.com. -profile.ak.fbcdn.net. -kusanagigirlbeautyblog.blogspot.com. -d3j5vwomefv46c.cloudfront.net. -www.skypesexcontacts.com. -fc.cps.edu. -citigateaf.com. -www.pixgateway.com. -dcscontracting.com.bak-mx.na0100.smtpbak.com. -multiplayergamescom.skimlinks.com. -external.ak.fbcdn.net. -cumeaters.33men.com. -pixel.facebook.com. -todoesfarandula.bligoo.com. -ssl.gstatic.com. -49.38.133.115.in-addr.arpa. -multimedia.getresponse.com. -www.vuelo-digital.org. -www-cctld.l.google.com. -vcontent.ebuddy.com. -mail.cbopc.com. -unoracing.com. -98.images22.51img1.com. -derribosbajoelagua.blogspot.com. -www.annabean.com. -2.213.10.109.in-addr.arpa. -thumbnails2.imagebam.com. -www.osundefender.org. -223.178.230.88.in-addr.arpa. -hwzgjh4my.l08z4w0e. -ocsp.digicert.com. -mail.hiellesmereport.com. -www.bing.com. -www.siteadvisor.com. -27.135.15.186.in-addr.arpa. -notebooklaptopsreview.blogspot.com. -75.157.127.201.in-addr.arpa. -164.126.3.187.in-addr.arpa. -blackhole.theglobe.com. -ads.crakmedia.com. -spysee.jp. -www.gala-marketlaw.com. -123.187.194.94.in-addr.arpa. -85.225.69.77.in-addr.arpa. -a.root-servers.net. -wallet.google.com. -mbakercorp.com. -www.highdefedition.com. -www.googletagservices.com. -arthritis.uphero.com. -www.detododormitorios.com. -mailext1.mh-hannover.de. -mail.wba-architects.com. -cnt1.xhamster.com. -www.nowhereelse.fr. -tc.v11.cache5.c.youtube.com. -dns.msftncsi.com. -mail.atbm.ru. -thevintagevalley.blogspot.com. -105.196.188.189.in-addr.arpa. -140.232.171.69.sbl-xbl.spamhaus.org. -bp3.blogger.com. -www.twitter.com. -eh35zk:zq.00tn. -0-68.channel.facebook.com. -usebrinks.com. -sqm.microsoft.com. -player.vimeo.com. -w.sharethis.com. -profile.ak.fbcdn.net. -legendarioantartico.blogspot.com. -a4.sphotos.ak.fbcdn.net. -freeangrybirdsgames.info. -168.218.243.189.in-addr.arpa. -external.ak.fbcdn.net. -static.ak.fbcdn.net. -resolver1.pand.ctmail.com. -external.ak.fbcdn.net. -99.152.182.189.in-addr.arpa. -ratco.ru. -www.google.com. -ads.adxpose.com. -adventurgraphics.blogspot.com. -www.expressio.fr. -linkhelp.clients.google.com. -www.bigbreastchest.com. -cdn.gigya.com. -www.a-n.co.uk. -a5.sphotos.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -i.blogads.com. -www.4shared.com. -thewillows.org. -netmail.verizon.com. -252.150.38.190.in-addr.arpa. -www.facebook.com. -224.30.125.95.in-addr.arpa. -11.41.241.201.in-addr.arpa. -smtp.bedsonline.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -reactnetwork.com. -www.brspecialtuning.co.uk. -a.root-servers.net. -spancp.com. -tags.expo9.exponential.com. -www.linkstoislam.com. -37.160.144.187.in-addr.arpa. -145.54.26.80.in-addr.arpa. -a1404.w41.akamai.net. -www.facebook.com. -11.34.11.190.in-addr.arpa. -a1.twimg.com. -8.251.125.79.in-addr.arpa. -feeds.bbci.co.uk. -177.44.194.187.in-addr.arpa. -www.gas2.org. -voipa.sip.yahoo.com. -www.aclam.org. -www.slowandsteadywinstherace.com. -a550.g.akamai.net. -external.ak.fbcdn.net. -crl3.digicert.com. -rerecognition.com. -gupran.ru. -external.ak.fbcdn.net. -104.152.161.190.in-addr.arpa. -238.49.253.201.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -_953_66_8. -t2.gstatic.com. -72.251.56.178.in-addr.arpa. -mapas.guiadeuruguay.com. -cityofmadera.ca.us. -blogs.ancestry.com. -149.118.143.189.in-addr.arpa. -82.114.125.84.in-addr.arpa. -assets.tumblr.com. -www.yahoo.com. -developers.facebook.com. -wnsemergent.com. -scribd.com. -youtu.be. -heymrswilson.net. -gms.gdl.jp. -vgs.com. -www.freespiritualways.com. -fbcdn-photos-a.akamaihd.net. -photos-a.ak.fbcdn.net. -22.191.22.186.in-addr.arpa. -master7.teamviewer.com. -download.windowsupdate.com. -submitshop.com. -photos-b.ak.fbcdn.net. -pilu.it. -coursyoga.net. -lamington.wordpress.com. -wheresmysammich.com. -ajax.googleapis.com. -photos-d.ak.fbcdn.net. -apps.facebook.com. -208.86.206.190.in-addr.arpa. -161.172.118.70.in-addr.arpa. -www.therespawnarmy.com. -38.132.129.186.in-addr.arpa. -www.hotchickswithdouchebags.com. -dr._dns-sd._udp.lan. -l.yimg.com. -epistemologadelacomunicacion.blogspot.com. -www.solotodo.net. -w73k1ha18.55wt. -im1.gulfup.com. -d6537b.ess.barracudanetworks.com. -news.google.com.mx. -j5ituddlr.u55e5e3r. -profile.ak.fbcdn.net. -www.travian.ma. -creative.ak.fbcdn.net. -ib.adnxs.com. -twitter.com. -_300_37_2. -124.214.169.88.in-addr.arpa. -ssl.gstatic.com. -twitter.com. -www.turismolitoral.cl. -250.186.124.186.in-addr.arpa. -www.zonaktolica.com.ar. -juris.su. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -platform.twitter.com. -router.infolinks.com. -apostoladoeucaristico.blogspot.com. -xnx.ru. -www.desotosport.com. -2.198.109.187.in-addr.arpa. -olympiarealestate.com. -215.251.223.87.in-addr.arpa. -img141.imageshack.us. -blog.houstontexans.com. -pbr670.photobucket.com. -www.dailymail.co.uk. -t0.gstatic.com. -dtvyuk.com. -f.chtah.com. -chuletas.rincondelvago.com. -direct2.anhso.net. -billing.sharo4ka.ru. -fbcdn-photos-a.akamaihd.net. -22.101.172.190.in-addr.arpa. -a.root-servers.net. -th.y8.com. -a3.sphotos.ak.fbcdn.net. -bloog.pl. -www.youtube.com. -mi.adinterax.com. -go2.com. -40.162.126.84.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -a995.mm1.akamai.net. -ocsp.godaddy.com. -pubads.g.doubleclick.net. -ee.net.s6a2.psmtp.com. -30.43.58.201.in-addr.arpa. -161.9.150.187.in-addr.arpa. -mtalk.google.com. -89.55.36.174.in-addr.arpa. -comic.dl.playstation.net. -a.root-servers.net. -160.17.161.189.in-addr.arpa. -www.loudguitars.com. -dr._dns-sd._udp.lan. -es-la.facebook.com. -www.update.microsoft.com. -photos-f.ak.fbcdn.net. -platform.ak.fbcdn.net. -151.96.186.67.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -www.dcsea.uqroo.mx. -www.helloprojectheaven.com. -buyperfecthealth.com. -www.cartolinespeedy.it. -239.234.218.190.in-addr.arpa. -www-cctld.l.google.com. -118.161.208.201.in-addr.arpa. -verizon.net. -101.7fm.ru. -114.172.34.201.in-addr.arpa. -mypads.net. -208.218.168.192.in-addr.arpa. -www.fringenyc.org. -www.youtube.com. -www.scotiabank.com.mx. -124.54.236.82.in-addr.arpa. -ws-cloud-msgplus.linkury.com. -www.levi.com.ec. -91.123.13.201.in-addr.arpa. -ysrgw8pk3.73bb. -241.119.38.81.in-addr.arpa. -pagead.l.doubleclick.net. -sfg2.golden-tech.com. -www.gpedit.msc. -cdna.static.youjizz.com. -atlplastic.com. -www.dirtyxxxtube.com. -a.root-servers.net. -pap4zjal8.s92c9q0l. -ecatepecdemorelos.olx.com.mx. -130.50.201.71.in-addr.arpa. -static.ak.facebook.com. -202.235.112.186.in-addr.arpa. -fxfeeds.mozilla.com. -s.ytimg.com. -fxfeeds.mozilla.com. -wireless.stanford.edu. -28.talkgadget.google.com. -ic.tynt.com. -col.stb01.s-msn.com. -adframes.iminent.com. -univi.ac.at. -photos-a.ak.fbcdn.net. -245.169.111.189.in-addr.arpa. -istrianet.org. -content.yieldmanager.edgesuite.net. -api.twitter.com. -www.elizabethhoyt.com. -capitalmodern.com. -ksn1-11-part2.kaspersky-labs.com. -banorte.com. -b.scorecardresearch.com. -www.belkin.com. -espanol.weather.com. -a.root-servers.net. -toolbarqueries.google.com. -120.14.94.118.in-addr.arpa. -mtucizone.ru. -26.37.107.186.in-addr.arpa. -ajax.googleapis.com. -105.253.148.79.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -dns.msftncsi.com. -inbound.mercedesofindy.com.netsolmail.net. -toolbar.live.com. -mozilla.mirrors.pair.com. -josephquevedony.com. -173.235.149.186.in-addr.arpa. -static.ak.fbcdn.net. -r.turn.com. -th190.photobucket.com. -hxidyo.com. -developers.facebook.com. -angelakisconstruction.com. -sp.cwfservice.net. -mothersbistro.com. -69.215.225.190.in-addr.arpa. -184.154.153.200.in-addr.arpa. -www.christiangr.com. -i4.ytimg.com. -41.180.211.189.in-addr.arpa. -photos-h.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -72.30.112.186.in-addr.arpa. -desmond.yfrog.com. -121.176.26.190.in-addr.arpa. -www.sve.uan.edu.mx. -www.listenarabic.com. -255.199.105.186.in-addr.arpa. -external.ak.fbcdn.net. -www.puritanas.com. -imgcdn.nrelate.com. -epriorityplus.com. -profile.ak.fbcdn.net. -angusstone.com. -34.6.30.189.in-addr.arpa. -freedomhouse.org. -www.belkin.com. -41.211.126.186.in-addr.arpa. -mfa.logonix.net. -engineering.slideshare.com. -riairwanty.multiply.com. -t3.gstatic.com. -s2.youtube.com. -szjd4uwey.y13i3i6s. -www.google.com. -www8.0zz0.com. -www.fazendavisconde.com.br. -231.254.114.186.in-addr.arpa. -l.longtailvideo.com. -www.bravotubecams.com. -s.youtube.com. -101.106.231.201.in-addr.arpa. -a.root-servers.net. -www.twitter.com. -hi-in.facebook.com. -www.hondacuajimalpa.com. -rm-steel.com. -mail.flashki-optom.ru. -www.brista.ca. -6me4qds1r.a63m3l0v. -ndt-market.ru. -12.237.1.190.in-addr.arpa. -digaz.ru. -253.5.178.189.in-addr.arpa. -mobile2.wsj.com. -i3.ytimg.com. -zh-cn.facebook.com. -winners.org. -www.wtp101.com. -img2.amateur-tube.us. -pedrocolmenero.wordpress.com. -photos-h.ak.fbcdn.net. -159.242.52.216.dnsbl.sorbs.net. -google.com. -safebrowsing.clients.google.com. -teredo.ipv6.microsoft.com. -youtu.be. -a7.sphotos.ak.fbcdn.net. -videos.webs.com. -20.147.188.206.in-addr.arpa. -a.root-servers.net. -connect.facebook.net. -jigsaw.w3.org. -download319.avast.com. -a2.sphotos.ak.fbcdn.net. -netzero.net. -gpsex.ru. -files.realmusic.ru. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -235.255.57.69.in-addr.arpa. -bridesdiary.com.au. -buy.gissn.com. -www.thailand4x4.com. -162.144.227.66.in-addr.arpa. -55.51.53.68.in-addr.arpa. -soundersfc.com.inbound15.mxlogic.net. -g.ceipmsn.com. -www.facebook.com. -google.com. -moshr.com. -gfx3.hotmail.com. -soccerfame.com. -a1.sphotos.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -mgtracker.org. -a.root-servers.net. -rinaco.com. -creative.ak.fbcdn.net. -content.yieldmanager.edgesuite.net. -a.root-servers.net. -a.root-servers.net. -iknowmedia.com. -us.mc1214.mail.yahoo.com. -www.autosusadosenmexico.com.mx. -pixelpnt.com. -ad.yieldmanager.com. -www.fisiovictoria.com. -www.facebook.com. -platform.twitter.com. -downsizemyspace.com. -a5.sphotos.ak.fbcdn.net. -www.nyxcosmetics.com.hk. -freenet.de. -docs.miktex.org. -yaponiya.ru. -b-0.19-210ac449.8031581.1518.19d4.3ea1.410.0.6nq2knidpg7w48lng5lcdu9w1t.avqs.mcafee.com. -i2.ytimg.com. -aikikai.ru. -simardelectric.com. -www.facebook.com. -www.sonymusic.com. -oteropictures.blogspot.com. -profile.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -_vlmcs._tcp. -d2jsycj2ly2vqh.cloudfront.net. -therapservices.net. -answers.hackaday.com. -www.pegandolealoseguro.com. -www.getin2china.com. -mx2.th.fujikura.com. -ad.metanetwork.com. -www.youtube.com. -i2.ytimg.com. -si0.twimg.com. -52.4.123.129.in-addr.arpa. -www.programasgratiz.com. -mx.mvfintry.com. -sp.cwfservice.net. -www.facebook.com. -natkeepalive.voice.yahoo.com. -a.root-servers.net. -photos-c.ak.fbcdn.net. -www.billionairewoman.com. -165.2.247.109.in-addr.arpa. -www.google-analytics.com. -czert.org. -feeds.bbci.co.uk. -answer-lab.com.s7b2.psmtp.com. -a.root-servers.net. -ipm.avira.com. -ctsmx.com. -www.youtube.com. -www.spurl.net. -sphinx.stic.co.kr. -rpobrien.com. -s.youtube.com. -accounts.google.com. -www.everything-about-concrete.com. -junkcharts.typepad.com. -www.conceptoradial.com. -163.205.113.177.in-addr.arpa. -193.216.16.190.in-addr.arpa. -www.bancofrances.com.ar. -dsjkoprtr7844.biz. -files.fatakat.com. -a.root-servers.net. -toymania.com. -s-static.ak.fbcdn.net. -server3.lengiprorechtrans.ru. -news.google.com.mx. -www. -facebook.conduit-services.com. -fieldnotes.msnbc.msn.com. -sites.google.com. -es-la.facebook.com. -baita.com. -au.travel.yahoo.com. -a.root-servers.net. -tdc.co.tt. -i1.ytimg.com. -www.adult.toonsearch.net. -www.gritosdelibertad.org. -127.214.165.190.in-addr.arpa. -id.google.es. -business.twitter.com. -dl-client365.dropbox.com. -photos-a.ak.fbcdn.net. -google.com. -www.theautomedia.com. -b._dns-sd._udp.lan. -clcrolla.com. -www.google.com. -photos-a.ak.fbcdn.net. -hbtele.com. -hotmail.com. -ssl.gstatic.com. -planettirecableties.com. -187.197.124.84.in-addr.arpa. -be2.int.pochta.ru. -a.root-servers.net. -col.stb00.s-msn.com. -usersystem783aa.ru. -it.rinsemymusic.com. -buttons.googlesyndication.com. -78.217.144.187.in-addr.arpa. -hi-in.facebook.com. -8.28.57.187.in-addr.arpa. -news.google.com.mx. -92.136.8.200.in-addr.arpa. -titanium30-en.url.trendmicro.com. -14.228.247.131.in-addr.arpa. -108.87.8.201.in-addr.arpa. -www.ubergizmo.com. -www.grupodmrh.vagas.com.br. -pomerleauins.com. -forex-trading-signal-fx.kolorowa-kraina.com.pl. -vdnryd.com. -i4.ytimg.com. -42.251.88.184.in-addr.arpa. -www.thezia.edu.mx. -idmd.com. -checkip.dyndns.org. -pinoylovers.com. -165.102.68.201.in-addr.arpa. -mx99.elive.nl. -www.statcounter.com. -ads.towniecentral.com. -mail.subwayak.com. -c.prodigy.msn.com. -g.s.openwalls.net. -shapkitut.ru. -www.bilkent.edu.tr. -. -195.212.153.186.in-addr.arpa. -sta.ru. -byerlyinc.com. -photos-d.ak.fbcdn.net. -www.epicbot.com. -ad.yieldmanager.com. -labs.ebay.com. -parroquiasanjeronimo.files.wordpress.com. -sites.google.com. -d7.zedo.com. -api.geo.kontagent.net. -vi.y8.com. -251.41.74.187.in-addr.arpa. -api-read.facebook.com. -database.clamav.net. -180.106.50.201.in-addr.arpa. -237.248.9.201.in-addr.arpa. -creative.ak.fbcdn.net. -a996.mm1.akamai.net. -www.hollyan.com. -scribe.twitter.com. -109.110.153.189.in-addr.arpa. -124.17.104.41.in-addr.arpa. -honduras.paginasamarillas.com. -content.ak.metrogames.com. -verizon.net. -ocsp.verisign.com. -isabela.olx.com.ph. -ramsayhealth.com. -techtribe.com. -api-read.facebook.com. -3-cats.ru. -a4.sphotos.ak.fbcdn.net. -www.facebook.com. -www.bricopinta.com. -138.143.240.189.in-addr.arpa. -numerologia.euroresidentes.es. -creatividad.espacioblog.com. -253.76.27.187.in-addr.arpa. -www.zentai-zentai.com. -inbound.netwirelessllc.com.netsolmail.net. -google.com. -171.237.88.74.in-addr.arpa. -2ch.net. -external.ak.fbcdn.net. -edinstvo62.ru. -www.dishant.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -connect.facebook.net. -cdn.tynt.com. -150.238.18.186.in-addr.arpa. -194.120.76.95.in-addr.arpa. -av59.ru. -creative.ak.fbcdn.net. -gatoquepesca.blogspot.com. -101.151.104.112.in-addr.arpa. -s2.youtube.com. -voipb.sip.yahoo.com. -google.com. -a.root-servers.net. -smsmt.com.s9b1.psmtp.com. -a.root-servers.net. -www.gstatic.com. -iou.com. -245.143.245.92.in-addr.arpa. -80.244.51.190.in-addr.arpa. -dnl-01.geo.kaspersky.com. -178.206.243.201.in-addr.arpa. -cs5247.vk.com. -a.root-servers.net. -dns.msftncsi.com. -widgets.amung.us. -translate.googleapis.com. -searchjs.s3.amazonaws.com. -1.156.14.190.in-addr.arpa. -www.evalapelicula.com. -profile.ak.fbcdn.net. -. -kingedwardvi.devon.sch.uk. -248.93.228.91.in-addr.arpa. -d31qbv1cthcecs.cloudfront.net. -239.6.34.189.in-addr.arpa. -www.xenciclopedia.com. -a.root-servers.net. -safebrowsing.clients.google.com. -5.17.155.79.in-addr.arpa. -www.ivosoftware.com. -www.getmyspacelayouts.com. -api.twitter.com. -www.facebook.com. -169.242.74.201.in-addr.arpa. -a.root-servers.net. -twitter.com. -huntingdon.edu. -gs.a.sohu.com. -62.95.141.189.in-addr.arpa. -luz.edu.ve. -photos-f.ak.fbcdn.net. -235.89.252.189.in-addr.arpa. -sbx.com. -login.live.com. -firstcb.com. -time.nist.gov. -leonescolorados.blogspot.com. -mail.montgranite.com. -i3.ytimg.com. -32.5.12.189.in-addr.arpa. -s1-onenote.vo.msecnd.net. -212.34.227.189.in-addr.arpa. -gruposis.files.wordpress.com. -t.co. -psgw.t-mobilesgws.com. -116.5.240.189.in-addr.arpa. -25.23.215.89.in-addr.arpa. -a-0.19-220990c1.c060583.1518.19d3.3ea1.210.0.5371njcfppgpmlsgm2t5aci8cv.avqs.mcafee.com. -stun.client.akadns.net. -tcs.wisebrother.com. -50.83.168.189.in-addr.arpa. -local-sn.contacts.msn.com. -43.111.1.201.in-addr.arpa. -ropping.tv-asahi.co.jp. -www.jtfgtmo.southcom.mil. -profile.ak.fbcdn.net. -pixel.exelator.com. -a.root-servers.net. -googleads.g.doubleclick.net. -160.107.68.177.in-addr.arpa. -xslt.alexa.com. -54.179.59.122.in-addr.arpa. -www.carnivalspain.com. -pseudoplocephalus.blogspot.com. -www.youtu.be. -75.187.149.187.in-addr.arpa. -ak.chat.smileycentral.com. -m.ak.fbcdn.net. -5.249.33.187.in-addr.arpa. -beazsims.blogspot.com. -rikky.spb.su. -a1108.da1.akamai.net. -iclub.net.ru. -www.bluecoat.com. -www.angiesmovies.com. -208.68.209.190.in-addr.arpa. -dns.msftncsi.com. -a.root-servers.net. -ecetia.com. -www.facebook.com. -24.68.167.190.in-addr.arpa. -a.root-servers.net. -fatmanonakeyboard.blogspot.com. -photos-g.ak.fbcdn.net. -real-steel.ru. -xzeitutorialesx.api.channel.livestream.com. -www.jugarpokerenlinea.com. -90.121.55.65.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.es.fm. -plusone.google.com. -finalfantasyversusxiii.es. -www.inpsasel.gob.ve. -lb.wordpress.com. -sacven.org. -a.root-servers.net. -jv3inks.com. -www.pharmaton.nl. -cf.ads.kontextua.com. -ltdunlimited.com. -www.midweek.com. -loading2.widdit.com. -r._dns-sd._udp.lan. -. -www.hotgames.com. -goldrush.net. -kb.mediatemple.net. -173.110.101.189.in-addr.arpa. -sim7441.agni.lindenlab.com. -www.gfrevenge.com. -153.126.107.190.in-addr.arpa. -www.happysexgames.com. -isohunt.com. -7.123.182.186.in-addr.arpa. -shorouknews.com. -profile.ak.fbcdn.net. -clock.fmt.he.net. -www.thevipguide.net. -after.com.mx. -eu.wikipedia.org. -www.blogesfera.com. -tiweb.net. -a1.sphotos.ak.fbcdn.net. -isatap.mshome.net. -media.gobackpacking.com. -developers.facebook.com. -redfaceplus.com. -fec-committees.findthedata.org. -dark-desert-highway.blogspot.com. -www.parentalcontrolbar.org. -omnicustomconcepts.com. -digimarc.com. -mothership.co.nz. -shared.live.com. -237.33.152.213.in-addr.arpa. -billing.sharo4ka.ru. -ego.ru. -commview-for-wifi.en.softonic.com. -s.youtube.com. -pixel.facebook.com. -176.232.192.199.in-addr.arpa. -sup.live.com. -102.108.65.74.in-addr.arpa. -www.sapa.org.mx. -250.13.175.71.in-addr.arpa. -spam.advancedrecyclingtechnology.com. -cdn.api.twitter.com. -140.151.228.67.in-addr.arpa. -8.133.127.200.in-addr.arpa. -xyzeor7wn.66gy. -www.xnxx.com. -13.51.30.76.in-addr.arpa. -img.babylon.com. -www.nicolapotts.com. -fbcdn-sphotos-a.akamaihd.net. -s2.youtube.com. -fxfeeds.mozilla.com. -a8.sphotos.ak.fbcdn.net. -182.75.245.189.in-addr.arpa. -tunnel.cfw.trustedsource.org. -www.limepro.org. -www.eldesblogue.com. -join.mywifesmom.com. -lazurny-bereg.ru. -www.facebook.com. -s.youtube.com. -64.106.55.95.in-addr.arpa. -173.182.108.186.in-addr.arpa. -photos-d.ak.fbcdn.net. -titanium30-en.url.trendmicro.com. -alliedmedassoc.com. -225.183.166.190.in-addr.arpa. -newsletter.catererglobalmail.com. -stomperauto.com. -s10.histats.com. -ad-g.doubleclick.net. -a.root-servers.net. -www.facebook.com. -17.12.52.186.in-addr.arpa. -www.brigite.com. -citylifeltd.ru. -victory.com. -sim-im.org. -53.248.188.203.in-addr.arpa. -www.mujeresdeempresa.com. -k3a.me. -southcom.com.au. -ship-simulator.programas-gratis.net. -update.epyte.com. -partner.googleadservices.com. -alenet.com. -sp.cwfservice.net. -118.136.31.186.in-addr.arpa. -tmss.trendmicro.com. -s-static.ak.fbcdn.net. -time.nist.gov. -apps.facebook.com. -www.ajodo.org. -a.root-servers.net. -www.update.microsoft.com. -www.propane-generators.com. -mail2.astri.org. -baymsg1010825.gateway.messenger.live.com. -mail.samzas.ru. -extrahaus.ee. -trophy.ww.np.community.playstation.net. -194.186.41.177.in-addr.arpa. -mtk.katowice.pl. -a.root-servers.net. -cdn.api.twitter.com. -a.root-servers.net. -16.23.79.190.in-addr.arpa. -telfor.pt. -www.juicypark.com. -156.201.236.190.in-addr.arpa. -souzacosta.com.br. -74.230.195.176.in-addr.arpa. -social.bidsystem.com. -mail.mcmolds.com. -www.gellnerism.de. -rad.msn.com. -249.170.28.190.in-addr.arpa. -msnia.login.live.com. -loading1.widdit.com. -3.66.248.189.in-addr.arpa. -blog-francia.com. -a3.sphotos.ak.fbcdn.net. -sim7783.agni.lindenlab.com. -13.232.8.200.in-addr.arpa. -mail2.mylink.co.za. -www.movistar.com.mx. -id.google.com.mx. -blog.softonic.com. -batsonassoc.com. -_738_71_9. -o5. -hypem.tumblr.com. -dterm.com. -accounts.google.com. -a.root-servers.net. -telepienso.wufoo.com. -17.13.233.201.in-addr.arpa. -freakflakes.angelmecanico.com. -d2104492.xoom.it. -sp.cwfservice.net. -j.techgsm.com. -200.19.250.84.in-addr.arpa. -ocsp.godaddy.com. -herbank.com.s6b1.psmtp.com. -cdt.org. -www.facebook.com. -www.facebook.com. -a1.sphotos.ak.fbcdn.net. -sn3.mailshell.net. -i273.photobucket.com. -pic4.bai.sohu.com.cn. -252.96.244.189.in-addr.arpa. -www.facebook.com. -pixel.everesttech.net. -cabworks.com. -a.root-servers.net. -mm1.curtiscirc.com. -rabota-kms.ru. -fairy-games.dressupgames8.com. -safebrowsing-cache.google.com. -www.antoniograndiodopico.es. -www.facebook.com. -a.root-servers.net. -241.25.82.190.in-addr.arpa. -photos-b.ak.fbcdn.net. -203.21.94.208.in-addr.arpa. -25.119.220.189.in-addr.arpa. -www.strawberryfields.net. -248.11.159.189.in-addr.arpa. -pixel.facebook.com. -vkontakte.ru. -static.ak.fbcdn.net. -emltrk.com.multi.surbl.org. -2.bp.blogspot.com. -js2.wlxrs.com. -50.203.80.190.in-addr.arpa. -50.36.199.71.in-addr.arpa. -barracuda.alamo1.com. -taconicchevrolet.com. -b._dns-sd._udp.home. -www.aciprensa.com. -www.v2music.com. -2.56.206.190.in-addr.arpa. -www.primeraplana.com.co. -fbcdn-photos-a.akamaihd.net. -tc20.easythumbhost.com. -ksn1-12-part1.kaspersky-labs.com. -sites.google.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -sxsoft.ru. -www.bayheights.com. -carltonfoster.com. -accs-net.com. -molehillgroup.com. -175.175.176.114.in-addr.arpa. -78.101.190.190.in-addr.arpa. -www.animesv.com. -marbiopharm.nid.ru. -www.googleapis.com. -_136_83_8. -bestmanager.rags.ru. -register.iomegacloud.com. -static.ak.fbcdn.net. -profile.ak.fbcdn.net. -36.188.218.188.in-addr.arpa. -creative.ak.fbcdn.net. -51.52.249.190.in-addr.arpa. -a.root-servers.net. -www.youlikehits.com. -www.vb-helper.com. -www.snapper.com. -au.adserver.yahoo.com. -www.vintagesexclub.com. -13.28.14.82.in-addr.arpa. -www.cellfun.info. -archivoslb2.minijuegostop.com.mx. -creative.ak.fbcdn.net. -:kdziv:14.g44c7m1w. -cdn.api.twitter.com. -pixel.facebook.com. -metrics.apple.com. -201.215.80.80.in-addr.arpa. -video.cloudfront.autoexpress.co.uk. -internet.cgocable.net. -130.24.80.69.in-addr.arpa. -best-colon-cleanse-reviews.com. -r1-ads.ace.advertising.com. -usersystem783aa.ru. -google.com. -m.facebook.com. -x2kcha7v3.56hk. -mail.ammann.co.uk. -176.218.142.190.in-addr.arpa. -www.acasatv.ro. -mail.sspp.ru. -224.112.4.190.in-addr.arpa. -photos-c.ak.fbcdn.net. -any-world.ngd.ysm.yahoodns.net. -profile.ak.fbcdn.net. -asotrack2.fluentmobile.com. -burbankwhittemore.com. -234.202.111.212.in-addr.arpa. -nationwide.com. -a.root-servers.net. -mail.pkokprf.ru. -forums.graaam.com. -6.21.129.50.in-addr.arpa. -a.root-servers.net. -ssl.gstatic.com. -242.242.111.190.in-addr.arpa. -www.bravotube.net. -www.youtube.com. -73.233.18.177.in-addr.arpa. -rt.legolas-media.com. -www.sarahdavis.com.au. -kp.incompany.ru. -thelennoxx.files.wordpress.com. -www.addthis.com. -kr.yahoo.com. -static.ak.fbcdn.net. -18.127.4.190.in-addr.arpa. -111.16.153.189.in-addr.arpa. -external.ak.fbcdn.net. -simsdescargas.com. -lostangelesca.tumblr.com. -a1003.w41.akamai.net. -profile.ak.fbcdn.net. -img3.kuwo.cn. -dns.msftncsi.com. -ice-watch.com. -infieleschile.es.tl. -0-jk-w.channel.facebook.com. -loading321.com. -dsn12.d.skype.net. -67.16.190.72.in-addr.arpa. -mail.younameitspecialties.com. -gamebt.ali213.net. -652.talkgadget.google.com. -ad.smowtion.com. -redesycominformal.blogspot.com. -gamehall11.3g.qq.com. -www.facebook.com. -27.180.158.187.in-addr.arpa. -www.winkeyfinder.com. -update.eset.com. -yahoo.com. -a2.sphotos.ak.fbcdn.net. -60.32.139.189.in-addr.arpa. -164.147.246.201.in-addr.arpa. -189.59.168.200.in-addr.arpa. -crl.microsoft.com. -90.2.235.209.in-addr.arpa. -20.80.59.82.in-addr.arpa. -seroesdaines.blogspot.com. -6fdvkyhlv.09ty. -blst.msn.com. -72.132.176.186.in-addr.arpa. -ad.doubleclick.net. -0-278.channel.facebook.com. -plus.google.com. -katemiddletonfan.co.uk. -time-nw.nist.gov. -www.facebook.com. -google.com. -www.united-internet.com. -gs-loc.isg-apple.com.akadns.net. -153.113.233.118.in-addr.arpa. -www.phpexpertsforum.com. -dixonvision.com. -www.refurbished-notebooks.de. -falabella.com.pe. -hits.e.cl. -webcache.googleusercontent.com. -161.2.10.187.in-addr.arpa. -lshallmark.com. -safebrowsing.clients.google.com. -rapidssl-crl.geotrust.com. -www.yout. -s-static.ak.facebook.com. -hexane.bluejava.net. -2pp5qdw4w.y15f4m2x. -www.cywex.com. -rad.msn.com. -wholinkstome.com. -3.bp.blogspot.com. -www.vspor.com. -nniline.naver.com. -i3.ytimg.com. -a.root-servers.net. -rules.securestudies.com. -fidohitop.ca. -hi-in.facebook.com. -google.com. -xxxvideos.sso9523.com. -164.124.162.190.in-addr.arpa. -www.google-analytics.com. -250.219.141.62.in-addr.arpa. -twincitygroup.com.inbound20.mxlogicmx.net. -www.mydearjenn.com. -cclc.com.inbound15.mxlogic.net. -www.yahoo.com. -www.avgthreatlabs.com. -lugano.com. -cri8yysa5.85fy. -yahoo.com. -www.loaddl.com. -s.ist1-1.filesor.com. -www.google.com. -www.mvanime.com. -51.116.126.70.in-addr.arpa. -www.whcc.com. -www.bdr130.net. -cpm.biz. -thevoice.wikia.com. -www.m5zn.com. -external.ak.fbcdn.net. -elhobo.ru. -124sjlb1p.06qy. -clientlog.users.conduit.com. -www.yahoo.com. -102.101.61.99.in-addr.arpa. -creative.ak.fbcdn.net. -profile.ak.fbcdn.net. -157.139.79.187.in-addr.arpa. -77u:w8p65.y62b4c9r. -e-surance.ru. -106.245.48.190.in-addr.arpa. -apps.facebook.com. -painewetzel.com. -graycalhoun.com. -mail.groupe-ldi.com. -www.cinetux.org. -js.admeld.com. -translate.google.com. -luther-veno.com. -sm.pemex.com. -www.ldelectura.com. -ssl.gstatic.com. -facebook.blurtit.com. -s2.youtube.com. -talk.google.com. -bs.serving-sys.com. -108.66.173.58.in-addr.arpa. -www.youtube.com. -probitycr.com. -underground-land.blogspot.com. -external.ak.fbcdn.net. -static.ak.fbcdn.net. -citigrove.com. -pantelis.co.uk. -s2.youtube.com. -175.71.63.71.in-addr.arpa. -apis.google.com. -esp.cr.usgs.gov. -www.encuentra.gob.mx. -229.235.124.186.in-addr.arpa. -67.65.213.201.in-addr.arpa. -196.21.39.187.in-addr.arpa. -www2.esmas.com. -a1003.w41.akamai.net. -215.233.90.80.in-addr.arpa. -www.slicingpsdtohtml.com. -www.quadratin.com.mx. -news.keralakaumudi.com. -download.windowsupdate.com. -sqhkcpsmu.91cc. -. -www.google.com. -www.diacono.cl. -photos-c.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -api.cloudsponge.com. -skynet.be. -89.68.104.189.in-addr.arpa. -forums.ereplacementparts.com. -susangaer.com. -_466_60_9. -mtwerweb.com. -244.171.86.74.zen.spamhaus.org. -jailbreakmatrix.com. -pixel.facebook.com. -accounts.google.com. -229.15.157.201.in-addr.arpa. -www.sandos4u.com. -w3fp.arizona.edu. -auto-deflectors.com. -226.127.63.200.in-addr.arpa. -sites.google.com. -surfacemag.com. -stats.wordpress.com. -linkhelp.clients.google.com. -65.55.62.189.in-addr.arpa. -s-static.ak.fbcdn.net. -42.26.132.190.in-addr.arpa. -user.easyn.cn. -www.microscopy.fsu.edu. -i.creativecommons.org. -_891_19_1. -analytics.binarysolutions.biz. -fb.com. -dns194.a.register.com. -banners.webmasterplan.com. -photos-a.ak.fbcdn.net. -x.tagstat.com. -docs.google.com. -t0.gstatic.com. -dns.msftncsi.com. -44.63.111.87.in-addr.arpa. -profile.ak.fbcdn.net. -r._dns-sd._udp.lan. -twitter.com. -ftp.us.dell.com. -t2.gstatic.com. -a8.sphotos.ak.fbcdn.net. -creativecommons.org. -berrycoder.com. -123.254.56.190.in-addr.arpa. -www.hormiga.org. -gentenotable.com. -www.dmedicina.com. -arjunaardagh.com. -msn.toutelatele.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -teredo.ipv6.microsoft.com. -44.245.172.201.in-addr.arpa. -s-static.ak.fbcdn.net. -nl.y8.com. -a.erectopatentpothunter.com. -31.179.253.201.in-addr.arpa. -113.163.56.186.in-addr.arpa. -safebrowsing.clients.google.com. -infoway.ru. -72.99.205.112.in-addr.arpa. -pagead2.googlesyndication.com. -evidence.uche.org. -i1.ytimg.com. -gayforjohnnydepp.com. -www.drumming.com. -www.xor-motors.com. -0-0.qlty.finarea.ch. -qpfhg2ucf.13jp. -www.miedoescenico.com.mx. -www.accequip.com. -ocsp.verisign.com. -a-0.19-21098081.9050583.1518.19d3.2f4a.210.0.p99c86uikwh4wwpwi6nsbf1vq6.avqs.mcafee.com. -225.103.156.189.in-addr.arpa. -cdn.api.twitter.com. -alert.services.conduit.comalerts. -photos-c.ak.fbcdn.net. -ksn4.kaspersky-labs.com. -236.66.81.186.in-addr.arpa. -136.194.129.189.in-addr.arpa. -190.243.61.200.in-addr.arpa. -163.91.75.187.in-addr.arpa. -www.pararegalar.com. -mx01.ancara.net. -www-cctld.l.google.com. -scripts.downloadroute.com. -actualizacionesturismo.blogspot.com. -graph.facebook.com. -cibcommunications.co.uk. -photos-g.ak.fbcdn.net. -227.24.207.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -leycite.com. -ssl.gstatic.com. -networld.com. -d3lvr7yuk4uaui.cloudfront.net. -ws.audioscrobbler.com. -www.ador.state.al.us. -111.111.75.201.in-addr.arpa. -cbre.com. -www.stadt-koeln.de. -179.126.4.190.in-addr.arpa. -169.82.15.74.in-addr.arpa. -www.milonic.com. -www.coolarcade.org. -pixel.facebook.com. -108.139.103.177.in-addr.arpa. -152.140.23.187.in-addr.arpa. -70.43.15.187.in-addr.arpa. -www.espacioeuropa.eu. -lh3.googleusercontent.com. -a2.sphotos.ak.fbcdn.net. -162.192.0.79.in-addr.arpa. -124.31.240.201.in-addr.arpa. -crossfitmobile.blogspot.com. -humanitarianbowl.com. -s.ytimg.com. -t1.gstatic.com. -profile.ak.fbcdn.net. -244.132.82.190.in-addr.arpa. -t1.gstatic.com. -embed.dada.net. -208.27.212.89.in-addr.arpa. -www.thecures.info. -ddm-payment.wooga.com. -www.google.com. -112.76.154.186.in-addr.arpa. -api.megaapi.com. -a.root-servers.net. -a.ads2.msads.net. -profile.ak.fbcdn.net. -dessy.ru. -virus-x-world.blogspot.com. -dnl-01.geo.kaspersky.com. -avatar.nimbuzz.com. -a2.sphotos.ak.fbcdn.net. -puls.omsk.su. -jaxxmfg.com. -fotmobapi.s3.amazonaws.com. -www.sparkdream.net. -126.245.36.186.in-addr.arpa. -117.9.129.189.in-addr.arpa. -necessitation.option.wisher.net. -pelis8.blogspot.com. -oceaneconsulting.com. -dtxtngytz5im1.cloudfront.net. -113.232.214.189.in-addr.arpa. -ns4.p26.dynect.net. -clients1.google.com. -www.blogger.com. -habichuelasmagicas.wordpress.com. -159.188.8.200.in-addr.arpa. -toolbar.zynga.com. -s-static.ak.facebook.com. -www.facebook.com. -t0.gstatic.com. -www.grupoalianzaempresarial.com. -hostmyimage.org. -ksn2-12.kaspersky-labs.com. -api.facebook.com. -20minutos.feedsportal.com. -158.24.75.190.in-addr.arpa. -google.com. -49-courier.push.apple.com. -a1459.phobos.apple.com.edgesuite.net. -223.165.50.190.in-addr.arpa. -www.escueladigital.com.uy. -crl.globalsign.net. -www.google.com. -27.249.153.186.in-addr.arpa. -a1656.phobos.apple.com. -img168.imageshack.us. -www.google.com. -tuttipazziperilgossip.blogspot.com. -time.chttl.com.tw. -star.facebook.com. -www.xatech.com. -search.bearshare.com. -mirocine.net. -www.wildpee.com. -fbcdn-photos-a.akamaihd.net. -33.219.171.201.in-addr.arpa. -soroc.com. -www.facebook.com. -maktoob.omg.yahoo.com. -losangeles.craigslist.org. -www.flickr.com. -www.howtodownloadmusic.net. -ksn2-12.kaspersky-labs.com. -3.bp.blogspot.com. -www.df.cl. -mx.airbits.net. -inv75-2-82-229-190-6.fbx.proxad.net. -ec.atdmt.com. -mx3.altour.com. -viewer.office.naver.com. -connect.facebook.net. -a221.phobos.apple.com. -a3.sphotos.ak.fbcdn.net. -www.nanex.net. -naw7gw:sk.v17e3g5g. -chloesnails.blogspot.com. -29.media.tumblr.com. -ruinnation.com. -www.mozilla.org. -www.creandoprosperidad.es. -runofeari08.blogdiario.com. -8.64.210.201.in-addr.arpa. -www.facebook.com. -zh-cn.facebook.com. -updatekeepalive.mcafee.com. -stream-tv.softonic.com. -rw6ekuv6i.10yj. -66.66.170.82.in-addr.arpa. -69.131.138.201.in-addr.arpa. -google.com. -hardincountybank.com.s7b1.psmtp.com. -chubov.ru. -119.121.142.187.in-addr.arpa. -7.26.133.189.in-addr.arpa. -www.zynga.com. -51.242.79.190.in-addr.arpa. -data1.vod.itc.cn. -ui.skype.com. -www.healthinnumbers.com. -s2.youtube.com. -ksn1-11-part1.kaspersky-labs.com. -twitter.com. -it-it.facebook.com. -www.overstone57.com. -www.kayak.com. -151.134.252.190.in-addr.arpa. -andymwilliams.com. -a5.sphotos.ak.fbcdn.net. -www.facebook.com. -krtec.tgc-9.ru. -197.214.204.200.in-addr.arpa. -a756.l.akamai.net. -orcart.facebook.com. -safebrowsing.clients.google.com. -217.211.64.187.in-addr.arpa. -193.93.205.71.in-addr.arpa. -www.newforo.org. -a.root-servers.net. -22.1.203.200.in-addr.arpa. -cdn.api.twitter.com. -pixel.facebook.com. -time.nist.gov. -girlytattoosforgirls.com. -ht.com. -eisbrecher.musicload.de. -hash.orbitdownloader.com. -tuxtor.shekalug.org. -mentalized.net. -a.root-servers.net. -www.stopbadware.org. -252.96.186.79.in-addr.arpa. -hicksholdings.com. -jlcaravias.files.wordpress.com. -z4khime.tumblr.com. -sedmikrasky.blogspot.com. -a.root-servers.net. -rospres.com. -214.27.172.220.in-addr.arpa. -plus.google.com. -cr1-lon.tudor.com. -tmx.technoratimedia.com. -colegialashot.blogspot.com. -143.29.206.24.in-addr.arpa. -region-ttk.ru. -c247723.r23.cf1.rackcdn.com. -48.181.63.69.in-addr.arpa. -a.root-servers.net. -www.facebook.com. -safebrowsing.clients.google.com. -www.jacksonkatz.com. -www.cheapdesignerhandbagsnow.com. -200.1.168.192.in-addr.arpa. -87.27.131.187.in-addr.arpa. -a.root-servers.net. -apps.facebook.com. -mx1.caseware.com. -api.twitter.com. -a2.sphotos.ak.fbcdn.net. -test.domainepublic.net. -www.viajaryestudiar.com. -ds.addthis.com. -19.52.136.175.in-addr.arpa. -121.122.196.205.in-addr.arpa. -www30.us.archive.org. -darlingtonvillage.org. -www.themasteraccount.com. -27.210.173.201.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -clicktrack.wnu.com. -www.materialsuzuki.com. -32.50.91.72.in-addr.arpa. -video.dailymail.co.uk. -www.shap.com.ar. -6d9kv54u3.w54t0q1m. -lb._dns-sd._udp.localdomain. -www.facebook.com. -photos-a.ak.fbcdn.net. -d2090058.xoom.it. -tech.by. -safebrowsing-cache.google.com. -rs138l3.rapidshare.com. -yareco.ru. -network.terra.com.mx. -u20.eset.com. -c7.zedo.com. -www.google.com. -duke.edu. -api.twitter.com. -www.beglar.com. -_885_84_1. -itunes.apple.com. -www.oneonlinegames.com. -rad.msn.com. -1.108.229.91.in-addr.arpa. -googleads.g.doubleclick.net. -158.82.230.190.in-addr.arpa. -www.estoesmarketing.com. -mx.itbu.ru. -msnads.vo.msecnd.net. -teredo.ipv6.microsoft.com. -m.y. -i4.ytimg.com. -ksn3-11.part2.kaspersky-labs.com. -4gks1zwr:.l38g4t6w. -163.141.88.186.in-addr.arpa. -push.apple.com. -a3.sphotos.ak.fbcdn.net. -www.daleonda.com. -193.105.85.123.in-addr.arpa. -www.isg-apple.com.akadns.net. -hamd.co.uk. -amira-budur.ru. -www.google.com. -www.vuu.com.au. -98.165.124.186.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -214.107.216.87.in-addr.arpa. -wpad.mshome.net. -youtubemusica.org. -vip.adminzu.com. -postmaster.ru. -mail2.marshallinstitute.com. -malah.biz. -www.ag-quienessomos.com.ar. -godfatherofgreenbay.xanga.com. -gfx.aftonbladet-cdn.se. -181.113.49.92.in-addr.arpa. -xrysanthema.gr. -194.89.103.201.in-addr.arpa. -2.by.dnsbl7.mailshell.net. -time.chttl.com.tw. -108.98.96.78.in-addr.arpa. -73.230.80.72.in-addr.arpa. -photos-d.ak.fbcdn.net. -a.root-servers.net. -js.wlxrs.com. -father.asahi-net.or.jp. -118.55.22.190.in-addr.arpa. -www.facebook.com. -kcowdin.com.s5b2.psmtp.com. -cineimperfecto.blogspot.com. -img.mediaplex.com. -a3.sphotos.ak.fbcdn.net. -www.biologiaonline.com.ar. -services.ticktockapps.com. -252.45.173.201.in-addr.arpa. -0-155.channel.facebook.com. -soundingometersecosasporlapolla.blogspot.com. -a5.sphotos.ak.fbcdn.net. -www.apple.com. -profile.ak.fbcdn.net. -neuf.fr. -a3.sphotos.ak.fbcdn.net. -mail.mypostcardprinting.com. -forums.support.roxio.com. -2bnkgpn59.x94r2o8x. -203.234.152.190.in-addr.arpa. -50.1.168.192.in-addr.arpa. -32.213.34.41.in-addr.arpa. -210.234.152.187.in-addr.arpa. -games.charlesayoub.com. -51.220.71.68.in-addr.arpa. -146.136.23.187.in-addr.arpa. -cm.netseer.com. -shorouknews.com. -129.234.124.186.in-addr.arpa. -www.youmoviz.com. -support.microsoft.com. -js.wlxrs.com. -bbs.msn.com.cn. -my-dvd-collection.ru. -www.the-samaritans.com. -profile.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -photos-f.ak.fbcdn.net. -partedeconfirmacion.blogspot.com. -242.7.39.82.in-addr.arpa. -premium.mookie1.com. -197.192.126.187.in-addr.arpa. -googleads.g.doubleclick.net. -a.root-servers.net. -www.clive-owen.org. -manuals.makeuseof.com.s3.amazonaws.com. -168.228.195.69.in-addr.arpa. -api.twitter.com. -s-external.ak.fbcdn.net. -www.edmondmom.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -smtp.tularik.com. -my.drujok.ru. -158.173.130.190.in-addr.arpa. -msn.com. -holttester.vo.msecnd.net. -_140_91_0. -a.root-servers.net. -126.142.177.189.in-addr.arpa. -pdq1.com. -magicdar.ru. -us.bc.yahoo.com. -a.root-servers.net. -profile.ak.fbcdn.net. -heydary.com.inbound10.mxlogic.net. -_390_86_1. -dns.msftncsi.com. -173.69.138.187.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -clarendon2.k12.sc.us. -flchsk.info. -35.92.22.190.in-addr.arpa. -latabernadeatb.blogspot.com. -a.root-servers.net. -de-de.facebook.com. -safebrowsing.clients.google.com. -www.blogger.com. -www.facebook.com. -d18txuuu339yuz.cloudfront.net. -i4.ytimg.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.youtube.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -26.245.205.87.in-addr.arpa. -08834c26.ultrafiles.net. -static.ak.facebook.com. -75.25.244.62.in-addr.arpa. -mailspool.citravel.com. -63.122.138.89.in-addr.arpa. -designsoftware.com. -mail.edcspringdale.com. -banners.adultfriendfinder.com. -teredo.ipv6.microsoft.com. -www.qsw11.com. -images.adultemart.com. -www.techsoup.org. -mail.gereaveseng.com. -fjbaehr.com. -20.249.83.66.in-addr.arpa. -196.155.209.190.in-addr.arpa. -it.wikipedia.org. -a.root-servers.net. -cdnedge.bbc.co.uk. -www.linomixandplay.com. -sn1msg2020234.gateway.messenger.live.com. -cdn-sec.tacoda.at.atwola.com. -preslavaonline.com. -smkonpunwtfsgsu.com. -4.2.2.187.in-addr.arpa. -fcs72-1.streamate.com. -8.81.210.186.in-addr.arpa. -ses.library.usyd.edu.au. -8.70.138.200.in-addr.arpa. -www.animewolken.nl. -e.apsalar.com. -pixel.facebook.com. -xocolatco.blogspot.com. -vyletel.com.s6b1.psmtp.com. -51fvyq9c6.15ej. -206.187.170.201.in-addr.arpa. -mail.google.com. -96.51.39.115.in-addr.arpa. -hr.cam4.com. -pl.business-listings.com. -img175.imagenar.com. -www.google.com. -platform.twitter.com. -38.29.203.68.in-addr.arpa. -219.23.193.200.in-addr.arpa. -photos-a.ak.fbcdn.net. -151.184.104.187.in-addr.arpa. -www.youtube.com. -mtalk.google.com. -www.colemangroup.com.au. -map.media6degrees.com. -www.facebook.com. -mail-relay1.dijit.net. -www.google-analytics.com. -168.169.132.190.in-addr.arpa. -gualdotadinoprimo.it. -40.227.237.85.in-addr.arpa. -112.67.84.200.in-addr.arpa. -16.97.92.200.in-addr.arpa. -www.beautyundercover.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -api-read.facebook.com. -louislautman.com. -tracker4.finalgear.com. -ccook1.plus.com. -anthonyyeung.ca. -www.softworld.com. -39.253.14.37.in-addr.arpa. -2.bp.blogspot.com. -caretta.ro. -njlwlwevrvontf.com. -www.buscadoresdedios.es. -mx.bowserelectronics.com. -members.multimania.co.uk. -www.oralb.co.uk. -bb.xml.slide.com. -nodropershex.in. -calendar.live.com. -a.root-servers.net. -77.245.168.78.in-addr.arpa. -static.atgsvcs.com. -pt.veoh.com. -www.pitstopmedia.com. -lucidm.ru. -www.youtube.com. -carqueixacesaryjuan.blogspot.com. -graph.facebook.com. -animet-movie.blogspot.com. -www.youtube.com. -68.245.58.201.in-addr.arpa. -www.moforacing.com. -filetterpress.com. -nt0.ggpht.com. -ndtserver1.newdaytechnology.com. -www.amazon.it. -www.google.com.mx. -trans-p2p.pandora.tv. -google.com. -229.143.37.190.in-addr.arpa. -hostposter.ru. -teredo.ipv6.microsoft.com. -a.root-servers.net. -s.youtube.com. -profile.ak.fbcdn.net. -cms.abmr.net. -mx.youtube.com. -aol.com. -googlemail.l.google.com. -m.hotmail.com. -www.facebook.com. -a.root-servers.net. -liveupdate.symantecliveupdate.com. -gfx2.hotmail.com. -www.elleinterior.se. -246.59.58.186.in-addr.arpa. -231.3.201.190.in-addr.arpa. -www.johanngonzalez.com. -data.flurry.com. -a.root-servers.net. -a.root-servers.net. -230.215.119.79.in-addr.arpa. -9.215.192.187.in-addr.arpa. -236.224.229.78.in-addr.arpa. -heritagetitleltd.com.inbound10.mxlogic.net. -londoncityairport.com. -g.live.com. -182.64.178.186.in-addr.arpa. -www.alan4.com. -download116.avast.com. -tunnel.web.trustedsource.org. -meeder.com. -signup.casualteensex.com. -dns.msftncsi.com. -253.249.107.186.in-addr.arpa. -secure.shared.live.com. -195.59.136.175.in-addr.arpa. -www.joegrossberg.com. -a.root-servers.net. -belotti.ru. -ocsp.entrust.net. -tc20.easythumbhost.com. -leshiygames.ru. -a.ads2.msads.net. -www.coolfreeimages.net. -www.moldesparachocolate.com. -164.140.74.76.in-addr.arpa. -dlvr.it. -132.166.52.190.in-addr.arpa. -0-jk-w.channel.facebook.com. -static.ak.fbcdn.net. -103.163.107.186.in-addr.arpa. -50.230.133.78.in-addr.arpa. -imbui.iminent.com. -mille-lacs.com. -177.82.125.74.query.bondedsender.org. -landsaver.net. -photos-d.ak.fbcdn.net. -nailstah.com. -rmafhtuhqbaayejpvlsy.so. -226.146.222.176.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -creative.ak.fbcdn.net. -www.facebook.com. -www.figfx.com. -mail.cloud9.net. -www.google-analytics.com. -duke-enery.com. -www.hotmail.com. -www.jobwinner.ch. -53.69.97.83.in-addr.arpa. -135.72.72.190.in-addr.arpa. -mail.fhacpa.com. -maps.google.com. -www.bcscta.ca. -a996.mm1.akamai.net. -simplynallely.blogspot.com. -homelan.bg. -cdn1.mundodastribos.com. -life-of-an-architecture-student.tumblr.com. -adwords.google.com. -external.ak.fbcdn.net. -sdgdthf.com. -www.napnanny.com. -horizonhealthcorp.com. -a.root-servers.net. -apis.google.com. -die-zivilisatoren.de. -c.speedtest.net. -hoffstrizz.typepad.com. -profile.ak.fbcdn.net. -connect.facebook.net. -dns.msftncsi.com. -a.root-servers.net. -bastamarine.com. -voipb.sip.yahoo.com. -203.17.228.89.in-addr.arpa. -www.facebook.com. -22.128.225.190.in-addr.arpa. -gmailblog.blogspot.com. -inbound.vietnamanztravel.com.netsolmail.net. -girlgames2you.com. -kwoff.com. -google.com. -56.116.223.189.in-addr.arpa. -directory.services.live.com. -www.terra.com.mx. -goodvibes.com.mx2.lanxpert.rcimx.net. -mail.tatabluescopesteel.com. -dryope.ru. -128.237.88.186.in-addr.arpa. -www.beautifulmag.eu. -rocky.com. -sweetestpersonblog.com. -a7.sphotos.ak.fbcdn.net. -l.yimg.com. -ibbgrefrathberlin.de. -s-static.ak.fbcdn.net. -www.facebook.com. -blog.gamescheatdirectory.com. -trabajo.com.mx. -udarnik-kam.ru. -simpsons-dvd.ru. -_011_38_0. -sites.google.com. -static.ak.connect.facebook.com. -210.5.141.188.in-addr.arpa. -inrca.it. -static.ak.fbcdn.net. -fbcdn-sphotos-a.akamaihd.net. -123.23.143.201.in-addr.arpa. -miip.es. -ce.lijit.com. -www.download.windowsupdate.com. -a.root-servers.net. -images03.olx.com. -www.autotrader.com.cy. -google.com. -ww2.asscleaners.com. -216.143.158.82.in-addr.arpa. -www.searchqu.com. -r.mzstatic.com. -189.1.168.192.in-addr.arpa. -chillingo-crystal.appspot.com. -lowcarbdiets.about.com. -mscrl.microsoft.com. -sociology.stanford.edu. -www10.spelar.org. -hkdmx01.flextronics.com. -80.11.201.187.in-addr.arpa. -www.lajollaplayhouse.com. -mail.google.com. -dutchlandinc.com.inbound35.mxlogicmx.net. -android.clients.google.com. -ffatl.com. -incredmail.vo.llnwd.net. -hkmdm.com. -peptidecalculator.com. -windowsphone.xbox.com. -www.facebook.com. -8gqmpgtte.63sp. -smart.cellflirt.com. -mail.cnbrown.com. -mx2.coelba.com.br. -photos-g.ak.fbcdn.net. -merapi.iconpln.net.id. -api-public.addthis.com. -bligoo.com. -47.29.95.190.in-addr.arpa. -79.102.22.190.in-addr.arpa. -toyotamaint.tekgroupweb.com. -konatools.ru. -www.facebuzz.com.look-for.us. -a.root-servers.net. -5-courier.push.apple.com. -a.root-servers.net. -www.ropa-bebe.com. -tfaballoy.com. -content.yieldmanager.edgesuite.net. -148.110.31.75.in-addr.arpa. -www.desimusic.com. -grupogondi.com. -bo.starmedia.com. -www.google-analytics.com. -teredo.ipv6.microsoft.com. -145.108.255.201.in-addr.arpa. -www.boobsfinder.com. -photos-f.ak.fbcdn.net. -menacestudios.com. -wikoff.com. -nfscross2010.co.cc. -basel.int. -download336.avast.com. -90.48.126.187.in-addr.arpa. -pixel.facebook.com. -nacionvampirica.foromx.org. -www.pni.org. -akha.org. -crow.ru. -www.conaleptabasco.edu.mx. -208.172.0.190.in-addr.arpa. -login.live.com. -jsu.dt07.net. -ns2.skybeam.com. -dns.msftncsi.com. -a.root-servers.net. -surtimoda.com. -s7.addthis.com. -ad.doubleclick.net. -38.45.122.186.in-addr.arpa. -yahoo.com. -time-b.nist.gov. -a1108.da1.akamai.net. -tags.bluekai.com. -gfx2.hotmail.com. -comunidad.multimedios.com. -44.117.95.190.in-addr.arpa. -www.radiofides.co.cr. -poolplayers.ca. -www.youtube.com. -www.google-analytics.com. -a.root-servers.net. -187.28.254.201.in-addr.arpa. -www.ascodevida.com. -seorider.ru. -154.11.6.186.in-addr.arpa. -r.mzstatic.com. -ditunney.com. -jabon-soap.blogspot.com. -pixel.quantserve.com. -translate.google.com.mx. -86.158.231.77.in-addr.arpa. -ds.serving-sys.com. -static.ak.fb. -static.ak.connect.facebook.com. -server51.appriver.com. -32.217.30.190.in-addr.arpa. -. -msn.com. -netsave.ru. -www.facebook.com. -intercolor-ink.com. -oneana.com. -db11.spamcatcher.net. -40.122.11.190.in-addr.arpa. -7.59.29.189.in-addr.arpa. -psgw.t-mobilesgws.com. -46.91.9.87.in-addr.arpa. -static.v3beta.buysellads.com. -arbitr.chita.ru. -16.1.168.192.in-addr.arpa. -tracker.bittorrent.am. -167.153.76.64.in-addr.arpa. -slsp.manpower.usmc.mil. -wjprx585h.y63k1m5n. -android.tweetmeme.com. -advertiser.doclix.com. -upwardrealty.com. -bestaility.monkey-sex.net. -action.web.ca. -www.mimejorfrase.biz. -227.105.134.115.in-addr.arpa. -www.peliculas-flv.com. -academics.tjhsst.edu. -46.191.54.65.in-addr.arpa. -twentysomethingadvice.blogspot.com. -ahni.com.s8a2.psmtp.com. -revelations.seriespepito.com. -cdn.lfstmedia.com. -interiormagz.com. -xvideos-395.vo.llnwd.net. -segment-pixel.invitemedia.com. -198.234.167.189.in-addr.arpa. -55.16.137.187.in-addr.arpa. -www.oppsofts.com. -d24w6bsrhbeh9d.cloudfront.net. -221.114.14.71.in-addr.arpa. -www.belkin.com. -cdn.buzznet.com. -photos-a.ak.fbcdn.net. -erhanmakas.blogspot.com. -s52.radikal.ru. -sp.cwfservice.net. -a995.mm1.akamai.net. -www.facebook.com. -sites.google.com. -consalting-secrets.ru. -exch-e.atdmt.com. -edition.cnn.com. -asktoolbar.weather.com. -twitter.com. -safebrowsing-cache.google.com. -accounts.google.com. -transeuro.ru. -csb-polimer.ru. -67.54.10.186.in-addr.arpa. -rockte.blogdiario.com. -www.lansteel.com. -s-static.ak.fbcdn.net. -70.76.139.210.in-addr.arpa. -google.com. -22.79.218.188.in-addr.arpa. -252.162.225.189.in-addr.arpa. -a.root-servers.net. -www.adobe.com. -us.mg4.mail.yahoo.com. -225.60.37.80.in-addr.arpa. -4.1.241.189.in-addr.arpa. -d2098285.xoom.it. -a4.sphotos.ak.fbcdn.net. -static.ak.connect.facebook.com. -199.80.146.187.in-addr.arpa. -sketchup.google.com. -27.48.58.201.in-addr.arpa. -www.pliactom.com. -www.jcbinternational.com. -static.ak.fbcdn.net. -pubads.g.doubleclick.net. -0.9083944.com. -187.180.200.189.in-addr.arpa. -www.eme-equis.com.mx. -santosneves.ifrance.com. -130.210.85.200.in-addr.arpa. -179.232.241.186.in-addr.arpa. -176.157.167.190.in-addr.arpa. -i.ebayimg.com. -rtb.tubemogul.com. -apps.facebook.com. -r._dns-sd._udp.0.3.168.192.in-addr.arpa. -tvsalesnet3.wordpress.com. -teredo.ipv6.microsoft.com. -static.ak.fbcdn.net. -51.27.189.190.in-addr.arpa. -titanium30-en.url.trendmicro.com. -insider.msg.yahoo.com. -focushh.blogspot.com. -sealine.com.s200a2.psmtp.com. -1.38.140.186.in-addr.arpa. -126.1.168.192.in-addr.arpa. -facemoods.com. -a1.sphotos.ak.fbcdn.net. -kfml.ru. -moscowbsl.ru. -www.google.com. -fbcdn-photos-a.akamaihd.net. -google.com. -toolbarqueries.google.com. -160.171.250.189.in-addr.arpa. -apps.facebook.com. -190.241.226.189.in-addr.arpa. -samchirnside.com. -www.gamexchange.co.uk. -fxfeeds.mozilla.com. -125.93.134.189.in-addr.arpa. -alerts.conduit-services.com. -247.138.61.83.in-addr.arpa. -a.root-servers.net. -resources.search.conduit.com. -www.soccerwallpaper.mackafe.com. -a3.sphotos.ak.fbcdn.net. -graph.facebook.com. -android.clients.google.com. -blog.macsales.com. -75.94.91.186.in-addr.arpa. -243.6.144.79.in-addr.arpa. -itunes.apple.com. -www.google.com. -rotg.gazprom.ru. -d2055212.instant.xoom.it. -gm. -ieonlinews.microsoft.com. -disneyfanscolombia.blogspot.com. -computerrepairservice.net. -glow.draw.spankapps.com. -www.belkin.com. -caulfield-glen-eira-leader.whereilive.com.au. -photos-h.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -bitly.com. -a.root-servers.net. -23.140.66.201.in-addr.arpa. -vitaltareasdacs.files.wordpress.com. -static.ak.fbcdn.net. -211.208.1.187.in-addr.arpa. -rover.ebay.com. -a1505.l.akamai.net. -208.215.174.190.in-addr.arpa. -145.10.251.85.in-addr.arpa. -negroprazers.blogspot.com. -secure.wlxrs.com. -podebradka.cz. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -mail2.khh.com. -apix.iminent.com. -www.google-analytics.com. -www.ford.com. -bernhard.as. -api.twitter.com. -lzb.ac.cn. -www.abeacha.com. -www.google.com.uy. -www.google.com. -83.232.48.65.in-addr.arpa. -a.root-servers.net. -114.204.168.192.in-addr.arpa. -utm.trk.mywebsearch.com. -app9976039262.socialappspot.com. -www.vankaizer.com. -107.146.220.66.in-addr.arpa. -50.90.138.98.zen.spamhaus.org. -tpb.tracker.thepiratebay.org. -4.220.90.186.in-addr.arpa. -hac.datafeed.weatherbug.com. -static.ak.fbcdn.net. -www.youtube.com. -pib.sagepub.com. -194.11.0.10.in-addr.arpa. -www.picnik.com. -aws.amazon.com. -a.root-servers.net. -ar.astrology.yahoo.com. -wingatenewtampa.com. -fuanimes.obolog.com. -142.6.62.186.in-addr.arpa. -dsn1.d.skype.net. -sormovo.ru. -mail.bioflora.com. -scat.nsk.su. -sites.google.com. -s-static.ak.fbcdn.net. -multiply.com. -46.218.131.187.in-addr.arpa. -t.15yule.com. -102.119.11.189.in-addr.arpa. -a1402.w40.akamai.net. -distilleryimage7.s3.amazonaws.com. -creative.ak.fbcdn.net. -theideabox.com. -alertpayments.org. -pixel.facebook.com. -track.brighteroption.com. -twitter.com. -xcdn.xgraph.net. -a1.sphotos.ak.fbcdn.net. -aitmx6.prodigy.net. -www.drdenimjeans.com. -cache.pack.google.com. -cdn1.differencebetween.com. -tpc-usa.com. -quadcmanagement.com. -evsecure-crl.verisign.com. -conntest.nintendowifi.net. -www.google.com. -www.thehotcars.com. -rad.msn.com. -facemoods.com. -a12.t26.net. -mx.mass.flexmail.ifxnetworks.com. -by2msg3010614.gateway.messenger.live.com. -uskh.com.s5a1.psmtp.com. -bt.newfiles.ge. -e-2dj6wjk4kicpocp.stats.esomniture.com. -www.reddit.com. -www.oscarvelazquez.es. -www.paulsibley.net. -isatap.home. -tradersrealty.com. -m.facebook.com. -a.root-servers.net. -share.meebo.com. -www.col.org.pe. -cineland.it. -pagead2.googlesyndication.com. -se2ojnn17.g88r7d7y. -germinal.ru. -d24elmu442q75h.cloudfront.net. -30.117.11.189.in-addr.arpa. -ping.chartbeat.net. -28.183.109.84.in-addr.arpa. -toolbarqueries.google.com. -236.12.0.10.in-addr.arpa. -www.belkin.com. -profile.ak.fbcdn.net. -likemindsearch.blogspot.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -chat.facebook.com. -71.129.158.82.in-addr.arpa. -api.twitter.com. -www.smartglance.com. -www.alliedvisiontec.com. -mx.suddenlinkmail.com. -it-it.facebook.com. -229.118.206.190.in-addr.arpa. -www.get10up.com. -113.174.42.190.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -trace.geewa.ws. -photos-g.ak.fbcdn.net. -google.com. -mobth1213.photobucket.com. -beckson.com. -profile.ak.fbcdn.net. -tags.bluekai.com. -fcss.eslamoda.com. -t-ono.net. -safebrowsing.clients.google.com. -n:u2:aa6s.v73r9j6p. -www.attarikh-alarabi.ma. -platform.twitter.com. -resources3.deepdiscount.com. -76.218.35.189.in-addr.arpa. -oildompublishing.com.inbound15.mxlogic.net. -yahoo.com. -. -fbcdn-photos-a.akamaihd.net. -a7.sphotos.ak.fbcdn.net. -mail.greenfieldpartners.com. -mail.ibc-rus.ru. -sbcgloboel.net. -mail.hitechsyringes.com. -blr.vsnl.net. -135.113.68.201.in-addr.arpa. -content.yieldmanager.edgesuite.net. -www.myspaceeditor.it. -download828.avast.com. -66.17.85.98.in-addr.arpa. -165.1.172.201.in-addr.arpa. -college.sciences-po.fr. -apps.facebook.com. -static.fc2.com. -www.google.es. -i1.ytimg.com. -a.root-servers.net. -apps.facebook.com. -domobuilder.ru. -www.kiki18blog.com. -137.233.247.190.in-addr.arpa. -www.tmbg.com. -a.root-servers.net. -feeds.tversity.com. -www.facebook.com. -kanztov.ru. -barracuda.redcell.us. -bta.kz. -check4.facebook.com. -mail.homeshowroom.com.tr. -111.54.94.189.in-addr.arpa. -musica.nexos.com.mx. -s.youtube.com. -www.3dtvworld.com.au. -crl.microsoft.com. -cdn-mkt.wooga.com. -notlivialgreal.tk. -images.google.com. -localhost. -187.11.229.109.in-addr.arpa. -join.ruthblackwell.com. -hbl.com.s200a1.psmtp.com. -ajax.googleapis.com. -smart-link.ru. -230.102.199.190.in-addr.arpa. -gy7phhdv5.r77f0j0g. -api-read.facebook.com. -nrce.com.inbound10.mxlogic.net. -overlandwest.com. -exchange.upsales.ru. -s.xvideos.com. -19.63.235.190.in-addr.arpa. -groups.google.com.mx. -english.stackexchange.com. -www.google-analytics.com. -cdn.tynt.com. -gc76c5f21468d4c68.api.playtomic.com. -cdn.api.twitter.com. -sas.ru. -de-de.facebook.com. -skywork.ch. -www.autos.clarin.com. -214.174.138.187.in-addr.arpa. -www.dressyourbodytype.com. -ads.tlvmedia.com. -www.cyta.com.ar. -api.twitter.com. -sipexternal.clariant.com. -www.miauu.com. -pu.rs. -46.229.56.187.in-addr.arpa. -www.mozilla.com. -blog.touchmypixel.com. -display-kim.ru. -sjmneuro.com.s6a1.psmtp.com. -www.flightops.sita.aero. -www.bringitonmovie.com. -ad.amgdgt.com. -www.zuvik.com. -youtu.be. -tag.admeld.com. -rt.legolas-media.com. -s.ytimg.com. -appworld.blackberry.com. -ssl.gstatic.com. -20minutos.feedsportal.com. -a.root-servers.net. -rosgold.ru. -ds.serving-sys.com. -b.hardcorebattle.com. -photos-h.ak.fbcdn.net. -googleads.g.doubleclick.net. -heartagramania.blogspot.com. -www.redalyc.uaemex.mx. -a.root-servers.net. -_221_83_6. -creative.ak.fbcdn.net. -www.google.com. -mail2.southernautogroup.com. -cardiologygroup.com. -www.faceboo. -27.152.9.94.in-addr.arpa. -es.starmedia.com. -www.bized.co.uk. -tools.google.com. -richmondhabitat.org. -prod1.rest-notify.msg.yahoo.com. -shared.live.com. -rs274tl5.rapidshare.com. -rybinsk.info. -cache.pack.google.com. -235.112.109.75.in-addr.arpa. -m.addthisedge.com. -a5.sphotos.ak.fbcdn.net. -97.18.217.196.in-addr.arpa. -mail.google.com. -25.42.14.201.in-addr.arpa. -memesmansion.blogspot.com. -85.14.141.201.in-addr.arpa. -teredo.ipv6.microsoft.com. -www.umrg.com. -hotmail.vo.msecnd.net. -www.facebook.com. -www.youtube.com. -i.dailymail.co.uk. -es-es.facebook.com. -cdn.livestream.com. -relay.tyre.kirov.ru. -profile.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -dekstravel.ru. -p.searchpreview.de. -ia.wikipedia.org. -www.vollversion.de. -www.yahoo.com. -58.187.182.188.in-addr.arpa. -thegolfcartplaceinc.com. -sc2.rules.mailshell.net. -teredo.ipv6.microsoft.com. -mail.ekonpowdercoating.com. -r._dns-sd._udp.lan. -133.65.69.186.in-addr.arpa. -bslgroup.ru. -dns.msftncsi.com. -sugarsickness.tumblr.com. -www.google.com. -www.buzzflash.net. -s661.photobucket.com. -220.105.84.200.in-addr.arpa. -col.stc.s-msn.com. -couponbuddy.s3.amazonaws.com. -dfd3ef97bb2147a3cbd6aa7aa78e17.mail.outlook.com. -a.root-servers.net. -21.23.216.178.in-addr.arpa. -youtube-ui.l.google.com. -tecnologia.starmedia.com. -go.microsoft.com. -www.gsistore.com. -www.crashtest.com. -topics.nytimes.com. -lanashilosmania.blogspot.com. -a6.sphotos.ak.fbcdn.net. -frikimami.blogspot.com. -a.root-servers.net. -lfs-bruck.at. -sp.cwfservice.net. -a.root-servers.net. -saltillo.olx.com.mx. -arab-dance.com. -40.15.1.190.in-addr.arpa. -dodesign.net. -ads.yimg.com. -6.129.56.186.in-addr.arpa. -by2msg3020413.gateway.messenger.live.com. -graphicventuresinc.com. -118.132.162.189.in-addr.arpa. -googleads.g.doubleclick.net. -www.google.com. -137.109.61.174.in-addr.arpa. -89.1.168.192.in-addr.arpa. -api.twitter.com. -227.130.13.187.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -212.98.7.189.in-addr.arpa. -mailserver.fruchthof.net. -gw1.sektor74.ru. -58.128.236.116.in-addr.arpa. -translate.googleapis.com. -_909_24_0. -static.ak.fbcdn.net. -postech.ac.kr. -vcs2.msg.yahoo.com. -live.sekindo.com. -136.195.74.190.in-addr.arpa. -_417_93_3. -a1.sphotos.ak.fbcdn.net. -tradukka.com. -brothersoftextreme.ourtoolbar.com. -_138_63_9. -97.60.158.189.in-addr.arpa. -samsungmobile.accu-weather.com. -google.com. -profile.ak.fbcdn.net. -fgngztd59.62zp. -es-es.facebook.com. -54.48.234.189.in-addr.arpa. -northgeorgia.edu. -ic.tynt.com. -s.youtube.com. -partner.googleadservices.com. -visitors.uxcell.com. -www.historietasminimas.com. -es.wikipedia.org. -135.50.165.95.in-addr.arpa. -ads.smowtion.com. -t0.gstatic.com. -a.root-servers.net. -stainedglassa2z.com. -www1.flashgamehq.com. -l.addthiscdn.com. -www.ig.gmodules.com. -static.ak.fbcdn.net. -fs274.uploading.com. -herc.com. -audiojelly.com. -wvipctipad.ru. -ad.yieldmanager.com. -www.google.com. -www.iplay.ca. -a.root-servers.net. -platform.twitter.com. -googleads.g.doubleclick.net. -mail.waccamawcardiology.com. -static.xtravids.com. -smbz.wikia.com. -92.148.193.71.in-addr.arpa. -104.170.28.180.in-addr.arpa. -sel.ru. -226.43.35.187.in-addr.arpa. -cdn.mediafire.com. -profile.ak.fbcdn.net. -google.com. -www.hotline.travel. -img-cdn.mediaplex.com. -google.com. -nht-3.extreme-dm.com. -_853_04_6. -photos-g.ak.fbcdn.net. -149.46.75.201.in-addr.arpa. -d3lvr7yuk4uaui.cloudfront.net. -mamatriedinc.com. -www.facebook.com. -76.170.161.189.in-addr.arpa. -211.117.85.89.in-addr.arpa. -142.32.13.180.in-addr.arpa. -www.bankofalbania.org. -thumbs3.ebaystatic.com. -relay.voice.edge.messenger.live.com. -tb2000.ru. -apis.google.com. -www.ara.cat. -. -9.90.186.189.in-addr.arpa. -disosa-chemicals.com. -a672.g.akamai.net. -www.vamosapublicidad.com. -email.tww.net. -api.facebook.com. -multiplos.hotwords.es. -mail.contorgroup.ro. -bmp.in. -external.ak.fbcdn.net. -ad.yieldmanager.com. -www.7red.no. -estaticos.marca.com. -www.google.com. -ksn7-12.kaspersky-labs.com. -www.kpopgames.com. -lrco.com. -briarlane.ca. -www.home-theatre-systems.net. -dmail.com.lan. -caster.cricinfo.com. -249.196.160.190.in-addr.arpa. -221.127.213.190.in-addr.arpa. -www.google.com.mx. -widget-2d.slide.com. -c13.zedo.com. -mx.unionpress.net. -www.time.com. -www.facebook.com. -self-improvement.meetup.com. -219.151.176.190.in-addr.arpa. -www.construireenbretagne.com. -www.herbivoracious.com. -43.99.125.186.in-addr.arpa. -mail.zhongshi.com. -66zgr3ks1.y30u4p3e. -multi.xnxx.com. -105.191.143.187.in-addr.arpa. -clients1.google.com. -www.belkin.com. -196.51.69.190.in-addr.arpa. -imageshack.us. -acep.org.2.arsmtp.com. -ksdua.com. -i42.servimg.com. -www.fidodido.com. -photos-e.ak.fbcdn.net. -smtp.aol.com. -photos-f.ak.fbcdn.net. -www.google.com. -235.155.26.125.in-addr.arpa. -a.root-servers.net. -csi.gstatic.com. -www.blogsmithmedia.com. -photos-b.ak.fbcdn.net. -denverphone.com.2.0001.arsmtp.com. -www.zaman.com.tr. -elalijar.blogspot.com. -169.38.168.192.in-addr.arpa. -api-read.facebook.com. -www.tudiscovery.com. -sp.cwfservice.net. -balfourbeattyus.com. -mail.pokerodds.ru. -babia.net. -0.thekrazycouponlady.com. -translate.googleapis.com. -weather.service.msn.com. -62.185.230.190.in-addr.arpa. -www.stenchradio.com. -sp.cwfservice.net. -a.root-servers.net. -230.174.250.186.in-addr.arpa. -adserving.cpxinteractive.com. -newsletter.lyleandscott.com. -logv33.xiti.com. -profile.ak.fbcdn.net. -www.cph-artfestival.org. -bmsi.org. -heartbeat.belkin.com. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.blogsperu.com. -i2qk4wq4e.l25b5b3l. -a.root-servers.net. -ds.serving-sys.com. -profile.ak.fbcdn.net. -secure.traveladvertising.com. -creative.ak.fbcdn.net. -5.49.140.78.in-addr.arpa. -msc.wlxrs.com. -www.gaurijog.com. -smtp.live.com. -www.aguilas.tv. -i3.ytimg.com. -www.caymanwireless.com. -photos-b.ak.fbcdn.net. -media.admob.com. -www.google-analytics.com. -sharethis.com. -api.pinger.com. -239.222.228.190.in-addr.arpa. -bin-short.whatsapp.net. -slb.liveprofile.com. -markmurphycpa.com. -85.229.40.187.in-addr.arpa. -tools.google.com. -htsannupponew.tm. -novshadyan.com. -image.globalwaronline.com. -www.facebook.com. -fbcdn-sphotos-a.akamaihd.net. -178.223.184.79.in-addr.arpa. -developers.facebook.com. -soypichichita.blogspot.com. -imrk.com. -ad-dc2.adtech.de. -www.lawlib.state.ma.us. -www.facebook.com. -plusone.google.com. -apis.google.com. -android.clients.google.com. -www.theultimateboxingworkout.com. -a.root-servers.net. -a3.sphotos.ak.fbcdn.net. -_032_11_2. -s10179.netschools.com. -wfbssvc3.icrc.trendmicro.com. -static.ak.fbcdn.net. -momeni.com.inbound15.mxlogicmx.net. -www.humornegro.com. -sup.live.com. -wellspun-ec.com. -www.youtube.com. -www.ilightr.com. -ar-ar.facebook.com. -uu1.orbitdownloader.com. -www.lovelyshoes.net. -10.142.10.186.in-addr.arpa. -www.elements4health.com. -clients1.google.com. -js.xcar.com.cn. -myci.csuci.edu. -48.149.220.66.in-addr.arpa. -s2.youtube.com. -a2.sphotos.ak.fbcdn.net. -rad.msn.com. -53.38.55.94.in-addr.arpa. -vibratorvpope.ru. -googleads.g.doubleclick.net. -wpad. -bapp.n.shifen.com. -106.69.105.175.in-addr.arpa. -s7.addthis.com. -advertise.courant.com. -profile.ak.fbcdn.net. -potterfics.com. -ad.doubleclick.net. -bieberfile.tumblr.com. -tracker.marinsm.com. -us.data.toolbar.yahoo.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -clients2.google.com. -196.230.135.189.in-addr.arpa. -playerservices.streamtheworld.com. -bs.serving-sys.com. -twitter.com. -www.cnnc.com.cn. -photos-f.ak.fbcdn.net. -126.29.139.189.in-addr.arpa. -fyi.zerolost.org. -189.65.203.190.in-addr.arpa. -70.193.180.95.in-addr.arpa. -modjeski.com. -ucoz.com. -screen.yahoo.com. -img.mediaplex.com. -www.icono-computadoras-pc.com. -static.ak.fbcdn.net. -31.77.228.190.in-addr.arpa. -v6.cache5.c.youtube.com. -direct.weatherbug.com. -thermomt.com. -login.emlak.net. -mail.didacware.ch. -mafiaconnection.ru. -platform.twitter.com. -asset3.skimble.com. -www.latrache.com. -241.34.3.187.in-addr.arpa. -a.root-servers.net. -158.172.120.186.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.tumblr.com. -ssl.gstatic.com. -www.archenergy.com. -www.guj.com.br. -cdptpa-smtpin01.houston.rr.com. -photos-h.ak.fbcdn.net. -cdr-software.softonic.com. -b-0.19-23066089.80110b1.1518.19d4.3ea1.410.0.hllbgf7zr53c248br15qke4gmv.avqs.mcafee.com. -a5.sphotos.ak.fbcdn.net. -msn.foxsports.com. -smtp.srv.ualberta.ca. -www.frangipane.org. -stainless-steel.ru. -c799491.r91.cf2.rackcdn.com. -127.0.0.1. -external.ak.fbcdn.net. -d2105616.xoom.it. -a1005.w42.akamai.net. -139.255.214.98.in-addr.arpa. -99.183.140.203.in-addr.arpa. -218.25.122.190.in-addr.arpa. -gmail.com. -www.adservitrack.com. -t1.gstatic.com. -a.root-servers.net. -www.facebook.com. -jralert05.emailsp.it. -5-1.qlty.finarea.ch. -b.scorecardresearch.com. -kidshealth.org. -134.136.105.186.in-addr.arpa. -deframx24.softcom.dk. -sn104w.snt104.mail.live.com. -pjjkp.com. -www.youtube.com. -30.video.mystreamservice.com. -newsrss.bbc.co.uk. -www.enlightenedbeings.com. -ia700200.us.archive.org. -epaenlinea.empleate.com. -eldiariony.com.s8b2.psmtp.com. -float-spacer.ru. -static.ak.fbcdn.net. -forums.petfinder.my. -d2102338.xoom.it. -shipwreck.me. -inbound.truly.com.netsolmail.net. -165.82.149.189.in-addr.arpa. -www.adobe.com. -8drs:mii7.26yr. -img2.submanga.com. -secure-uk.imrworldwide.com. -c.live.com. -ec.atdmt.com. -_849_80_1. -www.tommys.co.nz. -pueblo.net. -69.181.185.190.in-addr.arpa. -a.root-servers.net. -au-au.ru. -photos-h.ak.fbcdn.net. -43.196.209.91.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -secure-us.imrworldwide.com. -www.finalteens.com. -goodvibes.com. -photos-a.ak.fbcdn.net. -widgets.twimg.com. -payment.socialgamenet.com. -calculator-online.org. -bstat.mywebsearch.com. -pop001.masterhost.ru. -google.com. -spamsafe2.sctsystems.co.uk. -20-courier.push.apple.com. -akinator.co. -johnmoltarealty.com. -189.172.173.187.in-addr.arpa. -ssl.google-analytics.com. -a.root-servers.net. -mgnet.com. -213.58.49.186.in-addr.arpa. -alico.com.np. -join.gloryhole-initiations.com. -a.root-servers.net. -udc.msn.com. -ssl.gstatic.com. -developers.facebook.com. -external.ak.fbcdn.net. -parus.nsk.su. -www.vphairstyles.com. -debevec.org. -www.google-analytics.com. -m.facebook.com. -98.103.170.201.in-addr.arpa. -40.135.69.217.in-addr.arpa. -c.prodigy.msn.com. -rdmgmtllc.com.s10a1.psmtp.com. -85.79.41.79.in-addr.arpa. -cacherito.msk.ru. -pages.ebay.com. -www.magisterio.com.co. -33.16.51.189.in-addr.arpa. -24.157.220.189.in-addr.arpa. -cgi5.ebay.com. -82.127.213.201.in-addr.arpa. -146.62.207.200.in-addr.arpa. -s.youtube.com. -eventosenlinea.blogspot.com. -ccfamilyhc.com. -www.dream-crane.com. -0-staging.channel.facebook.com. -d2106850.xoom.it. -a7.sphotos.ak.fbcdn.net. -m.ak.fbcdn.net. -comcoupons.com. -sender5.critsend.com. -www.facebook.com. -j.clickdensity.com. -ksn2-12.kaspersky-labs.com. -www.juegosdecocina.co. -fbcdn-photos-a.akamaihd.net. -www.facebook.com. -gazdefrance.es. -platform.twitter.com. -billing.sharo4ka.ru. -54.43.212.201.in-addr.arpa. -www3.virtualedge.com. -a7.sphotos.ak.fbcdn.net. -premiertruckcenter.com. -1ee2f.v.fwmrm.net. -www.ideal-school.com. -woin.ru. -js-kit.com. -www.dvdvideotool.com. -hat.net. -62.0.100.82.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -safebrowsing.clients.google.com. -elegance.ru. -22.56.6.186.in-addr.arpa. -www.portalubuntu.com. -www.google.com. -kr.kpost.search.yahoo.com. -a.root-servers.net. -www.canaanfairtrade.com. -32.0.59.186.in-addr.arpa. -upload.facebook.com. -csi.gstatic.com. -alerts.conduit-services.com. -199.193.253.190.in-addr.arpa. -www.facebook.com. -a995.mm1.akamai.net. -l.yimg.com. -dns.msftncsi.com. -010d3230302e392e3132382e3231300000.lbl8.mailshell.net. -wa.virgilio.it. -www.google.com. -www.elnashrafan.com. -ssl.gstatic.com. -56.209.50.201.in-addr.arpa. -trillian.brothersoft.com. -www.wip4.adobe.com. -cftfire.com. -www.nescafe.es. -a2.sphotos.ak.fbcdn.net. -7-courier.push.apple.com. -103.61.106.186.in-addr.arpa. -cdn1.videothumbs.xtube.com. -time.chttl.com.tw. -18.201.175.190.in-addr.arpa. -194.57.74.190.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -miks-pix.blogspot.com. -photos-e.ak.fbcdn.net. -mailgate.server-mail.com. -www.google-analytics.com. -www.cartoonnetwork.cl. -46.5.19.177.in-addr.arpa. -itsbebeipa01p.eu.jnj.com. -t4.liverail.com. -mail.google.com. -a7.sphotos.ak.fbcdn.net. -_490_97_9. -csi.gstatic.com. -a8.sphotos.ak.fbcdn.net. -safebrowsing.clients.google.com. -www.7elm1.com. -www.jsoftj.com. -mailcloud6.ourmailservers.net. -zh-cn.facebook.com. -mm.servidornoticias.com. -a.root-servers.net. -a.root-servers.net. -8h5aws2pj.77zi. -www.youtube.com. -www.sqm.microsoft.com. -igoogle-skins.googleusercontent.com. -c.thumbs.redditmedia.com. -fmail.infotek.ru. -mail.martin-riley.com. -platis.updates.pandasoftware.com. -tbr.ask.com. -ad.yieldmanager.com. -developers.facebook.com. -img1.blogblog.com. -fpa5b1qrq.a61z3y9j. -en.wikipedia.org. -l9ni:4pz5.b20y8k4h. -miescuelita.org. -cuneo.alpcom.it. -entretenimiento.latam.msn.com. -v45zivrkd.99ql. -embarzmail.com. -143.61.4.64.in-addr.arpa. -nucor-seattle.com.s7a1.psmtp.com. -149.190.30.211.in-addr.arpa. -xzqpypjovkvkph.com. -33.52.244.189.in-addr.arpa. -217.215.235.201.in-addr.arpa. -mail4.gosafco.com. -add.my.yahoo.com. -apix.iminent.com. -photos-c.ak.fbcdn.net. -201.68.155.114.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -googleads.g.doubleclick.net. -www.youtube.com.mx. -micromentis.com. -ssl.gstatic.com. -pnhoffman.com.s5b2.psmtp.com. -leadersinstitute.com.s7b2.psmtp.com. -www.virginsdesires.com. -www.iminent.com. -metrics.apple.com. -developers.facebook.com. -feedburner.google.com. -146.238.39.187.in-addr.arpa. -www.youtube.com. -www.hotmilfhunter.com. -235.14.115.212.in-addr.arpa. -www.google.com.mx. -p44-buy.itunes.apple.com. -rasgarelvelo.blogspot.com. -clients2.google.com. -a4.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -russianfemdom.net. -87.133.34.186.in-addr.arpa. -a1057.b.akamai.net. -i.holder.com.ua. -olivia.com.s5a2.psmtp.com. -aapexbank.com. -204.225.138.190.in-addr.arpa. -cheeseclub.ru. -a2.espncdn.com. -twf.com.au. -www.google.com. -233.235.163.67.in-addr.arpa. -ia600205.us.archive.org. -v21.lscache5.c.bigcache.googleapis.com. -a3.sphotos.ak.fbcdn.net. -b-0.19-a3004008.c071081.1518.19d4.3ea1.410.0.hb9dnwhqwczv6eeqserq9nrsgi.avqs.mcafee.com. -songsofpraise.com. -pixel.facebook.com. -_892_54_1. -43.16.173.70.in-addr.arpa. -profile.ak.fbcdn.net. -119.58.146.186.in-addr.arpa. -c.msn.com. -tlc.ousd.k12.ca.us. -baboolercheme.org. -a8.sphotos.ak.fbcdn.net. -fr-fr.facebook.com. -wvxmil7ki.x48a2q8e. -dns.msftncsi.com. -services.google.com. -www.comidacolombiana.com. -www.detounchin.com. -cdn.meaningtool.com. -www.humidipak.com. -47.161.84.187.in-addr.arpa. -nkb8cn1t4.w62m0z6u. -earthlink.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -lovetransfusion.tumblr.com. -www.ediets.com. -e906.g.akamaiedge.net. -_574_16_4. -a4.sphotos.ak.fbcdn.net. -mx.answers.yahoo.com. -portalnw.ru. -www.bywifi.com. -132.162.20.190.in-addr.arpa. -www.hk-kicks.com. -www.bing.com. -losangeles.imprelistas.com. -a1.sphotos.ak.fbcdn.net. -photos-c.ak.fbcdn.net. -espire.net. -connect.facebook.net. -sp.cwfservice.net. -fbcdn-photos-a.akamaihd.net. -mail.jvkmovers.com. -a.root-servers.net. -www.girlsgogames.es. -40.29.53.83.in-addr.arpa. -cms.quantserve.com. -mail.110sf.ru. -sabine.com. -kronix.ru. -mail.xn--80adhndn9l.com. -a7.sphotos.ak.fbcdn.net. -mscrl.microsoft.com. -summerthymestudio.blogspot.com. -developers.facebook.com. -contextmenu.toolbar.conduit-services.com. -widget3.linkwithin.com. -prensahistorica.mcu.es. -a.root-servers.net. -bmw-avtohaus.ru. -243.185.65.85.in-addr.arpa. -191.225.253.201.in-addr.arpa. -developers.facebook.com. -bobmakarley.ru. -mpv.web.aol.com. -ksn2-12.kaspersky-labs.com. -www.tedligety.com. -www.chandrakclarke.com. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -baymsg1020323.gateway.messenger.live.com. -api.twitter.com. -202.113.143.114.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -www.winajuda.com. -affiliate.ru. -957993.r.msn.com. -smtp.domainsbyproxy.com. -comersantander.com. -novelasconfamosos.globered.com. -xompuserve.com. -tobolsk.info. -css.wlxrs.com. -photos-a.ak.fbcdn.net. -211.149.195.210.in-addr.arpa. -api.twitter.com. -a.root-servers.net. -development1.entremed.com. -c.f.4.f.7.6.b.2.d.f.b.3.c.5.0.1.d.f.9.7.5.f.e.5.0.0.0.0.1.0.0.2.ip6.arpa. -www.facebook.com. -14.251.48.190.in-addr.arpa. -a1404.w41.akamai.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -mx3.mariinsky.ru. -i1.ytimg.com. -mccaffetyelectric.com. -somosnicas.net. -2.89.177.83.in-addr.arpa. -a03.t26.net. -a.root-servers.net. -static.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.a9euros.com. -apnmedia.ask.com. -mysoul.com.au. -www.spiegel.tv. -www.adultdreamlinks.com. -www.mandco.com. -a.root-servers.net. -www.lobosoft.es. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -inbound.cancrate.com.netsolmail.net. -ymlp310.net. -idsa.org.s7b2.psmtp.com. -a.root-servers.net. -roadplanet.ru. -clients1.google.com.mx. -jazzguitar.com. -mejormevoy.com. -apps.facebook.com. -rblns81.mailshell.net. -photos-h.ak.fbcdn.net. -45.74.95.201.in-addr.arpa. -marbel.sp.ru. -ridproject.ru. -www.facebook.com. -edge.quantserve.com. -vefire.ru. -mail.margoliscapital.com. -a.root-servers.net. -188.39.49.186.in-addr.arpa. -fxfeeds.mozilla.com. -www.devilly.org. -photos-a.ak.fbcdn.net. -204.37.127.200.in-addr.arpa. -11.66.201.71.in-addr.arpa. -cdn.applifier.com. -a.root-servers.net. -lolnewera.forumclan.net. -checkip.dyndns.org. -40.12.254.98.in-addr.arpa. -external.ak.fbcdn.net. -www.facebook.com. -iepwbpb4a.87tf. -profile.ak.fbcdn.net. -a.root-servers.net. -totalcmd.pl. -crwscdn8.appspot.com. -41.75.154.189.in-addr.arpa. -bart25s-paintjobfabrik.blogspot.com. -profile.ak.fbcdn.net. -third-rate.com. -pro-activesolutions.net. -hi-in.facebook.com. -gulfcoastfibres.com. -alliegiance.tv. -rs505dt.rapidshare.com. -grudniowo.soup.io. -cch-lis.com. -mi-medianaranja.blogspot.com. -content.yieldmanager.edgesuite.net. -kislorod-nn.ru. -a-0.19-21099001.9090083.1518.19d3.3ea1.410.0.h4g5975dfhvrdrzlmhdmk2rzwv.avqs.mcafee.com. -26.147.218.2.in-addr.arpa. -5.58.106.189.in-addr.arpa. -freshdailyblog.blogspot.com. -seal.thawte.com. -developers.facebook.com. -www.lasabrosita.fm. -cdn1.predictad.com. -www.cmcmedicalgroup.es. -creative.ak.fbcdn.net. -www.proverbia.net. -ad.doubleclick.net. -25.media.tumblr.com. -lightenupradio.com. -blog.farmville.com. -_435_96_3. -cis.netmng.com. -147.92.122.200.in-addr.arpa. -173.32.146.187.in-addr.arpa. -layouts.ru. -pqdgvyjqjk.com. -www.miletra.net. -87.103.188.186.in-addr.arpa. -c-0.19-2309c481.30483.1518.19d4.2f28.10.0.5ej8v54t12timlrc9ibsua66di.avqs.mcafee.com. -about.tagged.com. -a.root-servers.net. -ewatches.com. -facebook.conduitapps.com. -162.5.195.187.in-addr.arpa. -a749.g.akamai.net. -gfx4.hotmail.com. -plus.google.com. -static.ak.fbcdn.net. -www.youtube.com. -photos-c.ak.fbcdn.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -cload.com. -m1.joymii.com. -i1.ytimg.com. -ib.adnxs.com. -menuaingles.blogspot.com. -external.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -209.151.1.190.in-addr.arpa. -rtm.ebaystatic.com. -mx.msn.recepedia.com. -aloe-a.net.ru. -104.40.203.190.in-addr.arpa. -www.cpc.cl. -humor.orange.es. -m.adnxs.com. -229.156.148.92.in-addr.arpa. -19.111.39.190.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.faceb. -a.root-servers.net. -www.keygens.biz. -clients1.google.com. -wp.me. -28.191.231.190.in-addr.arpa. -irc.kelebekmafia.com. -vlarock.ru. -hi-in.facebook.com. -a1404.w41.akamai.net. -c0013989.ssl.cf1.rackcdn.com. -www.google.com. -static.ak.fbcdn.net. -puffballsunited.newgrounds.com. -_185_69_9. -tobolsk.info. -www.reachoutmichigan.org. -developers.facebook.com. -ff.media.v4.skyrock.net. -sp.cwfservice.net. -www.zenitalk.com. -hjltxrqnvupgm.com. -svod.espn.go.com. -websearch.ask.com. -117.218.8.78.in-addr.arpa. -a.root-servers.net. -hgddgbmbtvns.yi.org. -ohsheglows.lightbox.com. -connect.facebook.net. -155.37.150.79.in-addr.arpa. -the-sims-2.en.malavida.com. -cmd-law.com.s9b1.psmtp.com. -petroffbank.ru. -225.55.46.189.in-addr.arpa. -m.addthisedge.com. -www.google.com. -99.64.180.88.in-addr.arpa. -ad.doubleclick.net. -a3.sphotos.ak.fbcdn.net. -0-jh-w.channel.facebook.com. -static.yooco.de. -graph.facebook.com. -qtbuilders.com. -www.letsdeal.no. -bluewin.ch. -pheedo-rdr.msnbc.msn.com. -derek.netpivotal.com. -186.82.190.71.in-addr.arpa. -www.dlhonline.co.uk. -lkckclcklii1i.com.home. -outlookcbts.enterprisenet.org. -90.72.26.190.in-addr.arpa. -support.google.com. -crl.microsoft.com. -www.vibop.com. -www.google.com. -au.download.windowsupdate.com. -135.245.158.200.in-addr.arpa. -www.pgm-class.org. -doc-10-80-docsviewer.googleusercontent.com. -72.198.171.201.in-addr.arpa. -a.root-servers.net. -g.live.com. -apps.facebook.com. -www.bunnies4money.com. -a.root-servers.net. -216.67.100.190.in-addr.arpa. -developers.facebook.com. -qglcufhn7.b47z0d3o. -profile.ak.fbcdn.net. -baseball.cbssports.com. -es.answers.yahoo.com. -a5.sphotos.ak.fbcdn.net. -mx0.day.org. -dolsenco.com.inbound15.mxlogic.net. -thumbs3.ebaystatic.com. -www.googleadservices.com. -www.google-analytics.com. -brewich.com. -imagesperiodicook.s3.amazonaws.com. -247.91.27.190.in-addr.arpa. -csi.gstatic.com. -i324.photobucket.com. -209.130.46.189.in-addr.arpa. -a.root-servers.net. -profile.ak.fbcdn.net. -18.128.3.211.in-addr.arpa. -87.125.34.189.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.laredoute.de. -bucks.edu.s9a2.psmtp.com. -secure.shared.live.com. -ksn2-12.kaspersky-labs.com. -djesibonajeb.com. -checkip.dyndns.com. -russian-business.ru. -smtp.hoffmaster.com. -holichaxor.com. -www.googleadservices.com. -mail.thau.co.uk. -www.paranormal-fr.net. -ksn2-12.kaspersky-labs.com. -ocsp.digicert.com. -realdatamanagement.com. -zynga1-a.akamaihd.net. -skywaynews.net. -redkid.net. -commentarymagazine.us2.list-manage.com. -139.253.213.83.in-addr.arpa. -hotsms.ru. -arriesgo.wordpress.com. -ksn2-12.kaspersky-labs.com. -a.root-servers.net. -pagead2.googlesyndication.com. -a.root-servers.net. -134.84.216.217.in-addr.arpa. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -connect.facebook.net. -girl.kizifriv.com. -unitarius.hu. -d2059932.instant.xoom.it. -westonlogistics.com. -api.facebook.com. -a8.sphotos.ak.fbcdn.net. -mail.burson-weathers.com. -www.ingilizcecin.net. -www.eclipstore.com. -190.120.221.95.in-addr.arpa. -217.72.178.190.in-addr.arpa. -www.sqm.microsoft.com. -85.135.171.77.in-addr.arpa. -plus.google.com. -client-software.real.com. -www.googletagservices.com. -youtu.be. -168.19.168.192.in-addr.arpa. -apis.google.com. -blog.analytics.tapulous.com. -store.yossawat.com. -nwland.ru. -anaphraseus.sourceforge.net. -profile.ak.fbcdn.net. -antal-int.com. -r._dns-sd._udp.0.129.37.10.in-addr.arpa. -external.ak.fbcdn.net. -www.locusmicrowave.com. -20minutos.feedsportal.com. -34.219.44.200.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.france24.com. -160.66.153.186.in-addr.arpa. -platform.ak.fbcdn.net. -dnl-01.geo.kaspersky.com. -serv01.colo.owned.hu. -d2090733.xoom.it. -empresas.mundo-r.com. -107.170.113.79.in-addr.arpa. -jackdanielsmotors.com. -encrypted-tbn0.google.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -206.116.155.81.in-addr.arpa. -budgetresale.com. -static.ak.fbcdn.net. -andrew-mcculloch.co.uk. -140.235.195.62.in-addr.arpa. -ja.y8.com. -cainet.com.br. -thenetherworks.com. -crl.globalsign.net. -game3a.com. -eth0. -google.com. -www.4cdg.com. -diarioaxaca.com. -25.93.62.61.in-addr.arpa. -12.20.0.10.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -connect.facebook.net. -www.biotherm.co.uk. -32.39.169.68.in-addr.arpa. -www.aljazeera.net. -a.root-servers.net. -metaline.de. -static.ak.fbcdn.net. -pkids.files.wordpress.com. -167.39.168.192.in-addr.arpa. -connect.facebook.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -cdn1.widdit.com. -cf.addthis.com. -www.sugudeli.jp. -p49-buy.itunes.apple.com. -www.tccandler.com. -www.loveisdashit.com. -toolbar.thepiratebay.se. -a.root-servers.net. -scribe.twitter.com. -mailout.burlington-nj.net. -www.ivgstores.com. -www.turbogears.org. -photos-g.ak.fbcdn.net. -sp.cwfservice.net. -microlinear.com. -a.root-servers.net. -a.root-servers.net. -cdn.turn.com. -150.223.142.187.in-addr.arpa. -pixel.quantserve.com. -154.81.173.190.in-addr.arpa. -www.google.com. -webcache.googleusercontent.com. -smtp.crossconnectcentral.com. -camilocartagena.com. -microtekmed.com. -gic-it.de. -59.39.251.180.in-addr.arpa. -static.ak.fbcdn.net. -www.miescolarium.com. -ngfarah.com.au. -weather.service.msn.com. -edge.quantserve.com. -nccpr.p2p.baofeng.net. -d24w6bsrhbeh9d.cloudfront.net. -holessence.wordpress.com. -servicios.prodigy.msn.com. -a524.g.akamai.net. -photos-g.ak.fbcdn.net. -relay.quorum.ru. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -evsecure-ocsp.verisign.com. -mail.cyberquest.com. -mobile.myspace.com. -www.facebook.com. -208.244.134.187.in-addr.arpa. -creative.ak.fbcdn.net. -i3.ytimg.com. -googleads.g.doubleclick.net. -api.facebook.com. -yourfavoriterealtors.com. -es.nntp2http.com. -a.root-servers.net. -a.root-servers.net. -photos-c.ak.fbcdn.net. -colonialkc.org.2.0001.arsmtp.com. -223.135.192.180.in-addr.arpa. -www.google-analytics.com. -dnl-01.geo.kaspersky.com. -www.jugosylicuados.com. -frankcooney.com. -mrmelkwintergames.hyper.no. -themes.belchfire.net. -a.root-servers.net. -www.google-analytics.com. -lucy.corp.netopia.com. -sinaman.com. -googleads.g.doubleclick.net. -dns.msftncsi.com. -www.archive.org. -www.todaycal.com. -a.root-servers.net. -gcserevision101.wordpress.com. -fexobkn.es.tl. -oldmdgirl.blogspot.com. -59.205.11.189.in-addr.arpa. -16.209.70.166.in-addr.arpa. -www.facebook.com. -goo.gl. -armmf.adobe.com. -espanol.orlando-florida.net. -www.todotorrents.com. -b.scorecardresearch.com. -a.root-servers.net. -53.194.22.186.in-addr.arpa. -ilogic.ru. -pjrwadulmbvc.info. -news.google.com.mx. -mail.renneberg.com. -download.iolo.net. -radio.blackplanet.com. -smtp.blink.ca. -178.116.173.190.in-addr.arpa. -itbriefing.net. -www.facebook.com. -mail.internationaldg.com. -www.update.microsoft.com. -www.nataliaoreiro.com. -vanbortel.com.inbound10.mxlogicmx.net. -www.ecs.gov.bd. -mail.aai-office.com. -i3.imageban.ru. -mail.hooddistribution.com. -class.ee.iastate.edu. -esteparticular.wordpress.com. -mailgate.learningderby.net. -dns.msftncsi.com. -a2.sphotos.ak.fbcdn.net. -www.romeoburner.com. -www.facebook.com. -bjornfree.com. -creative.ak.fbcdn.net. -apple.com. -update.avg.com. -a8.sphotos.ak.fbcdn.net. -i1.ytimg.com. -time.nist.gov. -131.61.83.160.in-addr.arpa. -developers.facebook.com. -entertainment.wikia.com. -faceboock.com. -a1.da1.akamai.net. -shtihmass.ru. -wsteele.com.s8a2.psmtp.com. -168.82.85.78.in-addr.arpa. -w.sharethis.com. -i4.ytimg.com. -cmap.am.ace.advertising.com. -www.rankingshq.com. -www.facebook.com. -cbuk.112.2o7.net. -101.7.168.192.in-addr.arpa. -117.250.215.108.in-addr.arpa. -hitstatus.com. -www.asociacionportimujer.org. -router.bittorrent.com. -dns.msftncsi.com. -www.tuenti.com. -byfiles.storage.msn.com. -twitter.com. -www.galleries.teenemery.com. -zbar.zynga.com. -moodyvalleyins.com.2.arsmtp.com. -the-best-tour.com. -www.carpediem-services.com. -americanmicrosemi.com. -141.171.49.211.in-addr.arpa. -a.root-servers.net. -xl.topstat.com. -dplus.net. -ad.adnetwork.net. -www.izle.ilahisevenler.com. -a.root-servers.net. -www.tdt-latinoamerica.tv. -www.google.com. -www.isg-apple.com.akadns.net. -liveonletterman.radio.com. -170.206.178.186.in-addr.arpa. -secure.vaginalcumshots.com. -ifroggy.com. -afrhomeloans.com.s8a2.psmtp.com. -pagead2.googlesyndication.com. -lacasadeshiva.blogspot.com. -pixel.facebook.com. -www.development.fighthubtv.com. -a.root-servers.net. -166.14.224.189.in-addr.arpa. -sn105w.snt105.mail.live.com. -118.164.6.200.in-addr.arpa. -_246_96_4. -www.gaga101.nl.ae. -dns.msftncsi.com. -a6.sphotos.ak.fbcdn.net. -94.79.3.27.in-addr.arpa. -. -128.220.45.173.in-addr.arpa. -www.allipodtouchwallpapers.com. -es-es.facebook.com. -crl.globalsign.net. -bs.serving-sys.com. -www.google-analytics.com. -www.themasterteacher.tv. -optimized-by.rubiconproject.com. -ad-apac.doubleclick.net. -122.93.116.121.in-addr.arpa. -comceptos.com. -iguana-tango.com. -tags.bluekai.com. -voipb.sip.yahoo.com. -_146_63_6. -182.217.18.187.in-addr.arpa. -www.gatewayworkshops.com. -arribaelachancha.cl. -static-0.farmville.com. -m.addthisedge.com. -www.youtube-mp3-download.com. -rsup8.rising.com.cn.home. -evt.adrcntr.com. -www.reforma.com. -127.42.82.200.in-addr.arpa. -msn.com. -0.gravatar.com. -creative.ak.fbcdn.net. -a.c-0.19-21094000.10033.1518.19b2.410a.400.9d.kw1163b1wmniwtu1r3flrs4f8q.avqs.mcafee.com. -tattoodesignspictures.com. -publicbt.ath.cx. -imagenen1.247realmedia.com. -de-de.facebook.com. -graph.facebook.com. -centrelab.com. -mx.usa.net. -animeytv.com. -xdcnq7lq9.11qn. -d15gt9gwxw5wu0.cloudfront.net. -ads.yimg.com. -a.root-servers.net. -myweb2.search.yahoo.com. -253.40.141.189.in-addr.arpa. -mail.google.com. -nfbkids.ca. -api.twitter.com. -a-0.19-21093008.5000083.1518.19d4.3ea1.410.0.2hhg9t58pwjl629vqnrvmpg4lb.avqs.mcafee.com. -131.41.194.187.in-addr.arpa. -dnl-01.geo.kaspersky.com. -65.147.61.83.in-addr.arpa. -a.root-servers.net. -ns1-170.akam.net. -saltel.net. -17.254.208.74.zen.spamhaus.org. -tas.orangeads.fr. -ww.facebok.com. -122.83.27.189.in-addr.arpa. -googleads.g.doubleclick.net. -pssaudio.com. -85.218.226.168.in-addr.arpa. -timesgrop.com. -nip.net.ua. -jaypark.net. -ferens.net. -crmassociatesinc.com. -www.slashdot.com. -sites.google.com. -host30.ru. -mail.capitolmarketing.com. -wac.0c28.edgecastcdn.net. -a.root-servers.net. -m.facebook.com. -jiuan.jiagoo.com. -facebook-gadget.programas-gratis.net. -youtu.be. -feng.brujeriayhechizos.com. -plusone.google.com. -209.70.92.201.in-addr.arpa. -profile.pics.ak.sonicocnt.com. -_430_13_0. -a2.sphotos.ak.fbcdn.net. -oregon.students.k12.wi.us. -ksn2.kaspersky-labs.com. -140.138.134.190.in-addr.arpa. -_240_07_9. -v3it.com. -www.alidaa-alwatania.ma. -www.clicanoo.re. -resolver2.wguard.ctmail.com. -static.ak.fbcdn.net. -profile.ak.fbcdn.net. -neocounter.neoworx-blog-tools.net. -_ldap._tcp.7648c4d1-51f9-4a61-bbe5-816892afb98a.domains._msdcs.im-2.net. -www.beinghunted.com. -43.155.158.189.in-addr.arpa. -183.138.168.192.in-addr.arpa. -irc.kelebekmafia.com. -novelasdetv2.blogspot.com. -ate.lacoctelera.net. -170.204.177.190.in-addr.arpa. -177.20.206.190.in-addr.arpa. -www.grungi.com. -mdawmdezmdaxmjaxmg.org. -docinthemachine.com. -www.blabbers.com. -firewall.bccu.org. -ds.serving-sys.com. -hudson.org. -tracker.bidder7.mookie1.com. -69.29.75.187.in-addr.arpa. -128.129.171.218.in-addr.arpa. -time.windows.com. -intranet.unep.org. -images.hi5.com. -adserving.cpxinteractive.com. -95mb2mkmk.06yk. -ftfp.net. -media.ccomrcdn.com. -smx10.ccc-c.ru. -bspots.com. -ng. -www.google-analytics.com. -google.com. -18.171.173.187.in-addr.arpa. -poseidon.dl.playstation.net. -vw. -twitter.com. -download.windowsupdate.com. -clickserv2.sitescout.com. -m.bangbook.com. -c.statcounter.com. -fitwatch.blogspot.com. -palpably.com. -113.63.26.70.in-addr.arpa. -p08-bookmarks.icloud.com. -hygloceaf.39jl. -nat240.convex.ru. -38.109.50.186.in-addr.arpa. -bing.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -ksn2.kaspersky-labs.com. -dl.dropbox.com. -blstb.msn.com. -photos-e.ak.fbcdn.net. -ksn2-12.kaspersky-labs.com. -cic.co.th. -gtamodreynosa.blogspot.com. -www.oregonlive.com. -molinasalinas.com. -qst.com.pri-mx.smtproutes.com. -37.75.106.186.in-addr.arpa. -www.fpsalceda.com. -mail.jino.ru. -profile.ak.fbcdn.net. -dc.logmein-gateway.com. -mx.gameshop-international.com. -a5.sphotos.ak.fbcdn.net. -signin.ebay.com. -90.99.229.190.in-addr.arpa. -166.242.158.189.in-addr.arpa. -js.myspacecdn.com. -ocsp.thawte.com. -www.ilfusion.com. -email-dm.caroljones.com. -mx.lynxdev.com. -a.root-servers.net. -textad.sexsearch.com. -twitter.com. -jers3.info. -ns5.assembly.spb.ru. -photos-a.ak.fbcdn.net. -www.elacuario.es. -122.28.200.98.in-addr.arpa. -dev2.ru. -creative.ak.fbcdn.net. -carmelvets.com. -www.ransen.com. -updatekeepalive.mcafee.com. -video.google.com.mx. -de-de.facebook.com. -125.106.220.189.in-addr.arpa. -182.41.14.189.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -a.root-servers.net. -canada.com. -a5.sphotos.ak.fbcdn.net. -68.238.245.190.in-addr.arpa. -apps.facebook.com. -www.movistar.com.co. -bbcore.cloudapp.net. -. -colunas.criativa.globo.com. -apps.facebook.com. -limg1.imgsmail.ru. -jnuvxfm19.61vk. -53.2.134.187.in-addr.arpa. -ann.over-blog.com. -us.bc.yahoo.com. -likpavlovsk.ru. -gxcmnoaqhvfkyjd.theforgive.net. -r49jgld21.34uc. -www.blossgroup.com. -107.250.48.190.in-addr.arpa. -a.root-servers.net. -img.nikeprice.com. -sopsmtpin.shuion.com.cn. -mail.moderntimes.gr. -photos-f.ak.fbcdn.net. -profile.ak.fbcdn.net. -ru.iozcluster.com. -ssl.gstatic.com. -a7.sphotos.ak.fbcdn.net. -www.picresize.com. -22.1.168.192.in-addr.arpa. -16036.diloconfrases.com. -mail.isolofoam.com. -a.root-servers.net. -www.acorentacar.com. -liveupdate.symantecliveupdate.com. -paracozinhar.blogspot.com. -222.147.34.201.in-addr.arpa. -ovist.ru. -lcbbqx.com. -mail.amarchitx.com. -mail.gandiagroup.com. -photos-f.ak.fbcdn.net. -www.trafficholder.com. -c7.zedo.com. -a6.sphotos.ak.fbcdn.net. -newfbcover.com. -130.254.107.200.in-addr.arpa. -_ldap._tcp. -www.10joke.com. -hitman-blood-money.softonic.com. -30.100.87.200.in-addr.arpa. -www.mikemerritt.me. -mobilemedianow.com. -99.133.34.177.in-addr.arpa. -163.133.159.189.in-addr.arpa. -byfiles.storage.msn.com. -mail.plateau.ru. -85.163.52.174.in-addr.arpa. -tap2-cdn.rubiconproject.com. -corazones.100foros.com. -accounts.google.com. -_540_03_3. -www.crunchbase.com. -213.141.226.190.in-addr.arpa. -194.25.185.91.in-addr.arpa. -mail2.duferdofin.it. -check6.facebook.com. -ad.doubleclick.net. -juegosbeta.net. -ntp.glb.nist.gov. -evsecure-crl.verisign.com. -www.facebook.com. -levittandsons.com. -video.cnbc.com. -. -229.165.171.201.in-addr.arpa. -s.clicktale.net. -www.facebook.com. -erichluna.files.wordpress.com. -42.187.68.195.in-addr.arpa. -api.twitter.com. -107.1.168.192.in-addr.arpa. -www-cctld.l.google.com. -h.live.com. -r._dns-sd._udp.0.97.168.192.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -fc.pickerington.k12.oh.us. -66.177.229.201.in-addr.arpa. -s-external.ak.fbcdn.net. -mx.msn.recepedia.com. -photos-e.ak.fbcdn.net. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -ads.lfstmedia.com. -140.156.166.190.in-addr.arpa. -a.root-servers.net. -sites.google.com. -www.marchpr.com. -www.caminandoensantidad.com. -a4.sphotos.ak.fbcdn.net. -www.landbou.com. -ladies.ivwbox.de. -www.facebook.com. -www.microsoft.com. -astroyogisays.wordpress.com. -www.unifor.it. -profile.ak.fbcdn.net. -relay.voice.edge.messenger.live.com. -www.youtube.com. -a.root-servers.net. -:y9zbn78:.a60b4f0b. -www.holgablog.com. -10.100.210.64.in-addr.arpa. -google.com. -www.addthis.com. -www.pakmailveracruz.com. -xslt.alexa.com. -ins00002.nycomed.local. -emailbizz.com. -solemovement.com. -onetel.net. -tracker.ex.ua. -43.200.26.188.in-addr.arpa. -desipride.co.uk. -www.schoolworld.com. -ad-g.doubleclick.net. -4.69.158.200.in-addr.arpa. -darkmail.ru. -a.root-servers.net. -www.artificialgallery.co.uk. -safebrowsing.clients.google.com. -mx.scitz.com. -200.236.126.199.in-addr.arpa. -49.250.22.190.in-addr.arpa. -static.ak.fbcdn.net. -euro.mediotiempo.com. -profile.ak.fbcdn.net. -a1856.w5.akamai.net. -i.ytimg.com. -2.218.227.213.in-addr.arpa. -www.amateurwebcamsexlive.com. -cdn-w.fapdu.com. -espanol.galerias.autocosmos.yahoo.net. -a5.sphotos.ak.fbcdn.net. -ieonlinews.microsoft.com. -init-p01md.apple.com. -pravitelstvokbr.ru. -179.36.186.201.in-addr.arpa. -adserver.adtech.de. -lineage2.plaync.jp. -www.polarbearmusic.com. -evhs.net.s10b2.psmtp.com. -static.ak.fbcdn.net. -178.156.245.190.in-addr.arpa. -g.msn.com. -www.wildaboutmovies.com. -79.10.61.186.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -208.237.252.72.in-addr.arpa. -mtalk.google.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -googleads.g.doubleclick.net. -alerts.conduit-services.com. -aswlingerie.com. -www.facebook.com. -osce10-5-en.url.trendmicro.com. -javadl-esd.sun.com. -17.159.122.186.in-addr.arpa. -carib.lnet.fr. -col.stj.s-msn.com. -search.twitter.com. -www.abcmanualidades.com. -meti.com. -e-deliver.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -philosophy.hertford.ox.ac.uk. -ssl.gstatic.com. -bestmodelgirls.com. -insidehighered.com. -ad.yieldmanager.com. -amdbgn5n4.x51v7y4s. -static.ak.fbcdn.net. -www.ozgurdunyam.com. -1.gravatar.com. -www.facebook.com. -ec2-184-73-21-146.zumodrive.com. -82.30.237.189.in-addr.arpa. -quitcount.sourceforge.net. -thankyounurses.com.s10a2.psmtp.com. -dnfdl.qq.com. -twitter.com. -omundoasiatico.wordpress.com. -a.root-servers.net. -nic99:opq.y86y4h6t. -a6.sphotos.ak.fbcdn.net. -twcble.com. -r._dns-sd._udp.lan. -photos-g.ak.fbcdn.net. -www.footballtip.co.uk. -johnsoncountytx.org.s5a2.psmtp.com. -38.232.86.74.in-addr.arpa. -mail.autonizh.nnov.ru. -rssbarcode.com. -www.fabulous.com. -im61.vk.com. -time.nist.gov. -wvc.net. -img4.drawn-incest.net. -model850.deviantart.com. -178.126.247.69.in-addr.arpa. -obeloer.de. -169.147.174.190.in-addr.arpa. -mx.youtube.com. -www.slona.net. -browsersync.google.com. -google.com. -www.facebook.com. -127.129.79.190.in-addr.arpa. -webcache.googleusercontent.com. -api.webrep.avast.com. -mail.pressdisplay.com. -skyfallen.com. -60.159.35.187.in-addr.arpa. -alvago.ru. -93.199.116.194.in-addr.arpa. -b754:eygv.76jj. -ville-argenteuil.fr. -www.uhcretiree.com. -15cb25h1.aime7.eu. -brand.celio.com. -billing.sharo4ka.ru. -77.196.40.177.in-addr.arpa. -asp-8.reflexion.net. -en.wikipedia.org. -www.tuchiste.com. -0-244.channel.facebook.com. -a.root-servers.net. -photos-g.ak.fbcdn.net. -www.google-analytics.com. -www.legislation.hmso.gov.uk. -estky.com. -api.bizographics.com. -_514_96_1. -de-de.facebook.com. -static.ak.facebook.com. -a.root-servers.net. -255.80.54.208.in-addr.arpa. -wiredarchives.disqus.com. -assets.hostedtube.com. -www.google-analytics.com. -tubisuteria.com.ve. -external.ak.fbcdn.net. -grayburn.blogspot.com. -ax.su.itunes.apple.com. -row.bc.yahoo.com. -100.21.228.189.in-addr.arpa. -www.l.google.com. -pixel.facebook.com. -g.ceipmsn.com. -mozilla.yongbok.net. -a2.sphotos.ak.fbcdn.net. -platform.twitter.com. -data.flurry.com. -apple.com. -mra1.mail.ru. -137.79.218.186.in-addr.arpa. -distilleryimage0.s3.amazonaws.com. -ocsp.verisign.com. -inbound.mstgllc.com.netsolmail.net. -edge-media1.snooth.com. -129.211.91.195.in-addr.arpa. -cantaalsenor.com. -bing.com. -53.151.24.82.in-addr.arpa. -static-0.farmville.zgncdn.com. -logs.sync.prodenv4.mysoluto.com. -time.nist.gov. -www.idea.gob.mx. -l2.zedo.com. -redragonairsoft.50.forumer.com. -_860_63_2. -198.49.23.186.in-addr.arpa. -a.root-servers.net. -s-static.ak.facebook.com. -www.mundoauxilio.com.ar. -209.129.176.190.in-addr.arpa. -47-courier.push.apple.com. -s.ytimg.com. -agng78sagdfdkjdtwa716.com. -b3.mookie1.com. -_369_86_0. -69.175.178.190.in-addr.arpa. -www.sx.xinhuanet.com. -a.rad.msn.com. -www.downloadhelper.net. -85.231.89.186.in-addr.arpa. -dcpq6oz4b.l15w5x9z. -neetguias.com. -static-cdn2.ustream.tv. -www.google-analytics.com. -a.root-servers.net. -barbershopconnect.com. -vsantivirus.com. -t.co. -bwp.download.com. -157.255.247.190.in-addr.arpa. -150.23.122.186.in-addr.arpa. -cdn.loading321.com. -download.windowsupdate.com. -foros.3dgames.com.ar. -aperture.maccreate.com. -p3v.ru. -googleads.g.doubleclick.net. -ksn7-12.kaspersky-labs.com. -head.rd.na-gmbh.net. -a.root-servers.net. -conduit.anybodyoutthere.com. -109.214.5.217.in-addr.arpa. -4wg9s:ggi.61rl. -a1725.l.akamai.net. -i3.ytimg.com. -altfarm.mediaplex.com. -59.36.48.186.in-addr.arpa. -mail.sw15.com. -amazonm-346.vo.llnwd.net. -salespages.s3.amazonaws.com. -4ebec7j26.j35y9q2p. -brocheszepequena.blogspot.com. -60.89.88.186.in-addr.arpa. -s1-powerpoint.vo.msecnd.net. -d15gt9gwxw5wu0.cloudfront.net. -www.ducati.it. -www.jeremyskinner.co.uk. -pics-4.gaybearsvideo.com. -gwave.com. -inbound.matchettandward.com.netsolmail.net. -encrypted-tbn3.google.com. -180.123.101.190.in-addr.arpa. -developers.facebook.com. -ejabat.google.com. -775t3k5wd.z31l8t1x. -127.17.155.189.in-addr.arpa. -120.136.159.187.in-addr.arpa. -us.bc.yahoo.com. -www.gstatic.com. -32.26.94.186.in-addr.arpa. -58.114.92.186.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -pixel.facebook.com. -vp.sip.messenger.msn.com. -f5uj5ae3n.y25k0v8m. -y.fs8-88a.video.ckcdn.com. -content.yieldmanager.edgesuite.net. -i26.fastpic.ru. -browse.deviantart.com. -125.156.234.41.in-addr.arpa. -www.megadosya.net. -salon-pantera.ru. -57.193.181.189.in-addr.arpa. -img1.blogblog.com. -www.corralboots.com. -215.55.17.95.in-addr.arpa. -leanintree.com.inbound30.mxlogicmx.net. -s7.addthis.com. -www.gop.com. -social.bidsystem.com. -www.spainmoviles.com. -a.root-servers.net. -www.condesadf.com. -chart.shopping.daum.net. -ec.atdmt.com. -downloadcatolico.blogspot.com. -34.139.87.203.in-addr.arpa. -dodo.com.au. -63.197.50.190.in-addr.arpa. -ardownload.adobe.com. -clients2.google.com. -mail2.baruta.net. -jeffingermany.com. -ecoclima.cl. -analytics.live.com. -ssl.gstatic.com. -62.252.153.200.in-addr.arpa. -icanhascheezburger.com. -godsremedy.com. -www.google.com. -sc.cuevana.tv. -vitamin.utk.ru. -www.xatakaciencia.com. -liveupdate.symantecliveupdate.com. -profile.ak.fbcdn.net. -a-0.19-2309d081.c030083.1518.19cd.3ea1.410.0.d5g4l32d6jgjp7wsn6vrk57hvq.avqs.mcafee.com. -toolbarqueries.google.com. -retracker.kld.ru. -support.google.com. -www.showsiteinfo.appspot.com. -www.chillingeffects.org. -p05-caldav.icloud.com. -a.root-servers.net. -dovstrechy.ru. -stfansub.chatango.com. -i3.ytimg.com. -img100.xvideos.com. -bat.wbusiness.fr. -a.root-servers.net. -www.thetrafficstat.net.lan. -ksn2-12.kaspersky-labs.com. -168.89.50.99.in-addr.arpa. -um.simpli.fi. -www.clansta.com. -zicrizabdi.com. -mystichealingart.blogspot.com. -google.com. -dnl-01.geo.kaspersky.com. -google.com. -assist.zoho.com. -photos-d.ak.fbcdn.net. -sp.cwfservice.net. -_390_33_8. -pr-static.tnaflix.com. -e4344.g.akamaiedge.net. -58.231.224.190.in-addr.arpa. -www.google.com. -ms3.verticalscreen.com. -www.ebcwebstore.com. -iloveatom.wikispaces.com. -www.decadeofaction.org. -www.google.com. -en-us.fxfeeds.mozilla.com. -www.youtube.com. -www.hairypussiessex.com. -bit.ly. -shop.ebay.com. -www.google.com. -www.facebook.com. -a5.sphotos.ak.fbcdn.net. -hotmail.com. -accounts.google.com. -lccmail.com. -api.facebook.com. -www.ticketmaster.com. -140.72.208.186.in-addr.arpa. -cdn-1.nflximg.com. -a.root-servers.net. -cm.g.doubleclick.net. -es.ask.com. -ustream.vo.llnwd.net. -www.googleadservices.com. -www.portantos.es. -phobos.apple.com. -v7.cache3.c.youtube.com. -bbcore.cloudapp.net. -download.akvis.com. -gibbins18.fsnet.co.uk. -0-ig-w.channel.facebook.com. -tracker9.bol.bg. -jpost.ru. -www.mobilemammoth.com. -rcp.na.blackberry.com. -www.costume-designer.co.uk. -das2.ru. -tiempoderugby.com. -30.166.214.201.in-addr.arpa. -dixis.spb.ru. -pagead2.googlesyndication.com. -64.162.4.65.in-addr.arpa. -253.105.121.187.in-addr.arpa. -rv.ginyas.com. -api.twitter.com. -safebrowsing-cache.google.com. -gojane.us-dc1-edit.store.yahoo.net. -www.ver-pelis.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -dsn7.d.skype.net. -www.ontariotrackers.com. -27.37.48.49.in-addr.arpa. -gdata.youtube.com. -rokita.zigzag.pl. -www.update.microsoft.com. -www.terra.com.pe. -searchclient.live.net. -www.acee.cl. -profile.ak.fbcdn.net. -btinternet.com. -get.adobe.com. -225.171.13.88.in-addr.arpa. -tools.google.com. -86.117.22.190.in-addr.arpa. -. -cdn-8.pics.hardsextubepremium.com. -reuben.org. -dns.msftncsi.com. -wahm-masters.sitesell.com. -12.170.215.84.in-addr.arpa. -connect.facebook.net. -www.risesecurity.org. -173.202.232.190.in-addr.arpa. -platform.ak.fbcdn.net. -iphone-ld.apple.com. -beonline.com.ph. -www.facebook.com. -47.82.176.186.in-addr.arpa. -leifpodhajsky.com. -twitter.com. -www.xuldev.org. -tradefx.advertserve.com. -voip.gtdmanquehue.com. -inbound.jimjenningsarchitecture.com.netsolmail.net. -apps.facebook.com. -teredo.ipv6.microsoft.com. -photos-e.ak.fbcdn.net. -c.atdmt.com. -mail.google.com. -a2.twimg.com. -194.134.95.201.in-addr.arpa. -. -byfiles.storage.msn.com. -a4.sphotos.ak.fbcdn.net. -ads.gamesbannernet.com. -login.live.com. -plus.google.com. -www.sun-sentinel.com. -ad-g.doubleclick.net. -www.google.com.mx. -creative.ak.fbcdn.net. -www.adobe.com. -riptight.de. -download.windowsupdate.com. -4.67.252.201.in-addr.arpa. -urs.microsoft.com. -www.coverphotos.ne. -planetforlife.com. -cs.wikinews.org. -pegas.pgta.ru. -www.azgallerie.com. -pixel.facebook.com. -227.94.141.201.in-addr.arpa. -a.root-servers.net. -integsystemscorp.com. -7xxdudax017.org. -yonkerracing.com. -deptof.com. -cache.pack.google.com. -guardianpm.com.inbound45.mxlogicmx.net. -www.20minutos.es. -m688.photobucket.com. -www.cincodias.com. -addons.mozilla.org. -static.ak.fbcdn.net. -computerwoche.de. -www3.l.google.com. -rfi-global.com. -mail.bmsystem.ru. -121.158.1.201.in-addr.arpa. -mail.whitepinecopper.com. -158.154.30.50.in-addr.arpa. -mail.isladom.com.do. -3.170.107.186.in-addr.arpa. -www.gestiopolis.com. -5h458z:9q.34nn. -mail.rwt.com. -qvvz72iwb.r32f3e0u. -b._dns-sd._udp.0.16.168.192.in-addr.arpa. -feeds.feedburner.com. -voidumonde.com. -p05-keyvalueservice.icloud.com. -72.36.215.95.in-addr.arpa. -trendmicro-g.georedirector.akadns.net. -col.stc.s-msn.com. -as.usnuc.com. -a1.sphotos.ak.fbcdn.net. -95.244.71.219.in-addr.arpa. -toolsworld.zzl.org. -73.56.170.189.in-addr.arpa. -56.55.131.187.in-addr.arpa. -86.66.123.189.in-addr.arpa. -olmue.com. -154.128.51.190.in-addr.arpa. -www.google.com. -95.86.45.12.in-addr.arpa. -www.17-s.info. -banner.casinolasvegas.com. -mail2.gocial.com. -xalapa.infored.com.mx. -kjia5mie3.05yq. -www.fontanka.ru. -i-dressup.com. -www.google.com. -242.50.167.187.in-addr.arpa. -coupons.houstonpress.com. -_355_42_7. -www.weather.com. -192.123.87.67.in-addr.arpa. -227.240.143.175.in-addr.arpa. -www.bingobase.com. -139.23.85.190.in-addr.arpa. -dnl-01.geo.kaspersky.com. -40.215.123.201.in-addr.arpa. -151.143.215.189.in-addr.arpa. -19.148.74.187.in-addr.arpa. -roofing.ms. -music.egexa.com. -zaring.com. -zmsg.mobi. -a1.sphotos.ak.fbcdn.net. -ro-botica.com. -onlywarez.info. -i2.itc.cn. -www.googleadservices.com. -i3.ytimg.com. -www.google.com. -mail65.ixwebhosting.com. -64.200.141.63.in-addr.arpa. -db2.stc.s-msn.com. -photos-e.ak.fbcdn.net. -www.horrortheque.com. -client94.dropbox.com. -www.youtube.com. -platform.ak.fbcdn.net. -cltfile300.corp.kbr.com.beknet.us. -graph.facebook.com. -trackaphone.com. -photos-h.ak.fbcdn.net. -a1408.w43.akamai.net. -cdn1.public.tube8.com. -ionchran.msk.ru. -s-static.ak.facebook.com. -www.plrcodemine.com. -31.80.19.190.in-addr.arpa. -www.gstatic.com. -www.hotmail.com. -static.ak.fbcdn.net. -033hotmail.com. -www.ufovideos.ws. -1109.xphonia.com. -a.root-servers.net. -ciaoshopes.122.2o7.net. -www.jeasyui.com. -johnsonlawia.com. -pixel.facebook.com. -www.speedbibleverse.com. -ib.adnxs.com. -83.162.41.177.in-addr.arpa. -t3.gstatic.com. -www.file4sharing.com. -rcp.na.blackberry.com. -profile.ak.fbcdn.net. -www.freedomdebtrelief.com. -www.thelogoloft.com. -www.google-analytics.com. -softkey.ru. -137.43.110.201.in-addr.arpa. -120.246.157.90.in-addr.arpa. -239.32.178.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -bkg.bund.de. -the-weather-channel.en.softonic.com. -12.119.113.186.in-addr.arpa. -code.google.com. -www.bristolgroup.com.ar. -fbcdn-sphotos-a.akamaihd.net. -www.buttmachineboys.com. -mail.mo-pca.org. -go.microsoft.com. -mail.sskom.su. -ajax.googleapis.com. -fbcdn-photos-a.akamaihd.net. -_471_33_5. -a.root-servers.net. -m04.r64.nalog.ru. -a7.sphotos.ak.fbcdn.net. -media.fasthosts.co.uk. -154.75.91.186.in-addr.arpa. -www.themotoguide.com. -razorfamilyfarms.com. -a.root-servers.net. -roswellgov.com. -www.iwork.com. -blst.msn.com. -mail.bebisim.net. -accounts.google.com. -stage-shredded-status.com. -pagead2.googlesyndication.com. -3.17.66.177.in-addr.arpa. -www.darty.com. -qpkppwwxk.15qw. -roadsideamerica.com. -grandcoffee.ru. -allkpop.co. -rr.a.5d6d.com. -groups.google.es. -js.wlxrs.com. -www.facebook.com. -twitter.com. -roller-dollz-scene-4.ss.ztod.com. -accounts.google.com. -www.kitchenremodelideas.com. -www.apples4theteacher.com. -a749.g.akamai.net. -146.172.250.201.in-addr.arpa. -desmotivaciones.es. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -sites.google.com. -cheerleading.about.com. -mail.thermospas.com. -dnl-01.geo.kaspersky.com. -www.emol.com. -meta.wikimedia.org. -205.119.240.46.in-addr.arpa. -mscrl.microsoft.com. -10.240.222.190.in-addr.arpa. -a.root-servers.net. -bank.imgdumpr.com. -137.55.137.190.in-addr.arpa. -mail.trak-music.com. -photos-a.ak.fbcdn.net. -www.gamespot.com. -www.fielddayfestivals.com. -mail.top-med.ru. -teamhfa-com.mail.eo.outlook.com. -proxy.org. -s.ytimg.com. -a.root-servers.net. -ssl.gstatic.com. -s0.2mdn.net. -builderswholesale.com. -ilead.itrack.it. -173.61.70.77.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -safebrowsing-cache.google.com. -dnl-01.geo.kaspersky.com. -www.reikiindia.org. -gci-prod-lb-743530114.us-east-1.elb.amazonaws.com. -download.live.com. -content.yieldmanager.edgesuite.net. -www.iapqroo.org.mx. -www.directoriowebdemexico.com.mx. -darkecho.ru. -crl.geotrust.com. -57.104.153.187.in-addr.arpa. -newsrss.bbc.co.uk. -tkmnet.ru. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -234.4.241.81.in-addr.arpa. -147.51.40.124.in-addr.arpa. -wpad.phx-dc.dhl.com. -www.videostias.net. -www.bygraziela.com. -ls2web.redmond.corp.microsoft.com. -klipxtreme.com. -www.erkdesigns.com. -www.facebook.com. -developers.facebook.com. -gs-loc.apple.com. -ad.media-servers.net. -cc.ysu.edu. -uiu:pfpp1.k90u2e0f. -protonworld.com. -cgi.ebay.com. -ja.cnt.v.sina.com.cn. -mx04.traviangames.com. -mail-bk0-f53.google.com. -photos-g.ak.fbcdn.net. -safebrowsing.clients.google.com. -a.root-servers.net. -hi-in.facebook.com. -toyotacredit.ru. -partner.googleadservices.com. -masuren-ferienhaus.com. -wmkreditonline.ru. -www.googletagservices.com. -f1rz3vpuf.y61e7v8o. -245.244.65.222.in-addr.arpa. -photos-g.ak.fbcdn.net. -a.root-servers.net. -browsermusic.titleservices.com. -www.airserverapp.com. -151.94.139.189.in-addr.arpa. -a.root-servers.net. -2.223.110.109.in-addr.arpa. -autoupdate.chromewebtb.conduit-services.com. -www.fetishsnake.com. -www.jmsky.com. -www.webcomparte.cl. -im-perfection.com. -photofla.me. -217.148.168.192.in-addr.arpa. -download781.avast.com. -umail.ukrtel.net. -localhost. -alphatoris.com. -i5.tagstat.com. -content.imorphosis.com. -plus.google.com. -bglh2dojw.36cd. -a.root-servers.net. -www.jellyegg.com. -fb.me. -listen.grooveshark.com. -hotfixline.eu. -app.kpi.com. -_338_05_1. -a3.twimg.com. -169.208.225.212.in-addr.arpa. -58.56.179.78.in-addr.arpa. -gaffneyinc.com.s7a2.psmtp.com. -229.185.29.201.in-addr.arpa. -ninemsn.video.msn.com. -sf2.wmclinic.com. -clickmedia.sitescout.com. -cuantodanio.blogspot.com. -. -a8.sphotos.ak.fbcdn.net. -www.adobe.com. -138.104.223.201.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -109.183.255.113.in-addr.arpa. -236.62.61.186.in-addr.arpa. -www.googletagservices.com. -thewindowsclub.disqus.com. -126.26.120.200.in-addr.arpa. -ads12.groovinads.com. -vp.sip.messenger.msn.com. -a200.da1.akamai.net. -a5.sphotos.ak.fbcdn.net. -s.youtube.com. -profile.ak.fbcdn.net. -developers.facebook.com. -smtp.boardofchildcare.org. -238.243.204.190.in-addr.arpa. -us.mg5.mail.yahoo.com. -www.victoriaschool.co.uk. -fallback.mail.fr.uu.net. -forexcms.hs.llnwd.net. -api.zynga.com. -www.portalnet.cl. -pt-br.facebook.com. -_133_30_3. -tools.google.com. -189.224.74.190.in-addr.arpa. -img1.catalog.video.msn.com. -diapeesandwipees.com. -www.eatstopeat.com. -b.photobucket.com. -webfront.ru. -www.extremestraponsex.com. -a4.sphotos.ak.fbcdn.net. -www.facebook.com. -fafa6.com. -173.245.224.67.in-addr.arpa. -platform.twitter.com. -www.statcounter.com. -www.exileskimboards.com. -server6.camelot-hosting.com. -profile.ak.fbcdn.net. -www.youtube.com. -www.newmountain.com. -geoiplookup.wikimedia.org. -a0.twimg.com. -169.142.102.85.in-addr.arpa. -spcum.qc.ca. -photos-a.ak.fbcdn.net. -innovativee-com02e.mail.eo.outlook.com. -www.designingforhumans.com. -plusone.google.com. -tracker.openbittorrent.com. -travelocity.conduitapps.com. -uno.wt-rotator104.ru. -www.tomsalta.com. -henna.com. -79.84.66.76.in-addr.arpa. -www.kzao.com. -restaurant.teamlava.com. -109.205.176.187.in-addr.arpa. -www.facebook.com. -niynossgm.info.lan. -224.109.158.189.in-addr.arpa. -48.121.196.205.in-addr.arpa. -tracker.bitreactor.to. -191.227.2.187.in-addr.arpa. -www.facebook.com. -195.10.87.186.in-addr.arpa. -ad.turn.com. -lactofilia.blogspot.com. -www.wirefresh.com. -globet.com. -www.infolanka.com. -www.amaranthia.com. -m.denverpost.com. -dns.msftncsi.com. -a-0.19-a3097081.d010583.1518.19d2.3ea1.410.0.jn69rb291g6mjqcwbz2gqzla1b.avqs.mcafee.com. -twitter.com. -npgcable.com. -altx-soft.ru. -1xom1yyiz.64ns. -www.positivelysplendid.com. -draka.com. -sharelink.com.cy. -platform.ak.fbcdn.net. -www.brunelalumni.co.uk. -195.194.207.190.in-addr.arpa. -www.xvideos.com. -crocjokes.com. -imap.gmail.com. -a5.da1.akamai.net. -google.com. -de-de.facebook.com. -www.rebuildbabel.com. -89.238.242.24.in-addr.arpa. -201.0.187.189.in-addr.arpa. -morefilm.ru. -29.186.137.190.in-addr.arpa. -l.yimg.com. -mail.lllindberg.com. -stag-live.gourmet.com. -103.119.137.187.in-addr.arpa. -120.237.55.201.in-addr.arpa. -iland-net-bk.messaging.lotuslive.com. -www.idedge.com. -miski-igla.blogspot.com. -trentonpolice.net. -creative.ak.fbcdn.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -ssl.gstatic.com. -49.18.55.157.in-addr.arpa. -www.iapchiapas.org.mx. -m1.nsimg.net. -a.root-servers.net. -a.root-servers.net. -gun.su. -gw006.lphbs.com. -61.217.32.31.in-addr.arpa. -135.164.184.187.in-addr.arpa. -profile.ak.fbcdn.net. -feyenoord.headliner.nl. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -cv.duba.net. -www.attdroids.com. -loseasi.blogspot.com. -124.173.106.186.in-addr.arpa. -creative.ak.fbcdn.net. -edge.quantserve.com. -scm-l3.technorati.com. -125.141.248.189.in-addr.arpa. -190.154.214.189.in-addr.arpa. -img-2007-09.photosight.ru. -calendar.live.com. -zzominternet.net. -www.epicgameads.com. -www.googleadservices.com. -66.20.237.189.in-addr.arpa. -www.gstatic.com. -a1.sphotos.ak.fbcdn.net. -webcache.googleusercontent.com. -25.150.3.186.in-addr.arpa. -www.prostitv.com. -jsurnwy16.96yo. -164.15.53.186.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -robbbest1.wordpress.com. -searchjs.s3.amazonaws.com. -123.34.50.190.in-addr.arpa. -top5.mail.ru. -stmlending.com. -news.l.google.com. -121.68.174.190.in-addr.arpa. -137.209.129.186.in-addr.arpa. -www.cadeaux-poker.com. -external.ak.fbcdn.net. -rover.ebay.com. -s.ytimg.com. -iyashinet.net. -smsclub.ru. -s-external.ak.fbcdn.net. -www.facebook.com. -sp.cwfservice.net. -0-244.channel.facebook.com. -photos-b.ak.fbcdn.net. -limewire-speedup-pro.programas-gratis.net. -westnet.gr. -s.youtube.com. -toolbarqueries.clients.google.com. -blseamon.com.inbound10.mxlogicmx.net. -connect.facebook.net. -teredo.ipv6.microsoft.com. -98.132.93.186.in-addr.arpa. -a.root-servers.net. -www.photostringer.com. -www.3dtuning.ru. -a.root-servers.net. -download957.avast.com. -cadgroup.com.au. -translate.google.com.mx. -dxocy7wsx.57lc. -240.77.21.190.in-addr.arpa. -a.root-servers.net. -tisindia.com. -usd232.org. -es-la.facebook.com. -a7.sphotos.ak.fbcdn.net. -65.255.48.65.in-addr.arpa. -www.facebook.com. -facebook-en-espanol.com. -connect.facebook.net. -avatars.whatboyswant.com. -s.youtube.com. -api.facebook.com. -mscrl.microsoft.com. -hbf.cloud.avg.com. -thewholeheartedmind.wordpress.com. -rose.ocn.ne.jp. -cdn.coolsmileypack.com. -minnesota-mn-cars.tk. -www.dream-teens.net. -profile.ak.fbcdn.net. -z021.fma.fb.me. -meraki.com. -a.root-servers.net. -www.buscatube.org. -117.180.83.74.in-addr.arpa. -farm6.static.flickr.com. -bresso.net. -settings.toolbar.search.conduit.com. -235.229.178.190.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -2.247.37.77.in-addr.arpa. -www.vgatohdmi.net. -251.133.89.201.in-addr.arpa. -yahoo.es. -a.root-servers.net. -profile.ak.fbcdn.net. -thumbs3.maturebjtube.com. -candysoirees.blogspot.com. -eur6.akam.net. -166.213.96.200.in-addr.arpa. -improveverywhere.com. -mail.google.com. -bvohk.com.domain.name. -platform.twitter.com. -34.23.241.189.in-addr.arpa. -www.facebook.com. -external.ak.fbcdn.net. -207.159.152.187.in-addr.arpa. -ads.espectador.com. -tambotur.ru. -pa.starmedia.com. -a6.sphotos.ak.fbcdn.net. -sanjeeve.com. -a3.twimg.com. -external.ak.fbcdn.net. -external.ak.fbcdn.net. -148.56.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -ns.tc-exe.ru. -putzlowitsch.de. -41.243.255.201.in-addr.arpa. -www.election-presidentielle.com. -38.96.128.67.in-addr.arpa. -api.twitter.com. -diariowebstardoll.blogspot.com. -nctc.com.s6b1.psmtp.com. -www.facebook.com. -tdcsgwxd1.63cx. -98.116.144.189.in-addr.arpa. -robert.de. -js2.wlxrs.com. -phillipsandtemro.com. -44.27.247.69.in-addr.arpa. -extrapetiteblogroll.blogspot.com. -connect.facebook.net. -static.ver-pelis.net. -photos-b.ak.fbcdn.net. -o.facebook.com. -cfg.smartshopper.com. -ecnu38522.37cd. -a.root-servers.net. -28.1.168.192.in-addr.arpa. -server9.fulltono.com. -229.162.49.200.in-addr.arpa. -www.lamatanza.gov.ar. -f.chtah.com. -_725_93_3. -ajax.googleapis.com. -_564_90_7. -52.160.234.189.in-addr.arpa. -dns.msftncsi.com. -global.ard.yahoo.com. -kennametal.com. -wzeu.ask.com. -msn.es. -_920_33_4. -ec.atdmt.com. -profile.ak.fbcdn.net. -249.205.178.186.in-addr.arpa. -clock.fmt.he.net. -photos-d.ak.fbcdn.net. -ap.nic.in. -support.microsoft.com. -ksn2-12.kaspersky-labs.com. -0806accac1.org. -deformacionprofesional.blogspot.com. -168.238.69.190.in-addr.arpa. -vidasanayfelicidad.blogcindario.com. -www.suffolkmaths.co.uk. -www.daetsid.upv.es. -discovereddreams.com. -time.windows.com. -sandroses.com. -toolbar.aol.com. -www.numaticengineering.com. -translate.google.com.mx. -teredo.ipv6.microsoft.com. -google.com. -tasteofbritain.com. -apps.facebook.com. -rmxlabs.ru. -htc2.accu-weather.com. -200.142.56.186.in-addr.arpa. -www.teveonline.net. -ib.adnxs.com. -11.21.89.69.in-addr.arpa. -ddtrslab.blogspot.com. -a.root-servers.net. -i4.ytimg.com. -managedforexbrokers.com. -celebrityphotosnews.files.wordpress.com. -foros.3dgames.com.ar. -anuncios-comunidad.vivastreet.com.mx. -mx2.free.fr. -www.google-analytics.com. -pwindow.ru. -sn1msg3020234.sn1.gateway.edge.messenger.live.com. -252.88.92.186.in-addr.arpa. -img.rankplan.net. -alkhaleej.com.sa. -dnl-19.geo.kaspersky.com. -haymarket.btsdev.net. -mscrl.microsoft.com. -fb.trove.com. -e693i1pqz.84xi. -www.facebook.com. -pixel.facebook.com. -on.fb.me. -time.chttl.com.tw. -js.revsci.net. -ocsp.digicert.com. -cfgommausa.com. -static.ak.fbcdn.net. -mydomainname.com. -www.cnnturk.com. -www.yourtrafficstarterblog.com. -236.111.93.213.in-addr.arpa. -www.friend2friend.com. -_213_27_0. -sites.google.com. -551qev521.d54n6b0t. -sonawebzone.blogspot.com. -www.easy-dating.org. -marilynmanson.shop.bravadousa.com. -183.97.10.186.in-addr.arpa. -www.google.com. -115.90.252.189.in-addr.arpa. -www.facebook.com. -61.37.221.190.in-addr.arpa. -www.youtube.com. -imexsa.com. -cox.net. -www.xvideos.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -img1.wsimg.com. -feminidadconsciente.es.tl. -crl.microsoft.com. -a.root-servers.net. -api.twitter.com. -www.decoundstyle.de. -playagain.es. -www.stateofartacademy.com. -www.valentine.com. -static.2mdn.net. -mqppxz198.10tq. -static.ak.fbcdn.net. -125.47.170.189.in-addr.arpa. -www.internetcultural.org. -136.30.152.85.in-addr.arpa. -www.dbspublicidad.com.mx. -www7.pic-upload.de. -irc.purchaseservice.com. -profile.ak.fbcdn.net. -xenoborg.blogspot.com. -zynga.tm. -safebrowsing-cache.google.com. -27.86.248.189.in-addr.arpa. -www.connect.facebook.com. -a8.sphotos.ak.fbcdn.net. -y12fcu.org. -a.root-servers.net. -a.analytics.yahoo.com. -descargarlibrosde.com. -twitter.com. -9.1.211.186.in-addr.arpa. -www.taringa.net. -safebrowsing.clients.google.com. -9gag.com. -view.atdmt.com. -a.root-servers.net. -159.135.212.201.in-addr.arpa. -ssl.gstatic.com. -50.166.171.69.in-addr.arpa. -service.collarity.com. -www.cineticket.com.mx. -congafoods.com.au. -www.softonic.jp. -phoenixtrucklines.com. -www.facebook.com. -a.root-servers.net. -developers.facebook.com. -www10.0zz0.com. -129.114.239.201.in-addr.arpa. -t2.gstatic.com. -www.racingbetter.co.uk. -safebrowsing.clients.google.com. -traductoringlesespanol.mobi. -shipping.lauritz.com. -a2.da1.akamai.net. -mail.donet.com. -photos-c.ak.fbcdn.net. -www.ibit.org. -1.220.181.189.in-addr.arpa. -mail.acornmedia.com. -strelnasanatoriy.ru. -www.marsden.com. -ipm.avira.com. -api.twitter.com. -twitter.com. -smtp.renault.fr. -www.facebook.com. -146.talkgadget.google.com. -a1007.w43.akamai.net. -107.116.203.87.in-addr.arpa. -www.tibcommunity.com. -competitrack.com.s8b2.psmtp.com. -www.amivisible.org. -wolframcdn.com. -prointec.es. -252.29.151.187.in-addr.arpa. -www.astradur.is. -maplesugarshack.net. -i1.ytimg.com. -93.194.87.190.in-addr.arpa. -198.77.216.223.in-addr.arpa. -seupdate.360safe.com. -www.facebook.com. -www.bloglines.com. -www.black.100topsites.net. -142.50.30.189.in-addr.arpa. -trosch.com.inbound10.mxlogic.net. -safebrowsing-cache.google.com. -a.root-servers.net. -cityvillefb1.static.zgncdn.com. -www.tripadvisor.com.mx. -api.twitter.com. -az-rmt.osprint.ru. -login.yahoo.com. -www.redtubexvideos.com. -108.84.105.186.in-addr.arpa. -oooevroinvest.ru. -mamortgage.com. -caobasecurities.com. -www.culpepper.com. -cdn.cxense.com. -data.mobclix.com. -photos-a.ak.fbcdn.net. -cdn.doclix.com. -pix04.revsci.net. -alhama.com. -www.el-tallercito.com. -tracker.mytorrenttracker.com. -www.artistdirect.com. -www.pepper.pk. -117.20.49.190.in-addr.arpa. -a.root-servers.net. -. -istockanalyst.com. -www.trend-uk.com. -188.44.58.186.in-addr.arpa. -fblog-chismes.blogspot.com. -ak1.abmr.net. -compadreorock.blogspot.com. -ddl-zone.org. -external.ak.fbcdn.net. -baby.shop.ebay.com. -zynga2-a.akamaihd.net. -a4.sphotos.ak.fbcdn.net. -s1.apollolv.adocean.pl. -123.32.64.76.in-addr.arpa. -www.ustream.tv. -mmv.admob.com. -www32.patrz.pl. -s2jl7vqg5.j23e5d7q. -csi.gstatic.com. -limelight.cedexis.com. -versioncheck.addons.mozilla.org. -152.232.171.69.plus.bondedsender.org. -estore.pubeasyschool.com. -a.root-servers.net. -149.6.113.76.in-addr.arpa. -b.scorecardresearch.com. -profile.ak.fbcdn.net. -partner.googleadservices.com. -teredo.ipv6.microsoft.com. -asciinickbuilder.softonic.com. -mail.superlink.ru. -ax.su.itunes.apple.com. -www3.oovoo.com. -49.147.220.66.in-addr.arpa. -www.youtube.com. -www.google.com. -a1108.da1.akamai.net. -mscrl.microsoft.com. -35.114.1.186.in-addr.arpa. -kirbos.net. -mail.uniwebinc.com. -check4.facebook.com. -willhelm-cinefilo.blogspot.com. -translate.google.com.mx. -pagead2.googlesyndication.com. -track.searchignite.com. -photos-a.ak.fbcdn.net. -router.infolinks.com. -86.169.252.190.in-addr.arpa. -photos-d.ak.fbcdn.net. -api.twitter.com. -weather.wapp.wii.com. -www.autopart.com. -cgi1.ebay.com. -ganardineroeninternet101.com. -nsall.huawei.com. -js.wlxrs.com. -217.134.68.118.in-addr.arpa. -widgets.twimg.com. -nordeus.hs.llnwd.net. -www.kemi.org. -junny.de. -fr.y8.com. -www.msnarea.com. -au.pool.ntp.org. -mathildaastrand.tumblr.com. -a1911.phobos.apple.com. -www.themorristribe.com. -aluni.net. -vthumb.ak.fbcdn.net. -apps.facebook.com. -www.update.microsoft.com. -smtp3.aceaspa.it. -fbcdn-profile-a.akamaihd.net. -_775_26_9. -www.emusic.com. -static-resource.np.community.playstation.net. -mail.catapultprofiling.com. -216.99.219.81.in-addr.arpa. -blog.lydiapintscher.de. -rrcaribbean.com. -228.30.135.187.in-addr.arpa. -billing.sharo4ka.ru. -dns.msftncsi.com. -www.bloomberg.com. -sp.cwfservice.net. -216.234.171.1.in-addr.arpa. -mail2.hmgmt.com. -u.goal.com. -pubads.g.doubleclick.net. -barbantesaofrancisco.blogspot.com. -www.momsexland.com. -bar.searchqu.com. -2.5.204.201.in-addr.arpa. -makeshift-designs.co.cc. -apps.facebook.com. -alerts.conduit-services.com. -despiertatuqueduermes.blogspot.com. -106.157.138.190.in-addr.arpa. -api.facebook.com. -a5.sphotos.ak.fbcdn.net. -connect.facebook.net. -shar.es. -selectmortgageresources.com. -ksn6-12.kaspersky-labs.com. -sc19.rules.mailshell.net. -a8.sphotos.ak.fbcdn.net. -100.54.50.190.in-addr.arpa. -pencor.com. -199.0.168.192.in-addr.arpa. -vcs2.msg.yahoo.com. -52.183.210.201.in-addr.arpa. -66.59.204.187.in-addr.arpa. -faldin.ru. -a-0.19-2109f071.c010083.1518.19d4.3ea1.410.0.76j2nh7aft59gpznre2b33aszj.avqs.mcafee.com. -www.sub5zero.com. -sc2.rules.mailshell.net. -teredo.ipv6.microsoft.com. -roncallihs.org. -danniiminogueofficial.blogspot.com. -mail.conninc.com. -mail.rialcom.ru. -ansarenterprises.com. -developers.facebook.com. -ticketalternative.com. -liveupdate.symantecliveupdate.com. -row.bc.yahoo.com. -luckyshoes.com.2.arsmtp.com. -cdn.qpn.360.cn. -instagr.am. -fbcdn-profile-a.akamaihd.net. -www.google-analytics.com. -google.svstyle.com.ua. -17.156.229.190.in-addr.arpa. -67.636569706d736e.636f6d.80hcf2ec172.webcfs00.com. -147.1.201.72.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -graphic-inline.co.uk. -65.133.243.201.in-addr.arpa. -234.61.217.189.in-addr.arpa. -171.179.92.186.in-addr.arpa. -oakmitsui.com. -54.12.133.186.in-addr.arpa. -196.185.29.186.in-addr.arpa. -www.dentonisd.org. -imgditan.mycollect.net. -a.root-servers.net. -234.148.151.79.in-addr.arpa. -www.gstatic.com. -watmidco.net. -cc-net.net. -219.164.79.190.in-addr.arpa. -yu.elearning.yu.edu. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.do-m.ru. -optimized-by.rubiconproject.com. -b.scorecardresearch.com. -195.251.44.200.in-addr.arpa. -www.facebook.com. -sa2.ttu.ee. -mx2.jbaengr.com. -xxcal.com.s8b1.psmtp.com. -www.upamayorista.com.ar. -a6.sphotos.ak.fbcdn.net. -cdn-9.pics.hardsextubepremium.com. -a8.sphotos.ak.fbcdn.net. -mx1.brighthorizons.com. -profile.ak.fbcdn.net. -www.googleadservices.com. -a6.sphotos.ak.fbcdn.net. -app.my.4399.com. -backofficesite.epyte.com. -240.166.121.189.in-addr.arpa. -mail.cirrusassociates.com. -26103.ua.all.biz. -a998.mm1.akamai.net. -mail-attachment.googleusercontent.com. -148.30.135.190.in-addr.arpa. -filter1.natski-1.mailguard.com.au. -autos.mercadolibre.com.ar. -170.5.48.186.in-addr.arpa. -sdparts.com.s6b2.psmtp.com. -cs274.vk.com. -myimagingexam.com. -www.clickhereforpantyhose.com. -surcon.ru. -photos.voyage-prive.es. -smtp.alacranedizioni.it. -a5.sphotos.ak.fbcdn.net. -tenzing.fmpub.net. -storage.surfingbird.ru. -annettevandenbosch.nl. -chat.online.citi.com. -m.adnxs.com. -www.google.com. -concesionarias.net. -a1294.w20.akamai.net. -a394.phobos.apple.com. -190.64.54.208.in-addr.arpa. -developers.facebook.com. -mail.pdqpayroll.net. -a8.sphotos.ak.fbcdn.net. -www.linkedin.com. -www.chrono24.pt. -179.44.253.212.in-addr.arpa. -_221_11_9. -pagead2.googlesyndication.com. -photos-e.ak.fbcdn.net. -www.facebook.com. -rheagl.com. -63.150.114.190.in-addr.arpa. -20.234.187.124.in-addr.arpa. -csi.gstatic.com. -aol.com. -www.jgmb829.com. -www.ardillanet.com. -vanessahudgens.silverback.sparkart.net. -8fhmajt9e.b56j0n5d. -www.blackdragonsperu.com. -156.137.55.182.in-addr.arpa. -223.14.119.68.in-addr.arpa. -promotions.newegg.com. -www.elnuevoexponente.blogspot.com. -www.elementtuning.com. -ad.yieldmanager.com. -209.96.114.201.in-addr.arpa. -s.youtube.com. -go.srvnow.com. -cdn.api.twitter.com. -apps.facebook.com. -223.103.10.186.in-addr.arpa. -filatina.wordpress.com. -pubads.g.doubleclick.net. -eircommusichub.ie. -pagead2.googlesyndication.com. -www.ullapopken.com. -listado.deremate.com.ec. -rya.rockyou.com. -www.6rb.com. -a.root-servers.net. -www.losroblerinos.cl. -www.facebook.com. -ads.trafficjunky.net. -45.28.54.187.in-addr.arpa. -ax.init.itunes.apple.com. -anaconda-manifesto.blogspot.com. -230.157.172.78.in-addr.arpa. -ijasamxs2.k79t4q2s. -www.ibc-asia.com. -. -www.lakelandtimes.com. -244.224.0.68.in-addr.arpa. -broenserud.com. -googleads.g.doubleclick.net. -a.root-servers.net. -safebrowsing.clients.google.com. -chickamauga.com. -www.it-bs.com.ar. -www.wikeez.com. -a1294.w20.akamai.net. -231.116.156.189.in-addr.arpa. -external.ak.fbcdn.net. -b.scorecardresearch.com. -data.flurry.com. -s19.radikal.ru. -a996.mm1.akamai.net. -ajax.googleapis.com. -www.escortpoint.com. -sindia.polyvore.com. -contentserv.brandaffinity.net. -cs9933.vk.com. -www.tabacoyron.dimelorecords.com. -www.facebook.com. -google.com. -www.vocerodelcafe.com. -stitchstud.podbean.com. -mail.chemreport.com. -dnl-01.geo.kaspersky.com. -209.19.240.201.in-addr.arpa. -star.facebook.com. -rotabanner.nsk.ru. -teredo.ipv6.microsoft.com. -165.107.26.190.in-addr.arpa. -is.gd. -www.adobe.com. -ksn1-11-part2.kaspersky-labs.com. -paintballtoro.es. -pagead2.googlesyndication.com. -www.sammynetbook.com. -photos-a.ak.fbcdn.net. -cdn1.ads.brazzers.com. -photos-a.ak.fbcdn.net. -www.2darray.net. -cdn.betrad.com. -a.root-servers.net. -a.root-servers.net. -mail.fastmarketmail.com. -46-courier.push.apple.com. -ssl.gstatic.com. -176.91.84.186.in-addr.arpa. -blogicars.com. -b76.photo.store.qq.com. -dgapartners.com.2.0001.arsmtp.com. -t1.gstatic.com. -searchjs.s3.amazonaws.com. -mail.google.com. -download983.avast.com. -126.246.98.171.in-addr.arpa. -www.programmingsimplified.com. -pixel.facebook.com. -cfh.wapp.wii.com. -diario.latercera.com. -img268.imageshack.us. -mail.thewisegroup.co.uk. -safebrowsing-cache.google.com. -analogartsensemble.net. -www.portube.com. -194.111.113.186.in-addr.arpa. -www.smartadserver.com. -i4.ytimg.com. -external.ak.fbcdn.net. -a.root-servers.net. -njaes.rutgers.edu. -push.apple.com. -a4.sphotos.ak.fbcdn.net. -222.23.31.190.in-addr.arpa. -mx.nehemiahinstitute.com. -9.231.52.24.in-addr.arpa. -blogskinny.com. -c-0.19-a3095081.10023.1518.19d4.3ea1.210.0.389ipn6vifghc4ezzc8t24r8fv.avqs.mcafee.com. -www.granpared.com. -www.bing.com. -developers.facebook.com. -a.root-servers.net. -166.199.193.201.in-addr.arpa. -i795.photobucket.com. -co.marin.co.us. -www.seldomparty.com. -www.stardoll.com. -130.252.200.190.in-addr.arpa. -a.root-servers.net. -img.rincondelvago.com. -www.easycounter.com. -ho1.eunic.net.ua. -www.googletagservices.com. -teredo.ipv6.microsoft.com. -nardei.com. -mx.davidkjefferies.com. -107.130.188.189.in-addr.arpa. -thebestbankrates.com. -a7.sphotos.ak.fbcdn.net. -developers.facebook.com. -www.gstatic.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -s-static.ak.fbcdn.net. -3ba1f48a4b3e87fbdcea52325266e210.info. -www.myhatespace.com. -people.hankyung.com. -g.msn.com. -mx.youtube.com. -www.parentsmedguide.org. -www.cotodigital.com.ar. -configuration.apple.com. -bks.co.za. -www.facebook.com. -f.facemoods.com. -firefoxupdate.dealply.com. -www.meteosort.com. -pt-br.facebook.com. -a6.sphotos.ak.fbcdn.net. -us.data.toolbar.yahoo.com. -apps.facebook.com. -medexpress32.ru. -ad.yieldmanager.com. -todaunaexperienciasermama.blogspot.com. -usersystem783aa.ru. -3.bp.blogspot.com. -newsrss.bbc.co.uk. -priorityinfo.com. -dns.msftncsi.com. -a-0.19-a309e081.c0c0083.1518.19d3.3ea1.410.0.51iw1za3evdf6rvgbu2994uqkb.avqs.mcafee.com. -static.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -www.theinquirer.es. -jnba.com.s6b2.psmtp.com. -profile.ak.fbcdn.net. -a2.mzstatic.com. -114.185.120.174.in-addr.arpa. -cdn1.clkads.com. -www.barcelonainternships.com. -apis.google.com. -dns.msftncsi.com. -eshop.tutorialonline.biz. -a.root-servers.net. -119.183.228.72.in-addr.arpa. -photos-b.ak.fbcdn.net. -maqil.ru. -developers.facebook.com. -_ldap._tcp.servidor.local. -dailynews.anniesattic.com. -195.185.159.187.in-addr.arpa. -a.root-servers.net. -www.seriesyonkis.com. -a.root-servers.net. -cinismoilustrado.bigcartel.com. -img18.pixiv.net. -teredo.ipv6.microsoft.com. -profile.ak.fbcdn.net. -d2055744.instant.xoom.it. -148.142.36.83.in-addr.arpa. -mail.megapolis-pnz.ru. -hitback.ru. -2kfrnv7j6.x20w3j1c. -accounts.google.com. -109.126.151.189.in-addr.arpa. -www.play-music.com. -xfem7gnot.72rz. -nursing.edu.au. -www.lacostena.com.mx. -sufism.org. -community.ebay.com. -www.facebook.com. -mx2.hotmail.com. -149.212.144.189.in-addr.arpa. -venta.odm.com.mx. -time.chttl.com.tw. -survivingtheworld.net. -mac.ign.com. -go.microsoft.com. -beneast.co.uk. -brier.afsc.k12.ar.us. -www.palabraspordinero.com. -www.4pnc.com. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -a.root-servers.net. -ajax.googleapis.com. -photos-d.ak.fbcdn.net. -bay.messenger.services.live.com. -adserving.cpxinteractive.com. -21.201.59.201.in-addr.arpa. -mail.wegowild.com. -mx.divillarosa.com. -2.238.190.186.in-addr.arpa. -caras.com.mx. -itunes.apple.com. -228.226.144.222.in-addr.arpa. -time.windows.com. -mds-oman.com. -mail.banktcnb.com. -186.225.110.71.in-addr.arpa. -xxxroom.net. -profile.ak.fbcdn.net. -gbglawoffice.com. -vmwebfe.voice.yahoo.com. -www.icascanada.ca. -spalatvia.ru. -179.150.138.188.in-addr.arpa. -www.gstatic.com. -cs4762.vkontakte.ru. -g.live.com. -cpersonnel.com. -trophy.ww.np.community.playstation.net. -67.242.35.189.in-addr.arpa. -www.mozilla.com. -167.197.130.201.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -62.103.11.190.in-addr.arpa. -10.50.125.213.in-addr.arpa. -mailbag.adnet-sys.com. -watch-dragonball.com. -usuarios.maptel.es. -a.root-servers.net. -mail.truckwriters.com. -a.root-servers.net. -misvideos-curiosos.com. -s-external.ak.fbcdn.net. -translate.googleapis.com. -16.1.168.192.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -www.suurland.com. -a7.sphotos.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -114.105.168.86.in-addr.arpa. -syndication.exoclick.com. -photos-h.ak.fbcdn.net. -a.root-servers.net. -dns.msftncsi.com. -7-courier.push.apple.com. -mountainviewfruit.com. -109.11.182.186.in-addr.arpa. -cdn1.image.spankwire.phncdn.com. -168.202.163.67.in-addr.arpa. -www.clairol.ie. -www.starclean.de. -141.237.191.190.in-addr.arpa. -www.mtvla.com. -onepiece-revolution.foroactivo.mx. -www.brookingsregister.com. -157.67.188.189.in-addr.arpa. -login.live.com. -i4.ytimg.com. -34.166.29.76.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -telia.com\". -www.gstatic.com. -i1.ytimg.com. -play.cultures-online.gamigo.es. -mygadgets99.com. -csi.gstatic.com. -a.root-servers.net. -developers.facebook.com. -accounts.google.com. -autozentrum-ebber.de. -www.kimfoundation.com. -tura.evenkya.ru. -158.104.69.189.in-addr.arpa. -mail.mhs-pa.org. -apps.facebook.com. -128.215.43.201.in-addr.arpa. -a.root-servers.net. -170.10.25.177.in-addr.arpa. -auth.bleast1.perfectworld.com. -ad.harrenmedianetwork.com. -98.22.220.189.in-addr.arpa. -126.181.229.190.in-addr.arpa. -121.163.60.186.in-addr.arpa. -panicsubtitulado.blogspot.com. -a6.sphotos.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -172.166.7.199.in-addr.arpa. -www.newmediaexplorer.org. -52.69.90.78.in-addr.arpa. -iris.eonet.ne.jp. -www.kon.org. -db._dns-sd._udp.lan. -telefunda.blogspot.com. -img.mediaplex.com. -235.11.164.85.in-addr.arpa. -craig.se. -secure.base.wlxrs.com.akadns.net. -nl.webcams.travel. -vb.grorbnat.com. -sohoo.com. -crl.microsoft.com. -www.mtvla.com. -10.74.161.187.in-addr.arpa. -www.facebook.com. -www.oopsydaisybaby.com. -emc.org. -www.mediafire.com. -nutricionistaonline.org. -224.78.174.190.in-addr.arpa. -antfarminteractive.com. -bpatruth.com. -225.216.183.189.in-addr.arpa. -www.circovip.com. -a1408.w43.akamai.net. -maps.googleapis.com. -photos-b.ak.fbcdn.net. -unsw.edu.au. -www.gpwiki.org. -bw1.midasplayer.com. -a.root-servers.net. -static.ak.connect.facebook.com. -mx.netelisys.com. -sites.google.com. -l.yimg.com. -www.internetfrog.com. -apps.facebook.com. -dnl-01.geo.kaspersky.com. -www.disegnicolorare.com. -photos-f.ak.fbcdn.net. -time.windows.com. -img4.ask.fm. -pixel.facebook.com. -www.fbskins.com. -ar-ar.facebook.com. -mail.rivercitysalesinc.com. -kidszone1.com. -1804289383.localhost. -clients1.google.com. -nsx.sec.np.dl.playstation.net. -www.eximeno.com. -www.casayjardin.net.ve. -www.scrapbookmax.com. -a.root-servers.net. -www.abrconsulting.com. -vergelcastro.atspace.com. -urs.microsoft.com. -www.google.com. -www.carlosmaldonado.org. -139.196.203.190.in-addr.arpa. -206.230.44.124.in-addr.arpa. -72.239.79.190.in-addr.arpa. -jqueryjs.googlecode.com. -qea:q2ubq.37pr. -accountservices.msn.com. -dr._dns-sd._udp.home. -. -bigpond.com. -choconaturebio.choconature.com. -autoaccessories4less.com. -desmond.yfrog.com. -mail2.psipack.com. -br.fling.com. -www.bleachhforos.com. -a.root-servers.net. -www.facebook.com. -30.57.173.190.in-addr.arpa. -api.facebook.com. -latinas.buenchat.com.ar. -www.switchedonart.com. -www.losdejalisco.blogspot.com. -73.246.144.86.in-addr.arpa. -a.root-servers.net. -mail.capobeach.com. -a3.sphotos.ak.fbcdn.net. -artandculturecenter.org. -googleads.g.doubleclick.net. -www.manebooks.com. -redbluff.com. -a.root-servers.net. -translate.googleapis.com. -239.7.89.201.in-addr.arpa. -49.234.67.190.in-addr.arpa. -rad.msn.com. -www.asurline.com.ar. -146.53.223.189.in-addr.arpa. -im.rediff.com. -dns.msftncsi.com. -api-read.facebook.com. -pagead2.googlesyndication.com. -6to4.ipv6.microsoft.com. -chomp.com. -www.update.microsoft.com. -g.live.com. -photos-d.ak.fbcdn.net. -dc336.4shared.com. -ad-g.doubleclick.net. -a.root-servers.net. -rv.ginyas.com. -i183.photobucket.com. -themancavedaily.com. -57.201.161.189.in-addr.arpa. -hi-in.facebook.com. -jobnetworks.com. -www.xatech.com. -ocsp.comodoca.com. -safebrowsing-cache.google.com. -131.209.95.76.in-addr.arpa. -205.15.219.85.in-addr.arpa. -s.sputnik.mail.ru. -twitter.com. -sct.com. -photos-c.ak.fbcdn.net. -games.9o9i.com. -gissler-pass.de. -photos-f.ak.fbcdn.net. -filter1.gofast.mailplatform.co.uk. -prisonpolicy.org. -smart.montiera.com. -37-courier.push.apple.com. -210.131.149.186.in-addr.arpa. -151.79.103.91.in-addr.arpa. -photos-d.ak.fbcdn.net. -wnep.com. -devices.live.com. -mail.owenpugh.com. -ads.revsci.net. -a.collective-media.net. -remc11.k12.mi.ua. -medrocktraining.co.uk. -179.81.222.190.in-addr.arpa. -cwwis.com. -bitly.com. -rad.msn.com. -groups.google.com. -. -reports.gate2shop.com. -222.1.143.189.in-addr.arpa. -external.ak.fbcdn.net. -1tiemposmodernos.blogspot.com. -a.root-servers.net. -184.228.234.188.in-addr.arpa. -nogoingback-thereisonlyforward.blogspot.com. -gdata.youtube.com. -55.51.141.201.in-addr.arpa. -yahoo.ca. -a8.sphotos.ak.fbcdn.net. -login.live.com. -www.pepperjamnetwork.com. -catalogphoto.goo-net.com. -b.scorecardresearch.com. -dc345.4shared.com. -a4.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -symresources.com. -www.bing.com. -www.youtube.com. -s-static.ak.fbcdn.net. -asociacionminga.org. -tap2-cdn.rubiconproject.com. -c-0.19-a3098481.483.1518.19d4.3ea1.210.0.lk3skchnhslkqeilqu72vadqzj.avqs.mcafee.com. -studio-grad.ru. -toysdownunder.com. -42.48.56.200.in-addr.arpa. -newhogwarts.mi-foro.es. -26.240.72.189.in-addr.arpa. -evsecure-crl.verisign.com. -webcache.googleusercontent.com. -www.google-analytics.com. -www.tiendavirtualupb.com. -47.20.145.189.in-addr.arpa. -197.102.214.189.in-addr.arpa. -70.244.177.189.in-addr.arpa. -hq.umland.com.my. -arteexpress.com. -tc3.easythumbhost.com. -hotmail.com. -63.118.2.181.in-addr.arpa. -www.reedpumps.com. -www.bowers-wilkins.co.uk. -shakerroad.pvt.k12.nh.us. -92.11.185.187.in-addr.arpa. -gastronomiayunapizca.blogspot.com. -update.messenger.yahoo.com. -158.85.11.186.in-addr.arpa. -www.thumbs.lesbocollection.com. -www.greenbrier.com. -www.thekittenranch.com. -tribune.ie. -keramida.com.inbound10.mxlogic.net. -apps.facebook.com. -sdo.gsfc.nasa.gov. -230.211.141.201.in-addr.arpa. -csi.gstatic.com. -fr-fr.facebook.com. -www.armagetronad.net. -platform.twitter.com. -taxi-novaya-era.ru. -fbcdn-sphotos-a.akamaihd.net. -dr._dns-sd._udp.c. -de-de.facebook.com. -groups.google.com.mx. -a.root-servers.net. -www.9cloudsebookmarketingandpromotions.com. -photos-e.ak.fbcdn.net. -aca.quik.com. -geo.tp-cdn.com. -feedburner.google.com. -www.stroitelstwo.ru. -s2.youtube.com. -core.caster.espn.go.com. -mx.bluephoenixmedia.com. -talkgadget.google.com. -photos-c.ak.fbcdn.net. -comcast.net. -62.47.22.129.in-addr.arpa. -www.genovabene.it. -www.todoanimes.com. -isatap.covad.net. -122.169.44.81.in-addr.arpa. -i1.ytimg.com. -translate.googleapis.com. -dns.msftncsi.com. -ns1.v6.wow.lk. -b-0.19-21090008.2020580.1518.19d3.3ea1.410.0.w63gpf5wia6jnshhq6na3bjhnj.avqs.mcafee.com. -www.peaceteam.net. -creative.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -cyklingcarrier.com. -feedburner.google.com. -es-la.facebook.com. -a.root-servers.net. -smtp.historiador.eu. -mail.womenclub.ru. -a.root-servers.net. -segment-pixel.invitemedia.com. -redir.metaservices.microsoft.com. -intohome.ru. -www.alterway.fr. -profile.ak.fbcdn.net. -spectrumfiltration.com. -video.google.com. -mx.youtube.com. -www.tviberica.net. -mypearsonmobile.com. -siriquestions.com. -pt-br.facebook.com. -www.alpsmountaineering.com. -google.com. -uploadkeep.com. -api.twitter.com. -profile.ak.fbcdn.net. -developers.facebook.com. -69.46.34.189.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -www.facebook.com. -www.loccitane.ru. -b-0.19-31005079.11081.1518.19d4.36d4.210.0.ngqff7bnf2tq9nf6itwpzrlje6.avqs.mcafee.com. -77.250.58.83.in-addr.arpa. -feeds.bbci.co.uk. -95.33.249.77.in-addr.arpa. -188.142.100.118.in-addr.arpa. -art-inc.com. -docs.google.com. -www.google.com.mx. -stickeen.com. -a1294.w20.akamai.net. -50.34.51.190.in-addr.arpa. -logs.aiya.com.cn. -cookex.amp.yahoo.com. -dns.msftncsi.com. -plus.google.com. -searchclient.live.net. -86.228.192.68.in-addr.arpa. -www.john-cena-posters.com. -willhill.vo.llnwd.net. -a7.sphotos.ak.fbcdn.net. -124.103.203.190.in-addr.arpa. -s.gravatar.com. -julesandjames.blogspot.com. -certificates.starfieldtech.com. -static.ak.fbcdn.net. -docs.google.com. -energistix.com. -227.57.184.109.in-addr.arpa. -1.223.74.212.in-addr.arpa. -18.167.27.201.in-addr.arpa. -mail.moryazilim.com. -books.google.com.mx. -sp.search-results.com. -c-0.19-23095081.10023.1518.19d4.2f4a.210.0.1heevkgp7p8h9nzaareieu62mb.avqs.mcafee.com. -videodown.baofeng.com. -76.221.242.189.in-addr.arpa. -annonse.sol.no. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -sdfsda.com. -153.194.121.82.zz.countries.nerd.dk. -a5.sphotos.ak.fbcdn.net. -www.google.com. -satair.com. -feedproxy.google.com. -google.com. -www.tierradeviajes.com. -linehaullogistics.com. -9z4l:8mtf.y32v0b3f. -comment.2008.sina.com.cn. -liard.ru. -barby08bsas.wordpress.com. -sac.gti.mcafee.com. -www.ver-pelis.net. -67.87.131.189.in-addr.arpa. -231.140.207.98.in-addr.arpa. -espasa.es. -uc. -photos-b.ak.fbcdn.net. -es-la.facebook.com. -i.ytimg.com. -a6.sphotos.ak.fbcdn.net. -mail.mukhin.ru. -profile.ak.fbcdn.net. -vesta.ocn.ne.jp. -home.live.com. -ping.chartbeat.net. -thumbs4.ebaystatic.com. -www3.filthydatez.com. -www.flickr.com.home. -a2.sphotos.ak.fbcdn.net. -qzone.qq.com. -77.250.34.156.in-addr.arpa. -mail.rus.net. -entretenimiento.prodigy.msn.com. -www.green.com. -fimen.ru. -178.229.114.189.in-addr.arpa. -powaypopwarner.com. -fwjolp:89.84ll. -fatsofa.com. -mx1.sed.ru. -199.218.56.79.in-addr.arpa. -nzbirds.com. -arabinform.com. -ads.tlvmedia.com. -wd-edge.sharethis.com. -91.31.81.186.in-addr.arpa. -tv.gsp.ro. -twitter.com. -plantayflor.blogspot.com. -207.92.140.189.in-addr.arpa. -www.hotmail.com. -gfx3.hotmail.com. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -hotmail.com. -bedrosiantile.com. -dnl-01.geo.kaspersky.com. -247.230.213.83.in-addr.arpa. -trackedbyet.info. -mirdetstva.ru. -static.ak.fbcdn.net. -www-qporama-805569008.eu-west-1.elb.amazonaws.com. -34.11.20.92.in-addr.arpa. -100.35.30.190.in-addr.arpa. -rx6z9n69v.o96j5y8p. -a2.sphotos.ak.fbcdn.net. -162.240.49.190.in-addr.arpa. -www.spanish-food.org. -a.root-servers.net. -api.twitter.com. -verify.speedbit.com. -ax.search.itunes.apple.com. -86.225.48.174.in-addr.arpa. -media3.picsearch.com. -www.cupoint.com. -cloudsync.dm.origin.com. -svetservice.ru. -a995.mm1.akamai.net. -www.efd.admin.ch. -153.97.65.173.in-addr.arpa. -118.122.236.123.in-addr.arpa. -americantelnet.com. -forum.anlaids.org. -api.twitter.com. -www.juegos.com.es. -dnl-01.geo.kaspersky.com. -www.twitter.com. -0-149.channel.facebook.com. -75.36.48.85.in-addr.arpa. -www.mbaup.com.au. -s3.amazonaws.com. -static.ak.fbcdn.net. -199.149.47.187.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a3.da1.akamai.net. -lp.longtailvideo.com. -b-0.19-220af089.10081.1518.19d4.3ea1.410.0.fckzbrmw6r9bt5bw42zjr48d7j.avqs.mcafee.com. -www.torinofc.it. -clinique-la-casamance.fr. -76.29.134.189.in-addr.arpa. -maps.google.com. -apps.facebook.com. -www.duslerforum.org. -www.youtube.com. -dns.msftncsi.com. -www.facebook.com. -clients2.google.com. -mail.next.ru. -leaedbf9j.u82w1k9c. -a5.sphotos.ak.fbcdn.net. -mail2.shelby-sheriff.org. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -css.wlxrs.com. -91.10.68.189.in-addr.arpa. -134.12.53.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -img100.xvideos.com. -www.youtube.com. -www.astroaficion.com. -clients1.google.com. -bhsi.com. -www.google.com. -ad.yieldmanager.com. -developers.facebook.com. -i2.ytimg.com. -connect.facebook.net. -th.wikipedia.org. -232.186.183.189.in-addr.arpa. -adserving.cpxinteractive.com. -246.126.51.201.in-addr.arpa. -www.admissions.ualberta.ca. -u4world.com. -gaiafile.com. -a.root-servers.net. -141.151.253.201.in-addr.arpa. -e566.b.akamaiedge.net. -curiouskangaroos.blogspot.com. -www.linkedin.com. -downloads.networkmagic.com. -static-css.veevr.com. -www.tuifly.com. -a1.sphotos.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.delees.com. -hswenterprises.com. -pop3.hot.glbdns.microsoft.com. -a8.sphotos.ak.fbcdn.net. -www.turbochargers.com. -35.153.232.85.in-addr.arpa. -65.0.113.68.in-addr.arpa. -widgets.amung.us. -i3.ytimg.com. -www.chandrakclarke.com. -euro.mediotiempo.com. -55.13.168.192.in-addr.arpa. -prontarepa.com. -dmcritchie.mvps.org. -static.ak.fbcdn.net. -143.153.121.200.in-addr.arpa. -www.nadieesperfecto.com. -www.wetenschapsforum.nl. -consorcio.ru. -www.mercadolibre.com.mx. -239.210.16.177.in-addr.arpa. -www.amazon.de. -www.paradisecoin.com. -77.41.83.177.in-addr.arpa. -kabuco.de. -rs.sinajs.cn. -shamrockmanagementllc.com. -mz7xi8w2i.i21f8v5r. -196.94.238.41.in-addr.arpa. -apis.google.com. -time.chttl.com.tw. -google.com. -oss.ticketmaster1st.akadns.net. -biblhertz.it. -foil.ru. -a4.sphotos.ak.fbcdn.net. -developers.facebook.com. -veldkamp.net. -api-public.addthis.com. -assetverification.com. -bbns.org. -lh3.googleusercontent.com. -creative.myspace.com. -lumbermens.com.s7a1.psmtp.com. -teas-star.com. -www.fuerzasdeelite.com. -img32.imageshack.us. -profile.ak.fbcdn.net. -203.50.19.186.in-addr.arpa. -hardrock.starcite.com. -s-external.ak.fbcdn.net. -dnl-03.geo.kaspersky.com. -dia-net.ru. -www.onlyamateursteens.com. -sro.whatsapp.net. -dns.msftncsi.com. -www.usadanceshoes.com. -loopingrecursion.com. -156.65.203.190.in-addr.arpa. -civic-club.ru. -www.update.microsoft.com. -basilisk.cebix.net. -ad-g.doubleclick.net. -www.bcr.gob.sv. -hdvysxvvb.64fx. -static.ak.fbcdn.net. -time.chttl.com.tw. -www.youtube.com. -mobilepet-ii-monkey.softonic.com. -166.141.185.78.in-addr.arpa. -documentalesdehistoria.blogspot.com. -233.176.46.186.in-addr.arpa. -182.113.171.201.in-addr.arpa. -241.158.49.190.in-addr.arpa. -img2.uploadhouse.com. -a4.sphotos.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -www.facebook.com. -artistalife.com. -profile.ak.fbcdn.net. -developers.facebook.com. -a.root-servers.net. -linux.softpedia.com. -es-la.facebook.com. -freecyberbabes.clickyou.com. -att.net. -40-courier.push.apple.com. -cumbiadenegros.net. -180.136.26.216.in-addr.arpa. -gfx3.hotmail.com. -bemega.com. -a5.sphotos.ak.fbcdn.net. -www.thebigassblog.com. -a4.sphotos.ak.fbcdn.net. -nuevomundochile.cl. -a7.sphotos.ak.fbcdn.net. -rulezfag.narod.ru. -dnl-01.geo.kaspersky.com. -maps.google.com. -vestidos-de-15-anos1.blogspot.com. -electrowiki.wikidot.com. -www.youtube.com. -fr.mcafee.com. -dawnuk.net. -geometricglobal.com. -metrociti.com. -www.youtube.com. -fbcdn-sphotos-a.akamaihd.net. -secure.wlxrs.com. -hardwaresphere.com. -photos-e.ak.fbcdn.net. -www.gaymapbuenosaires.com. -gfx2.hotmail.com. -apps.facebook.com. -www.tikilive.com. -aosnotify.mac.com. -images.instagram.com. -dart.l.doubleclick.net. -94.55.194.190.in-addr.arpa. -s-static.ak.fbcdn.net. -250.92.63.200.in-addr.arpa. -apps.facebook.com. -cr.starmedia.com. -assets.tp-cdn.com. -images02.olx.com. -sklka.ru. -t1.gstatic.com. -eccbuffalo.com. -dns.msftncsi.com. -a1.sphotos.ak.fbcdn.net. -knowjr.com. -myoasis.colum.edu. -142.14.188.190.in-addr.arpa. -0-292.channel.facebook.com. -s.ytimg.com. -ocsp.verisign.com. -a1739.phobos.apple.com. -graph.facebook.com. -1.34.33.190.in-addr.arpa. -www.google-analytics.com. -www.weather.com. -20.140.19.186.in-addr.arpa. -a.root-servers.net. -hotchyx.com. -sites.google.com. -e-2dj6wjliwidjibp.stats.esomniture.com. -www.despegar.com.ar. -www.pogo.com. -wiki.cihar.com. -www.cleopatraescorts.es. -translate.googleapis.com. -www.molehillempire.ro. -a.root-servers.net. -www.datadesignsb.com. -hombredetuvida.blogspot.com. -a-0.19-a3091081.d1b0082.1518.19d2.3ea1.410.0.qpaiisl2c21jk14tcibq1mcv6t.avqs.mcafee.com. -a.root-servers.net. -smpweb.com.inbound10.mxlogicmx.net. -killerglass.com. -ib.adnxs.com. -photos-b.ak.fbcdn.net. -gdata.youtube.com. -gs-loc.apple.com. -174.31.201.67.in-addr.arpa. -53.217.237.98.in-addr.arpa. -websitetrafficspy.com. -wilmarinc.com.inbound15.mxlogicmx.net. -m.youtube.com. -www.teengirlgirl.com. -www.advanceddermatologypc.com. -lk023.info. -host2.sandlotgames.com. -152.221.111.193.in-addr.arpa. -www.delish.com. -a.root-servers.net. -ci.kk.dk. -mail.hardwaretech.ru. -www.genolevures.org. -asia.perf.glbdns.microsoft.com. -facebook.farmville.com. -proekt-cvetnik.ru. -ws.tapjoyads.com. -www.masalacism.com. -id.google.com.mx. -5.103.31.186.in-addr.arpa. -211.228.49.190.in-addr.arpa. -st.kendincos.com. -79.185.158.189.in-addr.arpa. -68.20.19.186.in-addr.arpa. -cltetg.com.s8b1.psmtp.com. -blog.trade.gov. -24.169.138.75.in-addr.arpa. -rincondeunescritor.ticoblogger.com. -118.162.41.114.in-addr.arpa. -windowsphone.xbox.com. -d24elmu442q75h.cloudfront.net. -mail.redremo.com. -i3.ytimg.com. -_737_73_5. -msginfo.rising.com.cn. -207.4.157.201.in-addr.arpa. -teikovo.tpi.ru. -250.222.58.187.in-addr.arpa. -medlux.ru. -dns.msftncsi.com. -maltanet.net. -activitycheckv6.co.cc. -vhsnewengland.com.s7b2.psmtp.com. -b.scorecardresearch.com. -fei.pro-market.net. -hotmail.com. -254.230.156.189.in-addr.arpa. -cardwhacheng20.blogspot.com. -external.ak.fbcdn.net. -evsecure-ocsp.verisign.com. -d.yimg.com. -lox.lekool.com. -ns3.emerson.com. -documentamania.blogspot.com. -243.183.146.217.in-addr.arpa. -photos-b.ak.fbcdn.net. -220.95.220.201.in-addr.arpa. -external.ak.fbcdn.net. -118.83.161.118.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.google.com. -140.196.165.46.in-addr.arpa. -accounts.google.com. -au.download.windowsupdate.com. -226.128.139.187.in-addr.arpa. -ad.yieldmanager.com. -f6ilrdgkc.66mj. -95.75.153.186.in-addr.arpa. -babi.com. -wherela.com. -developers.facebook.com. -mail.johan.com.my. -ads.smowtion.com. -pixel.facebook.com. -no-replay.alertreceived.com. -143.225.114.201.in-addr.arpa. -63.34.77.190.in-addr.arpa. -a.root-servers.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.onestophumour.com. -crl.globalsign.net. -tk2.greedland.net. -www.cochesjuegos.net. -www.internet-khazana.com. -www.nbastore.com. -db._dns-sd._udp.c. -r.mzstatic.com. -140.198.169.78.in-addr.arpa. -17.233.22.1.in-addr.arpa. -cdn-1.nflximg.com. -gilco.com. -platform.linkedin.com. -136.215.96.121.in-addr.arpa. -205.190.232.200.in-addr.arpa. -teredo.ipv6.microsoft.com. -www.green.com. -teamasia.com. -www.parchis.com. -gad.about.com. -a.root-servers.net. -taawgh.com. -profile.ak.fbcdn.net. -opaygames.com. -2.185.152.75.in-addr.arpa. -68.105.238.220.in-addr.arpa. -89.162.212.89.in-addr.arpa. -a.root-servers.net. -mail.anextour.com. -laaldea.com.mx. -gcdevelopment.ru. -www.youtube.com. -s-external.ak.fbcdn.net. -t2.gstatic.com. -112.157.222.189.in-addr.arpa. -www.goldcoastpower.com. -samsungvuiasr.vlingo.com. -www.cochesrc.net. -barracuda.kempervalve.com. -classicalmusic.about.com. -abcheck.com.s7b1.psmtp.com. -tap-cdn.rubiconproject.com. -179.31.168.192.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -trinitybrand.com. -60.158.249.66.in-addr.arpa. -www.mymelbournehomes.com. -vdkltcxrqdnl.im. -www.kiggr.com. -235.5.243.201.in-addr.arpa. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -eros-expo.ru. -a.root-servers.net. -231.50.254.99.in-addr.arpa. -tpb.tracker.thepiratebay.org. -17.94.127.84.in-addr.arpa. -a.root-servers.net. -clients2.google.com. -zh-cn.facebook.com. -6.186.248.203.in-addr.arpa. -161.133.166.109.in-addr.arpa. -mail0.spinsoft.it. -a151.d.akamai.net. -a199.gi3.akamai.net. -minecraftforo.foroactivo.net. -a7.sphotos.ak.fbcdn.net. -ic.tynt.com. -photos-b.ak.fbcdn.net. -182.231.194.187.in-addr.arpa. -static.ak.fbcdn.net. -docs.google.com. -sa-live.com. -ojodepez-fanzine.blogspot.com. -teredo.ipv6.microsoft.com. -mail.cityofeuclid.com. -27.cim.meebo.com. -local-bay.contacts.msn.com. -www.goldenglowpaints.com. -post-gazette.com.s5a1.psmtp.com. -connect.facebook.net. -owenton.rms.slb.com. -gev.copi.ru. -brandemali.ru. -a.root-servers.net. -253.35.23.4.in-addr.arpa. -smtpgw-1.akhela.com. -secure.moshimonsters.com. -email-telekom.de. -search.twitter.com. -www.google.com. -biejallth.sharkdunle.tm. -www.realtime.net. -creative.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -1.static.sportspickle.cvcdn.com. -fbcdn-sphotos-a.akamaihd.net. -164.129.176.180.in-addr.arpa. -59.249.178.190.in-addr.arpa. -groups.live.com. -photos-a.ak.fbcdn.net. -extended-validation-ssl.verisign.com. -www.dietriffic.com. -loading1.widdit.com. -www.whatithinkabout.com. -elsigloweb.com. -www.facebook.com. -www.coinfactswiki.com. -s2.youtube.com. -imgboot.disqus.com. -ad.xtendmedia.com. -photos-g.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -www.brujadesalem.com.ar. -dl.dropbox.com. -ha18iv:8l.58db. -iesa.com.br. -07hd.com. -roza.su. -collectdolls.about.com. -a2.sphotos.ak.fbcdn.net. -www.connect.facebook.com. -s0.2mdn.net. -www.openbuildings.com. -pixel.facebook.com. -29.6.174.190.in-addr.arpa. -www.usamail1.com. -29.242.211.62.in-addr.arpa. -photo.pic.sohu.com. -de-de.facebook.com. -mashable.com. -www.chrisridley.co.uk. -54.234.86.200.in-addr.arpa. -akorus.com. -www.maydaylivingbrands.com. -assets2.henribendel.com. -mail.wirx.com. -74.38.172.189.in-addr.arpa. -teredo.ipv6.microsoft.com. -130.247.158.189.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -act.presente.org. -3v95bc9wz.97cm. -a4.sphotos.ak.fbcdn.net. -www.facebook.com. -photos-g.ak.fbcdn.net. -papercraft.jhonsryo.com. -a6.sphotos.ak.fbcdn.net. -static.tlavideo.com. -suppliers.chinacommodity.net. -facebook.dirtydancingresort.com. -ar.wikipedia.org. -fnpbzxuwe.c73d1q2e. -www.gees.org. -santiago.clasificadosgratis.cl. -www.segurosvip.com. -checkip.dyndns.com. -cqpz17y9a.f33w3w9i. -www.pos-software.org. -35.28.91.187.in-addr.arpa. -photos-h.ak.fbcdn.net. -0.11-a70e7079.83.1518.18a4.3ea1.210.0.ed1ii45j1ghkf9v3q6pmlamarq.avqs.mcafee.com. -checkip.dyndns.com. -profissaodentista.com.br. -beta.stun.voice.yahoo.com. -a.root-servers.net. -mscrl.microsoft.com. -newportsteel.com. -log.client.akadns.net. -apps.bittorrent.com. -profile.ak.fbcdn.net. -212.131.79.189.in-addr.arpa. -safebrowsing.clients.google.com. -www.spycars.net. -www.anarchyonline.com. -100.30.206.24.in-addr.arpa. -168.130.174.189.in-addr.arpa. -srv2.wa.marketingsolutions.yahoo.com. -pagead2.googlesyndication.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -teredo.ipv6.microsoft.com. -www.suchsmallportions.com. -www.buenamusica.com. -wctatel.net. -sniper1.skec.co.kr. -rs617l3.rapidshare.com. -m.facebook.com. -api.conduit.com. -photos-h.ak.fbcdn.net. -unahotels.it. -assets.informador.com.mx. -_085_65_6. -s.youtube.com. -a5.sphotos.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -hd21.xiaonei.com. -www.facebook.com. -pt-br.facebook.com. -www.facebook.com. -netscape.net. -grandfantasia.aeriagames.com. -addisonboot.com. -114.191.63.187.in-addr.arpa. -i2.ytimg.com. -224.250.83.62.in-addr.arpa. -a.root-servers.net. -www.facebook.com. -apps.facebook.com. -bigtimerushlatino.com. -orcart.facebook.com. -rp.gwallet.com. -63.3.129.186.in-addr.arpa. -128.0.168.192.in-addr.arpa. -www.facebook.com. -222.114.0.186.in-addr.arpa. -120.0.168.192.in-addr.arpa. -www.evenpro.com.ar. -koolmobile.net. -gwfpower.com. -246.244.18.190.in-addr.arpa. -mail.scotcom.com.au. -ygame.gy9y.com. -ksn.cc. -129.70.210.189.in-addr.arpa. -www.enladisco.tv. -img1.gamespotcdn.com. -ns02.nexthost.nl. -photos-d.ak.fbcdn.net. -twitter.com. -a.root-servers.net. -londonlux.com.inbound15.mxlogic.net. -66.1.201.201.in-addr.arpa. -www.facebook.com. -col.stc.s-msn.com. -photos-d.ak.fbcdn.net. -static.ak.fbcdn.net. -242.252.33.189.in-addr.arpa. -k7.ru. -cyril.almeras.free.fr. -mfiane.com.s8a1.psmtp.com. -dns.msftncsi.com. -ssl.gstatic.com. -224.207.203.190.in-addr.arpa. -p01-keyvalueservice.icloud.com. -csi.gstatic.com. -a.root-servers.net. -api.twitter.com. -profile.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -google.com. -ars.icq.com. -a286.w31.akamai.net. -ad.yieldmanager.com. -lifespan.com.au. -bibank-msk.ru. -coolwalls.awardspace.com. -ithinkso.listal.com. -torrentclub.su. -vmx.lcturbonet.com.redcondor.net. -53.141.193.186.in-addr.arpa. -230.206.230.60.in-addr.arpa. -a.root-servers.net. -www.google-analytics.com. -uktechnologyresources.com. -pagead2.googlesyndication.com. -dns.msftncsi.com. -115.115.27.46.in-addr.arpa. -www.smuckers.com.mx. -arunsag.wordpress.com. -haru-ka.net. -us.data.toolbar.yahoo.com. -88.35.133.86.zz.countries.nerd.dk. -sofortuberweisung.de. -wpad. -transmedics.com. -www.bravospots.com. -ec.atdmt.com. -99.69.59.85.in-addr.arpa. -pxty.ru. -www.tumix.ru. -165.1.168.192.in-addr.arpa. -photos-d.ak.fbcdn.net. -a.root-servers.net. -t2.gstatic.com. -plus.google.com. -photos-b.ak.fbcdn.net. -www.totalplay.com.mx. -m.hotmail.com. -successpax.ru. -dr._dns-sd._udp.domain.name. -a3.sphotos.ak.fbcdn.net. -connectads.com. -xzqcw3vmu.37td. -col.stb00.s-msn.com. -thesymbianblog.com. -mail.nettsoft.no. -133.120.107.190.in-addr.arpa. -carlossanmiguel23.blogspot.com. -hickel.at. -connect.facebook.net. -113.160.102.218.in-addr.arpa. -www.extremetube.com. -141.49.77.190.in-addr.arpa. -julius.lookbook.nu. -www.thinktechno.com. -api-read.facebook.com. -euro.mediotiempo.com. -cdn-6.pics.keezpremium.com.swiftcdn1.com. -190.237.114.186.in-addr.arpa. -en.wikipedia.org. -download772.avast.com. -scribe.twitter.com. -photos-a.ak.fbcdn.net. -56.88.12.99.in-addr.arpa. -www.facebook.com. -www.ticketmaster.com.mx. -22.224.171.69.in-addr.arpa. -facemoods.com. -teredo.ipv6.microsoft.com. -www.google.com. -3cluaocri.y57x9a9m. -a6.sphotos.ak.fbcdn.net. -b.static.ak.fbcdn.net. -www.google.com. -profile.ak.fbcdn.net. -uniklinikum-dresden.de. -www.rough-sex-in-russia.com. -developers.facebook.com. -www.elgranhost.com. -www.youtube.com. -mail.logicbytes.com. -a.root-servers.net. -68.128.245.77.in-addr.arpa. -dns.msftncsi.com. -s.youtube.com. -39.195.35.187.in-addr.arpa. -profile.ak.fbcdn.net. -tilera.com.inbound15.mxlogic.net. -profile.ak.fbcdn.net. -www.airportparkingreservations.com. -a1725.l.akamai.net. -a.root-servers.net. -ads1.msads.net. -api.webrep.avast.com. -13.8.38.187.in-addr.arpa. -www.medela.com. -mcgoye.com.s6b2.psmtp.com. -www.livefilipinacams.com. -www.bikeit.co.uk. -c-0.19-a30ff081.70481.1518.19d3.3ea1.210.0.4vlzs791h9blm6ibv261d8ja7j.avqs.mcafee.com. -profile.ak.fbcdn.net. -timberfinec.com. -s4.histats.com. -b.scorecardresearch.com. -sn1msg3020319.gateway.messenger.live.com. -_122_32_9. -psp3.pagesuite.com. -es.foursquare.com. -iphone-wu.apple.com. -i2.ytimg.com. -telecoms-mag.com. -78.57.15.50.in-addr.arpa. -gfx2.hotmail.com. -advertise.sakura.ne.jp. -hawaaworld.net. -developers.facebook.com. -rs989dt.rapidshare.com. -6.255.54.187.in-addr.arpa. -s0.2mdn.net. -www.invisionpower.com. -va4en.sftcdn.net. -www.facebook.com. -www.chiclana.es. -www.thedailystar.net. -www.3tailer.com. -srvupi.inforonda.com. -www.facebook.com. -img.perezhilton.com. -www.youtube.com. -productshopnyc.com. -relay.mplik.ru. -www.bywifi.com. -deblinux.files.wordpress.com. -images.colehaan.com. -a5.sphotos.ak.fbcdn.net. -www.listainmuebles.com. -et6.xhamster.com. -www.kbresource.com. -_214_83_1. -66.226.132.190.in-addr.arpa. -a.ads2.msads.net. -mx.mujer.yahoo.com. -www.goodfoodshow.com.au. -leercadadiaalgo.blogspot.com. -ib.adnxs.com. -188.223.248.201.in-addr.arpa. -194.121.135.189.in-addr.arpa. -img13.imagemaniac.com. -a1.sphotos.ak.fbcdn.net. -234.170.76.94.in-addr.arpa. -193.188.114.93.in-addr.arpa. -media.tumblr.com. -www.adobe.com. -zqn2ghhtj.39os. -pinclub.hardrock.com. -fetdn6qis.36cg. -aoadns1.nestle.com. -ee.iitd.ernet.in. -41.2.237.189.in-addr.arpa. -photos-c.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -cdn1.widdit.com. -plusone.google.com. -238.179.86.122.in-addr.arpa. -0.10.27.125.in-addr.arpa. -ww2.supergt.net. -js2.wlxrs.com. -c.prodigy.msn.com. -toolbarqueries.google.com. -orcart.facebook.com. -a.root-servers.net. -www.theladylikes.com. -s0.2mdn.net. -www.google-analytics.com. -pagead2.googleadservices.com. -pixel.facebook.com. -61.140.93.186.in-addr.arpa. -www.metrolyrics.com. -webacom.com. -193.103.126.187.in-addr.arpa. -127.97.193.187.in-addr.arpa. -dl-ssl.google.com. -photos-a.ak.fbcdn.net. -ssl.gstatic.com. -db._dns-sd._udp.lan. -www.google-analytics.com. -158.150.158.189.in-addr.arpa. -www.youtube-nocookie.com. -236.129.57.186.in-addr.arpa. -openxfront.iminent.com. -e3353.c.akamaiedge.net. -im20.gulfup.com. -d3k9hgzf8ej9hc.cloudfront.net. -www.elblogdemontaner.com. -mx.ipera.net.au. -basketball.com. -s.mobclix.com. -puntacondor.com. -a107.ui5g0.akafms.net. -google.com. -www.youtube.com. -juegosonline.com. -jobs.myfoxorlando.com. -dnl-01.geo.kaspersky.com. -owa.framinghamma.gov. -s.ytimg.com. -:qe:qk37k.84ng. -mamanluisa.blogspot.com. -www.breatheheavy.com. -stats.buysellads.com. -www.vongo.com. -a.root-servers.net. -www.mozilla.com. -et9.xhamster.com. -culinarytravel.about.com. -www.sexaben.dk. -71.192.239.85.in-addr.arpa. -www.sagemcom.com. -www.youtuberepeater.com. -cm.g.doubleclick.net. -89.38.101.92.in-addr.arpa. -www.laughteryoga.org. -a.root-servers.net. -www.fandino.net. -pixel.quantserve.com. -a1174.g.akamai.net. -www.google-analytics.com. -armadatd.ru. -smtp2.crescentstatebank.com. -i1.ytimg.com. -nav3.poker.zynga.com. -photos-f.ak.fbcdn.net. -clubdefansdeloganhenderson.globered.com. -talk.m5zn.com. -photos-e.ak.fbcdn.net. -groups.google.com. -origin.url.trendmicroip.chinacache.net. -apps.facebook.com. -pagead2.googlesyndication.com. -gambit.blogs.nytimes.com. -srv2.tv-stream.to. -b.scorecardresearch.com. -teambstudio.com. -30.70.247.88.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -toitoninte.museum. -img.discovery.com. -free-desktop-backgrounds.info. -photos-e.ak.fbcdn.net. -www.williamgibsonbooks.com. -a5.sphotos.ak.fbcdn.net. -secure-us.imrworldwide.com. -bersconstructores.com. -mail.blackhillsvacations.com. -www.espacioparalelo.com. -a.root-servers.net. -tools.google.com. -61.45.134.188.in-addr.arpa. -www.x2music.com. -188.147.172.189.in-addr.arpa. -adserving.cpxadroit.com. -profile.ak.fbcdn.net. -relay.voice.edge.messenger.live.com. -1.117.23.190.in-addr.arpa. -pontevedra.campusanuncios.com. -70.227.127.201.in-addr.arpa. -18.51.145.189.in-addr.arpa. -www.meinvmtv.com. -mail.google.com. -mscrl.microsoft.com. -a8.sphotos.ak.fbcdn.net. -www.remov.es. -www.lastfm.es. -130.8.135.105.in-addr.arpa. -208.209.222.90.in-addr.arpa. -blackw.msk.ru. -bijouterieyaccesoriosmr.blogspot.com. -89.55.132.187.in-addr.arpa. -www.physics.org. -199.149.35.211.in-addr.arpa. -forum.sh3bwah.maktoob.com. -translate.googleapis.com. -www.taobao.com. -netozero.net. -goolocal.com.mx. -kstu.ru. -cloudflare.com. -m.facebook.com. -i1.ytimg.com. -dellaceramica.ru. -external.ak.fbcdn.net. -tsgconsumer.com.s8b1.psmtp.com. -cl30-179-182-213.cl.metrocom.ru. -a.root-servers.net. -www.imdb.com. -a1.sphotos.ak.fbcdn.net. -99.213.22.190.in-addr.arpa. -56.154.66.190.in-addr.arpa. -. -go.microsoft.com. -l3tga7:8x.87xg. -client79.dropbox.com. -scholar.google.com. -placaazul.org. -www.corner-college.com. -1.bp.blogspot.com. -www.spankwire.com. -223.248.111.87.in-addr.arpa. -24.156.147.79.in-addr.arpa. -photos-d.ak.fbcdn.net. -www.milesbinz-shipping.com. -25.191.32.190.in-addr.arpa. -clients1.google.com. -a-0.19-35097001.d010583.1518.19d4.36d4.210.0.bs1jd7se11i96w8mdfnsn57wiq.avqs.mcafee.com. -mail.supermetal.com. -56.95.124.78.in-addr.arpa. -mail.ilscargogroup.com. -cccservices.com. -214.96.117.200.in-addr.arpa. -mail.unelko.com. -telus.inq.com. -ptd.net. -192.205.246.88.in-addr.arpa. -www.facebook.com. -www.prompyme.gob.pe. -a1.sphotos.ak.fbcdn.net. -service.collarity.com. -ads.lfstmedia.com. -www.albemarle-london.com. -mail.mwaarchitects.com. -apis.google.com. -s2.youtube.com. -a4.sphotos.ak.fbcdn.net. -widgets.fbshare.me. -84.197.160.187.in-addr.arpa. -t.co. -elquepiensagana.wordpress.com. -httpcs.msg.yahoo.com. -photos-a.ak.fbcdn.net. -145.170.124.59.in-addr.arpa. -creative.ak.fbcdn.net. -www.mltailor.com. -btech.ac.th. -ns2.dns26.net. -red-stripe.info. -drunkula.blogspot.com. -wzeu.uk.ask.com. -google.com. -ns3.cemex.com. -wirelescefard.com. -www.jscount.com. -96.133.211.201.in-addr.arpa. -www.aclunc.org. -khm1.google.co.id. -www.csir.res.in. -fznz44zgn.64jg. -www.webcamsexo.info. -diretorio.tol.pro.br. -195.112.169.62.in-addr.arpa. -192.31.159.189.in-addr.arpa. -ourfamilyrealm.com. -b._dns-sd._udp.0.130.16.172.in-addr.arpa. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -trophy01.np.community.playstation.net. -181.201.18.187.in-addr.arpa. -www.xnet.co.il. -sigloxxb.blogspot.com. -14.235.225.201.in-addr.arpa. -googleads.g.doubleclick.net. -www.howtomatter.com. -thesecretgardenllc.com. -a.root-servers.net. -a.root-servers.net. -groups.google.com.mx. -www.lavidaesbeta.com. -ns2-auth.teo.lt. -2plpbgnox.72yo. -cs510419.vkontakte.ru. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -profile.ak.fbcdn.net. -plusone.google.com. -gsconco.com. -www.humorvariado.com. -11.246.25.89.in-addr.arpa. -bbb.sp.f-secure.com. -leahdawson.com. -www.ldelgado.es. -0-jg-w.channel.facebook.com. -hnequwxsjtumpsrk.com. -primarycarellc.net. -sunrise-sakhalin.ru. -123.128.95.108.in-addr.arpa. -a.root-servers.net. -www.adobe.com. -b.scorecardresearch.com. -chowvegan.com. -photos-b.ak.fbcdn.net. -col.stj.s-msn.com. -img.mail.ru. -cgi.chatvibes.com. -safebrowsing.clients.google.com. -needformadness.wikia.com. -a8.sphotos.ak.fbcdn.net. -cdn.missuniverse.com. -mail.mrbank.ru. -translate.twttr.com. -www.skycig.co.uk. -digg.com. -p.hostingprod.com. -www.juegosvertigo.com. -kphpb.com. -creative.ak.fbcdn.net. -billsgarage.com. -a771.da1.akamai.net. -30.168.33.71.in-addr.arpa. -29.230.182.189.in-addr.arpa. -i6.expansys.com. -a1.sphotos.ak.fbcdn.net. -js2.wlxrs.com. -photos-f.ak.fbcdn.net. -www.causewaymall.com. -photoshopto4ka.net.ru. -388.com. -tsk.tulask.ru. -www.shimritshoshan.com. -www.danzabuenosaires.com.ar. -view.atdmt.com. -a.root-servers.net. -117.229.177.190.in-addr.arpa. -132.208.136.186.in-addr.arpa. -www.sexofree.com.br. -mingjitang.com. -e2799.e7.akamaiedge.net. -88.83.151.120.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -feedback.yandex.ru. -pixel.facebook.com. -www.vibramfivefingers.com. -i.kissmetrics.com. -pop3.hot.glbdns.microsoft.com. -mailserver.mehfilmatch.com. -www.naabt.org. -map.wwiionline.com. -retardmedia.com. -131.146.171.201.in-addr.arpa. -d2105804.xoom.it. -www.nortonstore.kr. -trialgraphic.com.inbound15.mxlogic.net. -f5-mail.digitalvm.com. -a.root-servers.net. -dns.msftncsi.com. -a.root-servers.net. -msk.suek.ru. -www.xkisses.com. -profile.ak.fbcdn.net. -ynpndcevents.org. -insatiable.gotop100.com. -www.venta-por-catalogo.com.ar. -www.gstatic.com. -s2.youtube.com. -malluhotvideos.in. -lindawallpapers.appspot.com. -81.18.168.192.in-addr.arpa. -135.246.34.99.in-addr.arpa. -es-es.facebook.com. -mitecnologico.com. -l-bank.de. -www.redtube.com. -www.arabiccalligrapher.com. -lomira.k12.wi.us. -www.ashleytisdale.com. -37.241.160.201.in-addr.arpa. -i144.photobucket.com. -www.lacocinadepili.com. -mail.live.com. -mejores-videos-internet.blogspot.com. -25.153.168.192.in-addr.arpa. -www.lunatic-films.com. -notsomekid.com. -affiliates.x10hosting.com. -letib.com. -servicemap.conduit-services.com. -uppod.ru. -54.53.198.190.in-addr.arpa. -43.243.212.98.in-addr.arpa. -49.106.9.88.in-addr.arpa. -platform.twitter.com. -www.feedburner.com. -lgg.it. -www.ft.com. -www.myspace.com. -www.painspanking.com. -a.root-servers.net. -aeiengr.com.pri-mx.smtproutes.com. -exchange.storkcraft.com. -a.root-servers.net. -kundert.com.s10a1.psmtp.com. -ytimg.com.bl.open-whois.org. -177.42.251.85.in-addr.arpa. -tdspedjgh.25lu. -a.root-servers.net. -mail.maristes.net. -conquest.91.com. -www.vh1la.com. -218.84.174.189.in-addr.arpa. -www.ultramar.cl. -pixel.facebook.com. -mail.sohu.com. -sn21.mailshell.net. -global.ard.yahoo.com. -www.topfashionb2b.com. -creative.ak.fbcdn.net. -ksn2-12.kaspersky-labs.com. -127.156.143.187.in-addr.arpa. -auscredits.com.au. -32.47.149.187.in-addr.arpa. -static.ak.facebook.com. -mail.banvenez.com. -api.twitter.com. -a26.ms.akamai.net. -a-0.19-a309b081.d090082.1518.19d4.3ea1.410.0.9c5ieabp7eivvapescd2b8tdkb.avqs.mcafee.com. -new.pagegangster.com. -s-static.ak.facebook.com. -tbr.ask.com. -creative.ak.fbcdn.net. -75.118.49.60.in-addr.arpa. -my.unisa.ac.za. -ad-g.doubleclick.net. -eir.turningtechnologies.com. -my6fjeksh.y57m8z6v. -buscoempleo.anuncioneon.com. -mail.chanterellenyc.com. -adobe-acrobat.software.informer.com. -external.ak.fbcdn.net. -domain.mail.yandex.net. -tunnel.cfw.trustedsource.org. -worldclassicautos.com. -accounts.google.com. -www.mangaid.com. -www-fc-opensocial.googleusercontent.com. -www.allgigs.co.uk. -apis.google.com. -www.baidu.com. -a.root-servers.net. -infinitedangers.com. -anindiansummer-design.blogspot.com. -0-271.channel.facebook.com. -sc2.rules.mailshell.net. -www.youtube.coml. -90.23.168.192.in-addr.arpa. -exchange.chalmersgroup.com. -photos-a.ak.fbcdn.net. -peliculassi.com. -bym-fb-lbns.dc.kixeye.com. -bt.rghost.net. -. -piaoan.en.alibaba.com. -fxfeeds.mozilla.com. -cdn.tynt.com. -netanday.it. -router.infolinks.com. -www.google.com. -134.144.137.201.in-addr.arpa. -static.ak.fbcdn.net. -accounts.google.com. -external.ak.fbcdn.net. -ccrcanada.com.s9a1.psmtp.com. -. -www.bakumens.com. -a.root-servers.net. -soft.export.yandex.ru. -www.facebook.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -ailtel.net. -gadgets-for-men.net. -safebrowsing-cache.google.com. -biteme.net. -ratings-wrs.symantec.com. -180.136.177.78.in-addr.arpa. -searchclient.live.net. -ksn1-12-part2.kaspersky-labs.com. -www.google.com. -www101.jimdo.com. -s1-04.twitpicproxy.com. -it-it.facebook.com. -api.zynga.com. -s247.hotfile.com. -ksn2-12.kaspersky-labs.com. -www.cnnchile.com. -i4.ytimg.com. -www.dequienes.com. -215.121.195.123.in-addr.arpa. -mail.ci.ceres.ca.us. -www.trafficswarm.com. -tuc8nquw2.z88a1w0a. -paradoxfive.blogspot.com. -178.77.202.81.in-addr.arpa. -c7.zedo.com. -sites.google.com. -pu3dcnwg1.y94b7g6g. -vz.com.ru. -pool.ntp.org. -campodelturia.fadlan.com. -rocknet.net.au. -it.italyculture.it. -mx.astrology.yahoo.com. -ksn2-12.kaspersky-labs.com. -a5.sphotos.ak.fbcdn.net. -s.ytimg.com. -mail.icix.com. -www.facebook.com. -www.salesianosvaldivia.cl. -a.root-servers.net. -168.85.91.190.in-addr.arpa. -ssp-p.com. -www.adobe.com. -profile.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -tap2-cdn.rubiconproject.com. -photos-h.ak.fbcdn.net. -google.com. -reald.com. -a.root-servers.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -124.149.255.201.in-addr.arpa. -www.elcorillord.co. -110.80.29.186.in-addr.arpa. -s2.youtube.com. -lumpeny.com. -a8.sphotos.ak.fbcdn.net. -weather.service.msn.com. -s-external.ak.fbcdn.net. -a.root-servers.net. -tudi.com.inbound15.mxlogicmx.net. -e5168.g.akamaiedge.net. -www.dragspecialties.com. -clkads.com. -europolitics.info. -a.root-servers.net. -157.101.236.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -145.150.206.196.in-addr.arpa. -beeskow.de. -bouleafacettes.biz. -pf.u.51img1.com. -www.miltontwins.in. -rs-e.com. -78.78.209.190.in-addr.arpa. -co104w.col104.mail.live.com. -youtubedownload.altervista.org. -office.microsoft.com. -www.archiportfolio.com. -nowmco.com. -populus.es.msn.com. -teredo.ipv6.microsoft.com. -a5.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -gw0.suite224.net. -164.145.47.60.in-addr.arpa. -177.238.247.190.in-addr.arpa. -s2.youtube.com. -coylehospitality.com. -game1.netmarble.net. -a2.sphotos.ak.fbcdn.net. -sunbeam.ru. -content.yieldmanager.edgesuite.net. -travelmateonline.com. -yn9h6y2y1.q13f2e3a. -107.1.168.192.in-addr.arpa. -memtracker.appspot.com. -www.make1c.com. -botanov.net. -dns.msftncsi.com. -s7.addthis.com. -a.root-servers.net. -db._dns-sd._udp.lan. -pda.mv.bidsystem.com. -tweetmeme.com. -s.ytimg.com. -a5.sphotos.ak.fbcdn.net. -27.206.185.67.in-addr.arpa. -qspbaztwaaf.com. -www.gstatic.com. -static.ak.fbcdn.net. -dns.msftncsi.com. -www.minitokyo.net. -pt-br.facebook.com. -bluemoon.softonic.com. -www.diariodeboadilla.es. -_006_44_2. -twitter.com. -pixel.indieclick.com. -128.166.167.189.in-addr.arpa. -137.39.130.186.in-addr.arpa. -01.myjewishpage.com. -213.111.112.190.in-addr.arpa. -g811d3181c5bb4cfd.api.playtomic.com. -www.comprar-ofertas.com. -pro5.livebooks.com. -i1.ytimg.com. -a.root-servers.net. -twitter.com. -101.139.227.190.in-addr.arpa. -i.imgur.com. -widgets.serverboy.net. -check4.facebook.com. -41.117.173.118.in-addr.arpa. -apicultura.wikia.com. -202.138.10.94.in-addr.arpa. -_648_85_2. -181.229.137.85.in-addr.arpa. -rentcash.ca. -181.21.244.190.in-addr.arpa. -mail.jesseengineering.com. -188.128.239.76.in-addr.arpa. -revistalamision.es.tl. -mail.abstinence.net. -api.prod.capptain.com. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -kathyawai.com. -greenearthjourney.blogspot.com. -dominicano.ru. -googleads.g.doubleclick.net. -www.e-messenger.net. -p9nnqaq9n.35zt. -_070_81_1. -static-resource.np.community.playstation.net. -www.google-analytics.com. -vcs2.msg.yahoo.com. -rad.msn.com. -6.158.28.186.in-addr.arpa. -29-courier.push.apple.com. -cfectiva.cfe.gob.mx. -lb._dns-sd._udp.lan. -sp.cwfservice.net. -200.229.42.181.in-addr.arpa. -mail.rcmclean.com. -254.232.145.186.in-addr.arpa. -. -www.iskullgames.com. -accounts.google.com. -pinttars.miscaricaturas.com. -bb.dev.bbvms.com. -v21.nonxt8.c.youtube.com. -thebostonchannel.com. -mx.msn.recepedia.com. -www.modoo.es. -integration.fellowshipone.com. -a5.sphotos.ak.fbcdn.net. -wilshirebank.com. -thumb5.webshots.net. -test-rt.liftdna.com. -starving4myperfection.blogspot.com. -www.facebook.com. -inerdisc.com. -18.91.218.186.in-addr.arpa. -es.meetic.yahoo.net. -media.trafficjunky.net. -st8.live800.com. -a5.sphotos.ak.fbcdn.net. -cdn.larepublica.pe. -27.72.91.186.in-addr.arpa. -c.es.msn.com. -www.probass.net. -35.105.179.190.in-addr.arpa. -ssl.gstatic.com. -messagent.concentra.be. -dm-download02.mozilla.org.home. -mardi09.wordpress.com. -shela.ru. -p04-imap.mail.me.com. -131.105.149.187.in-addr.arpa. -www.coolermaster.com. -view.atdmt.com. -us1153dom12.nam.slb.com. -bestspb.ru. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -petitforestier.fr. -iwashige.com.inbound15.mxlogicmx.net. -www.todotorrents.com. -c13.zedo.com. -82.74.10.186.in-addr.arpa. -2.210.62.68.in-addr.arpa. -ssl.gstatic.com. -gfx6.hotmail.com. -af.acuraprint.com. -games.yahoo.com. -loading5.widdit.com. -www.dailytubevideos.com. -apps.facebook.com. -80.132.113.190.in-addr.arpa. -www.utilisima.com. -static.ak.fbcdn.net. -correo.aprosi.net. -a3.sphotos.ak.fbcdn.net. -mail.google.com. -gartsports.com. -79.69.227.213.in-addr.arpa. -www.be-still.com.au. -anticd.ru. -guia.planetajoy.com. -sixpackshortcuts.com. -a7.sphotos.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -e906.g.akamaiedge.net. -anobanooo.blogspot.com. -streamlky.alsolnet.com. -szddfe389.i00r1x3p. -skedm01.cn.diodes.com. -www.facebook.com. -usadatanet.net. -developers.facebook.com. -www.australia.edu. -mx4.hotmail.com. -www.20minutos.es. -147.146.9.72.bl.spamcop.net. -time.chttl.com.tw. -www.unvm.edu.ar. -www.territorioenemigo.net. -74.180.123.99.in-addr.arpa. -cdn1.widdit.com. -dreamspr.com. -s.youtube.com. -39.156.235.189.in-addr.arpa. -gam.adnxs.com. -photos-f.ak.fbcdn.net. -agddf8fk5.47uy. -allcovered.com.s6a2.psmtp.com. -feeds.feedburner.com. -pixel.facebook.com. -58.211.129.186.in-addr.arpa. -www.tylermedicalclinic.com. -www.leve.su. -events.theledger.com. -scribe.twitter.com. -static.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -beta.stun.voice.yahoo.com. -22.45.77.89.in-addr.arpa. -uscm.med.sc.edu. -yahoo.com. -www.theworkofthepeople.com. -a.root-servers.net. -lightros.ru. -126.18.202.189.in-addr.arpa. -www.freshlookcontacts.com. -134.67.169.62.in-addr.arpa. -01-1.store.lh.embed.ro. -o1.inviziads.com. -foofus.com. -smithplc.com. -107.36.154.189.in-addr.arpa. -157.252.133.187.in-addr.arpa. -a.root-servers.net. -alwehda.net. -94.38.57.186.in-addr.arpa. -flashembed.xvideos.com. -i.qype.com. -hi-in.facebook.com. -165.107.37.92.in-addr.arpa. -thechengman.spreadshirt.com. -www.annemurray.net.au. -www.facebook.com. -www.pluralworld.com. -static.crakcash.com. -oascentral.babble.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -comtelspa.com. -www.facebook.com. -spotify-windows-mobile.softonic.com. -www.funnyjunksite.com. -www.gruposmusicalesparroquiales.org. -plus.google.com. -171.216.139.189.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-h.ak.fbcdn.net. -dns.msftncsi.com. -www.vpsland.com. -static.ak.fbcdn.net. -respond2u.com. -row.bc.yahoo.com. -117.159.162.190.in-addr.arpa. -crl.microsoft.com. -www.facebook.com. -m.ebags.com. -a3.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -mailj.sml.com. -draftfcb.co.il. -plus.google.com. -www-google-analytics.l.google.com. -www.footbo.com. -fxfeeds.mozilla.com. -80.52.81.108.in-addr.arpa. -s-external.ak.fbcdn.net. -www.facebook.com. -www.facebook.com. -frontlinedirectinc.com. -plusone.google.com. -hash.orbitdownloader.com. -qb20bgpatch.quickbooks.com. -www.cancer.org. -yaironline.wordpress.com. -motorcycledesktopwallpaper.blogspot.com. -www.facebook.com. -copystationinc.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.csd.toshiba.com. -182.98.250.189.in-addr.arpa. -mx00.1and1.es. -mscrl.microsoft.com. -p.ebaystatic.com. -9.42.203.24.in-addr.arpa. -maltanet.net. -www.xbox360chat.com. -219.167.103.189.in-addr.arpa. -7.126.248.189.in-addr.arpa. -fstongfang.en.alibaba.com. -www.adgenie.co.uk. -clkads.com. -100.129.136.186.in-addr.arpa. -32.11.181.189.in-addr.arpa. -tas.orangeads.fr. -190.29.168.192.in-addr.arpa. -www.wrenkitchens.com. -thclibrary.net. -www.supercheats.com. -kona.kontera.com. -secure.shared.live.com. -tedchin.com. -abtco.ru. -ascg.com. -dnl-01.geo.kaspersky.com. -mail.universalcargo.net. -enter.mofosworldwide.com. -s-static.ak.fbcdn.net. -d1.openx.org. -who.bumpmyip.net. -najera-javimanzanares.blogspot.com. -profile.microsoft.com. -wzus1.search-results.com. -s1-powerpoint.vo.msecnd.net. -167.64.230.190.in-addr.arpa. -rostini.ru. -mininghouse.com. -careers.microsoft.com. -forsaleadsonline.com. -ad.harrenmedianetwork.com. -www.facebook.com. -www.natrue.org. -developers.facebook.com. -ksn1-11-part2.kaspersky-labs.com. -static.ak.fbcdn.net. -mail.wynhg.com. -apps.facebook.com. -www.fabulouscuties.com. -teplohodmaestro.ru. -btguard.com. -www.addthis.com. -a5.sphotos.ak.fbcdn.net. -mail.nahalat.ru. -login.dotomi.com. -google.com. -dr._dns-sd._udp.0.55.211.10.in-addr.arpa. -broadcast.infomaniak.ch. -profile.ak.fbcdn.net. -cdn1.certified-apps.com. -acewallpapers.com. -bitly.com. -dns.msftncsi.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -poigraemtut.ru. -tap2-cdn.rubiconproject.com. -6-1.qlty.finarea.ch. -www.cuevana.com. -gearsofwar.wikia.com. -appworld.blackberry.com. -dc339.4shared.com. -www.facebook.com. -a.root-servers.net. -a.root-servers.net. -mailno.actasone.com. -fbcdn-profile-a.akamaihd.net. -cs933.vk.com. -ic.tynt.com. -www.bcvo.co.za. -abslogic.ru. -mail.trexta.com. -acti.ru. -110.142.179.189.in-addr.arpa. -a2.twimg.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -ihg-chicago.jobs. -kkqx2lxi1.o17f4m5b. -tomhumphrey.commaureen. -kuq4ogt5:.33sv. -www.google-analytics.com. -borel.com. -www.um.edu.mx. -201.107.73.178.in-addr.arpa. -179.56.25.190.in-addr.arpa. -c-0.19-430cc069.20001.1518.19d4.2f4a.210.0.9ditbwm77wrkfpjqfdfg51fndv.avqs.mcafee.com. -crl.microsoft.com. -a.root-servers.net. -www.choate.edu. -terra.com.br. -okbz:zqhe.d61a5o8h. -www.google.com. -cdn2-pivotaltracker.pantherssl.com. -a6.sphotos.ak.fbcdn.net. -vgpmuaqgp.76nc. -mail.sppkk.ru. -palletone.com. -photos-g.ak.fbcdn.net. -74.43.15.187.in-addr.arpa. -img713.imageshack.us. -25.199.65.190.in-addr.arpa. -lb._dns-sd._udp.lan. -121.75.208.190.in-addr.arpa. -pixel.facebook.com. -relay.ast-ins.ru. -1d.media.v4.skyrock.net. -s.youtube.com. -www.greentradebay.com. -www.cctv.com. -a6.sphotos.ak.fbcdn.net. -search.conduit.com. -dotaplayer.net. -mt1.google.com. -img.intelihealth.com. -www.trafficholder.com. -mail.aplusnet.hu. -bentelhalal.maktoob.com. -220.24.85.200.in-addr.arpa. -a1856.da1.akamai.net. -translate.google.com. -aragon.es. -lonelyweb.net. -www.xvideoslive.com. -external.ak.fbcdn.net. -splob.com. -voicevale-fr.com. -218.7.55.190.in-addr.arpa. -83.56.92.186.in-addr.arpa. -129.131.96.190.in-addr.arpa. -mail.resole.com. -0.11-a70a2219.80110b3.1518.197d.3ea1.210.0.95wbuu72j1uq5nkuipia8wtjki.avqs.mcafee.com. -banners.datenation.com. -www.facebook.com. -wap.hao123.com. -49.78.38.187.in-addr.arpa. -dns.msftncsi.com. -64.185.10.187.in-addr.arpa. -184.82.92.65.in-addr.arpa. -a.root-servers.net. -accounts.google.com. -tm0.blackberry.net. -221.86.6.95.in-addr.arpa. -news.google.com. -117.68.200.14.in-addr.arpa. -vskmsd1kg.p63b8b0a. -www.crunchbase.com. -afc-holcroft-com.relay1a.spamh.com. -a.root-servers.net. -trsoft.ru. -44.1.168.192.in-addr.arpa. -view2.picapp.com. -photos-g.ak.fbcdn.net. -cs109.vk.com. -mail.kmztech.ru. -a3.sphotos.ak.fbcdn.net. -pubads.g.doubleclick.net. -bookapp.book.qq.com. -www.facebook.com. -liveupdate.gocyberlink.com. -www.berkshirefinearts.com. -report.bitdefender.com. -anthrotech.com. -_338_94_0. -www.youtube.com. -photos-g.ak.fbcdn.net. -a.root-servers.net. -0-staging.channel.facebook.com. -cdn.mediafire.com. -raptr.com. -er9rjiy18.k85b6o2z. -www.raulrico.com. -apps.facebook.com. -ashland.navy.mil. -172.36.74.66.in-addr.arpa. -www.intel.com. -www.plasticprinters.com. -accountservices.msn.com. -a.root-servers.net. -profile.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -178.186.50.83.in-addr.arpa. -174.23.205.190.in-addr.arpa. -dr._dns-sd._udp.0.55.211.10.in-addr.arpa. -piratesofarchery.net. -1stmediasolutions.com. -teredo.ipv6.microsoft.com. -bs.serving-sys.com. -profile.ak.fbcdn.net. -26.175.50.190.in-addr.arpa. -i4.ytimg.com. -photos-c.ak.fbcdn.net. -www.adobe.com. -es-la.facebook.com. -aish.edu. -www.playgames.to. -alerts.conduit-services.com. -content.yieldmanager.edgesuite.net. -safebrowsing.clients.google.com. -110.252.198.190.in-addr.arpa. -230.67.183.189.in-addr.arpa. -fls.doubleclick.net. -manualforyou.ru. -www.trlaser.com. -apps.facebook.com. -asoc-fulbright.es. -profile.ak.fbcdn.net. -api.recaptcha.net. -teredo.ipv6.microsoft.com. -rushpostcardprinting.com. -205.18.134.189.in-addr.arpa. -photos-h.ak.fbcdn.net. -food-junky.blogspot.com. -en.wikipedia.org. -a.root-servers.net. -developers.facebook.com. -mail.shades-technics.com. -ping.chartbeat.net. -api16.thetrafficstat.net. -peoplepccc.com. -facemoods.com. -de.tynt.com. -apis.google.com. -www.facebook.com. -i2.ytimg.com. -ip2.shi.com. -a2.sphotos.ak.fbcdn.net. -www.google-analytics.com. -uptus.oilnet.ru. -ec2-us-east-1a.cedexis.com. -tools.l.google.com. -list-new.ru. -ns19.worldnic.com. -38.125.133.190.in-addr.arpa. -b-0.19-a300a008.c831580.1518.19d4.3ea1.410.0.jq1blb8q3pgzggvftm9bcmkf1t.avqs.mcafee.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -b.scorecardresearch.com. -www.aeivalencia.com. -bs.serving-sys.com. -cdn.metanetworkslider.com. -34.115.170.209.in-addr.arpa. -www.usbwifi.orcon.net.nz. -bpy.wikipedia.org. -www.coveylink.com. -www.jlsd.org. -107.100.164.189.in-addr.arpa. -43.200.49.201.in-addr.arpa. -dns.msftncsi.com. -mail.yimg.com. -external.ak.fbcdn.net. -www.articleinfoblog.com. -ellipsiz.com.s7a1.psmtp.com. -99.99.175.189.in-addr.arpa. -a.root-servers.net. -cs4930.vk.com. -a.rad.msn.com. -231.201.242.60.in-addr.arpa. -fsarecruitment.com.au. -www.datacredito.com.co. -47.89.156.189.in-addr.arpa. -ocsp.verisign.com. -46.180.201.200.in-addr.arpa. -161.153.79.200.in-addr.arpa. -services.xboxlive.com. -a2.sphotos.ak.fbcdn.net. -biebernovelastu.metroblog.com. -adsfront.iminent.com. -pagead2.googlesyndication.com. -mscrl.microsoft.com. -a5.sphotos.ak.fbcdn.net. -156.237.25.201.in-addr.arpa. -home.ru. -edgesuperstar.blogspot.com. -mail.climatedesign.com. -oprint.ru. -0-264.channel.facebook.com. -americaninsulators.com.bak-mx.na0106.smtpbak.com. -photos-c.ak.fbcdn.net. -studentmailcenter.com. -au:dcz3my.m19i0g0q. -165.169.19.84.in-addr.arpa. -a.root-servers.net. -104.209.178.186.in-addr.arpa. -www.pssl.com. -estatestore.org. -teredo.ipv6.microsoft.com. -matcher-apx.bidder7.mookie1.com. -audiest.es. -88.12.159.189.in-addr.arpa. -t2.gstatic.com. -alerts.conduit-services.com. -www.woow.ro. -59.223.7.187.in-addr.arpa. -42.29.11.186.in-addr.arpa. -a1725.l.akamai.net. -todoloquegira.blogspot.com. -yilmen.com. -www.phocos.com. -_377_12_6. -apps4u2.conduitapps.com. -www.adonistwinks.com. -9li38:nbn.72wb. -desiclub.in. -www.curriculum-web.com. -sturgillturner.com.1.arsmtp.com. -210.145.131.187.in-addr.arpa. -tomm.ru. -sites.google.com. -www.bootyliciousink.com. -b-0.19-a309b008.1481.1518.19cd.3ea1.410.0.j1rph37chqkbzjqrvfif1wb1zi.avqs.mcafee.com. -platio.ru. -googleads.g.doubleclick.net. -www.facebook.com. -www.mejoresfrases.net. -fbcdn-photos-a.akamaihd.net. -www.cnn.com. -filmgordon.wordpress.com. -photos-h.ak.fbcdn.net. -tyco-fire.com. -164.239.160.201.in-addr.arpa. -mail2.cabledahmer.com. -nice.dealply.com. -listserv.utk.edu. -forum.downloadhelper.net. -googleads.g.doubleclick.net. -a82.photo.store.qq.com. -www.shadowflames.us. -174.156.151.190.in-addr.arpa. -24.224.51.190.in-addr.arpa. -162.157.233.125.in-addr.arpa. -a.root-servers.net. -dnl-05.geo.kaspersky.com. -www.autopistas.com.mx. -platform.ak.fbcdn.net. -shamrockrealtors.com. -abawaba.com. -220.175.244.88.in-addr.arpa. -pricebazaar.in. -miproconsulting-com.relay1c.spamh.com. -neilduckett.com. -a.root-servers.net. -141.190.18.182.in-addr.arpa. -120.150.22.186.in-addr.arpa. -a.root-servers.net. -www.tumblr.com. -photos-d.ak.fbcdn.net. -mx3.lasredes.net. -dns.msftncsi.com. -240.135.233.221.in-addr.arpa. -www.hackforums.net. -new.york.eventguide.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.carrefour.com.ar. -_ldap._tcp. -_766_69_2. -linkhelp.clients.google.com. -a.root-servers.net. -www.clubfayerunaway.com. -ejabat.google.com. -a.root-servers.net. -a.root-servers.net. -147.231.97.76.in-addr.arpa. -anoush.com.s9a1.psmtp.com. -189.87.37.190.in-addr.arpa. -i.ytimg.com. -fonts.googleapis.com. -milagrofunding.com. -185.153.52.186.in-addr.arpa. -use.typekit.com. -www.facebook.com. -a87a36d8.linkbucks.com. -photos-f.ak.fbcdn.net. -a.root-servers.net. -messages.recon.com. -gio162.wordpress.com. -www.adxpansion.com. -236.182.118.200.in-addr.arpa. -ntp1.dlink.com. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -a.root-servers.net. -www.google.com. -sz8.tencent.com. -38.208.174.201.in-addr.arpa. -74.3.72.50.in-addr.arpa. -79.220.151.12.in-addr.arpa. -rsmiami.com. -photos-c.ak.fbcdn.net. -platform.twitter.com. -mail.stollamerica.com. -s.ytimg.com. -a.root-servers.net. -www.aqabazone.com. -accountservices.msn.com. -photos-d.ak.fbcdn.net. -8.108.186.190.in-addr.arpa. -johndawsoninsurance.com.pri-mx.smtproutes.com. -search.softonic.com. -ads.pubmatic.com. -plus.google.com. -poll.hotlayouts2u.com. -profile.ak.fbcdn.net. -partners.socialvi.be. -au.download.windowsupdate.com. -o49cq3xz6.49ny. -mail.netorn.ru. -static.ak.fbcdn.net. -mariokart64.com. -idealegc.com.br. -static.ak.fbcdn.net. -static.ak.facebook.com. -a.root-servers.net. -36.49.73.187.in-addr.arpa. -www.peiweiblog.com. -www.gstatic.com. -msgate.wdl.loral.com. -pagead2.googlesyndication.com. -www.facebook.com. -nkrumah.net. -primatrading.com. -101.5.189.201.in-addr.arpa. -carawalsh.com. -api.twitter.com. -twitter.com. -tools.google.com. -config.conduitapps.com. -icm.ginyas.com. -d2100485.xoom.it. -microplan.de. -60.134.195.187.in-addr.arpa. -www.carphototutorials.com. -smalltakeover.blogspot.com. -bounderds.com. -www.youtube.com. -clients1.google.com. -197.22.192.108.in-addr.arpa. -pics5.madthumbscdn.com. -sharethis.com. -videodownloads.o2.co.uk. -download802.mediafire.com. -byfiles.storage.msn.com. -shealink.com.s7a1.psmtp.com. -photos-b.ak.fbcdn.net. -ad.yieldmanager.com. -chat.facebook.com. -www.adobe.com. -131.224.215.186.in-addr.arpa. -blog.heartsonfire.com. -heparin.com. -a3.sphotos.ak.fbcdn.net. -xonoxlabs.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -167.130.126.75.in-addr.arpa. -89.237.42.200.in-addr.arpa. -ksn1-12-part2.kaspersky-labs.com. -234.141.223.80.in-addr.arpa. -152.203.191.188.in-addr.arpa. -cdn.api.twitter.com. -108.231.248.201.in-addr.arpa. -static.ak.fbcdn.net. -241.248.192.190.in-addr.arpa. -www.deborahkingcenter.com. -www.cineticket.com.mx. -hotmail.com. -knight.com.jo. -ptcnet.net.s6b2.psmtp.com. -hk.arthurandersen.com. -pudfaceup.paran.com. -ebrochazos.blogspot.com. -201.31.220.192.in-addr.arpa. -www.kustomcoachwerks.com. -www.rhymezone.com. -www.bicaramakdara.com. -lockwoodpublications.com.s5b2.psmtp.com. -www.teniaquedecirlo.com. -lyris.asmestaff.org. -cutmp3.net. -www.facebook.com. -skydrive.live.com. -s-external.ak.fbcdn.net. -venezuela.yaclasificados.com. -columbustax.net. -www.facebook.com. -asg.gershmanbrown.com. -a.root-servers.net. -a.root-servers.net. -avarady.files.wordpress.com. -fxfeeds.mozilla.com. -news.commscope.com. -a.root-servers.net. -jailbreak-me.info. -static.ak.fbcdn.net. -www.speedtest.gr. -ropavieja72.blogspot.com. -www.shopbando.com. -fbcdn-photos-a.akamaihd.net. -shared.live.com. -a.root-servers.net. -search.treasuretrooper.com. -saincsa.com. -beacon-1.newrelic.com. -scholar.google.com. -profile.ak.fbcdn.net. -www.facebook.com. -226.13.139.74.in-addr.arpa. -250.205.168.90.in-addr.arpa. -231.32.116.46.in-addr.arpa. -nobee.jefferson.lib.la.us. -a.root-servers.net. -194.5.166.190.in-addr.arpa. -i-cdn.servedbyopenx.com. -_913_35_4. -pixel.facebook.com. -111.188.8.200.in-addr.arpa. -mi.adinterax.com. -m.facebook.com. -1.map.pop6.com. -s7.addthis.com. -www.poraqui.net. -sro.whatsapp.net. -cettente.com. -mail.belnet.ru. -www.google.com. -bn.rstel.net. -doug1izaerwt3.cloudfront.net. -ocsp.usertrust.com. -www.listablaze.com. -troy.edu. -yahoo.com. -apps.facebook.com. -healthtools.aarp.org. -o-o.preferred.dfw06s10.v15.lscache1.c.youtube.com. -a6.sphotos.ak.fbcdn.net. -72.75.45.108.in-addr.arpa. -alinvest.cz. -a1067.phobos.apple.com.edgesuite.net. -deepweb.spb.ru. -www.juicyads.com. -cdn.widgetserver.com. -mail.ek-chor-cn.com. -a995.mm1.akamai.net. -www.lmp-adapter.com. -preissturz24.com. -i3.ytimg.com. -www.connectmaster.org. -profile.ak.fbcdn.net. -www.facebook.com. -www.google.se. -www.92to.com. -www.youtube.com. -www.addthis.com. -profile.ak.fbcdn.net. -uvsk6ojda.q55x9y1r. -creative.ak.fbcdn.net. -mx3.westlothian.gov.uk. -127.93.101.208.in-addr.arpa. -a.root-servers.net. -external.ak.fbcdn.net. -228.245.25.86.in-addr.arpa. -real-url.org. -252.105.204.82.in-addr.arpa. -news.newsmax.com. -adamwestinc.com. -e5016.b.akamaiedge.net. -vvnkdlu.vlingo.com. -celestica-catc.com. -www.malwarepatrol.net. -photos-f.ak.fbcdn.net. -lacasadelritmo.net. -11.245.173.70.in-addr.arpa. -adserving.cpxinteractive.com. -813562poj.01ov. -m.addthisedge.com. -printdirection.com.1.arsmtp.com. -members.ebay.com. -laoficina.blogsmyspace.es. -www.mexicolaw.com.mx. -. -a.root-servers.net. -www.tune-town.com. -a2.sphotos.ak.fbcdn.net. -insurancepill.com. -s0.2mdn.net. -a.root-servers.net. -www.iacea.com.ar. -wssecmgr2.atlanta.hp.com. -www.colonirritable.com.ar. -s0.2mdn.net. -www.statcounter.com. -kazna.spb.ru. -fbcdn-profile-a.akamaihd.net. -ru.wikipedia.org. -photos-e.ak.fbcdn.net. -a.root-servers.net. -i3.ytimg.com. -a8.sphotos.ak.fbcdn.net. -s2.youtube.com. -eu.wikipedia.org. -a771.da1.akamai.net. -www.facebook.com. -www.google-analytics.com. -144.178.94.201.in-addr.arpa. -mx.yearginmetals.com. -lucaspublicarena.blogspot.com. -i275.photobucket.com. -pagead2.googlesyndication.com. -a.root-servers.net. -upload.wikimedia.org. -npi2.phys.msu.ru. -11.177.92.91.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -time-nw.nist.gov. -client.akamai.com. -80.201.191.186.in-addr.arpa. -apir.webrep.avast.com. -traffic.outbrain.com. -wx1epls9s.v54n9z0d. -omcdit.net. -photos-a.ak.fbcdn.net. -165.17.237.190.in-addr.arpa. -espn.sl.advertising.com. -7rivp9bhw.h88d8x7f. -www.brothersoft.com. -47.28.24.189.in-addr.arpa. -loading2.widdit.com. -www.noballs.co.uk. -mail.myspa2go.com. -www.ortizortizabogados.com.mx. -diym2yidm.87hq. -d.adroll.com. -de.answers.yahoo.com. -s-static.ak.facebook.com. -dtboot.orbitdownloader.com. -photos-g.ak.fbcdn.net. -d2094192.xoom.it. -cgenetwork.com. -mx1.dici.ru. -comstor.com. -profile.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -www.metalitalia.com. -usersuz.newsvine.com. -btinternbet.com. -i2.ytimg.com. -fr.wikipedia.org. -111.139.130.27.in-addr.arpa. -supernet.santander.com.uy. -cdn1.image.keezmovies.phncdn.com. -www.adobe.com. -mx1.beget.ru. -s.ytimg.com. -mailgate.sebastianmclean.com. -mail3.fibrogen.com. -info.xvideos.com. -www.sclerals.com. -isohunt.com. -prodigy.msn.com. -host-delay.logmein-gateway.com. -207.135.80.190.in-addr.arpa. -0.docs.google.com. -tiss.com.ru. -www.apple.com. -static.ak.fbcdn.net. -musgara.ru. -21.43.210.81.in-addr.arpa. -streamerapi.finance.yahoo.com. -col.stb00.s-msn.com. -mailrelay.wernsing.de. -49.75.42.114.in-addr.arpa. -report.mpcstar.com. -www.facebook.com. -www.thesoapopera.com. -a.root-servers.net. -www.aardvarktopsitesphp.com. -gamefilez.mofunzone.com. -teredo.ipv6.microsoft.com. -api.facebook.com. -d2105399.xoom.it. -apis.google.com. -89.107.216.217.in-addr.arpa. -configuration.apple.com. -16.189.229.66.in-addr.arpa. -www.facebook.com. -ark-one.com. -faisdodo.com. -tecumsehindia.com. -243.31.172.187.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -103.1.168.192.in-addr.arpa. -184.185.110.189.in-addr.arpa. -fizomed.ru. -uac.advertising.com. -download325.avast.com. -crux.max-i-tec.net. -explicit.fr. -hamburgeramerica.blogspot.com. -groups.google.com.mx. -230.17.50.190.in-addr.arpa. -0-257.channel.facebook.com. -www.google-analytics.com. -cshi.ru. -fbcdn-profile-a.akamaihd.net. -db2.stb01.s-msn.com. -227.16.33.189.in-addr.arpa. -mymail.sap.com. -download330.avast.com. -www.odnoklassniki.ru. -uniquescrapdesigns.com. -bin-short.whatsapp.net. -earthlink.net. -v11.nonxt5.c.youtube.com. -www.mrmovietimes.com. -s.amazon-adsystem.com. -b.scorecardresearch.com. -www.abamia.net. -www.facebook.com. -a.root-servers.net. -4.bp.blogspot.com. -gilpizano.com. -gilchristconst.com. -d15gt9gwxw5wu0.cloudfront.net. -calendar.live.com. -b._dns-sd._udp.lan. -simsandcompany.com. -sp.cwfservice.net. -i4.ytimg.com. -time.nist.gov. -www.gstatic.com. -teredo.ipv6.microsoft.com. -rnxouxyq2.j76c7e5x. -img1.123friendster.com. -android.clients.google.com. -a5.sphotos.ak.fbcdn.net. -rorb:1mep.m48s7w6o. -jzca371im.69jk. -www.agronomia.uchile.cl. -www.aqualabtechnologies.com. -www.google.com. -www.mibloglg.com.ar. -mail.bankatlanticbancorp.com. -openx.panet.co.il. -photos-e.ak.fbcdn.net. -243.174.173.189.in-addr.arpa. -s-static.ak.fbcdn.net. -urllol. -es.optimost.com. -a3.sphotos.ak.fbcdn.net. -www.zonaganjah.net. -a1.sphotos.ak.fbcdn.net. -videosraros.info. -media.doink.com. -www.ftplive.com. -ssl.google-analytics.com. -images02.mundoanuncio.com.hn. -h.live.com. -156.213.30.79.in-addr.arpa. -api.iheart.com. -katiluv87.livejournal.com. -cdn2.ads.datinggold.com. -191.54.94.186.in-addr.arpa. -german.alibaba.com. -www.ornithology.com. -ads.popconnex.com. -dns.msftncsi.com. -hurstlabeling.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -ads1.msn.com. -bucaramanga.pegateya.com. -249.133.191.186.in-addr.arpa. -www.facebook.com. -api.zynga.com. -on.fb.me. -www.adobe.com. -hifiheadphones.co.uk. -blog.beliefnet.com. -www.google.com. -_728_64_7. -www.cardscanning.com. -pubads.g.doubleclick.net. -news.bbc.co.uk. -a.root-servers.net. -affiliates.tshirt-factory.com. -26.media.tumblr.com. -_386_97_6. -www.acn.com.ve. -conn.skype.com. -fitness.meetup.com. -skills.business.qld.gov.au. -becnet.com. -static.ak.fbcdn.net. -sp.cwfservice.net. -0-staging.channel.facebook.com. -game.landsharkgames.com. -www.elrinconderesu.com. -market.android.com. -artevanhautte.blogspot.com. -feeds.animekon.com. -www.periodico-eldia.com. -static1.spilcdn.com. -www.registrar.ucf.edu. -www.propagandamatrix.com. -www.google.com. -www.scarletpress.com. -connect.facebook.net. -129.83.125.99.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mx2.russneft.ru. -substanceabusefree.org. -8.courier-sandbox-push-apple.com.akadns.net. -www.grupoamor.com. -0-ji-w.channel.facebook.com. -apix.iminent.com. -115.186.0.65.in-addr.arpa. -time.chttl.com.tw. -tradesecret.com.s9b1.psmtp.com. -islam.makcdn.com. -251.109.211.108.in-addr.arpa. -mail.stvgkb4.ru. -es-la.facebook.com. -usns.uwingame.com. -streamate.doublepimp.com. -adspaces.ero-advertising.com. -ads.cpxinteractive.com. -132.181.205.190.in-addr.arpa. -tietex.com. -www.redaroa.org. -en.gamescope.ru. -creative.ak.fbcdn.net. -222.164.159.189.in-addr.arpa. -www.facebook.com. -113.243.23.91.in-addr.arpa. -v6.nonxt7.googlevideo.com. -bonhumor.blog.com. -17.89.231.189.in-addr.arpa. -234.89.130.189.in-addr.arpa. -mail.fmiint.com. -berta4.simsim.ge. -www.facebook.com. -teredo.ipv6.microsoft.com. -apis.google.com. -shudbefishin.listal.com. -moveon.org. -shorouknews.com. -webnesbay.com. -dns.msftncsi.com. -youtu.be. -sakioneil.blogspot.com. -abc.ojdinteractiva.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -b.scorecardresearch.com. -105.66.110.189.in-addr.arpa. -platform.twitter.com. -glyphservices.com. -adframes.iminent.com. -114.112.153.114.in-addr.arpa. -114.40.114.186.in-addr.arpa. -150.74.164.190.in-addr.arpa. -voxomat.com. -oodweynenews.com. -xksvzbytb.58pj. -trailers.apple.com. -a.root-servers.net. -www.facebook.com. -www.youtube.com. -mmi.explabs.net. -mail.legalemail.com. -www.planetacurioso.com. -124.74.134.187.in-addr.arpa. -a.root-servers.net. -fbcdn-photos-a.akamaihd.net. -beta.stun.voice.yahoo.com. -126.92.82.203.in-addr.arpa. -isse.utk.edu. -www.wallstein-verlag.de. -www.google.com. -profile.ak.fbcdn.net. -sp.ask.com. -img2.solocunts.com. -conservacionyequidad.podomatic.com. -content.yieldmanager.edgesuite.net. -ksn2-12.kaspersky-labs.com. -googleads.g.doubleclick.net. -profile.ak.fbcdn.net. -ip33.mebel-moskva.ru. -www.baitandswitchtv.com. -newsrss.bbc.co.uk. -google.com. -miamireia.com. -b.scorecardresearch.com. -a6.sphotos.ak.fbcdn.net. -www.farmaervas.com.br. -isvbqx.info. -www.google-analytics.com. -clients1.google.com. -a749.g.akamai.net. -fcv.org. -apple-mobile.query.yahooapis.com. -203.34.237.189.in-addr.arpa. -159.76.222.189.in-addr.arpa. -update.slimdevices.com. -api.twitter.com. -creative.ak.fbcdn.net. -www.nikkijackson.com. -exalead.ru. -ds.serving-sys.com. -developers.facebook.com. -rest-img.msg.yahoo.com. -3cpok.ru.home. -media.trafficjunky.net. -225.78.88.200.in-addr.arpa. -79.132.160.187.in-addr.arpa. -www.asiagames.com. -pixel.facebook.com. -232.85.41.189.in-addr.arpa. -www.google.com. -0-155.channel.facebook.com. -ahsl.ca. -www.google.com.mx. -twitter.com. -hiphopcanario.com. -toolbarqueries.clients.google.com. -118.60.125.69.in-addr.arpa. -nucrdk.com. -media.gameworldnetwork.com. -orcart.facebook.com. -a.root-servers.net. -a.root-servers.net. -googleads.g.doubleclick.net. -juventud.gob.pe. -degiacomo.com. -156.228.206.200.in-addr.arpa. -36.172.112.200.in-addr.arpa. -profile.ak.fbcdn.net. -t1.gstatic.com. -syndication.exoclick.com. -tc.v14.cache1.c.youtube.com. -rlp.ru. -flightstats-inc.com. -a1.sphotos.ak.fbcdn.net. -sc17.rules.mailshell.net. -ars.oscar.aol.com. -www.educatednation.com. -www.games.soft82.com. -chartboost.com. -bnpparibas.clicmobileanalytics.com. -s-static.ak.facebook.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -249.208.180.79.in-addr.arpa. -tubisuteria.com.ve. -118.224.10.186.in-addr.arpa. -24.234.49.186.in-addr.arpa. -profile.ak.fbcdn.net. -133.52.115.186.in-addr.arpa. -profile.ak.fbcdn.net. -25.225.71.98.in-addr.arpa. -a.root-servers.net. -dev.hardsextube.com. -google.co.uk. -www.facebook.com. -content.yieldmanager.edgesuite.net. -www.google.com. -developers.facebook.com. -www.facebook.com. -img3.catalog.video.msn.com. -123.98.209.189.in-addr.arpa. -www.petrosil.com. -cs4495.vk.com. -152.97.149.202.in-addr.arpa. -www.brautkleideronlineladen.de. -books.google.com.mx. -tpemail.com.s8b2.psmtp.com. -1.122.235.199.in-addr.arpa. -feeds.bitterwallet.com. -apis.google.com. -services.digg.com. -www.google-analytics.com. -www.e-encuestas.com. -sofit-spb.ru. -mattflynn.co.uk. -theavamovement.com. -17.160.8.200.in-addr.arpa. -alsglobal.com. -a955.phobos.apple.com. -verdizon.net. -_365_99_1. -ow.ly. -crl.globalsign.net. -www.sjdxa.org. -151.157.211.89.in-addr.arpa. -mx.horoscopo.yahoo.net. -dns.msftncsi.com. -www.slowfood.it. -www.webdesign-entreprise.com. -201.199.91.187.in-addr.arpa. -c-0.19-a309f481.483.1518.19d4.3ea1.410.0.3wl4k743w1rtfisw2chzs8baci.avqs.mcafee.com. -cyber.playboy.com. -static.ak.fbcdn.net. -backend.uniblue.com. -mp3dlb.cdn.kuwo.cn. -234.96.179.190.in-addr.arpa. -profile.ak.fbcdn.net. -capital604.com. -a7.sphotos.ak.fbcdn.net. -pool.ntp.org. -photos-e.ak.fbcdn.net. -stormsustainability.com. -a3.sphotos.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -38.137.139.190.in-addr.arpa. -aln-mailrelay.att.net. -www.hgh.com. -www.computrabajo.com.mx. -. -hesperiatrussinc.com. -productnews.link.net. -profile.ak.fbcdn.net. -www.michaeltilsonthomas.com. -download831.avast.com. -www.twittular.com. -www.theclimateproject.org. -csi.gstatic.com. -ahzxwacg4.07vj. -155.186.93.186.in-addr.arpa. -didrickmedical.com.s7a1.psmtp.com. -230.1.240.201.in-addr.arpa. -162.189.13.209.in-addr.arpa. -s.ytimg.com. -bridge.inc.ru. -19-courier.push.apple.com. -reminc.com. -twitter.com. -orcart.facebook.com. -login.yahoo.com. -84.8.166.89.in-addr.arpa. -profile.ak.fbcdn.net. -a.root-servers.net. -getprof.nl.np.community.playstation.net. -amazingdeals1.info. -dubaided.com. -227.88.161.189.in-addr.arpa. -119.47.98.174.in-addr.arpa. -136.11.48.174.in-addr.arpa. -apps.facebook.com. -notasparalectorescuriosos.blogspot.com. -belleusa.com. -tochlit.ru. -21.53.134.187.in-addr.arpa. -qipim.com. -www.oooforum.org. -www.twitter.com. -49.8.182.93.in-addr.arpa. -forum.siemens-club.ru. -spider.tm. -premierfoto.ru. -znoihyb.cc.home. -www.consejotecnicoconsultivo.org.mx. -a5.sphotos.ak.fbcdn.net. -82yahoo.com. -a995.mm1.akamai.net. -auddi.ru. -mariah.com. -ihd.com. -fbcdn-profile-a.akamaihd.net. -i.ebayimg.com. -www.google-analytics.com. -55.49.32.177.in-addr.arpa. -dogguy.us. -ads7261.hotwords.com.ar. -www.airspartner.com. -dns.msftncsi.com. -fonts3.scribdassets.com. -www.planetmad.es. -photos-b.ak.fbcdn.net. -profile.ak.fbcdn.net. -silveiro.com. -a4.sphotos.ak.fbcdn.net. -fbcdn-photos-a.akamaihd.net. -121.93.89.210.in-addr.arpa. -photos-g.ak.fbcdn.net. -ifab.spb.ru. -www.apple.com. -th02.deviantart.net. -safebrowsing-cache.google.com. -gsp10-ssl.apple.com. -hyec.en.alibaba.com. -pixel.facebook.com. -api-public.addthis.com. -www.biggunspestcontrol.com. -ib.adnxs.com. -a3.sphotos.ak.fbcdn.net. -download.mozilla.org. -www.google.com. -mail.thomascook.fr. -pcsynergy.com. -178.204.5.174.in-addr.arpa. -rolypolygangbang.maniacpass.com. -lb._dns-sd._udp.0.0.0.5.in-addr.arpa. -www.milenio.com. -179.186.178.183.in-addr.arpa. -163.60.244.189.in-addr.arpa. -us.telex.com. -a.root-servers.net. -a.root-servers.net. -142.225.255.201.in-addr.arpa. -ask.com. -221.182.137.186.in-addr.arpa. -c7.zedo.com. -xqtspkhmxruszajp.org. -adictosgeek.com. -api-read.facebook.com. -0-74.channel.facebook.com. -fbcdn-profile-a.akamaihd.net. -gas-web2.no-ip.info. -a1890.g.akamai.net. -96.46.137.190.in-addr.arpa. -248.8.149.83.in-addr.arpa. -i.dell.com. -gateway.loseit.com. -guiamexico.com.mx. -62.122.143.101.in-addr.arpa. -mailgate.cybercity.dk. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -external.ak.fbcdn.net. -d2103269.xoom.it. -67.24.231.91.in-addr.arpa. -py.starmedia.com. -dr._dns-sd._udp.lan. -www.vinnylingham.com. -mx.youtube.com. -aka-cdn-ns.adtech.de. -creatividadcondulsuras.blogspot.com. -www.gtasanandreas.net. -maps.google.co.uk. -www.elpatronfm.com.mx. -restauracionreseda.com. -a1.sphotos.ak.fbcdn.net. -bergancardio.com. -dingtao333.3322.org. -budapest.frasershospitality.com. -31.190.63.69.in-addr.arpa. -google.com. -202.236.159.110.in-addr.arpa. -www.seresvivos.net. -a954.v.phobos.apple.com. -alloymail.com. -limbobreakfast.blogspot.com. -www.google-analytics.com. -www.pideyoo.com. -449-async.olark.com. -73.87.155.190.in-addr.arpa. -em1x-375.lhr.messaging.nokia.com. -ar-ar.facebook.com. -dns.msftncsi.com. -c-0.19-a30f1081.80481.1518.19d1.3ea1.200.0.hgthlrt321s5gnj4pjsjfr7q4q.avqs.mcafee.com. -accounts.google.com. -158.220.188.189.in-addr.arpa. -pixel.facebook.com. -43.210.214.67.in-addr.arpa. -i3.ytimg.com. -www.youtube.com. -www.housetweaking.com. -maps.google.es. -v10.nonxt2.c.googlesyndication.com. -static6.flixster.com. -plod.ru. -z-ecx.images-amazon.com. -azad-net.net. -sac.gti.mcafee.com. -www.cnn.com. -ao.l.com. -a3.sphotos.ak.fbcdn.net. -ar.answers.yahoo.com. -t0.gstatic.com. -googleads.g.doubleclick.net. -fr-fr.facebook.com. -photos-d.ak.fbcdn.net. -www.youtube.com. -24.195.65.74.in-addr.arpa. -a.root-servers.net. -57.248.113.186.in-addr.arpa. -maps.google.com. -s.ytimg.com. -search.yahoo.com. -www.alanhoskins.com. -25.10.160.187.in-addr.arpa. -developers.facebook.com. -www.rmservices.nsw.gov.au. -localhost. -a5.sphotos.ak.fbcdn.net. -www.pufcompany.com. -exf1.dsa.reldom.tamu.edu. -hiloterapiaclubdeagujaehilo.blogspot.com. -inc.appliedsec.com. -b.scorecardresearch.com. -63.91.169.189.in-addr.arpa. -en.netlog.com. -newversion.epyte.com. -foxvall.com. -www.sevillasevillasevilla.com. -www.instants.cl. -37.153.104.68.in-addr.arpa. -103.81.181.85.in-addr.arpa. -122.218.93.186.in-addr.arpa. -www.facebook.com. -moonscoop.com. -liquidlove.cc. -16.99.9.177.in-addr.arpa. -download.iolo.net. -www.googleadservices.com. -a652.phobos.apple.com. -www.vai.com. -a2.sphotos.ak.fbcdn.net. -_482_20_2. -pagead2.googlesyndication.com. -dns.msftncsi.com. -viavh1la.112.2o7.net. -mjwinnovations.com. -www.twitter.com. -rawarrior.com. -secure.shared.live.com. -voyo.cz. -titanium30-en.url.trendmicro.com. -137.0.72.187.in-addr.arpa. -75.161.52.187.in-addr.arpa. -helo.org. -109.76.250.166.in-addr.arpa. -lyv9u78hs.k16u9c8f. -master.sdabocconi.it. -twitter.com. -39.201.58.200.in-addr.arpa. -secure-us.imrworldwide.com. -um16.eset.com. -static.ak.fbcdn.net. -ntp.glb.nist.gov. -www.youtube.com. -100.1.168.192.in-addr.arpa. -www.autoscout24.es. -www.facebook.com. -www.ngskintools.com. -check6.facebook.com. -qjtogpkupjighkr.net. -img.fiesta101.com.s3.amazonaws.com. -photos-b.ak.fbcdn.net. -:y85m4vcd.g53f3l5t. -pagead2.googlesyndication.com. -xatracing.com. -profile.ak.fbcdn.net. -142.173.205.190.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -coxnc.com. -www.googletagservices.com. -147.142.152.189.in-addr.arpa. -221.108.204.190.in-addr.arpa. -207.215.19.187.in-addr.arpa. -4b2eapnji.q49s5i5z. -secure-us.imrworldwide.com. -www.peachtree.com. -10.225.230.190.in-addr.arpa. -prensaagraria.blogspot.com. -api-read.facebook.com. -peliculasdelholocaustojudio.blogspot.com. -3rxba3akr.31xu. -davis-cpa.net. -www.video-lyrics.com. -33.210.160.201.in-addr.arpa. -dns.msftncsi.com. -peterhalliwell.com. -www.elcornudo.es. -96.148.59.199.in-addr.arpa. -www.google.com. -241.239.12.189.in-addr.arpa. -profile.ak.fbcdn.net. -www.sophiedeeonline.com. -mail-attachment.googleusercontent.com. -api-read.facebook.com. -luisldg.wordpress.com. -mail.kphbuilds.com. -389.webim0221.webim.myspace.com. -us-w1.rockmelt.com. -www.kachivaches.es. -ow4ml3wlr.g99l5x2u. -novoco.com. -152.174.172.189.in-addr.arpa. -www.movies-24h.com. -eilat.sci.brooklyn.cuny.edu. -apple.com. -www.windowtothemovies.com. -army.togetherweserved.com. -ad.e-viral.com. -rcp.na.blackberry.com. -rss.cbc.ca. -vp.sip.messenger.msn.com. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.facebook.com. -iceweb.net. -content.yieldmanager.edgesuite.net. -mailgateway1.hochschule.li. -www.ottoskins.com. -a.root-servers.net. -apis.google.com. -149.115.231.190.in-addr.arpa. -www.googleadservices.com. -init-p01md.apple.com. -19-courier.push.apple.com. -www.gratisistockholm.nu. -mx.jewsonrealty.com. -a.ads2.msads.net. -a.root-servers.net. -ccshows.com. -csi.gstatic.com. -89.1.40.201.in-addr.arpa. -abacus.tumblr.com. -sprint-canada.com.home. -dr._dns-sd._udp.0.2.168.192.in-addr.arpa. -i730.photobucket.com. -b.scorecardresearch.com. -www.facebook.com. -yiwucollection.en.alibaba.com. -sro-alianzalatina.blogspot.com. -174.81.215.201.in-addr.arpa. -photos-f.ak.fbcdn.net. -bs.serving-sys.com. -www.barcodesinc.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -207.167.130.190.in-addr.arpa. -profile.ak.fbcdn.net. -secure.csfm.com. -187.1.21.95.in-addr.arpa. -207.120.26.92.in-addr.arpa. -www.niswan.net. -www.teamrocs.com. -52.47.100.208.in-addr.arpa. -www.google.es. -js2.wlxrs.com. -eabd3b6ed1.static.crowdscience.com. -news.google.com.mx. -htc2.accu-weather.com. -www.glamourbabes.org. -www.statcounter.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -155.185.49.190.in-addr.arpa. -www.jpedsurg.org. -www.google-analytics.com. -ksn2-12.kaspersky-labs.com. -0-238.channel.facebook.com. -s7.addthis.com. -www.bay-of-fundie.com. -s2.youtube.com. -www.faridaguitars.co.uk. -profile.ak.fbcdn.net. -www.abbyswings.nude-beach-sex.com. -cursoderobotica.blogspot.com. -www.amarillashialeah.com. -apex.od.ua. -www.guiamania.com. -portablesdoctor-reprod.blogspot.com. -xboxlive.ign.com. -makeupbynyna.blogspot.com. -www.sivananda.es. -sun.uchc.edu. -tdtv.microsoft.fr. -hootsuite.com. -a.root-servers.net. -www.bjmama.net. -amazonm-611.vo.llnwd.net. -www.bunkergraphics.com. -186.212.188.200.in-addr.arpa. -www.net-pratique.fr. -nethunting.files.wordpress.com. -mail.prodigy.net.mx. -insider.msg.yahoo.com. -www.noubarris.net. -c.baidu.com. -esmas2006.occ.com.mx. -www.google.es. -r._dns-sd._udp.lan. -163.105.154.184.in-addr.arpa. -www.googleadservices.com. -241.18.23.187.in-addr.arpa. -api.facebook.com. -cranbarry.com. -svacom.com. -external.ak.fbcdn.net. -keckobservatory.org. -blog.allusb.com. -bolsasistemas.com.woopra-ns.com. -piteau.com.1.arsmtp.com. -s-static.ak.facebook.com. -hosturl.no-ip.biz. -time.nist.gov. -www.google.com. -download.microsoft.com. -mail.ikka.com. -articulo.mercadolibre.com.mx. -clients2.google.com. -uk.answers.yahoo.com. -apps.facebook.com. -photos-e.ak.fbcdn.net. -231.43.144.78.in-addr.arpa. -86.198.159.189.in-addr.arpa. -87.73.58.189.in-addr.arpa. -www.theshadowlounge.co.uk. -widgets.twimg.com. -creative.ak.fbcdn.net. -www.michaela.it. -quantumgraphics.ru. -pumpcoinc.com. -www.tv-so.com. -fbcdn-sphotos-a.akamaihd.net. -c4.zedo.com. -www.philips.com.mx. -video.google.com. -news.google.com.mx. -appsmetadata.toolbar.conduit-services.com. -140.196.165.46.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -kabuj.polyvore.com. -cdn.vps.net.c.footprint.net. -camrent.se. -www.memeadictos.org. -dmmail01.demac.com. -_634_23_7. -pixel.facebook.com. -www.thesun.co.uk. -www.google.com. -227.244.78.186.in-addr.arpa. -external.ak.fbcdn.net. -repository.jboss.org. -b.scorecardresearch.com. -lizzie-secret.bravoerotica.com. -a.root-servers.net. -dns.msftncsi.com. -tamp04.activenetcontroller.net. -canarias.indymedia.org. -bs.serving-sys.com. -ds.serving-sys.com. -programtv.interia.pl. -photos-e.ak.fbcdn.net. -bd0dc.v.fwmrm.net. -finchleycatholic.org.uk. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -crl.microsoft.com. -www.3djuegos.com. -_902_96_1. -freeapps.me. -98.235.111.58.in-addr.arpa. -84.39.23.186.in-addr.arpa. -apis.google.com. -116.104.26.190.in-addr.arpa. -www.facebook.com. -photos-h.ak.fbcdn.net. -version.jomsocial.com. -228.59.89.186.in-addr.arpa. -i4.ytimg.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -opportune.ru. -3.247.100.97.in-addr.arpa. -abcommortgage.com. -shelfari-kcp.amazon.com. -dns.msftncsi.com. -go.microsoft.com. -www.activolcans.info. -api.twitter.com. -s.jimdo.com. -photos-g.ak.fbcdn.net. -134.47.42.201.in-addr.arpa. -www.buscoenlaces.es. -dt.tongji.linezing.com. -53.103.106.186.in-addr.arpa. -s-static.ak.facebook.com. -206.38.22.107.in-addr.arpa. -4.77.206.190.in-addr.arpa. -m.facebook.com. -www.planetofbirds.com. -www.ecosdosur.org. -photos-h.ak.fbcdn.net. -inbound.kprecruiting.com.netsolmail.net. -r._dns-sd._udp.lan. -mx.pronosticofoxsportsla.com. -www.greencorrespondents.com. -ar-ar.facebook.com. -profile.ak.fbcdn.net. -apps.facebook.com. -www.los40.com.gt. -sg-asia.vertical.search.ystg1.b.yahoo.com. -232.77.234.189.in-addr.arpa. -wpad. -static.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -mail2.chat-land.org. -elrinconbiologico.blogspot.com. -jtools.smartmoney.com. -www.gaylife.time4twinks.com. -es.kioskea.net. -bs.serving-sys.com. -allanhomes.com.inbound10.mxlogic.net. -external.ak.fbcdn.net. -www.schools.com. -misterolympia.com.ar. -platform.twitter.com. -heartbeat.belkin.com. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -tour.windyvidz.com. -a6.sphotos.ak.fbcdn.net. -de-de.facebook.com. -u6sadblvs.86fo. -89.171.57.186.in-addr.arpa. -dangar.artelista.com. -sp3.fotolog.com. -developers.facebook.com. -bidsystem.adknowledge.com. -static.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -www.facebook.com. -92.43.86.190.in-addr.arpa. -www.tracerplus.com. -ad.doubleclick.net. -a.root-servers.net. -26.249.208.86.in-addr.arpa. -apps.facebook.com. -gopro.com. -52.86.164.189.in-addr.arpa. -img6.pictiger.com. -www.randomdetox.com. -34.184.110.189.in-addr.arpa. -145.63.226.213.in-addr.arpa. -apps.facebook.com. -tlanders.com. -waycooldesigns.com. -247.168.76.76.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -static.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -63.100.157.186.in-addr.arpa. -hog.assets.zgncdn.com. -www.joomla.royy.net. -www.facebook.com. -_725_84_1. -checkout.google.c. -a.root-servers.net. -ssl.gstatic.com. -tswgarage.blogspot.com. -mail.prometeo.com. -a5.sphotos.ak.fbcdn.net. -newsrss.bbc.co.uk. -time.chttl.com.tw. -28.249.1.181.in-addr.arpa. -a.root-servers.net. -mx3.wellsfargo.com. -radiouno.net. -content3c1b.omroep.nl. -js.casalemedia.com. -www.3dglasses.com. -watson.microsoft.com. -144.253.35.200.in-addr.arpa. -atlr.ec. -a6.sphotos.ak.fbcdn.net. -p4.focus.de. -central.keppel.k12.ca.us. -foto.paraisowebcam.com. -groupevianden.com. -tredir.go.com. -a.root-servers.net. -photos-b.ak.fbcdn.net. -www.facebook.com. -s2.youtube.com. -200.190.9.186.in-addr.arpa. -feeds.bbci.co.uk. -linkin-park-theme.archivospc.com. -www.citasdeamor.es. -65.186.179.190.in-addr.arpa. -jpwkake3m.z31z8n6d. -www.google.com.mx. -crm.digitalchocolate.com. -210.201.10.186.in-addr.arpa. -sites.google.com. -apps.facebook.com. -mail2.acpr.ru. -fbcdn-profile-a.akamaihd.net. -i.i.imgur.com. -afcmails.com. -www.facebook.com. -www.newfoundglorystuff.com. -www.bing.com. -www.sektor.gen.tr. -form.hktdc.com. -129.86.53.186.in-addr.arpa. -col.stb01.s-msn.com. -time.chttl.com.tw. -madrid.salir.com. -i4.ytimg.com. -www.adbrite.com. -168.161.105.186.in-addr.arpa. -obradoretumbante.globo.com. -youtube-downloader-hq-pro.softonic.com. -photos.cams.com. -clock.fmt.he.net. -ydpj.com. -hyperdatis.de. -mail.muellerenvironmental.com. -m.see-my-ip.com. -checkip.dyndns.org. -sbcglobal.net. -photos-e.ak.fbcdn.net. -market.android.com. -chat.onlinefootballmanager.co.uk. -indoexports.net. -view.atdmt.com. -a1822.phobos.apple.com. -ntp1.dlink.com. -gsp1.apple.com. -id.google.com. -ygum7qsd:.y41n2s4s. -cheapestenergy.eu. -shreya.co.in. -safebrowsing.clients.google.com. -www.incremento.net. -keepalive.se2.softether.com. -204.49.135.181.in-addr.arpa. -15.149.220.66.in-addr.arpa. -www.dbsheppard.com. -secure.wlxrs.com. -www.loveinfobook.com. -www.youtube.com. -highslide.com. -p.yoho.cn. -api.twitter.com. -nj663tv3t.z21t0j0p. -twitter.co. -ksn2-12.kaspersky-labs.com. -a.root-servers.net. -plusone.google.com. -ydigminkt.97mt. -www.pcconnectionexpress.com. -entertainment.webshots.com. -155.77.146.189.in-addr.arpa. -229.155.64.177.in-addr.arpa. -static.ak.fbcdn.net. -hhzbhhpfn.95rq. -a.root-servers.net. -221.63.204.186.in-addr.arpa. -metrics.apple.com. -assets.tumblr.com. -cdn02.cartown.com.edgesuite.net. -static.ak.fbcdn.net. -time.windows.com. -www.gameslist.com. -www.sega.nl. -fonts.googleapis.com. -gamer.portail.free.fr. -www.millenniumassessment.org. -alienbabeltech.com. -profile.ak.fbcdn.net. -a.root-servers.net. -a.root-servers.net. -jovenescoleccionistas.tallermultinacional.org. -194.211.25.189.in-addr.arpa. -ssl.gstatic.com. -a.root-servers.net. -usmpagency.com.s7b1.psmtp.com. -www.gdocu.es. -29.172.203.190.in-addr.arpa. -156.10.228.77.in-addr.arpa. -cdn.zeusclicks.com. -glerum.com. -s-static.ak.fbcdn.net. -i1.ytimg.com. -photos-c.ak.fbcdn.net. -239.28.193.207.in-addr.arpa. -www.atlantafixture.com. -csi.gstatic.com. -www.nothingcomparestohavana.com. -a6.sphotos.ak.fbcdn.net. -www.apeironmagazine.com. -116.15.33.90.in-addr.arpa. -safebrowsing-cache.google.com. -a8.sphotos.ak.fbcdn.net. -insider.msg.yahoo.com. -a.root-servers.net. -www.pbscolorado.com. -79.121.113.186.in-addr.arpa. -i2.ytimg.com. -a5.sphotos.ak.fbcdn.net. -www.hotmail.com. -www.microsoft.com. -splayer.uptodown.com. -91.230.95.65.in-addr.arpa. -search.babylon.com. -hipay.com. -:knpbrhnp.o32z8k4r. -www.mesmo.tv. -mail.imageworks4signs.com. -. -230.169.152.85.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.aa.com. -profile.ak.fbcdn.net. -175.98.63.212.in-addr.arpa. -exchange2003.snapon.com. -ajax.cloudflare.com. -gosstroy.gov.ru. -static.ak.fbcdn.net. -flowhot.info. -109.94.86.200.in-addr.arpa. -smtp2.vianetworks.de. -www.facebook.com. -131.81.142.190.in-addr.arpa. -profile.ak.fbcdn.net. -nomolesten.com. -statse.webtrendslive.com. -photos-c.ak.fbcdn.net. -mail.fortifiber.com. -da8thaern.95ra. -login.toolbar.conduit-services.com. -38.25.141.201.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -32-courier.push.apple.com. -mipeq.com. -105.47.52.186.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -47.189.142.190.in-addr.arpa. -209.72.22.186.in-addr.arpa. -www.ultimatehandyman.org. -free2night.net. -upload.wikimedia.org. -f42.stagero.eu. -premiumcars.autotrader.ca. -linksfb.com. -www.youtube.com. -cuentame.inegi.org.mx. -sp.cwfservice.net. -a3.sphotos.ak.fbcdn.net. -infanciasolidaria.blogspot.com. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -apis.google.com. -content.dl-rms.com. -kearnyfederalsavings.net.inbound10.mxlogic.net. -a3.sphotos.ak.fbcdn.net. -mowprod.kaboomsocial.com. -pixel.facebook.com. -ajax.googleapis.com. -xcdn.xgraph.net. -u40.eset.com.lan. -97.44.90.24.in-addr.arpa. -lb-chw-webserver-cache-1218636608.us-east-1.elb.amazonaws.com. -161.42.0.186.in-addr.arpa. -81.184.132.94.in-addr.arpa. -googleads.g.doubleclick.net. -a212.phobos.apple.com. -by2msg3010706.gateway.messenger.live.com. -myo74ld8m.u67k2r5q. -www.google.com. -static.ak.fbcdn.net. -www.google.com. -dtboot.orbitdownloader.com. -www.google-analytics.com. -lalocuradelpecado.blogspot.com. -v8.cache7.c.youtube.com. -aromanova.ru. -s-static.ak.facebook.com. -at.amgdgt.com. -rs531l32.rapidshare.com. -payments.ebay.com. -www.facebook.com. -www.askvids.com. -9gag.com. -165.190.12.61.in-addr.arpa. -webmail35.yandex.ru. -fr-fr.facebook.com. -140.80.141.201.in-addr.arpa. -yamalarchaeology.ru. -google.com. -checkip.dyndns.org. -165.50.0.10.in-addr.arpa. -plus.google.com. -content.mobile.viaden.com. -hog.assets1.zgncdn.com. -www.geobaby.com. -29.134.134.187.in-addr.arpa. -29.160.1.201.in-addr.arpa. -go.trafficshop.com. -110.74.158.200.in-addr.arpa. -photos-c.ak.fbcdn.net. -179.wap517.biz. -fbcdn-photos-a.akamaihd.net. -downloads3.kaspersky-labs.com. -photos-e.ak.fbcdn.net. -a.root-servers.net. -ad.yieldmanager.com. -vgcqabgpc.51lt. -sp.cwfservice.net. -b3.imgsrc.ro. -a.root-servers.net. -it-it.facebook.com. -cdn.api.twitter.com. -0-68.channel.facebook.com. -149.94.209.201.in-addr.arpa. -207.241.151.79.in-addr.arpa. -dns.msftncsi.com. -www.facebook.com. -ttu.edu. -tmx.technoratimedia.com. -photos-g.ak.fbcdn.net. -pnpco.com. -content.yieldmanager.edgesuite.net. -csi.gstatic.com. -249.62.148.190.in-addr.arpa. -wacomail1.wacotrib.com. -p.twimg.com. -76.87.228.189.in-addr.arpa. -www.17dht.com. -tv.mk.ru. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.programmingfacts.com. -hepm.hitachi-asia.com. -239.194.110.85.in-addr.arpa. -ping4.client.sandai.net. -deadtravelgroup.blogspot.com. -a2.sphotos.ak.fbcdn.net. -i.ytimg.com. -platform.stumbleupon.com. -www.google.com. -bit.ly. -77.158.8.200.in-addr.arpa. -www.tripsandtreasures.blogspot.com. -sc2.rules.mailshell.net. -www.nikkohurtado.com. -vtr.net. -218.35.153.201.in-addr.arpa. -bertamares.blogspot.com. -ar.wikipedia.org. -www.hogarandum.com. -www.cell-lines-service.de. -my.plaza.rakuten.co.jp. -a.root-servers.net. -mlocate.spotlife.net. -archiblock.com. -www.rockmobilez.net. -49.224.93.186.in-addr.arpa. -bin-short.whatsapp.net. -l972nb7:u.x91z2x2l. -102.127.250.201.in-addr.arpa. -premierair.com. -www.adobe.com. -dnl-01.geo.kaspersky.com. -www.virit.net. -it-it.facebook.com. -tmz.com. -mx00.1and1.co.uk. -www.trm.md. -lb._dns-sd._udp.lan. -rlwaconsult.com. -a5.sphotos.ak.fbcdn.net. -mail.google.com. -techhelp0417.webs.com. -61.88.233.189.in-addr.arpa. -gimnasialatina.com. -www.spike.com. -. -twitter.com. -www.sunwayhotels.com. -profile.ak.fbcdn.net. -aka-cdn-ns.adtech.de. -dns.msftncsi.com. -nomulous.com. -labontology.wikispaces.com. -71.212.58.186.in-addr.arpa. -www.emotional.sk. -static.exoclick.com. -comidaspostresalimentosrecetascomidas.blogspot.com. -mscrl.microsoft.com. -a6.sphotos.ak.fbcdn.net. -www.gpstc.org. -casbygroup.com. -www.estacionsanpedro.com.ar. -salva-reyes.blogspot.com. -download986.avast.com. -78.147.46.189.in-addr.arpa. -10.7.20.76.in-addr.arpa. -ads2.contentabc.com. -wow.hro.cl. -en-us.fxfeeds.mozilla.com. -mx1.koreazinc.co.kr. -b.scorecardresearch.com. -grenson.com. -dns.msftncsi.com. -plugin.maldi.tv. -27.28.193.187.in-addr.arpa. -ensigngeo.com. -195.78.26.177.in-addr.arpa. -charliebucket.com.au. -rest-img.msg.yahoo.com. -30.97.61.202.in-addr.arpa. -mail2.newlife.co.za. -www.xvideosredtube.com. -marxists.org. -ajax.googleapis.com. -partner.googleadservices.com. -193.103.174.189.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -tunebb.ru. -sn3v015.colegium.com. -mi.wikipedia.org. -plusone.google.com. -eguard2.bizoservices.com. -s4.histats.com. -a.root-servers.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -www.google.com. -static.ak.fbcdn.net. -www.universia.cl. -www.linkedin.com. -buttconstruction.com. -smarturl.it. -www.gpp-osijek.com. -210.108.157.79.in-addr.arpa. -neovortal.com. -ic.tynt.com. -www.facebook.com. -i2.ytimg.com. -email.wtsonline.com. -150.197.85.186.in-addr.arpa. -jy2opikcn.94sf. -sn2files.storage.msn.com. -40.116.102.201.in-addr.arpa. -www.couponmole.com. -www.ops.org.ni. -yadtal.net. -www.textsrv.com. -whistlerfilmfestival.com. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -12.64.web1.im.weibo.com. -brucelynton.com. -194.17.251.189.in-addr.arpa. -251.211.39.195.in-addr.arpa. -pensionfuenflinden.de. -people.directory.live.com. -cyberguerre.blogspot.com. -external.ak.fbcdn.net. -mail.sxwtc.com. -checkip.dyndns.org. -232.33.254.190.in-addr.arpa. -chat.extalia.net. -mx.graycelltech.com. -www.nitrodesign.com. -th00.deviantart.net. -. -43.198.114.69.in-addr.arpa. -159.243.125.96.in-addr.arpa. -celebhairstyle.files.wordpress.com. -blackstaramps.forumotion.com. -www.mediawiki.org. -graph.facebook.com. -www.google.com. -stereotown.com. -s3.amazonaws.com. -www.kga.neva.ru. -www.connect.facebook.com. -3.ns1631262.info. -books.google.com.mx. -111.218.226.190.in-addr.arpa. -rss.emol.com. -carrosyradios.galeon.com. -33.153.174.190.in-addr.arpa. -www.losnacionales.com. -www.thevervoid.com. -www.federacion-espa-airsoft.es. -www.strategicsourceror.com. -www.eepa.be. -www.spiderboost.com. -radiohead.mx. -35.162.233.186.in-addr.arpa. -google.com. -2008webset5.net. -softwareandscripts.com. -www.goohle.com. -local-bay.contacts.msn.com. -i216.photobucket.com. -checkip.dyndns.com. -a1725.l.akamai.net. -vp.sip.messenger.msn.com. -zrp.spb.ru. -blih.com. -66.184.114.186.in-addr.arpa. -41.186.178.190.in-addr.arpa. -a.root-servers.net. -cdn.pastemagazine.com. -kontentservice.ru. -imageharvest.net. -mail.y-olastroy.ru. -164.125.173.201.in-addr.arpa. -signup.21sexturycash.com. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -evsecure-ocsp.verisign.com. -a1001.w40.akamai.net. -udc.msn.com. -www.madrimasd.org. -lewismarine.com. -home.live.com. -www.facebook.com. -a.root-servers.net. -armina.ru. -newsitedesigns-com.mail.eo.outlook.com. -blst.msn.com. -smtp1.kt.co.kr. -chatenabled.mail.google.com. -ivanowo.ru. -105.108.34.99.in-addr.arpa. -cdn1.ticketsinventory.com. -barracuda.townsendcapital.com. -search.twitter.com. -vp.sip.messenger.msn.com. -developers.facebook.com. -www.portalhomeopatico.com.ar. -wcsh-com.mail.eo.outlook.com. -productosdeperu.com. -sso.samsung.com. -innovationnewsdaily.com. -profile.ak.fbcdn.net. -cdn-0.nflximg.com. -74.81.190.189.in-addr.arpa. -relay.voice.messenger.msn.com. -164.26.10.24.in-addr.arpa. -content.dl-rms.com. -apps.facebook.com. -199.124.183.180.in-addr.arpa. -bc.rentershotline.ca. -29.170.78.186.in-addr.arpa. -32.4.87.121.in-addr.arpa. -mail4.landtag-bw.de. -www.gstatic.com. -www.happynights.org. -photos-h.ak.fbcdn.net. -unafotopordiabylorenus.blogspot.com. -csi.gstatic.com. -b-0.19-21006008.d071081.1518.19d4.3ea0.410.0.pesqeebfp881qkmpk4aw8nfsc5.avqs.mcafee.com. -secure.logmein.com. -teredo.ipv6.microsoft.com. -a4.sphotos.ak.fbcdn.net. -ecn.t0.tiles.virtualearth.net. -sp.cwfservice.net. -www.bluecoat.com. -geo.messenger.services.live.com. -royal-wolf.com. -www.habitual.eng.br. -www.yaleherald.com. -www.abraham-hickslawofattraction.com. -9.181.242.201.in-addr.arpa. -a.root-servers.net. -spamfilter.bodekandrhodes.com. -cccpschmidt.de. -videoalbumy.azet.sk. -111.144.249.78.in-addr.arpa. -227.11.179.163.in-addr.arpa. -fp.vendaria.com. -rad.msn.com. -a.root-servers.net. -studio-nsk.ru. -130.224.34.177.in-addr.arpa. -apix.iminent.com. -photos-c.ak.fbcdn.net. -www.electroindustria.com. -profile.ak.fbcdn.net. -4.bp.blogspot.com. -www.innovacion.gob.cl. -profile.ak.fbcdn.net. -dsn5.d.skype.net. -ksn7.kaspersky-labs.com. -de.jigzone.com. -wushu-school.ru. -plus.google.com. -associatedsubs-com.relay1b.spamh.com. -sorosfiles.com. -ws-cloud203-blur.svcmot.com. -iswimemler.com.s9a2.psmtp.com. -119.144.155.90.in-addr.arpa. -static.ak.fbcdn.net. -tnhpqj79c.97vi. -a.root-servers.net. -skymonk.net. -www.wizard101.it. -signatron.com. -www.delish.com. -ads.adbrite.com. -gadgets.live.com. -www.cousyaward.com. -242.110.90.200.in-addr.arpa. -29.101.120.200.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -cinematografia.cl. -18.10.24.201.in-addr.arpa. -botopolis.com. -www.youtube.com. -js.wlxrs.com. -pixel.facebook.com. -a4.sphotos.ak.fbcdn.net. -mhminc.com.inbound10.mxlogic.netet. -resumenesdelibros.mlarac.cl. -47.224.171.69.in-addr.arpa. -ammlaw.com.inbound10.mxlogicmx.net. -a.root-servers.net. -209.103.220.189.in-addr.arpa. -dr._dns-sd._udp.0.2.168.192.in-addr.arpa. -admin.brightcove.com. -www.quemadres.com. -secure.shared.live.com. -photos-f.ak.fbcdn.net. -profile.ak.fbcdn.net. -crl.microsoft.com. -photos-f.ak.fbcdn.net. -free.voyeur-eye.com. -128.144.51.190.in-addr.arpa. -47.122.88.2.in-addr.arpa. -nokia-s40-11-cust.opera-mini.net. -photos-b.ak.fbcdn.net. -www.google.com. -19.33.251.85.in-addr.arpa. -bestbuycondo.com. -mail.dersa.com. -71.206.73.69.in-addr.arpa. -dns.msftncsi.com. -mail.google.com. -ax.init.itunes.apple.com. -safebrowsing-cache.google.com. -49.147.223.201.in-addr.arpa. -englewoodhospital.com. -www.nationwide.com. -kuzbass-veda.ru. -autoupdate.igw.sdo.com. -www.google.com. -api.twitter.com. -www.avantmusicnews.com. -i240.photobucket.com. -plus.google.com. -platform.stumbleupon.com. -mail. -www.lakueva.com. -falfn.com. -btinfo.flashget.com. -www.addthis.com. -49.224.52.186.in-addr.arpa. -hcibooks.com. -213.187.138.190.in-addr.arpa. -te-tronik.info. -lcsitemain.symantec.com. -mx2.ertelecom.ru. -static.ak.fbcdn.net. -my.occ.com.mx. -a.root-servers.net. -a.root-servers.net. -i4.tagstat.com. -fonts.googleapis.com. -a.root-servers.net. -unifi. -www.mellowvirgins.com. -s5.mangareader.net. -www.sexolewebcams.com. -53.34.112.213.in-addr.arpa. -k1pfo727f.n43f5i5x. -162.20.209.190.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -dsn3.d.skype.net. -teredo.ipv6.microsoft.com. -ib.adnxs.com. -s-external.ak.fbcdn.net. -a.root-servers.net. -s.ytimg.com. -dumasses.com. -api.conduit.com. -vrvybx4zt.60lq. -0.pool.ntp.org. -usbionline.com.s6b2.psmtp.com. -api.geo.kontagent.net. -155.116.30.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -mail.tathwell.com. -hogalia.com. -237.199.243.201.in-addr.arpa. -graph.facebook.com. -ocsp.verisign.com. -www.jabbim.com. -14.190.63.69.in-addr.arpa. -248.203.138.200.in-addr.arpa. -clients2.google.com. -84.233.96.190.in-addr.arpa. -lldinc.com. -a639.da1.akamai.net. -osmtpws01.airtechniques.com. -search.4shared.com. -www.politica21.org. -49.172.220.190.in-addr.arpa. -hosting-gratis.com.es. -fs60.myvi.ru. -www.examiner.com. -michaelmillerfabrics.com. -41.30.59.186.in-addr.arpa. -static.ak.fbcdn.net. -pixel.facebook.com. -196.90.86.188.in-addr.arpa. -uspowerinc.com.s7a2.psmtp.com. -237.125.126.84.in-addr.arpa. -89o:53in3.88bc. -www.see-through-shirt.com. -eyeos-miniserver.softonic.com. -231.221.8.99.in-addr.arpa. -divx.112.2o7.net. -www.energyfirst.com. -sites.google.com. -distibutel.net. -klinika-ran.ru. -photos-f.ak.fbcdn.net. -253.235.172.190.in-addr.arpa. -www.facebook.com. -clients1.google.com. -therealtrends.com. -api-read.facebook.com. -ray. -56.92.53.64.in-addr.arpa. -ad.xtendmedia.com. -photos-e.ak.fbcdn.net. -www.mozilla.org. -67.147.156.216.in-addr.arpa. -mailbox3.tcfbank.com. -160.217.110.186.in-addr.arpa. -download.mapleeurope.com. -azze.ru. -nbcpolitics.msnbc.msn.com. -www.hipotecas-bancos.com. -d303resfoavrtt.cloudfront.net. -www.despegar.com.ar. -www.cancun-map.com. -metalrelease.blogspot.com. -wsfcsk12.nc.us. -www.google-analytics.com. -dingtao333.3322.org. -56.71.134.189.in-addr.arpa. -www.copiadoras-xerox.com.mx. -creative.ak.fbcdn.net. -profile.ak.fbcdn.net. -aidps.atdmt.com. -sp.cwfservice.net. -icm.ginyas.com. -redsky.com.s8a2.psmtp.com. -fu8j1dmn8.m11i0y0h. -a1.sphotos.ak.fbcdn.net. -accounts.google.com. -zirconmusic.com. -gs-loc.isg-apple.com.akadns.net. -leventhal.com. -81.118.93.109.in-addr.arpa. -www.macromedia.com. -freewaywebhost.com.multi.uribl.com. -mail.ecanarys.com. -a.root-servers.net. -70.207.13.187.in-addr.arpa. -jers3.info. -a.root-servers.net. -trupart.com. -www.foot-locker.co.uk. -lakeofweb.com. -oneexwidow.blogspot.com. -dreblen.com. -c.static-cdn.playfish.com. -tv.vilanoise.com. -www.marinespecies.org. -connect.facebook.net. -www.banneradsthatpay.com. -photos-f.ak.fbcdn.net. -pandcwebmasters.com. -s.ytimg.com. -133.125.111.189.in-addr.arpa. -ads2.msads.net. -3.212.13.219.in-addr.arpa. -151.192.57.62.in-addr.arpa. -tracker.ccc.de. -xm.corsendonk.com. -www.google-analytics.com. -plus.google.com. -alphabetizer.flap.tv. -78.150.49.178.in-addr.arpa. -zeppelin.sasknet.sk.ca. -82.69.226.168.in-addr.arpa. -adfarm.mediaplex.com. -www.netbrand.cl. -i565.photobucket.com. -br.wikipedia.org. -mail.live.com. -www.udenti.es. -235.213.179.64.in-addr.arpa. -yandalaw.com. -highklass.ru. -fancytuning.fancytuning.netdna-cdn.com. -accessories.vancl.com. -a7.sphotos.ak.fbcdn.net. -folkhop.com. -www.ieco.clarin.com. -lorenzo.newfaceshere.info. -tusvinilosdecorativosmx.blogspot.com. -66.193.49.187.in-addr.arpa. -netsacpe.net. -ad.yieldmanager.com. -www.rivtube.com. -www.milliscent.com. -ad.yieldmanager.com. -developers.facebook.com. -a.root-servers.net. -alcam.com. -b.scorecardresearch.com. -0-238.channel.facebook.com. -a.root-servers.net. -116.185.167.190.in-addr.arpa. -www.modern-war-generals.com. -appworld.blackberry.com. -queridobloc.blogspot.com. -dce.unm.edu. -newsrss.bbc.co.uk. -a5.sphotos.ak.fbcdn.net. -netflix336.pop1.la.nflximg.com.edgesuite.net. -news.yahoo.com. -28.131.229.190.in-addr.arpa. -services.seagate.com. -indiana-paw.com. -products.wdc.com. -a7.sphotos.ak.fbcdn.net. -pubads.g.doubleclick.net. -support.google.com. -www.google.com. -fr.webrep.avast.com. -s.youtube.com. -www.20minutos.es. -utils.babylon.com. -a.root-servers.net. -mchxas:zj.u26q6o6x. -224.37.83.24.in-addr.arpa. -213.100.208.189.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -www.blogblog.com. -249.165.194.210.in-addr.arpa. -img.diynetwork.com. -a8.sphotos.ak.fbcdn.net. -app168341283206303.socialappspot.com. -copt.ru. -153.112.51.190.in-addr.arpa. -a.root-servers.net. -d2108831.xoom.it. -. -cityvillefb3.static.zgncdn.com. -a1920.g.akamai.net. -165.173.19.95.in-addr.arpa. -static.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -84.92.172.189.in-addr.arpa. -. -91.20.80.201.in-addr.arpa. -photos-h.ak.fbcdn.net. -www.facebook.com. -www.hatsinthebelfry.com. -mail.bit-torrent.ru. -www.google.com. -www.apple.com. -dm-commerce.hr. -www.flagline.com. -profile.ak.fbcdn.net. -mail1.bethanna.org. -lgecorp.com.mail6.psmtp.com. -a.root-servers.net. -scribe.twitter.com. -22.32.227.186.in-addr.arpa. -webscouter.net. -sites.google.com. -a.root-servers.net. -147.211.242.189.in-addr.arpa. -dnl-01.geo.kaspersky.com. -dns.msftncsi.com. -142.24.179.88.in-addr.arpa. -churchextension.org.inbound10.mxlogic.net. -167.53.155.85.in-addr.arpa. -gnomoncopy.com. -ad.yieldmanager.com. -c.live.com. -233.135.35.189.in-addr.arpa. -www.itsgonnahurt.com. -www.youtube.com. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -s-static.ak.facebook.com. -img.baofeng.net. -check.sanasecurity.com. -static.ak.fbcdn.net. -_391_37_3. -potrebitel.ru. -www.cienciaysociedad.info. -o.xbox.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-d.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -www.hydro-orchids.com. -233.189.58.186.in-addr.arpa. -226.25.253.190.in-addr.arpa. -vietseas.com. -elpozodejacob.tripod.com. -account.live.com. -102.xg4ken.com. -144.105.239.89.in-addr.arpa. -time.stdtime.gov.tw. -accounts.google.com. -ad.adnetwork.net. -a4.sphotos.ak.fbcdn.net. -165.235.169.58.in-addr.arpa. -vpod.tv. -a1.sphotos.ak.fbcdn.net. -206.184.228.99.in-addr.arpa. -133.74.188.189.in-addr.arpa. -245.155.160.89.in-addr.arpa. -armpoucohunde.mp. -thumbs1.ebaystatic.com. -www.imdb.com. -78.233.108.76.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -www.ingdirect.com.au. -178.16.168.189.in-addr.arpa. -157.231.198.112.in-addr.arpa. -partner.googleadservices.com. -185.44.4.186.in-addr.arpa. -avatar.xboxlive.com. -www.facebook.com. -arielarrieta.com. -profile.ak.fbcdn.net. -vast.bp3844834.btrll.com. -gtanime-kai.foroactivo.com. -www.youtube.com. -miparroquia.fullblog.com.ar. -. -a.root-servers.net. -rewardchannelcenter.com. -external.ak.fbcdn.net. -ar-ar.facebook.com. -news.google.com.mx. -bcbsla.com. -50.11.158.82.in-addr.arpa. -64.244.132.190.in-addr.arpa. -www.youtube.com. -feed190.photobucket.com. -mybeautyloveaffair.blogspot.com. -210.49.35.201.in-addr.arpa. -s88lkzeqz.j64a3w4q. -psp.ign.com. -a6.sphotos.ak.fbcdn.net. -118.94.92.201.in-addr.arpa. -redirector.c.youtube.com. -148.123.29.201.in-addr.arpa. -www.visual28.com. -photos-d.ak.fbcdn.net. -49.140.209.190.in-addr.arpa. -www.thebigprojectme.com. -de-de.facebook.com. -a1725.l.akamai.net. -stats.ecb.europa.eu. -photos-e.ak.fbcdn.net. -www.alquranic.com. -www.facebook.com. -www.fotoefectos.com. -profile.ak.fbcdn.net. -topics.bo7.net. -creative.ak.fbcdn.net. -rcp.na.blackberry.com. -www.ecoportal.net. -www.betonsm.tk. -www.google.com. -photos-a.ak.fbcdn.net. -www.bravoerotica.com. -ssl.gstatic.com. -api.facebook.com. -a0.twimg.com. -19.211.202.190.in-addr.arpa. -www.goal-setting-for-success.com. -www.mininova.org. -us.rd.yahoo.com. -cdn1.ads.contentabc.com. -yahoo.com. -ntp.glb.nist.gov. -i2.ytimg.com. -www.blogbigcock.blogspot.com. -sa.bbc.com. -profile.ak.fbcdn.net. -edrmortgage.com. -games.metaservices.microsoft.com. -a6.sphotos.ak.fbcdn.net. -8497.kz.all.biz. -p04-caldav.icloud.com. -somos.arkihome.netdna-cdn.com. -thumbs4.ebaystatic.com. -14.115.92.65.in-addr.arpa. -h20397.www2.hp.com. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -postmaster.laguitare.com. -232.50.132.190.in-addr.arpa. -a.root-servers.net. -www.youxakep.ru. -twitter.com. -m.tn.com.ar. -37.140.51.190.in-addr.arpa. -www.fi.bitefight.org. -www.battlefieldsports.com. -166.26.171.221.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -fedexkinos.com. -thumbs1.ebaystatic.com. -s59.chatango.com. -teamsmi.com. -a.root-servers.net. -www.theanalogdept.com. -icanhascheezburger.com. -247.15.0.192.in-addr.arpa. -seaoleena.bandcamp.com. -muchosmisterios.blogspot.com. -www.justsimple.com.au. -www.monochrome-heaven.com. -torrentspy.com. -static.ak.facebook.com. -www.google.com. -bay.messenger.services.live.com. -75.70.102.200.in-addr.arpa. -163.238.198.77.in-addr.arpa. -a.root-servers.net. -www.espacioebook.com. -100.1.168.192.in-addr.arpa. -photos-b.ak.fbcdn.net. -oka-auto.ru. -carlosalvatelli.ru. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -bs.serving-sys.com. -dr._dns-sd._udp.0.33.168.192.in-addr.arpa. -cdn.api.twitter.com. -getprof.gb.np.community.playstation.net. -a.root-servers.net. -subaru-tlt.ru. -67.76.159.99.in-addr.arpa. -pix.search.iminent.com. -edconma.macintotheredi.museum. -www.google.com. -ryapps-a.akamaihd.net. -www.empleo.gob.mx. -external.ak.fbcdn.net. -cornosul.blogspot.com. -gmail.com. -twitter-widgets.s3.amazonaws.com. -www.deviajeabrasil.com. -bin-short.whatsapp.net. -websms.orange.es. -www.google-analytics.com. -101.62.217.196.in-addr.arpa. -www.playfirst.com. -whos.amung.us. -laptopsgadgets.com. -www.betamarket.info. -safebrowsing-cache.google.com. -171.173.168.192.in-addr.arpa. -a.root-servers.net. -a1.v.phobos.apple.com. -www.monster.at. -s0.2mdn.net. -ax.init.itunes.apple.com. -jajajajawww.facebook.com. -172.53.44.24.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -fbcdn-photos-a.akamaihd.net. -narutofriends.foro-argentina.net. -photos-a.ak.fbcdn.net. -sac.gti.mcafee.com. -47.191.78.84.in-addr.arpa. -nb8tl9z:1.38lr. -teledeporteonline12.chatango.com. -www.keek.com. -static.avast.com. -72.26.247.83.in-addr.arpa. -175.211.118.93.in-addr.arpa. -r.66.ru. -ns.gov.gu. -cleavelandbrowns.com. -pref.email.wetv.com. -ad.adserve.com. -www.care-bears.com. -197.80.149.187.in-addr.arpa. -231.175.55.190.in-addr.arpa. -mk-mx-4.b2b.tiscali.co.uk. -www.google.com. -tracker.tjgame.enorth.com.cn. -coffeeandwine.com. -www.freelivejasmincams.com. -ebadalrhman.yoo7.com. -www.feet-sniffing.com. -horaceroweb.disqus.com. -elit36.ru. -i2.ytimg.com. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -teredo.ipv6.microsoft.com. -aaa-calif.com. -proofpoint1.dordcs.org. -a8.sphotos.ak.fbcdn.net. -hpcs.bvsalud.org. -b-0.19-2300a008.11481.1518.19d3.3ea1.410.0.hukp6abflsusuhjnckn31hgnlj.avqs.mcafee.com. -dencinconsulting.com. -a.root-servers.net. -a3.sphotos.ak.fbcdn.net. -a1404.w41.akamai.net. -www.facebook.com. -dns.msftncsi.com. -profile.ak.fbcdn.net. -drivingclub.com. -besthairstyles.tk. -www.davidpaulmorris.com. -54.133.145.120.in-addr.arpa. -profile.ak.fbcdn.net. -csi.gstatic.com. -googleads.g.doubleclick.net. -b.scorecardresearch.com. -t3.gstatic.com. -220.172.190.186.in-addr.arpa. -widgets.amung.us. -cma-italia.com. -versatel.de. -145.175.167.118.in-addr.arpa. -www.poolred.com. -undiesaddiction.tumblr.com. -a.root-servers.net. -e4733.b.akamaiedge.net. -smtp.conamex.com. -a.root-servers.net. -45.110.183.114.in-addr.arpa. -16.64.238.80.in-addr.arpa. -a.root-servers.net. -creative.ak.fbcdn.net. -40.234.225.77.in-addr.arpa. -p01-bookmarks.icloud.com. -42.47.164.187.in-addr.arpa. -a787.phobos.apple.com. -apps.facebook.com. -58.131.91.186.in-addr.arpa. -109.119.75.65.in-addr.arpa. -mail.vmje.com. -7.251.158.187.in-addr.arpa. -t.co. -profile.ak.fbcdn.net. -modeminksigns.com. -rew.no-ip.info. -pbid.iforex.com. -f806.mail.yahoo.com. -scribe.twitter.com. -157.81.240.189.in-addr.arpa. -tetraprint.ru. -ocsp.godaddy.com. -phone.com. -s-static.ak.facebook.com. -14.52.101.187.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -store3.up-00.com. -www.wholesaleclothing4u.com. -www.nlm.nih.gov. -ad-g.doubleclick.net. -122.28.167.190.in-addr.arpa. -a.root-servers.net. -br.answers.yahoo.com. -t1.gstatic.com. -ja-jp.facebook.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -images.apple.com. -montreal.olx.ca. -textilescachicadan.blogspot.com. -googleads.g.doubleclick.net. -a.root-servers.net. -146.36.205.190.in-addr.arpa. -no.nonsense.ee. -www.web-ideas.com.au. -220.255.81.186.in-addr.arpa. -www-valusoft-com.wip.digitalrivercontent.net. -190.189.112.186.in-addr.arpa. -228.102.19.189.in-addr.arpa. -a.root-servers.net. -118.128.241.201.in-addr.arpa. -i3.ytimg.com. -news.ottoversand.at. -secure.wlxrs.com. -dns.msftncsi.com. -olgatanon.com. -38.116.143.189.in-addr.arpa. -l.yimg.com. -4124234.frasesinolvidables1.com.ar. -lugaresquever.tumblr.com. -api-read.facebook.com. -twimg0-a.akamaihd.net. -km-brown.com. -row.bc.yahoo.com. -jjue268rp.52nb. -mail.swot-analysis.ru. -us.jobomas.com. -a.root-servers.net. -a.root-servers.net. -promonegocios.net. -a5.sphotos.ak.fbcdn.net. -tms30.icrc.trendmicro.com. -static.ak.fbcdn.net. -zgn.static.zynga.com. -luvthatdrtywata.livejournal.com. -photos-f.ak.fbcdn.net. -237.173.170.201.in-addr.arpa. -a323.yahoofs.com. -_631_53_3. -fast-autos.net. -0-jg-w.channel.facebook.com. -aidps.atdmt.com. -doha.oilfield.slb.com. -putnam.com.s7b2.psmtp.com. -billing.sharo4ka.ru. -www.facebook.com. -illiweb.com. -bbs.chinasiemens.com. -www.facebook.com. -finance.yahoo.com. -157.247.85.24.in-addr.arpa. -ikm.com.ua. -yahoo.com. -www.google.co.id. -hugheslandscaping.com. -d2091827.xoom.it. -184.206.180.68.in-addr.arpa. -iwl.com. -www.mozilla.com. -www.sems.gob.mx. -profile.ak.fbcdn.net. -103.44.135.66.in-addr.arpa. -en.1000mikes.com. -apple-mobile.query.yahooapis.com. -ib.adnxs.com. -icons.iconator.com. -zynga2-a.akamaihd.net. -aol.com. -a.root-servers.net. -a1090.v.phobos.apple.com. -www.msftncsi.com. -220.198.121.200.in-addr.arpa. -latam.preciomania.com. -req.appads.com. -api.twitter.com. -rosich-logistic.ru. -a.root-servers.net. -93.202.173.190.in-addr.arpa. -us.mg6.mail.yahoo.com. -crl.microsoft.com. -andrescanavesi.com.uy. -canyouplaypes.com. -images01.spacash.com. -safebrowsing.clients.google.com. -116.208.24.81.in-addr.arpa. -isss.gob.sv. -imap.gmail.com. -clients1.google.com. -nestag.com. -wheatdesign.com. -sunct2.jinr.ru. -profiles.google.com. -a6.sphotos.ak.fbcdn.net. -_319_42_3. -www.clarin.com. -www.google-analytics.com. -www.youngandbusty.net. -static.ak.fbcdn.net. -244.37.112.186.in-addr.arpa. -corbettharper.com. -ar-ar.facebook.com. -0-317.channel.facebook.com. -a.root-servers.net. -pixel.facebook.com. -a.root-servers.net. -platform.ak.fbcdn.net. -clients-cctld.l.google.com. -accountservices.passport.net. -input2.comment.qq.com. -mx.2niteline.com. -api-public.addthis.com. -www.achtzehn99.de. -ict.tgw.com. -_ldap._tcp. -_207_75_1. -bubba.ntrade.it. -stealth.y9.vc. -www.nyhotties.com. -groups.google.com.ua. -97.34.252.189.in-addr.arpa. -inbound.ranatech.com.netsolmail.net. -24.193.0.181.in-addr.arpa. -107.137.69.190.in-addr.arpa. -gfx3.hotmail.com. -m.motortrend.com. -webcache.googleusercontent.com. -www.usgs.gov. -miscancionesinfantiles.disqus.com. -images.empora.com. -es-la.facebook.com. -engine.demo.medialand.ru. -external.ak.fbcdn.net. -www.google.com. -www.benalmadena.es. -49.78.173.201.in-addr.arpa. -38.176.120.200.in-addr.arpa. -www.avis.co.uk. -clients1.google.com. -static.ak.facebook.com. -www.king-bearings.com. -mail2.eplushealthcare.com. -dem0003.in. -www.facebook.com. -smart-journal.ru. -www.facebook.com. -mysp.ac. -xr562c2a9.k17m6d2t. -a5.sphotos.ak.fbcdn.net. -243.139.1.46.in-addr.arpa. -19.43.112.99.in-addr.arpa. -accounts.google.com. -130.172.185.58.in-addr.arpa. -yahoo.com. -google.com. -0-ji-w.channel.facebook.com. -static2.bitacoras.com. -img.huanleguang.com. -a.root-servers.net. -photos-e.ak.fbcdn.net. -developers.facebook.com. -106.98.93.186.in-addr.arpa. -222.211.152.201.in-addr.arpa. -sites.google.com. -a.root-servers.net. -sp.cwfservice.net. -validator.w3.org. -52.197.28.181.in-addr.arpa. -www.descargarmanuales.com.ar. -de-de.facebook.com. -7.106.180.69.in-addr.arpa. -titanium30-en.url.trendmicro.com. -www.facebook.com. -transmotion.pt. -www.cmu.org.mx. -251.107.104.187.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -152.47.254.201.in-addr.arpa. -www.internetzona.pl. -239.203.132.189.in-addr.arpa. -nappyboyonline.com. -tc.v20.cache3.c.youtube.com. -mail.surferie.net. -118.174.109.186.in-addr.arpa. -www.jewelryshop.bz. -a.root-servers.net. -cust4181-3.in.mailcontrol.com. -whiskeyandgunpowder.com. -teredo.ipv6.microsoft.com. -relay3.geoksc.apatity.ru. -arandomurl.com. -29.193.171.124.in-addr.arpa. -cm.ar.taringa.overture.com. -13.152.168.192.in-addr.arpa. -hit.trafficholder.com. -googleads.g.doubleclick.net. -download2.nexon.net. -www.googleadservices.com. -nxcache.nexon.net. -yahoo.com. -a3.sphotos.ak.fbcdn.net. -dc.logmein-gateway.com. -a.root-servers.net. -flazm.disqus.com. -122.178.153.189.in-addr.arpa. -photos-d.ak.fbcdn.net. -145.1.189.190.in-addr.arpa. -acicapital.com.s8b2.psmtp.com. -a1416.g.akamai.net. -a.root-servers.net. -static.socialvi.be. -prod2.rest-core.msg.yahoo.com. -a7.sphotos.ak.fbcdn.net. -dlactn.org. -welcometointernet.org. -content.yieldmanager.edgesuite.net. -ewingl.com. -client-software.real.com. -123.4.87.66.in-addr.arpa. -www.googleadservices.com. -s-static.ak.fbcdn.net. -eusdwsmail010.logistics.corp. -apps.facebook.com. -104.62.162.109.in-addr.arpa. -188.186.10.186.in-addr.arpa. -aol.com. -_656_10_5. -120.14.160.187.in-addr.arpa. -164.117.52.186.in-addr.arpa. -meizen40.net. -www.wip4.adobe.com. -hddiziizle.net. -www.congresoahila2011.com. -s.ytimg.com. -media.admob.com. -srx.main.ebayrtm.com. -safebrowsing-cache.google.com. -xheli.com. -www.google-analytics.com. -81.172.131.189.in-addr.arpa. -consults.ru. -a.root-servers.net. -www.drbrandtskincare.com. -112.77.203.87.in-addr.arpa. -226.164.160.187.in-addr.arpa. -wdbj7.com. -fbcdn-profile-a.akamaihd.net. -www.sina.com. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -att.net. -www.androiddownloadnow.com. -16.88.73.77.in-addr.arpa. -_857_76_7. -www.theworldrecipebook.com. -www.docs.sony.com. -images-71.har.com. -intelliswitch.net. -www.mdsone.com. -tinyurl.com. -n4403ad.doubleclick.net. -photos-f.ak.fbcdn.net. -dns.msftncsi.com. -fbcdn-sphotos-a.akamaihd.net. -www.anxer.net. -ucom.net. -250.255.114.200.in-addr.arpa. -liveupdate.symantecliveupdate.com. -143.201.141.201.in-addr.arpa. -aol.com. -www.google-analytics.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -hdl.loc.gov. -h.live.com. -162.163.243.201.in-addr.arpa. -photos-g.ak.fbcdn.net. -152.0.32.189.in-addr.arpa. -:fqf33dir.62ez. -www.rankspirit.com. -21m86g2s8.65cj. -algebra-net.programas-gratis.net. -a.root-servers.net. -gfx4.hotmail.com. -csi.gstatic.com. -a.adcloud.net. -0-244.channel.facebook.com. -www.ridiculopathy.com. -www.google.cpm. -www.administradores-empresas.com. -resolver5.pand.ctmail.com. -youtube-ui.l.google.com. -60.242.243.189.in-addr.arpa. -time.chttl.com.tw. -flatironcorp.com.inbound10.mxlogicmx.net. -ar-ar.facebook.com. -245.138.188.76.in-addr.arpa. -184.77.136.190.in-addr.arpa. -thumbs1.ebaystatic.com. -dte.sellpoint.net. -creative.ak.fbcdn.net. -31.102.104.189.in-addr.arpa. -tobolsk.info. -ntp1.cs.wisc.edu. -147.209.177.79.in-addr.arpa. -mail.gb.avtograd.ru. -awjarcitects.com. -hi-in.facebook.com. -twimg0-a.akamaihd.net. -photos-h.ak.fbcdn.net. -google.com. -. -i4.ytimg.com. -bottleofjack.tumblr.com. -i1.ytimg.com. -137.29.31.190.in-addr.arpa. -sn1msg2020222.gateway.messenger.live.com. -eskimovie.com. -www.facebook.com. -profile.ak.fbcdn.net. -www.culturalivre.net. -amazonm-722.vo.llnwd.net. -content.yieldmanager.edgesuite.net. -127.198.30.186.in-addr.arpa. -98.59.50.201.in-addr.arpa. -197.240.21.190.in-addr.arpa. -www.xbox360.com. -www.cochilco.cl. -platform.ak.fbcdn.net. -secure.wlxrs.com. -service6.pricegong.com. -a1108.da1.akamai.net. -s.ytimg.com. -www.cpmr.org. -service.ess.apple.com. -www.digitalscores.us. -175.219.138.189.in-addr.arpa. -16.96.98.189.in-addr.arpa. -126.189.237.190.in-addr.arpa. -joystiq.search.aol.com. -131.37.183.189.in-addr.arpa. -imagenes.es.sftcdn.net. -beacon.lijit.com. -www.conapo.gob.mx. -img.rincondelvago.com. -www.consultas.curp.gob.mx. -163.39.199.190.in-addr.arpa. -www.google-analytics.com. -pagead2.googlesyndication.com. -baymsg1030121.gateway.messenger.live.com. -ruscrete.co.uk. -urethanesupply.com.s8b2.psmtp.com. -128.26.45.187.in-addr.arpa. -i182.photobucket.com. -dogs2.ngmoco.com. -218.210.67.94.in-addr.arpa. -www.google-analytics.com. -dnl-ru5.kaspersky-labs.com. -90.73.213.74.in-addr.arpa. -mail.masstop.com. -www.facebook.com. -plusone.google.com. -creative.ak.fbcdn.net. -sites.google.com. -116.96.90.195.in-addr.arpa. -fm.ru. -leaelliott.com.s6b2.psmtp.com. -accounts.google.com. -www.fotosdesexo.org.es. -teredo.ipv6.microsoft.com. -ggames.com.br. -70.103.34.189.in-addr.arpa. -www2.sherwin-williams.com. -a749.g.akamai.net. -afasic.org.uk. -170.134.246.85.in-addr.arpa. -s0002113.ecdomain.net. -accounts.google.com. -photos-c.ak.fbcdn.net. -www.cubatravelusa.com. -london.langhamhotels.co.uk. -tracker.ydy.com. -fonts.googleapis.com. -56.172.114.177.in-addr.arpa. -www.ma-recreation.com. -lengthenyourstride.com. -voipa.sip.yahoo.com. -mercury.stdominic.net. -a.root-servers.net. -www.blackberry.com. -wakeboard.es. -112.239.171.189.in-addr.arpa. -fitnessysalud.blogspot.com. -www.webgradnja.hr. -www.lifehealthcare.co.za. -profile.ak.fbcdn.net. -pix:t1kbx.75nr. -218.176.2.88.in-addr.arpa. -thepregnantnudes.com. -ad.xtendmedia.com. -emailnotifier.services.conduit.com. -ksn2-12.kaspersky-labs.com. -carbsense.com. -251.134.10.221.in-addr.arpa. -news.google.es. -assets.rubiconproject.com. -247.117.201.74.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.google.com. -i163.photobucket.com. -209.104.223.87.in-addr.arpa. -a.root-servers.net. -i.w.inmobi.com. -widgets.twimg.com. -toolbar.live.com. -fbcdn-photos-a.akamaihd.net. -9gag.com. -static.ak.fbcdn.net. -146.57.126.187.in-addr.arpa. -media.sas.upenn.edu. -mx2.jetisi.com. -www.marketingdebusca.com.br. -216.54.38.187.in-addr.arpa. -mplguam.com. -www.redfugios.org. -a1001.w40.akamai.net. -a.root-servers.net. -video.l3.fbcdn.net. -50.2.255.220.in-addr.arpa. -golfthelinks.com. -107.164.86.69.in-addr.arpa. -wegroup.ru. -uk.mcafee.com. -a.root-servers.net. -a.root-servers.net. -cs9306.vk.com. -rcp.na.blackberry.com. -. -_ldap._tcp.pdc._msdcs.neoris.cxnetworks.net. -51.189.251.76.in-addr.arpa. -6.86.139.216.in-addr.arpa. -ad.z5x.net. -25.181.248.89.in-addr.arpa. -110.253.10.200.in-addr.arpa. -f.snagfilms.com. -view.atdmt.com. -h4f5mx4zk.s03u3n2a. -105.70.41.187.in-addr.arpa. -www.theshangri-las.com. -es-la.facebook.com. -www.embrujo.net. -smtp.dumonds.com. -profile.ak.fbcdn.net. -112.150.11.76.in-addr.arpa. -a.root-servers.net. -googleads.g.doubleclick.net. -us.bc.yahoo.com. -cs1926.vk.com. -smtp.webcravings.com. -static.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -wickedthemusical.com.sg. -a7.sphotos.ak.fbcdn.net. -www.facebook.com. -www.microsoft.com. -ntp1.dlink.com. -bial.pl. -yahoo.com. -34.1.157.201.in-addr.arpa. -www.kronosgo.com. -251.72.85.86.in-addr.arpa. -www.google.com. -appsforbb.com. -chaminade.edu. -109.189.132.41.in-addr.arpa. -www.google.com. -39.32.48.190.in-addr.arpa. -www.bricolageymanualidades.com. -34-courier.push.apple.com. -. -a2.sphotos.ak.fbcdn.net. -0-299.channel.facebook.com. -a.root-servers.net. -go.microsoft.com. -www.usa.gov. -content.yieldmanager.edgesuite.net. -17.8.137.2.in-addr.arpa. -52.169.16.87.in-addr.arpa. -gfx2.hotmail.com. -c5a.ah.yahoo.com. -p02-ubiquityws.icloud.com. -mail.live.com. -sn102w.snt102.mail.live.com. -matcher-cwb.bidder7.mookie1.com. -218.152.130.189.in-addr.arpa. -geo.messenger.services.live.com. -a1505.l.akamai.net. -gt.eredan.com. -fr-fr.facebook.com. -www.energiainterior.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -sm-beta.ovi.messaging.nokia.com. -external.ak.fbcdn.net. -api-read.facebook.com. -hub-odc.samsungapps.com. -mail.jetmotors.perm.ru. -voipb.sip.yahoo.com. -22.133.10.186.in-addr.arpa. -js.blinkadr.com. -www.denobisipsis.es. -schnaapklicks.com. -www-google-analytics.l.google.com. -169.87.231.190.in-addr.arpa. -pubads.g.doubleclick.net. -www.facebook.com. -n-link.com. -170.56.246.201.in-addr.arpa. -209.170.137.187.in-addr.arpa. -fxfeeds.mozilla.com. -158.3.76.70.in-addr.arpa. -download.live.com. -pts.lockerz.com. -75.183.98.62.in-addr.arpa. -41.126.81.216.in-addr.arpa. -q6pesnyqz.50lc. -mediastreet.ca.s7a2.psmtp.com. -nds.wiktionary.org. -svrsecure-g2-aia.verisign.com. -a.root-servers.net. -tracker.thepiratebay.org. -dns.msftncsi.com. -www.crautonoma.gov.co. -128.7.6.186.in-addr.arpa. -kalininrad.ru. -hccsmg.com. -v529.vkadre.ru. -report.cedexis.com. -platform.twitter.com. -actionrealtyks.com. -suggestqueries.google.com. -blog.outsystems.com. -gameofthrones.wikia.com. -dutchschulze.com. -api.twitter.com. -datinggold.com.s10b1.psmtp.com. -www.mspca.org. -random.frivolity.info. -www.hotmail.com. -8l1vqiyzr.s33b9p9z. -tracker.openbittorrent.com. -www.facebook.com. -www.radioradar.net. -la.dynonobel.com. -solarus.biz. -nada5.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -mhatoday.org. -compaq.mbservice.pp.ru. -a-0.19-330f3081.9110081.1518.19d3.2f1c.10.0.5wauzj8kclu1up9r1vmvdufkaj.avqs.mcafee.com. -elstatic.weborama.fr. -33.176.49.216.in-addr.arpa. -biosantepharma.com.2.0001.arsmtp.com. -fr-fr.facebook.com. -105.1.168.192.in-addr.arpa. -mowt.gov.tt. -www.jetcero.com. -ambience.com. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -photos-e.ak.fbcdn.net. -download.www.arte.tv. -cs4484.vk.com. -bmj-logistics.ru. -itf-ost.ru. -wallpapers.desicomments.com. -www.cmtpetconferences.com. -www.radio.com.pl. -itunes.apple.com. -a.root-servers.net. -206.109.136.78.in-addr.arpa. -247.178.255.201.in-addr.arpa. -becmfg.com. -124.147.136.190.in-addr.arpa. -a.root-servers.net. -www.gstatic.com. -tumblon.com. -1.bp.blogspot.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -rmd.atdmt.com. -photos-e.ak.fbcdn.net. -ad.yieldads.com. -www.galeriaseroticas.xpg.com.br. -ad.yieldmanager.com. -usiko.ru. -bs.serving-sys.com. -mail3.sisk.ie. -www.macauhotel.org. -dns.msftncsi.com. -s-static.ak.fbcdn.net. -smtp.ci.lenexa.ks.us. -239.58.31.190.in-addr.arpa. -65.217.37.62.in-addr.arpa. -www.liujo.it. -s1-excel.vo.msecnd.net. -villaluro.olx.com.ar. -www.transexualesfollando.org. -agmkoq.com. -medlinia.ru. -www.facebook.com. -www.belajarkonseling.com. -csi.gstatic.com. -mypisamba4.com. -a.root-servers.net. -connect.facebook.net. -231.39.176.186.in-addr.arpa. -167.153.155.189.in-addr.arpa. -a.root-servers.net. -205.252.113.186.in-addr.arpa. -docs.google.com. -androcode.es. -a1.sphotos.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -a.root-servers.net. -velikanrostov.ru. -pixel.rubiconproject.com. -thomcoins.com. -leaderit.ru. -photos-d.ak.fbcdn.net. -a.root-servers.net. -a4.sphotos.ak.fbcdn.net. -i2.ytimg.com. -ad.yieldmanager.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -i3.ytimg.com. -chivaselmejorequipodemexico.blogspot.com. -translate.googleapis.com. -equico.net. -time.stdtime.gov.tw. -residentialsearch.savills.co.uk. -42.31.207.112.in-addr.arpa. -54.49.59.189.in-addr.arpa. -www.famemonsters.com. -fromdoppler.com.rbl2.mcafee.com. -services.leapfrog.com. -64.38.14.186.in-addr.arpa. -www.ademails.com. -s-static.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -lovefilm.dl.playstation.net. -77.93.106.200.in-addr.arpa. -external.ak.fbcdn.net. -melapuedencerrar.com. -landing.ancestry.co.uk. -72.105.22.186.in-addr.arpa. -53.80.7.69.in-addr.arpa. -a.root-servers.net. -71.183.64.181.in-addr.arpa. -mail.google.com. -rp.rusal.ru. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -s.clicktale.net. -hotmaiwww.facebook.com. -35.126.150.114.in-addr.arpa. -divulgalia.blogspot.com. -a.root-servers.net. -a3.sphotos.ak.fbcdn.net. -www.inbox.com. -a.root-servers.net. -150.53.31.173.in-addr.arpa. -browsersync.google.com. -translate.google.com. -toolbarqueries.google.com.mx. -es.kioskea.net. -197.72.51.201.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -30.229.171.69.in-addr.arpa. -www.puertasabiertas.org. -dlm.com. -dr._dns-sd._udp.0.179.16.172.in-addr.arpa. -i1.ytimg.com. -aol.rr.com. -www.clasimexico.com. -www.fundacionsantillana.org.co. -www.kittierocks.com. -rihdntv1p.67rg. -opensuse-community.org. -yui.yahooapis.com. -cbp-us.nccp.netflix.com. -203.123.154.95.in-addr.arpa. -a.root-servers.net. -mx.psport.ru. -scholar.google.com.ar. -server.kan.nnov.ru. -xml.pricegong.com. -utils.babylon.com. -www.learning4good.net. -42.36.20.190.in-addr.arpa. -www.tarjetasbubba.com. -a3.sphotos.ak.fbcdn.net. -www.facebook.com. -kyx2m6jkm.45dg. -a.root-servers.net. -x-journal.net. -abierto-hasta-el-amanecer-2-texas-blood-money.peliculon.tv. -www.google.com. -150.90.190.41.in-addr.arpa. -fonts.foxsports.com. -182.162.93.186.in-addr.arpa. -ad.yieldmanager.com. -a.root-servers.net. -dns.msftncsi.com. -dewater.com.inbound15.mxlogicmx.net. -www.djonty.com.ar. -shydude.deviantart.com. -www.cellreception.com. -. -d2089652.xoom.it. -sensorprod.com. -dlvr.it. -a6.sphotos.ak.fbcdn.net. -accounts.google.com. -145.162.4.46.in-addr.arpa. -soic.us. -200.101.40.84.in-addr.arpa. -burton-homes.com. -gateway.messenger.hotmail.com. -gtaonline.com.ar. -photos-d.ak.fbcdn.net. -102.193.23.186.in-addr.arpa. -img.youtube.com. -126.162.226.186.in-addr.arpa. -_072_67_4. -static.ak.fbcdn.net. -www.facebook.com. -api.facebook.com. -poorva.com. -galleries.hdhardcore.com. -aaa.com.au. -adval.com. -smartphone-gprs-traffic-monitor.softonic.com. -mobile.login.yahoo.com. -234.83.198.112.in-addr.arpa. -s-static.ak.fbcdn.net. -aservise.ru. -a8.sphotos.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -mail.jump-out.dk. -asprotech.blogspot.com. -chilesintransgenicos.cl. -a.root-servers.net. -www.wikimail.org. -mail.google.com. -www.facebook.com. -48.116.239.216.in-addr.arpa. -36.142.211.201.in-addr.arpa. -cdn-static.liverail.com. -adsx.greystripe.com. -136.6.94.186.in-addr.arpa. -usersystem783aa.ru. -a5.sphotos.ak.fbcdn.net. -6.183.247.88.in-addr.arpa. -mtalk.google.com. -external.ak.fbcdn.net. -i1.ytimg.com. -dns.msftncsi.com. -accounts.google.com. -googleads.g.doubleclick.net. -219.49.184.190.in-addr.arpa. -apis.google.com. -www.thehabibshow.com. -monduce.com. -pagead2.googlesyndication.com. -www.somewrinkles.blogspot.com. -developers.facebook.com. -sites.google.com. -sadinsa.com. -newsrss.bbc.co.uk. -100.69.35.83.in-addr.arpa. -194.48.101.118.in-addr.arpa. -autohubasia.com. -billing.sharo4ka.ru. -www.verwandt.de. -147.145.51.201.in-addr.arpa. -dnl-01.geo.kaspersky.com. -b._dns-sd._udp.lan. -vereltrailersdelapelicula.blogspot.com. -illinoisfamily.org. -s-static.ak.fbcdn.net. -www.the-best-web-hosting-service.com. -login.live.com. -www.bbm.com. -it-it.facebook.com. -www.sptfm.ro. -mx2.inertiainteractive.net. -s.ytimg.com. -redirector.c.youtube.com. -ads.bluelithium.com. -a8.sphotos.ak.fbcdn.net. -commercebankmn.com.s8b2.psmtp.com. -alcgs34ma.20oh. -www.foto.technetium.be. -db11.spamcatcher.net. -www.yanmar.com. -6.79.170.189.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -a.root-servers.net. -mx.youtube.com. -yui.yahooapis.com. -a.root-servers.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -client.akamai.com. -si0.twimg.com. -badoo.com. -too-drunk-to-dream.tumblr.com. -andovercollege.com. -www.europa-lkw.de. -169.133.205.186.in-addr.arpa. -www.capecentralhigh.com. -hg3.ceryxefw.com. -mail.thunda.com. -safebrowsing-cache.google.com. -bit.ly. -flounderart.com. -evsecure-crl.verisign.com. -mx.naruto-ll.com. -a4.sphotos.ak.fbcdn.net. -svaepro.weebly.com. -photos-d.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -photos-c.ak.fbcdn.net. -thefusebox.com.s200b2.psmtp.com. -s0.2mdn.net. -31.246.48.186.in-addr.arpa. -www.richandbrainless.com. -cs504605.vk.com. -a8.sphotos.ak.fbcdn.net. -s-static.ak.fbcdn.net. -28.252.16.177.in-addr.arpa. -www.facebook.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -167.239.141.201.in-addr.arpa. -orig-10002.productmadness.cotcdn.net. -a6.sphotos.ak.fbcdn.net. -beta.stun.voice.yahoo.com. -aol.com. -api.looklater.com. -safemoods.com. -connect.facebook.net. -entretenimiento.prodigy.msn.com. -www.legalmovz.info. -mustin.com.inbound15.mxlogicmx.net. -www.mtit.com. -www.facebook.com. -pagead2.googlesyndication.com. -www.youtube.com. -download.windowsupdate.com. -2.51.214.189.in-addr.arpa. -v8.secure.nfstr.ea.com. -www.youtube.com. -157.0.103.71.in-addr.arpa. -mailin-01.netatlantic.com. -a6.sphotos.ak.fbcdn.net. -110.69.231.190.in-addr.arpa. -texarkanagastroenterology.com. -static.app.widdit.com. -_592_84_1. -alsmithtrucking.com. -zoom.co.uk.home. -d2092102.xoom.it. -www.discoveryindochina.com. -api-read.facebook.com. -secure.easycgi.com. -51.235.178.190.in-addr.arpa. -www.dic.org.ar. -members.ebonymax.com. -oliver-tour.ru. -nero-move-it.programas-gratis.net. -missrowlandgifs.tumblr.com. -www.facebook.com. -api.twitter.com. -s.youtube.com. -www.facebook.com. -a-0.19-2309d081.99a0083.1518.19cf.3ea1.410.0.6eka98rdd5n7fllv2bglmpqiti.avqs.mcafee.com. -1.bp.blogspot.com. -www-hotmail-com.com. -proyectodeartecasiopea.blogspot.com. -binladen.ru. -112.135.14.181.in-addr.arpa. -photos-a.ak.fbcdn.net. -s-static.ak.fbcdn.net. -config.messenger.msn.com. -a1.sphotos.ak.fbcdn.net. -essen.vol.at. -151.146.220.121.in-addr.arpa. -sadownload.mcafee.com. -207.60.70.208.in-addr.arpa. -jamn945.com. -blogs.elpais.com. -static.ak.fbcdn.net. -52.36.94.174.in-addr.arpa. -www.bing.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -img4.catalog.video.msn.com. -188.149.40.201.in-addr.arpa. -www.googleadservices.com. -groups.google.com.mx. -www.mybabyexperts.tv. -www.flirteos.com. -www.lemec.net. -44.81.208.190.in-addr.arpa. -mail.vuria.com. -www.rmcoin.com. -code.jquery.com. -advert-king.tk. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -www.google.com. -profile.ak.fbcdn.net. -www.paulownia.ws. -s.ytimg.com. -u512.badoo.com. -www.20minutos.es. -www.youtube.com. -vsml.com. -154.245.7.190.in-addr.arpa. -mail.pmdl.com.au. -signup.doitbiatch.com. -51.121.113.94.in-addr.arpa. -a.root-servers.net. -xovoyrolqppifp.net. -fbcdn-photos-a.akamaihd.net. -www.noticias.com.ve. -127.26.51.190.in-addr.arpa. -luc19msnxl38izbrcxpqizl48kyjuc29iqb38.ru. -cmu.edu. -ad.adserverplus.com. -www.younggunsmusic.com. -www.foodmag.co.nz. -23.68.149.189.in-addr.arpa. -api.facebook.com. -www.cruelebony.com. -_903_44_1. -developers.facebook.com. -kittysnooks.blogspot.com. -d2ud4lg6esq2e1.cloudfront.net. -252.101.105.189.in-addr.arpa. -131.47.132.190.in-addr.arpa. -photos-e.ak.fbcdn.net. -ct.buzzfeed.com. -mail.acu.net. -api.facebook.com. -s-static.ak.fbcdn.net. -www.clubbisexual.com. -www.sirintipgreenhome.com. -173.53.168.189.in-addr.arpa. -84.187.110.123.in-addr.arpa. -i2.ytimg.com. -vevideo.com.es. -c.perf.glbdns.microsoft.com. -support.live.com. -dag.de. -www.google.com. -www.amateurdarling.com. -online.potencialhumanotv.tv. -www.igui.ru. -www.conocer.gob.mx. -sabores.com. -i1.ytimg.com. -o31fsfrlrmsf62j46bxotc19aqn50gqbwdya57.info. -41.212.85.209.bl.spamcop.net. -csi.gstatic.com. -ksn2-12.kaspersky-labs.com. -www.124marketingsystem.com. -twitter.com. -www.prnewschannel.com. -242.255.207.190.in-addr.arpa. -avatar.pic.itiexue.net. -scala.ru. -submit-stroke.ahajournals.org. -www.google.com. -a.root-servers.net. -www.facebook.com. -20.191.126.186.in-addr.arpa. -a.c-0.19-210fe000.10590.1518.19d4.3ea1.210.0.rikjfg7q7l6iidkwd5rfk4vkbi.avqs.mcafee.com. -dejhtq:j3.z52a9x8j. -blackbookmag.com. -static.ak.fbcdn.net. -mail.netlife.ru. -clientes.disegnia.com. -blogs.monografias.com. -fr.answers.yahoo.com. -www.google.com. -data.whicdn.com. -_704_15_6. -photos-e.ak.fbcdn.net. -re.revolvermaps.com. -poker.wincomparator.com. -get.adobe.com. -huellasdelbarrio.blogspot.com. -214.248.67.208.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -yik7yflmh.59ya. -commander.clara.net. -photos4.hi5.com. -ow.ly. -a4.skype.tom.com. -5uaxx4or3.20es. -google.com. -fbcdn-photos-a.akamaihd.net. -a6.sphotos.ak.fbcdn.net. -www.saveyourflight.de. -a5.sphotos.ak.fbcdn.net. -26.112.226.190.in-addr.arpa. -external.ak.fbcdn.net. -a.root-servers.net. -pixel.facebook.com. -89.172.171.69.in-addr.arpa. -32.183.145.201.in-addr.arpa. -a.root-servers.net. -lb._dns-sd._udp.lan. -mx.vardareast.com. -youtu.be. -google.com. -www.lanvin.com. -developers.facebook.com. -wwwimages.adobe.com. -secure-us.imrworldwide.com. -d2098016.xoom.it. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -137.48.168.192.in-addr.arpa. -alucinemodelkits.blogspot.com. -windows-media-player-9-codecs-pack.programas-gratis.net. -www.yoreparo.com. -colin.uk.com. -safebrowsing.clients.google.com. -www.surya.com. -www.oaed.gr. -teredo.ipv6.microsoft.com. -6.157.174.189.in-addr.arpa. -242.15.57.85.in-addr.arpa. -247.132.125.77.in-addr.arpa. -google.com. -cvgps.com. -cloud1.opensystemsmedia.com. -rude.hello-net.info. -a.root-servers.net. -remail.ru. -msc.wlxrs.com. -a7.sphotos.ak.fbcdn.net. -472.ns1631261.com. -billing.sharo4ka.ru. -70.41.43.186.in-addr.arpa. -upload.xhamster.com. -statistics02.topface.ru. -static.ak.connect.facebook.com. -231.187.137.86.in-addr.arpa. -155.227.88.186.in-addr.arpa. -153.110.0.213.in-addr.arpa. -mafbaymafbay.com. -fwm3paslw.b42w7b5p. -a.root-servers.net. -stoli.com. -www.worldsmostunique.com. -www.mason-mahfili.org.tr. -preflopraise.ru. -123.155.26.85.in-addr.arpa. -www.lamparasdeled.com.mx. -accounts.google.com. -petfooddirect.com.s10b1.psmtp.com. -apps.facebook.com. -secure.tagged.com. -t.co. -crl.microsoft.com. -skpkurortgel.ru. -ssl.gstatic.com. -38.184.20.187.in-addr.arpa. -a.root-servers.net. -www.google-analytics.com. -mx.dbaviation.com. -www.nyfa.edu. -latinotaku.ucoz.es. -a.root-servers.net. -yahoo.com. -a.root-servers.net. -cando-online.com. -ad.doubleclick.net. -cus.com. -atss.lu. -192.111.129.189.in-addr.arpa. -169.48.96.38.in-addr.arpa. -exchange.mbcco.com. -www.goal.org. -api.facebook.com. -mail.zoom-dsl.com. -h.live.com. -168.244.143.69.in-addr.arpa. -143.247.236.200.in-addr.arpa. -1-ps.googleusercontent.com. -www.octopusproject.eu. -jmcwd.com. -amhaire.com. -josedelcorral.es. -photos3.zillow.com. -trainweb.info. -3478052.megustasabelo.net. -s-static.ak.fbcdn.net. -www.cupcakesandcutlery.blogspot.com. -222.186.4.181.in-addr.arpa. -i2.ytimg.com. -34.1.179.190.in-addr.arpa. -goodyear.com. -213.229.190.189.in-addr.arpa. -logo.designcrowd.com. -mscrl.microsoft.com. -suggest.infospace.com. -a.root-servers.net. -ad.reachjunction.com. -connect.facebook.net. -hubspot.com. -pixel.facebook.com. -61.224.141.174.combined.njabl.org. -sg.eyi.com. -photos-e.ak.fbcdn.net. -s0.2mdn.net. -mailfilter.crebe.com. -mea6hto2g.89yg. -. -251.121.232.84.in-addr.arpa. -www.bywifi.com. -29.media.tumblr.com. -groups.google.com.mx. -www.centerfiresystems.com. -www.titanbet.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -smail.hrn9.com. -hi-in.facebook.com. -martinsalter.net. -localhost. -x.tlbron.facemoods.com. -ale.pakibili.com. -ar-ar.facebook.com. -_ldap._tcp.75e1692b-6de3-40f0-8543-b5ffccd67d07.domains._msdcs.gerdau.net. -pagead2.googlesyndication.com. -www.google.com. -a4.sphotos.ak.fbcdn.net. -ad.z5x.net. -pixel.facebook.com. -seg.sharethis.com. -afrigator.com. -feeds.bbci.co.uk. -www.deproviquique.cl. -s90.vuclip.com. -www.bbc.co.uk. -checkip.dyndns.com. -3detorrevelo.blogspot.com. -g.live.com. -133.162.0.94.in-addr.arpa. -profile.ak.fbcdn.net. -www.superbeautyfactory.es. -fox411.blogs.foxnews.com. -mail.google.com. -hhotmail.co. -video.google.com. -pagead2.googlesyndication.com. -autowarehouse.com. -a.root-servers.net. -44.184.152.187.in-addr.arpa. -234.153.195.125.in-addr.arpa. -one.lv. -googleads.g.doubleclick.net. -56.80.114.187.in-addr.arpa. -5.7.174.190.in-addr.arpa. -tomorrowinvinland.blogspot.com. -talk21.com. -mail.worksights.com. -181.100.208.190.in-addr.arpa. -www.siaf-china.com. -mx.eltima.com. -55.154.72.190.in-addr.arpa. -wpad. -tms30.icrc.trendmicro.com. -dns.msftncsi.com. -www.mediafire.com. -skydrive.live.com. -i.ytimg.com. -www.googleadservices.com. -www.barrichello.com.br. -fc00.deviantart.net. -zapatosdemodayfiesta.blogspot.com. -brutaldildos.sexdelivery.com. -42.27.232.76.in-addr.arpa. -sagaev.ru. -www.allfreeclipart.com. -survey-cdn.effectivemeasure.net. -86.19.25.190.in-addr.arpa. -proyectotarotcolectivo.blogspot.com. -118.174.129.189.in-addr.arpa. -o-o.preferred.nuq04s10.v18.lscache2.c.youtube.com. -l.yimg.com. -static.ak.fbcdn.net. -236.172.203.81.in-addr.arpa. -www.designerzcentral.com. -cc-s.de. -10.110.159.189.in-addr.arpa. -profile.ak.fbcdn.net. -menghao76.en.made-in-china.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -static.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -secure.logmein.com. -5-brujas.peliculon.tv. -www.albiladdaily.com. -mail.krhleb.ru. -node1.bbcimg.co.uk. -db._dns-sd._udp.0.2.0.10.in-addr.arpa. -gm.com. -mooreelectric.com. -mail.frontierstravel.com. -www.lagaceta.com.ar. -searchclient.live.net. -101.49.124.201.in-addr.arpa. -chevychaseforecast.com. -www.googleadservices.com. -140.47.137.216.in-addr.arpa. -cbp-us.nccp.netflix.com. -a.root-servers.net. -166.128.21.83.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -teredo.ipv6.microsoft.com. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -www.consultabaekeland.com. -43.228.171.69.in-addr.arpa. -recipes.bhg.com. -heret.net. -134.86.159.189.in-addr.arpa. -mail2.torchlake.com. -117.83.210.201.in-addr.arpa. -2.pool.ntp.org. -external.ak.fbcdn.net. -zynga2-a.akamaihd.net. -brownandhudson.com. -a.root-servers.net. -btjunkie.org. -www.habemuspapam.it. -119.181.23.187.in-addr.arpa. -29.241.175.187.in-addr.arpa. -www.msftncsi.com. -a6.sphotos.ak.fbcdn.net. -ksn1-11-part1.kaspersky-labs.com. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.macromedia.com. -api-read.facebook.com. -dns.msftncsi.com. -www.lingsoft.fi. -11-courier.push.apple.com. -ohio.k12.ky.us. -www.enjoydressup.com. -37.128.27.189.in-addr.arpa. -svrintl-g3-crl.verisign.com. -ggschmitt.com. -photos-g.ak.fbcdn.net. -128.207.172.190.in-addr.arpa. -www9.effectivemeasure.net. -www.tutorialesyrecursos.es. -www.facebook.com. -googleads.g.doubleclick.net. -151.251.211.201.in-addr.arpa. -www.flickr.com. -jannikeviveka.files.wordpress.com. -www.jabfm.org. -d2056968.instant.xoom.it. -superiorplastic.com. -clients5.google.com. -ad.foxnetworks.com. -platform.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -68ohh6com6c1h-c.c.yom.mail.yahoo.com. -d2058291.instant.xoom.it. -fbcdn-photos-a.akamaihd.net. -pixel.facebook.com. -186.152.47.147.in-addr.arpa. -20.246.120.89.in-addr.arpa. -159.178.177.190.in-addr.arpa. -68.28.202.81.in-addr.arpa. -mail1.synagro.com. -www.download.windowsupdate.com. -img3.91huo.cn. -a.root-servers.net. -api.allmyapps.com. -www.london-tubemap.com. -www.rscycle.com. -98.42.172.90.in-addr.arpa. -about.tagged.com. -epiccm.blogspot.com. -ns2.relkama.ru. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -view.atdmt.com. -can2012.rfi.fr. -bpmcpas.com.pri-mx.na0106.smtproutes.com. -photocontestinformation.com. -252.233.129.189.in-addr.arpa. -dagda37.blogia.com. -jamesmanagement.com. -a6.sphotos.ak.fbcdn.net. -amirahall.com. -oas.monster.com. -carrolltonpd.net. -tracker.irc.su. -webcache.googleusercontent.com. -pt-br.facebook.com. -cfile77.uf.daum.net. -simplecdn.maxcdn.com. -a3.sphotos.ak.fbcdn.net. -mail.copernicused.com. -vide0s.org. -ds.serving-sys.com. -mail.pcrc.spb.ru. -sp.cwfservice.net. -img.apnanalytics.com. -52.109.190.189.in-addr.arpa. -ns2.yaknet.ca. -photos-b.ak.fbcdn.net. -103.136.95.200.in-addr.arpa. -crl.microsoft.com. -mundoconquis.files.wordpress.com. -img1-fotki.yandex.net. -dr._dns-sd._udp.lan. -getlive.com. -0-jw-w.channel.facebook.com. -treenosoftware.com. -img71.exs.cx. -hlylsbty.net. -36-courier.push.apple.com. -jrol.com. -tv.about.com. -badge.facebook.com. -www.mexicanisimo.com.mx. -134.207.240.148.in-addr.arpa. -ajax.googleapis.com. -a.root-servers.net. -g.ceipmsn.com. -156.71.102.201.in-addr.arpa. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -coldraria.blogspot.com. -www.odfl.com. -lyrics.music-strike.net. -www.xg7979.com. -_431_19_2. -a.root-servers.net. -a83.phobos.apple.com. -edge.quantserve.com. -netflix757.pop3.la.nflximg.com.edgesuite.net. -4cskenyatuitakayo.org. -s-static.ak.fbcdn.net. -135.89.87.190.in-addr.arpa. -_511_72_7. -www.boca-lobo.blogspot.com. -sc21.rules.mailshell.net. -www.pilgrimcars.com. -189.56.180.64.in-addr.arpa. -open.qzone.qq.com. -a-0.19-21094071.9030083.1518.19d3.3ea1.410.0.e5c2hr5rirvc83viczadisp8rb.avqs.mcafee.com. -nvjqjsnx9.f70y3n1q. -www.myslavegirls.com. -forums.socialpointgames.com. -0.3099009.com. -time.chttl.com.tw. -www.zadetek.net. -dns.msftncsi.com. -tecnologia.es.msn.com. -a.root-servers.net. -prosperityloan.com. -code.jquery.com. -creative.ak.fbcdn.net. -naissance.bebe.notrefamille.com. -rcp.na.blackberry.com. -hootsuite.com. -beton-pesok.ru. -145.101.179.190.in-addr.arpa. -profile.ak.fbcdn.net. -128.177.49.190.in-addr.arpa. -vypxvs.com. -a.root-servers.net. -9.240.230.83.in-addr.arpa. -4.143.86.200.in-addr.arpa. -pollsdynamic.esmas.com. -201.143.77.82.in-addr.arpa. -www.teachingnews.co.uk. -cdn2.image.keezmovies.phncdn.com. -203.70.142.190.in-addr.arpa. -maddogweb.com.s7a2.psmtp.com. -www.rgawi.com. -2.bp.blogspot.com. -gra-elmundomagicodelasagujas.blogspot.com. -kfedisbroke.com.lan. -centaurmx1.dxsolutions.biz. -photos-b.ak.fbcdn.net. -www.allergynet.com.au. -dnl-19.geo.kaspersky.com. -98.82.27.201.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -springerlink.metapress.com. -img.mediaplex.com. -www.google-analytics.com. -sro.whatsapp.net. -216.153.19.186.in-addr.arpa. -plusone.google.com. -a.root-servers.net. -www.ylab.es. -e906.g.akamaiedge.net. -video.foxsmallbusinesscenter.com. -static.ak.fbcdn.net. -82.222.2.204.in-addr.arpa. -www.toquetoques.com. -beta.stun.voice.yahoo.com. -0-250.channel.facebook.com. -trendingsearches.net. -support.maktoob.com. -130.127.117.91.in-addr.arpa. -apps.facebook.com. -i1.ytimg.com. -dkndbrm1z.x80c1x2o. -23.130.130.201.in-addr.arpa. -espanol.answers.yahoo.com. -www.addthis.com. -a.root-servers.net. -video.google.com. -cs10658.vk.com. -discavery.ru. -www.gabrielacastillo.com. -static.imonografias.com. -mmetal.ru. -photos-d.ak.fbcdn.net. -184.209.47.201.in-addr.arpa. -www.freeridegames.com. -www.foodbuzz.com. -mail.industrialgines.com. -cdn1.clkads.com. -www.rincondelvago.com. -55.89.173.190.in-addr.arpa. -www.adobe.com. -85.85.231.190.in-addr.arpa. -. -a.root-servers.net. -csi.gstatic.com. -photos-d.ak.fbcdn.net. -www.turismoinkaiko.net. -150.174.86.201.in-addr.arpa. -zakazmebel.ru. -147.112.249.81.in-addr.arpa. -mail.burtcrane.com. -dns.msftncsi.com. -baymsg1020409.gateway.messenger.live.com. -www.images.com. -87.124.113.188.in-addr.arpa. -_991_90_9. -88ig51n5t.d34k2e1b. -mrmbw.com. -a.root-servers.net. -d2092230.xoom.it. -a8.sphotos.ak.fbcdn.net. -ecx.images-amazon.com. -fusion.google.com. -humannova.files.wordpress.com. -pt-br.facebook.com. -www.wordpress.com. -dc305.4shared.com. -wirelessmedia.ign.com. -a.root-servers.net. -begonebrotherhood.forumotion.com. -dmqg0yef478ix.cloudfront.net. -a.c-0.19-210fe000.10590.1518.19d4.3ea1.410.0.rikjfg7q7l6iidkwd5rfk4vkbi.avqs.mcafee.com. -csi.gstatic.com. -teredo.ipv6.microsoft.com. -api.twitter.com. -bs.serving-sys.com. -www.facebook.com. -a8.sphotos.ak.fbcdn.net. -range-systems.com.s8b1.psmtp.com. -garageband.maccreate.com. -blog.matoo.net. -accounts.google.com. -seaquest.com. -go.universal-music.de. -www.rangerover.com. -ds.serving-sys.com. -mx7.hushmail.com. -trauerhahn.de. -a8.sphotos.ak.fbcdn.net. -www.viva4madrid.com. -92.86.193.187.in-addr.arpa. -scanpell.no. -mail.westcall.net. -static.ak.fbcdn.net. -safesprinklers.com. -img3.xcarimg.com. -qq.net. -photos-c.ak.fbcdn.net. -twentynineinches.com. -a4.sphotos.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -135.72.158.201.in-addr.arpa. -clients2.google.com. -46.106.146.194.in-addr.arpa. -photos-h.ak.fbcdn.net. -rebmaillink.rebtel.com. -_417_65_8. -38.97.132.189.in-addr.arpa. -blog.comsatmedia.com. -a.root-servers.net. -c.plma.se. -101.232.108.84.in-addr.arpa. -ad.z5x.net. -a1251.phobos.apple.com.edgesuite.net. -pixel.facebook.com. -www.lahueca.ec. -katherussa.blogspot.com. -blog.9marks.org. -s-static.ak.facebook.com. -44.156.127.201.in-addr.arpa. -60.76.122.200.in-addr.arpa. -photos-h.ak.fbcdn.net. -110.33.36.186.in-addr.arpa. -scholar.google.com. -www.redfaction.com. -recoveryisbeautiful.tumblr.com. -dnl-02.geo.kaspersky.com. -delacarreracavanzo.com. -metrics.raptr.com. -photos-h.ak.fbcdn.net. -yahoo.com. -aprendeareirconelcolegiotartessos.blogspot.com. -ge.com. -www.facebook.com. -3.145.68.201.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -twitter.co. -6-courier.push.apple.com. -www.youtube.com. -translate.google.com. -safebrowsing.clients.google.com. -208.45.233.201.in-addr.arpa. -107.146.220.66.in-addr.arpa. -adblock-plus.uptodown.com. -p08-bookmarks.icloud.com. -28.41.148.190.in-addr.arpa. -35.189.33.151.in-addr.arpa. -ybinst3.ec.yimg.com. -189.195.222.189.in-addr.arpa. -checkip.dyndns.org. -www.blogpsicopositiva.com. -www.elperiodicodemexico.com. -173.150.252.190.in-addr.arpa. -49.1.168.192.in-addr.arpa. -mailgateway02.acs-corp.com. -139.77.121.186.in-addr.arpa. -open.hr. -cyber.net. -sri.ua.es. -profile.ak.fbcdn.net. -74.144.242.78.in-addr.arpa. -pheedo-rdr.msnbc.msn.com. -140.138.20.190.in-addr.arpa. -135.49.145.181.in-addr.arpa. -photos-h.ak.fbcdn.net. -181.132.22.187.in-addr.arpa. -sites.google.com. -nosotroslosgorditos.blogspot.com. -238.56.174.189.in-addr.arpa. -27.251.210.201.in-addr.arpa. -www.locaporlamodachile.com. -www.thinkwithgoogle.co.uk. -mx0.gmx.net. -smtp1.rehau.com. -46.22.212.201.in-addr.arpa. -pixel.facebook.com. -sac.gti.mcafee.com. -www.nosolodepanviveelhombre.com. -fbcdn-profile-a.akamaihd.net. -mail.moava.net. -41.231.233.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -ravens.ru. -photos-h.ak.fbcdn.net. -external.ak.fbcdn.net. -ie.todoexplorer.com. -a8.sphotos.ak.fbcdn.net. -www.funcionjudicial-pichincha.gov.ec. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -adoregames.com. -homezeus.tanagraltd.com. -39.61.35.177.in-addr.arpa. -www.stcwatches.com. -226.63.30.190.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -v20.nonxt1.c.youtube.com. -rhodeisland.broadwayworld.com. -adfarm.mediaplex.com. -www.facebook.com. -mail1.islc.net. -phaseiv.com. -mail.bya.ru. -fbcdn-sphotos-a.akamaihd.net. -www.emagister.com.mx. -engine24-1452-2.icritical.com. -57.121.168.192.in-addr.arpa. -wm44wmoy2.w21t8k1j. -www.youtube.com. -167.130.243.189.in-addr.arpa. -cluster3.eu.messagelabs.com. -um18.eset.com. -a1.sphotos.ak.fbcdn.net. -210.28.33.27.in-addr.arpa. -49.60.204.91.in-addr.arpa. -active.xo.com. -searchclient.live.net. -ow.ly. -ssl.gstatic.com. -b.scorecardresearch.com. -connect.facebook.net. -rest-img.msg.yahoo.com. -www.mysoccerpatch.com. -a.root-servers.net. -153.139.125.186.in-addr.arpa. -tcp.net.uk. -a.root-servers.net. -115.3.8.124.in-addr.arpa. -photos-d.ak.fbcdn.net. -connect.facebook.net. -a4.sphotos.ak.fbcdn.net. -mail.popsforchampagne.com. -api.twitter.com. -www.selectividad.tv. -toolbarqueries.google.es. -photos-e.ak.fbcdn.net. -api.conduit.com. -www.facebook.com. -sivis.com.br. -www.facebook.com. -otmail.de. -www.statusq.org. -olympics.wikia.com. -www.stayclassy.org. -ctsi-global.com. -ads.adxpansion.com. -col.stj.s-msn.com. -service.gc.apple.com.akadns.net. -61.89.18.95.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -www.sonoframbow.com. -pt-br.facebook.com. -www.myspace.com. -msc.wlxrs.com. -www.drumscore.com. -a.root-servers.net. -www.facebook.com. -57.187.137.190.in-addr.arpa. -dns.msftncsi.com. -multimedia.gustavo-castro.com. -mail2.m7aerospace.com. -c5uhsqqmo.40sv. -au.download.windowsupdate.com. -29-courier.push.apple.com. -769.coll.ning.com. -50.234.94.190.in-addr.arpa. -200.222.67.201.in-addr.arpa. -10-courier.push.apple.com. -video.forcedfemdomtgp.com. -s-static.ak.fbcdn.net. -a.root-servers.net. -www.definicion.com.mx. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -206.40.10.201.in-addr.arpa. -oyhubl.com. -gfx4.hotmail.com. -static.ak.facebook.com. -www.flexgallery.com. -71.12.22.190.in-addr.arpa. -profile.ak.fbcdn.net. -87.122.201.190.in-addr.arpa. -apis.google.com. -www.annecoyleinteriors.com. -photos-f.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -www.thaidvd.biz. -yahoo.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -www.elciudadano.cl. -wwwimages.adobe.com. -www.diabetesjournals.org. -neoenergiaedp.com. -cn.pool.ntp.org. -_311_12_5. -members.dyndns.org. -teredo.ipv6.microsoft.com. -byfiles.storage.msn.com. -14eg6s-de-he3d6ss.juegosipo.com. -mail.columbusfirstbank.com. -151.57.115.187.in-addr.arpa. -hjuhsd.k12.ca.us. -235.30.198.187.in-addr.arpa. -photos-b.ak.fbcdn.net. -checkout.google.com. -239.179.158.189.in-addr.arpa. -readeronline.wip4.adobe.com. -img268. -jcsu.edu.s10a2.psmtp.com. -krithiskitchen.blogspot.com. -muchascajasdecarla.blogspot.com. -hofra.sr. -crl.microsoft.com. -atlanticcityelectric.com. -114.129.44.99.in-addr.arpa. -ad-apac.doubleclick.net. -ville-nice.fr. -www.pastelerialety.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.eu-ssa.org. -231.210.58.186.in-addr.arpa. -26.20.223.98.in-addr.arpa. -photos-d.ak.fbcdn.net. -205.126.37.80.in-addr.arpa. -zolotoy-venetz.spb.ru. -132.68.231.213.in-addr.arpa. -37.171.79.190.in-addr.arpa. -s2.youtube.com. -148.133.101.199.in-addr.arpa. -cn1.redswoosh.akadns.net. -a.root-servers.net. -62.165.231.189.in-addr.arpa. -153.56.47.190.in-addr.arpa. -api-read.facebook.com. -impulsi.ru. -a.root-servers.net. -14.133.211.201.in-addr.arpa. -s3.subirimagenes.com. -144.34.151.187.in-addr.arpa. -cdn.extensions.buzznet.com. -www.jiggystudio.com. -profile.ak.fbcdn.net. -mail.yimg.com. -an.tacoda.net. -software.filestube.com. -238.158.164.189.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -www.google.com. -a8.sphotos.ak.fbcdn.net. -www.pixelfanatic.com. -us.data.toolbar.yahoo.com. -artone.ru. -www.serial-on.clan.su. -mail.glatt.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -224.198.127.59.in-addr.arpa. -www.blog.proxyroller.com. -s3.hddownloader.com. -www.thelusted.com. -www.lugaresquenoquierocompartirconnadie.com. -cdn1.clkads.com. -197.238.236.190.in-addr.arpa. -cs505204.vk.com. -cfs-p4.l3.fbcdn.net. -www.findserialnumber.me. -smtp2.prointec.es. -www.foreverunique.co.uk. -www.lace-up.de. -www.youtube.com. -www.deremate-inc.com. -pixel.rubiconproject.com. -d15gt9gwxw5wu0.cloudfront.net. -xglobal.froo.com. -yui.yahooapis.com. -www.facebook.com. -api-public.addthis.com. -digg.com. -www.facebook.com. -crl.verisign.net. -rad.msn.com.nsatc.net. -s.youtube.com. -redfaceplus.com. -www.macromedia.com. -event.adxpose.com. -126.96.170.90.in-addr.arpa. -77.167.170.184.in-addr.arpa. -fivetowntoyota.com. -mail.youngstartup.com. -mail.spectrasonics.com. -googleads.g.doubleclick.net. -112.84.214.201.in-addr.arpa. -s0.2mdn.net. -www.idcow.com. -view.atdmt.com. -plus.google.com. -external.ak.fbcdn.net. -www.playspidermangames.org. -budget.moneycontrol.com. -secure.wlxrs.com. -4xusys5mt.87bq. -annaandtheringlondon.blogspot.com. -rainbow-it.mythings.com. -t.co. -smtp.live.com. -www.facebook.com. -25.0/27.3.69.83.in-addr.arpa. -sportsgrid.com. -www.ganfx.com. -plus.google.com. -13.144.206.200.in-addr.arpa. -relay.voice.edge.messenger.live.com. -clients2.google.com. -dc.logmein-gateway.com. -blog.wunderlist.com. -58.144.153.201.in-addr.arpa. -129.167.116.78.in-addr.arpa. -www.sharethis.com. -www.yahoo.com. -a8.sphotos.ak.fbcdn.net. -mail.walkercontracting.com. -wrg1008.webradiogratis.com. -www.keezmovies.com. -utrade.ru. -www.importvelez.com.ar. -75.204.34.189.in-addr.arpa. -a.root-servers.net. -liability-insurance-types.com. -www.tarocchiamore.info. -thumbnails9.imagebam.com. -www.mold-help.org. -86.4.122.187.in-addr.arpa. -165.81.49.70.in-addr.arpa. -humor.petardas.com. -43.74.230.71.in-addr.arpa. -punkmagazine.com. -153.95.55.189.in-addr.arpa. -utils.babylon.com. -wclacc.org. -gdata.youtube.com. -static.uk.groupon-content.net. -gsp1.apple.com. -api.twitter.com. -www.diamantalia.com. -pu4fox653.c75o8x5p. -www.beautifulmag.com. -billing.sharo4ka.ru. -ivyleagueadmission.com. -cesarasilva.com. -qualitymetalwv.com. -villanoticias.blogspot.com. -bowdoin.academia.edu. -susanne-weber.eu. -provgrp.us. -www.gruposiete.com.mx. -pensketruckleasing.com. -c-0.19-230f0081.c050081.1518.19c5.3ea1.210.0.l3ep1t8fv2s2q4njwbkes7s4nb.avqs.mcafee.com. -ssfsf.com. -download.windowsupdate.com. -www.creditme.com. -dns.msftncsi.com. -59a92430e6.com. -links.mkt3094.com. -wildernesslore.com. -safebrowsing-cache.google.com. -radugaprint.ru. -jasperautomotive.com. -dominguez-cia.com. -deckercollege.com. -hosting.lockhosts.com. -profile.ak.fbcdn.net. -api.webrep.avast.com. -217.173.36.186.in-addr.arpa. -www.amazon.com. -194.96.141.83.in-addr.arpa. -176.43.65.69.in-addr.arpa. -evsecure-ocsp.verisign.com. -ksn2-12.kaspersky-labs.com. -check4.facebook.com. -platform.ak.fbcdn.net. -csi.gstatic.com. -www.lux. -google.com. -a.root-servers.net. -126.121.107.190.in-addr.arpa. -mail.olympuspower.com. -i2.ytimg.com. -go.srvnow.com. -badurls119.gsecurity.de. -support.ovi.com. -continent-mebel.ru. -a.root-servers.net. -a.root-servers.net. -www.myhomeremedies.com. -74.233.158.213.in-addr.arpa. -sp.cwfservice.net. -jobsale.ru. -www.sherweb.com. -keywest.com. -n3yve26iy.p87i5v0q. -alfa.ns.active24.cz. -www.partymonster.cl. -inbound.parry.biz.netsolmail.net. -118.101.56.190.in-addr.arpa. -www.facebook.com. -www.autobacklinkservice.com. -sjstatic.sj.91.com. -100.143.63.46.in-addr.arpa. -gmailc.om. -teredo.ipv6.microsoft.com. -28.223.144.189.in-addr.arpa. -mail.sacvoyage.com. -external.ak.fbcdn.net. -20.234.246.88.in-addr.arpa. -plus.google.com. -www.poderypaz.com. -www.erlupacchiotto.com. -223.119.137.201.in-addr.arpa. -www.nakedgirlfriend.net. -www.sabiasque.info. -87.146.220.66.in-addr.arpa. -www.google-analytics.com. -mhl2w4zpt.l77z8p6y. -safebrowsing.clients.google.com. -mx.youtube.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -www.google.com. -hotmail.com. -profile.ak.fbcdn.net. -s-static.ak.facebook.com. -www.l.google.com. -checkip.dyndns.org. -squall21000.unblog.fr. -semprautilities.com. -www.download-free-templates.com. -www.facebook.com. -rekad.be. -9.254.103.189.in-addr.arpa. -bloggergadgets.googlecode.com. -autos.demotores.com.ar. -api.facebook.com. -www.facebook.com. -i3.ytimg.com. -www.facebook.com. -78.241.14.186.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -groups.google.com.mx. -a.rtiindia.org. -19.174.192.190.in-addr.arpa. -profile.ak.fbcdn.net. -jangsara.blogspot.com. -tracsablog.typepad.com. -cicb-chemicon-com.antispam2.softcell.in. -internetservice.shopsgroup.com. -prwg.wikispaces.com. -boletotal.mx. -platform.twitter.com. -line4u.ru. -110.196.222.186.in-addr.arpa. -www.amarillasnevada.com. -aoltv.com. -nationwiderestorationllc.com. -jesmar.com. -developers.facebook.com. -dns.msftncsi.com. -a1.sphotos.ak.fbcdn.net. -mynnb.com.s8a1.psmtp.com. -a5.sphotos.ak.fbcdn.net. -us.topshop.com. -a8.sphotos.ak.fbcdn.net. -www.fanaticinema.com. -www.newstar-cherry.net. -img.realvoyeurpost.com. -mb.marathonbet.com. -www.facebook.com. -36ohk6dgmcd1n-c.c.yom.mail.yahoo.net. -pyx.net. -gizma.ru. -saude.ig.com.br. -news.google.com.mx. -www.google-analytics.com. -1.0.0.223.lbl7.mailshell.net. -26.196.138.189.in-addr.arpa. -223.216.118.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -nama3.thamrin.net.id. -www.senatorsextra.com. -amor.prodigy.match.com. -lainquisicionprogramadetv.blogspot.com. -mediacenter2.clicrbs.com.br. -www.miniclip.com. -v4.lscache5.googlevideo.com. -7.10.22.186.in-addr.arpa. -photos-d.ak.fbcdn.net. -juki.su. -62.9.133.186.in-addr.arpa. -dak.donetsk.ua. -api.facebook.com. -a7.sphotos.ak.fbcdn.net. -l3.image.dirty101.com. -docs.google.com. -a.root-servers.net. -s-static.ak.fbcdn.net. -abcdiario2010.blogspot.com. -9.112.44.60.in-addr.arpa. -246.191.136.14.in-addr.arpa. -dns.msftncsi.com. -spe.com. -s3.amazonaws.com. -mx2.inflin.ru. -www.ardillamedia.com. -www.joinecsc.com. -141.163.239.201.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -www.thethinkingstick.com. -34.229.171.69.in-addr.arpa. -105.10.43.200.in-addr.arpa. -google.com. -www.monografias.com. -94.15.168.192.in-addr.arpa. -pixel.facebook.com. -55.17.59.186.in-addr.arpa. -gearjunkie.com. -www.datadev.com. -static.canalstat.com. -tracker.bittorrent.am. -www.cloudantivirus.com. -photos-f.ak.fbcdn.net. -iztapalapa.infoisinfo.com.mx. -platform.ak.fbcdn.net. -ertolete.wordpress.com. -www.bidstrup.ru. -130.53.206.187.in-addr.arpa. -i3.ytimg.com. -del.icio.us. -holiday-for-children.ru. -s7.addthis.com. -es-es.facebook.com. -nations.tm-exchange.com. -moritzchevrolet.com. -203.156.200.98.in-addr.arpa. -profile.ak.fbcdn.net. -g.live.com. -2dwti6j8g.n70r9f3f. -lb._dns-sd._udp.0.9.168.192.in-addr.arpa. -log.client.akadns.net. -de-de.facebook.com. -clients4.google.com. -samcoline.com. -www.google.com. -sea-wallpapers.blogspot.com. -mx.youtube.com. -ad.doubleclick.net. -www.msn.com. -ewriters.org. -mailserver.ctf-uk.com. -hotmail.com. -connect2.askadmissions.net. -www-fc-opensocial.googleusercontent.com. -paginadeerro.ig.com.br. -image-c.c.yom.mail.yahoo.net. -m.facebook.com. -sintechms.com. -googlemaps. -calif.com. -www.gayxxxblog.com. -a.root-servers.net. -enthought.com.s9a1.psmtp.com. -loganlibrary.org. -194.34.174.90.in-addr.arpa. -a.root-servers.net. -www.google.com.mx. -insightbb.com. -abp2go.com. -external.ak.fbcdn.net. -235.242.13.187.in-addr.arpa. -sp.cwfservice.net. -67652.envacaciones.info. -smtp.equipcokuwait.com. -50.7.93.186.in-addr.arpa. -www.imprentavalencia.com. -ns7.ptspb.ru. -www.egagenerics.com. -api.facebook.com. -support.google.com. -img.uptodown.net. -www.ulani.de. -20.228.171.69.in-addr.arpa. -msnia.login.live.com. -webcache.googleusercontent.com. -s.youtube.com. -beko-zuid.nl. -listas.trisquel.info. -sp.cwfservice.net. -pagead2.googlesyndication.com. -www.situsotomotif.com. -185.214.242.98.in-addr.arpa. -tap2-cdn.rubiconproject.com. -www.google.com. -kayucolectivo.obolog.com. -a.root-servers.net. -photos-c.ak.fbcdn.net. -o.analytics.yahoo.com. -4.213.188.190.in-addr.arpa. -crc4pr.com. -e906.g.akamaiedge.net. -www.guanakos.net. -www.ratteb.com. -140.7.231.189.in-addr.arpa. -a.root-servers.net. -ad.adnetwork.net. -253.8.124.186.in-addr.arpa. -www.earthincommon.com. -135.242.225.189.in-addr.arpa. -a.root-servers.net. -blugro2relay.groove.microsoft.com. -market.android.com. -. -www.google.com. -orcart.facebook.com. -inbound.staffordsmith.com.netsolmail.net. -skipod.ru. -73.104.19.190.in-addr.arpa. -hotpremiumcookies.blogspot.com. -tubularsuspensionsystems.com. -a4.sphotos.ak.fbcdn.net. -234.204.55.216.in-addr.arpa. -www.apple.com. -4.183.115.79.in-addr.arpa. -i3.ytimg.com. -www.bic-code.org. -pagead2.googlesyndication.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -retromed.doc-martin.ru. -_360_40_2. -a5.sphotos.ak.fbcdn.net. -iffexc.fibraforte.com. -www.kidsafensw.org. -userimages01-akm.imvu.com. -www.teensdefloration.net. -a2.sphotos.ak.fbcdn.net. -zapatec.com. -105.77.69.189.in-addr.arpa. -emob247.photobucket.com. -mail.cpmail.ru. -s-static.ak.fbcdn.net. -251.221.124.201.in-addr.arpa. -tenet.ru. -bank06.mi.ads.mp.mydas.mobi. -barranquillaes.chatango.com. -tap-cdn.rubiconproject.com. -teredo.ipv6.microsoft.com. -a7.sphotos.ak.fbcdn.net. -www.michaeljordanoutlet.com. -105.52.205.190.in-addr.arpa. -11.231.61.78.in-addr.arpa. -jers3.info. -www.google.com. -www.googleadservices.com. -jorgevila.blogspot.com. -losmasgrandesdelahistoria.blogspot.com. -profile.ak.fbcdn.net. -wwc.instacam.com. -nt3.ggpht.com. -189.229.39.187.in-addr.arpa. -a.root-servers.net. -armmf.adobe.com. -zgn.static.zynga.com. -youtube-espanol.blogspot.com. -contiadvertising.name. -url.edu.gt. -jobs.raytheon.com. -i1.ytimg.com. -a2.da1.akamai.net. -0-jf-w.channel.facebook.com. -ksn2-12.kaspersky-labs.com. -login.yahoo.com. -fcat.fldoe.org. -hangtime.blogs.nba.com. -3.242.168.189.in-addr.arpa. -www.skyrama.de. -61.127.134.122.in-addr.arpa. -maxcontrols.com. -developers.facebook.com. -155.48.70.173.in-addr.arpa. -ksn7-12.kaspersky-labs.com. -www.google.com. -sites.google.com. -vmirror3.garant.ru. -ptpw.com.tw. -dsn13.d.skype.net. -www.jesusdemanuel.es. -cronicasdeinternet.com. -a5.sphotos.ak.fbcdn.net. -luismthen.posterous.com. -86.12.227.190.in-addr.arpa. -akm.atlas-rt.ru. -alpha.newsx.com. -s.youtube.com. -229.94.113.88.in-addr.arpa. -thegoodlife.ru. -pocketpc-fujitsu.ru. -www.addthis.com. -cdn.conceptdezain.com. -isatap.gateway.2wire.net. -a.root-servers.net. -jg.com. -www.adoptivefamilies.com. -3limona.ru. -www.google.com. -a.root-servers.net. -sp.cwfservice.net. -cybernet.net. -foundationsource.com.2.0001.arsmtp.com. -ja-jp.facebook.com. -carina-a-met-art.bravoerotica.com. -. -95.107.160.69.in-addr.arpa. -www.google.com. -138.125.241.201.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -cur.cursors-4u.net. -entretenimiento.prodigy.msn.com. -b-0.19-a3005008.11081.1518.19d0.3ea1.410.0.ddcllgmu7e9kp2t99kj9blbvp6.avqs.mcafee.com. -shared.live.com. -www.otakugaming.com. -rtpnet.org. -mail.mccmetro.com. -accounts.google.com. -thumbs4.ebaystatic.com. -ssl.gstatic.com. -radiolafavorita.com. -trc-hq.com. -checkip.dyndns.org. -224.194.89.201.in-addr.arpa. -a979.v.phobos.apple.com. -img25.imageshack.us. -s2.youtube.com. -147.218.225.212.in-addr.arpa. -fr.shegame.com. -www.facebook.com. -43.220.27.108.in-addr.arpa. -a.root-servers.net. -4.166.138.190.in-addr.arpa. -www.sweetim.com. -isotron.com.s200a2.psmtp.com. -rcp.na.blackberry.com. -_822_10_2. -47.23.95.190.in-addr.arpa. -hdmanagement.com. -a.root-servers.net. -brico-pack-vista-inspirat.malavida.com. -rsca.be. -31.170.218.80.in-addr.arpa. -messenger.hotmail.com. -0-271.channel.facebook.com. -web.me.com.edgekey.net. -www.facebook.com. -smtp.bitterrootgroup.com. -97.53.209.190.in-addr.arpa. -skynet-services-other.metriweb.be. -126.127.47.190.in-addr.arpa. -sigs.symantec.com. -a.root-servers.net. -pixel.facebook.com. -mx03.t-online.de. -www.ngsimages.com. -disneylatino.com. -159.25.38.187.in-addr.arpa. -maktoob.yahoo.com. -alerts.conduit-services.com. -138.225.193.190.in-addr.arpa. -blueyonder.co.uk. -smtp.ww.co.nz. -2.30.207.190.in-addr.arpa. -202.28.165.189.in-addr.arpa. -photos-a.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.allisonangel.info. -86.143.153.188.in-addr.arpa. -mail.choifm.com. -www.netnanny.com. -tarot-egipcio.com. -124.226.74.190.in-addr.arpa. -a1108.da1.akamai.net. -186.178.229.189.in-addr.arpa. -dogs2.f5.vip.milp.ngmoco.com. -s-static.ak.fbcdn.net. -d.mzc.in. -profile.ak.fbcdn.net. -142.217.245.190.in-addr.arpa. -www.philippi.cl. -www.fincen.gov. -www.imageport.info. -www.cosmetic-plastic-surgery.info. -a.root-servers.net. -mixph.com. -214.151.178.190.in-addr.arpa. -i4.ytimg.com. -181.212.186.189.in-addr.arpa. -28.64.125.186.in-addr.arpa. -static.ak.fbcdn.net. -mail.google.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.premioelbarcodevapor-blaa.com. -a.root-servers.net. -g.ceipmsn.com. -www.xatech.com. -sfigroup.co.uk. -10.21.255.201.in-addr.arpa. -preparacion2012.argentinaforo.net. -a34.g.akamai.net. -www.nrcu.gov.ua. -apps.facebook.com. -i1213.photobucket.com. -iraqpics.net. -blogs.laverdad.es. -ad-g.doubleclick.net. -css.wlxrs.com. -a3.sphotos.ak.fbcdn.net. -googleads.g.doubleclick.net. -peoplepc.compeoplepc.com. -pixel.quantserve.com. -francemebel.ru. -70.202.67.187.in-addr.arpa. -coronapalto.ru. -photos-g.ak.fbcdn.net. -mid-valleysupply.com. -www.usolympicteam.com. -meneame.net. -177.241.26.46.in-addr.arpa. -www.harryshumjr.com. -48.216.85.209.iadb.isipp.com. -a.root-servers.net. -s-static.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.facebook.com. -canseco.com.s8b1.psmtp.com. -www.mediafire.com. -hpana.com. -www.rutacol.com. -luismaenlasnubes.blogspot.com. -photos-a.ak.fbcdn.net. -factory.okna5.ru. -ksn7-12.kaspersky-labs.com. -bp1.blogger.com. -www.middleeasthealthmag.com. -photos-h.ak.fbcdn.net. -www.gn4me.com. -correoweb.com. -cdn.ad4game.com. -e-yes.gr. -1.0.0.10.in-addr.arpa. -sakura-card-captor-anime.blogspot.com. -142.175.25.187.in-addr.arpa. -descuidofamosas.info. -gotfuturama.com. -172.92.255.190.in-addr.arpa. -cdn.mediafire.com. -www.videosmz.com. -www.detiknews.com. -grnlakeorion.com. -tfw-current.s3.amazonaws.com. -goodtimes.com. -211.11.4.175.in-addr.arpa. -www.facebook.com. -morgansstanley.com. -titanium30-en.url.trendmicro.com. -www.picadillocircus.com. -secure.wlxrs.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -187.2.115.92.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -svr3.marketrends.net. -static.ak.fbcdn.net. -a.root-servers.net. -gg.google.com. -ksn1-12-part2.kaspersky-labs.com. -mail.buddysbarbq.com. -iit.net.ru. -59.216.92.186.in-addr.arpa. -www.libraryloungelizard.com. -barcelonacultura.bcn.cat. -img1.imensagens.com. -www.moringa.com. -129.102.255.201.in-addr.arpa. -buycostumes.pscsrv.net. -208.64.32.190.in-addr.arpa. -rodnik.biz. -creative.ak.fbcdn.net. -heart4me.com. -static.ak.fbcdn.net. -sites.google.com. -mx.mujer.yahoo.com. -plus.google.com. -vnmade.com. -www.google-analytics.com. -rds.yahoo.com. -40.53.24.189.in-addr.arpa. -static.ak.facebook.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -96.145.171.187.in-addr.arpa. --de-masa-y-tortillas.wired.com.mx. -158.46.153.201.in-addr.arpa. -co122w.col122.mail.live.com. -www.facebook.com. -privetsochi.ru. -159.146.180.189.in-addr.arpa. -pixel.facebook.com. -free.timeanddate.com. -ru.thefreedictionary.com. -sitebitrix.ru. -www.simel.it. -el-oso-oshitas.blogspot.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -118.49.40.190.in-addr.arpa. -virginmega.com.s7b1.psmtp.com. -21.115.138.189.in-addr.arpa. -ic.tynt.com. -t3.gstatic.com. -a.root-servers.net. -www.xatech.com. -24.136.176.190.in-addr.arpa. -rcp.na.blackberry.com. -www.my-shop.com.au. -bmaa.gv.at. -met.adwhirl.com. -vlex.com.co. -urban.com.ru. -a.root-servers.net. -muuuvies.files.wordpress.com. -homercentral.org. -bartoncreek.com. -89.210.205.190.in-addr.arpa. -40.51.175.187.in-addr.arpa. -mollenkopf.de. -50.108.236.189.in-addr.arpa. -a.root-servers.net. -fbcdn-profile-a.akamaihd.net. -googleapis.l.google.com. -ajax.googleapis.com. -a.root-servers.net. -17.120.228.24.in-addr.arpa. -51.89.53.92.in-addr.arpa. -mx.hazlettinc.com. -_311_33_5. -a.root-servers.net. -www.101incredibleplaces.com. -53.149.48.65.in-addr.arpa. -profile.ak.fbcdn.net. -www.damselstruction.com. -ksn7-12.kaspersky-labs.com. -photos-e.ak.fbcdn.net. -an.tacoda.net. -horizonsisg.com.s8b2.psmtp.com. -m.adnxs.com. -ejabat.google.com. -armonia-avm.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -tcsinow.com. -img125.hotlinkimage.com. -www.readytogo.net. -d2094182.xoom.it. -ma61-c.analytics.edgesuite.net. -www.gstatic.com. -www.namazzamani.net. -buckshotboredom.com. -a.root-servers.net. -ay84moqm1.c19d4d4q. -176.206.132.190.in-addr.arpa. -linkhelp.clients.google.com. -angle-droit.fr. -99.145.6.186.in-addr.arpa. -wpad. -fotoria.ru. -205.41.9.109.in-addr.arpa. -skins.gmodules.com. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -malaysia.answers.yahoo.com. -geo.yahoo.com. -maps.google.es. -rcp.na.blackberry.com. -www.maillife.co.uk. -enterarteregional.blogspot.com. -90.64.170.189.in-addr.arpa. -www.apogee-web-consulting.com. -api.facebook.com. -tossersite.com. -201.248.233.201.in-addr.arpa. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -tracken.dolphin-browser.com. -105.102.158.178.in-addr.arpa. -es-es.com.wmlwww.login.facebook.com. -tiny.cc. -227.131.115.200.in-addr.arpa. -www.facebook.com. -52.238.90.200.in-addr.arpa. -a.root-servers.net. -teredo.ipv6.microsoft.com. -www.faceb. -www.webgamegame.com. -hosteltur.com. -mjls.org. -static.ak.connect.facebook.com. -safebrowsing.clients.google.com. -www.okcupid.com. -fbcdn-profile-a.akamaihd.net. -newsrss.bbc.co.uk. -api.nanigans.com. -www.20minutos.es. -searchclient.live.net. -www.weekday.se. -img.youtube.com. -mail.mfworks.com. -www.antivirus.com. -graph.facebook.com. -static-0.farmville.zgncdn.com. -external.ak.fbcdn.net. -215.162.134.190.in-addr.arpa. -28.42.161.222.in-addr.arpa. -search.twitter.com. -toolbarqueries.google.com. -a5.sphotos.ak.fbcdn.net. -146.209.120.24.in-addr.arpa. -b7g9v4d4s.i51f3w4b. -zibzfwpdz.87it. -66.185.9.186.in-addr.arpa. -iceauto.ru. -_535_21_7. -profile.ak.fbcdn.net. -a.root-servers.net. -42.208.159.189.in-addr.arpa. -aljazeera.net. -scores.mochimedia.com. -blu.stc.s-msn.com. -b48mxdwk47ktl28j36k17d50buhxk57p62k67lrou.com. -www.smarturl.it. -249.102.244.190.in-addr.arpa. -13.228.171.69.in-addr.arpa. -60.6.55.85.in-addr.arpa. -thewimshurstsmachine.com. -valf.ru. -18.39.25.88.in-addr.arpa. -zrres.zt.energy.gov.ua. -protocolocomentarios.blogspot.com. -16.59.80.199.in-addr.arpa. -hub.video.msn.com. -h.live.com. -lewer.com.s7b2.psmtp.com. -ar-ar.facebook.com. -ar.answers.yahoo.com. -164.179.43.201.in-addr.arpa. -neurosis2.concordia.ca. -a.root-servers.net. -external.ak.fbcdn.net. -comunidades.esmas.com. -ajax.googleapis.com. -ad-g.doubleclick.net. -37.145.248.189.in-addr.arpa. -msk.aeroflot.ru. -8.193.143.24.in-addr.arpa. -exchange.highwoods.com. -static.ak.fbcdn.net. -pagead2.googlesyndication.com. -time-a.nist.gov. -17-courier.push.apple.com. -blu.stj.s-msn.com. -ns4.combell.net. -191.196.233.118.in-addr.arpa. -es.888.com. -mail.rexcargo.com. -180.20.168.192.in-addr.arpa. -afisha.ru. -teredo.ipv6.microsoft.com. -_376_15_3. -pixel.facebook.com. -r._dns-sd._udp.home. -static.ak.fbcdn.net. -you-have-what-it-takes.com. -jaringnews.com. -ar.games.yahoo.com. -148.64.156.93.in-addr.arpa. -sgsdg.com. -solta.com. -static.ak.fbcdn.net. -resources.alibaba.com. -ssl.gstatic.com. -www.sahafa.com. -inbound.ffta.com.netsolmail.net. -p0b.ru. -www.xvideos.com. -ajax.googleapis.com. -optimized-by.rubiconproject.com. -forums.hennapage.com. -audio-libro.info. -www.laverdad.es. -finescale.com.s8b1.psmtp.com. -mail.inflightcareers.com. -242.46.69.190.in-addr.arpa. -138.18.168.192.in-addr.arpa. -vap1sea1.lijit.com. -mail. -pixel.mathtag.com. -mail.copyandcamera.com. -_579_98_6. -photos-b.ak.fbcdn.net. -unasesentona.blogspot.com. -boards.dingoonity.org. -games.piczo.com. -talk.google.com. -funcampco.ca. -sp.cwfservice.net. -f.facemoods.com. -uniccos.com. -newsletter.o2world.de. -22.169.15.189.in-addr.arpa. -amer.rel.msn.com. -accounts.google.com. -timmtytjhjdfj.blogspot.com. -160.125.150.24.in-addr.arpa. -bloodshedzine-spain.blogspot.com. -dns.msftncsi.com. -alma.net. -photos-g.ak.fbcdn.net. -www.ypmadserver.com. -profile.ak.fbcdn.net. -81.95.171.189.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -mail.twcinci.com. -128.143.60.186.in-addr.arpa. -safebrowsing-cache.google.com. -sp.iphone-unlocker-pro.com. -159.223.137.190.in-addr.arpa. -www.update.microsoft.com. -dapez.com.ar. -www.cobraboxing.com. -teredo.ipv6.microsoft.com. -col.stj.s-msn.com. -www.modern-canvas-art.com. -static.cbox.ws. -a8.sphotos.ak.fbcdn.net. -mail.qzip.net. -ds2.uniblue.com. -mail.dd-rd.ca. -12.10.162.46.in-addr.arpa. -s.youtube.com. -t2.gstatic.com. -www.ssclg.com. -sp.cwfservice.net. -es.wikipedia.org. -_759_60_5. -elite-finance.com. -transamtruck.com. -i4.ytimg.com. -xanky.com. -pixel.quantserve.com. -43.244.236.189.in-addr.arpa. -filter1.presco-6.mailguard.com.au. -corporate.ford.com. -honor.americanheart.org. -146.238.71.77.in-addr.arpa. -motor.superdeporte.es. -art-hist.ru. -photos-g.ak.fbcdn.net. -tracker.torrentbay.to. -www.crowngroup.com.au. -loading.retry.widdit.com. -1.132.204.187.in-addr.arpa. -70.163.144.189.in-addr.arpa. -www.maincor.de. -www.blogger.com. -cineinblog.atarde.com.br. -safebrowsing-cache.google.com. -mp4-i7-1b.perfectgirls.net. -a8.sphotos.ak.fbcdn.net. -www.imobisoft.co.uk. -ebay-volgograd.ru. -82.98.140.175.in-addr.arpa. -kotaku.com. -cdn.api.twitter.com. -clients2.google.com. -easy-youtube-video-downloader.en.softonic.com. -alpineutahrealty.com. -a.root-servers.net. -newt7.adultadworld.com. -bjv9xcng.emltrk.com. -www.cpxadspace.com. -_247_65_6. -web.educastur.princast.es. -183.121.242.201.in-addr.arpa. -51.80.4.186.in-addr.arpa. -gfx2.hotmail.com. -support.google.com. -243.164.8.95.in-addr.arpa. -www.premiershipwallpapers.com. -a4.sphotos.ak.fbcdn.net. -proxy-relay1.red.net. -auth.shequ.10086.cn. -enj9u3ka6.e74h6t4v. -4rgk5srwp.d39k9p3b. -video1.hobbico.com. -www.djtonypeopleshousemusic.com. -www.aradani.com. -a.root-servers.net. -ns1.itdienstleistung.at. -photos-e.ak.fbcdn.net. -www.hondunet.com. -abco01.abcoproducts.com. -vi.ebaydesc.com. -43.214.85.209.bl.spamcop.net. -mb.sympatico.ca. -92.122.168.192.in-addr.arpa. -zh-cn.facebook.com. -18.181.84.59.in-addr.arpa. -www.youtube.com. -alta-print.com. -geo.messenger.services.live.com. -102.120.74.190.in-addr.arpa. -gruponuevotramo.blogspot.com. -secure.shared.live.com. -12.38.225.189.in-addr.arpa. -postal.essd.northgrum.com. -fr-fr.facebook.com. -grayen1.com. -msc.wlxrs.com. -a.root-servers.net. -i3.ytimg.com. -www.telenovelasgratis.com. -unitrac.com. -secure1.zynga.com. -superfoodinfos.com. -profile.ak.fbcdn.net. -d2055595.instant.xoom.it. -moviesonlinehere.com. -a.root-servers.net. -ads.bluelithium.com. -_898_68_2. -axismedia.co.uk. -static.ak.fbcdn.net. -upload.7ozn.com. -ajax.googleapis.com. -inty.net. -ntp1.dlink.com. -wvnvaxbd.com. -a.root-servers.net. -accounts.google.com. -hu.wikipedia.org. -gyptech.on.ca. -firewall.idealcomponents.net. -l.sharethis.com. -23qnyctn8.13eh. -www.imdb.com. -102.143.254.180.in-addr.arpa. -p7677.cdngc.net. -travel.yahoo.com. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -fbcdn-profile-a.akamaihd.net. -www.googletagservices.com. -60.181.58.187.in-addr.arpa. -a.root-servers.net. -223.169.160.189.in-addr.arpa. -183.36.229.189.in-addr.arpa. -0-id-w.channel.facebook.com. -sites.google.com. -worelliesbrdm.su. -fpdownload2.macromedia.com. -developers.facebook.com. -christophermills.uk.com. -_259_22_5. -a7.sphotos.ak.fbcdn.net. -135.71.144.181.in-addr.arpa. -www.flashgameport.com. -d3lvr7yuk4uaui.cloudfront.net. -vehiculos-usados.vivastreet.com.mx. -coemsa.com. -teredo.ipv6.microsoft.com. -www.mariadeagreda.org. -a8.sphotos.ak.fbcdn.net. -135.62.177.189.in-addr.arpa. -a.root-servers.net. -time.stdtime.gov.tw. -teaworld.ru. -www.facebook.com. -www.designerblogs.com. -www.autumndewilde.com. -ads.revsci.net. -securemail.pmsyscorp.com. -tt.wikipedia.org. -gateway1i.kewill.com. -www.adamtaylorphotography.com. -www.discovery.com. -opml.radiotime.com. -api.geo.kontagent.net. -dns.msftncsi.com. -teredo.ipv6.microsoft.com. -vuelos.viajes.hispavista.com. -94.117.247.190.in-addr.arpa. -plus.google.com. -a.root-servers.net. -media.roportal.ro. -jigsy.com. -api.youversion.com. -rad.msn.com. -www.tetactics.com. -www.manualesdetodo.net. -dingenvanlia.nl. -www.soundofdrowning.com. -developers.facebook.com. -www.smoder.com. -239.184.11.190.in-addr.arpa. -cs11067.vk.com. -m.facebook.com. -a997.mm1.akamai.net. -tutu.es. -multimedia.eluniversal.com.mx. -feim.com.s7a1.psmtp.com. -23.1.168.192.in-addr.arpa. -punkska.ru. -safebrowsing-cache.google.com. -s1-powerpoint.vo.msecnd.net. -fbcdn-profile-a.akamaihd.net. -225.32.57.187.in-addr.arpa. -199.244.83.200.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -www.gnuart.net. -242.183.168.192.in-addr.arpa. -api.facebook.com. -www.incredimages.com. -ad-g.doubleclick.net. -www.unonoticias.com. -www.tuempresaenlared.net. -henna-boy.co.uk. -hi-audit.ru. -236.84.147.79.in-addr.arpa. -friskygeek.com. -orionika.ru. -designcentrix.com. -s-external.ak.fbcdn.net. -1671.live.streamtheworld.com. -int.search-results.com. -www.df.gob.mx. -www.healthcare.uci.edu. -external.ak.fbcdn.net. -www.kiddycade.com. -mail.gek.ru. -teredo.ipv6.microsoft.com. -dtboot.orbitdownloader.com. -geoip.vmn.net. -10412569.mx1.autocarindia.com. -tmmc.ca. -100.151.182.93.in-addr.arpa. -t2.gstatic.com. -a.root-servers.net. -www.adobe.com. -a8.sphotos.ak.fbcdn.net. -profile.ak.fbcdn.net. -118.242.143.187.in-addr.arpa. -_449_64_2. -12.206.83.67.in-addr.arpa. -www.google.com. -tts.se. -www.facebook.com. -s08.flagcounter.com. -www.winespectator.com. -27.181.157.186.in-addr.arpa. -twitter.com. -port.state.de.us.s7b1.psmtp.com. -web.buddytv.netdna-cdn.com. -www.tiffanyco.biz. -edge.quantserve.com. -ar-ar.facebook.com. -ads2.msads.net. -68.132.170.189.in-addr.arpa. -devisa.ru. -twitter.com. -www.google.com. -a.root-servers.net. -a.root-servers.net. -faiting.ru. -sniderinc.com.s5a2.psmtp.com. -i2.ytimg.com. -rblns68.mailshell.net. -dns.msftncsi.com. -35.53.92.186.in-addr.arpa. -prod2.rest-notify.msg.yahoo.com. -static.ak.fbcdn.net. -i3.ytimg.com. -embarqmill.com. -safebrowsing.clients.google.com. -whos.amung.us. -192.27.132.190.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -ssl.gstatic.com. -v13.nonxt3.c.youtube.com. -153.239.158.200.in-addr.arpa. -153.125.65.189.in-addr.arpa. -img822.imageshack.us. -ads.creafi-online-media.com. -www.facebook.com. -www.belkin.com. -mx.west.cox.net. -goodfilesloader.ru. -83.149.188.189.in-addr.arpa. -photos-a.ak.fbcdn.net. -7.150.173.201.in-addr.arpa. -aol.com. -mail.dovetailenterprises.co.uk. -54.167.46.189.in-addr.arpa. -api.zynga.com. -ns1.cheat.net.ru. -chccig.com. -i3.ytimg.com. -100.204.226.88.in-addr.arpa. -android.clients.google.com. -profile.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -75.79.141.201.in-addr.arpa. -209.253.199.187.in-addr.arpa. -g-pixel.invitemedia.com. -safebrowsing.clients.google.com. -mail.conio.net. -www.opendeco.es. -144.31.210.201.in-addr.arpa. -mail.leshak.perm.ru. -a.root-servers.net. -infanciayotrascosas.blogspot.com. -gs02.supremacy1914.com. -109.103.114.177.in-addr.arpa. -denis.stalker.h3q.com. -cydia.saurik.com. -dns.msftncsi.com. -49.222.171.189.in-addr.arpa. -cplog.flashget.com. -duck.ru. -rwillustrator.blogspot.com. -news.google.com.mx. -www.nudismlife.com. -www.miami-airport.com. -rad.msn.com. -creative.ak.fbcdn.net. -a1408.w43.akamai.net. -www.blackthickgirls.com. -googleads.g.doubleclick.net. -129.163.145.189.in-addr.arpa. -a1003.w41.akamai.net. -mailout.cop-inc.com. -profile.ak.fbcdn.net. -ebiparaguay.blogspot.com. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -mzmqh54k17exiwgxp22fuhuhyozntjrm69ky.com. -82.138.25.187.in-addr.arpa. -touch.facebook.com. -pigrush.reigndesign.com. -ieonlinews.microsoft.com. -www.youtube.com. -www.shbabelyom.com. -www.facebook.com. -uvg1zsa12.70pl. -8hlns7iy2.o89k3z6q. -127.16.244.189.in-addr.arpa. -219.155.161.189.in-addr.arpa. -dns.msftncsi.com. -c-0.19-a309f481.483.1518.19d3.3ea1.410.0.6tri6qwwfgscawewswfsjz2qk6.avqs.mcafee.com. -www.negotips.com. -celiac-disease.emedtv.com. -151.175.82.190.in-addr.arpa. -checkip.dyndns.org. -www.bywifi.com. -a5.sphotos.ak.fbcdn.net. -christineestima.wordpress.com. -stats.wordpress.com. -i4.ytimg.com. -www.twitter.com. -ws.tapjoyads.com. -65.156.109.118.in-addr.arpa. -fastonlineusers.com. -tds.traforet.ru. -dsn5.d.skype.net. -fourwinds.ru. -www.zonaoriente.com. -i1.ytimg.com. -140.209.225.189.in-addr.arpa. -www.facebook.com. -73.48.136.98.in-addr.arpa. -asrs.net. -monet.ru. -netmcr.com. -zelda.wikia.com. -pagead2.googlesyndication.com. -a7.sphotos.ak.fbcdn.net. -as.digiturk.com.tr. -meussshomenss.blogspot.com. -figlobal.112.2o7.net. -www.facebook.com. -mail.pirate-party.ru. -dl-desktop-apps.sonyericsson.com. -time.stdtime.gov.tw. -mx.megaproduct.com. -apps.facebook.com. -fbcdn-sphotos-a.akamaihd.net. -190.239.5.200.in-addr.arpa. -um12.eset.com. -danhba.bao-anh.com. -grovesconstruction.com. -ricoh.com. -10f.ru. -a3.sphotos.ak.fbcdn.net. -esohavuelto.blogspot.com. -181.145.67.76.in-addr.arpa. -time.apple.com. -16.169.156.201.in-addr.arpa. -228.218.101.189.in-addr.arpa. -creative.ak.fbcdn.net. -voteview.com. -98.49.168.189.in-addr.arpa. -110.91.53.186.in-addr.arpa. -a.root-servers.net. -145.86.181.190.in-addr.arpa. -apps.facebook.com. -oilandgasvacancy.com. -download342.avast.com. -hillsace.com. -outsors.com. -cocovishop.com. -news.yahoo.com. -hi-in.facebook.com. -cdn1.widdit.com. -53.249.223.201.in-addr.arpa. -photos-h.ak.fbcdn.net. -. -creative.ak.fbcdn.net. -billing.sharo4ka.ru. -www.blackberry.com. -www2.edi7.lu. -tc.v22.cache1.c.youtube.com. -business.shop.ebay.com. -nivelexperto.com. -119.203.177.190.in-addr.arpa. -www.google.com.mx. -www.girlfriends.bestnudethumbs.com. -proquestcombo.safaribooksonline.com. -vsimki.ru. -www.anime-channel.org. -g.ceipmsn.com. -edge.sharethis.com. -apps.facebook.com. -www.bodyrock.tv. -botones.blogalaxia.com. -libya11.com. -mk.cam4.com. -streetwisemaps.com. -static.ak.fbcdn.net. -www.facebook.com. -electronicaportable.blogspot.com. -addons.mozilla.org. -developer.sprint.com. -googleads.g.doubleclick.net. -lkcdn.com. -genius.itunes.apple.com. -a.root-servers.net. -scenicwolfresort.com. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -corp.39.net. -smtp2.aaanorthpenn.com. -fxfeeds.mozilla.com. -connect.facebook.net. -ad.adnetwork.net. -egyutt.hu. -uruguay.clasificadoya.com. -ad.yieldmanager.com. -v6.cache1.googlevideo.com. -a.root-servers.net. -profile.ak.fbcdn.net. -amega.com. -a.root-servers.net. -mtalk.google.com. -_108_06_0. -x04.o.ismtp.integra.net. -markevin.fan-sites.org. -linamar.ca. -accessatt.net. -pixel.facebook.com. -khmervn.com. -a.root-servers.net. -www.celsa.fr. -immortalseed.com. -photos-a.ak.fbcdn.net. -franke.com. -38.voncp.com. -gorod.dn.ua. -cuentosdeprincesas.blogia.com. -amandadecadenet.com. -www.arcanos.org. -reddit.com. -ajax.googleapis.com. -www.bogotaoccidente.com. -noik.ru. -pixel.facebook.com. -50.170.153.201.in-addr.arpa. -apis.google.com. -tgmedia.ru. -www.stc-law.com. -arts.hku.hk. -fbcdn-photos-a.akamaihd.net. -lemondrealty.com. -on.fb.me. -google.com. -166.120.3.121.in-addr.arpa. -smaart.com.au. -113.232.26.85.in-addr.arpa. -translate.google.com.mx. -external.ak.fbcdn.net. -es.scribd.com. -altfarm.mediaplex.com. -www.facebook.com. -secure.oldgoesyoung.com. -mail.timberlineenergy.com. -images2.cinemaki.com. -4o:gzrhbj.88ic. -awesmoe.files.wordpress.com. -b-0.19-a3090009.8011081.1518.19d3.3ea1.410.0.6j7lctstkz7wl87kq7wnadkpp6.avqs.mcafee.com. -dns.msftncsi.com. -alphashirt.com. -cdn.adventofdeception.com. -149.69.221.72.in-addr.arpa. -0-327.channel.facebook.com. -232.234.172.190.in-addr.arpa. -google.com. -214.205.106.187.in-addr.arpa. -client-software.real.com. -55.120.207.186.in-addr.arpa. -165.28.120.84.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.danaestratou.gr. -hiltontrinidad.com. -www.decorshome.net. -mail.google.com. -a.root-servers.net. -www.facebook.com. -www.irnike.com. -itunes.com. -www.feartofaithclothing.com. -ad.yieldmanager.com. -mail.dynamac-usa.com. -www.whathealth.com. -i2.ytimg.com. -www.salahtoons.net. -u31.eset.com. -time.chttl.com.tw. -smtp.prestigehotels.com. -262.com. -110.43.3.173.in-addr.arpa. -128.253.212.67.in-addr.arpa. -www.ceain.acoge.org. -24.228.171.69.in-addr.arpa. -tappeconstruction.com. -pc-drivers.fr. -googlemail.l.google.com. -ds.addthis.com. -www.mundonick.com. -pixel.facebook.com. -horsethatleaps.com. -met.adwhirl.com. -113.32.25.201.in-addr.arpa. -a.root-servers.net. -www.fanreviews.com. -a.root-servers.net. -114.152.159.189.in-addr.arpa. -a0.twimg.com. -www.tidanhotels.com. -www.mirrordev.com. -static.ak.fbcdn.net. -ih2.gamecopyworld.com. -keridita11-11.blogdiario.com. -blogs.miarroba.es. -dns.msftncsi.com. -uchypbz57.57mo. -www.internetdownloadmanager.com. -152.193.33.177.in-addr.arpa. -beauty.interremi.com. -243.89.158.189.in-addr.arpa. -nccp-wii.cloud.netflix.net. -googleads.g.doubleclick.net. -huhu.com. -_525_54_6. -rv.ginyas.com. -105.206.77.200.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.turkcraft.com. -a4.mzstatic.com. -a.root-servers.net. -photos-c.ak.fbcdn.net. -cymynebgzyr.info. -211.115.64.123.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -hog.assets1.zgncdn.com. -www.adobe.com. -www.chinavista.com. -zeus.saarproperties.com. -s0.2mdn.net. -en-us.fxfeeds.mozilla.com. -cityvillefb1.static.zgncdn.com. -34.42.61.186.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -feeds.feedburner.com. -gate.atk-media.ru. -groups.google.com.mx. -214.39.15.187.in-addr.arpa. -orcart.facebook.com. -translate.google.com.mx. -129.13.151.79.in-addr.arpa. -www.imdb.com. -thumbs2.ebaystatic.com. -motherboards.mbarron.net. -www.facebook.com. -i3.ytimg.com. -7i3cveei3.58di. -15-courier.push.apple.com. -www.burialinsurance.com. -a1.sphotos.ak.fbcdn.net. -tms30.icrc.trendmicro.com. -www.cocina.org. -fbcdn-photos-a.akamaihd.net. -nus.cdn.c.shop.nintendowifi.net. -www.strangemag.com. -secure-sg.imrworldwide.com. -maps.google.com. -adx.allstar.cz. -translation.toolbar.conduit-services.com. -www.mozilla.com. -106.48.51.188.in-addr.arpa. -mail.desupernet.com. -0-staging.channel.facebook.com. -checkip.dyndns.org. -a.root-servers.net. -pad2.whstatic.com. -130.2.45.70.in-addr.arpa. -28.212.139.190.in-addr.arpa. -89.114.131.81.in-addr.arpa. -sefram.testoon.com. -a.root-servers.net. -developers.facebook.com. -105.185.73.190.in-addr.arpa. -plus.google.com. -189.188.217.87.in-addr.arpa. -docs.google.com. -tags.expo9.exponential.com. -cdn.api.twitter.com. -_080_37_3. -a771.da1.akamai.net. -static.ak.fbcdn.net. -mail1.cruzdelsur.com. -newtex.ru. -elhadaqueteje.blogspot.com. -corian.es. -22.144.67.76.in-addr.arpa. -safebrowsing.clients.google.com. -a.root-servers.net. -b.googlemail.l.google.com. -www.designworldonline.com. -235.215.196.74.in-addr.arpa. -52.239.51.190.in-addr.arpa. -email.americanexpress.com. -googleapis.l.google.com. -210.197.120.59.in-addr.arpa. -225.29.17.190.in-addr.arpa. -www.google.com.mx. -ar-ar.facebook.com. -www.gorillas.org. -safebrowsing-cache.google.com. -www.nuigalway.ie. -224.60.124.95.in-addr.arpa. -crisfusterber.blogspot.com. -231.151.183.189.in-addr.arpa. -a.root-servers.net. -hotmail.com. -b-womeninamericanhistory17.blogspot.com. -mediaws.ign.com. -a.root-servers.net. -www.moevenpick-hotels.com. -smtp.sportsmanswarehouse.com. -cn1.redswoosh.akadns.net. -mail.kuban.su. -_479_43_2. -a7.sphotos.ak.fbcdn.net. -partner.googleadservices.com. -121.184.99.190.in-addr.arpa. -ksn1-12-part1.kaspersky-labs.com. -www.chinaoffshore.net. -v12.nonxt7.c.youtube.com. -dns.msftncsi.com. -email.sigmadesign.net. -a1.twimg.com. -ntfpm.cn. -. -a.root-servers.net. -js.revsci.net. -labteh.ru. -www.4h4.com. -olhandoaooeste.blogspot.com. -yb45.yearbookreunions.com. -a6.sphotos.ak.fbcdn.net. -3cp9lcoq32dpn-c.c.yom.mail.yahoo.com. -158.164.82.201.in-addr.arpa. -198.212.89.186.in-addr.arpa. -www.warnermusic.com.mx. -check.sanasecurity.com. -support.google.com. -eznam.cz. -www.chinnahom.com. -www.lebonangle.com. -static.ak.fbcdn.net. -251.69.136.186.in-addr.arpa. -edge.quantserve.com. -ksn2-12.kaspersky-labs.com. -81.30.26.151.in-addr.arpa. -purposemagazine.com. -static-cdn2.ustream.tv. -olcuk.com. -twitter.com. -crazycollecting.wordpress.com. -r.mzstatic.com. -162.167.235.190.in-addr.arpa. -www.nissinfoods.co.jp. -cbbonline.com.s8b2.psmtp.com. -243.220.156.189.in-addr.arpa. -dns.msftncsi.com. -a.root-servers.net. -caslonsoft.com. -platform.twitter.com. -136.74.120.95.in-addr.arpa. -js2.wlxrs.com. -tinypic.com. -sp.cwfservice.net. -nygrants.com.inbound15.mxlogic.net. -. -kcapex.com.s8b1.psmtp.com. -inbound.toiletwater.net.netsolmail.net. -mail1.lowes.com. -profile.ak.fbcdn.net. -106.11.18.190.in-addr.arpa. -static.ak.fbcdn.net. -www.facebook.com. -mob.adwhirl.com. -200.253.42.181.in-addr.arpa. -teredo.ipv6.microsoft.com. -www.connect.facebook.com. -www.apple.com. -sigmatestudio.com. -a8.sphotos.ak.fbcdn.net. -cteainc.com. -profile.ak.fbcdn.net. -bjc.bash.ru. -yahoo.com. -nextenergycorp.com. -avtobog.com. -content.yieldmanager.edgesuite.net. -beerbloggers.ning.com. -sbcglobal.net. -www.julio.com. -www.facebook.com. -school.edu.ru. -avtia.com. -23.52.167.75.in-addr.arpa. -tecnologia.starmedia.com. -91.12.247.190.in-addr.arpa. -sibur.nnov.ru. -jaxsuns02.jaxsuns.com. -e566.b.akamaiedge.net. -photos-g.ak.fbcdn.net. -delishworld.com. -fbcdn-sphotos-a.akamaihd.net. -www.buysearcher.com. -a1415.phobos.apple.com. -thumbs.4chan.org. -code.jquery.com. -9.174.224.77.in-addr.arpa. -a.root-servers.net. -facebook.conduitapps.com. -webcache.googleusercontent.com. -camaraymicrofonos.blogspot.com. -csi.gstatic.com. -224.129.190.70.in-addr.arpa. -connect.facebook.net. -teredo.ipv6.microsoft.com. -pcbut.com.tw. -plusone.google.com. -62.110.218.83.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -gol.com. -234147.r.msn.com. -tunnel.cfw.trustedsource.org. -player.vimeo.com. -mmx.fangtech.net. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -mx.ingenuitypro.com. -api.facebook.com. -t3.gstatic.com. -77.111.248.88.in-addr.arpa. -204.211.50.190.in-addr.arpa. -magumbo-anime.blogspot.com. -www.toxicfreenc.org. -zrgzmjx8f.c42w9e1w. -remote.legendsinconcert.com. -www.google.com. -wlyjhjjcttw.cc.company.com. -toolbarqueries.google.com. -cdn.api.twitter.com. -news.bbc.co.uk. -d2104037.xoom.it. -photos-b.ak.fbcdn.net. -187.24.171.201.in-addr.arpa. -ilam.irna.ir. -d.proadsdirect.com. -mail.kungfudesign.com. -a4.da1.akamai.net. -smtp.rainbowsplash.com. -a.root-servers.net. -gleaf.net. -koranmp3.ru. -www.movieactors.com. -www.oilman.com.au. -ib.adnxs.com. -vu.sel.sony.com. -ffupdate.engine.conduit-services.com. -she.yahoo.com. -www.facebook.com. -iczdwp5o8.b19y7y4c. -usa.nedstatpro.net. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -65.225.220.190.in-addr.arpa. -32.144.135.105.in-addr.arpa. -t.co. -rs178l32.rapidshare.com. -s.ytimg.com. -bikningallygr.nu. -autos.latino.msn.com. -hr-consult.ru. -2iazzg3ne.z50f7l3i. -www.gedonet.com. -voyeur4you.com.hypestat.com. -legalcity.es. -photos-e.ak.fbcdn.net. -aln.su. -171.180.27.116.in-addr.arpa. -sitnstitch.com. -www.didtheyreadit.com. -exclusive-restaurants.com. -plus.google.com. -a2.sphotos.ak.fbcdn.net. -215.160.86.186.in-addr.arpa. -magentmng.alipay.com. -www.xvideos.com. -johnnydeppargentina.350.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -27.228.115.186.in-addr.arpa. -186.95.159.82.in-addr.arpa. -s.youtube.com. -_470_90_6. -yahoo.de. -_554_01_5. -a.root-servers.net. -94.36.86.85.in-addr.arpa. -a.root-servers.net. -saul.nueve.com.mx. -perfectboundstudio.blogspot.com. -stroyholding.ru. -ocsp.verisign.com. -gdata.youtube.com. -2.205.218.76.in-addr.arpa. -4.162.132.187.in-addr.arpa. -10.46.172.186.in-addr.arpa. -mayfairmills.com. -photos-c.ak.fbcdn.net. -evt.collarity.com. -120.234.171.189.in-addr.arpa. -forofashion.com. -0-68.channel.facebook.com. -touch.facebook.com. -215.157.15.189.in-addr.arpa. -absolutetitleagency.com. -a.root-servers.net. -. -dns.msftncsi.com. -mail.delfinoinsulation.com. -40.142.171.78.in-addr.arpa. -delivery.simplytechnology.net. -a2.sphotos.ak.fbcdn.net. -www.latimes.com. -0-if-w.channel.facebook.com. -prutopical.com. -4.50.194.190.in-addr.arpa. -www.foxsportsla.com. -tumblrplug.com. -comicmexicano.blogspot.com. -external.ak.fbcdn.net. -235.151.29.64.in-addr.arpa. -dns.msftncsi.com. -0-167.channel.facebook.com. -mishay.blogspot.com. -rmcsda.org.s10a2.psmtp.com. -348.ch.meebo.com. -dr._dns-sd._udp.lan. -smtp.rsnlt.com. -nljyhq5lv.18cr. -214.36.149.17.in-addr.arpa. -www.protege323.com. -www.qstraint.com. -i12.photobucket.com. -api.aizheke.com. -demosite.ondemand.flumotion.com. -d2056450.instant.xoom.it. -www.socialgrowthtechnologies.com. -a.root-servers.net. -www.buenscoring.com. -www.apex.com.om. -js.revsci.net. -external.ak.fbcdn.net. -pagead2.googlesyndication.com. -www.youtube.com. -150.216.13.201.in-addr.arpa. -c7.zedo.com. -glyde.com. -accounts.google.com. -shfpc.com. -www.enjoysudoku.com. -eldorado.ru. -www.lacaja.com.ar. -_384_70_5. -a.root-servers.net. -widgets.5z5.com. -mail.moellergroup.com. -www.facebook.com. -a1.sphotos.ak.fbcdn.net. -switchboard.real.com. -info.automotix.net. -photos-c.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -242.71.166.190.in-addr.arpa. -3cp9lcoq32dpn-c.c.yom.mail.yahoo.com. -www.hyperpromote.com. -google.com. -its-outrageous.com. -89.82.175.200.in-addr.arpa. -i-7917323e.us-west-1a.service.amazonsilk.com. -sanantoniodeltachira.olx.com.ve. -timeline.leagueoflegends.com. -www.precisioncounter.com. -www.sanvalentinsebaila.es. -nacion.docpit.com. -sgp.gascom.ru.lan. -support.google.com. -www.htx.ro. -hubbell-premise.com.s7b2.psmtp.com. -dallas-land.com. -www.photoscape.org. -www.knucklebonz.com. -content.yieldmanager.edgesuite.net. -developers.facebook.com. -38.22.18.190.in-addr.arpa. -m.youtube.com. -www.blogsandocs.com. -orellana.mundoanuncio.ec. -xbc9r8jli.56cz. -history.cultural-china.com. -s.imwx.com. -www.ampalucienbriet.blogspot.com. -www.topappsquare.com. -josemartinezbolio.blogspot.com. -a4.sphotos.ak.fbcdn.net. -www.google.com. -113.178.174.190.in-addr.arpa. -gfx1.hotmail.com. -175.165.176.190.in-addr.arpa. -www.culturaclick.com. -foros.toxico-pc.com. -acquirelawer.org. -133.253.56.190.in-addr.arpa. -s4.mcstatic.com. -27.150.8.200.in-addr.arpa. -13-courier.push.apple.com. -loading1.widdit.com. -actaware.it. -stilettostyle.com. -wiki.pentaho.com. -_ldap._tcp. -de-de.facebook.com. -clients2.google.com. -stats.panet.co.il. -25.4.168.192.in-addr.arpa. -wrowsezns.52au. -a896.phobos.apple.com.edgesuite.net. -www.cheaphandbagsuk.co.uk. -a8.sphotos.ak.fbcdn.net. -rblns81.mailshell.net. -157.60.137.92.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -hes.ucfsd.org. -jandex.ru. -keshmuney.com. -jacqueslowe.com. -169.245.88.200.in-addr.arpa. -static.ak.connect.facebook.com. -lipstitsteethhips.blogspot.com. -pentax-k100d.info. -194.46.253.218.in-addr.arpa. -mx.msn.recepedia.com. -www.laceylady.com. -www.youtube.com. -www.cinepolis.com. -5.43.14.88.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -149.205.131.24.in-addr.arpa. -sputnikmaps.mail.ru. -sc17.rules.mailshell.net. -6.745565e-02.com. -220.78.211.108.in-addr.arpa. -decipher.me.uk. -j003.palmws.com. -www.proc.britac.ac.uk. -don.com.s9a2.psmtp.com. -mx.coldwellbankerthomas.com. -www.tyler.com.mx. -integral.com.au. -hairloss.ygoy.com. -33.144.22.186.in-addr.arpa. -rtl.feedsportal.com. -a3.sphotos.ak.fbcdn.net. -m.facebook.com. -developers.facebook.com. -col.stb00.s-msn.com. -greedykidz.net. -a8.sphotos.ak.fbcdn.net. -www.shoptoys.ru. -cdn.api.twitter.com. -fc09.deviantart.net. -towncountryrealty.net. -ns2.tktor.ru. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -bajaryoutube.com. -a.root-servers.net. -www.domedeep.com. -23-courier.push.apple.com. -images02.olx-st.com. -a1005.w42.akamai.net. -a.root-servers.net. -sslmit.unibo.it. -k.ilius.net. -196.50.122.84.in-addr.arpa. -conduit.anybodyoutthere.com. -partner.googleadservices.com. -www.okcupid.com. -ibogroups.com. -www.google.com. -blgspb.ru. -cleanrun.com. -giancarloescalante.blogspot.com. -a8.sphotos.ak.fbcdn.net. -player.vimeo.com. -www.meinprospekt.de. -a4.sphotos.ak.fbcdn.net. -csc3-2010-crl.verisign.com. -upload.facebook.com. -70.28.138.24.in-addr.arpa. -150.151.51.188.in-addr.arpa. -www.subdivx.com. -a4.sphotos.ak.fbcdn.net. -img.hellocotton.com. -um18.eset.com. -www.google.com. -searchjs.s3.amazonaws.com. -webres4.pand.ctmail.com. -245.117.169.189.in-addr.arpa. -www.265jkw.net. -ibxaxl-cash.net. -fira.ru. -adcofnorton.com.inbound15.mxlogic.net. -secure.adnxs.com. -a.root-servers.net. -promostation.ru. -203.185.15.118.in-addr.arpa. -img3.theboyspics.com. -www.tu-farmacia.com. -g.msn.com. -salud.nih.gov. -go.microsoft.com. -28.67.75.65.in-addr.arpa. -track.sextorrent.to. -uikusuvpj.info. -bs.serving-sys.com. -a2.sphotos.ak.fbcdn.net. -mscrl.microsoft.com. -www.toybangers.net. -dns.msftncsi.com. -api-read.facebook.com. -a.root-servers.net. -www.facebook.com. -48.108.132.94.in-addr.arpa. -buc.k12.va.us. -76.223.238.99.in-addr.arpa. -189.5.188.207.in-addr.arpa. -external.ak.fbcdn.net. -www-fc-opensocial.googleusercontent.com. -:lugv26hs.e86h1r2q. -www.viagemdossentidos.com. -ads.vs.com. -drewfriedman.blogspot.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -grupogaleria.com. -statistic-collector.gad.de. -api.twitter.com. -www.gentlemensclubpodcast.com. -t-online.de. -a.root-servers.net. -a.root-servers.net. -external.ak.fbcdn.net. -fdafda.com. -time.windows.com. -ballroomradio.com. -i1.ytimg.com. -external.ak.fbcdn.net. -safebrowsing-cache.google.com. -pfo.su. -plus.google.com. -90.121.55.65.in-addr.arpa. -75.64.225.190.in-addr.arpa. -time.windows.com. -www.medicalsupplydepot.com. -a.root-servers.net. -234.168.78.190.in-addr.arpa. -www.prmoment.com. -www.musicload.ch. -www.google.com. -equinejournal.com. -static.ak.fbcdn.net. -pixel.facebook.com. -a.root-servers.net. -a4.sphotos.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -www.google.com. -capricorp.com. -_978_09_7. -time.chttl.com.tw. -pubads.g.doubleclick.net. -cache-simg1.pressdisplay.com. -55.192.207.190.in-addr.arpa. -204.113.76.190.in-addr.arpa. -photos-d.ak.fbcdn.net. -www.youtube.com. -www.lpf.com. -thehollywoodnews.com. -210.9.69.190.in-addr.arpa. -www.allcasinoslots.com. -dat.ru. -www.themeblvd.com. -141.178.59.74.in-addr.arpa. -6c461c1f.filesonthe.net. -244.154.56.187.in-addr.arpa. -static.app.widdit.com. -www.vindiesel.com. -12.0.168.192.in-addr.arpa. -grasche.com.mx3.net10.rcimx.net. -acm.master-code.ru. -rss.marca.com. -static.ak.fbcdn.net. -admeld.adnxs.com. -a7.sphotos.ak.fbcdn.net. -local-bay.contacts.msn.com. -scholar.google.com. -9.157.134.186.in-addr.arpa. -133.129.203.69.in-addr.arpa. -a.root-servers.net. -o-o.preferred.ams03g05.v22.lscache5.c.youtube.com. -www.google.com. -borntotry.polyvore.com. -buenosairesrunway.blogspot.com. -mail.live.com. -hoiantrailsresort.com.vn. -ampliatumente.com. -searchjs.s3.amazonaws.com. -mibollywoodmania.blogspot.com. -profile.ak.fbcdn.net. -metrics.caracoltv.com. -i1.ytimg.com. -mail.google.com. -tracker.openbittorrent.com. -www.globo.com. -funniest-commercials.net. -6.3.d.8.7.2.b.4.a.3.9.2.8.0.8.1.6.7.e.9.7.3.1.4.0.0.0.0.1.0.0.2.ip6.arpa. -analytic.spamfighter.com. -srob.com. -www.circuittube.com. -secure.skypeassets.com. -yahoo.co.in. -a.root-servers.net. -sac.gti.mcafee.com. -a6.sphotos.ak.fbcdn.net. -static-images.veevr.com. -. -146.213.177.190.in-addr.arpa. -www.iwantbanners.com. -developers.facebook.com. -e4805.b.akamaiedge.net. -_863_35_6. -support.live.com. -part710.ru. -time.windows.com. -sp.cwfservice.net. -hotmail.com. -a639.da1.akamai.net. -developers.facebook.com. -static.ak.fbcdn.net. -ds.addthis.com. -a.root-servers.net. -forums.motivemag.com. -photos-b.ak.fbcdn.net. -checkip.dyndns.org. -photos-g.ak.fbcdn.net. -bin.images.tuenti.net. -tfw-current.s3.amazonaws.com. -so-many-roads-boots.blogspot.com. -billing.sharo4ka.ru. -36ohk6dgmcd1n-c.c.yom.mail.yahoo.net. -updatekeepalive.mcafee.com. -a5.sphotos.ak.fbcdn.net. -www.wsf.la. -imageb.epocrates.com. -a6.sphotos.ak.fbcdn.net. -go.epson.com. -rorwqgflplllupx.info. -profile.ak.fbcdn.net. -133.81.48.208.in-addr.arpa. -profile.ak.fbcdn.net. -a.root-servers.net. -download332.avast.com. -www.differencebetween.co.in. -elmicrobiologo.com. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -a5.da1.akamai.net. -mobile.kobobooks.com. -_635_45_9. -josephsgolfshop.com. -twitter.com. -www.mulasoft.com. -s-static.ak.facebook.com. -bgoa.coxmail.com. -silkshop.ru. -checkip.dyndns.com. -deccats.com. -69.200.162.189.in-addr.arpa. -www.elcorreo.com. -mail4.red-tube.com. -wpmlegal.com. -a.root-servers.net. -couponbuddy.s3.amazonaws.com. -www.facebook.com. -49.165.174.190.in-addr.arpa. -175.217.26.125.in-addr.arpa. -ligsay.com.mail9.psmtp.com. -my.yahoo.com. -a17sa.com. -www.themarryblogger.com. -wlp.carlead.com. -photos-h.ak.fbcdn.net. -local.msn.com. -photos.e46fanatics.com. -86.170.53.60.in-addr.arpa. -teredo.ipv6.microsoft.com. -a.root-servers.net. -yl9y5g7k4.i27r3n4w. -itbe.com. -www.iyifilmizle.org. -www.google.com. -photos-h.ak.fbcdn.net. -www.smuckers.com.mx. -157.239.98.190.in-addr.arpa. -adsfront.iminent.com. -a5.sphotos.ak.fbcdn.net. -dl_dir3.qq.com. -search-mx.mlstatic.com. -www.tmk.com. -inbound.atiwave.com.netsolmail.net. -www.adsphinx.com. -artswork.org.uk. -google.com. -comienzoatejer.blogspot.com. -brensoncorp.com. -qualink.com. -www.google.com.mx. -234.247.92.186.in-addr.arpa. -www.facebook.com. -ip-link.ru. -sites.google.com. -www.mena.co.nz. -cox.net. -www.cunda.at. -a5.sphotos.ak.fbcdn.net. -allfreeiphones.net. -_601_17_8. -a.root-servers.net. -88.34.225.190.in-addr.arpa. -photos-g.ak.fbcdn.net. -ad.yieldmanager.com. -www.wowstars.com. -billing.sharo4ka.ru. -casaycampo.es. -104.142.106.186.in-addr.arpa. -102.226.251.122.in-addr.arpa. -www.youtube.com. -time.chttl.com.tw. -mail.classicjourneys.com. -www.cafepress.com. -image2.pubmatic.com. -pandasux.com. -www.google-analytics.com. -www.deine-mutter.de. -a.root-servers.net. -a.root-servers.net. -ad.yieldmanager.com. -www.google.com. -colombiavallenato.wordpress.com. -keuk.elektra.ru. -static.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -cdn-7.pics.t8premium.com. -sweetlorraine.com. -186.229.129.98.in-addr.arpa. -202.58.70.200.in-addr.arpa. -_220_45_0. -a.root-servers.net. -spitfire.com.au. -20.224.171.69.in-addr.arpa. -l.longtailvideo.com. -www.adobe.com. -mx.sonet.ru. -www.successhappinessformula.com. -25.210.174.189.in-addr.arpa. -photos-c.ak.fbcdn.net. -bellsout.h.net. -i2.ytimg.com. -161.241.120.186.in-addr.arpa. -pp2.inet.fi. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -a1737.g.akamai.net. -professional.avira-update.com. -137.192.68.89.in-addr.arpa. -googleads.g.doubleclick.net. -www.derechoalverde.com. -katzforums.com. -hoatmil.com. -google.com. -. -. -www.cortexpower.de. -mail.webengr.com. -67.57.100.84.in-addr.arpa. -fortresstrophyroom.blogspot.com. -groups.google.com.mx. -wer.microsoft.com. -www.mysearsrebate.com. -111.84.100.177.in-addr.arpa. -mail2fantasy.com. -www.rechargefree.weebly.com. -www.facebook.com. -archive.popurls.com. -posta72a.mailbeta.libero.it. -www.christopherpoole.tv. -megaman.wikia.com. -www.antoniotsai.com. -p04-keyvalueservice.icloud.com. -track.reinvigorate.net. -179.17.77.190.in-addr.arpa. -aadel.iranhrdc.org. -pt-br.facebook.com. -profile.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -48.94.172.95.in-addr.arpa. -19.85.101.187.in-addr.arpa. -yfrog.com. -msn.com. -m-smanufacturing.com. -i2.ytimg.com. -www.saaid.net. -irc.purchaseservice.com. -corporate.miniclip.com. -allwrongallright.files.wordpress.com. -ocelott.tumblr.com. -external.ak.fbcdn.net. -dsn15.d.skype.net. -911law.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -dfsfin.com. -dnl-00.geo.kaspersky.com. -pixel.facebook.com. -a.root-servers.net. -img19.exs.cx. -sadhugroup.com. -youtu.be. -a.root-servers.net. -external.ak.fbcdn.net. -zhanet.com. -crl.microsoft.com. -profile.ak.fbcdn.net. -kvoxgvihcv.com. -mail3.soam.com. -c4pi.de. -oads.com.s5b1.psmtp.com. -www.ortamtr.net. -www.oakridgeproductions.ca. -197.238.100.94.in-addr.arpa. -live-for-speed.softonic.com. -jsonline.com.s8a2.psmtp.com. -smtp.wcbicecream.com. -api.twitter.com. -226.251.117.79.in-addr.arpa. -sanpablo.com.pe. -mikryptorincon.com. -106.133.82.200.in-addr.arpa. -gasa.hit.gemius.pl. -topper.rmcc.cc.ar.us. -apple.com. -chromejs.s3.amazonaws.com. -core.mochibot.com. -divx-films.ru. -prazdnik77.ru. -www.alexcdn.info. -a1.bing4.com. -pagead2.googlesyndication.com. -mx2.hotmail.com. -profile.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -66.9.22.186.in-addr.arpa. -saudireadymix.com.sa. -www.facebook.com. -pbid.iforex.com. -sreenevasan.com. -www.tataclub.com.ar. -us.img.e-planning.net. -196.19.164.189.in-addr.arpa. -thecleanlife.hubpages.com. -mailx2.alsolnet.com. -stream3.mxcdn.com. -22.149.220.66.in-addr.arpa. -_232_67_1. -253.147.198.187.in-addr.arpa. -i1.makcdn.com. -89.103.133.41.in-addr.arpa. -www.google-analytics.com. -mail.finklealaw.com. -249.247.110.186.in-addr.arpa. -ahmsi3.com.s7a2.psmtp.com. -mtyfcpvyu.cc.private. -welcometohosana.com. -32.241.149.186.in-addr.arpa. -tamsconj.com. -47.14.17.95.in-addr.arpa. -www.designisfels.net. -mail.all4inc.com. -a2.sphotos.ak.fbcdn.net. -78.19.185.124.in-addr.arpa. -dns.msftncsi.com. -www.mall506.com. -a3.sphotos.ak.fbcdn.net. -b48fscxe11e11cuoyfrd30dsa67bqf62ptcwcv.net. -99.244.205.190.in-addr.arpa. -postd.cn. -www.google.com.mx. -traderjoestravel.com. -131.164.215.89.in-addr.arpa. -tools.google.com. -239.97.120.95.in-addr.arpa. -www.domcentral.org. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -www.imahero.com. -twitter.com. -address.yahoo.com. -img181.imagevenue.com. -ad.doubleclick.net. -tags.crwdcntrl.net. -cssdeck.com. -www.fromzerotoseo.com. -ugliesttattoos.wordpress.com. -n19.8-d.com. -226.40.191.190.in-addr.arpa. -104.165.40.114.in-addr.arpa. -alltel.net. -s0.2mdn.net. -ad.metanetwork.com. -expandondemand.net. -77.163.138.201.in-addr.arpa. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -www.podiatry-arena.com. -dsdtraffic.com. -translation1.paralink.com. -i4.ytimg.com. -xhkbkxm:5.65gz. -health-beauty-tips.org. -194.209.30.200.in-addr.arpa. -116.85.50.190.in-addr.arpa. -45.64.195.83.in-addr.arpa. -player.vimeo.com. -t2.gstatic.com. -dns.msftncsi.com. -242.15.120.174.in-addr.arpa. -malah.biz. -a.root-servers.net. -images.paraorkut.com. -142.164.232.99.in-addr.arpa. -ocsp.verisign.com. -lh5.googleusercontent.com. -stats.wordpress.com. -vialibrepl.com. -i3.ytimg.com. -grupobbva.net. -www.latest-tattoo-designs.com. -loading3.widdit.com. -130.109.50.190.in-addr.arpa. -www.google.com. -a3.sphotos.ak.fbcdn.net. -k:hq:wtqh.r10q2s9n. -irc.purchaseservice.com. -s-static.ak.fbcdn.net. -mail.glhsco.com. -t.co. -photos-f.ak.fbcdn.net. -adserver.adtech.de. -80.115.151.184.in-addr.arpa. -zapy9d5oe.45di. -cache-default04g.cdn.yandex.net. -220.126.178.186.in-addr.arpa. -www.wing-zero.net. -hbf.cloud.avg.com. -cs506402.vk.com. -153.252.78.186.in-addr.arpa. -215.140.39.99.in-addr.arpa. -www.onlinesayac.com. -justcookit.blogspot.com. -www.clavier-arab.org. -a7.sphotos.ak.fbcdn.net. -telepizzaes.solution.weborama.fr. -images.google.com. -iadsdk.apple.com. -tolu.na. -i073.radikal.ru. -developers.facebook.com. -www.odditieszone.com. -a.root-servers.net. -ad.yieldmanager.com. -masdeluna.com. -167.35.76.91.in-addr.arpa. -www.123news.org. -zillo.de. -ksn7-12.kaspersky-labs.com. -a.root-servers.net. -chepireastlibr.cn. -151.189.128.189.in-addr.arpa. -leased-lines-204-235.tricom.net. -support.google.com. -www.migoa.com. -crl.microsoft.com. -pixel.facebook.com. -48.13.93.186.in-addr.arpa. -carroll.k12.ia.us. -www.customsolutions.es. -profile.ak.fbcdn.net. -mail.slesnick.com. -iphone-wu.apple.com. -photos-b.ak.fbcdn.net. -dns.msftncsi.com. -tradal.net. -player.vimeo.com. -goo.gl. -platform.ak.fbcdn.net. -faq.immobilienscout24.de. -translate.google.com. -safebrowsing.clients.google.com. -clock.fmt.he.net. -www.manginasal.com. -rihanna.wikia.com. -144.63.178.187.in-addr.arpa. -historymaker.com. -60.55.48.27.in-addr.arpa. -e1374.c.akamaiedge.net. -a.root-servers.net. -www.fmnh.helsinki.fi. -disney.go.com. -coldcomfort.com.s7a2.psmtp.com. -a.root-servers.net. -img2.blogblog.com. -a.root-servers.net. -ksn-kddi.kaspersky-labs.com. -www.cherryconnect.com. -s.youtube.com. -vkusnoteevo.ru. -www.facebook.com. -dlvr.it. -www.dancetrippin.tv. -a.root-servers.net. -yourfuture.ab.ca. -docs.google.com. -video.od.visiblemeasures.com. -pt.cam4.com. -www.google.com. -www.hdtmedia.com. -mail.tjohns.net. -www.seejapan.co.uk. -lb._dns-sd._udp.lan. -a1.sphotos.ak.fbcdn.net. -fo7b7kids.83bo. -mailhost.groupe-sesar.com. -api.twitter.com. -photos-h.ak.fbcdn.net. -floridafemme.net. -disney.go.com. -btfans.3322.org. -a2.sphotos.ak.fbcdn.net. -www.uniquecarsandparts.com.au. -redberry.com. -bioware.com.s7b1.psmtp.com. -96.157.97.83.in-addr.arpa. -awards.aol-soft.com. -47.134.242.96.in-addr.arpa. -www.facebook.com. -fxfeeds.mozilla.com. -f4.r.56.com. -www.google.com. -aps.ru. -www.afiyetle.com. -msc.wlxrs.com. -urs.microsoft.com. -234.99.17.88.in-addr.arpa. -www.semarmenia.gov.co. -cdn1.image.keezmovies.phncdn.com. -sc6.rules.mailshell.net. -ocsp.digicert.com. -94.musclemeal.pay.clickbank.net. -www.raf.mod.uk. -empleo.trovit.com.mx. -consoltech.com. -coohuxnlpdtqmynypssqfhals.jp. -katherineisawesome.files.wordpress.com. -www.footylounge.org. -external.ak.fbcdn.net. -www.youtube.com. -skylinealabama.com. -www.velaro.com. -173.153.223.87.in-addr.arpa. -tvtomsk.ru. -137.204.93.186.in-addr.arpa. -twitter.com. -mail.agilityphysicaltherapy.com. -194.142.72.91.in-addr.arpa. -236.113.113.186.in-addr.arpa. -cf.addthis.com. -e905.b.akamaiedge.net. -google.com. -photos-f.ak.fbcdn.net. -ic.tynt.com. -www.facebook.com. -i3.ytimg.com. -www.perfectlyengraved.co.uk. -checkip.dyndns.org. -photos-b.ak.fbcdn.net. -www.sexenon.com. -mail.winnercom.ru. -banner.paypopup.com. -a.root-servers.net. -w291.photobucket.com. -iirc.niu.edu. -www.floorballmagazin.de. -creative.ak.fbcdn.net. -t2.gstatic.com. -igor.facemoods.com. -banners.iminent.com. -www.avionics-event.com. -platform.twitter.com. -www.google.com. -de-de.facebook.com. -a1.sphotos.ak.fbcdn.net. -epsilon-group.com. -www.youtube.com. -www.xvideos.com. -mac4rteso.wordpress.com. -www.fanlore.org. -_458_87_9. -www.cheapcues.com. -dpdn.sandai.net. -es.wikipedia.org. -translate.google.com.mx. -img2.mlstatic.com. -a6.phobos.apple.com. -ad-power.ru. -sc2.rules.mailshell.net. -www.theagencyonline.co.uk. -116.103.19.190.in-addr.arpa. -panda-antivirus.softonic.com. -www.hoycocino.com.ar. -amer.rel.msn.com. -i.ebayimg.com. -www.reventandoculos.com. -www.google.com. -dagoatrapist.com. -www.facebook.com. -www.hillandknowlton.com. -pacwriter.softonic.com. -static3.wonderwall.com. -www.eleccionesandalucia.es. -210.164.255.201.in-addr.arpa. -www.autocosmos.com.mx. -www.halohairextensions.com. -dcmovies.wikia.com. -image2.pubmatic.com. -photos-e.ak.fbcdn.net. -subine.net. -shinko-spl.com.sg. -240.42.190.190.in-addr.arpa. -www.eset.com.ph. -google.com. -amer.rel.msn.com. -_857_75_1. -a.root-servers.net. -angel-a.ru. -profile.ak.fbcdn.net. -mail.befa.net. -fcs91-1.streamate.com. -www.educatico.ed.cr. -mashable.com. -box.ijneb.com. -ads.smowtion.com. -www.skk-banjaluckapivara.com. -a1404.w41.akamai.net. -tophost.it. -www.ourproperty.co.uk. -100.50.31.190.in-addr.arpa. -downloader.versalsoft.com. -www.aapkikismat.com. -hpmedcenter.com.s8b1.psmtp.com. -clasesdejoyeria.blogspot.com. -72.87.232.190.in-addr.arpa. -d15gt9gwxw5wu0.cloudfront.net. -not-mail.uniwin.ru. -messenger.hotmail.com. -static.apotheken-umschau.de. -db._dns-sd._udp.lan. -kbvm:p74y.55lb. -negro0045.com. -dnl-01.geo.kaspersky.com. -books.google.es. -static.ak.fbcdn.net. -time.windows.com. -parentingsquad.com. -safebrowsing-cache.google.com. -safebrowsing-cache.google.com. -www.facebook.com. -d2102706.xoom.it. -clinton.k12.ky.us. -86.143.203.69.in-addr.arpa. -i3.ytimg.com. -ps3.brewology.com. -88.253.142.187.in-addr.arpa. -photos-e.ak.fbcdn.net. -twitter.com. -www.xvideos.com. -platform.ak.fbcdn.net. -evsecure-ocsp.verisign.com. -32.112.236.201.in-addr.arpa. -teredo.ipv6.microsoft.com. -63.242.184.99.in-addr.arpa. -transloadamerica.com.s5a2.psmtp.com. -folio.com. -aclupa.org. -nuestrasmiscelaneas.blogspot.com. -clients4.google.com. -asktoolbar.weather.com. -photos-e.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -img815.imageshack.us. -www.rsvp.com.au. -unless.com. -img42.imageshack.us. -touch.facebook.com. -photos-c.ak.fbcdn.net. -a.root-servers.net. -a727.phobos.apple.com. -230.247.96.109.in-addr.arpa. -dnl-01.geo.kaspersky.com. -accounts.google.com. -unifi. -trans-p2p.pandora.tv. -6.177.55.201.in-addr.arpa. -www.youtube.com. -arielassociates.com. -www.sourcevibrations.com. -a6.sphotos.ak.fbcdn.net. -sp.cwfservice.net. -a1.sphotos.ak.fbcdn.net. -dnl-18.geo.kaspersky.com. -a3.sphotos.ak.fbcdn.net. -safebrowsing-cache.google.com. -google.com. -www.googletagservices.com. -a6.sphotos.ak.fbcdn.net. -3end.ru. -144.248.138.189.in-addr.arpa. -i1.ytimg.com. -js.admeld.com. -22.239.187.189.in-addr.arpa. -www.quicklycode.com. -evolutionarypsychiatry.blogspot.com. -portugalunderground.blogspot.com. -b.scorecardresearch.com. -developers.facebook.com. -secure-anntaylor2.richfx.com. -accounts.google.com. -235.26.27.188.in-addr.arpa. -a.root-servers.net. -switchboard.real.com. -apps.facebook.com. -a.root-servers.net. -121.38.32.46.in-addr.arpa. -www.google.com. -129.176.129.186.in-addr.arpa. -profile.ak.fbcdn.net. -s-static.ak.facebook.com. -sofi.ua. -html.rincondelvago.com. -i3.ytimg.com. -storage.conduit.com. -177.138.141.189.in-addr.arpa. -a.root-servers.net. -sc19.rules.mailshell.net. -omega.ua. -developers.facebook.com. -a.root-servers.net. -normateca.educal.com.mx. -caldav.calendar.yahoo.com. -www.americanwhitewater.org. -i1.nyt.com. -a.root-servers.net. -googleads.g.doubleclick.net. -a.root-servers.net. -:lvzz93qr.46pf. -110.254.162.76.in-addr.arpa. -sjc.ads.nexage.com. -248.154.104.190.in-addr.arpa. -195.10.8.95.in-addr.arpa. -img1.blogblog.com. -214.16.168.192.in-addr.arpa. -www.studymalaysia.com. -www.google.com. -jesuitswisprov.org. -. -ju.edu. -ghs.l.google.com. -98.34.97.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -mail2.foley2.com. -cropper.com. -fxfeeds.mozilla.com. -verizoni.net. -www.facebook.com. -175.64.94.186.in-addr.arpa. -s.youtube.com. -et-consulting.ru. -nl-pic1.ciao.com. -84.174.85.209.in-addr.arpa. -th209.photobucket.com. -166.61.225.76.in-addr.arpa. -hojuuncontentingness.com. -securepubads.g.doubleclick.net. -ads.yimg.com. -js2.wlxrs.com. -a.root-servers.net. -217.221.114.93.in-addr.arpa. -www.thugmart.com. -imperiyaavto.ru. -cux9u3dpp.42qh. -www.facebook.com. -q6y9cx9vg.g95j5g3k. -api-read.facebook.com. -amer.rel.msn.com. -zynga1-a.akamaihd.net. -upload.facebook.com. -baklanov.msk.ru. -webcache.googleusercontent.com. -754866.r.msn.com. -bigmail-file18.mail.daum.net. -threw.ru. -music.darrenlock.com. -translate.google.com.mx. -ladolcevitaevents.net. -www.tattoodownloadz.com. -fdpinvest.ru. -www.dontlookbackconcerts.com. -blufiles.storage.msn.com. -www.coffeeshrub.com. -www.caninest.com. -scholar.google.com. -rzhrdb.com. -static.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -rcp.na.blackberry.com. -evintl-ocsp.verisign.com. -sc2.rules.mailshell.net. -loading3.widdit.com. -zonaalfasex.blogspot.com. -orthoctrsofl.com. -okwm38xxk.q21f1e6u. -download343.avast.com. -www.derrierelacolline.net. -www.mi6-hq.com. -www.labcreations.biz. -www.televisa.com. -www.ibcrosario.com.ar. -official-fangoria.disqus.com. -a.root-servers.net. -www.hi5.com. -a.root-servers.net. -www.martinfowler.com. -www.putalocura.com. -a.root-servers.net. -ttln.com. -resolver.3.geo.ctmail.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -panservice.it. -api.twitter.com. -mail.f2.net. -pr.starmedia.com. -91.216.101.187.in-addr.arpa. -a.root-servers.net. -www.inac.gov.ve. -media.adxpansion.com. -sn21.mailshell.net. -mail.hawaiireserves.com. -1-live-gs-emhe.6waves.com. -andor.net. -mailyam.com. -api-read.facebook.com. -114.130.80.84.in-addr.arpa. -. -kepa.ru. -www.thinkyhead.com. -159.39.61.81.in-addr.arpa. -jcom.home.ne.jp. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -static.ak.fbcdn.net. -files.myopera.com. -33.72.188.189.in-addr.arpa. -ws-cloud236-blur.svcmot.com. -ad.yieldmanager.com. -myonlyuniverse.blogspot.com. -www.skyshape.com. -english-by-phone-admin.com. -www.joinmyvillage.com. -img513.imageshack.us. -accounts.google.com. -sr.wikipedia.org. -www.facebook.com. -ss28:mxx8.n82f3g6e. -a.root-servers.net. -71.31.93.189.in-addr.arpa. -teredo.ipv6.microsoft.com. -ads.adbrite.com. -www.cheapukgirls.com. -ametekaerodefense.com. -alfordot.com. -udc.msn.com. -www.21stcenturydental.com. -as.py.impact-ad.jp. -gdyn.hlntv.com. -www.karlsruhe.de. -alltrl.net. -www.youtube.com. -210.221.132.187.in-addr.arpa. -www.inlandnewstoday.com. -static.ak.fbcdn.net. -investor.power-one.com. -lrbdvj813.26ax. -200.109.175.110.in-addr.arpa. -cyberinsecure.com. -blacklist.teamspeak.com. -a4.sphotos.ak.fbcdn.net. -annita.bligoo.com. -87.148.59.199.in-addr.arpa. -taniaraymondefan.com. -ads.creafi-online-media.com. -35.89.182.190.in-addr.arpa. -www.clubdelvento.com.ar. -235.42.151.68.in-addr.arpa. -hi-in.facebook.com. -pixel.facebook.com. -smtp.hometelco.com.s5b1.psmtp.com. -static.ak.fbcdn.net. -mx.dilltech.com. -a.root-servers.net. -www.kaba.co.nz. -19.228.171.69.in-addr.arpa. -cnfg.montiera.com. -photos-g.ak.fbcdn.net. -hot-goods.ru. -external.ak.fbcdn.net. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -unimac.com. -164.70.215.190.in-addr.arpa. -sp.cwfservice.net. -www.gstatic.com. -126.62.139.75.in-addr.arpa. -asplundhbpg.com. -sites.google.com. -lvtlslxupeptemc.com. -www.truthtube.tv. -enough.com. -docs.google.com. -photos-g.ak.fbcdn.net. -d2103737.xoom.it. -myownlabels.com. -sp.cwfservice.net. -10.53.37.83.in-addr.arpa. -www.tattoologist.com. -sp.cwfservice.net. -197.184.149.69.in-addr.arpa. -www.transparencia.unam.mx. -static.ak.fbcdn.net. -a.root-servers.net. -developers.facebook.com. -secure-assets.rubiconproject.com. -www.facebook.com. -s-static.ak.facebook.com. -mx.youtube.com. -78.4.175.94.in-addr.arpa. -img133.picfoco.com. -ad.yieldads.com. -www.bannerflux.com. -triton.mnet.com. -201.81.179.90.in-addr.arpa. -js.wlxrs.com. -www.adobe.com. -www.moneysupermarket.com. -pgcff.pricegong.com. -s-external.ak.fbcdn.net. -tc.v7.cache4.c.youtube.com. -safebrowsing-cache.google.com. -twitter.com. -css.wlxrs.com. -a.root-servers.net. -jers1.info. -_636_24_0. -go.microsoft.com. -126.190.119.98.in-addr.arpa. -arabic.hktdc.com. -incredibots2.com. -accounts.google.com. -graph.facebook.com. -213.146.179.187.in-addr.arpa. -90.0.75.187.in-addr.arpa. -12.143.237.189.in-addr.arpa. -www.nonudeladies.info. -api.twitter.com. -www.rudnei.cunha.nom.br. -www.youtube.com. -juegos-ultimate-arcade.blogspot.com. -130.100.160.182.in-addr.arpa. -mx.fgup.net. -inbound.reetex.com.netsolmail.net. -113.3.103.189.in-addr.arpa. -tampa.holaciudad.com. -westelcom-mx.messaging.lotuslive.com. -download.windowsupdate.com. -wishlist-products.s3.amazonaws.com. -fbcdn-profile-a.akamaihd.net. -yadjose.espacioblog.com. -watershipltd.com. -a7.sphotos.ak.fbcdn.net. -www.googleadservices.com. -120.187.117.68.in-addr.arpa. -www.facebook.com. -profile.ak.fbcdn.net. -www.feedage.net. -a-0.19-a30f3081.80e0180.1518.19d4.3ea1.410.0.wh8h6hw9qeh8hzi3ulfja7itat.avqs.mcafee.com. -pop.netaddress.com. -gchu-ao.foroactivo.net. -creative.ak.fbcdn.net. -chim.vrn.ru. -notify10.dropbox.com. -widget.alot.com. -shamrocksportsgroup.com.s8a2.psmtp.com. -www.downextra.net. -a4.sphotos.ak.fbcdn.net. -www.dollandthecity.com. -71.123.164.79.in-addr.arpa. -15.123.145.213.in-addr.arpa. -www.containerhandbuch.de. -a.root-servers.net. -24.192.178.190.in-addr.arpa. -c13.zedo.com. -profile.ak.fbcdn.net. -invest.grainger.com. -116.205.171.201.in-addr.arpa. -gknholding.com. -sp.cwfservice.net. -rocketmail.com. -1pic1mtb1.p60r1h7e. -www.gmail.com. -179.236.144.189.in-addr.arpa. -www.madmaxmodels.com. -bhdccudap02.blackhillscorp.com. -www.siestakeyvacationsrental.com. -rvlife.net. -touch.facebook.com. -api.facebook.com. -external.ak.fbcdn.net. -flame.ru. -jonjulio.tumblr.com. -a.root-servers.net. -a.root-servers.net. -masqueperras.blogspot.com. -csi.gstatic.com. -centum.cz. -carrison.co.uk. -conduit.anybodyoutthere.com. -fb-client-0.castle.zynga.com. -157.147.152.201.in-addr.arpa. -a.root-servers.net. -194.68.37.186.in-addr.arpa. -jet.sao.ru. -www.gpr.hu. -ht50.easou.com. -platform.twitter.com. -113.169.162.187.in-addr.arpa. -fonts.googleapis.com. -pear.php.net. -14.202.178.186.in-addr.arpa. -zh-cn.facebook.com. -www.rtc.com. -ls2web.redmond.corp.microsoft.com. -www.plastimo.com. -schantz.com. -l.yimg.com. -api.facebook.com. -248.225.58.189.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -cmsimg.wausaudailyherald.com. -ts-transport.ru. -crochetemoda.blogspot.com. -4.bp.blogspot.com. -hantoma.hani.co.kr. -sovetrector.ru. -api.conduit.com. -webcache.googleusercontent.com. -photos-a.ak.fbcdn.net. -companion-group.com. -38.113.14.71.in-addr.arpa. -computerpoint.net.s8a2.psmtp.com. -www.toyopumps.com. -mail.sincol.com. -130.9.137.82.in-addr.arpa. -2ah:afnbd.b11r2u1t. -teredo.ipv6.microsoft.com. -img260.imagevenue.com. -s.youtube.com. -200.37.51.180.in-addr.arpa. -253.53.36.190.in-addr.arpa. -145.174.207.190.in-addr.arpa. -photos-d.ak.fbcdn.net. -134.176.104.186.in-addr.arpa. -0-278.channel.facebook.com. -www.excatholicsforchrist.com. -calambresabdominales.blogspot.com. -publishers.org. -mail-3.readingbody.com. -photos-a.ak.fbcdn.net. -a.root-servers.net. -dtlink.com.br. -mtalk.google.com. -aol.com. -s-static.ak.fbcdn.net. -api.twitter.com. -wwwimages.adobe.com. -sp.ask.com. -104.158.212.186.in-addr.arpa. -swift.xobni.com.cdngc.net. -reconquista.pt. -about.ask.com. -s4.histats.com. -27.211.172.118.in-addr.arpa. -bing.com. -profile.ak.fbcdn.net. -www.facebook.com. -southern-container.com. -mail.chokseychem.com. -d1j68ux4ukg4g1.cloudfront.net. -220.92.80.2.in-addr.arpa. -sp.cwfservice.net. -51.12.39.114.in-addr.arpa. -careagemanagement.com.inbound10.mxlogicmx.net. -ntp1.dlink.com. -mxtreme1.bob.fi. -from-the-mountains.com. -rim.trapis.net. -aocuoikhanhlinh.vn. -www.provocativebabes.com. -cdn.turn.com. -download.windowsupdate.com. -mail.youngnoel.com. -lo5ssmq3z.35eo. -photos-g.ak.fbcdn.net. -www.procostas.org. -privcomm.com. -resudox.net.1.0001.arsmtp.com. -external.ak.fbcdn.net. -es-es.facebook.com. -data.flurry.com. -smtpjp.lvmh-group.com. -www.yyhworld.com. -mail1.hella.com. -www.awmads.com. -www.kissthatsound.com. -m.webtrends.com. -texasdebrazil.fbmta.com. -google.com. -sp.cwfservice.net. -midlandsco-op.com. -9.rarbg.com. -www.reuters.com. -www.google.com. -ms-max.ru. -cs11168.vkontakte.ru. -www.brent.gov.uk. -m.asu.edu. -www.lantern-festival.com. -23.187.36.190.in-addr.arpa. -www.urljet.com. -v8.cache2.c.youtube.com. -www.stumbleupon.com. -morelandassoc.com. -www.truckertotrucker.com. -247.65.222.189.in-addr.arpa. -profile.ak.fbcdn.net. -199.162.226.189.in-addr.arpa. -static.linkbucks.com. -sabre.tomlin.yahoo.com. -67.106.255.77.in-addr.arpa. -pagead2.googlesyndication.com. -30.205.89.173.in-addr.arpa. -www.arte-y-plata.com. -culinaryschools.ru. -covemotoring.com. -mail.yoowalk.com. -proposal.com. -s-static.ak.fbcdn.net. -nzgiexyo8.79io. -a.root-servers.net. -a4.sphotos.ak.fbcdn.net. -nokia.com. -profile.ak.fbcdn.net. -www.tumblr.com. -www.astrocentral.co.uk. -156.235.29.86.zz.countries.nerd.dk. -teredo.ipv6.microsoft.com. -www.sqm.microsoft.com. -www.seagate.com. -drjohn2020.com. -urs.microsoft.com. -teredo.ipv6.microsoft.com. -crashlog.whatsapp.net. -moca.org. -a997.mm1.akamai.net. -77.152.132.187.in-addr.arpa. -a.root-servers.net. -malah.biz. -www.animeplanet1000.blogspot.com. -rotfl.com. -23.214.192.66.in-addr.arpa. -www.ebonyfacial.net. -90.102.53.186.in-addr.arpa. -95.253.36.184.in-addr.arpa. -dns.carnainfo.com.br. -voipb.sip.yahoo.com. -www.verfutbolonline.net. -37.24.100.85.in-addr.arpa. -tags.bluekai.com. -1.201.173.190.in-addr.arpa. -secure-us.imrworldwide.com. -www.assa.edu.au. -a.root-servers.net. -photos-g.ak.fbcdn.net. -dns.msftncsi.com. -www.plics.net. -www.ademails.com. -pic.srv104.wapedia.mobi. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -iamronel.com. -ns1.freewebship.net. -espanol.wunderground.com. -api.conduit.com. -a.root-servers.net. -hpp.orange.fr. -acpo.org. -rosieflores.com. -a.root-servers.net. -40.29.100.190.in-addr.arpa. -cdn.ad4game.com. -2.150.218.186.in-addr.arpa. -mac1.no. -bs.serving-sys.com. -lys.org. -39.225.48.190.in-addr.arpa. -cdn1.certified-apps.com. -a4.sphotos.ak.fbcdn.net. -skydrive.live.com. -10.192.188.186.in-addr.arpa. -mpcstatic.com. -www.corporate-impressum.com. -host71.123flashchat.com. -a.root-servers.net. -google.com. -ksn3-11.part2.kaspersky-labs.com. -mail.roosevelt.k12.tx.us. -papercraftparadise.blogspot.com. -www.noroeste.com.mx. -moviecities.com. -167.224.181.72.in-addr.arpa. -www.googleadservices.com. -gmail.com. -88.252.178.186.in-addr.arpa. -hi-in.facebook.com. -95.72.14.186.in-addr.arpa. -poodlesarepeople.com. -42.92.19.201.in-addr.arpa. -www.google.com. -free.fr.dnsbl7.mailshell.net. -224.43.191.190.in-addr.arpa. -edge.quantserve.com. -www.chinuka.com. -www.youtube.com. -cust14266-1.in.mailcontrol.com. -apps.facebook.com. -www.google.com. -profile.ak.fbcdn.net. -google.com. -www.villa-bisono.com. -itunes.apple.com. -e4967.g.akamaiedge.net. -a6.sphotos.ak.fbcdn.net. -ten-arquitectos.com.s8a1.psmtp.com. -mailrelay.harrisburgnewsco.com. -espanol.answers.yahoo.com. -linksys-con10.url.trendmicro.com. -ieonlinews.microsoft.com. -224.49.66.186.in-addr.arpa. -www.youtube.com. -_715_42_7. -zh-cn.facebook.com. -messenger.hotmail.com. -s12.last.fm. -web.haceb.com. -a2.sphotos.ak.fbcdn.net. -api2.4shared.com. -www.bundarika.com. -txla.org. -ut2.xhamster.com. -32.226.79.190.in-addr.arpa. -142.31.245.189.in-addr.arpa. -imagenes.es.sftcdn.net. -www.youtube.com. -sp.cwfservice.net. -static.girlgames4u.com. -photos-f.ak.fbcdn.net. -www.izleyivergari.info. -prhospital.com. -plus.google.com. -www.eldiariomontanes.es. -api.facebook.com. -pagead2.googlesyndication.com. -discovision.com.s9a1.psmtp.com. -chmail.ru. -uu1.orbitdownloader.com. -a2.sphotos.ak.fbcdn.net. -vpn.su. -sites.google.com. -www.fxfisherman.com. -_608_72_5. -grandviewlodge.com. -s.youtube.com. -a.root-servers.net. -cm.ac3.msn.com. -translate.google.com.mx. -www.woodgundy.com. -www.g999g.com. -school.moodlemoot.com.au. -l52bfy8l1.94me. -www.riaupos.co. -theparkdowntown.com. -ad.ad-srv.net. -dynamoelectronics.blogspot.com. -serecon.ca. -diamondcertified.org. -www.corel.com. -museumca.org. -msntest.serving-sys.com. -cplus.about.com. -a4.sphotos.ak.fbcdn.net. -developers.facebook.com. -www.google-analytics.com. -www.myfamily.com. -andsewitgoes.blogspot.com. -baboolercheme.org. -photos-c.ak.fbcdn.net. -a.root-servers.net. -widgets.amung.us. -a4.sphotos.ak.fbcdn.net. -www.google.com. -www.uac.pt. -114.117.156.187.in-addr.arpa. -photos-f.ak.fbcdn.net. -3.bp.blogspot.com. -ads2.contentabc.com. -239.84.139.189.in-addr.arpa. -pixel.facebook.com. -swf.fizzgame.com. -mail.shm.ru. -www.fairouz.com. -130.16.250.189.in-addr.arpa. -firsterotica.com. -ib.adnxs.com. -247.207.73.69.in-addr.arpa. -60.66.64.186.in-addr.arpa. -www.facebook.com. -116.144.138.201.in-addr.arpa. -s5.mogujie.cn. -c7.zedo.com. -246.134.0.186.in-addr.arpa. -newsaxon.org. -a7.sphotos.ak.fbcdn.net. -nesk2fgrx.73ru. -ele.aut.ac.ir. -www-cctld.l.google.com. -www.stretcher.com. -_887_71_6. -cdn4.digitaltrends.com. -pl.wikipedia.org. -crl.microsoft.com. -ssl.gstatic.com. -col.stb00.s-msn.com. -213.125.153.189.in-addr.arpa. -c.prodigy.msn.com. -www.oldwayspt.org. -195.174.39.60.in-addr.arpa. -www.registry.in. -onestopfunny.com. -css.wlxrs.com. -noticias.latam.msn.com. -www.voayeurs.com. -displayworks.com.s7b1.psmtp.com. -caracteres.wordpress.com. -121.185.215.108.in-addr.arpa. -api.connect.facebook.com. -sulzer.com.s201a1.psmtp.com. -cherkessk.ru. -www.siaccss.com. -www.tvacres.com. -adserver.adtechus.com. -teredo.ipv6.microsoft.com. -ondetroitmi.com. -231.42.234.189.in-addr.arpa. -www.facebook.com. -www.playdojam.com. -olshtyn.ru. -74.124.163.46.in-addr.arpa. -aka-cdn-ns.adtechus.com. -27.media.tumblr.com. -s-static.ak.facebook.com. -cfisco.com. -en.wikipedia.org. -pagead2.googlesyndication.com. -banners.iminent.com. -googleads.g.doubleclick.net. -bit.ly. -www.tutiempo.net. -i2.ytimg.com. -www.gstatic.com. -seinur.info. -www.sexoflover.com. -developers.facebook.com. -bsvst.ru. -google.com. -clients1.google.com. -dr._dns-sd._udp.lan. -privacy2.msn.com. -pagead2.googlesyndication.com. -teredo.ipv6.microsoft.com. -ping.chartbeat.net. -fbcdn-profile-a.akamaihd.net. -apmc.net.s10b1.psmtp.com. -121.253.84.200.in-addr.arpa. -si-tx.com.s7b2.psmtp.com. -a.root-servers.net. -apix.iminent.com. -a8.sphotos.ak.fbcdn.net. -downbytheriverbank.blogspot.com. -kb-law.com.s8a2.psmtp.com. -safebrowsing-cache.google.com. -creative.ak.fbcdn.net. -relestar.com. -hotmail.com. -199.1.130.79.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -aidps.atdmt.com. -connect.facebook.net. -www.jesusferrer.es. -b.scorecardresearch.com. -35.237.51.190.in-addr.arpa. -p03-streams.icloud.com. -baileycompany.com. -developers.facebook.com. -_122_26_3. -mail.starband.com. -kiev.unian.net. -lkayrnosi.n79w7f1n. -platform.twitter.com. -gbjha.zeneca.com. -www.google.com. -infogen.com. -www.quicksupply.net. -hotwater.build.com.au. -203.175.206.200.in-addr.arpa. -a.root-servers.net. -twimg0-a.akamaihd.net. -api.twitter.com. -234.254.200.190.in-addr.arpa. -photos-g.ak.fbcdn.net. -www.google.com. -193.96.129.217.in-addr.arpa. -translate.google.com.mx. -jacuzzi.vidz.com. -cn1.redswoosh.akadns.net. -a6.sphotos.ak.fbcdn.net. -www2.dca.ca.gov. -www.star-advertising.com. -html.atm.youku.com. -www.ihrdc.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -68.11.168.192.in-addr.arpa. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -ads.bluelithium.com. -pixel.facebook.com. -tc21.easythumbhost.com. -www.eluniversal.com.mx. -25.15.206.41.in-addr.arpa. -lunarstuff.com. -haapavesi.fi. -photos-a.ak.fbcdn.net. -_002_80_1. -119.49.11.189.in-addr.arpa. -xk18zs87c.14rh. -zahduc34k.64kr. -58.111.79.201.in-addr.arpa. -content.xbox.com.edgesuite.net. -api-read.facebook.com. -216.86.251.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -125.240.56.66.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -p.jango.com. -secure.wlxrs.com. -www.retratech.ca. -mahindra.co.za. -mail.spindlereng.com. -89.252.166.189.in-addr.arpa. -static.ak.fbcdn.net. -www.andrewlab.com. -www.ciol.com. -gaztekinzale.wordpress.com. -time.chttl.com.tw. -40.1.101.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -166.60.229.189.in-addr.arpa. -1.11.71.187.in-addr.arpa. -a13.t26.net. -iphone.facebook.com. -stox.ru. -api.twitter.com. -gw.home.vix.com. -playerservices.streamtheworld.com. -a.root-servers.net. -mail2.investural.ru. -crossfit-gyms.com. -koenigscale.com.mail7.psmtp.com. -clients1.google.com. -www.abstractmath.org. -fbcdn-photos-a.akamaihd.net. -lasco.costeel.com. -www.tequesquitengo.org.mx. -mail.gas12.ru. -fbcdn-sphotos-a.akamaihd.net. -s815.photobucket.com. -www.gamefaqs.com. -a.root-servers.net. -z-ecx.images-amazon.com. -bit.ly. -www.cat-barcelona.com. -voipa.sip.yahoo.com. -www.top10series.com. -exhiberexpo.ru. -lbcore1.metacafe.com. -buchete-mireasa.ro. -124.99.171.78.in-addr.arpa. -creative.ak.fbcdn.net. -151.25.253.189.in-addr.arpa. -a3.twimg.com. -googleads.g.doubleclick.net. -gcsd.global.sonicwall.com. -180.80.81.201.in-addr.arpa. -190.49.178.78.in-addr.arpa. -www.spacesoundrecords.com. -fiteyes.com. -202.196.70.86.in-addr.arpa. -alternativaslibres.mcye.misiones.gov.ar. -228.154.108.114.in-addr.arpa. -161.148.194.190.in-addr.arpa. -atspam.atproperties.com. -www.aveev.org. -djesibonajeb.com. -rediffmail.com. -cobaltemail.com. -202.211.118.190.in-addr.arpa. -www.nshamabagdad.com. -206.71.0.71.in-addr.arpa. -metrics.nokia.com. -creative.ak.fbcdn.net. -rcp.na.blackberry.com. -94.140.227.190.in-addr.arpa. -time-nw.nist.gov. -fbcdn-sphotos-a.akamaihd.net. -mail.pesd.k12.wi.us. -static.ak.fbcdn.net. -www.ironcreek.net. -external.ak.fbcdn.net. -rocketfuel.com. -profile.ak.fbcdn.net. -126.196.155.93.in-addr.arpa. -www.google.com. -126.162.217.196.in-addr.arpa. -t7.tagstat.com. -www1.plumpestgrannies.com. -www.luxurybeachresorts.com.mx. -photos-f.ak.fbcdn.net. -cdchww3gm.56bf. -cdn.zeusclicks.com. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -evaysuserpientes.blogspot.com. -a.root-servers.net. -ebarasolar.com. -abooking.net. -asdlabs.com. -facebookhackingcourse.com. -baseavalancha.mforos.com. -podcast.gcnlive.com. -taxpro.hrblock.com. -88.92.196.216.in-addr.arpa. -holatu.com. -universal-document-converter-win.softonic.com. -service-public.fr. -profile.ak.fbcdn.net. -google.com. -9q9vf:hom.n29j4k0y. -138.58.235.201.in-addr.arpa. -16.59.44.129.in-addr.arpa. -109.59.0.27.in-addr.arpa. -abc.volga.ru. -74.194.66.201.in-addr.arpa. -103.118.11.190.in-addr.arpa. -b5e:e98u8.w52x0e3l. -www.bakers.co.uk. -. -www.maserati.com. -mediacdn.disqus.com. -a7.sphotos.ak.fbcdn.net. -i2.ytimg.com. -mx2.kennemergroup.com. -anmagroup.com. -tracker.publicbt.com. -nl0105dom26.fea.slb.com. -a5.sphotos.ak.fbcdn.net. -api.twitter.com. -www.espacio15.com. -universat.com. -213.56.47.189.in-addr.arpa. -api-read.facebook.com. -m.facebook.com. -mnademexico.com. -ksn2.kaspersky-labs.com. -belrus.kuban.ru. -103.180.182.189.in-addr.arpa. -mail.midwestrespiratory.com. -apps.facebook.com. -a1725.l.akamai.net. -bs.serving-sys.com. -108.248.41.175.in-addr.arpa. -safebrowsing.clients.google.com. -quepiensaeltercerhombre.blogspot.com. -17.168.50.190.in-addr.arpa. -speed.cd. -rad.msn.com. -. -110.249.226.76.in-addr.arpa. -planet.wordpress.org. -www.heterodoxos.org. -a.root-servers.net. -ax.su.itunes.apple.com. -123.203.140.79.in-addr.arpa. -a4.da1.akamai.net. -www.bywifi.com. -rcm.org.uk. -trailw.dealply.com. -unica.com.br. -apple.com. -58.244.165.190.in-addr.arpa. -elobservadorsarcastico.blogspot.com. -a4.da1.akamai.net. -a.root-servers.net. -salud-solobuenasnoticias.blogspot.com. -_560_76_2. -www.voodootonic.com. -descargas.juegos.com. -104.224.194.58.in-addr.arpa. -shahid.mbc.net. -www.ihstar.com. -plus.google.com. -205.135.141.118.in-addr.arpa. -newsrss.bbc.co.uk. -img187.imageshack.us. -photos-h.ak.fbcdn.net. -29-courier.push.apple.com. -157.206.230.190.in-addr.arpa. -212.44.83.78.in-addr.arpa. -rostplastik.ru. -static.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -developers.facebook.com. -image-school.ru. -shoemanic.com. -conduit.anybodyoutthere.com. -t3.gstatic.com. -escueladefotografia.blogspot.com. -lexha.org. -support.google.com. -246.73.88.74.in-addr.arpa. -ad.yieldmanager.com. -146.117.144.201.in-addr.arpa. -metafisica.galeon.com. -b.scorecardresearch.com. -waterpas.com. -. -platform.ak.fbcdn.net. -plusone.google.com. -ptpc.com. -. -www.youtube.com. -developers.facebook.com. -simple.wikipedia.org. -labhut.com. -a6.sphotos.ak.fbcdn.net. -ar-ar.facebook.com. -www.bible.cc. -static.ak.fbcdn.net. -nycap.rr.com. -zynga2-a.akamaihd.net. -a.root-servers.net. -ad-g.doubleclick.net. -88.108.56.200.in-addr.arpa. -dnjnet.com. -www.anka.com. -osobnyak.ru. -translate.google.com.mx. -statcounter.com. -graph.facebook.com. -cuautitlanizcalli.olx.com.mx. -join.thecrossdressers.com. -ignaciogalvez.com. -flaq4b4te.69il. -www.adobe.com. -sthelaz.blogspot.com. -aunicom.ru. -static.ak.fbcdn.net. -www.facebook.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.knijnenburgbeheer.nl. -a4.sphotos.ak.fbcdn.net. -i299.photobucket.com. -crashmania.net. -22.39.96.184.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.bligoo.com. -www.showtime.jp. -www.asefapi.es. -tile.openstreetmap.org. -ssl.google-analytics.com. -www.mfa.gov.eg. -photos-a.ak.fbcdn.net. -psikolokospucp.blogspot.es. -ksn1-11-part1.kaspersky-labs.com. -117.91.68.189.in-addr.arpa. -ad.yieldmanager.com. -beautypageantnews.com. -dns.msftncsi.com. -diverticulitis.org.uk. -bestvalueinn-lethbridge.com. -checkip.dyndns.com. -relay2.ncc.co.za. -ukeas.com.tw. -www.msftncsi.com. -platform.ak.fbcdn.net. -porchsyndicate.com. -it-it.facebook.com. -www.blancasexxx.com. -ares.uptodown.com. -banners.iminent.com. -apps.facebook.com. -cartermcrae.com. -profile.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -simssoc.game.playfish.com. -valleymeat.com. -landscapearchitectureresource.com. -db.darthhater.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -mail2.gratefulpalate.com. -151.237.236.189.in-addr.arpa. -static.ak.fbcdn.net. -www.facebook.com. -www.germanbitch.de. -photos-g.ak.fbcdn.net. -www.portableworld.ru. -www.youtube.com. -photos-b.ak.fbcdn.net. -api.facebook.com. -a.root-servers.net. -195.26.90.186.in-addr.arpa. -mozilla-firefox.soft32.com. -www.songwritersfestival.com. -www.facebook.com. -cdn.spotxchange.com. -d.f.2.c.e.3.5.b.1.c.d.1.c.2.8.3.6.7.e.9.7.3.1.4.0.0.0.0.1.0.0.2.ip6.arpa. -fashion.allwomenstalk.com. -www.despertardetamaulipas.com. -psgw.t-mobilesgws.com. -a.root-servers.net. -clubblockpost.ru. -a.root-servers.net. -public.liss.slidesharecdn.com. -s.youtube.com. -google.com. -www.facebook.com. -mail34.mimecast.co.za. -archives1.twoplustwo.com. -242.28.235.190.in-addr.arpa. -75.192.141.190.in-addr.arpa. -ad.yieldmanager.com. -s.ytimg.com. -www.vividforfree.com. -a0.twimg.com. -paragraphinc.com. -homeaway.com.122.2o7.net. -a7.sphotos.ak.fbcdn.net. -ns1.easydns.com. -rcp.eu.blackberry.com. -d3j5vwomefv46c.cloudfront.net. -sfilter.celizion.com. -a.analytics.yahoo.com. -www.girlsofheaven.com. -sc2.rules.mailshell.net. -v5.cache2.c.bigcache.googleapis.com. -teredo.ipv6.microsoft.com. -swisstab.be. -hcxd88nly.11nx. -142.31.130.41.in-addr.arpa. -pagead2.googlesyndication.com. -groups.google.com.mx. -platform.twitter.com. -novatube.com. -www.google-analytics.com. -www.macitynet.it. -187.242.25.201.in-addr.arpa. -ssl.gstatic.com. -107.230.141.189.in-addr.arpa. -www.kaspersky.com. -profile.ak.fbcdn.net. -lcucr.com. -www.yahoo.com. -touch.facebook.com. -plusone.google.com. -181.209.79.190.in-addr.arpa. -nv68eht68.v88e7t3a. -www.juegosbmxgratis.com. -159.207.245.190.in-addr.arpa. -dollar.uaportal.com. -farm6.staticflickr.com. -img2.mlstatic.com. -fbcdn-profile-a.akamaihd.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -99.81.54.65.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -. -smtpin.tdc.dk. -42.127.199.76.in-addr.arpa. -a.root-servers.net. -204.1.168.192.in-addr.arpa. -130.40.212.178.in-addr.arpa. -s.ytimg.com. -m.xp1.ru4.com. -mail.tortnadom.ru. -35.187.53.187.in-addr.arpa. -v12.nonxt5.c.youtube.com. -a.root-servers.net. -csi.gstatic.com. -ssl.google-analytics.com. -www.jorditorre.com. -_803_79_8. -www9.effectivemeasure.net. -sugiur.com. -pixel.fetchback.com. -mail.elliron.com. -www.uach.cl. -224.111.129.125.in-addr.arpa. -www.tierradesoldados.com. -mail.google.com. -photos-b.ak.fbcdn.net. -y:2bwibln.32cc. -el-real-blog.blogspot.com. -egal.com. -1.85.19.186.in-addr.arpa. -232.178.219.194.in-addr.arpa. -www.herosmash.com. -t.co. -kred.com. -ksn2-12.kaspersky-labs.com. -a.root-servers.net. -library.karelia.ru. -a5.sphotos.ak.fbcdn.net. -a.root-servers.net. -_229_73_2. -www.dnanow.com. -dc153.4shared.com. -mobilelinuxinfo.com. -138.253.168.192.in-addr.arpa. -a.root-servers.net. -9.138.122.187.in-addr.arpa. -view.atdmt.com. -relay.uep-cd.ru. -google.com. -www.bridgeguys.com. -a.root-servers.net. -21.180.35.177.in-addr.arpa. -inbound.anchorsubaru.com.netsolmail.net. -mail.sites-sw.com. -baltimore.orioles.mlb.com. -apps.facebook.com. -time.chttl.com.tw. -external.ak.fbcdn.net. -92.253.250.201.in-addr.arpa. -thumbs4.ebaystatic.com. -105.165.151.85.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -dr._dns-sd._udp.lan. -u.dd341c002d6d86bd.com. -dns.msftncsi.com. -trilliumcos.com. -ssl.gstatic.com. -www.youtube.com. -ads2.msads.net. -photos-g.ak.fbcdn.net. -gekgo.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-g.ak.fbcdn.net. -static.ak.fbcdn.net. -bisd.com. -baggio.com.ar. -webcache.googleusercontent.com. -177.99.0.190.in-addr.arpa. -dns.msftncsi.com. -iiseutu.fi. -noticias.es.msn.com. -lighthousebaptist.com.1.arsmtp.com. -teredo.ipv6.microsoft.com. -d7.zedo.com. -www.karritos.mx. -www.surgjournal.com. -pixel.facebook.com. -i2.ytimg.com. -creative.ak.fbcdn.net. -cow_fb_cdn0-a.akamaihd.net. -200.143.131.187.in-addr.arpa. -d2092717.xoom.it. -data.flurry.com. -192.143.19.95.in-addr.arpa. -cdn5-0.quizapps.com. -243.46.112.186.in-addr.arpa. -36.182.218.193.in-addr.arpa. -138.140.225.77.in-addr.arpa. -photos-a.ak.fbcdn.net. -157.29.180.69.in-addr.arpa. -onlinux-fr.setupdns.net. -www.amazon.com. -izone.com. -creative.ak.fbcdn.net. -mail.roughbros.com. -s1-powerpoint.vo.msecnd.net. -kakputin.ru. -58.68.171.201.in-addr.arpa. -cdn.search.sweetim.com. -ssl.gstatic.com. -mail.stroisouz.ru. -nhdayton.com.2.arsmtp.com. -es.house.wikia.com. -www.newbackdoor.com. -wallstreetmtg.com. -www.mancoraperu.com. -systor.com. -windsor.olx.ca. -russianet.ru. -43.76.37.46.in-addr.arpa. -mvz.berkeley.edu. -accounts.google.com. -iasishealth.com. -www.britishcolumbia.name. -www.ringtonematcher.com. -243.60.27.72.in-addr.arpa. -pagead2.googlesyndication.com. -mall.shinsegae.com. -alhena3.blogspot.com. -www.healthplanspain.com. -146.16.76.184.in-addr.arpa. -bloomstudio.ru. -hackneycitizen.co.uk. -a.triggit.com. -14392e5a.linkbucks.com. -invproj.ru. -www.youtube.com. -bestamateurland.com. -248.91.173.190.in-addr.arpa. -i2.ytimg.com. -nationalholidays24.com. -245.207.21.190.in-addr.arpa. -s-static.ak.fbcdn.net. -www.gamefaqs.com. -tracker.ccc.de. -es-la.facebook.com. -profile.ak.fbcdn.net. -www.aircleaners.com. -ing-serv.ru. -external.ak.fbcdn.net. -fbcdn-photos-a.akamaihd.net. -www.lesbianas.us. -234.153.203.201.in-addr.arpa. -pingoat.com. -69.33.161.187.in-addr.arpa. -www.kirkdunne.com. -mail.midcomp.com. -157.18.144.186.in-addr.arpa. -ardeacap.com. -www.alwaraq.net. -us-w1.rockmelt.com. -addvalue.com. -a.root-servers.net. -i3.imlive.com. -a.root-servers.net. -safebrowsing.clients.google.com. -mountaincement.com.mail9.psmtp.com. -www.yajuegos.com. -eabka.info.company.com. -pics.gallery.weddingbee.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mbmo-online.ru. -fam.gigabox.info. -123.231.248.182.in-addr.arpa. -www.chacovende.com. -www.crazymikesapps.com. -a4.sphotos.ak.fbcdn.net. -imageseu.fewo-direkt.de. -icons.cubics.com. -www.google-analytics.com. -138.45.59.186.in-addr.arpa. -www.tuenti.com. -a.root-servers.net. -s.youtube.com. -sp.cwfservice.net. -mediostransporte.blogspot.com. -madhouse110.fsnet.co.uk. -ajax.googleapis.com. -mail.vikingsoutheast.com. -a8.sphotos.ak.fbcdn.net. -ssl.gstatic.com. -mail2.provcorp.com. -proactusa.com.inbound15.mxlogic.net. -mx.siberia-zeo.ru. -assets.zestadz.com. -t5.tagstat.com. -i4.ytimg.com. -a1125.phobos.apple.com. -vistamfg.com.inbound10.mxlogic.net. -pixel.facebook.com. -44.115.125.186.in-addr.arpa. -g.live.com. -i-cdn.servedbyopenx.com. -172.38.251.189.in-addr.arpa. -www.alanbaxteronline.com. -_199_49_2. -mx5.perusion.com. -mysticsaint.blogspot.com. -youtu.be. -14.190.98.62.in-addr.arpa. -jensen.mail.dk. -d2089619.xoom.it. -. -dns.msftncsi.com. -tienda.levante-emv.es. -1.bp.blogspot.com. -www.google-analytics.com. -www.apps4rent.com. -mail.secnrs.ru. -wastewater.ru. -www.youtube.com. -gameplay.mochimedia.com.home. -www.killersofeden.com. -dns.msftncsi.com. -platform.ak.fbcdn.net. -s-external.ak.fbcdn.net. -usage.hosting.toolbar.conduit-services.com. -watson.microsoft.com. -avillage.web.virginia.edu. -www.blogspottemplate.com. -122.18.122.189.in-addr.arpa. -191.230.21.187.in-addr.arpa. -mail.doverphila.com. -a3.sphotos.ak.fbcdn.net. -smtp.alfredstate.edu. -0.11-2300a008.e1032.1518.19d4.3ea1.410.0.kjzwb3lh5n28ezha8i1alrbphq.avqs.mcafee.com. -i3.ytimg.com. -c5x4h.dyndns.org. -proxy.ncc.nnov.ru. -52.17.156.189.in-addr.arpa. -a-m-b-i-v-a-l-e-n-c-e.tumblr.com. -check4.facebook.com. -static.a.gs-cdn.net. -gsi.pl. -weather.services.conduit.com. -www.soapoperadigest.com. -m.facebook.com. -m.addthisedge.com. -s-static.ak.facebook.com. -se8od84j5.m34g8u4u. -s.skimresources.com. -www.reit.com. -www.facebook.com. -28.239.215.201.in-addr.arpa. -www.usasexguide.info. -174.37.211.201.in-addr.arpa. -62.239.66.199.in-addr.arpa. -h.live.com. -ad.yieldmanager.com. -97.188.138.201.in-addr.arpa. -www.facebook.com. -phissc6mj.j68r1u3w. -smtpx2.fpcusa.com. -a3.sphotos.ak.fbcdn.net. -modavestidos.es. -49.204.139.187.in-addr.arpa. -72.11.231.189.in-addr.arpa. -r._dns-sd._udp.0.55.211.10.in-addr.arpa. -115.54.1.190.in-addr.arpa. -234.62.51.170.in-addr.arpa. -101.206.42.181.in-addr.arpa. -54.59.105.190.in-addr.arpa. -pixel.invitemedia.com. -mvusd.net. -i1.ytimg.com. -a.root-servers.net. -video.google.com.mx. -63.170.23.79.in-addr.arpa. -photos-a.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -hotmail.com. -centennialwireless.com. -bbcore.cloudapp.net. -www.thekyotoconnection.com. -www.revodvr.com. -www.wrangler.com. -distilleryimage2.s3.amazonaws.com. -www.facebook.com. -a3.sphotos.ak.fbcdn.net. -dns.msftncsi.com. -ntp.glb.nist.gov. -portales.puj.edu.co. -fkepygflaoh.ws. -balas-celebs.com. -223.183.78.186.in-addr.arpa. -a.root-servers.net. -galagans.com. -www.elgrancatador.com. -download.mozilla.org. -rad.msn.com. -ayuban.com. -a.root-servers.net. -kasut.net. -172.121.157.69.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -52.106.2.42.in-addr.arpa. -a.mx.icetalk.com. -rucrj4p4u.85rp. -external.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -somosmovies.disqus.com. -api.geo.kontagent.net. -sp.cwfservice.net. -www.kt2syggf436dtag106.com. -cont-dc6-2.pandora.com. -www.facebook.com. -api.twitter.com. -www.google-analytics.com. -www.timwe.com. -jobs.cgsociety.org. -safebrowsing.clients.google.com. -a8.sphotos.ak.fbcdn.net. -www.poikosoft.com. -sbcglobel.net. -www.pagerank.si. -profile.ak.fbcdn.net. -3ba1f48a4b3e87fbdcea52325266e210.info. -www.courts.state.hi.us. -124.176.21.115.in-addr.arpa. -static.xvideos.com. -www.eyedocs.co.uk. -trc-tempe.com. -googleads.g.doubleclick.net. -86.238.117.208.in-addr.arpa. -35.110.111.109.in-addr.arpa. -a.root-servers.net. -229.109.138.69.in-addr.arpa. -wap.jamster.com. -www.facebook.com. -ipeinc.com. -51.14.236.201.in-addr.arpa. -195.214.186.189.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -saturnkmv.ru. -40.12.198.187.in-addr.arpa. -instagram.com. -www.viki.net. -168.90.55.65.sbl-xbl.spamhaus.org. -www.wiworks.com. -click.infospace.com. -us.bc.yahoo.com. -a6.sphotos.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -es-la.facebook.com. -203.241.60.125.in-addr.arpa. -photos-d.ak.fbcdn.net. -303.gt2.vkadre.ru. -www.ekospor.com. -naia-design.com. -estaticos02.marcaplayer.com. -liveupdate.symantecliveupdate.com. -www.whitesmoke.com. -cs11445.vk.com. -www.netflix.com. -photos-h.ak.fbcdn.net. -9dkl1xkjk.u44o7m3c. -www.kare11.com. -www.massmediamail.com. -backlink.elchoclo.net. -www.google.com. -www.grinshare.com. -wnyahl.com. -twitter.com. -210.3.24.188.in-addr.arpa. -ns2.ameritech.net. -static1.putlocker.com. -api.facebook.com. -a.root-servers.net. -sp.cwfservice.net. -www.womens-health-advice.com. -host26.taxcom.ru. -smyt.ru. -10.1.168.192.in-addr.arpa. -118.205.74.200.in-addr.arpa. -152.143.239.190.in-addr.arpa. -recreationland.net. -webcache.googleusercontent.com. -144.12.133.78.in-addr.arpa. -ns7.dnsmadeeasy.com. -farmacap.it. -ajax.googleapis.com. -www.mysatin.com. -silkroad4gold.com. -svp.co.uk. -platform.ak.fbcdn.net. -narutorev3wii.natneg1.gs.nintendowifi.net. -pixel.facebook.com. -149.118.152.201.in-addr.arpa. -turt.aclap.com. -www.adserve.com. -www.volaris.mx. -ads.us.e-planning.net. -34.104.201.187.in-addr.arpa. -southeastern.stokes.k12.nc.us. -a.root-servers.net. -5.23.143.201.in-addr.arpa. -74.112.36.177.in-addr.arpa. -profile.ak.fbcdn.net. -www.youtube-nocookie.com. -profile.ak.fbcdn.net. -www.amw.com. -websearch.ask.com. -static.app.widdit.com. -appraiserdepot.com. -www.lageografiadelmundo.com. -www.desmotivado.es. -mail.iq-networks.ru. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -64.149.229.99.in-addr.arpa. -mail-in.daimler.com. -mail.spangenbergphillips.com. -pqvpsisuyrgywmaeywjjsuudr.so. -127.184.227.78.in-addr.arpa. -123.192.117.70.in-addr.arpa. -jatek.origo.hu. -inbound.jnshh.com.netsolmail.net. -groszassociates.com. -software-files-a.cnet.com. -ikcstatic.krazystatic.com. -www.downtownbahostel.com. -www.radiomelodia.com.pe. -_ldap._tcp. -217.44.105.190.in-addr.arpa. -camerussia.ru. -fbcdn-profile-a.akamaihd.net. -configuration.apple.com. -13.227.103.93.in-addr.arpa. -www.monografias.com. -photos-h.ak.fbcdn.net. -65.247.1.181.in-addr.arpa. -s-static.ak.facebook.com. -190.41.4.186.in-addr.arpa. -mxserv1.swisstimeclub.ru. -a995.mm1.akamai.net. -47.88.204.190.in-addr.arpa. -horoscopos.prodigy.msn.com. -s2.youtube.com. -xwweaasj.cn. -chat3.doook.com. -cp36268.edgefcs.net. -mx02.bis.na.blackberry.com. -104.41.121.84.in-addr.arpa. -58.163.171.69.in-addr.arpa. -newsrss.bbc.co.uk. -www.myaudiq5.com. -mcvax4.d48.lilly.com. -twitter.com. -steklo.renet.ru. -a5.sphotos.ak.fbcdn.net. -www.prediccionesytarot.com. -photos-e.ak.fbcdn.net. -pasullivan.com.mt. -9.94.200.195.zen.spamhaus.org. -thomas.gov. -au.download.windowsupdate.com. -gazinvest.ru. -31.107.37.186.in-addr.arpa. -profile.ak.fbcdn.net. -42.91.177.76.in-addr.arpa. -www.google.com. -bing.com. -titanium30-en.url.trendmicro.com. -www.facebook.com. -33.7.31.189.in-addr.arpa. -by2msg3020507.gateway.messenger.live.com. -www.javatutoriales.com. -uv2adglzi.77vf. -a.root-servers.net. -17.60.149.187.in-addr.arpa. -creative.ak.fbcdn.net. -webssl.com. -184.35.166.190.in-addr.arpa. -189.157.168.192.in-addr.arpa. -www.xdir.com. -219.45.161.189.in-addr.arpa. -126.172.115.186.in-addr.arpa. -a.root-servers.net. -clubtochka.ru. -a.root-servers.net. -studiobritney.ning.com. -voipb.sip.yahoo.com. -crl.godaddy.com. -quebecoworld.com. -mail.yahoo.com. -www.wildfatties.com. -internationalmarinellc.com.s5a1.psmtp.com. -connect.facebook.net. -www.fncstatic.com. -developers.facebook.com. -www.facebook.com. -foursquare.com. -qjr1raiva.12bk. -photos-g.ak.fbcdn.net. -kokugai.com. -au.download.windowsupdate.com. -js.wlxrs.com. -bs.serving-sys.com. -www.conduit.com. -saibos-services.com. -blog.es.twitter.com. -api.facebook.com. -55.102.186.189.in-addr.arpa. -www.gfjapan.com. -a.root-servers.net. -mxav2.amecom.it. -107.234.234.189.in-addr.arpa. -sp.cwfservice.net. -myfeasts.blogspot.com. -a1877.phobos.apple.com. -_500_41_8. -88.14.124.190.in-addr.arpa. -mail2.citywide.com.au. -news.google.com.mx. -10.147.252.119.in-addr.arpa. -voipa.sip.yahoo.com. -developers.facebook.com. -150.238.120.186.in-addr.arpa. -www.digitalfotoclub.com. -ec.atdmt.com. -9-1.qlty.finarea.ch. -. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -ads27908.hotwords.com.br. -mail3.cs.state.ny.us. -www.facebook.com. -34.58.138.201.in-addr.arpa. -159.118.47.189.in-addr.arpa. -motd.fumadorasguarras.com. -segment-pixel.invitemedia.com. -rabanco.com. -a6.sphotos.ak.fbcdn.net. -tobolsk.info. -m.addthisedge.com. -static.ak.fbcdn.net. -www.elblogdechuchus.com. -51.131.159.190.in-addr.arpa. -teredo.ipv6.microsoft.com. -liteapps.mcafee.com. -www.alexanderrichterphoto.com. -s-assets.tp-cdn.com. -ocsp.comodoca.com. -www.monsterdivx.com. -www.allsaints.com. -sp.cwfservice.net. -photos-d.ak.fbcdn.net. -themes.googleusercontent.com. -224.86.171.59.in-addr.arpa. -www.elmundonewspaper.com. -teredo.ipv6.microsoft.com. -17.14.168.192.in-addr.arpa. -s-external.ak.fbcdn.net. -accounts.google.com. -www.facebook.com. -www.directferries.sk. -downloads.networkmagic.com. -a.root-servers.net. -accounts.google.com. -nimturbo.ru. -mail.in.ptpgh.com. -a1.sphotos.ak.fbcdn.net. -ru.norton.com. -149.178.138.201.in-addr.arpa. -htp.net. -www.rockambul.com. -152.169.120.87.in-addr.arpa. -decoracionesyeventos.blogspot.com. -ns2sw1.amhost.info. -ls2web.redmond.corp.microsoft.com. -3.2.144.189.in-addr.arpa. -mail.broganuk.com. -86.110.110.189.in-addr.arpa. -market.android.com. -alternatedjvu.sourceforge.net. -www.nubesnegras.com. -twsu.campus.mci.net. -static.ak.fbcdn.net. -www.dramastyle.com. -www.facebook.com. -149.211.212.108.in-addr.arpa. -akamai.turn.com. -voipa.sip.yahoo.com. -imagenescelestiales.blogspot.com. -rs409l36.rapidshare.com. -www.wiroos.com. -iebinc.com. -cambosoup.blogspot.com. -i.ytimg.com. -www.facebook.com. -dl27.hotgoo.com. -www.shelterpub.com. -ar-ar.facebook.com. -www.assoc-amazon.com. -es-la.facebook.com. -apps.facebook.com. -ven.nvidia.com. -id1.java551.come2play.com. -weather.service.msn.com. -206.61.38.190.in-addr.arpa. -www.argskill.com. -api.facebook.com. -img24.imageshack.us. -a745.g.akamai.net. -www.hibon.com. -signin.ebay.com. -forum.lingvo.ru. -never-let-me-go.foroactivo.com. -ipn.academia.edu. -conntest.nintendowifi.net. -static.ak.fbcdn.net. -_095_96_2. -a.root-servers.net. -es.kioskea.net. -a0.twimg.com. -mail.tridon.com. -bayal.blogspot.com. -translate.google.co.ve. -www.polesports.org. -www.facebook.com. -static.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -primecountry.com. -georges-flowers.com. -pop.aol.com. -pacifichealthcorp.com.s8b1.psmtp.com. -essentialhomme.com. -www.tradearabia.com. -byfiles.storage.msn.com. -www.tecamachalco.mobi. -www.ubiqua.net. -external.ak.fbcdn.net. -webassets.sparkybee.com. -11.239.162.200.in-addr.arpa. -www.livecams.com. -www.iabperu.com. -www.ritmosonlaino.com. -mailhost.ahigroup.com. -www.faceook.com. -www.reduc.edu.cu. -au.download.windowsupdate.com. -cdn.kakuroconquest.com. -mexicanainforma.com. -www.math.grin.edu. -external.ak.fbcdn.net. -validator.w3.org. -resumejob.ru. -www.cheapmonclerjacketsale.co.uk. -boblemke.blogspot.com. -www.massiveassaultnetwork.com. -mail.claasindia.com. -cs12843.vk.com. -www.jiriruzek.net. -a.root-servers.net. -nedschroef.be. -lascincoestaciones.blogspot.com. -www.blogherads.com. -app.offer99.com. -www.openclik.com. -www.msftncsi.com. -u14.eset.com.lan. -a1.sphotos.ak.fbcdn.net. -www.facebook.com. -chemcentral.com.s8a1.psmtp.com. -www.oxfamnovibpaktuit.nl. -stlarshabos.dotheortontab.tk. -a2.sphotos.ak.fbcdn.net. -atlantic-pub.com.bak-mx.na0104.smtpbak.com. -www.todoanimes.com. -check4.facebook.com. -87.26.45.24.in-addr.arpa. -rapidcityrec.com. -153.228.151.79.in-addr.arpa. -pixel.facebook.com. -253.105.92.78.in-addr.arpa. -_344_85_7. -lyrics.tunewiki.com. -299.channel.facebook.com. -idisk.mac.com. -www.google-analytics.com. -www.casinoval.com. -www.ons.mr. -bluehatuk.com.inbound10.mxlogicmx.net. -www.ttfn.net. -teredo.ipv6.microsoft.com. -middlefokpartners.com. -leproduct.com.inbound10.mxlogic.net. -childrensmemorial.org. -www.ford.nl. -129.32.212.189.in-addr.arpa. -94.69.47.189.in-addr.arpa. -www.xvideoslive.com. -www.google-analytics.com. -tps31.doubleverify.com. -byfiles.storage.msn.com. -revista-zoom.com.ar. -blairwilliams.com. -photos-f.ak.fbcdn.net. -rcp.na.blackberry.com. -postfix1.vitro.epldt.net. -time.chttl.com.tw. -www.pnosker.com. -13.184.38.190.in-addr.arpa. -m.addthisedge.com. -www.charlestonbusiness.com. -dns.msftncsi.com. -www.servercraft.co. -benz4ever.com. -images2.culiarmedia.com. -external.ak.fbcdn.net. -154.53.115.190.in-addr.arpa. -188.134.88.186.in-addr.arpa. -37-courier.push.apple.com. -104.226.10.186.in-addr.arpa. -profile.ak.fbcdn.net. -_275_66_5. -b._dns-sd._udp.lan. -cox-iternet.com. -s-static.ak.facebook.com. -platform.twitter.com. -spm02.pinehost.net. -www.facebook.com. -26.116.81.68.in-addr.arpa. -addons.mozilla.org. -www.informatica.ith.mx. -whos.amung.us. -www.google-analytics.com. -i2.ytimg.com. -ads1.msads.net. -109.179.82.200.in-addr.arpa. -www.royalskandia.com. -dbcc.edu. -contextmenu.toolbar.conduit-services.com. -pixel.quantserve.com. -upload.wikimedia.org. -external.ak.fbcdn.net. -mercuryexcelum.com.1.0001.arsmtp.com. -dcbrands.com.s6b2.psmtp.com. -arabic.arabia.msn.com. -a.root-servers.net. -150.151.228.190.in-addr.arpa. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -178.140.246.201.in-addr.arpa. -5.78.216.178.in-addr.arpa. -218.53.199.190.in-addr.arpa. -www.alu-stock.es. -0-jx-w.channel.facebook.com. -sp.cwfservice.net. -pixel.facebook.com. -90.24.160.187.in-addr.arpa. -fr-fr.facebook.com. -photos-d.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.googleadservices.com. -ip1.dynupdate.no-ip.com. -g.live.com. -amathusvip.ru. -tbr.ask.com. -photos-a.ak.fbcdn.net. -www.european-podcast-award.eu. -www.purnas.com. -cowboy.com. -100.155.60.186.in-addr.arpa. -event-post.ru. -www.facebook.com. -time.windows.com. -profile.ak.fbcdn.net. -7.134.121.124.in-addr.arpa. -cricket-league-of-champions.en.softonic.com. -curriculo.catho.com.br. -apple-mobile.query.yahooapis.com. -photos-a.ak.fbcdn.net. -118.208.122.189.in-addr.arpa. -external.ak.fbcdn.net. -35.198.132.190.in-addr.arpa. -tc22.easythumbhost.com. -ws-cloud-msgplus.linkury.com. -fei9988.3322.org. -photos-g.ak.fbcdn.net. -rcm-fr.amazon.fr. -winstar.com. -l-e.com.s6a2.psmtp.com. -et5.xhamster.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -s0.2mdn.net. -r.mzstatic.com. -msgs.smarterfox.com. -176.235.29.186.in-addr.arpa. -mcsoh.org. -www.tyrone-power.com. -tc.v16.cache8.c.youtube.com. -179.75.235.189.in-addr.arpa. -liveupdate.symantecliveupdate.com. -mets.crb.apmoller.net. -d.yimg.com. -74.54.174.189.in-addr.arpa. -sphotos.ak.fbcdn.net. -et7.xhamster.com. -tdkarat.ru. -productosweb.org. -36.194.3.188.in-addr.arpa. -api.twitter.com. -a.root-servers.net. -sedonasouladventures.com. -127.106.135.110.in-addr.arpa. -146.232.19.83.in-addr.arpa. -8wbhurv6l.w55v3k9p. -207.212.179.189.in-addr.arpa. -www.google-analytics.com. -www.quantumtouch.com. -videobam.com. -24.248.69.186.in-addr.arpa. -service.homepages.demon.net. -sp.cwfservice.net. -sarah-london.blogspot.com. -websearch.ask.com. -mightydeals.s3.amazonaws.com. -a.root-servers.net. -img.fewdress.com. -a.root-servers.net. -gamcaretradeservices.com. -developers.facebook.com. -www.matiogi.com. -t.co. -www.facebook.com. -www.nme.com. -courrier.fadq.qc.ca. -checkip.dyndns.com. -244.120.35.62.in-addr.arpa. -142.49.232.24.in-addr.arpa. -mail.mrdelaw.com. -8.101.123.186.in-addr.arpa. -162.224.58.186.in-addr.arpa. -a.root-servers.net. -xiscoekzo.files.wordpress.com. -106.206.214.189.in-addr.arpa. -www.youtube.com. -pixel.facebook.com. -lh6.googleusercontent.com. -www.newincredimail.com. -mail.bankofoldmonroe.com. -134.66.210.186.in-addr.arpa. -yahoo.com. -members.graphicsfactory.com. -vincitori.wordpress.com. -ad.yieldmanager.com. -loading.ninja.game321.com. -cdn.smosh.com. -www.cymax.com. -webgetclick.com.home. -a.root-servers.net. -s2.youtube.com. -em1x-198.lhr.messaging.nokia.com. -hasancanbozkurt.net. -auditsonmer.blogspot.com. -wispresort.com.inbound15.mxlogicmx.net. -googleads.g.doubleclick.net. -aptitudequestionsandanswers.in. -api.twitter.com. -www.openpa.net. -trivantisdev.com. -www.whitefrog.org. -rs233l34.rapidshare.com. -1804289383.localhost. -sagesoftware.com. -utess.ru. -view.atdmt.com. -223.89.19.95.in-addr.arpa. -s2.youtube.com. -247.219.155.189.in-addr.arpa. -www.facebook.com. -mail.onlinenetworking.com. -dns.msftncsi.com. -com-pac.com. -aflex.ru. -www.b2bonlinesolutions.com. -rmd.atdmt.com. -www.northropandjohnson.com. -www.changesxchange.com. -133.5.223.14.in-addr.arpa. -_882_86_3. -time.chttl.com.tw. -profile.ak.fbcdn.net. -thumbs.totale-defonce.com. -profile.ak.fbcdn.net. -johnsonmoncrief.com. -_ldap._tcp. -news.yahoo.com. -tropicfishhawaii.com. -www.wallsoffame.com. -m.facebook.com. -gobrainstrom.net. -mail.empireindustries.com. -securemetrics.apple.com. -www.google.com. -canal.univalle.edu.co. -lasenoritalasenorita.blogspot.com. -mail.puratone.com. -chart.vgmc.com. -133.212.32.72.in-addr.arpa. -a.root-servers.net. -banashare.com. -info.babylon.com. -dl-debug32.dropbox.com. -167.143.58.186.in-addr.arpa. -wxxr3vy4e.r02r9f2r. -201.67.25.186.in-addr.arpa. -photos-f.ak.fbcdn.net. -s3-eu-west-1.amazonaws.com. -services.runescape.com. -pagead2.googlesyndication.com. -www.wallpaperfans.com. -googleads.g.doubleclick.net. -google.com. -juventudenmarcha.wordpress.com. -accounts.google.com. -hotmail.com. -www.redtube.com. -img193.imageshack.us. -z8ojttuzg.06nx. -static.ak.fbcdn.net. -aleksey.tver.ru. -. -9.77.43.190.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -189.103.119.83.in-addr.arpa. -www.naqatube.com. -cgi1.ebay.com. -hwqm9j9r7.w38c8o7h. -mail.micmedia.ru. -www.noisemachine.com. -35.156.22.50.in-addr.arpa. -apps.facebook.com. -17.26.140.200.in-addr.arpa. -a.root-servers.net. -google.com. -138.255.28.80.in-addr.arpa. -73.238.200.195.in-addr.arpa. -www.markosweb.com. -www.megasecurity.org. -oscsm3y2r.99qe. -fvg.cgil.it. -gunsnrosesbootlegs.blogspot.com. -niunomas.foroactivo.com. -www.pe.pirelli.com. -www.actualizar-messenger.com. -122.49.103.76.in-addr.arpa. -media.admob.com. -113.23.168.192.in-addr.arpa. -gepigeny.hu. -170.89.102.71.in-addr.arpa. -a.root-servers.net. -web59516.mail.ac4.yahoo.com. -i3.ytimg.com. -a.root-servers.net. -a6.sphotos.ak.fbcdn.net. -3c2is992:.e41v2m1d. -admin.mundotoro.com. -aidps.atdmt.com. -d2060193.instant.xoom.it. -cdn.fastclick.net. -photos-c.ak.fbcdn.net. -www.funnyhub.com. -www.gstatic.com. -229.184.22.107.in-addr.arpa. -tele2adsl.dk.home. -a6.sphotos.ak.fbcdn.net. -cdn.widgets.spongecell.com. -photos-e.ak.fbcdn.net. -79.99.96.58.in-addr.arpa. -35.184.79.190.in-addr.arpa. -photos-a.ak.fbcdn.net. -abanfin.com. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -powervoice.at. -telaquecortar.wordpress.com. -photos-g.ak.fbcdn.net. -. -36.102.13.187.in-addr.arpa. -safebrowsing-cache.google.com. -rendezvous.blogs.nytimes.com. -4.36.203.190.in-addr.arpa. -frnx9q8kd.22ll. -87.14.62.186.in-addr.arpa. -luzverdadeterna.blogspot.com. -news.ino.com. -profile.ak.fbcdn.net. -a12.t26.net. -u.openx.net. -elseruno-gallery.blogspot.com. -192.40.198.190.in-addr.arpa. -a.root-servers.net. -twitter.com. -66.170.255.201.in-addr.arpa. -goo.gl. -rcp.eu.blackberry.com. -photos-d.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -. -235.31.249.201.in-addr.arpa. -time.stdtime.gov.tw. -167.47.231.77.in-addr.arpa. -secure-us.imrworldwide.com. -104.133.142.189.in-addr.arpa. -158.77.154.189.in-addr.arpa. -122.254.60.78.in-addr.arpa. -223.226.110.186.in-addr.arpa. -www.facebook.com. -profile.ak.fbcdn.net. -173.176.92.212.in-addr.arpa. -db1.stat.gov.lt. -sbcglobal.net. -www.facebook.com. -www.ca.uky.edu. -a1820.phobos.apple.com. -sv.monkeybroker.net. -code.jquery.com. -107.166.10.186.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -a0.twimg.com. -_ldap._tcp. -co123w.col123.mail.live.com. -time.chttl.com.tw. -www.20minutos.es. -www.traductordepaginasweb.com. -koala.webeasy.com. -ifxchange.appspot.com. -www.despegar.com. -43.177.47.190.in-addr.arpa. -sp.cwfservice.net. -ar-ar.facebook.com. -140.187.130.186.in-addr.arpa. -profile.ak.fbcdn.net. -www.aaronvaldez.com. -teredo.ipv6.microsoft.com. -photos-b.ak.fbcdn.net. -smtp.mtsolutions.net. -154.26.27.187.in-addr.arpa. -plusone.google.com. -bmw-vw.tk. -a-ak.static-rootmusic.com. -pixel.facebook.com. -profile.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -entertainment-memorabilia.shop.ebay.com. -assets3.castle.zgncdn.com. -1.19.29.186.in-addr.arpa. -www.heymister.net. -l.sharethis.com. -75.90.23.69.in-addr.arpa. -www.linkedin.com. -web39207.mail.mud.yahoo.com. -i1gpwuhrk.p88i6r3u. -www.l.google.com. -router.tlvmedia.com. -orcart.facebook.com. -mobth915.photobucket.com. -15.58.209.201.in-addr.arpa. -yahoo.de. -www.theecommercepro.com. -fbcdn-profile-a.akamaihd.net. -www.margaritabonita.com. -pixel.facebook.com. -. -www.minigamesfreak.com. -a3.sphotos.ak.fbcdn.net. -store.grooveshark.com. -a.root-servers.net. -www.meowmistidawn.com. -support.google.com. -www.biap.org. -support.google.com. -a.root-servers.net. -darling.artmodelingstudios.com. -www.unknownnews.net. -www.facebook.com. -www.greekairsoft.gr. -www.monografias.com. -www.le-maitre-du-chaos.skyrock.com. -safebrowsing.clients.google.com. -superiorwallsystems.com. -95.36.209.189.in-addr.arpa. -praetoriangroup.com.s6a1.psmtp.com. -www.google.com. -199.208.122.84.in-addr.arpa. -fxfeeds.mozilla.com. -sthi.com.inbound10.mxlogic.net. -4t8yva9ap.v06m0j7r. -www.youtube.com. -www.penews.com. -_500_61_5. -www.youtube.com. -jeffmo.us. -chromejs.s3.amazonaws.com. -i4.ytimg.com. -010b36352e35342e36312e39340c40686f746d61696c2e636f6d00.lbl8.mailshell.net. -media.elnuevoheraldo.com. -i2.ytimg.com. -www.facebook.com. -l.yimg.com. -www.mascotas.org. -www.gardenphotos.com. -71.232.240.189.in-addr.arpa. -ku7t46lw9.e36k5v2b. -safebrowsing-cache.google.com. -a747.v.phobos.apple.com. -emob178.photobucket.com. -a.c-0.19-a30fb000.30011.1518.19d4.3ea1.210.0.k5gu7j63sb9mz9wvg8g2f9uart.avqs.mcafee.com. -s1-onenote.vo.msecnd.net. -developers.facebook.com. -39.65.3.186.in-addr.arpa. -_257_43_8. -www.bytepr.com. -rus-eda.ru. -external.ak.fbcdn.net. -www.itait.org.mx. -dj7nmfd6odmeo.cloudfront.net. -33.66.91.186.in-addr.arpa. -s.youtube.com. -traauctions.com. -summit.retailcustomerexperience.com. -60.149.157.189.in-addr.arpa. -245.13.73.190.in-addr.arpa. -b.scorecardresearch.com. -businessdailyreview.com. -ad.yieldmanager.com. -97.134.225.186.in-addr.arpa. -22.197.6.187.in-addr.arpa. -www.shell-storm.org. -s-static.ak.fbcdn.net. -lulila21.blogspot.com. -profile.ak.fbcdn.net. -255.235.254.190.in-addr.arpa. -clients2.google.com. -mich.edu. -www.googleadservices.com. -37.244.236.98.in-addr.arpa. -www.foxsportsla.com. -sites.google.com. -dron.beth.com. -www.google.com. -231.19.233.190.in-addr.arpa. -. -sites.google.com. -cribreak.com. -iphone-wu.apple.com. -profile.ak.fbcdn.net. -secure.drilledmouths.com. -a.root-servers.net. -idonno.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -46.233.227.189.in-addr.arpa. -www.facebook.com. -amherst.k12.wi.us. -1.37.112.190.in-addr.arpa. -orcart.facebook.com. -lb._dns-sd._udp.lan. -mx.youtube.com. -www.google.com. -a8.sphotos.ak.fbcdn.net. -connecta-2000.softonic.com. -whatismyip.org. -cdn.api.twitter.com. -gwpjosae2.b88m7j2n. -headbangorgtfo.files.wordpress.com. -platform.ak.fbcdn.net. -a.root-servers.net. -. -161.226.194.180.in-addr.arpa. -updatekeepalive.mcafee.com. -mail-pz0-f47.google.com. -mx.answers.yahoo.com. -sp.cwfservice.net. -clients1.google.com. -www.switchnode.com. -gaiaware.net. -www.servidoresrack.com. -t1.gstatic.com. -jorgebarontelevision.com.co. -a.root-servers.net. -my.ebay.com. -thailandpopper.com. -conn.skype.com. -community.d.xx.openx.com.akadns.net. -loading2.widdit.com. -97.158.188.190.in-addr.arpa. -countduhmoney.com. -android.clients.google.com. -thedesignsuperhero.com. -107.130.64.186.in-addr.arpa. -pixel.facebook.com. -a7.sphotos.ak.fbcdn.net. -exp02.eset.com. -livefiles18.vo.msecnd.net. -238.123.24.201.in-addr.arpa. -photos-f.ak.fbcdn.net. -comtrend.com.ua. -a.root-servers.net. -safebrowsing.clients.google.com. -baymsg1010734.by2.gateway.edge.messenger.live.com. -www.gfxrls.com. -denshou.wordpress.com. -a1725.l.akamai.net. -photos-f.ak.fbcdn.net. -kdoudyxnkxuusofs.info. -vthumb.ak.fbcdn.net. -tap2-cdn.rubiconproject.com. -ajax.googleapis.com. -dsn3.d.skype.net. -clients1.google.com. -juegos.latino.msn.com. -s-external.ak.fbcdn.net. -www.vicensvives.com.co. -www.facebook.com. -photos-h.ak.fbcdn.net. -images0-ig-opensocial.googleusercontent.com. -architetto-casa.blogautore.repubblica.it. -i1.ytimg.com. -news.google.com.mx. -www.buenscoring.com. -apps.facebook.com. -ssl.gstatic.com. -pixel.facebook.com. -ad.yieldmanager.com. -ali-299.zapto.org. -179.35.199.190.in-addr.arpa. -external.ak.fbcdn.net. -toolbar.google.com. -179.174.163.189.in-addr.arpa. -www.cocukoyunlari4.com. -144.68.29.186.in-addr.arpa. -2.9.c.f.8.0.6.8.2.5.2.2.f.0.c.3.6.7.e.9.7.3.1.4.0.0.0.0.1.0.0.2.ip6.arpa. -alleventsgroup.com. -99.25.106.95.in-addr.arpa. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -57.98.183.83.in-addr.arpa. -teredo.ipv6.microsoft.com. -ssl.google-analytics.com. -_ldap._tcp. -rs342tl5.rapidshare.com. -api.twitter.com. -ocsp.thawte.com. -www.instalacionesdeportivas.es. -profile.ak.fbcdn.net. -weatherhistory.almanac.com. -funbike.com. -pnrws.skype.com. -itunes.apple.com. -profile.ak.fbcdn.net. -www.calendarclub.co.uk. -pix04.revsci.net. -134.220.230.190.in-addr.arpa. -pintandoluces.blogspot.com. -clients2.google.com. -7.189.166.78.in-addr.arpa. -safebrowsing-cache.google.com. -blog.fo.ifeng.com. -developers.facebook.com. -sn133w.snt133.mail.live.com. -jebo.ru. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -zbsbms7lm.62zh. -time.chttl.com.tw. -urbansketchers-moscow.blogspot.com. -jus.com.br. -www.google-analytics.com. -it-it.facebook.com. -mail2.motion-ind.com. -mail2.gidinvest.ru. -www.adobe.com. -android.clients.google.com. -mail.ruentex.com.tw. -www.action-games.co. -www.juegosmz.com. -175.107.13.80.in-addr.arpa. -wunruxzcdu.net.home. -a.root-servers.net. -foxpool.com. -www.khosoof.com. -87.165.22.190.in-addr.arpa. -114.213.168.82.in-addr.arpa. -www.multilateralfund.org. -227.225.240.84.in-addr.arpa. -crl.microsoft.com. -apps.facebook.com. -www.compresores.redee.com. -mineracholino.com.ar. -static.ak.fbcdn.net. -0-jh-w.channel.facebook.com. -t0.gstatic.com. -horizonfinancial.org. -a4.sphotos.ak.fbcdn.net. -www.sinembargo.mx. -dns.msftncsi.com. -beacon-1.newrelic.com. -pool.ntp.org. -refresh.monohrome.com. -profile.ak.fbcdn.net. -www.usavisasonline.com. -35.2.7.189.in-addr.arpa. -77.220.75.94.zz.countries.nerd.dk. -cdn.advertserve.com. -www.love-m.com. -www.google-analytics.com. -safebrowsing-cache.google.com. -photos-h.ak.fbcdn.net. -faculty.citadel.edu. -jers1.info. -www.google.com. -scores.neonplay.com. -a.root-servers.net. -safebrowsing.clients.google.com. -www.youtube.com. -d8bz4crf4.k48u1e7g. -www.proxytopsitelist.com. -photos-d.ak.fbcdn.net. -developers.facebook.com. -mail.ulcomnet.ru. -r02.member.ukl.yahoo.com. -ajax.googleapis.com. -cloud-search.linkury.com. -www.ibersearch.com. -73.244.165.190.in-addr.arpa. -d2057087.instant.xoom.it. -a.root-servers.net. -0-jl-w.channel.facebook.com. -73.101.250.190.in-addr.arpa. -50.149.220.66.in-addr.arpa. -21.80.59.186.in-addr.arpa. -dns.msftncsi.com. -images02.olx.com.sv. -www.consult.com. -mp3topdeals.com. -dns.msftncsi.com. -www.facebook.com. -a4.sphotos.ak.fbcdn.net. -hscontshitifti.mp. -pineapp.health.gov.il. -www.ebay.es. -i6.ifile.it. -mdc-games.clanteam.com. -www.pitbullclothing.com. -www.maquina-tragaperras.org. -lb._dns-sd._udp.lan. -teredo.ipv6.microsoft.com. -adsfront.iminent.com. -a.root-servers.net. -gu.e-hentai.org. -google.com. -mscrl.microsoft.com. -www.5xxx.ru. -safebrowsing.clients.google.com. -cs83.vk.com. -185.73.37.190.in-addr.arpa. -112.142.188.189.in-addr.arpa. -www.stephenkingshop.com. -webishdesign.com. -ocsp.verisign.com. -content.netsuite.com. -www.iamm.org.my. -ntp1.tummy.com. -safebrowsing-cache.google.com. -nserver.calipso.com.co. -static.ak.fbcdn.net. -st.xiami.com. -40.0.157.201.in-addr.arpa. -sup.live.com. -ep00.epimg.net. -clients1.google.com.mx. -almas.com.mx. -office.microsoft.com. -s1-powerpoint.vo.msecnd.net. -www.facebook.com. -clients2.google.com. -creative.ak.fbcdn.net. -s.youtube.com. -gw0.aholding.com.ua. -190.182.39.116.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -www.buenosairesfreetour.com. -www.facebook.com. -249.19.52.186.in-addr.arpa. -149.150.164.187.in-addr.arpa. -www.verynicejoke.com. -51.152.80.190.in-addr.arpa. -lesta-kr.ru. -intranet.icipc.org. -www.google.com. -ax.su.itunes.apple.com. -a.root-servers.net. -173.41.122.85.in-addr.arpa. -crystalseye.redbubble.com. -www.facebook.com. -www.facebook.it. -fls.doubleclick.net. -www.astrojar.org.uk. -photos-e.ak.fbcdn.net. -wpi-mexico.com. -teredo.ipv6.microsoft.com. -24.229.171.69.in-addr.arpa. -102.149.238.190.in-addr.arpa. -smetrics.aetn.com. -static.ak.fbcdn.net. -www.thedmonline.com. -widgets.amung.us. -_474_78_6. -a.root-servers.net. -tcr.tynt.com. -en.wikipedia.org. -r9aa:cx7q.e19a4d5k. -old.longjuyt2tugas.com. -www.tuffluvusa.com. -147.23.168.192.in-addr.arpa. -118.197.242.189.in-addr.arpa. -194.146.129.94.in-addr.arpa. -ssl.gstatic.com. -rathole.ru. -a.root-servers.net. -themes.googleusercontent.com. -rterybrstutnrsbberve.com. -apple-mobile.query.yahooapis.com. -www.adobe.com. -mail.flyrichmond.com. -android.clients.google.com. -r._dns-sd._udp.lan. -estilos.prodigy.msn.com. -telecinc.com. -pixel.facebook.com. -platform.twitter.com. -www.centroagb.cl. -ksn3-11.part1.kaspersky-labs.com. -fluoramec.com. -www.cityofmovies.com. -a1.sphotos.ak.fbcdn.net. -video.google.com. -futurclima.it. -livereports.gpupdate.net. -ssl.gstatic.com. -www.lechaim.ru. -s0.2mdn.net. -ads.cleveland.com. -www.youtube.com. -i4.ytimg.com. -a3.sphotos.ak.fbcdn.net. -ips-glass.ru. -photos-a.ak.fbcdn.net. -251.162.244.190.in-addr.arpa. -spectrumbloggers.com. -aploan.com.s7b2.psmtp.com. -ssl.gstatic.com. -delta-sport.ru. -lasclementinas.com. -1.map.pop6.com. -ib.adnxs.com. -profile.ak.fbcdn.net. -uc7e8x6ty.52xc. -176.234.82.177.in-addr.arpa. -c-0.19-a3090081.23.1518.19d3.3ea1.410.0.b8etnr6scdgjt2agmdu7i489av.avqs.mcafee.com. -www.google.com. -\(none\). -227.3.151.187.in-addr.arpa. -104.114.137.186.in-addr.arpa. -www.sex8.cc. -apac002.fra.samsungsocialhub.com. -60.129.31.186.in-addr.arpa. -photos-c.ak.fbcdn.net. -impactopositivo.bligoo.com. -bobbrownauto.com. -localhost. -135.193.174.189.in-addr.arpa. -bit.ly. -149.28.168.192.in-addr.arpa. -p42-buy.itunes.apple.com. -mail.comgate.cz. -www.theryancenter.com. -down10.zol.com.cn. -www.gstatic.com. -groups.google.com.mx. -www.msftncsi.com. -osogay.disqus.com. -www.hotmail.com. -www.coolest-baby-shower-idea.com. -dnl-01.geo.kaspersky.com. -irc.purchaseservice.com. -es.justin.tv. -rntcalls.com. -ssl.gstatic.com. -sp.cwfservice.net. -ecsnyder.com. -57.112.107.187.in-addr.arpa. -thean.com. -224.117.145.201.in-addr.arpa. -7p7xc58by.95nt. -a4.mzstatic.com. -www.descubrewindowslive.com. -50.174.171.201.in-addr.arpa. -mx1.botkyrka.see. -a1.sphotos.ak.fbcdn.net. -_354_51_7. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -cvw7.navy.mil. -altfarm.mediaplex.com. -133.24.146.99.in-addr.arpa. -cdd.emakumeak.org. -www.conduit.com. -profile.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -login.live.com. -a1.sphotos.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -s0.2mdn.net. -i.imgur.com. -ss.websearch.ask.com. -www.manualmovil.com. -www.facebook.com. -ayreycia.com. -southernphone.com.au. -sites.google.com. -www.hotmail.com. -on.fb.me. -developers.facebook.com. -e82eikdbp.71um. -cloudscaling.com. -ru.radioera.com.ua. -160.110.164.110.in-addr.arpa. -100.149.43.211.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -www.belkin.com. -b.scorecardresearch.com. -widgets.amung.us. -xxlcc.com. -cydia.hackulo.us. -112.41.171.187.in-addr.arpa. -www.igadi.org. -www.reddoorindy.com. -www.greatplacetowork.com.co. -any-world.ngd.ysm.yahoodns.net. -168.171.255.201.in-addr.arpa. -ns4.p13.dynect.net. -km. -a5.sphotos.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -_020_85_2. -135.101.191.186.in-addr.arpa. -v4.netlogstatic.com. -accoladehomecare.com. -www.quanser.com. -i1.ytimg.com. -243.56.60.190.in-addr.arpa. -johnmerritt.wikidot.com. -a6.sphotos.ak.fbcdn.net. -angg.ru. -a.root-servers.net. -photos-h.ak.fbcdn.net. -6xj.info. -a.tribalfusion.com. -www.makeupobsessed.com. -carew.com. -static-js.veevr.com. -balancingact-africa.com. -zokugo-dict.com. -www.youtube.com. -www.enelfacebook.com. -a4.sphotos.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -_ldap._tcp. -163.6.134.190.in-addr.arpa. -usctap3132.apac.schp.com. -www.saintnick.org. -talkx.l.google.com. -mail.asig.us. -i46.tinypic.com. -www.fourwheelcampers.com. -connect.facebook.net. -www.youtube.com. -berkelouw.com.au. -118.168.56.186.in-addr.arpa. -ax.init.itunes.apple.com. -erdemimports.com. -ping.chartbeat.net. -a6.sphotos.ak.fbcdn.net. -22.107.248.201.in-addr.arpa. -forum.b92.net. -answers.nordstrom.com. -creative.ak.fbcdn.net. -i.ytimg.com. -images.apple.com. -survey.edmunds.com. -t1.tagstat.com. -redirector.c.youtube.com. -cnfg.montiera.com. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -www.muscat-festival.com. -2.bp.blogspot.com. -rasthg.ru. -nucleotide.ru. -fbcdn-sphotos-a.akamaihd.net. -www.xxx-69-xxx.com. -smssandmold.com. -www.youtube.com. -pixel.facebook.com. -smena.tusur.ru. -150.225.146.186.in-addr.arpa. -_430_11_9. -www.google.com. -www.ppvnetworks.com. -gfx4.hotmail.com. -63.159.10.186.in-addr.arpa. -93.172.123.201.in-addr.arpa. -photodoctorgraphics.com. -www.onepcbsolution.com. -cleantown.ru. -a6.sphotos.ak.fbcdn.net. -a.root-servers.net. -32.191.146.187.in-addr.arpa. -nppl.c.app.nintendowifi.net. -ksn2-12.kaspersky-labs.com. -nl.sykes.com. -93.35.152.189.in-addr.arpa. -panajidb.foroactivo.net. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -selectownerscorp.com.au. -248.73.169.178.in-addr.arpa. -www.verbinteractive.com. -pop.e-medex.com. -www.medical-conditions.org. -emailmgr.aetv.com. -ib.adnxs.com. -blog.zap2it. -www.metroflog.com. -97.71.55.65.in-addr.arpa. -sp.cwfservice.net. -www.hotmail.com. -52.177.233.190.in-addr.arpa. -225.178.70.71.in-addr.arpa. -mailstore1.secureserver.net. -32.98.250.67.in-addr.arpa. -www.www8-hp.com. -d15gt9gwxw5wu0.cloudfront.net. -a.root-servers.net. -www.sociedaduruguaya.org. -ns2.attdns.com. -145.208.168.192.in-addr.arpa. -tc3.easythumbhost.com. -settings.toolbar.search.conduit.com. -www.nuevomovil.com. -www.ellsberg.net. -. -158.200.167.77.in-addr.arpa. -froggy.com.au. -dns.msftncsi.com. -au.download.windowsupdate.com. -hzimc01.hzmot.com. -xtra1.gpsonextra.net. -static.ak.fbcdn.net. -time.chttl.com.tw. -188.142.255.201.in-addr.arpa. -167.16.180.189.in-addr.arpa. -111.75.234.189.in-addr.arpa. -als.wikipedia.org. -www.safenet.com. -www.snopes.com. -pub.betclic.com. -91.128.153.187.in-addr.arpa. -zolotoerunohotel.ru. -www.voyages-sncf.com. -mail.skynet.lv. -a4.sphotos.ak.fbcdn.net. -creative.ak.fbcdn.net. -www.google.com. -nr.rr.com. -22.208.55.110.in-addr.arpa. -173.211.111.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -176.1.149.190.in-addr.arpa. -samosval-market.ru. -a1.sphotos.ak.fbcdn.net. -229.90.112.79.in-addr.arpa. -ws.tapjoyads.com. -google.com. -www.bayharborislands.org. -www.google.com. -googleads.g.doubleclick.net. -116.118.4.190.in-addr.arpa. -brand-way.ru. -mail.interdepotservices.com. -228.3.79.187.in-addr.arpa. -s.ytimg.com. -ad.xtendmedia.com. -www.seleccionuruguayadefutbol.com. -bestmanager.rags.ru. -igor.facemoods.com. -profile.ak.fbcdn.net. -streetdate.radio.com. -weather.wapp.wii.com. -82.248.250.189.in-addr.arpa. -www.connect.facebook.com. -www.rootsweb.ancestry.com. -64.118.103.201.in-addr.arpa. -www.modernhomedesigns.info. -jers2.info. -www.buy4now.ie. -www.bankrollsports.com. -cf.blogetery.com. -data.goodgamestudios.com. -a.root-servers.net. -profile.ak.fbcdn.net. -vp.sip.messenger.msn.com. -www.libreriaselatril.com.ar. -photos-a.ak.fbcdn.net. -www.blogtopsites.com. -www.arbada.org. -keais.com.s9a1.psmtp.com. -121.138.40.187.in-addr.arpa. -a-0.19-210fb801.c0c0081.1518.19d4.3ea1.210.0.9nvrwias8sz3akezrl3whq4et5.avqs.mcafee.com. -iglasses.en.softonic.com. -www.dwfitnessclubs.com. -ntp.glb.nist.gov. -in.emachines.com. -intelligented.com. -allencanning.com. -110.27.205.187.in-addr.arpa. -cdn.adnxs.com. -oq-smtp02.rutgers.edu. -accentpaper.ru. -twitter.com. -equip.ru. -www.mumosengen.com. -primerosauxilioscomunidad.blogspot.com. -_ldap._tcp.dc._msdcs.nextiraone.com.mx. -c.betrad.com. -www.facebook.com. -www.yjeverlasting.com. -146.68.225.190.in-addr.arpa. -brandfundamentals.com. -www.clivebarker.info. -plusone.google.com. -218.134.211.201.in-addr.arpa. -180.7.56.187.in-addr.arpa. -pjstar.eviesays.com. -a.root-servers.net. -ms.ferr.ru. -photos-e.ak.fbcdn.net. -api.twitter.com. -nueterra.com.s9b1.psmtp.com. -gpuac.org. -www.google.com. -idpix.media6degrees.com. -pho3nix-bf.deviantart.com. -us.mc656.mail.yahoo.com. -pop3.hot.glbdns.microsoft.com. -fwl-tv.foroes.org. -a6.sphotos.ak.fbcdn.net. -radiusadvisors.com.inbound15.mxlogicmx.net. -ads.yimg.com. -dehoy.blogspot.com. -a.root-servers.net. -artisanent.com. -www.torrentflux.com. -mangahentai.org.com. -ddi.com. -aeroexchange.aerocontrolex.com. -e-stud.vgtu.lt. -wpad. -a.root-servers.net. -120.47.139.190.in-addr.arpa. -www.zueiai.net. -21.142.242.109.in-addr.arpa. -m.facebook.com. -static.ak.fbcdn.net. -www.tysknews.com. -elfriorock.com. -prensalibre.d.xx.openx.com.akadns.net. -db._dns-sd._udp.lan. -updateext.services.openoffice.org. -www.leedeelive.com. -ssl.google-analytics.com. -acpimc2b.pancanal.com. -7ch826l9y.u54f5u6d. -ikuzoanime.com. -connect.facebook.net. -clwebb.com. -www.google.com. -queensu.ca. -profootballhof.com. -stairs4u.com. -loading4.widdit.com. -92.71.55.65.in-addr.arpa. -discountchristmasshop.com. -atmofresh.ru. -lasermax.com. -www.youtube.com. -212.220.168.192.in-addr.arpa. -japattack.com. -faceboooklikes.com. -120.134.158.175.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -www.mtv.bumeran.com.ar. -shiptoshore.com. -s-static.ak.facebook.com. -cpleft.com. -www.google.ae. -www.nuevoplaneta.com. -37.165.152.189.in-addr.arpa. -mail2.cocoplans.com. -a5.sphotos.ak.fbcdn.net. -twitter.com. -tc.v19.cache6.c.youtube.com. -accounts.google.com. -swm-eu.com.s200a1.psmtp.com. -217.74.69.189.in-addr.arpa. -m.facebook.com. -240.81.151.186.in-addr.arpa. -vira.biz. -a2.twimg.com. -djsolo.ru. -photos-h.ak.fbcdn.net. -115.19.194.187.in-addr.arpa. -a.root-servers.net. -132.54.171.209.in-addr.arpa. -213.234.100.78.in-addr.arpa. -ak.imgfarm.com. -www.scentoflife.com.au. -time.nist.gov. -quality-plumbing.net. -www.subpelis.info. -clock.isc.org. -comcast.net. -mail. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -190.161.166.190.in-addr.arpa. -a.root-servers.net. -a1402.w40.akamai.net. -207.240.183.66.in-addr.arpa. -b.scorecardresearch.com. -28.66.179.187.in-addr.arpa. -us.data.toolbar.yahoo.com. -www.mondo-libero.eu. -freedomloansolutions.com. -a.root-servers.net. -books.google.com. -r._dns-sd._udp.lan. -www.facebook.com. -sites.google.com. -245.102.55.157.in-addr.arpa. -xp.yimg.com. -_979_76_7. -226.242.43.190.in-addr.arpa. -htmortgage.net. -www.fotothing.com. -www.youtube.com. -114.174.208.202.in-addr.arpa. -www.jogosdomario.tk. -www.asos.com. -0-jg-w.channel.facebook.com. -kobold.stu.neva.ru. -switch.atdmt.com. -myfunnyfamily.com. -102.207.82.200.in-addr.arpa. -41.9.219.108.in-addr.arpa. -_786_44_2. -a4.sphotos.ak.fbcdn.net. -mscrl.microsoft.com. -platform.ak.fbcdn.net. -pagead2.googlesyndication.com. -jp.loobiz.com. -asktoolbar.weather.com. -kyungbock.net. -static.ak.fbcdn.net. -www.moneymanagement.com.au. -www.xrxgsn.com. -www.hdtvtunerinfo.com. -www.adobe.com. -csi.gstatic.com. -sos-dan.ru. -alerts.conduit-services.com. -109.246.112.187.in-addr.arpa. -www.alarabiya.net. -www.espncricinfo.com. -32.wap517.biz. -www.stardoll.com. -eg4y:eolc.60un. -190.141.253.201.in-addr.arpa. -phvids.voxcdn.com. -criminologiamentescriminales.blogspot.com. -dns.msftncsi.com. -89.244.177.187.in-addr.arpa. -117.53.41.77.in-addr.arpa. -ns3.domain24.de. -_869_58_5. -www.textsrv.com. -service.gc.apple.com. -erreway.net.ru. -www.facebook.com. -herramientas.bbmundo.com. -mail.modia.com. -cix.co.kr. -acs-it.ru. -18.204.61.81.in-addr.arpa. -fr-fr.facebook.com. -24.media.tumblr.com. -api.twitter.com. -get.adobe.com. -50.43.137.175.in-addr.arpa. -167.250.111.190.in-addr.arpa. -conair.com. -backup-spool.iccx.net. -te.en.alibaba.com. -profile.ak.fbcdn.net. -247.171.16.88.in-addr.arpa. -www.contractorcalculator.co.uk. -blog51.fc2.com. -mail.narvajoesuu.ru. -www9.effectivemeasure.net. -exch.winwardsilks.com. -53.13.198.187.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -233.36.173.201.in-addr.arpa. -49.187.171.187.in-addr.arpa. -market.android.com. -estj.msn.com. -248.74.173.190.in-addr.arpa. -rss.com.com. -lh3.googleusercontent.com. -ributionapplyt.fm. -livefiles18.vo.msecnd.net. -r955totyv.92po. -26.32.60.187.in-addr.arpa. -d-e-n-e-g.net.ru. -www.correiomagico.com. -ssl.gstatic.com. -127.0.0.1. -wechslerbecker.com. -photos-c.ak.fbcdn.net. -ad.reachjunction.com. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -mta6.am0.yahoodns.net. -ads.bluelithium.com. -173.250.197.217.in-addr.arpa. -img843.imageshack.us. -delivery.trafficbroker.com. -safebrowsing-cache.google.com. -googleads.g.doubleclick.net. -eatonhydraulics.com. -dnl-01.geo.kaspersky.com. -c.betrad.com. -metcomm.net. -www.breakdanceforum.de. -www.abbywintersrocks.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.ecoanimal.com. -click.icetraffic.com. -liveupdate01.asus.com. -a6.sphotos.ak.fbcdn.net. -bloggerphotos.l.google.com. -91.120.215.189.in-addr.arpa. -www.tomsguide.fr. -v9.nonxt4.c.pack.google.com. -rcp.na.blackberry.com. -lab3.lbt.nsk.ru. -se.bing.com. -www.toyotire.es. -savetubevideo.com. -billets-train-avion.vivastreet.fr. -antarinith.blogspot.com. -www.gstatic.com. -a6.sphotos.ak.fbcdn.net. -external.ak.fbcdn.net. -ci.sherwood.or.us.s9b1.psmtp.com. -google.com. -l1.yimg.com. -a.root-servers.net. -home.mcafee.com. -creative.ak.fbcdn.net. -clients1.google.com.mx. -166.44.251.190.in-addr.arpa. -growingchild.com. -www.moreemilk.com. -17.38.25.88.in-addr.arpa. -www.tepapa.govt.nz. -waseca.copyleft.no. -dsn1.d.skype.net. -yahoo.download.vmn.net. -api10.thetrafficstat.net.lan. -243.240.141.201.in-addr.arpa. -www.youtube.com. -gim.net. -pixel.facebook.com. -199.82.172.187.in-addr.arpa. -pixel.facebook.com. -seify.ru. -133.87.9.83.in-addr.arpa. -71.56.244.189.in-addr.arpa. -233.248.200.112.in-addr.arpa. -www.saopauloguide.travel. -picsart.com. -sofla.com. -televisa.esmas.com. -trinaturk.com. -www.dailyhotties.com. -concordenterprises.com. -www.ll.com. -profile.ak.fbcdn.net. -pix04.revsci.net. -www.bywifi.com. -7fdykzmvc.24wz. -static-96-234-151-89.bltmmd.fios.verizon.net. -s-external.ak.fbcdn.net. -time.stdtime.gov.tw. -photos-b.ak.fbcdn.net. -api.autocompleteplus.com. -a6.sphotos.ak.fbcdn.net. -www.mininova.org. -www.toy-wave.com. -ctcpk8:tz.p06b2k5h. -81.27.29.186.in-addr.arpa. -96.98.102.201.in-addr.arpa. -content.yieldmanager.edgesuite.net. -137.173.167.74.in-addr.arpa. -css.healthkicker.com. -musikexpress.de. -www.optimedia.es. -creative.ak.fbcdn.net. -f.facemoods.com. -ymlp266.net. -www.yamahamotos.cl. -apis.google.com. -ohsofab.com. -computersplace.net. -adslmail.es. -www.yildiz.edu.tr. -247.215.184.81.in-addr.arpa. -googleads.g.doubleclick.net. -sito-stal.ru. -gac.edu. -twitter.com. -dress-proffi.ru. -www.hot-files.net. -a2.sphotos.ak.fbcdn.net. -i3.ytimg.com. -mail.lumusnet.com. -symbolism.wikia.com. -ad.yieldmanager.com. -www.insurance.com. -www3.snapfish.co.uk. -www.honeymag.com. -cdn.api.twitter.com. -133.198.127.200.in-addr.arpa. -cnilink.com. -92.166.232.190.in-addr.arpa. -encyclopediaurantia.org. -a.root-servers.net. -www.lengua.profes.net. -greek-recipe.blogspot.com. -js.fengwu.net. -193.97.173.189.in-addr.arpa. -mscrl.microsoft.com. -static.ak.fbcdn.net. -201-43-30-122.dsl.telesp.net.br. -photos-c.ak.fbcdn.net. -pagead2.googlesyndication.com. -65.43.35.99.in-addr.arpa. -135.152.157.190.in-addr.arpa. -profile.ak.fbcdn.net. -cdn.loading321.com. -viajarencruceros.com. -plusone.google.com. -a-0.19-2109e041.5020082.1518.19d4.3ea1.400.0.is7mmqtl93n5sfff22b8e4dvvq.avqs.mcafee.com. -161.37.35.189.in-addr.arpa. -a.root-servers.net. -42.133.52.190.in-addr.arpa. -platform.twitter.com. -124.185.27.189.in-addr.arpa. -omsd.k12.ca.us. -photos-f.ak.fbcdn.net. -www.turnto23.com. -apps.facebook.com. -lp.live.monsters.wooga.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -172.176.5.117.in-addr.arpa. -widgets.montiera.com. -ja.wikipedia.org. -basoscomunicantes.blogspot.com. -setting3.yeahost.com. -tsm04.eset.com. -ulaex.cu. -add.bugun.com.tr. -ultimarealestate.com. -_946_47_8. -www.adobe.com. -chhg.biz. -googleads.g.doubleclick.net. -www.facebook.com. -portal.avaya-news.com. -msg-01-0802.vetonaula.fi. -a.root-servers.net. -_295_92_7. -l.d. -server.iad.liveperson.net. -crl.microsoft.com. -a8.sphotos.ak.fbcdn.net. -graphicsys.com. -22.200.20.186.in-addr.arpa. -liveupdate.symantecliveupdate.com. -u35.eset.com. -www.theshemaleorgy.com. -ford.co. -a.root-servers.net. -freelotto.com. -145.180.181.190.in-addr.arpa. -blu124.mail.live.com. -gfx1.hotmail.com. -lh3.ggpht.com. -64.6.203.24.in-addr.arpa. -platform.ak.fbcdn.net. -revistatejido.blogspot.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -denis.stalker.h3q.com. -igloodesign.net. -solihullsfc.ac.uk. -teredo.ipv6.microsoft.com. -104.5.55.186.in-addr.arpa. -100.101.168.192.in-addr.arpa. -www.baincapital.com. -sp.edu.sg. -sencolatinamerica.com.s6b1.psmtp.com. -friendsinwar.com. -a995.mm1.akamai.net. -mail.cyberdom.ru. -41.30.56.85.in-addr.arpa. -dr._dns-sd._udp.0.2.168.192.in-addr.arpa. -android.clients.google.com. -a7.sphotos.ak.fbcdn.net. -www.askamum.co.uk. -img2.blogblog.com. -bel-net.ru. -0-74.channel.facebook.com. -bttracker.debian.org. -ws.amazon.com. -60.91.153.189.in-addr.arpa. -cdn.api.twitter.com. -ow.ly. -www.google-analytics.com. -133.193.213.83.in-addr.arpa. -97.222.156.190.in-addr.arpa. -api.twitter.com. -orcart.facebook.com. -simssoc.game.playfish.com. -external.ak.fbcdn.net. -crl.microsoft.com. -www.lombards.com.au. -a.root-servers.net. -nino.ru. -luzete.com. -www.formspring.me. -t3.gstatic.com. -chgz.ru. -53.48.54.65.in-addr.arpa. -www.escolar.com.mx. -www.lookandfeelbetter.com. -wer.microsoft.com. -kristynenapiolina.blogspot.com. -s.youtube.com. -about-diving.ch. -s.ytimg.com. -mail.sunyjcc.edu. -photos-b.ak.fbcdn.net. -mail.sleekcom.com. -a3.sphotos.ak.fbcdn.net. -apple.com. -www.ultrarun.es. -tr0.ds.ignames.net. -158.17.228.189.in-addr.arpa. -167.225.49.96.in-addr.arpa. -br.fling.com. -fbcdn-sphotos-a.akamaihd.net. -thebigtv.com. -a-0.19-a7091081.e0b0083.1518.19d3.3ea1.410.0.vmlhtvjuflgiddme6imndigcd6.avqs.mcafee.com. -139.107.49.190.in-addr.arpa. -_052_36_2. -. -buzznet-76.vo.llnwd.net. -rad.msn.com. -photos-g.ak.fbcdn.net. -www.christiansanchini.com. -f8ej9:w9k.f41q7l9u. -us1.badoo.com. -a4.sphotos.ak.fbcdn.net. -tempurga.blogspot.com. -207.51.132.190.in-addr.arpa. -www.statcounter.com. -a.root-servers.net. -12mdosa.tk. -static.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -themes.googleusercontent.com. -beccue.com. -a1.sphotos.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -113.80.137.66.in-addr.arpa. -us.andronavi.com. -everybody.ru. -213.52.232.190.in-addr.arpa. -a.root-servers.net. -se.itunes.apple.com. -www.sindicalistas.net. -distrowatch.org. -hotmail.com. -www.hotmail.com. -www.adgame.co.kr. -94.139.18.187.in-addr.arpa. -www.smi.ru. -a7.sphotos.ak.fbcdn.net. -www.visitstockholm.com. -profile.ak.fbcdn.net. -a.root-servers.net. -peru.com. -surfrider.org.inbound15.mxlogic.net. -spynet2.microsoft.com. -www.locurajuegos.com. -sp.ask.com. -a.root-servers.net. -nf.net. -147.150.254.188.in-addr.arpa. -pool.ntp.org.home. -i1.ytimg.com. -37.163.27.201.in-addr.arpa. -ssl.gstatic.com. -cpl.net. -filologocfa.blogspot.com. -s.ytimg.com. -. -www.ucarshare.com. -9.198.31.190.in-addr.arpa. -googleads.g.doubleclick.net. -photoshop.nl.malavida.com. -google.com. -a2.sphotos.ak.fbcdn.net. -www.google-analytics.com. -a.root-servers.net. -smtp.rimamfg.com. -m.facebook.com. -www.laboratoriodeconcienciadigital.com. -apps.facebook.com. -myculture.tumblr.com. -www.wdc.com. -183.118.18.187.in-addr.arpa. -mail.wfmcdonald.com. -m.addthisedge.com. -luminouslogic.com. -228.48.94.186.in-addr.arpa. -wssecmgr2.atlanta.hp.com. -pixel.facebook.com. -25.27.167.190.in-addr.arpa. -ksn2.kaspersky-labs.com. -cs303208.vk.com. -beta.data.toolbar.yahoo.com. -32.169.6.200.in-addr.arpa. -114.181.112.99.in-addr.arpa. -frenital.byu.edu. -dns.msftncsi.com. -x18q2wii6.54nc. -shiruva.files.wordpress.com. -www.facebook.com. -e3353.c.akamaiedge.net. -server.cpmstar.com. -a4.sphotos.ak.fbcdn.net. -www.oribesalon.com. -www.waraqat.net. -ritual-nfl.aztecadeportes.com. -ntzxot6hp.z36u6h4l. -yahoonimbuz.com. -widgets.twimg.com. -mail.rsdcmi.com. -profile.ak.fbcdn.net. -www.opcionempleo.com.mx. -api.twitter.com. -sp.cwfservice.net. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -digitalpaper.com. -3ae1mc4rm4e9l.c.yom.mail.yahoo.com. -static.4shared.com. -mail.asltg2.com. -hsi-kbw-134-3-251-55.hsi14.kabel-badenwuerttemberg.de. -mediacdn.disqus.com. -tctechcrunch2011.files.wordpress.com. -ksn1-12-part1.kaspersky-labs.com. -a.root-servers.net. -ar.wikipedia.org. -checkip.dyndns.org. -mail.ausapts.com. -resolver1.bullguard.ctmail.com. -194.5.139.189.in-addr.arpa. -www.el-nacional.com. -mediennetzwerk.de. -mail.google.com. -platform.twitter.com. -lavidadehugo.blogspot.com. -s.ytimg.com. -zapatosmoda.org. -thedenimguy.com. -s.ytimg.com. -38.204.7.189.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -232.249.114.186.in-addr.arpa. -clients4.google.com. -www.gentedlsur.blogspot.com. -plus.google.com. -230.246.67.201.in-addr.arpa. -238.68.166.190.in-addr.arpa. -tiscali.fr. -android.clients.google.com. -camptowanda.com. -angieliddiard.scentsy.us. -www.facebook.com. -_320_63_9. -cdn.api.twitter.com. -m.cxt.ms. -m.addthisedge.com. -seg.sharethis.com. -33.74.50.186.in-addr.arpa. -www.hoe1.com. -player2.narrowstep.tv. -www.mercadolibre.com.mx. -a6.sphotos.ak.fbcdn.net. -www.d943b904.com. -api.twitter.com. -bayworldmfg.com. -ax.init.itunes.apple.com. -developers.facebook.com. -p4mlnulls.53ki. -mail3.demirdokum.ru. -www.grisb.org. -www.l.google.com. -vikont-spb.ru. -thesystemis.com. -lj.libraryjournal.com. -154.152.252.180.in-addr.arpa. -www.ziggysgames.com. -twitter.com. -www.deadlydarling.tumblr.com. -shedmediaus.com.inbound15.mxlogic.net. -teredo.ipv6.microsoft.com. -www.mercadopago.com.br. -www.chatbazaar.com. -www.solovenezolanas.com. -photos-e.ak.fbcdn.net. -www.cityoforlando.net. -224.237.101.109.in-addr.arpa. -megustavivirlavida.blogspot.com. -ar.games.yahoo.com. -www.google.com. -www.youtube.com. -mail2.ostling.com. -s.youtube.com. -photos-e.ak.fbcdn.net. -165.221.33.176.in-addr.arpa. -sp.ask.com. -50.61.117.91.in-addr.arpa. -ajax.googleapis.com. -1.gravatar.com. -es.wikipedia.org. -mailhostrdc.aptiumoncology.com. -www.yellbox.com. -www.elpais.com. -www.youth-guard.org. -bmxxx.notengodominio.com. -kaboomtune.com. -www.facebook.com. -d11777b.ess.barracudanetworks.com. -153.226.106.189.in-addr.arpa. -de-de.facebook.com. -m.facebook.com. -regionlimanoticias.com. -www.google-analytics.com. -hbw:79a9x.g50b5u8m. -ksn2-12.kaspersky-labs.com. -centrodiseno.com. -iitx.com. -ofertasonlineweb.com. -resolver2.gdata.ctmail.com. -d:atmd872.o16p4h5x. -a4.sphotos.ak.fbcdn.net. -6.41.252.201.in-addr.arpa. -latam.msn.com. -hardcorejkd.com. -hermes.marketmetrix.com. -187.35.20.190.in-addr.arpa. -www.facebook.com. -rt1401.infolinks.com. -ww2.arthritis.org. -176.150.106.124.in-addr.arpa. -delcogeneralcontractors.com. -101.86.37.186.in-addr.arpa. -itunes.apple.com. -www.deanjrobinson.com. -static.4shared.com. -s.imwx.com. -ssl.gstatic.com. -a1757.g.akamai.net. -150.206.110.189.in-addr.arpa. -a1408.w43.akamai.net. -mariaelisacrochet.blogspot.com. -voipc.sip.yahoo.com. -79.151.14.98.in-addr.arpa. -iwon.com. -64.6.194.190.in-addr.arpa. -optimized-by.rubiconproject.com. -tc.v3.cache3.c.pack.google.com. -ads2.msads.net. -a5.sphotos.ak.fbcdn.net. -anku-aruma.blogspot.com. -photos-a.ak.fbcdn.net. -www.dcsea.uqroo.mx. -a7.sphotos.ak.fbcdn.net. -billing.sharo4ka.ru. -a6.sphotos.ak.fbcdn.net. -www.mejoramos.com. -www.facebook.com. -s-static.ak.facebook.com. -translate.google.com. -a7.sphotos.ak.fbcdn.net. -zk44vlvx8.65pa. -197.226.131.187.in-addr.arpa. -chichismusings.blogspot.com. -safebrowsing.clients.google.com. -11.186.31.99.in-addr.arpa. -_163_60_7. -ping3.teamviewer.com. -www.philosophytogo.org. -v10.nonxt4.c.pack.google.com. -de-de.facebook.com. -156.176.5.189.in-addr.arpa. -a.root-servers.net. -ssl.gstatic.com. -gay-lesbianas.vivavisos.com.ar. -external.ak.fbcdn.net. -d2108043.xoom.it. -es-la.facebook.com. -s.ytimg.com. -colorysabor.blogspot.com. -mediatecpub.com. -gala-shop.ru. -www.power-21.com. -a.root-servers.net. -66.243.188.189.in-addr.arpa. -www.facebook.com. -92.217.19.186.in-addr.arpa. -starinsur.com. -a8.sphotos.ak.fbcdn.net. -o.imgbox.com. -17.131.128.186.in-addr.arpa. -maxfreund.files.wordpress.com. -74.164.30.78.in-addr.arpa. -www.uncontactedtribes.org. -photos-f.ak.fbcdn.net. -www.interlinkeo.com. -sebastiancorp.net. -0.0.0.0. -sexualidad.es.msn.com. -www.athmg.com. -us.i1.yimg.com. -ksn2-12.kaspersky-labs.com. -www.misfrases.org. -www.facebook.com. -www.trainsonthebrain.com. -relay2.terranet.ru. -ksn2-12.kaspersky-labs.com. -direxpo.com. -photos-c.ak.fbcdn.net. -www.danceradio.es. -csi.gstatic.com. -116.203.214.186.in-addr.arpa. -shanaflare.minitokyo.net. -_270_92_7. -24.159.244.67.in-addr.arpa. -a997.mm1.akamai.net. -vostokms.ru. -cignethealth.com. -kimochiii.foroes.net. -forums.mi6-hq.com. -guestbooks.pathfinder.gr. -www.google.com. -www.fullchristmas.com. -nullmx.mcshi.com. -checkip.dyndns.org. -craftolution.ru. -188.194.141.201.in-addr.arpa. -inc.com.s8a1.psmtp.com. -www.google.com. -190.76.115.186.in-addr.arpa. -mail1.qmiaw.com. -107.161.6.189.in-addr.arpa. -a11.t26.net. -rchsd.org. -grindrguy.com.s3.amazonaws.com. -bodyforlife-tracker.com. -www.v-like-vintage.net. -breakthu.com. -redfaceplus.com. -www.google.com. -gofree.indigo.ie. -a8.sphotos.ak.fbcdn.net. -s10.histats.com. -googleads.g.doubleclick.net. -casasbahia.com. -primediacmmg.com. -_863_43_0. -137.204.229.189.in-addr.arpa. -tradetang.com. -www.mixx.com. -tmail.com. -www.facebook.com. -photos-b.ak.fbcdn.net. -www.eluniversaltv.com.mx. -contextmenu.toolbar.conduit-services.com. -zonacine.uservoice.com. -itx5.smartadserver.com. -slhtobit01.shangri-la.com. -s10.histats.com. -www.twenga.nl. -www.hsbc.com.mx. -youtubebajar.chatango.com. -meetingmillionares.com. -lb._dns-sd._udp.0.137.168.192.in-addr.arpa. -www.funnypenispictures.com. -sadiegen.blogspot.com. -vcs2.msg.yahoo.com. -smtp.fianzasmonterrey.com.mx. -chelvis.3x.ro. -a.root-servers.net. -16.110.139.205.in-addr.arpa. -cloud-q.duba.net. -dns.msftncsi.com. -fhc.alphagammadelta.org. -google.com. -outlaw-hs.com. -dco.nmbbm.jp. -safebrowsing-cache.google.com. -26.138.10.187.in-addr.arpa. -geo.it. -s.srvntrk.com. -sites.google.com. -mail.spiratex.com. -sliddoors.ru. -synacortoshiba.112.2o7.net. -a1892.phobos.apple.com. -photos-a.ak.fbcdn.net. -www.guppies.com. -www.uhs.edu.pk. -77.21.235.98.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -torrent-download.to. -33.190.63.69.in-addr.arpa. -ntp.glb.nist.gov. -www.brandsouthafrica.com. -none. -199.0.137.186.in-addr.arpa. -i3.ytimg.com. -mail.sboa.com. -www.google.com. -gj37765.blogspot.com. -www.macstation.com.ar. -css.lainformacionalsegundo.com. -gfx4.hotmail.com. -www.streaming-films.info. -photos-h.ak.fbcdn.net. -mail.kns.net. -imap.gmail.com. -alerts.conduit-services.com. -skarevolution69.files.wordpress.com. -google.com. -b.scorecardresearch.com. -www.tipsdrills.com. -cdn-static.liverail.com. -142.189.171.110.in-addr.arpa. -freenet-reg-ripn.ru. -download.cyberlink.com. -static.ak.fbcdn.net. -46.181.63.69.in-addr.arpa. -a.root-servers.net. -ayma.com. -a.root-servers.net. -v1.panthercdn.com. -209.176.120.200.in-addr.arpa. -travelprosinc.com. -www.felixagm.es. -sumisoporamor.blogspot.com. -rfigroup.com. -5.249.6.201.in-addr.arpa. -img123.exs.cx. -www.darktorrents.com. -inbound.toyotawc.com.netsolmail.net. -d2091958.xoom.it. -a.root-servers.net. -www.servicioscreativos.com. -cdn.api.twitter.com. -pix04.revsci.net. -fbcdn-photos-a.akamaihd.net. -a8.sphotos.ak.fbcdn.net. -kastenchase.com. -_705_61_8. -www.digitalartscalifornia.com. -c9uqhrli8.30aa. -dns.msftncsi.com. -a-0.19-210fb071.c880580.1518.19d3.3ea1.210.0.iia1lvgs7trinugwplwbbha5aq.avqs.mcafee.com. -www.facebook.com. -account.cancer.org. -key-copy.ru. -qvapotejat.com. -profile.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -eoweqokc.org. -www.facebook.com. -0.static.ak.fbcdn.net. -psicologiaymigracion.blogspot.com. -www.blsclinic.com. -mail.putnamco.org. -15.180.145.201.in-addr.arpa. -inbound.bwe-nc.com.netsolmail.net. -metrocast.net. -80.155.97.94.in-addr.arpa. -m.facebook.com. -_599_34_2. -www.peeblesplay.com. -www.bonusthemes.com. -pr.prchecker.info. -sms.siemens.com. -hp.nknox.k12.in.us. -teredo.ipv6.microsoft.com. -www.nic.cd. -252.218.212.116.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -dbzepisodeorg.chatango.com. -api.twitter.com. -m.hotmail.com. -dnl-01.geo.kaspersky.com. -r.nexac.com. -www.google-analytics.com. -caglesinc.com. -nickthompson.com. -tools.google.com. -a2.sphotos.ak.fbcdn.net. -dualstack.ipv6-exp.l.google.com. -oliveoil.wholesaleonlineweb.com. -17.159.253.190.in-addr.arpa. -www.wmitechnologies.com. -sites.google.com. -margulies.com.inbound15.mxlogic.net. -a5.sphotos.ak.fbcdn.net. -albionauto.ru. -webres2.bullguard.ctmail.com. -bowietownmedical.com. -www.problemsolving.net. -themoneyconverter.com. -148.147.176.190.in-addr.arpa. -pvp.com. -9.173.204.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -cust22764-1.in.mailcontrol.com. -www.udelas.ac.pa. -113.15.39.187.in-addr.arpa. -hzrcoq8ih.10no. -external.ak.fbcdn.net. -shadow.mature.nl. -profile.ak.fbcdn.net. -blog.formspring.me. -17.177.105.186.in-addr.arpa. -a.root-servers.net. -no-one.com. -rs543l35.rapidshare.com. -210.203.206.186.in-addr.arpa. -time-nw.nist.gov. -46.229.34.189.in-addr.arpa. -a-0.19-2709a081.99c0083.1518.19c2.3ea1.210.0.aktazdp51b34gma5pp33cfbhh5.avqs.mcafee.com. -veksel.komitex.ru. -www.christandpopculture.com. -mt1.google.com. -tap2-cdn.rubiconproject.com. -a.root-servers.net. -teredo.ipv6.microsoft.com. -www.facebook.com. -sp.cwfservice.net. -www.adtool.de. -arielluque.blogspot.com. -133.226.27.190.in-addr.arpa. -api.twitter.com. -a.root-servers.net. -168.158.218.186.in-addr.arpa. -avin02.melange.net. -gecits.com. -casscomm.com.s9b2.psmtp.com. -www.feedcat.net. -dns.msftncsi.com. -tegam.com. -mx.dlls.pa.frontiernet.net. -127.92.9.81.in-addr.arpa. -static.ak.fbcdn.net. -loc1.eu1.badoo.com. -m.addthisedge.com. -orfodpc985862.sh.marrcorp.marriott.com. -view.atdmt.com. -a.root-servers.net. -fdsn0.skype.net. -www.spermed.net. -aka-cdn-ns.adtech.de. -trac.qutecom.org. -www.amanngirrbach.com. -ads.iforex.com. -photos-f.ak.fbcdn.net. -i3.ytimg.com. -periodico.morelos.gob.mx. -s4.histats.com. -saillavka.ru. -ced.sascdn.com. -71.96.85.77.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -123-outlook-express-backup.programas-gratis.net. -155.108.168.192.in-addr.arpa. -accounts.google.com. -app.reg.techweb.com. -a.root-servers.net. -138.230.69.94.in-addr.arpa. -245.245.135.188.in-addr.arpa. -4:9nrmxww.i31g1n2l. -bedewsd01.npsp.com. -eun.org. -a2.sphotos.ak.fbcdn.net. -26.79.179.189.in-addr.arpa. -c1.tacdn.com. -tags.crwdcntrl.net. -ocsp.verisign.com. -lacocinademiabue.blogspot.com. -jp.123rf.com. -randewy.ru. -www.google.com. -eligrey.com. -dezcom.ru. -a.root-servers.net. -revolutionmedia.ign.com. -sc6.rules.mailshell.net. -www.pauldewar.ca. -external.ak.fbcdn.net. -fp3.wg1.b.yahoo.com. -meroo.polyvore.com. -zitomedia.com. -support.google.com. -a6.sphotos.ak.fbcdn.net. -amer.rel.msn.com. -a.root-servers.net. -impact-in.jobstreet.com. -www.facebook.com. -142.27.82.201.in-addr.arpa. -a.root-servers.net. -118.85.191.186.in-addr.arpa. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -photos-g.ak.fbcdn.net. -246.239.86.67.in-addr.arpa. -pogovorka.ru. -ustarb001ads.ww005.siemens.net.med.siemens.de. -www.google.com. -platform.ak.fbcdn.net. -53.160.166.190.in-addr.arpa. -a.root-servers.net. -external.ak.fbcdn.net. -120.26.250.188.in-addr.arpa. -191.84.108.71.in-addr.arpa. -i1.ytimg.com. -profile.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -api.airpush.com. -104.25.225.190.in-addr.arpa. -a.root-servers.net. -www.tomrobinsonphotography.com. -es.answers.yahoo.com. -photos-h.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -searchclient.live.net. -a3.sphotos.ak.fbcdn.net. -mail.thplastics.com. -www.youtube.com. -www.myconnectfm.com. -236.241.174.190.in-addr.arpa. -datafirst.fr. -s-static.ak.facebook.com. -sites.google.com. -fm-realty.com. -p1t.ru. -cs953.vk.com. -www.mariaauxiliadora.org.mx. -apple-pie.in. -on24.com.dnsbl7.mailshell.net. -safebrowsing-cache.google.com. -a.root-servers.net. -25.media.tumblr.com. -mail1.jandp.com.sa. -connect.facebook.net. -te10.kontera.com. -s10.histats.com. -www.facebook.com. -www.google.com. -a.root-servers.net. -bt-service.ru. -images2.memegenerator.net. -23.10.43.186.in-addr.arpa. -www.facebook.com. -www.organizatusviajes.com. -tvcsp.com. -146.16.0.192.in-addr.arpa. -84.156.113.190.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -amdc-smp01.intranet.mckinsey.com. -39.51.252.201.in-addr.arpa. -seg.p.sharethis.com.akadns.net. -photos-e.ak.fbcdn.net. -klaus-schimanski.de. -creative.ak.fbcdn.net. -36.139.94.190.in-addr.arpa. -vogdesigns.com. -a.root-servers.net. -mattters.com. -thefinecut.blogspot.com. -echo.edge.messenger.live.com. -48-courier.push.apple.com. -google.com. -0-38.channel.facebook.com. -mx2.mcn.org.gslb.pphosted.com. -static.ak.fbcdn.net. -a.root-servers.net. -ocsp.thawte.com. -a7.sphotos.ak.fbcdn.net. -webcache.googleusercontent.com. -a.root-servers.net. -magicphotoshop.com. -shelbygt500review.com. -www.comparere.com. -css.wlxrs.com. -. -a2.sphotos.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -img862.imageshack.us. -24.134.44.62.in-addr.arpa. -askville.amazon.com. -msgr.updates.yahoo.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -140.47.66.189.in-addr.arpa. -seoul.fm. -130.178.94.208.in-addr.arpa. -ads.genericlink.com. -64.129.8.87.in-addr.arpa. -img5.joyreactor.ru. -macmiller.com. -photos-d.ak.fbcdn.net. -dem0003.in. -35.160.160.186.in-addr.arpa. -files.discountechnology.com. -fxfeeds.mozilla.com. -www.submitblognow.info. -fbcdn-sphotos-a.akamaihd.net. -mannyzoom.com. -accounts.google.com. -epost.fo. -sp.cwfservice.net. -ksn2-12.kaspersky-labs.com. -91.123.138.201.in-addr.arpa. -s1-word-view.vo.msecnd.net. -www.heredis.com. -vblk3mtfy.52vq. -217.214.10.187.in-addr.arpa. -arizona.diamondbacks.mlb.com. -blog.bjrn.se. -thefamousgroup.com.1.0001.arsmtp.com. -www.drtuber.com. -genesis.1337x.org. -static.ak.fbcdn.net. -axnvmip7g.b81y9j5m. -mx.astrology.yahoo.com. -photos-d.ak.fbcdn.net. -136.254.38.180.in-addr.arpa. -bay.gateway.messenger.live.com. -_259_22_6. -js.wlxrs.com. -imagess.ru. -www.facebook.com. -a.root-servers.net. -www.netmanager.com.br. -juventudxhardcore.blogspot.com. -106.52.8.200.in-addr.arpa. -111.170.18.95.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -mail.telecomholdings.com. -smtp.kclife.com. -ksn2-12.kaspersky-labs.com. -webcache.googleusercontent.com. -6zuqsydog.m92s2p6l. -pagead2.googlesyndication.com. -www.hon.com. -ssl.google-analytics.com. -inbound.capitolmed.com.netsolmail.net. -cs505502.vkontakte.ru. -144.86.194.187.in-addr.arpa. -astroline.ru. -www.marco.org.mx. -tracker.xpear.de. -mediacdn.disqus.com. -azorero.blogspot.com. -www.shockmd.com. -mx1.pspvodka.ru. -platform.twitter.com. -s0.2mdn.net. -twitter.com. -a.root-servers.net. -www.massnurses.org. -com.imangi.s3-website-us-east-1.amazonaws.com. -173.230.195.187.in-addr.arpa. -a.root-servers.net. -www.trackmusic.com.ar. -www.md-dui-defense.com. -1.119.223.189.in-addr.arpa. -elmundomagicode-reina.blogspot.com. -frases.eslamoda.com. -mail.bluetie.com. -ad.adnetwork.net. -tr.adinterax.com. -static-1.farmville.zgncdn.com. -apps.facebook.com. -www.top50dancepop.es. -google.com. -ktrailer.blogspot.com. -www.idiomascuc.com. -ksn2-12.kaspersky-labs.com. -mail.adpk.net. -okc.mx0.rhinocommunications.net. -secure.aolanswers.com. -www.babeforums.org. -s-static.ak.facebook.com. -www.facebook.com. -ns1.eu.bitnames.com. -resolute-midatlantic.com.inbound15.mxlogic.net. -18.48.101.189.in-addr.arpa. -103.11.168.192.in-addr.arpa. -sitelife.clarionledger.com. -123.245.132.187.in-addr.arpa. -fred-graichen.de. -store.notionsmarketing.com. -netrscape.net. -www.google.com. -3.0.168.192.in-addr.arpa. -48.44.122.186.in-addr.arpa. -1.0.168.192.in-addr.arpa. -140.137.124.77.in-addr.arpa. -www.itadvocate.com.au. -xtra1.gpsonextra.net. -29.91.160.24.in-addr.arpa. -mail.google.com. -a.root-servers.net. -google.com. -moboogie.com. -sitecheck2.opera.com. -ffrtrgfdf.com. -ad.xtendmedia.com. -photos-c.ak.fbcdn.net. -www.google-analytics.com. -21.13.67.213.in-addr.arpa. -owensborograin.com.s8a1.psmtp.com. -i2.ytimg.com. -111.29.229.190.in-addr.arpa. -a.root-servers.net. -_836_57_2. -1-0-1-0.category.programsbase.com. -sunstone.com. -228.141.254.77.in-addr.arpa. -uplus.ru. -static.ak.facebook.com. -time.chttl.com.tw. -guicci.ru. -i.ytimg.com. -photos-a.ak.fbcdn.net. -cartoonnetwork.com.mx. -d2ks4vnin.n76v8o6f. -100.220.192.187.in-addr.arpa. -althing.org. -cmd.ru. -lt3opi:pp.q33t2n6p. -ecbldhaka.com. -www.cht.in. -www2.viamichelin.com. -developers.facebook.com. -gorbushina.ru. -ocsp.verisign.com. -sp.cwfservice.net. -mob51.photobucket.com. -google.com. -www.facebook.com. -ns1.relex.com. -pagead2.googlesyndication.com. -mx3.umflint.edu. -chatcluster.scruffapp.com. -www.youtube.com. -keflog.com. -swaroop.deviantart.com. -46.159.106.177.in-addr.arpa. -110.127.179.190.in-addr.arpa. -a995.mm1.akamai.net. -www.metronoticias.com.mx. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.twitter.com. -252.155.102.41.in-addr.arpa. -s-static.ak.facebook.com. -ladygaga.wikia.com. -i2.ytimg.com. -www.calculopesoideal.com. -graph.facebook.com. -kidsrus.ru. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -rovio.appads.com. -www.mrauto.cl. -43.220.247.189.in-addr.arpa. -199.18.115.189.in-addr.arpa. -www.robertososa.com.mx. -radi2.com. -bangalicommunity.com. -25.93.102.200.in-addr.arpa. -rogers.com. -apps.facebook.com. -224.250.93.186.in-addr.arpa. -186.106.145.187.in-addr.arpa. -ak-media.soundcloud.com. -www.peinadosycortes.com. -92.20.100.157.in-addr.arpa. -www.origamiseiten.de. -www.barefootfoundation.com. -www.imhc.mil.kr. -bestsmileys.com. -5.198.52.186.in-addr.arpa. -id.google.com.mx. -profile.ak.fbcdn.net. -fpmccann.co.uk. -mail.close.ru. -d2060276.instant.xoom.it. -s1-word-edit.vo.msecnd.net. -pixel.facebook.com. -61.187.127.200.in-addr.arpa. -rad.msn.com. -floridabuilderappliances.com. -titanium30-en.url.trendmicro.com. -diosrestauramatrimonios.blogspot.com. -img100.xvideos.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -130.181.29.88.in-addr.arpa. -proxy-sn.contacts.msn.com. -drw-milliman.com. -www.motopartscenter.com. -www.google.com. -ols.systemofadown.com. -a.root-servers.net. -external.ak.fbcdn.net. -59.34.178.190.in-addr.arpa. -146.73.1.201.in-addr.arpa. -photos-c.ak.fbcdn.net. -69.133.13.186.in-addr.arpa. -creative.ak.fbcdn.net. -11.118.112.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -bestbuytest.convertlanguage.com. -gl.wikipedia.org. -plus.google.com. -time.stdtime.gov.tw. -it.justin.tv. -www.eroticperfection.com. -go.microsoft.com. -229.140.2.181.in-addr.arpa. -jers1.info. -static.ak.facebook.com. -comm-2000.com.inbound10.mxlogic.net. -cs5058.vkontakte.ru. -www.apple-mac.cz. -225.254.251.190.in-addr.arpa. -static.app.widdit.com. -dnl-01.geo.kaspersky.com. -pixel.facebook.com. -mx.siemens-club.org. -rmgmedia.com. -static.ak.fbcdn.net. -ccgetsemani.wordpress.com. -irc.purchaseservice.com. -cdn.theknot.com. -server1.transammonia.net. -mail.vidnoe-grad.ru. -search.twitter.com. -view.atdmt.com. -b-sidemg.com. -mx2.maildefender.net. -www.acblack.com. -www.dhl.co.in. -a5.sphotos.ak.fbcdn.net. -th06.deviantart.net. -api.twitter.com. -129.144.252.190.in-addr.arpa. -sharpeiclub.ru. -19-courier.push.apple.com. -www.facebook.com. -www.bloob.fr. -11.136.16.62.in-addr.arpa. -caketin.honeyrosebakery.com. -www.crunchbase.com. -mobth1076.photobucket.com. -a.root-servers.net. -travel.state.gov. -ut7.xhamster.com. -i-sec.slutload-media.com. -www.techlabs4u.com. -133.186.25.125.in-addr.arpa. -madeira-lets.com. -a3.sphotos.ak.fbcdn.net. -msc.wlxrs.com. -profile.ak.fbcdn.net. -img.seriesgo.com. -www.youtube.com. -tbcom.ru. -mail.soft.com. -65.225.80.186.in-addr.arpa. -104.105.230.190.in-addr.arpa. -miplandeboda.blogspot.com. -www.googleadservices.com. -accuratedoor.com. -a5.sphotos.ak.fbcdn.net. -1n1.mooo.com. -www.facebook.com. -www.facebook.com. -_502_08_7. -www.agoda.cz. -rhap5tbq8.48bv. -abitur.mipt.ru. -this.content.served.by.adshuffle.com. -215.65.155.201.in-addr.arpa. -a.root-servers.net. -static.olx.com. -www.google-analytics.com. -www.gstatic.com. -www.asstoyedshemales.com. -api.facebook.com. -60.217.210.201.in-addr.arpa. -search.babylon.com. -88.50.11.188.in-addr.arpa. -ym.adnxs.com. -www.las-palmas-24.com. -vvnktku.vlingo.com. -fw.kose.edu.ee. -59.175.6.186.in-addr.arpa. -googleads.g.doubleclick.net. -ui.skype.com. -a.root-servers.net. -www.singlescrowd.com. -www.towerdefenceworld.com. -www.nyctourism.com. -ssl.gstatic.com. -www.dirtbox.net. -2j2c12fes.68yb. -home-design-software-review.toptenreviews.com. -fbcdn-profile-a.akamaihd.net. -photos-h.ak.fbcdn.net. -tracker.thepiratebay.org. -www.four05.nl. -statse.webtrendslive.com. -cs301510.vk.com. -ensombrerada.blogspot.com. -rmd.atdmt.com. -1-210.channel.facebook.com. -mail.dauphintechnologie.net. -gj77l2roa.37ap. -berettaargentina.com.ar. -www.staypoland.com. -www.advertising.expedia.com. -photos-g.ak.fbcdn.net. -www.destentoradverteren.nl. -104.113.51.190.in-addr.arpa. -profile.ak.fbcdn.net. -www.eco-nutricionhumana.blogspot.com. -40.219.134.187.in-addr.arpa. -unitedco.net. -a2.sphotos.ak.fbcdn.net. -m.facebook.com. -arquivo.arkbr.com.br. -www.academictutorials.com. -manage.ixwebhosting.com. -vikingpump.com. -www.greenstarholistix.com. -secure-uk.imrworldwide.com. -photos-d.ak.fbcdn.net. -www.f2000delasamericas.com. -www.atufavor.com.mx. -polisci.ucla.edu. -51.116.111.124.in-addr.arpa. -e566.b.akamaiedge.net. -weblogger-dynamic-lb.playdom.com. -40.165.242.201.in-addr.arpa. -118.17.80.92.in-addr.arpa. -moltaqa1.com. -p.d.ovi.com. -www.appitalism.com. -108.2.73.189.in-addr.arpa. -drcnh.org. -evsecure-ocsp.verisign.com. -mtalk.google.com. -cdn.api.twitter.com. -katerawlings.com. -maps.google.com. -evsecure-crl.verisign.com. -megusta.followland.com. -www.relishgourmet.com. -www.101babyshowerideas.com. -photos-f.ak.fbcdn.net. -93.61.1.189.in-addr.arpa. -api.twitter.com. -a743.g.akamai.net. -www.linuxhomenetworking.com. -a4.sphotos.ak.fbcdn.net. -torrents.edwardk.info. -gmail.com. -a995.mm1.akamai.net. -appworld.blackberry.com. -kirstinz.en.made-in-china.com. -couponbuddy.s3.amazonaws.com. -impisr.edunsk.ru. -groups.l.google.com. -144.162.67.187.in-addr.arpa. -www.woodcentral.com. -touch.facebook.com. -translate.google.com.mx. -elvela.org. -uniquemadness.com. -gencoat.com. -cafe.mt.iphone.sgnapps.com. -211.218.161.201.in-addr.arpa. -profiles.takingitglobal.org. -velocent.net. -papa-anggry.blogspot.com. -i.w55c.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -static.ak.facebook.com. -15.172.88.200.in-addr.arpa. -www.facebook.com. -153.125.109.89.in-addr.arpa. -profile.ak.fbcdn.net. -rest-img.msg.yahoo.com. -photos-a.ak.fbcdn.net. -logv18.xiti.com. -elliman.com.s9b1.psmtp.com. -ad-g.doubleclick.net. -googleads.g.doubleclick.net. -ad-apac.doubleclick.net. -sites.google.com. -creative.ak.fbcdn.net. -mail.mppgen.com. -www.subealring.org.ve. -rv.coupish.com. -a1.sphotos.ak.fbcdn.net. -twitter.com. -c800869.r69.cf2.rackcdn.com. -exploradorl2.blogspot.com. -d13t5qcdsiucvs.cloudfront.net. -tag.admeld.com. -230.227.213.201.in-addr.arpa. -profile.ak.fbcdn.net. -www.syabas.com.my. -pixel.facebook.com. -bittersweetbella.tumblr.com. -bw-it.ru. -a.root-servers.net. -a898.x.akamai.net. -www.facebook.com. -kremlinencrypt.com. -162.33.37.201.in-addr.arpa. -www.facebook.com. -tracking.percentmobile.com. -login.toolbar.conduit-services.com. -termasworld.com. -secure-us.imrworldwide.com. -29.media.tumblr.com. -photos-b.ak.fbcdn.net. -tqbzesadg.71pn. -57.133.50.46.in-addr.arpa. -youtube.com. -sn3.mailshell.net. -b1.media.v4.skyrock.net. -lingvo-german.ru. -a8.sphotos.ak.fbcdn.net. -b-0.19-23066089.80110b1.1518.19d3.3ea1.410.0.4tev3i12ugd4h8rdbt4jpaujnb.avqs.mcafee.com. -www.y8girlsgames.com. -mi.adinterax.com. -agen-bola-online.nuke.im. -cb.alimama.cn. -www.uniteberlin.de. -s-static.ak.facebook.com. -www.rotary.org. -pac.bell.com. -inguat.gob.gt.inbound10.mxlogicmx.net. -www.gospelherald.com. -mail.secondhand-opt.ru. -www.ccl.org. -www.facebook.com. -arabic.cnn.com. -i4.ytimg.com. -lindas-stampinloft.blogspot.com. -neri1.com. -qs.aastocks.com. -253.104.105.186.in-addr.arpa. -macdaddynews.disqus.com. -mntr.babcdn.com. -photos-g.ak.fbcdn.net. -gs.mil.ee. -www.clicporlalibertad.com. -s.ytimg.com. -www.bbva.es. -56.157.73.121.in-addr.arpa. -www.univercell-biosolutions.com. -www.imago.com.pt. -teredo.ipv6.microsoft.com. -witter.com. -webres2.pand.ctmail.com. -www.ciromarchetti.com. -29.33.134.189.in-addr.arpa. -external.ak.fbcdn.net. -sianganland.ru. -alerts.conduit-services.com. -o3frc56jg.a61w2o4y. -108.9.37.190.in-addr.arpa. -e55nqkqi5.32ju. -go.srvnow.com. -dns.msftncsi.com. -34.246.52.186.in-addr.arpa. -napervilleparks.org. -thumbnails.mystyle.com. -83113mailerpost.com. -tools.google.com. -www.srl.caltech.edu. -215.12.168.192.in-addr.arpa. -noseq.com. -catfish.ru. -www.greatnannies.com. -_781_28_8. -proua.com. -t2.gstatic.com. -3d-object-converter.softonic.com. -80.41.141.201.in-addr.arpa. -api.twitter.com. -mail.fleetauctiongroup.com. -www.uol.com.mx. -www.facebook.com. -a.root-servers.net. -comernowling.com.inbound10.mxlogic.net. -gorod.dp.ua. -www.statcounter.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.zvdk.nl. -widget.roomme.net. -83.119.1.58.in-addr.arpa. -_675_36_2. -a995.mm1.akamai.net. -api.facebook.com. -clicks.adengage.com. -0.209.172.118.in-addr.arpa. -plusone.google.com. -106.85.156.90.in-addr.arpa. -www.tecolotefilms.com. -46.133.225.190.in-addr.arpa. -eva-miscosicas.blogspot.com. -0-jk-w.channel.facebook.com. -ace-north.org.uk. -zk3.dec.com. -163.184.76.178.in-addr.arpa. -www.google-analytics.com. -8mu1b5czx.s61q1q5j. -ads.avvio.com. -234.26.136.190.in-addr.arpa. -de-de.facebook.com. -d2095767.xoom.it. -teredo.ipv6.microsoft.com. -secure.cartown.com. -mx.youtube.com. -assets4.castle.zgncdn.com. -www.eboncall.org. -179.70.46.92.in-addr.arpa. -kairon.malavida.com. -forums.objectsbydesign.com. -theruckergroup.com. -www.promowebperu.com. -a.root-servers.net. -gfx7.hotmail.com. -estrenos-de-cine.labutaca.net. -gestion.fundacioncarolina.es. -tracker.ccc.de. -costcentral.com. -daft.ie. -gma52w7lp.37ml. -fbcdn-sphotos-a.akamaihd.net. -222.173.1.181.in-addr.arpa. -www.facebook.com. -www.autotrader.co.nz. -60.204.81.200.in-addr.arpa. -a.root-servers.net. -scribblesandsnaps.wordpress.com. -htrnews.com.s7b2.psmtp.com. -a1404.w41.akamai.net. -adspaces.ero-advertising.com. -safebrowsing-cache.google.com. -pedsocial.files.wordpress.com. -widgets.twimg.com. -mail1.rimslow.com. -gaycounty.com. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -client.akamai.com. -gccoxmail.net. -yahoo.com. -s.wordpress.com. -evolutionofstyleblog.blogspot.com. -mail1.mbginsurance.com. -elcantil.com. -dns.msftncsi.com. -scribe.twitter.com. -cdn2.trimm.com.c.footprint.net. -37.58.198.190.in-addr.arpa. -api.twitter.com. -wildlifehc.org. -androauth.0916161bcltd.netdna-cdn.com. -hits.e.cl. -a.root-servers.net. -t3.gstatic.com. -28.190.49.200.in-addr.arpa. -131.150.159.187.in-addr.arpa. -sp.cwfservice.net. -www.opcion.net. -edosushibar.com. -safebrowsing-cache.google.com. -218.87.9.186.in-addr.arpa. -imail.columbuscontainer.com. -profile.ak.fbcdn.net. -clients1.google.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -tsm05.eset.com. -time.chttl.com.tw. -photos-f.ak.fbcdn.net. -google.com. -6.224.219.186.in-addr.arpa. -hot-shots-2.peliculon.tv. -tracking.affiliaxe.com. -itunes.apple.com. -developers.facebook.com. -gmaul.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -i1.ytimg.com. -www.facebook.com. -www.ragnadrima.com. -us.data.toolbar.yahoo.com. -newideas.ru. -88.34.178.74.in-addr.arpa. -18.79.247.189.in-addr.arpa. -adsl.kis.ru. -cdn.api.twitter.com. -blog.e-kereta.com. -tc.v14.cache7.c.youtube.com. -150.28.75.151.in-addr.arpa. -go.microsoft.com. -as.casalemedia.com. -mundodelyaoi.blogspot.com. -fathomgear.com. -adult.chinese.cn. -sr.wikipedia.org. -cdn2.vippy.co. -dsn12.d.skype.net. -users4.jabry.com. -osvanceloth.elbruto.es. -a8.sphotos.ak.fbcdn.net. -131.92.157.186.in-addr.arpa. -16.147.220.66.in-addr.arpa. -59.135.20.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.thecutestblogontheblock.com. -151.129.239.201.in-addr.arpa. -www.gstatic.com. -_704_31_9. -itella.ru. -103.235.249.190.in-addr.arpa. -www.hotpussy.tv. -mail.derishev.ru. -artsugar-merche.blogspot.com. -api.twitter.com. -a7.sphotos.ak.fbcdn.net. -www.jisc-collections.ac.uk. -s.youtube.com. -static.ak.connect.facebook.com. -photos-b.ak.fbcdn.net. -82.199.51.95.in-addr.arpa. -www.whatismyip.org. -www.gruposancorseguros.com. -88.61.253.201.in-addr.arpa. -www.facebook.com. -ib.adnxs.com. -www.brenda.uni-koeln.de. -freenet.de. -postoffice.condenast.ru. -www.shemalemodelindex.com. -r.mzstatic.com. -125.136.124.190.in-addr.arpa. -c3.free18.net. -iminent.ourtoolbar.com. -www.luxurycoachoutlet.com. -www.yaganeloquevale.com. -248.227.231.189.in-addr.arpa. -urs.microsoft.com. -123.26.186.201.in-addr.arpa. -orchidrenaissance.com. -profile.ak.fbcdn.net. -valenky.ru. -sro.whatsapp.net. -ec2-50-19-138-103.zumodrive.com. -s.youtube.com. -132.21.174.189.in-addr.arpa. -zh-cn.facebook.com. -static4.educaedu.com.pe. -profile.ak.fbcdn.net. -www.motoresx.com. -www.ton.cz. -del.icio.us. -sportsnation.espn.go.com. -openx.wooga.com. -ntp1.dlink.com. -a.root-servers.net. -accounts.google.com. -pixel.facebook.com. -i4.ytimg.com. -49.191.121.64.in-addr.arpa. -yui.yahooapis.com. -dnl-15.geo.kaspersky.com. -a.root-servers.net. -145.236.108.186.in-addr.arpa. -ocsp.thawte.com. -a.root-servers.net. -l.yimg.com. -a6.sphotos.ak.fbcdn.net. -199.248.234.189.in-addr.arpa. -jobboom.com. -photos-a.ak.fbcdn.net. -89.76.178.190.in-addr.arpa. -www.michellemoistpussy.com. -photos-d.ak.fbcdn.net. -www.luxuryworld.altervista.org. -www.facebook.com. -122.123.205.190.in-addr.arpa. -uucycxpucmoc.ru. -gateway.messenger.hotmail.com. -cancerpulmonar.org. -85.95.6.89.in-addr.arpa. -www.e-galileo.eu. -232.149.59.199.in-addr.arpa. -www.full-stop.net. -www.clipato.com. -stauffergold.com. -a.webring.com. -dayak.com. -ads.zizzero.com. -amx.grandslamdesign.net.redcondor.net. -cnt.tyxo.bg. -i.furiousmod.com. -support.google.com. -www.youtube.com. -crl.comodoca.com. -bifkqfr:u.25ek. -sport4ever.maktoob.com. -mail.skyworth.com. -cookex.amp.yahoo.com. -www.compunoa.com. -_ldap._tcp. -ssl.gstatic.com. -flipchat.com. -www.youtube.com. -75522lineb.cn. -214.244.24.200.in-addr.arpa. -toolbarqueries.google.com. -162.63.141.201.in-addr.arpa. -images.torrentsland.com. -graph.facebook.com. -a.root-servers.net. -www.defensenewstv.com. -millerarchitects.co.uk. -a.root-servers.net. -195.21.25.201.in-addr.arpa. -www.google.com. -ves.smolen.ru. -messenger.hotmail.com. -sarahjanestudios.com. -71.241.75.190.in-addr.arpa. -www.watchknowlearn.org. -www.msftncsi.com. -profile.ak.fbcdn.net. -230.108.219.64.in-addr.arpa. -vlex.com.pe. -a.root-servers.net. -www.alan4.net. -media.trafficjunky.net. -143.97.61.95.in-addr.arpa. -courtesy.nominalia.com. -9kif6czfc.k51l0p0b. -img.paisdelocos.com. -mail.google.com. -ems-uk.org. -bpcgi.nikkeibp.co.jp. -98.145.11.187.in-addr.arpa. -dns.msftncsi.com. -326.webim0220.webim.myspace.com. -a8.sphotos.ak.fbcdn.net. -www.ipadforos.com. -238.40.67.201.in-addr.arpa. -which.net. -safebrowsing-cache.google.com. -pdf.textfiles.com. -www.google.com. -arkcrew.com. -sfparenting.com. -www.gravatar.com. -www.alipso.com. -www.bkstr.com. -244.68.242.83.in-addr.arpa. -18.1.142.187.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -192.25.238.189.in-addr.arpa. -blog.aziawaoutour.com. -sstat.360buy.com. -photos-f.ak.fbcdn.net. -polk-sullivan.com. -7.234.15.199.in-addr.arpa. -mail.imessagingsystems.com. -esva1.itech.ms. -arabiasaudita.pordescubrir.com. -235.236.248.201.in-addr.arpa. -este. -cdnrockyou-a.akamaihd.net. -zy.china.com.cn. -teredo.ipv6.microsoft.com. -propacificfresh.com. -233.131.179.190.in-addr.arpa. -www.andiamo.com. -121.55.54.65.in-addr.arpa. -b.scorecardresearch.com. -pokerfreemail.com. -60.59.222.189.in-addr.arpa. -137.0.19.88.in-addr.arpa. -85.132.248.111.in-addr.arpa. -gfx1.hotmail.com. -pagead2.googlesyndication.com. -a6.sphotos.ak.fbcdn.net. -www.google-analytics.com. -newrivercabinet.com. -86.67.139.187.in-addr.arpa. -vast.bp3847758.btrll.com. -36.80.242.189.in-addr.arpa. -alt1.chessclub.com. -18.165.49.190.in-addr.arpa. -lecturasarztucuman.wordpress.com. -web-gin.ru. -capitalfederal.adoos.com.ar. -19.110.78.187.in-addr.arpa. -api.twitter.com. -_586_16_0. -safebrowsing-cache.google.com. -tl04.chip.eu. -www.opicode.org. -www.pensandoenpsicologia.com. -clients1.google.com. -dailycappuccino.nl. -alfar.com.tr. -54.190.152.186.in-addr.arpa. -api.facebook.com. -legalterms.cbsinteractive.com. -34.6.43.186.in-addr.arpa. -o-o.preferred.atl14s01.v21.lscache3.c.youtube.com. -www.monstershack.net. -aronasarwar.co.uk. -external.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -offers.cmtrax.com. -ksn2-12.kaspersky-labs.com. -plusone.google.com. -40.243.58.187.in-addr.arpa. -www.google.com. -t1.gstatic.com. -www.pandora.com. -fullscale.com. -181.159.209.201.in-addr.arpa. -p1t.ru. -fbcdn-photos-a.akamaihd.net. -fbcdn-profile-a.akamaihd.net. -www.hookedonjuice.com. -photos-b.ak.fbcdn.net. -1.244.132.190.in-addr.arpa. -smtp.fsmail.net. -seniorsolutions.com. -img.moonbuggy.org. -apk.dir4world.com. -www.sweetimstore.com. -224.0.55.190.in-addr.arpa. -html.rincondelvago.com. -www.alw-ed.com. -dns.msftncsi.com. -jetcatalog.ru. -tallconnections.com. -sproutonline.channelfinder.net. -komonews.s3.amazonaws.com. -photos-d.ak.fbcdn.net. -s-static.ak.facebook.com. -242.219.93.186.in-addr.arpa. -www.sophimania.pe. -lisd.k12.mi.us. -five.tv. -photos-h.ak.fbcdn.net. -de-de.facebook.com. -93.coll.ning.com. -tracker.novalayer.org. -ip-81-23-55-150.ask4internet.com. -developers.facebook.com. -tap2-cdn.rubiconproject.com. -a3.sphotos.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -www.google.com.mx. -m.addthisedge.com. -images02.olx-st.com. -169.132.92.201.in-addr.arpa. -img.hotwords.com.br. -151.144.182.186.in-addr.arpa. -coffee.haohaowan.com. -pattwhite.com. -sritchie645.orangehome.co.uk. -kingofsat.net. -scripts.verticalacuity.com. -c.prodigy.msn.com. -www.google-analytics.com. -blushnightclub.com. -static.ak.fbcdn.net. -exodus.1337x.org. -avanquest.upclick.com. -fbcdn-sphotos-a.akamaihd.net. -boise.gannett.com. -vinylopedia.tk. -wrvideo.com.br. -a.root-servers.net. -en-us.fxfeeds.mozilla.com. -photos-b.ak.fbcdn.net. -a2:ey7:ug.c34q3i7i. -84.71.21.187.in-addr.arpa. -a.root-servers.net. -stl-mbsin-01.boeing.com. -www.apple.com. -twoliverpoolfans.files.wordpress.com. -ns3.slb.com. -hoskinson.net. -www.facebook.com. -malah.biz. -55.230.213.201.in-addr.arpa. -83.69.248.116.in-addr.arpa. -platform.twitter.com. -video-aqui-mismo.blogspot.com. -broenserud.com. -www.archos.com. -80.80.78.190.in-addr.arpa. -googleads.g.doubleclick.net. -photos-g.ak.fbcdn.net. -24.120.92.186.in-addr.arpa. -rs543l32.rapidshare.com. -mail-2.traditio.org. -sportdaten.welt.de. -notibang.blogspot.com. -5mk6g:cd7.91xw. -www.santander.com.mx. -www.ebzzo.eu. -137.186.171.187.in-addr.arpa. -2.0.168.192.in-addr.arpa. -img028.rockyou.com. -profile.ak.fbcdn.net. -a34.g.akamai.net. -au.download.windowsupdate.com. -www.advertisingcrossing.com. -onlinecliptv.com. -0-333.channel.facebook.com. -172.90.121.84.in-addr.arpa. -www.dailyhotnews.org. -news.google.com.mx. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.addthis.com. -profile.ak.fbcdn.net. -www.mj1000.com. -56.247.134.187.in-addr.arpa. -www.jldfineart.com. -bafta.org. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -mashable.com. -151.146.185.190.in-addr.arpa. -tsm00.eset.com. -photos-h.ak.fbcdn.net. -www.thestrokesfan.com. -brig-td.spb.ru. -96.195.55.177.in-addr.arpa. -i4.ytimg.com. -periodicozocalo.com.mx. -www.verycheapuggsboots.co.uk. -m59eop2ip.61wg. -mail.oppermanns-online.de. -pftmobile.com. -smtp.kndati.lv. -wd.ggili.com. -novotec.ru. -www.tusourcecard.com. -135.15.143.201.in-addr.arpa. -57.198.119.79.in-addr.arpa. -tamarind.co.ke. -4.42.64.151.in-addr.arpa. -translate.google.com. -photos-a.ak.fbcdn.net. -vegassportsexperts.com. -a.root-servers.net. -a3.sphotos.ak.fbcdn.net. -raycomm.com. -www.google.com. -a8.sphotos.ak.fbcdn.net. -connorarnold.karoo.co.uk. -a.root-servers.net. -relay.digsys.bg. -a4.sphotos.ak.fbcdn.net. -br.premierleague.fantasysports.yahoo.com. -a.root-servers.net. -cache-download.real.com. -ocnj.us. -s2.youtube.com. -www.bankhalter.de. -www.googleadservices.com. -sheri.net. -photos-e.ak.fbcdn.net. -akllaw.com.s5a2.psmtp.com. -a.root-servers.net. -wnbvaircmngnugnewxvffvfp.ac. -content.yieldmanager.edgesuite.net. -www.facebook.com. -oakleynetworks.com. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -time.chttl.com.tw. -apps.facebook.com. -coins.shop.ebay.com. -superiortandems.com. -a.root-servers.net. -safebrowsing.clients.google.com. -widgets.twimg.com. -110.127.141.201.in-addr.arpa. -static.tianya.cn. -cruznet2.cruznet.net. -g.ceipmsn.com. -a.root-servers.net. -artisanfilms.com. -img6.gg.mmo4arab.com. -orcart.facebook.com. -mrs-cbe.mrs.yimg.com. -fxfeeds.mozilla.com. -webcache.googleusercontent.com. -www.euphoriashop.co.uk. -view.atdmt.com. -api.facebook.com. -pjyyon.com. -raslist.dhl.com. -platform.twitter.com. -42.52.60.190.in-addr.arpa. -jobbuzz.timesjobs.com. -www.v-trail.com. -csi.gstatic.com. -homestore.cisco.com. -www.playrelax.com. -www.marketplace-live.com. -photos-e.ak.fbcdn.net. -www.youtube.com. -login.secure.co1.msn.com. -jvlw21t6t.u74x0n8f. -a.root-servers.net. -a.root-servers.net. -www.rednet21.com. -translate.google.com.mx. -olympictool.com. -miriam-montero-duque.suite101.net. -uslshop.com. -www.phpdocx.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -farcaster.org. -static.ak.fbcdn.net. -116.60.245.173.in-addr.arpa. -morrow30.freeserve.co.uk. -connect.facebook.net. -a3.sphotos.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -www.cemexmexico.com. -www.benettontalk.com. -pts.net. -17.131.35.189.in-addr.arpa. -photos-d.ak.fbcdn.net. -portlandonline.com. -a.root-servers.net. -email.theshoppingchannel.com. -a.root-servers.net. -violetmall.ru. -5-courier.push.apple.com. -114.242.179.190.in-addr.arpa. -ebm.cheetahmail.com. -img100.xvideos.com. -188.141.171.201.in-addr.arpa. -js.admeld.com. -a.root-servers.net. -bts.inet.fi. -in2itivegroup.com. -static.ak.facebook.com. -teredo.ipv6.microsoft.com. -102.89.69.66.in-addr.arpa. -www.atomretro.com. -a.root-servers.net. -225.91.9.177.in-addr.arpa. -231.113.79.186.in-addr.arpa. -16.147.220.66.in-addr.arpa. -pixel.facebook.com. -external.ak.fbcdn.net. -external.ak.fbcdn.net. -dns.msftncsi.com. -www.filesonic.com. -a1.sphotos.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -valied.wrzuta.pl. -a2.sphotos.ak.fbcdn.net. -151.62.173.118.in-addr.arpa. -aspmx2.googlemail.com. -guru.avg.com. -ksn1-11-part1.kaspersky-labs.com. -www.orjinalafrikamangosu.gen.tr. -www.ipaddressworld.com. -psgw.t-mobilesgws.com. -hi-in.facebook.com. -dem0003.in. -gcr-capital.com. -34.38.227.77.in-addr.arpa. -external.ak.fbcdn.net. -www.facebook.com. -www.azringtones.com. -148.91.145.78.in-addr.arpa. -www.youtube.com. -wpad.hrbl.net. -tw.itunes.com. -energyflashbysimonreynolds.blogspot.com. -shared.live.com. -pixel.quantserve.com. -www.tdu.com.mx. -c-0.19-2309c481.30483.1518.19d3.3ea1.210.0.35rgm4fbje6tc9tn3f1evbbss5.avqs.mcafee.com. -downloads4.kaspersky-labs.com. -uk.forvo.com. -www.baby-connect.com. -plus.google.com. -c.statcounter.com. -www.facebook.com. -skydrive.live.com. -www.telasparacortinas.com. -mail.artemka.ru. -music4yourvids.co.uk. -211.115.154.79.in-addr.arpa. -clients4.google.com. -dingtao333.3322.org. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.l.yimg.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -greedygoose.blogspot.com. -semana.com. -codenew.impresionesweb.com. -ecl.tbc.tetrisfb.com. -acuariopolitico.blogspot.com. -partners.aljazeera.net. -wxod1p3eb.z75t8u8x. -inbound.mveinc.com.netsolmail.net. -theimagist.com. -www.yanbal.com. -www.pheasantsforever.org. -photos-e.ak.fbcdn.net. -www.movistar.com.ve. -mail.rrsid.com. -google.com. -fbcdn-profile-a.akamaihd.net. -cameroncommunities.com. -profile.ak.fbcdn.net. -105.107.54.27.in-addr.arpa. -www.facebook.com. -www.top-buyer.com. -data.cmcore.com. -a.root-servers.net. -twitter.com. -photos-f.ak.fbcdn.net. -207.148.237.84.in-addr.arpa. -es-es.facebook.com. -sp.ask.com. -a-0.19-a70c8079.d150083.1518.19d4.3ea0.210.0.76k1c41vmrdtkq5sgh9jewtvsj.avqs.mcafee.com. -cdn.stumble-upon.com. -vp.sip.messenger.msn.com. -fibres.net.s7b1.psmtp.com. -134.14.49.190.in-addr.arpa. -dns.msftncsi.com. -125.196.63.119.in-addr.arpa. -www.kidsrooms.co.uk. -orcart.facebook.com. -www.google.com.mx. -wire-pro.com. -www.trangobroadband.com. -naysue.wordpress.com. -wrenconsult.com. -reddevelopment.ru. -www.bywifi.com. -sync.mathtag.com. -88.42.207.108.in-addr.arpa. -25.media.tumblr.com. -latis03.cbthebank.com. -lightsonthelake.blogspot.com. -static.ak.fbcdn.net. -login.toolbar.conduit-services.com. -i1.akcdn.net. -www.gomovers.com. -a2.sphotos.ak.fbcdn.net. -146.136.139.190.in-addr.arpa. -arrogant.ru. -240.7.55.186.in-addr.arpa. -www.youtube.com. -122.6.23.190.in-addr.arpa. -ads.tlvmedia.com. -shared.live.com. -s2.wp.com. -www.msn.com. -1.us.vps.garantname.com. -vcs1.msg.yahoo.com. -www.sweetpotatosoftware.com. -service.matomy.com. -249.59.94.189.in-addr.arpa. -us.mg.mail.yahoo.com. -49.185.49.190.in-addr.arpa. -pixel.facebook.com. -117.130.150.190.in-addr.arpa. -internetshakespeare.uvic.ca. -gigmaps.net. -www.diarioderegatas.es. -search-it-today.com. -12.124.107.190.in-addr.arpa. -s4is.histats.com. -datacenterdynamics.com. -104.238.19.190.in-addr.arpa. -dundefndpc.natneg3.gamespy.com. -rc.rlcdn.com. -nec-tokin.com. -97.163.51.190.in-addr.arpa. -www.youtube.com. -www.marbleslab.ca. -zh.wikipedia.org. -marblecrafters.com.inbound30.mailprotector.net. -69.102.155.189.in-addr.arpa. -beta.stun.voice.yahoo.com. -marquintas.wordpress.com. -www.naimlabel.com. -69.247.17.190.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -218.212.146.189.in-addr.arpa. -20-courier.push.apple.com. -firepowereurope.com. -dakelem.luminet.net. -tracker.bidder7.mookie1.com. -ping3.dyngate.com. -www.mozilla.com. -csi.gstatic.com. -giport.ru. -neptuno.cestel.es. -59.235.7.89.in-addr.arpa. -ksn3-11.part2.kaspersky-labs.com. -adanacsales.com.inbound15.mxlogic.net. -titanium30-en.url.trendmicro.com. -clients4.google.com. -64.254.18.189.in-addr.arpa. -fkm-anons.ru. -partnercomm.net.s7a1.psmtp.com. -_505_04_2. -a.root-servers.net. -www.tango-dj.at. -gmail-smtp-in.l.google.com. -gallys.bustykerrymarie.com. -caman.ru. -imtop.ru. -www.facebook.com. -laxmnvmaltiris1.fs.marrcorp.marriott.com. -zanestle.com. -api-public.addthis.com. -del.icio.us. -a.root-servers.net. -venusonmars.com. -99.64.91.190.in-addr.arpa. -102.163.253.189.in-addr.arpa. -201.107.32.80.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -172.59.238.189.in-addr.arpa. -dns.msftncsi.com. -214.114.107.186.in-addr.arpa. -113.44.48.190.in-addr.arpa. -www.ukcigarforums.com. -seg.sharethis.com. -mta5.am0.yahoodns.net. -mitutoyo.com. -www.ophtalmologie.fr. -31.228.46.124.in-addr.arpa. -60.210.209.190.in-addr.arpa. -www.google-analytics.com. -100.70.8.200.in-addr.arpa. -mailhost.lecxp.com. -ocsp.thawte.com. -hoteldiscount.ru. -www.l.google.com. -js.microsoft.com. -static.ak.fbcdn.net. -apis.google.com. -96.43.12.186.in-addr.arpa. -loading6.widdit.com. -static.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -www.dairyqueen.com.ph. -waynesville.k12.mo.us. -videos.picapon.com. -35.206.186.189.in-addr.arpa. -0.gravatar.com. -a.root-servers.net. -googlemail.l.google.com. -video.nudelingeriepics.com. -www.facebook.com. -www.google-analytics.com. -a4.sphotos.ak.fbcdn.net. -63.96.168.189.in-addr.arpa. -www.wowjuju.com. -a6.sphotos.ak.fbcdn.net. -sheisnotyourmother.blogspot.com. -a3.sphotos.ak.fbcdn.net. -ocsp.comodoca.com. -a6.sphotos.ak.fbcdn.net. -bettergolf.net. -img102.herosh.com. -translate.googleapis.com. -142.147.82.190.in-addr.arpa. -msdn.microsoft.com. -250.63.137.216.in-addr.arpa. -global.ard.yahoo.com. -www.youtube.com. -bbs.health.ifeng.com. -a4.sphotos.ak.fbcdn.net. -zzz.clickbank.net. -s-external.ak.fbcdn.net. -www.jennifervaughn.com. -www.okinawan-shorinryu.com. -207.243.168.192.in-addr.arpa. -a1725.l.akamai.net. -24.media.tumblr.com. -153.18.42.62.in-addr.arpa. -rosalind-hicks.memory-of.com. -www.google.com. -profile.ak.fbcdn.net. -gleasonhosting.com. -mail.dibadi.net. -google.com. -es.wikipedia.org. -tikitaka.foroactivo.com. -egbmbdey.mooo.com. -ksn2-12.kaspersky-labs.com. -archives.obs-us.com. -plus.google.com. -215.235.211.189.in-addr.arpa. -a.root-servers.net. -macgm-log.com. -grylott.fsbusiness.co.uk. -www.breakfastpointlifestyle.com.au. -www.scotlandsoftware.com. -donboscovictorias.org. -a.root-servers.net. -pme.tscapeplay.com. -pixel.facebook.com. -s2.youtube.com. -www.corvettepartsforsale.com. -42.9.21.108.in-addr.arpa. -cs1212.vk.com. -www.egipto2012.com. -a.root-servers.net. -photos-a.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -21.224.171.69.in-addr.arpa. -www.facegroup.com. -www.museolaligua.cl. -www.byrdseed.com. -www.aulaclic.es. -tmi.gr.jp. -a2.sphotos.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -pubads.g.doubleclick.net. -diy-mail.alerta.su. -a1505.l.akamai.net. -www.mrmusicman17.com. -www.facebook.com. -mx01.eagle-design.com. -l1.yimg.com. -pinnaclecollects.com.s9b1.psmtp.com. -js.patheos.com.s3.amazonaws.com. -83.253.47.201.in-addr.arpa. -getprof.us.np.community.playstation.net. -img3.catalog.video.msn.com. -ncoss.org.au. -chromejs.s3.amazonaws.com. -symr2a.backup.com. -127.123.215.66.in-addr.arpa. -shop.tsumorichisato.com. -xybion.com.inbound10.mxlogic.net. -apps.facebook.com. -mail.richardsoncap.com. -pixel.quantserve.com. -168.117.71.193.in-addr.arpa. -www.druzestudies.org. -mx02.ipac.caltech.edu. -a6.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -fireblast.net. -a.root-servers.net. -yodemoda.blogspot.com. -183.159.18.186.in-addr.arpa. -us.bc.yahoo.com. -electriclane.de. -waterworkscircuit.com. -bookbirddog.blogspot.com. -232.189.136.162.in-addr.arpa. -api.facebook.com. -google.com. -155.126.18.176.in-addr.arpa. -ax.init.itunes.apple.com. -cdn.api.twitter.com. -ip2location.conduit-services.com. -ap.lijit.com.cdngc.net. -rewardz.vodafone.co.uk. -mx3.prima.de. -a.root-servers.net. -media.sliderocket.com. -apps.facebook.com. -teredo.ipv6.microsoft.com. -static-resource.np.community.playstation.net. -sipinternal.gmail.com. -itb-group.ru. -a.root-servers.net. -241.165.77.188.in-addr.arpa. -xslt.alexa.com. -a.root-servers.net. -herry.com. -134.42.41.126.in-addr.arpa. -alerts.conduit-services.com. -photos-c.ak.fbcdn.net. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -orionimpex.ru. -185.25.122.186.in-addr.arpa. -www.google-analytics.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -31kp9ake1.78qc. -114.106.138.187.in-addr.arpa. -macfarlanepartners.com.s8a2.psmtp.com. -141.212.24.201.in-addr.arpa. -www.jessmills.co.uk. -screenshots.bravotube.net. -www.spakti.eu. -a.root-servers.net. -jhtpc.com. -9.140.149.186.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -von_der.galeon.com. -stliqwltryhkwh.com. -api-read.facebook.com. -static.addtoany.com. -137.188.191.186.in-addr.arpa. -www.stylelist.com. -www.google-analytics.com. -www.sitionica.com.ar. -tag.admeld.com. -ceusa.virtualiza.com.br. -131.250.88.186.in-addr.arpa. -0bps664l3vqk05dj8qih0t5renri9iic.ig.ig.gmodules.com. -228.175.253.201.in-addr.arpa. -197.5.11.190.in-addr.arpa. -a.root-servers.net. -www.google-analytics.com. -photos-g.ak.fbcdn.net. -do.kershaw.k12.sc.us. -rkhunter.sourceforge.net. -www.balidesa.com. -94.138.204.62.in-addr.arpa. -mohegansunpocono.com. -222.130.195.187.in-addr.arpa. -llwineworld.com. -i2.ytimg.com. -sp.cwfservice.net. -112.235.56.186.in-addr.arpa. -mx.ablefreight.com. -b.scorecardresearch.com. -graph.facebook.com. -js2.wlxrs.com. -by2msg3010606.gateway.messenger.live.com. -urs.microsoft.com. -help.amaland.com. -pointemagazine.com. -gdata.youtube.com. -austinfoodcarts.com. -bloomu.edu. -34.64.252.201.in-addr.arpa. -profile.ak.fbcdn.net. -multiplos.hotwords.com.br. -translate.google.com.mx. -beatrizsalas10.blogspot.com. -65.54.55.190.in-addr.arpa. -www.plattoes.com. -rss.elmundo.es. -by2msg4020409.gateway.messenger.live.com. -bd-natok.com. -aptar.com. -es-la.facebook.com. -www.rome.info. -userimages02-akm.imvu.com. -www30l2.glam.com. -www.gamersmint.com. -108.59.129.189.in-addr.arpa. -ypk.cs4u.co.il. -smf.prefpoa.com.br. -developers.facebook.com. -pleated-jeans.com. -a5.sphotos.ak.fbcdn.net. -cachend.meetlocals.com.rncdn1.com. -apps.facebook.com. -www.bateriafinas.biz. -28.181.85.75.in-addr.arpa. -t.co. -www.facebook.com. -a4.sphotos.ak.fbcdn.net. -140.40.78.184.in-addr.arpa. -crossinginc.com.inbound15.mxlogicmx.net. -www.google.com. -appfrica.net. -www.wwemelina.com. -ads.lfstmedia.com. -medusa.it. -qu.ebay.com. -www.shabbyfrenchcottage.com. -lycosasia.com. -distilleryimage2.instagram.com. -mcdr-law.com.inbound10.mxlogicmx.net. -a-0.19-230fc081.c0f0081.1518.19d4.2f4a.210.0.98wd185z1pd8v166u63l2c1lqt.avqs.mcafee.com. -incidentalsgiftshop.com. -itom.com. -83.205.168.192.in-addr.arpa. -www.opodo.at. -us.my.alibaba.com. -clients1.google.com. -172.135.94.75.in-addr.arpa. -apps.facebook.com. -kitanaisasayaki.foroactivo.com. -email.gemlimo.com. -60.176.53.178.in-addr.arpa. -secure-us.imrworldwide.com. -toolbarqueries.google.com. -ssw.live.com. -d.agkn.com. -www.britevents.com. -ad.yieldmanager.com. -:rjljfdre.52mj. -apps.facebook.com. -external.ak.fbcdn.net. -epd5fa8vi.u25y3c6x. -adspaces.ero-advertising.com. -147.1.165.188.in-addr.arpa. -0af2d87b0af12c898897744f51c37b7f.org. -tc10.easythumbhost.com. -d7.zedo.com. -distilleryimage9.s3.amazonaws.com. -159.144.42.190.in-addr.arpa. -www.cocanews.com. -read.gov. -access1.net. -caglarteknik.com. -img.hotwords.com.br. -218.28.55.80.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -mantecamail.sjcoe.net. -152.89.120.190.in-addr.arpa. -a.root-servers.net. -153.71.43.208.in-addr.arpa. -blog.sproutcore.com. -112.175.172.190.in-addr.arpa. -pastordice.blogcindario.com. -msfs.nspmotion.com. -157.245.222.189.in-addr.arpa. -9.144.239.189.in-addr.arpa. -124.193.19.190.in-addr.arpa. -19.77.228.67.in-addr.arpa. -external.ak.fbcdn.net. -www.facebook.com. -dnl-07.geo.kaspersky.com. -www.facebook.com. -mp.moshimo.com. -security.freebsd.org. -arqiva.com. -mail.tencorr.com. -news.google.com. -api.mixpanel.com. -halo.neoseeker.com. -enquete.linternaute.com. -6%20hermosos%20marcos%20para%20fotos%20en%20png. -successfulcompanies.com. -i49.tinypic.com. -86.58.246.24.in-addr.arpa. -nnmigmmlh.n27f5r5e. -evintl-aia.verisign.com. -www.donewaiting.com. -www.google-analytics.com. -s-static.ak.facebook.com. -adspaces.ero-advertising.com. -photos-c.ak.fbcdn.net. -10-courier.push.apple.com. -260.webim0247.webim.myspace.com. -228.114.240.88.in-addr.arpa. -static.ak.connect.facebook.com. -static.ak.fbcdn.net. -hiresystems.com. -rwenpower.com. -experiments.instrum3nt.com. -webcache.googleusercontent.com. -a.root-servers.net. -147.138.30.189.in-addr.arpa. -t.co. -2itb.com. -pixel.facebook.com. -creativosonline.org. -_951_89_9. -hey-tu.jimdo.com. -msdn.microsoft.com. -joomlavi.vn. -ljhuqasjdz.info. -smtp.gmail.com. -inbound.sunsetstudio.com.netsolmail.net. -ad.yieldmanager.com. -alerts.conduit-services.com. -vulcanlogix.com. -dhs.state.il.us. -flqfamxsm.00yb. -6.198.173.90.in-addr.arpa. -68.95.236.189.in-addr.arpa. -www.google.com. -chart.googleapis.com. -www.payidar.net. -172.230.190.189.in-addr.arpa. -profile.ak.fbcdn.net. -25.129.251.212.in-addr.arpa. -www.bo.avon.com. -60.63.91.186.in-addr.arpa. -basketball.stack.com. -teredo.ipv6.microsoft.com. -www.tarotdeesperanza.es. -c13.zedo.com. -i1.ytimg.com. -wild-fb-apache-active-vip.playdom.com. -www.laguiabonaerense.com.ar. -twitter.com. -zq8cbrr92.43ex. -mail.sjgames.com. -wpad. -203.112.228.67.in-addr.arpa. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -seniorflexonics.com. -teredo.ipv6.microsoft.com. -photos-e.ak.fbcdn.net. -node1.bbcimg.co.uk. -www.cnnmoney.com. -galardigroup.com. -vtekusa.com.s9b2.psmtp.com. -t5.oopsmovs.com. -119.196.199.187.in-addr.arpa. -www.asiansquash.com. -aol.com. -d2099343.xoom.it. -profile.ak.fbcdn.net. -77.7.51.190.in-addr.arpa. -180medical.com. -m.ebuddy.com. -ro.wikipedia.org. -48.216.55.50.in-addr.arpa. -110.210.89.186.in-addr.arpa. -20.95.53.186.in-addr.arpa. -googlemail.l.google.com. -facemoods.com. -sosyalmedya.co. -skdstudio.com. -bakery.teamlava.com. -cdn.orbengine.com. -www.bkrtx.com. -a.root-servers.net. -jonlscott.com. -api.zynga.com. -www.picoscar.com. -barracuda.sadlier.com. -fbcdn-photos-a.akamaihd.net. -edge.sharethis.com. -95.100.70.99.in-addr.arpa. -64.19.123.84.in-addr.arpa. -static.ak.fbcdn.net. -creative.ak.fbcdn.net. -www.facebook.com. -9juexh:gn.n16k3n9y. -166.85.158.189.in-addr.arpa. -gfx2.hotmail.com. -mail2.shabakah.net.sa. -syndication.mmismm.com.home. -tealab.com. -am.joneslanglaselle.com. -apps.facebook.com. -watsonfurniture.com.s7a1.psmtp.com. -178.41.171.201.in-addr.arpa. -photos-e.ak.fbcdn.net. -ksn1-11-part1.kaspersky-labs.com. -ka2.no-ip.biz. -a.root-servers.net. -50.149.220.66.in-addr.arpa. -showbiz.count.brat-online.ro. -api.twitter.com. -market.android.com. -m.youtube.com. -221.222.205.190.in-addr.arpa. -www.imdb.com. -lightera.com. -forums.taleworlds.com. -escuela.ipae.pe. -d2ainc.com. -i.ytimg.com. -plexmovie.plexapp.com. -connect.facebook.net. -a.root-servers.net. -isatap.felipe. -www.20minutos.es. -client-software.real.com. -oshea.com. -92.105.30.88.in-addr.arpa. -218.0.173.190.in-addr.arpa. -prov.us.mydlink.com. -static.ak.fbcdn.net. -93.177.74.70.in-addr.arpa. -ok-training.ru. -_231_97_3. -152.102.34.190.in-addr.arpa. -pagead2.googlesyndication.com. -jxliu.com. -ads2.iforex.com. -anmpress.com. -www.hulaisland.com. -iji.com. -theimaginarybody.co.uk. -e566.b.akamaiedge.net. -local537.com. -rincon.com.s5a1.psmtp.com. -117.224.7.200.in-addr.arpa. -creative.ak.fbcdn.net. -support.google.com. -a3.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -50.66.187.190.in-addr.arpa. -www.nero.com. -www.hcso.tampa.fl.us. -cdn.tacoda.at.atwola.com. -t1.gstatic.com. -k12.dserv.com. -www.enterprise.com. -www.maxi-juegos.com. -translate.google.com.mx. -au.download.windowsupdate.com. -. -butlerme.com. -photos-h.ak.fbcdn.net. -maa.com.my. -theor.jinr.ru. -msmgate.mrg.uswest.com. -zorfox.com. -www.minilening.nl. -apairofnuts.com. -ssl.gstatic.com. -ereshermosa.galeon.com. -a5.sphotos.ak.fbcdn.net. -galasso.com.s8a1.psmtp.com. -sk.hicow.com. -408.ch.meebo.com. -static.ak.fbcdn.net. -bestofeverythingafter50.com. -www.aprendelenguadesignos. -231.44.132.187.in-addr.arpa. -sportsmanflyer.blogspot.com. -www.kissinggames.org. -bp.specificclick.net. -a.root-servers.net. -maxi1419.newsvine.com. -sn.nishitech.ac.jp. -js.wlxrs.com. -pixel.facebook.com. -a.root-servers.net. -219.230.243.189.in-addr.arpa. -www.kayak.com. -97.104.133.189.in-addr.arpa. -115.96.220.41.in-addr.arpa. -mail.jrbooth.net. -s.youtube.com. -activesync.softonic.com.br. -153.2.76.201.in-addr.arpa. -www.corodebabel.com.ar. -e3353.c.akamaiedge.net. -www.photowatches.eu. -3d.pchome.net. -175.61.91.186.in-addr.arpa. -counterb.statcounter.com. -my56k.net. -2.127.14.187.in-addr.arpa. -laposte.net. -m:ybilogt.h36m0a7l. -217.119.51.190.in-addr.arpa. -sq.wikipedia.org. -sn3.mailshell.net. -24.125.233.220.in-addr.arpa. -www.opdirect.net. -www.facebook.com. -cust6410-2.in.mailcontrol.com. -www.lasbahamas.es. -partner.googleadservices.com. -sac.gti.mcafee.com. -developers.facebook.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -mx.openmail.paran.com. -92.185.44.83.in-addr.arpa. -ar.iiarjournals.org. -liscuba.sld.cu. -mobile.juicyads.com. -wboc.com. -accounts.google.com. -p-posad.ru. -rp.gwallet.com. -b.ads1.msads.net. -ie9.discoverbing.com. -www.enviprotect.de. -s6.motherlessmedia.com. -a2.sphotos.ak.fbcdn.net. -chirrup.com. -photos-a.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.icqoso.com. -31.162.3.107.in-addr.arpa. -ng.lighthousez11.com. -7.45.27.187.in-addr.arpa. -www.gamelink.com. -overstockcom.112.2o7.net. -38.27.139.189.in-addr.arpa. -www.bywifi.com. -intovsts.net. -www.fastaccess.drivers.bellsouth.net. -191.55.37.213.in-addr.arpa. -www.yahoo.com. -google.com. -d3lvr7yuk4uaui.cloudfront.net. -photos-g.ak.fbcdn.net. -toiletpaperexpress.wordpress.com. -i3.ytimg.com. -fbcdn-photos-a.akamaihd.net. -i2.ytimg.com. -www.mexicantextiles.com. -86.186.162.189.in-addr.arpa. -q.ebaystatic.com. -ox-i.earnmydegree.com. -a.root-servers.net. -rj.m.taobao.com. -83.225.102.201.in-addr.arpa. -98.164.246.220.in-addr.arpa. -time.nist.gov. -82.63.114.98.in-addr.arpa. -mx.accuratecontrols.com. -notifications.conduit-services.com. -clients2.google.com. -upload.traidnt.net. -code.jquery.com. -www.minispel.be. -fbcdn-photos-a.akamaihd.net. -plusone.google.com. -11.241.83.62.in-addr.arpa. -www.chinasportsbeat.com. -photos-f.ak.fbcdn.net. -safebrowsing-cache.google.com. -50.143.46.68.in-addr.arpa. -adkny.org. -bhk.spb.ru. -groups.google.com.mx. -lindaburwell.com. -247.82.154.187.in-addr.arpa. -rad.msn.com. -t.co. -a.root-servers.net. -100.63.31.83.in-addr.arpa. -keetchins.com. -nordix-metrology.ru. -_348_69_5. -myrealfanatictv.blogspot.com. -carp3.rjf.com. -s-static.ak.facebook.com. -95.146.220.66.in-addr.arpa. -www.xvidupdate.com. -by2msg3030108.by2.gateway.edge.messenger.live.com. -235.177.109.186.in-addr.arpa. -www.bywifi.com. -www.angelteenagers.com. -t.337.com. -ssl.google-analytics.com. -atyab.com. -www.rmkstore.com. -external.ak.fbcdn.net. -eck7.ru. -nychhc.org. -ccnow.wip.digitalrivercontent.net. -tools.google.com. -img25.imageshack.us. -profile.ak.fbcdn.net. -www.google.com. -nakara.china.alibaba.com. -a1.sphotos.ak.fbcdn.net. -wiki.bssd.org. -pixel.facebook.com. -static.ak.connect.facebook.com. -83.65.29.85.in-addr.arpa. -148.102.238.190.in-addr.arpa. -nt3.ggpht.com. -138.65.16.95.in-addr.arpa. -jetzt.sueddeutsche.de. -www.energy-base.org. -www.mywebsearch.comm. -mail.sumtel.ru. -52.183.137.85.in-addr.arpa. -124.15.0.10.in-addr.arpa. -39.251.6.201.in-addr.arpa. -a.root-servers.net. -a2.wupload.com. -83.173.110.190.in-addr.arpa. -236.192.71.190.in-addr.arpa. -amai.org. -download-notebook-drivers.com. -a.root-servers.net. -www.google.com. -moshmosh.22web.net. -www.noticias15m.eu. -americas.cpqcorp.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -backend8.aha.ru. -verizon.net. -fc79.deviantart.com. -weather.services.conduit.com. -204.118.156.187.in-addr.arpa. -25.32.254.201.in-addr.arpa. -google.com. -a1496.da1.akamai.net. -content.yieldmanager.edgesuite.net. -a.root-servers.net. -www.marcominnemann.com. -tnz.taleo.net. -www.art-exchange.com. -64.243.45.151.in-addr.arpa. -ssl-i.cdn.openx.com. -z122cn2ej.z77s3e1e. -250.84.5.87.in-addr.arpa. -254.104.149.187.in-addr.arpa. -59.66.222.24.in-addr.arpa. -127.0.0.1. -creative.ak.fbcdn.net. -144.184.137.69.in-addr.arpa. -211.158.95.2.in-addr.arpa. -w7845x9xa.07uc. -photos-f.ak.fbcdn.net. -a1725.l.akamai.net. -external.ak.fbcdn.net. -51.233.227.189.in-addr.arpa. -www.origenae.com. -external.ak.fbcdn.net. -wwws.ru.warnerbros.com. -www.xvideos.com. -pixel.facebook.com. -www.facebook.com. -adx.adnxs.com. -a.root-servers.net. -www.google.com. -www.microsoft.com. -41.167.8.200.in-addr.arpa. -www.villagegeek.com. -gmail-smtp-in.l.google.com. -pagead2.googlesyndication.com. -iadsdk.apple.com. -creacionesycrochet.blogspot.com. -elitaudit.ru. -www.aasp.org.br. -fitnessfirst.com. -39-courier.push.apple.com. -cande-knd.deviantart.com. -nsx.np.dl.playstation.net. -30.media.tumblr.com. -pixel.facebook.com. -directory.services.live.com. -googleads.g.doubleclick.net. -mk.wikipedia.org. -safebrowsing.clients.google.com. -ak.copi.ru. -franational.com. -js.admeld.com. -ins-solutions.com. -www.ukmediacentre.pwc.com. -a.root-servers.net. -empretsinf.blogs.upv.es. -a.root-servers.net. -www.pcl.com. -icex.imperial.ac.uk. -swim.lookbook.nu. -news.google.com.mx. -91chat.wisshen.info. -dannyayers.com. -platform.ak.fbcdn.net. -www.google.com. -photos-c.ak.fbcdn.net. -mail.google.com. -a.root-servers.net. -trumedtech.com.s9a1.psmtp.com. -pyninc.org. -dvrlink.net. -platform.ak.fbcdn.net. -a.root-servers.net. -p7:aaqlv3.s32o1p9v. -30.164.69.190.in-addr.arpa. -babelfish.altavista.digital.com. -mail.ead-sda.ru. -content.yieldmanager.edgesuite.net. -159.61.48.188.in-addr.arpa. -50.174.50.201.in-addr.arpa. -sn130w.snt130.mail.live.com. -asu.vks.mosenergo.elektra.ru. -jers3.info. -external.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -pixel.facebook.com. -131.33.174.190.in-addr.arpa. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -red.adshandy.com. -157.65.132.189.in-addr.arpa. -curado.ru. -sheapfel-music.blogspot.com. -vzppdvhisqea.com. -cards.mail.ru. -marbellatraumhaus.de. -barjaweb.free.fr. -rewards.ebay.com. -a1.sphotos.ak.fbcdn.net. -img.123freebrushes.com. -d8.ce.bb.a1.top.mail.ru. -desmond.yfrog.com. -www.radianresearch.com. -francais.toptwilightblogs.com. -ad.yieldmanager.com. -twitter.com. -www.extube.com. -naranjas-limones.blogspot.com. -domein.nl. -www.canimmigratecanada.com. -ace.wikipedia.org. -commons.wikimedia.org. -baymsg1030112.gateway.messenger.live.com. -tis17-5-en.url.trendmicro.com. -a1406.w42.akamai.net. -pansexualpride.tumblr.com. -www.maishoroscopo.com.br. -montagar.com. -www.xplonet.net. -neoretro.tumblr.com. -www.facebook.com. -xxx.stopklatka.pl. -safebrowsing.clients.google.com. -www.digwin.com. -dollhousediary.com. -dr._dns-sd._udp.0.2.168.192.in-addr.arpa. -api-read.facebook.com. -sp.ask.com. -cdn-7.nflximg.com. -octoberon.blogspot.com. -photos-d.ak.fbcdn.net. -pagead2.googlesyndication.com. -trendtechnology.com. -83.72.102.71.in-addr.arpa. -m.addthisedge.com. -feeds.feedburner.com. -entretenimiento.starmedia.com. -rs896l33.rapidshare.com. -www.fm88-108.nl. -gateway.arabia-ins.com.lb. -photos-a.ak.fbcdn.net. -233.208.124.186.in-addr.arpa. -20minutos.feedsportal.com. -34.139.137.187.in-addr.arpa. -docs.google.com. -www.facebook.com. -174.137.220.41.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -apple.com. -en.globetorch.com. -53.221.132.192.in-addr.arpa. -www.blogger.com. -www.sgisland.gs. -57.186.48.65.in-addr.arpa. -e566.b.akamaiedge.net. -piim.com. -61.236.56.187.in-addr.arpa. -datafeed.weatherbug.com. -24-courier.push.apple.com. -d2105352.xoom.it. -140.108.27.189.in-addr.arpa. -download.windowsupdate.com. -profile.ak.fbcdn.net. -hi-in.facebook.com. -www.wikicristiano.org. -147.22.161.101.in-addr.arpa. -mail.s1000658.ptasp.com. -a.root-servers.net. -draxis.com. -rcp.na.blackberry.com. -pixelsmuertos.com. -creaturesofcomfort.us. -240.233.85.85.in-addr.arpa. -bogdanos.skai.gr. -anycoolspb.ru. -mx4.peterhost.ru. -www.lacaxcada.com. -194.253.150.79.in-addr.arpa. -q2broadcasting.com. -www.world-finance-conference.com. -enternet.hu. -www.artesaniaelsol.es. -static.ak.fbcdn.net. -twitter.com. -init-p01md.apple.com. -a2.sphotos.ak.fbcdn.net. -www.diariopyme.com. -static-js.veevr.com. -73.73.78.190.in-addr.arpa. -api.facebook.com. -de-de.facebook.com. -a3.sphotos.ak.fbcdn.net. -www.smlisten.dk. -82.103.157.98.in-addr.arpa. -geo.messenger.services.live.com. -lib.verycd.com. -115.83.145.190.in-addr.arpa. -mail.live.com. -resolver1.bullguard.ctmail.com. -123.86.172.190.in-addr.arpa. -tw.apple.com. -beta.twitlonger.com. -a1.sphotos.ak.fbcdn.net. -f26batchimg.auctions.yahoo.co.jp. -weather.partners.msn.com. -www.google.com. -129.146.176.124.in-addr.arpa. -google.com. -dsn2.d.skype.net. -www.islam101.com. -external.ak.fbcdn.net. -api.nanigans.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -onskookboek.be. -tools.google.com. -profile.ak.fbcdn.net. -clients4.google.com. -controltemp.com. -plus.google.com. -a.root-servers.net. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -csi.gstatic.com. -126.74.9.46.in-addr.arpa. -profile.ak.fbcdn.net. -i1.ytimg.com. -www.google.com. -2.248.199.190.in-addr.arpa. -about.duke.edu. -mueller-runte.de. -www.italkcash.com. -chicvintagebrides.com. -28.181.92.108.in-addr.arpa. -www.hotel-theresia.com. -photos-d.ak.fbcdn.net. -inbound.bulkpetro.com.netsolmail.net. -dns.msftncsi.com. -amdinternet.com. -27.78.8.201.in-addr.arpa. -220.95.37.46.in-addr.arpa. -a996.mm1.akamai.net. -wwwclu.um.es. -www.toshibapc.com. -kibbey.net. -189.250.65.187.in-addr.arpa. -www.conjugacionesverbos.com. -a.root-servers.net. -retera.ru. -a2.sphotos.ak.fbcdn.net. -plusone.google.com. -www.pro-billiard.ru. -assets.treasure.zgncdn.com. -api.facebook.com. -nxa-ls.s3.amazonaws.com. -a1725.l.akamai.net. -svrintl-crl.verisign.com. -zi.net. -crl3.digicert.com. -777777.6d696e696e6f7661.6f7267.80h505e4c05.webcfs00.com. -insight.aon.com. -shared.live.com. -windowslivehelp.com. -facebook-chat.softonic.de. -msnbcmedia.msn.com. -google.com. -a5.sphotos.ak.fbcdn.net. -litvany.com. -farm6.staticflickr.com. -www.ambito.com. -66.59.229.189.in-addr.arpa. -accounts.youtube.com. -mail.yahoo.com. -www.despegar.com.mx. -moseisleyradio.com. -www.jq663.com. -edge.quantserve.com. -ru.wikipedia.org. -a997.mm1.akamai.net. -www.denacrain.com. -www-google-analytics.l.google.com. -s-external.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -mta5.am0.yahoodns.net. -219.207.141.201.in-addr.arpa. -clients1.google.com. -www.newszoom.com. -110.8.240.111.in-addr.arpa. -140.34.230.67.in-addr.arpa. -cffei.org.s5a1.psmtp.com. -49.161.168.192.in-addr.arpa. -contextmenu.toolbar.conduit-services.com. -t1-completion.amazon.com. -pt-br.facebook.com. -www.google.com. -id.l.google.com. -connect.facebook.net. -ed62.zeekler.com. -56.82.42.201.in-addr.arpa. -www.sm-rgs.com. -groups.google.com.mx. -a.root-servers.net. -www.bloomenergy.com. -58.235.55.74.in-addr.arpa. -71.179.232.190.in-addr.arpa. -www.freestream.pl. -d7.zedo.com. -thirdnetworks.com. -api.facebook.com. -249.110.148.190.in-addr.arpa. -mail.nicox.it. -mail.pierce-industries.com. -serw.clicksor.com. -128.222.173.190.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -157.174.246.201.in-addr.arpa. -43.107.25.114.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -download.cloudantivirus.com. -aj8q45hdn.10qe. -splcen.blogspot.com. -a.root-servers.net. -gemma-international.co.uk. -favstar.fm. -sillylikes.com. -cs244.vk.com. -creative.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -hu.wikipedia.org. -anomalink.com. -lh4.googleusercontent.com. -images.apple.com. -13.62.173.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -115.222.142.190.in-addr.arpa. -34.204.14.186.in-addr.arpa. -netthere.com. -a3.sphotos.ak.fbcdn.net. -pixel.facebook.com. -www.gratispeliculas.org. -teredo.ipv6.microsoft.com. -tap2-cdn.rubiconproject.com. -ad.adnetwork.net. -www.facebook.com. -s-static.ak.facebook.com. -ads.bluelithium.com. -a7.sphotos.ak.fbcdn.net. -s0000686.ecdomain.net.forestproducts.sca.com. -indepsocres.spb.ru. -apps.facebook.com. -ex2.broadser. -billpentz.com. -upxewi.com. -www.ark.ac.uk. -img20.imageshack.us. -a.root-servers.net. -www.youtube.com. -ochaonline.un.org. -morgan.kyschools.us. -17.204.141.201.in-addr.arpa. -www.apexjr.com. -kkaqhzl:a.u21y9s7g. -mozhelah.com. -a.root-servers.net. -mx.youtube.com. -rcp.na.blackberry.com. -explore.live.com. -acor.org. -a3.twimg.com. -graph.facebook.com. -guru.avg.com. -www.facebook.com. -www.gemma.es. -a.root-servers.net. -d3lvr7yuk4uaui.cloudfront.net. -eyepatchfilms.com. -profile.ak.fbcdn.net. -lacasadecloti.blogspot.com. -profile.ak.fbcdn.net. -img7.imageshack.us. -a1.sphotos.ak.fbcdn.net. -api.twitter.com. -170.251.91.186.in-addr.arpa. -214.53.130.72.in-addr.arpa. -secure.gravatar.com. -gameplay.mochimedia.com. -timmermanco.com. -www.anythingtostopthepain.com. -188.141.39.190.in-addr.arpa. -profile.ak.fbcdn.net. -analisismatematico.wordpress.com. -www.esi-audiotechnik.com. -a.root-servers.net. -rxdrugstore-pro.com. -157.17.149.190.in-addr.arpa. -www.cemexcolombia.com. -blog.advancedphotoshop.co.uk. -ksn1-11-part1.kaspersky-labs.com. -sn122w.snt122.mail.live.com. -schaubroeck.be. -194.206.162.189.in-addr.arpa. -files.rsf-es.org. -cs4100.vkontakte.ru. -cwahi.net.multi.uribl.com. -eu4.grannytaste.com. -samsungmobile.accu-weather.com. -tematica.mercadolibre.com.ve. -tecnociencia.co. -www.tenseconds.com.au. -anuncie.taringa.net. -www.planetahuerto.es. -www.isearch.im. -www.bg.gladiatus.com. -www.google-analytics.com. -a7.sphotos.ak.fbcdn.net. -mail.jlk.com. -mlsksfkajsfsa.com. -rentar-casa.vivastreet.com.mx. -thethirdestate.net. -cwomissions.org. -182.241.59.200.in-addr.arpa. -94.146.203.190.in-addr.arpa. -cdn.api.twitter.com. -tecnologia.starmedia.com. -webcognisant.com. -102.184.38.190.in-addr.arpa. -www.youtube.com. -146.9.165.189.in-addr.arpa. -wg8.so-net.ne.jp. -a-0.19-22092081.20200b3.1518.19d3.3ea1.410.0.sddcpssrmu8th8pkmqaj6ca6p6.avqs.mcafee.com. -www.powerpresspodcast.com. -a.root-servers.net. -www.thedandyproject.com. -developers.facebook.com. -136.93.52.59.in-addr.arpa. -107.181.153.189.in-addr.arpa. -babesbycity.com. -fbcdn-profile-a.akamaihd.net. -mail.iiwengr.com. -www.planetfortress.com. -webographers.com. -yahoo.com. -althenia.net. -ltgqcs.com. -www.multiautomotores.com.ar. -www.facebook.com. -a6.sphotos.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -developers.facebook.com. -static.supadupa.me. -pt-br.facebook.com. -www.axeso5.com. -google.com. -42.43.237.190.in-addr.arpa. -88.100.232.24.in-addr.arpa. -www.bywifi.com. -a2.sphotos.ak.fbcdn.net. -235.217.208.201.in-addr.arpa. -error404.000webhost.com. -_291_07_6. -faces.doccheck.com. -85.111.51.190.in-addr.arpa. -fr.webrep.avast.com. -www.woldoringa.com. -dusty.sensi.org. -img11.imageshack.us. -an.wikipedia.org. -www.plasteck.cl. -www.facebook.com. -api.twitter.com. -a1.espncdn.com. -cs.adxpansion.com. -a639.da1.akamai.net. -101.17.153.201.in-addr.arpa. -81.211.179.178.in-addr.arpa. -s.ytimg.com. -gihfvp1mq.60bb. -101.103.97.71.in-addr.arpa. -dr._dns-sd._udp.belkin. -169.202.78.177.in-addr.arpa. -www.formacionoptometrica.com. -www.roodos.com.ve. -pronetworksolutions.net. -www.pasarmiedo.net. -kroupnov.ru. -s.ytimg.com. -a1.sphotos.ak.fbcdn.net. -2009-861.blog.163.com. -www-google-analytics.l.google.com. -157.15.46.207.in-addr.arpa. -38.159.220.77.in-addr.arpa. -131.196.113.177.in-addr.arpa. -gclsupport.nhl.com. -fpsaw35c3.o58z1z8n. -a5.sphotos.ak.fbcdn.net. -us.bc.yahoo.com. -apple.imap.mail.yahoo.com. -configuration.apple.com. -biztravels-museums.net. -cdn-2emediafire-2ecom-2fblank-2ehtml.ph.bdrbl.com. -www.themendo.com. -232.29.27.72.in-addr.arpa. -137.169.158.94.in-addr.arpa. -sites.google.com. -a.root-servers.net. -news.google.com.mx. -i1.ytimg.com. -profile.ak.fbcdn.net. -a.root-servers.net. -csi.gstatic.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.stlawrencecollege.ca. -homevalleybank.com. -4.233.213.201.in-addr.arpa. -182.194.230.189.in-addr.arpa. -mail2.globalddh.net. -images6.porkolt.com. -sn1msg2010622.gateway.messenger.live.com. -video.google.com.mx. -marmweb.com. -a6.sphotos.ak.fbcdn.net. -www.z-sys.org. -cs9394.vk.com. -money.service.msn.com. -a.root-servers.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -lh3.googleusercontent.com. -us.ebmpapst.com. -www.q8land.net. -error.facebook.com. -mail.outdoorimage.com.au. -tags.expo9.exponential.com. -www.noticias.com. -29-courier.push.apple.com. -img810.imageshack.us. -rospres.com. -labotp.org. -233.168.227.189.in-addr.arpa. -s3.productwiki.com. -www.efe2003.com. -221.158.255.190.in-addr.arpa. -ads.adxpose.com. -31-courier.push.apple.com. -apple.com. -233.252.244.99.in-addr.arpa. -mail. -mail.carmensvacuum.com. -nnnn.com. -akqa.com.s5b2.psmtp.com. -paraellas.net. -img2.etsystatic.com. -242.139.181.78.in-addr.arpa. -server5.cnsonline.com. -profile.ak.fbcdn.net. -telephonecode.ru. -cacheck.ey.net. -astrotrans.blogspot.com. -a.root-servers.net. -www.cdtracks.org. -secure-us.imrworldwide.com. -ch.foto.com. -thefutblog.info. -mail.seiko-i.com. -a.root-servers.net. -34-courier.push.apple.com. -artdography.com. -www.myriamfaresfans.com. -ad.bmo.tbn.ru. -eaacorp.com. -m.hotmail.com. -91.95.134.115.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -email.urbanoutfitters.com. -www.facebook.com. -profile.ak.fbcdn.net. -38.100.8.200.in-addr.arpa. -e1789.c.akamaiedge.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -usd416.org. -ad-emea.doubleclick.net. -sunchem.ru. -www.narcissism101.com. -169.45.43.186.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -214.122.244.61.in-addr.arpa. -140.225.224.24.in-addr.arpa. -googleads.g.doubleclick.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -sp.cwfservice.net. -www.youtube.com. -goponygo.com. -d2098345.xoom.it. -www.project-lime.com. -a1725.l.akamai.net. -partyheld.de. -248.230.202.190.in-addr.arpa. -grandrating.ru. -fr.fxfeeds.mozilla.com. -ssl.gstatic.com. -www.hairoin.de. -124.197.144.187.in-addr.arpa. -127.165.146.187.in-addr.arpa. -www.amaitlan.mx. -adserving.cpxinteractive.com. -gr4kcwiaw.g66s8x7v. -cap1.conduit-apps.com. -mx1.satelcom.qc.ca. -www.trafficfactory.biz. -r6xmlzsah.19av. -21.82.245.189.in-addr.arpa. -mail.kingroup.ru. -able.co.uk. -bchy4g:o4.68qi. -68.8.120.189.in-addr.arpa. -www.ole.com.ar. -coches-actu.com. -faypublicidad.com. -133.150.58.85.in-addr.arpa. -yahoo.com. -xcdn.xgraph.net. -urs.microsoft.com. -andersonsecurity.com. -www.mcc.is. -time.chttl.com.tw. -www.djlah.net. -divison8.mcanime.net. -173.72.66.190.in-addr.arpa. -_529_50_0. -www.strictdownload.com. -bugmpa.com. -superoil.ru. -45.44.90.186.in-addr.arpa. -v9.lscache4.googlevideo.com. -widget.uservoice.com. -a1.sphotos.ak.fbcdn.net. -webcameffects.softonic.com. -accounts.google.com. -photos-c.ak.fbcdn.net. -a.root-servers.net. -24.18.246.190.in-addr.arpa. -repo666.ultrasn0w.com. -138.178.125.84.in-addr.arpa. -artbatik.ru. -fifelife.ru. -89.79.55.65.in-addr.arpa. -www.losgobernadores.com. -profile.ak.fbcdn.net. -apis.google.com. -225.89.132.190.in-addr.arpa. -a.root-servers.net. -www.kaixindian.com. -entre-pensamientos.blogspot.com. -www.ebayers.es. -www.panetdeal.co.il. -saimecha.wordpress.com. -farorbit.com. -www.primarydisplays.co.uk. -solo.aqui.creatusfrases.net. -maudnewton.com. -www.prettyteenpics.com. -carmen-ysusrecetas.blogspot.com. -memrb.spb.su. -feedroom.speedera.net. -msupdate.emodio.com. -. -54.12.156.186.in-addr.arpa. -27.229.235.89.in-addr.arpa. -photos-h.ak.fbcdn.net. -117.29.224.189.in-addr.arpa. -www.facebook.com. -waterhunters.ru. -mystart.uservoice.com. -254.166.109.200.in-addr.arpa. -128.187.68.177.in-addr.arpa. -www.rolisimas.com. -www.naharro.com. -bit.ly. -1jhw3vc93.t79x7g0y. -developers.facebook.com. -photos-g.ak.fbcdn.net. -_925_22_3. -citukerala.org. -133.139.62.186.in-addr.arpa. -58.109.43.114.in-addr.arpa. -nooopuedeser.blogspot.com. -google.com. -corporatefitnessworks.com. -1.bp.blogspot.com. -59.1.26.96.in-addr.arpa. -4.209.150.189.in-addr.arpa. -www.sodoku.com. -130.235.55.74.in-addr.arpa. -creative.ak.fbcdn.net. -www.eluniversaltv.com.mx. -byrdr.omega.contacts.msn.com. -www.importjap.com. -ads2.msads.net. -www.herbalifemauralaussanjuan.es.tl. -47.224.25.177.in-addr.arpa. -233.129.28.187.in-addr.arpa. -mortenjust.com. -109.113.88.186.in-addr.arpa. -twitter.com. -robinson-derus.co.nz. -poverh.kiev.ua. -i2.ytimg.com. -www.zonajobs.com.ar. -hotmail.com. -www.amazon.es. -profile.ak.fbcdn.net. -a.root-servers.net. -graph.facebook.com. -jkt.spb.ru. -a.root-servers.net. -i3.ytimg.com. -. -mail1.chemspec.com. -kuhnyatv.ru. -allure.com. -34.49.218.202.in-addr.arpa. -www1.k9webprotection.com. -healthcontent.bhsi.com. -www.twitter.com. -www.googleadservices.com. -instagib.net. -www.bansa.org. -97.205.27.77.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -56.225.102.190.in-addr.arpa. -115.146.110.201.in-addr.arpa. -google.com. -rawwordrecords.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -_336_08_7. -zxtm-vnxhosapaha.nexica.net. -www.buzzfocus.com. -52.121.87.213.in-addr.arpa. -apple.com. -ugzxbcuhe.35qq. -hotword.dictionary.com. -mobile.airasia.com. -sgqsyeaoes.com. -151.149.247.190.in-addr.arpa. -www.google-analytics.com. -229.169.209.201.in-addr.arpa. -www.facebook.com. -www.mediachannel.com. -www.amazon.com. -i4.ytimg.com. -profile.ak.fbcdn.net. -img.nextproducts.net. -time.chttl.com.tw. -a4.mzstatic.com. -244.207.240.148.in-addr.arpa. -static.ak.fbcdn.net. -www.desktopgoldfish.com. -b._dns-sd._udp.0.10.168.192.in-addr.arpa. -53.143.168.192.in-addr.arpa. -developers.facebook.com. -airs.jpl.nasa.gov. -www.youtube.com. -www.anarchistcookbookz.com. -mail.cyrbustours.com. -32-courier.push.apple.com. -www.tpwang.net. -color-by-numbers.net. -umail.net. -mail.promtractor.ru. -update3.jdownloader.org. -www.mcanime.net. -thomarie-fanclub.deviantart.com. -29.72.149.99.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -mail.plasa.com. -api.conduit.com. -www.facebook.com. -time.nist.gov. -api.conduit.com. -p0b.ru. -. -www.update.microsoft.com. -checkip.dyndns.org. -39.49.10.75.in-addr.arpa. -idipus.tumblr.com. -www.encuentro-practico.com. -www.yahoo.com. -nonghai.net.multi.uribl.com. -www.w3.org. -231.11.223.148.in-addr.arpa. -blog.metropolislibros.com. -by2msg3010518.by2.gateway.edge.messenger.live.com. -me.effectivemeasure.net. -www.datefree.com. -tw.pool.ntp.org. -bs.serving-sys.com. -mail.gestionrv.com. -d3lvr7yuk4uaui.cloudfront.net. -graph.facebook.com. -client-software.real.com. -csc3-2010-crl.verisign.com. -fr-fr.facebook.com. -modern-glass.com. -oldis.ru. -east-west.fr. -www.google.com. -240.60.55.174.in-addr.arpa. -196.139.177.190.in-addr.arpa. -animesite2.blogspot.com. -air-control.softonic.com. -103.198.79.188.in-addr.arpa. -. -www.justin.tv. -smokingmirrors.blogspot.com. -img100.xvideos.com. -www.google.com. -repositori.upf.edu. -www.cenetec.salud.gob.mx. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -final-fantasy-x-tidus.programasgratis.es. -www.google.com. -muzy.com. -254.1.168.192.in-addr.arpa. -vbe.cci. -60.68.141.201.in-addr.arpa. -isatap.home. -l.yimg.com. -artesiatech.com. -bleah.com. -roitrack.urtbk.com. -_897_64_8. -a.root-servers.net. -www4.l.google.com. -exp01.eset.com. -105.245.231.77.in-addr.arpa. -yztkxo2fh.63tm. -mail.clvec.ie. -39-courier.push.apple.com. -www.google-analytics.com. -earthds.info. -profile.ak.fbcdn.net. -mail.mtremblay.com. -evermor.net. -a6.sphotos.ak.fbcdn.net. -224.92.131.187.in-addr.arpa. -lrhvridjyg.info. -dl.macpaw.com. -glueckkanja-de.mail.eo.outlook.com. -fb-client-0.castle.zynga.com. -mscrl.microsoft.com. -www.weheartit.com. -omikom.ru. -kriminalforsorgen.dk. -mx3.hotmail.com. -mail.guarantyresearch.com. -host356.hostmonster.com. -carservis.pl. -santarom.ru. -68ohh6com6c1h-c.c.yom.mail.yahoo.com. -b.static.ak.fbcdn.net. -www.todoferreteria.com. -207.234.226.189.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -mog.com. -a1.twimg.com. -a.root-servers.net. -simurl.com. -mail.fbcpalmetto.com. -d7.zedo.com. -creative.ak.fbcdn.net. -huuah.com. -fkjdeljfeew32233.com. -www.facebook.com. -www.adobe.com. -ssl.gstatic.com. -sartaonline.com.1.0001.arsmtp.com. -62.158.220.66.in-addr.arpa. -gpl-violations.org. -takvim.com.tr. -foto36.com. -a.root-servers.net. -s-static.ak.fbcdn.net. -www.20minutos.es. -wheelsworldwide.co.uk. -www.youtube.com. -www.addthis.com. -api.twitter.com. -elchavodelocho.bravehost.com. -barochanynicky.su. -138.33.247.190.in-addr.arpa. -bit.ly. -phoenixtechnology.com. -l.sharethis.com. -thecloudplayer.com. -bizinformation.org. -173.5.172.201.in-addr.arpa. -pixel.facebook.com. -haveasenseofhumor.cheezburger.com. -www.blogpulp.com. -remote.rtcimpex.ru. -i25nvbyk27l68k47m39jqg23p42kvb28mwjycunr.net. -a.root-servers.net. -191.169.208.77.in-addr.arpa. -fannin.k12.ga.us. -b.scorecardresearch.com. -_464_80_6. -biouzhen.dyndns-server.com. -qeeq.net. -service.gc.apple.com. -152.52.154.98.in-addr.arpa. -platform.ak.fbcdn.net. -a.root-servers.net. -www.chitambo.com. -it-it.facebook.com. -tsvetyoptom.ru. -163.40.23.71.in-addr.arpa. -content.everydayhealth.com. -www.google-analytics.com. -185.127.149.187.in-addr.arpa. -ssl.gstatic.com. -a-0.19-2209d081.c030083.1518.19d2.3ea1.410.0.d5g4l32d6jgjp7wsn6vrk57hvq.avqs.mcafee.com. -rs571l33.rapidshare.com. -photos-e.ak.fbcdn.net. -mscrl.microsoft.com. -susana-solea.blogspot.com. -smtp.yopmail.com. -www.translate.ge. -tdy.prodigy.msn.com. -rmd3f8mbk.v20u1c3h. -videos-gratis.petardas.com. -www.consultadetarotgratuita.com. -merriam-webster.sl.advertising.com. -clasificados.fiestaideas.com. -daa-spokane.com. -probe.iomegacloud.com. -a.root-servers.net. -profile.ak.fbcdn.net. -zcache.zgncdn.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -www.clubcassiecruz.com. -34.5.254.41.in-addr.arpa. -tools.google.com. -88.28.14.187.in-addr.arpa. -235.145.248.81.in-addr.arpa. -cdn.naxpgaming.com. -12.92.45.190.in-addr.arpa. -pacificu.edu. -t4.tagstat.com. -110.19.34.94.in-addr.arpa. -graphics478.nytimes.com.edgesuite.net. -www.graydenpoper.com. -guru.avg.com. -ad.aim4media.com. -twitter.com. -192.194.208.108.in-addr.arpa. -93.142.174.189.in-addr.arpa. -climat24.ru. -www.nabdh-alm3ani.net. -beta.stun.voice.yahoo.com. -www.ajnonline.com. -photos-a.ak.fbcdn.net. -darkshadows.wikia.com. -60.130.15.189.in-addr.arpa. -urs.microsoft.com. -161.218.60.187.in-addr.arpa. -pixel.facebook.com. -suomi24.com. -tools.google.com. -static.ak.fbcdn.net. -134.173.116.200.in-addr.arpa. -sync.mathtag.com. -data.flurry.com. -39.183.220.62.in-addr.arpa. -www.kt2syggf436dtag646.com. -www.toonsup.de. -rcw.wc24.wii.com. -www.tko24.com. -www.adobe.com. -test-rt.liftdna.com. -api.conduit.com. -fabulousims.blogspot.com. -www.entertainmentworld.us.tt. -photos-e.ak.fbcdn.net. -platform.ak.fbcdn.net. -group.hawahome.com. -aimnet.net. -a.root-servers.net. -a.root-servers.net. -googleads.g.doubleclick.net. -www.l.google.com. -search.bittorrent.com. -webexpromt.ru. -v2.cache1.c.youtube.com. -www.google-analytics.com. -132.122.114.200.in-addr.arpa. -www.facebook.com. -d15gt9gwxw5wu0.cloudfront.net. -manyue.com. -photographers.co.uk. -bs.serving-sys.com. -www.jatox.com. -www.googleadservices.com. -photos-e.ak.fbcdn.net. -35.129.134.186.in-addr.arpa. -mail.rstrents.com. -veureka.net. -coyoacan.linkbyme.com.mx. -g.ceipmsn.com. -sbcglobal.net. -img.csfd.cz. -www.linkedin.com. -m1.webstats.motigo.com. -www.elmundoenpositivo.com. -a.root-servers.net. -114.124.225.190.in-addr.arpa. -58.72.52.99.in-addr.arpa. -cdn-0.nflximg.com. -86.108.221.90.in-addr.arpa. -tap2-cdn.rubiconproject.com. -proxy-77.ix.dailymotion.com. -j2.yokacdn.com. -external.ak.fbcdn.net. -decoradecora.blogspot.com. -profile.ak.fbcdn.net. -138.13.94.188.in-addr.arpa. -no10.unternehmen.com. -mail2.elar.ru. -clientstat.rockyourphone.com. -253.225.85.85.in-addr.arpa. -l.yimg.com. -s0.2mdn.net. -photos-g.ak.fbcdn.net. -kinisoku.sakura.ne.jp. -adv-lance.com. -www.google.com. -api-read.facebook.com. -n8.8-d.com. -sunde.com.inbound15.mxlogic.net. -intercambio-compra-venta.blogspot.com. -117.121.183.189.in-addr.arpa. -www.perriguay.com. -ajax.googleapis.com. -www.google.com. -widgets.twimg.com. -sb-mail.sbci.com. -211.214.200.190.in-addr.arpa. -pt-br.facebook.com. -36.9.222.77.in-addr.arpa. -okoninc.com. -a1.sphotos.ak.fbcdn.net. -www.facebook.com. -crl.verisign.com. -cdn.enterupload.com. -val-test.com. -weather.wapp.wii.com. -www.lib.utulsa.edu. -sites.google.com. -ksn2.kaspersky-labs.com. -digg.com. -x.tagstat.com. -campbellalliance.com.s8b2.psmtp.com. -www.pantallazoazul.net. -pro.vrn.ru. -outtengolden.com. -dns.msftncsi.com. -saltydroid.info. -www.muitogostoso.com.br. -dimeca.unica.it. -i.canddi.com. -36.115.172.187.in-addr.arpa. -a.root-servers.net. -mortgageadvisorskc.com. -a6.sphotos.ak.fbcdn.net. -goo.gl. -fbcdn-photos-a.akamaihd.net. -shared.live.com. -cxz23.meaningtool.com. -www.facebook.com. -img-s3-01.mytextgraphics.com. -mail.pleasval.k12.ia.us. -www.facebook.com. -a1.sphotos.ak.fbcdn.net. -www.facebook.com. -aol.com. -hash.orbitdownloader.com. -www.google.com. -www.tvps.com. -professional.avira-update.com. -tg.game2.cn. -125.126.219.190.in-addr.arpa. -conn.skype.com. -aircarrierzf.com. -profile.ak.fbcdn.net. -www.hostalcondesa.com. -67.230.16.190.in-addr.arpa. -invest-centr.ru.sci.smolensk.ru. -creative.ak.fbcdn.net. -b._dns-sd._udp.lan. -www.google.com. -217.12.6.189.in-addr.arpa. -www.wellpad.com. -www.facebook.com. -140.140.95.99.in-addr.arpa. -fruit.blurtit.com. -googleads.g.doubleclick.net. -korigan.net. -83.114.66.186.in-addr.arpa. -www.softonic.cn. -38.147.220.66.in-addr.arpa. -steveholtvstheuniverse.tumblr.com. -dr._dns-sd._udp.0.0.0.5.in-addr.arpa. -157.15.192.190.in-addr.arpa. -developers.facebook.com. -100.1.168.192.in-addr.arpa. -3ys5nh::h.42kc. -freerollpw.info. -mail.quakermaid.com. -1st.net.com. -api.facebook.com. -a.root-servers.net. -94.158.125.74.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -_198_43_8. -ecatv.home.ne.jp. -a3.sphotos.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -www.morelosdiario.com. -www.pekegifs.com. -ads.tlvmedia.com. -www.hemei.co. -pixel.facebook.com. -photos-f.ak.fbcdn.net. -profile.ak.fbcdn.net. -cs11517.vk.com. -themecraft.net. -159.28.152.201.in-addr.arpa. -www.juegosdiarios.com. -mx.answers.yahoo.com. -dougseven.com. -1804289383.localhost. -liveupdate.symantecliveupdate.com. -71.253.230.190.in-addr.arpa. -mx2.tgp.iphmx.com. -btopenworld.com. -americanmotorabilia.com. -photos-h.ak.fbcdn.net. -2464555234.dnsbl7.mailshell.net. -a3.sphotos.ak.fbcdn.net. -google.com. -gerbergear.com. -mystartantiphishing.com. -btfans.3322.org. -a.root-servers.net. -networkedblogs.com. -www.verbicidemagazine.com. -freegames.zone.com. -www.gmodules.com. -teredo.ipv6.microsoft.com. -a.root-servers.net. -178.242.18.186.in-addr.arpa. -mail.americanzephyr.com. -160.89.132.203.in-addr.arpa. -supermotard.dk. -shusd.k12.ca.us. -news-briefs.ew.com. -mail.mfsia.com. -argin.net. -211.222.2.204.in-addr.arpa. -a.root-servers.net. -222.80.27.177.in-addr.arpa. -copy.yandex.net. -mail.fcmoscow.ru. -csi.gstatic.com. -ads.e-planning.net. -time.chttl.com.tw. -www.facebook.com. -ratings-wrs.symantec.com. -ac3filter.net. -1wk83cbvh.95fd. -a995.mm1.akamai.net. -www.swosu.edu. -95.6.191.186.in-addr.arpa. -159.39.143.201.in-addr.arpa. -mx.pochemu.ru. -i7x6a8w8x.83nx. -comoaumentarlospechos1.blogspot.com. -platform.twitter.com. -platform.ak.fbcdn.net. -totalbis.com. -www.uwebi.org. -178.96.91.125.in-addr.arpa. -plus.google.com. -tymewyse.com. -photos-d.ak.fbcdn.net. -cf.addthis.com. -mscrl.microsoft.com. -a.root-servers.net. -gers.com. -wpad. -lh3.googleusercontent.com. -sp.cwfservice.net. -www.fireshell.wordpress.com. -www.searchqu.com. -www.marions-kochbuch.com. -www.aumentodemamas.es. -9.122.98.189.in-addr.arpa. -www.losttv-forum.com. -ocsp.verisign.com. -gethotfree.eu. -www.straponvideotop.com. -sn136w.snt136.mail.live.com. -kmlworks.appspot.com. -a6.sphotos.ak.fbcdn.net. -_133_24_3. -www.google.com. -txlogistik.de. -lpamail.com. -garply.com. -techprolonged.disqus.com. -toltec-nagual.com. -alchemysoft.com. -loading5.widdit.com. -240.244.77.190.in-addr.arpa. -platform.ak.fbcdn.net. -search.mywebsearch.com. -20.33.69.189.in-addr.arpa. -27.200.93.186.in-addr.arpa. -photos-h.ak.fbcdn.net. -ksn2-12.kaspersky-labs.com. -www.tire-information-world.com. -infomama.ru. -profile.ak.fbcdn.net. -photos-c.ak.fbcdn.net. -www.stopbadware.org. -myhughesnet.com. -usapears.ru. -pitch.ru. -www.estomaterapia.es. -235.117.234.189.in-addr.arpa. -connect.facebook.net. -222.8.121.178.in-addr.arpa. -img855.imageshack.us. -shania-twain-wallpapers.blogspot.com. -holaya.blogspot.com. -www.wfp.org. -www.hudakonhollywood.com. -94.218.168.189.in-addr.arpa. -starry.net.s7a1.psmtp.com. -www.bywifi.com. -47.138.55.182.in-addr.arpa. -autolife116.ru. -stats.televisadeportes.esmas.com. -a7.sphotos.ak.fbcdn.net. -64.54.56.200.in-addr.arpa. -www.europa-ciezarowki.pl. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -53.16.16.200.in-addr.arpa. -accor-mail.com.dob.sibl.support-intelligence.net. -197.54.114.186.in-addr.arpa. -postales-y-tarjetas.com. -static-cdn.modernwar-game.com. -es.wowhead.com. -141.150.80.190.in-addr.arpa. -googleads.g.doubleclick.net. -utility1.software.informer.com. -www.herongyang.com. -172.240.81.93.in-addr.arpa. -www.facebook.com. -weblinkone.com. -142.8.18.186.in-addr.arpa. -mundogamers.com. -sigs.symantec.com. -178.99.55.74.in-addr.arpa. -135.72.55.65.in-addr.arpa. -pixel.facebook.com. -kassnet.net. -a1003.w41.akamai.net. -photos-a.ak.fbcdn.net. -google.com. -a.root-servers.net. -cruins.com. -emark.rtl.de. -segment-pixel.invitemedia.com. -twbcompany.com.s7a1.psmtp.com. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -www.googletagservices.com. -c1142172.cdn.cloudfiles.rackspacecloud.com. -farm8.staticflickr.com. -147.210.124.2.in-addr.arpa. -profile.ak.fbcdn.net. -spiralcom.co.uk. -www.edoglovers.com. -a1961.w7.akamai.net. -www.autoline.tv. -69620.ua.all.biz. -csi.gstatic.com. -156.247.100.81.in-addr.arpa. -254.108.104.59.in-addr.arpa. -automatedlogic.com.s7a2.psmtp.com. -213.233.55.190.in-addr.arpa. -96.213.89.186.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -www.flipdrive.com. -www.bradleysalmanac.com. -it.answers.com. -www.ver-series-online.com. -app.appatyze.com. -dns.msftncsi.com. -hotmail.com. -a.root-servers.net. -asset5.puatraining.com. -pa.wordpress.com. -a7.sphotos.ak.fbcdn.net. -www.tecnosapiens.cl. -87.105.9.186.in-addr.arpa. -98.47.143.190.in-addr.arpa. -a34.g.akamai.net. -sp.cwfservice.net. -api.twitter.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -s-static.ak.fbcdn.net. -pixel.facebook.com. -www.mikextube.com. -sassysarongs.com. -photos-b.ak.fbcdn.net. -aol.com. -connect.facebook.net. -a.root-servers.net. -74.101.168.192.in-addr.arpa. -lyrebirdradio.com. -developers.facebook.com. -twist45.wanadoo.co.uk. -www.google.com.mx. -www.decorationtricks.com. -231.113.171.187.in-addr.arpa. -9.13.254.17.in-addr.arpa. -celebhairstyle.files.wordpress.com. -31.30.168.187.in-addr.arpa. -185.171.123.187.in-addr.arpa. -smithnv.com. -a.root-servers.net. -www.avanza.se. -s-static.ak.fbcdn.net. -132.238.74.187.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -www.thebadrash.com. -photos-a.ak.fbcdn.net. -googleads.g.doubleclick.net. -u11.eset.com. -gocpc.com.inbound10.mxlogic.net. -api.twitter.com. -228.216.139.190.in-addr.arpa. -photos-b.ak.fbcdn.net. -static.chartbeat.com. -38.147.220.66.in-addr.arpa. -21.191.132.187.in-addr.arpa. -cns.ru. -gogastudios.com. -cuartetos.org. -nutramax.com. -tc11.easythumbhost.com. -tms30.icrc.trendmicro.com. -accounts.google.com. -223.87.160.201.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -mp3.es. -suezsteel.com. -dns.msftncsi.com. -transloadamerica.net.s5a1.psmtp.com. -go.microsoft.com. -plus.google.com. -gemmark.it. -becausemusicismylife.blogspot.com. -www.youtube-nocookie.com. -curgos.galeon.com. -bing.com. -chiapas.olx.com.mx. -creative.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -track.pubmatic.com. -photos-b.ak.fbcdn.net. -api.twitter.com. -twitter.com. -s.youtube.com. -laricreazionenonaspetta.comunita.unita.it. -gfx3.hotmail.com. -a2.sphotos.ak.fbcdn.net. -wazzy88.deviantart.com. -api.geo.kontagent.net. -browsefb.com. -csi.gstatic.com. -oppcos.com.s10a2.psmtp.com. -www.youtube-nocookie.com. -musicbestseller.com. -219.47.165.189.in-addr.arpa. -www.ircfast.com. -lastchaos.softonic.fr. -photos-d.ak.fbcdn.net. -dns.msftncsi.com. -apps.facebook.com. -46.177.85.24.in-addr.arpa. -www.eltiempo.com. -www.cfr.ro. -dl-ssl.google.com. -131.95.163.71.zz.countries.nerd.dk. -titanium30-en.url.trendmicro.com. -www.solunet-infomex.com. -static.ak.fbcdn.net. -2.254.32.200.in-addr.arpa. -133.241.52.186.in-addr.arpa. -a.root-servers.net. -s-static.ak.facebook.com. -creative.ak.fbcdn.net. -a.root-servers.net. -249.226.225.186.in-addr.arpa. -ib.adnxs.com. -s1-05.twitpicproxy.com. -pagead2.googlesyndication.com. -kocd4jfm1.x69t6f5f. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.cantur.com. -profile.ak.fbcdn.net. -122.54.54.85.in-addr.arpa. -a.root-servers.net. -apps.facebook.com. -csi.gstatic.com. -g.di0.org. -www.google.com. -gdrnylaw.com. -ip1.dynupdate.no-ip.com. -69.22.238.190.in-addr.arpa. -www.google.com. -diva-inc.com. -s.ytimg.com. -photos-b.ak.fbcdn.net. -. -twitter.com. -mail.lss-corp.com. -191.169.166.99.in-addr.arpa. -photos-a.ak.fbcdn.net. -a.root-servers.net. -x1.mobileboner.com. -a3.sphotos.ak.fbcdn.net. -media.fastclick.net. -1-a-pay.com. -gropc.com. -pc.vggen.com. -navegandoporgrecia.blogspot.com. -cdn-1.nflximg.com. -gate2.finpar.ru. -www.icc-cpi.int. -safebrowsing.clients.google.com. -p32d20cvjyi45c19nvd40avdtb18hva67iqbsar.org. -www.amazon.es. -oascentral.marklevinshow.com. -35.40.221.190.in-addr.arpa. -74.194.102.80.in-addr.arpa. -www.tcscouriers.com. -admin.brightcove.com. -a3.sphotos.ak.fbcdn.net. -a.xlink.xboxlive.com. -veracitymanagementgroup.com. -www.husky-owners.com. -234.71.50.201.in-addr.arpa. -review.tidebuy.com. -www.rptcontentserver.com. -mail.radio.ru. -images.bomb-mp3.com. -i.ytimg.com. -657-async.olark.com. -pohmtk.com. -youtu.be. -a.root-servers.net. -232.65.52.186.in-addr.arpa. -e4805.b.akamaiedge.net. -telcel3g.wordpress.com. -www.ela-salaty.com. -a1294.w20.akamai.net. -15.149.220.66.in-addr.arpa. -254.250.192.187.in-addr.arpa. -static.ak.fbcdn.net. -www.bloggertipsandtricks.com. -www.littlebigplanetarium.com. -a153.phobos.apple.com. -a.root-servers.net. -242.252.105.95.in-addr.arpa. -ieonlinews.microsoft.com. -urs.microsoft.com. -www.wtp101.com. -www.googleapis.com. -mail.cbici.net. -sc2.rules.mailshell.net. -a1725.l.akamai.net. -180.156.68.87.in-addr.arpa. -sp.cwfservice.net. -a.root-servers.net. -45.137.188.201.in-addr.arpa. -_727_05_5. -stlsports.org. -ca.answers.yahoo.com. -misandanzasporlavida.blogspot.com. -api.conduit.com. -ns.polikvart.ru. -shop.xango.com.hk. -udvgpbctq.q56x4w8i. -img.youtube.com. -117.255.242.201.in-addr.arpa. -hassan-khan-solicitors.com. -www.asev.org. -116.95.168.192.in-addr.arpa. -google.com. -rca.com. -1.88.158.187.in-addr.arpa. -www.facebook.com. -jdgtffhwysurnu.tw. -tcr.tynt.com. -b._dns-sd._udp.lan. -images.speedbit.com. -www.installingwoodfloors.com. -pics.hi5.com. -modedevoted.blogspot.com. -59.30.75.190.in-addr.arpa. -pixel.rubiconproject.net.akadns.net. -p06-bookmarks.icloud.com. -a4.sphotos.ak.fbcdn.net. -t1.gstatic.com. -248.60.198.190.in-addr.arpa. -search.yahoo.com. -r._dns-sd._udp.0.0.1.10.in-addr.arpa. -a.root-servers.net. -www.ssasychic.com. -www.datarecovery.net. -pagead2.googlesyndication.com. -mail.raphaministries.com. -freeqq2.qq.com. -b._dns-sd._udp.lan. -work-in-net.ru. -adspaces.ero-advertising.com. -dns.msftncsi.com. -_550_41_5. -54.192.177.78.in-addr.arpa. -tpm.com.au. -a.root-servers.net. -www.derecho.com. -apps.facebook.com. -www.myviphealth.com. -d3lvr7yuk4uaui.cloudfront.net. -olysteel.com. -h.live.com. -macralace.com. -stats.wartsila.net. -zh-cn.facebook.com. -elviasboutique.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -l.yimg.com. -35.91.142.68.in-addr.arpa. -garufa.com. -instagr.am. -www.rincondeljuego.net. -pbid.iforex.com. -ocsp.digicert.com. -www.2joyourself.tv. -aodinc.com. -cnhmexico.com.mx. -mail.absolutesoundinc.com. -router.infolinks.com. -irc.purchaseservice.com. -100.248.92.186.in-addr.arpa. -www.xtube.com. -mail.metastar.com. -a995.mm1.akamai.net. -info.babylon.com.lan. -98.190.11.190.in-addr.arpa. -aol.com. -swdpme4oh.a76v7b1o. -mail.kjcomm.com. -cecs.pdx.edu. -0-68.channel.facebook.com. -game.taobao.com. -v9.nonxt5.c.pack.google.com. -qhj3egwiz.06oe. -www.shemaletubeclips.com. -b-0.19-2304d408.80010c1.1518.19d4.3ea1.410.0.1dhr69rzugs8hlqbdeuv9fnjrv.avqs.mcafee.com. -mercedesbenz.com. -photos-d.ak.fbcdn.net. -ha-ash.com. -www.google.com. -www.agoda.pl. -www.justanswer.com. -alerts.conduit-services.com. -connect.facebook.net. -dns.msftncsi.com. -www.ice.it. -thesourcecompanies.com. -teredo.ipv6.microsoft.com. -www.joey-silvera-shemales.com. -ads.hotgirlsgames.net. -bestimpressionsinc.net. -www.nokiakiller.com. -profile.ak.fbcdn.net. -clients1.google.com. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -173.20.3.88.in-addr.arpa. -www.experiencestmaarten.com. -ejabat.google.com. -www.google-analytics.com. -www.facebook.com. -volcanoseven.com. -www.yahoo.com. -www.juegosdebarbiebebe.com. -www.megastock.com. -245.43.213.189.in-addr.arpa. -113.186.183.178.in-addr.arpa. -www.alejandrodemiguel.com. -www.askgamblers.com. -112.221.152.189.in-addr.arpa. -cache.netacad-cdn.net. -wee.fadri.org. -14.63.209.190.in-addr.arpa. -a995.mm1.akamai.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -161.233.126.187.in-addr.arpa. -profile.ak.fbcdn.net. -a-0.19-23088089.8060033.1518.19d4.3ea1.210.0.vt371gbcdzpj6jlp46w5q5wglb.avqs.mcafee.com. -mail.aikenprinting.com. -www.talanews.com. -profile.ak.fbcdn.net. -moodpoll.nfdaily.cn. -crl.microsoft.com. -www.microsoft.com. -static.gulli.com. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -empoweredbirth.typepad.com. -sjc-smtp1.sjc.dropbox.com. -row.bc.yahoo.com. -sites.google.com. -v3.nonxt1.c.android.clients.google.com. -plus.google.com. -www.tripadvisor.com.my. -www.facebook.com. -www.facebook.com. -www.hardhornyme.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -asspmvv.puntdoc.es. -a5.sphotos.ak.fbcdn.net. -56.230.178.190.in-addr.arpa. -19.76.241.201.in-addr.arpa. -www.breaktaker.com. -ocsp.digicert.com. -a8.sphotos.ak.fbcdn.net. -www.lodgingbarcelona.com. -brantly.com. -pixel.facebook.com. -www.ciasf2010.es. -piraeusbank.gr. -time.microsoft.akadns.net. -dns.msftncsi.com. -www.airrunnersystems.com. -145.96.245.189.in-addr.arpa. -adserv.comze.com. -xmy.froo.com. -subdere.gov.cl. -www.adobe.com. -www.fundacionamanecer.cl. -dtboot.orbitdownloader.com. -profile.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -ottu-da.ru. -i3.ytimg.com. -photos-g.ak.fbcdn.net. -140.120.167.80.in-addr.arpa. -a.root-servers.net. -www.elpobladodeprince.com. -a1907.g.akamai.net. -a.root-servers.net. -davidweikel.com. -captcha.qq.com. -13.203.192.71.in-addr.arpa. -www.ebgames.com.au. -photos-g.ak.fbcdn.net. -bomberman.chulojuegos.com. -11.111.166.201.in-addr.arpa. -apis.google.com. -6pix3ikxv.23mj. -nsx.sec.np.dl.playstation.net. -platform.ak.fbcdn.net. -open-tracker.appspot.com. -www.afuj.fr. -198.250.9.190.in-addr.arpa. -a.root-servers.net. -creative.ak.fbcdn.net. -cs12962.vkontakte.ru. -quick-876346.com. -a323.yahoofs.com. -www.facebook.com. -mx2.fidalgo.net. -16.192.68.177.in-addr.arpa. -gamestats.gamespy.com. -s-static.ak.facebook.com. -www.lovevalencia.com. -www.rioave-fc.pt. -oi681.photobucket.com. -www.justinbiebermexico.com. -sync.search.spotxchange.com. -hardsalsa.com. -www.cool-bites.com. -memelodia.blogspot.com. -158.199.161.189.in-addr.arpa. -mailgate1.bdal.de. -secure.nsta.org. -zh-cn.facebook.com. -mobilemaps.clients.google.com. -s2.youtube.com. -h0m-master.ru. -api25.thetrafficstat.net. -ax.init.itunes.apple.com. -a-0.19-230f1041.9050081.1518.19d0.3ea1.410.0.vfprgn6rjkecblnk3rzsiqms7i.avqs.mcafee.com. -xmadenx.files.wordpress.com. -a.root-servers.net. -hockey.cbssports.com. -static.ak.fbcdn.net. -p24.packet8.net. -lissamonet.com. -a1725.l.akamai.net. -g.live.com. -www.abc.es. -www.foxnews.com. -dns149.a.register.com. -themes.googleusercontent.com. -gmlive.narod.ru. -73y5662up.86ot. -fullrangedriver.com. -assets00.grou.ps. -cmcelectronics.com. -27.222.192.187.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -a2.ec-images.myspacecdn.com. -11.80.104.186.in-addr.arpa. -www.youtube.com. -snake.cc.ncu.edu.tw. -www.cuevana.tv. -cbflouhouse.com. -api.twitter.com. -comtelsystem.com. -wirelessnotebook.com. -60.11.6.24.in-addr.arpa. -storage.conduit.com. -blog.rainbowhill.com.au. -plus.google.com. -sherland.ru. -bandstores.co.uk. -st2.xxxkinky.com. -www.benedictinescat.com. -mail.centurytel.net. -a7.sphotos.ak.fbcdn.net. -iistbrai1.t98a4n7p. -photos-f.ak.fbcdn.net. -juegos7.juegosdiarios.com. -teredo.ipv6.microsoft.com. -www.mtv.co.uk. -www.bodyfitcheck.com.au. -www.mascus.co.za. -ads.adxpansion.com. -lasvarinet.com.ar. -apps.facebook.com. -206.190.235.189.in-addr.arpa. -78.129.52.186.in-addr.arpa. -hex.namehub.com. -22-courier.push.apple.com. -metrics.blackberry.com. -tracking.usage.app.conduit-services.com. -zynga1-a.akamaihd.net. -email.xmradio.com. -179.203.96.190.in-addr.arpa. -www.nanking-massacre.com. -rewfkg0ret876.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -walmart.ugc.bazaarvoice.com. -www.thejohnreport.net. -de-freshmilk.cdn.videoplaza.tv. -photos-g.ak.fbcdn.net. -33.143.209.77.in-addr.arpa. -google.com. -blogs.desitara.com. -11.185.153.189.in-addr.arpa. -s-static.ak.facebook.com. -pagead2.googlesyndication.com. -www.adam4adamlive.com. -asiandvdclub.org. -i.lumosity.com. -132.207.225.190.in-addr.arpa. -blog.apps.su. -mipagina.esmas.com. -49.219.27.46.in-addr.arpa. -wmost.com. -dx3723.tinyurl.com. -static.ak.facebook.com. -static.ak.fbcdn.net. -www.winksfun.com. -dark-wraith.com. -login.live.com. -9.94.161.187.in-addr.arpa. -static.ak.fbcdn.net. -login.yahoo.com. -csi.gstatic.com. -toolbarqueries.google.com.mx. -ad.turn.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -116.185.2.123.in-addr.arpa. -svrsecure-g2-crl.verisign.com. -www.sigoconana.blogspot.com. -879.coll.ning.com. -mobile.twitter.com. -www.cuantarazon.com. -l16.member.kr3.yahoo.com. -mail.packup.ru. -xml.truveo.com. -apis.google.com. -mail.ccalawcorp.com. -mail.qm-company.com. -129.13.58.189.in-addr.arpa. -csi.gstatic.com. -v7.cache3.c.youtube.com. -www.salud.df.gob.mx. -cdn1.iofferphoto.com. -jmu.edu. -dns.msftncsi.com. -images1-focus-opensocial.googleusercontent.com. -toolbarqueries.google.com.mx. -a5.sphotos.ak.fbcdn.net. -kaltura.com. -lb._dns-sd._udp.lan. -www.google.com. -edsal.com. -www.centroexcursionista.org. -static.ak.facebook.com. -apps.teamlava.com. -www.lebnights.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -bj.bbs.house.sina.com.cn. -alt1.aspmx.l.google.com. -5.134.45.190.in-addr.arpa. -www.facebook.com. -101.43.73.94.in-addr.arpa. -45.181.63.69.in-addr.arpa. -carnby.altervista.org. -25.83.0.88.in-addr.arpa. -134.192.56.186.in-addr.arpa. -banners.wunderground.com. -dr._dns-sd._udp.0.2.168.192.in-addr.arpa. -simonds.ru. -sn1msg2010523.gateway.messenger.live.com. -picgalleries.hotshemalesluts.com. -id.google.com. -apis.google.com. -gan.wikipedia.org. -recabrones.com. -249.99.34.186.in-addr.arpa. -52.151.221.189.in-addr.arpa. -www.mediafire.com. -195.12.188.186.in-addr.arpa. -pda-bes.amazon.com. -sro.whatsapp.net. -30.7.22.187.in-addr.arpa. -downloadgraphy.blogspot.com. -ksn2-12.kaspersky-labs.com. -163.165.194.180.in-addr.arpa. -id.google.com.mx. -millersofclaflin.com. -an-penza.ru. -6.254.189.190.in-addr.arpa. -_826_89_5. -inbound.nightline-inc.com.netsolmail.net. -jovenescritora.metroblog.com. -235.63.70.187.in-addr.arpa. -20.26.108.27.in-addr.arpa. -154.93.27.201.in-addr.arpa. -support.google.com. -246.36.78.201.in-addr.arpa. -27925x2ti.75je. -pixel.facebook.com. -ninjaui.com. -46.183.36.184.in-addr.arpa. -pctelecom.com. -twitter.com. -fbcdn-photos-a.akamaihd.net. -a.root-servers.net. -s-static.ak.fbcdn.net. -waittime.tsa.dhs.gov. -eightyonedays.com. -check4.facebook.com. -valuta.se. -a1.sphotos.ak.fbcdn.net. -www.facebook.com. -smtp.hot.glbdns.microsoft.com. -www.lamonomagazine.com. -ocsp.digicert.com. -tgmedsystem.com. -dns.msftncsi.com. -www.mypinktasticlife.com. -seodoktor.ru. -b.scorecardresearch.com. -www.cia.gov. -248.103.68.201.in-addr.arpa. -berkshiresgi.com. -gibbonlaw-com.mail.eo.outlook.com. -ksn2-12.kaspersky-labs.com. -0-131.channel.facebook.com. -mx2.wellsfargo.com. -www.perunatural.com. -autofotoexpress.com. -michaelgerald.com.mail6.psmtp.com. -137.52.137.85.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -www.geoturismoenbosquesdecafe.com. -32.107.244.189.in-addr.arpa. -fotografiainfo.ru. -www.just-think-it.com. -a3.sphotos.ak.fbcdn.net. -235.105.250.190.in-addr.arpa. -a.root-servers.net. -jerryseinfeld.com. -c-ak.static-rootmusic.com. -averapharm.com. -s-static.ak.fbcdn.net. -animationprogression.blogspot.com. -gallery.chantasbitches.com. -p01-keyvalueservice.icloud.com. -shoe-apparel.en.alibaba.com. -a.prisacom.com. -mareterra.com.br. -b91.yahoo.co.jp. -justinsky.de. -developers.facebook.com. -bransonultrasonics.com. -a.root-servers.net. -www.isg-apple.com.akadns.net. -static.ak.fbcdn.net. -shop.capcom.com. -242.178.195.187.in-addr.arpa. -res2.windows.microsoft.com. -pixel.quantserve.com. -www.sinograver.com. -scottforesman.com.mail7.psmtp.com. -profile.ak.fbcdn.net. -client.akamai.com. -sporthotel.ru. -d3lvr7yuk4uaui.cloudfront.net. -www.xfire.com. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -safebrowsing-cache.google.com. -103.54.187.189.in-addr.arpa. -a.root-servers.net. -ad.doubleclick.net. -cdn.kgyounginternet.com.c.footprint.net. -vassilipuskas.com. -dns.msftncsi.com. -www.freeland.org. -212.126.24.125.in-addr.arpa. -99.42.105.71.in-addr.arpa. -www.ancestry.myfamily.com. -a763.phobos.apple.com. -imgg.ru. -roshen.com.ua. -149.121.59.186.in-addr.arpa. -photos-a.ak.fbcdn.net. -www.nicocig.co.uk. -www.alaic.net. -auracom.net.s6b1.psmtp.com. -31.193.226.190.in-addr.arpa. -a.root-servers.net. -sgistuff.g-lenerz.de. -16.246.175.187.in-addr.arpa. -0-327.channel.facebook.com. -jk87369ai.32qi. -mail.orelholodmash.ru. -mailinator2.com. -c13.zedo.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -182.109.93.186.in-addr.arpa. -c.trendpost.net. -www.universia.com.ec. -www.googleadservices.com. -platform.twitter.com. -itunes.apple.com. -assets.macys.com. -_795_67_9. -labelall.com. -liveupdate.symantecliveupdate.com. -rockwell-solutions.com. -smtp.urbas.net. -static.ak.fbcdn.net. -119.205.201.190.in-addr.arpa. -profile.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -102.123.217.87.in-addr.arpa. -img365.rockyou.com. -img.youtube.com. -0.191071.com. -wcandw.com. -s.ytimg.com. -2.108.223.24.in-addr.arpa. -otnusa.net. -funcage.com. -rupromo.ru. -a.root-servers.net. -www.museomigraciones.org.uy. -www.facebook.com. -berlee.net. -www.facebook.com. -jetmessenger.com. -g.promosrv.com. -209.210.211.76.in-addr.arpa. -184.175.25.98.in-addr.arpa. -www.myngle.com. -tuug.net.ru. -22.149.220.66.in-addr.arpa. -www.facebook.com. -igskins.googlecode.com. -movies.netflix.com. -www.awltovhc.com. -mail.sfgiants.com. -imagenen1.247realmedia.com. -70.195.37.93.in-addr.arpa. -165.132.37.190.in-addr.arpa. -_823_08_2. -mywebsiteadvisor.com. -19.166.165.58.in-addr.arpa. -naletu.ru. -external.ak.fbcdn.net. -0-244.channel.facebook.com. -41.25.122.186.in-addr.arpa. -cam-in-style.programas-gratis.net. -eur.tlc-world.ru. -a5.sphotos.ak.fbcdn.net. -hydrokamaz.ru. -globalwealthtrade.com.s8b2.psmtp.com. -109.211.209.190.in-addr.arpa. -a.root-servers.net. -modelsilike.blogspot.com. -hdp.zapto.org. -229.149.59.187.in-addr.arpa. -mircosoft.com. -coco.metrogames.com. -drakecooper.com.s9b2.psmtp.com. -www.facebook.com. -ngjmjdqhy.68nq. -creative.ak.fbcdn.net. -connect.facebook.net. -aviakb.ru. -gardiner-richardson.com.s200a2.psmtp.com. -marketdoctors.com. -a.root-servers.net. -www.amazon.com. -tulipanchile.com. -cdn.filebulldog.com. -bt1.btally.net. -query.yahooapis.com. -ads1.msads.net. -web-zc1.cityville.zynga.com. -yourfriendlymortgage.com. -groups.google.com.mx. -i1.ytimg.com. -www.boddit.com. -99.140.49.82.in-addr.arpa. -www.facebook.com. -mscrl.microsoft.com. -172.15.32.186.in-addr.arpa. -quevedo.mundoanuncio.ec. -data.wa.marketingsolutions.yahoo.com. -hotmail.com. -www.cptm.com.mx. -subs.hh-pub.com. -bbsyd.dk. -137.233.104.189.in-addr.arpa. -24.139.131.190.in-addr.arpa. -a.root-servers.net. -www.youtube.com. -www.idconline.com.mx. -do.lysd.k12.ak.us. -175.17.168.192.in-addr.arpa. -nj.buric.com. -dns.msftncsi.com. -a1.twimg.com. -gtu-ins.com.m4.mx-route.com. -shasta-rrs.symantec.com. -zvert.fcien.edu.uy. -253.75.12.50.in-addr.arpa. -da.wikipedia.org. -b3mu3vqzc.j78m3i1x. -www.google.com. -alerts.conduit-services.com. -a.root-servers.net. -115.229.34.187.in-addr.arpa. -decollage.nl. -rad.msn.com. -xquisiteonline.com. -it.wikipedia.org. -www.youtube.com. -relay.ufanet.ru. -24.123.219.190.in-addr.arpa. -byfiles.storage.msn.com. -www.thewarofthemutans.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.wardlestoreys.com. -www.apqc.org. -252.144.130.82.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -sljkllchl.12tr. -xxxxxkronosxxxxx.blogspot.com. -www.museopicassomalaga.org. -inbound.luigisbakery.com.netsolmail.net. -sites.google.com. -fbcdn-profile-a.akamaihd.net. -pix04.revsci.net. -profile.ak.fbcdn.net. -dragraceronline.net. -152.227.76.151.in-addr.arpa. -profile.ak.fbcdn.net. -a.root-servers.net. -mail.cwo.com. -109.173.148.46.in-addr.arpa. -s1-excel.vo.msecnd.net. -assets.cellphonebeat.com. -linksynergy.overstock.com. -jers2.info. -spb.ltg.ru.home. -photos-g.ak.fbcdn.net. -ciscom.ru.home. -dmcvw8a7s.l62m0b7k. -a.root-servers.net. -loansonly.com. -doctor-muller.ru. -ads1.msads.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -usa.acciontrabajo.com. -www.missbellabellini.com. -a3.sphotos.ak.fbcdn.net. -s-static.ak.facebook.com. -www.aitracing.com. -cdn4b.youjizz.com. -makavibe.ru. -sync.mathtag.com. -18.40.31.190.in-addr.arpa. -elbarullodelolimpo.blogspot.com. -google.com. -0-161.channel.facebook.com. -anboto.boj.org. -m259.photobucket.com. -mail. -m6buels96.33sf. -158.215.171.189.in-addr.arpa. -thegoodtimber.com. -s-static.ak.fbcdn.net. -ifood.tv. -ajax.googleapis.com. -ipod-iphone.ru. -xsltcache.alexa.com. -t-one.net. -a.root-servers.net. -photos-f.ak.fbcdn.net. -d1j68ux4ukg4g1.cloudfront.net. -webres2.pand.ctmail.com. -186.89.23.190.in-addr.arpa. -avanta-group.ru. -www.ourexplorer.com. -sayedmokhtar.maktoobblog.com. -139.103.215.118.in-addr.arpa. -ad-g.doubleclick.net. -rickyost.com. -programmkalender.daserste.de. -25.237.116.177.in-addr.arpa. -login.toolbar.conduit-services.com. -145.168.168.192.in-addr.arpa. -t3.gstatic.com. -developers.facebook.com. -pixel.facebook.com. -www.paraguaycoins.com. -ic.tynt.com. -ad-g.doubleclick.net. -d1uysd8m4iv3h8.cloudfront.net. -cdn.api.twitter.com. -www.yahoo.com. -www.video-lyrics.com. -179.190.249.111.in-addr.arpa. -www.upd.edu.mx. -www.telmore.dk. -im11.gulfup.com. -allourfingersinthepie.blogspot.com. -aimhigh.net.inbound10.mxlogicmx.net. -api.conduit.com. -145.65.92.201.in-addr.arpa. -www.riffygit.com. -www.cartoonnetwork.com. -134.123.75.208.sbl-xbl.spamhaus.org. -62.2.10.10.in-addr.arpa. -www.souplantation.com. -pixel.facebook.com. -configure-cdn.us.dell.com. -www.sektioneins.de. -ns1v6.aketzu.net. -a1.sphotos.ak.fbcdn.net. -bzz.is. -vanetaitao.blogspot.com. -hlabs.spb.ru. -www.facebook.com. -36.135.189.195.in-addr.arpa. -armmf.adobe.com. -chacalx.blogspot.com. -acpc.com. -homedecorconcept.com. -time.chttl.com.tw. -www.dydacomp.com. -goldenoak.org.mx1.realtimefilters.rcimx.net. -ads.rambomedia.com. -www.benwhite.com. -a7.sphotos.ak.fbcdn.net. -trade.bokecc.com. -armmf.adobe.com. -b._dns-sd._udp.lan. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -ocsp.verisign.com. -cdn01.oovoo.com. -blogspot.l.google.com. -www.chinaknowledge.com. -pixel.facebook.com. -24.251.223.186.in-addr.arpa. -cbj-s-03025.africa-me.shell.com. -68.124.59.186.in-addr.arpa. -bks7.books.google.com.mx. -146.69.112.190.in-addr.arpa. -. -imap.gmail.com. -pt-br.facebook.com. -ratings-wrs.symantec.com. -209.72.235.68.in-addr.arpa. -askwaltstollmd.com. -244.219.229.201.in-addr.arpa. -mail.welovethemtoo.com. -120.188.25.108.in-addr.arpa. -smtp.promflex.ru. -secondlife.com. -www.oyunkolay.com. -siymca.org. -cancionfrancesaenlos50y60.blogspot.com. -it-it.facebook.com. -www.l.google.com. -lh3.googleusercontent.com. -mail.diamond-edge.co.uk. -barmatin.ru. -fastcomm.ru. -apps.facebook.com. -18.48.55.74.in-addr.arpa. -accounts.google.com. -photos-b.ak.fbcdn.net. -apoyo.expotodoparatustand.com. -a2.sphotos.ak.fbcdn.net. -hotelasia.com.tw. -photos-f.ak.fbcdn.net. -a1007.w43.akamai.net. -static.ak.fbcdn.net. -www.twitch.tv. -www.blogcdn.com. -updatekeepalive.mcafee.com. -www.patrimoniosf.gov.ar. -www.juntosporlaninez.com. -de-de.facebook.com. -a.root-servers.net. -hvc.rr.com. -external.ak.fbcdn.net. -a.root-servers.net. -www.freeworldgroup.com. -toolbar.zynga.com. -rs5.scribd.com. -naryxpharma.com. -rusremol.ru. -www.jewelrymaking-beads-library.com. -u.goal.com. -www.facebook.com. -mobinfo.ru. -gifhorn.de. -i3.ytimg.com. -technorati.com. -lh4.ggpht.com. -somethinglikethis.net. -allisfighter.com. -a-0.19-23095281.c090083.1518.19d4.3ea1.210.0.4er73s9p55296jrntlrqiff28i.avqs.mcafee.com. -m.hotmail.com. -ocmyfvcty.d46y9e4l. -www.tobaccolabels.ca. -109.38.229.190.in-addr.arpa. -mail.opelcar.ru. -groups.google.com. -carlos-arano.com.ar. -129.40.233.201.in-addr.arpa. -64.42.101.78.in-addr.arpa. -dynamicads.g.doubleclick.net. -photos-c.ak.fbcdn.net. -www.google-analytics.com. -www.umusicpub.com. -sbcmx8.prodigy.net. -img830.imageshack.us. -adfarm.mediaplex.com. -um14.eset.com. -www.plusnetwork.com. -googleads.g.doubleclick.net. -yahoo.co.uk. -ecx.images-amazon.com. -blog.tirerack.com. -i2.ytimg.com. -brentwoodcorp.com.inbound30.mxlogic.net. -google.com. -fla.sinfindejuegos.com. -rad.msn.com. -www.spacepimping.com. -www.taylormadegolf.cn. -9selsop1h.71aq. -uef.com.gt. -www.facebook.com. -static.ak.fbcdn.net. -www.facebook.com. -www.convertbinary.com. -www.geeks.co.uk. -fe.brandreachsys.com. -a-0.19-a30f9081.c020081.1518.19d4.3ea1.210.0.qv4hsj5k25kw6keh54n91tkpqi.avqs.mcafee.com. -109.87.54.65.in-addr.arpa. -d2089760.xoom.it. -www.facebook.com. -a.root-servers.net. -oajuvpeoiq.info.mshome.net. -gj:zgkihg.v85a0m1p. -12.59.193.186.in-addr.arpa. -www2.animalsexfilms.nl. -a.root-servers.net. -files.video-loader.com. -182.62.20.190.in-addr.arpa. -profile.ak.fbcdn.net. -www.hampton.com. -mili.im. -ocsp.verisign.com. -www.google-analytics.com. -13409hotgogling.cn. -www.facebook.com. -profile.ak.fbcdn.net. -mcm5.navy.mil. -a.root-servers.net. -69.238.254.188.in-addr.arpa. -27.43.174.190.in-addr.arpa. -geo.tp-cdn.com. -www.siamfishingtours.com. -www.parkinn.com. -evsecure-ocsp.verisign.com. -a.root-servers.net. -creative.ak.fbcdn.net. -wmr.ru. -id.google.com.mx. -vevideo.com.es. -api.twitter.com. -basicinstructions.net. -tap2-cdn.rubiconproject.com. -a.root-servers.net. -10.1.168.192.in-addr.arpa. -www.randrmagonline.com. -157.234.28.95.in-addr.arpa. -r.mzstatic.com. -206.6.146.186.in-addr.arpa. -argentinarrhh.blogspot.com. -es-la.facebook.com. -profile.ak.fbcdn.net. -76live.com. -agglo-nice.fr. -external.ak.fbcdn.net. -169.47.49.190.in-addr.arpa. -pixel.facebook.com. -creative.ak.fbcdn.net. -_688_54_7. -thereps.com. -dc446.4shared.com. -ssl.isg-apple.com.akadns.net. -tboextra.com. -daviskane.com. -freemailng0406.web.de. -108.114.133.217.in-addr.arpa. -www.facebook.com. -www.ingdirect.com.au. -sp.cwfservice.net. -www.weaverleather.com. -goldensunwiki.net. -a.root-servers.net. -dl.google.com. -hsnacpas.com. -apps.facebook.com. -tecnofull.com. -bullz-eye.us.intellitxt.com. -40.204.88.200.in-addr.arpa. -dns.msftncsi.com. -focuspg.com.s7b2.psmtp.com. -google.com. -segment-pixel.invitemedia.com. -global-hunters.com. -aseeva.ru. -update.avg.com. -apps.facebook.com. -www.capes.gov.br. -a1007.w43.akamai.net. -178.160.255.190.in-addr.arpa. -a2.kiev.ua. -www.facebook.com. -240.94.154.189.in-addr.arpa. -a-0.19-2209a081.d060083.1518.19d2.3ea1.410.0.spqabajtl54hfqk97s33alujnv.avqs.mcafee.com. -developers.facebook.com. -www.talktom. -blst.msn.com. -photos-f.ak.fbcdn.net. -plus.google.com. -video.mx.msn.com. -smtp.ins.dell.com. -www.marcha.org.ar. -a.root-servers.net. -photos-e.ak.fbcdn.net. -97.251.209.190.in-addr.arpa. -www.idealmature.com. -shared.live.com. -a8.sphotos.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -a.root-servers.net. -view.atdmt.com. -macrojuegos.juegosipo.com. -www.linkedin.com. -smtp.sub.net.au. -www.sendspace.com. -a2.sphotos.ak.fbcdn.net. -images.apple.com. -blogsochi.ru. -creative.ak.fbcdn.net. -mail.robotcombat.com. -www.arkiva-shqip.com. -proforg.com. -_544_70_3. -ads2.greystripe.com. -147.20.127.115.in-addr.arpa. -tags.expo9.exponential.com. -alona.ru. -mail.yimg.com. -dc05.arabsh.com. -81.154.213.201.in-addr.arpa. -shapeways.com. -42.183.138.189.in-addr.arpa. -ksn1-11-part1.kaspersky-labs.com. -safebrowsing-cache.google.com. -pjduy2op7.53cq. -finnishcharts.com. -processor.netmgt.com. -mail1.theron.com. -a.root-servers.net. -moscaphoto.com. -crl3.digicert.com. -m4v.tvolucion.com. -loading.retry.widdit.com. -s-static.ak.facebook.com. -peas.compunass.org. -72.202.205.112.in-addr.arpa. -www.campuspdi.org. -gorenje.si. -i.ytimg.com. -a-0.19-a30f8081.590.1518.19d4.3ea1.410.0.qfgwvgqafksp12wiunftlpnec5.avqs.mcafee.com. -huertadelosrobles.wordpress.com. -60.2.1.181.in-addr.arpa. -250.131.235.201.in-addr.arpa. -188.76.52.186.in-addr.arpa. -a0.twimg.com. -www.google.com. -0.169.38.99.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -a4.sphotos.ak.fbcdn.net. -dlarray-europ-ieupdate065.gdatasecurity.de. -adventuregames.ht83.com. -a6.sphotos.ak.fbcdn.net. -fghgfhdhdg.blogspot.com. -profile.ak.fbcdn.net. -www.liali.net. -www.spilgames.com. -crl.microsoft.com. -a.root-servers.net. -128.168.122.186.in-addr.arpa. -pagead2.googlesyndication.com. -www.google.com. -cuteskipbbthemes.blogspot.com. -www.download.windowsupdate.com. -it-it.facebook.com. -. -35.10.10.10.in-addr.arpa. -42-courier.push.apple.com. -mygnulinux.blogspot.com. -www.google.com. -132.245.190.81.in-addr.arpa. -whpwireless.com. -58.136.149.186.in-addr.arpa. -portageco.com. -homtial.com. -twitter.com. -www.wiroos.com. -vlex.com.mx. -1.189.137.201.in-addr.arpa. -a.root-servers.net. -mail.lovers.ru. -www.gelifesciences.com. -169.11.208.201.in-addr.arpa. -ntl.fr. -www.facebook.com. -rs243l32.rapidshare.com. -www.cbs.com. -2.230.100.190.in-addr.arpa. -www.medscape.com. -geo.messenger.services.live.com. -aka-cdn-ns.adtech.de. -utils.babylon.com. -a.root-servers.net. -42.131.134.187.in-addr.arpa. -videos.javahd.com. -o-style.net. -universalflooring.com. -photos-a.ak.fbcdn.net. -www.google.com. -themes.googleusercontent.com. -img.youtube.com. -121.190.55.187.in-addr.arpa. -57.206.55.189.in-addr.arpa. -55.226.172.201.in-addr.arpa. -171.211.10.85.in-addr.arpa. -reddragonkungfu.com. -www.sjwxzy.com. -meria.net. -www.patrickholford.com. -a.root-servers.net. -dns.msftncsi.com. -152.26.161.201.in-addr.arpa. -creativecommons.org. -facebook.com. -112.202.13.187.in-addr.arpa. -api.facebook.com. -lb._dns-sd._udp.lan. -babycenter.ru. -www.googil.com. -238.130.168.192.in-addr.arpa. -pfs.mozilla.org. -b.scorecardresearch.com. -ntp1.dlink.com. -www.samsung.net. -227.200.165.78.in-addr.arpa. -r-data.adsrvr.org. -_978_24_5. -creative.ak.fbcdn.net. -www.hao123.com. -0.11-a307c089.e1032.1518.19d4.3ea1.410.0.j2rbre8jqblv9cw1kbbr2v6dm6.avqs.mcafee.com. -kupiknigu.ru. -www.angelacusumano.com. -252.129.62.186.in-addr.arpa. -click.allegiantdeals.com. -www.adoretube.com. -apps.facebook.com. -resourcemedia.tv. -www.bing.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -233.170.113.190.in-addr.arpa. -163.38.63.200.in-addr.arpa. -tobolsk.info. -yahoo.com. -usersystem783aa.ru. -mail2.us.silhouette.com. -kisales.com. -rospres.com. -creative.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -mail.lanaken.be. -a.root-servers.net. -a.root-servers.net. -js.wlxrs.com. -clients-cctld.l.google.com. -tap2-cdn.rubiconproject.com. -thailandlife.com. -www.ebay.es. -b.matrixsynth.com. -www.google-analytics.com. -osu.ru. -l.yimg.com. -cs272.vk.com. -blog.twoo.com. -203.110.214.186.in-addr.arpa. -www.objectlabs.net. -www.ebay.es. -www.mytinyworld.co.uk. -mx-2.superig.com.br. -www.psiquiatraperu.net. -games.yahoo.com. -165.226.175.85.in-addr.arpa. -profile.ak.fbcdn.net. -87.148.59.199.in-addr.arpa. -rock-com-mx.messaging.lotuslive.com. -ville-bondy.fr. -connect.facebook.net. -s.youtube.com. -4.116.26.201.in-addr.arpa. -mail. -amx.wimbledonwine.com.redcondor.net. -manuel.sesamath.net. -static.ak.fbcdn.net. -144.96.186.93.in-addr.arpa. -www.miscomentariosparahi5.com. -alluretech.net. -es.altavista.com. -160.4.23.1.in-addr.arpa. -yingwenlaoshi.files.wordpress.com. -a7.sphotos.ak.fbcdn.net. -www.facebook.com. -a997.mm1.akamai.net. -uza.s523ll5pu6s1.com. -crl.microsoft.com. -us.bc.yahoo.com. -www.arkdiscovery.com. -56.44.156.187.in-addr.arpa. -ad.doubleclick.net. -178.119.92.200.in-addr.arpa. -nou-energetik.ru. -mail.audiolot.com. -75.140.22.96.in-addr.arpa. -www.anewshit.com. -profile.ak.fbcdn.net. -hornmurdockcolesv.com. -mediacenter.fedex.designcdt.com. -citlink.ne. -219.87.214.189.in-addr.arpa. -www.youtube.com. -57.25.53.186.in-addr.arpa. -mailscan.hpcdsb.edu.on.ca. -kmail.xanterra.com. -billing.sharo4ka.ru. -a2.twimg.com. -seattlewireless.net. -www.elgourmetonline.com. -smtp.3web.com. -80.193.93.186.in-addr.arpa. -_268_50_2. -94.89.168.192.in-addr.arpa. -chromejs.s3.amazonaws.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-g.ak.fbcdn.net. -www.zodchiy.ru. -uncmervenf.net. -irrationalgames.com. -a3.sphotos.ak.fbcdn.net. -fsbbank.net. -shared.live.com. -www.gouwu265.com. -implantedental1.wordpress.com. -photos-b.ak.fbcdn.net. -imap.gmail.com. -multiply.multiply.com. -a.root-servers.net. -www.4nursingmanagers.com. -244.16.26.201.in-addr.arpa. -teredo.ipv6.microsoft.com. -. -icb.uni-due.de. -www.facebook.com. -apple-mobile.query.yahooapis.com. -149.135.117.79.in-addr.arpa. -gfx5.hotmail.com. -col.stb01.s-msn.com. -insuramericapr.com. -translate.google.com.mx. -dc407.4shared.com. -gm.fb.telaxo.com. -www.hifx.co.uk. -photos-h.ak.fbcdn.net. -100.199.130.186.in-addr.arpa. -zonanet.com. -photos-a.ak.fbcdn.net. -a.root-servers.net. -www.googleadservices.com. -metagaming.co.uk. -www.adoperator.com. -plusone.google.com. -racingplay.com. -cf.addthis.com. -stewie.wojas.nl. -1omni.com. -developers.facebook.com. -www.m5zn.com. -tv5i2f3bk.l99x6c1y. -games.tvclip.biz. -201.234.255.206.in-addr.arpa. -eldiariodeunpoeta.blogspot.com. -mail.catholic-dispatch.com. -pixer.meaningtool.com. -www.789son.com. -a2.sphotos.ak.fbcdn.net. -img851.imageshack.us. -developers.facebook.com. -b._dns-sd._udp.0.1.0.10.in-addr.arpa. -a.root-servers.net. -130.113.12.189.in-addr.arpa. -27.25.27.190.in-addr.arpa. -75.191.76.77.in-addr.arpa. -sdelanovkitae.ru. -it-it.facebook.com. -ad.adnetwork.net. -227.252.5.189.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -ssl.gstatic.com. -www.tripadvisor.com.ar. -luckywire.com. -103.108.75.65.in-addr.arpa. -232.228.227.76.in-addr.arpa. -195.148.173.201.in-addr.arpa. -static.ak.fbcdn.net. -express10k.com. -sp.cwfservice.net. -photos-e.ak.fbcdn.net. -al-shorfa.com. -p0b.ru. -teredo.ipv6.microsoft.com. -huschoice.com. -81.145.101.187.in-addr.arpa. -a.rad.msn.com. -canyonlakefun.com. -www.heiferperu.org. -static.ak.fbcdn.net. -s.ytimg.com. -www.freewebs.com. -a6.sphotos.ak.fbcdn.net. -encuesta.appinformatica.com. -www.wall-maps.com. -oascentral.yellowpages.com. -warpdriveonline.com. -linkhelp.clients.google.com. -gl.wikipedia.org. -ml1dc2.mfxservices.com. -www.tripadvisor.com. -glb1.rim.net. -_370_54_5. -239.131.131.41.in-addr.arpa. -www.deal4loans.com. -photos-f.ak.fbcdn.net. -mx031.parking.ru. -o-caso.blogspot.com. -cs1716.vkontakte.ru. -48.158.177.190.in-addr.arpa. -safebrowsing.clients.google.com. -. -external.ak.fbcdn.net. -clkads.com. -www.googletagservices.com. -static.ak.fbcdn.net. -185.15.142.190.in-addr.arpa. -t.co. -www.youtube.com. -220.117.223.87.in-addr.arpa. -www.apple.com. -faxcom.com. -ssl.gstatic.com. -giltgroup.tt.omtrdc.net. -img1.blogblog.com. -vbg.com. -echo.edge.messenger.live.com. -11.189.78.190.in-addr.arpa. -mygames4girls.com. -1804289383.localhost. -s-static.ak.fbcdn.net. -bar-navig.yandex.ru. -static.ak.fbcdn.net. -view.atdmt.com. -a2.sphotos.ak.fbcdn.net. -www.fundaciontelevisa.org. -krauss.faculty.asu.edu. -109.92.217.98.in-addr.arpa. -mx01.altep.com. -d3lvr7yuk4uaui.cloudfront.net. -holmesmark.com. -kof.net. -a.root-servers.net. -beocwjdrcmkagjvd.ac. -i2.ytimg.com. -125.220.9.186.in-addr.arpa. -a.root-servers.net. -time.windows.com. -facemoods.com. -spbmesi.ru. -orcart.facebook.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -time.nist.gov. -mycam.nl.softonic.com. -mx2.wwecorp.com.gslb.pphosted.com. -developers.facebook.com. -translate.google.com.mx. -static.ak.fbcdn.net. -131.149.254.189.in-addr.arpa. -clients1.google.com. -a.root-servers.net. -187.0.100.118.in-addr.arpa. -www.youtube.com. -www.alexa.com. -www.facebook.com. -saskeds.com. -boskone.hmc.gotdns.org. -e566.b.akamaiedge.net. -cs5236.vkontakte.ru. -templateswise.com. -rogrs.com. -216.29.32.189.in-addr.arpa. -mscrl.microsoft.com. -a.root-servers.net. -www.cuadernalia.net. -www.newsviva.com. -kimpetoverby.museum. -106.229.153.201.in-addr.arpa. -www.facebook.com. -airport.tomlin.yahoo.com. -hotmail.com.rhsbl.ahbl.org. -rfptemplates.technologyevaluation.com. -nray.ru. -www.newnavy.us. -a.root-servers.net. -www.crazycrow.com. -a.root-servers.net. -elpais.com.co. -transgriot.blogspot.com. -32.178.19.88.in-addr.arpa. -stun.voip.blackberry.com. -120.87.233.189.in-addr.arpa. -hasack.com.s9a2.psmtp.com. -102.246.50.200.in-addr.arpa. -s-static.ak.facebook.com. -s.youtube.com. -bestcrystals.com. -www.directorioxd.com. -k2x1bals1.a05i0d3l. -test.wpat.net. -mail.intellichoicefs.com. -laborum.files.wordpress.com. -www.blend.nl. -www.guardian.co.uk. -m.facebook.com. -a4.sphotos.ak.fbcdn.net. -cup.com. -ad.adriver.ru. -allmovie.com. -www-x.antd.nist.gov. -54.5.156.187.in-addr.arpa. -www19.atwiki.jp. -api.conduit.com. -eset.ee. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a2.twimg.com. -search.babylon.com. -adfarm.mediaplex.com. -centuryfitness.com.inbound15.mxlogic.net. -a1.sphotos.ak.fbcdn.net. -102.1.168.192.in-addr.arpa. -www.e-belis.com. -counter.yadro.ru. -cdn1.predictad.com. -jzabaleta.com. -www.blankpaper.es. -a.root-servers.net. -wzus1.ask.com. -136.198.188.78.in-addr.arpa. -plusone.google.com. -fcyt449ng.z12q4h0u. -www.occidente.com.gt. -130.188.111.200.in-addr.arpa. -chat.5251.net. -gafneyphoto.com. -mifab.thomasnet-navigator.com. -www.vsbag.com. -www.union-web.com. -fr-fr.facebook.com. -a5.sphotos.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -210.64.35.177.in-addr.arpa. -content.yieldmanager.edgesuite.net. -www.google.com. -static02.olx-st.com. -orcart.facebook.com. -whos.amung.us. -negligee.ru. -youtu.be. -teredo.ipv6.microsoft.com. -1.200.181.93.in-addr.arpa. -a.root-servers.net. -d3o96a3f9o7chl.cloudfront.net. -250.93.54.200.in-addr.arpa. -www.bittorrent.com. -www.intermec.com.sg. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -b.scorecardresearch.com. -apps.facebook.com. -plugandplay.at. -3.33.112.187.in-addr.arpa. -165.116.98.171.in-addr.arpa. -gfx2.hotmail.com. -a.root-servers.net. -iphone-wu.apple.com. -6.54.222.67.rbl7.mailshell.net. -12.44.31.190.in-addr.arpa. -bt.btbbt.com.home. -idh.ru. -client61.dropbox.com. -mail.recycling.ru. -gfx1.hotmail.com. -a4.sphotos.ak.fbcdn.net. -profile.ak.fbcdn.net. -s-static.ak.fbcdn.net. -messenger.hotmail.com. -tryfaith.com. -js.admeld.com. -ksn2-12.kaspersky-labs.com. -57.21.94.186.in-addr.arpa. -vips.msk.rsnet.ru. -fms.n-tv.de. -www.dakotaraepatrick.com. -www.boosterking.com. -orig-10012.twitter.cotcdn.net. -166.22.114.211.in-addr.arpa. -97.198.133.110.in-addr.arpa. -107.200.26.95.in-addr.arpa. -www.google-analytics.com. -www.7x24sex.net. -profile.ak.fbcdn.net. -saturn.ak.planet.gen.nz. -list.cn99.com. -hhreal.gratisforo.net. -a.root-servers.net. -graph.facebook.com. -pagead2.googlesyndication.com. -154.1.53.186.in-addr.arpa. -mail2.korrus.ru. -external.ak.fbcdn.net. -sd2mbdavk.29df. -202.128.71.190.in-addr.arpa. -goodsonauto.com.s8a2.psmtp.com. -d2107659.xoom.it. -a.root-servers.net. -login.live.com. -tools.google.com. -3.96.252.207.zen.spamhaus.org. -mail.ivank.ru. -www.mp3musichq.com. -windows-xp-wallpaper.softonic.com. -js.wlxrs.com. -chemline.ru. -www.cupchicks.com. -s-static.ak.facebook.com. -253.208.210.186.in-addr.arpa. -cdn.api.twitter.com. -mail.men-and-women.ru. -a.root-servers.net. -vancouver.conagramalt.com. -98.92.238.190.in-addr.arpa. -www.longliveyourdog.com. -v2.lscache6.c.android.clients.google.com. -a749.g.akamai.net. -photos-a.ak.fbcdn.net. -191.6.64.72.in-addr.arpa. -134.59.7.187.in-addr.arpa. -28.media.tumblr.com. -connect.facebook.net. -platform.twitter.com. -photos-b.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -fagalab.com. -js2.wlxrs.com. -personalysis.com.inbound15.mxlogic.net. -googleads.g.doubleclick.net. -s10.es.ikariam.com. -www.pistolpete.com. -web66-vip.sdv.fr. -52.7.25.190.in-addr.arpa. -0-271.channel.facebook.com. -static.ak.fbcdn.net. -101.64.118.190.in-addr.arpa. -b-0.19-210a0449.1581.1518.19d3.2f4a.210.0.ug7mmc32tu8lbeq56ja4dwta6i.avqs.mcafee.com. -cf.addthis.com. -ko.wikipedia.org. -photos-e.ak.fbcdn.net. -74.223.35.83.in-addr.arpa. -barracuda.chatom.k12.ca.us. -rhl8rwuh5.f79o2g9n. -badgersportswear.com. -webcache.googleusercontent.com. -help.yahoo.com. -michiganladder.com. -a3.sphotos.ak.fbcdn.net. -rekaone.com. -a7dvqduqu.03hn. -lf2-global.com. -platform.twitter.com. -mmoca.org. -ads.publicidad.net. -photos-f.ak.fbcdn.net. -skogmar.com. -a.root-servers.net. -97.90.50.190.in-addr.arpa. -61.245.1.190.in-addr.arpa. -photos-d.ak.fbcdn.net. -firntool.ru. -a8.sphotos.ak.fbcdn.net. -accounts.google.com. -snt132w.mail.live.com.akadns.net. -au.download.windowsupdate.com. -s-static.ak.fbcdn.net. -91.40.188.119.in-addr.arpa. -thumbs4.ebaystatic.com. -mail2.sg.megachem.com. -independent.net. -59.31.23.186.in-addr.arpa. -131.26.162.201.in-addr.arpa. -news.google.es. -kw.zain.com. -39.60.54.151.in-addr.arpa. -kk.wikipedia.org. -clients1.google.com. -cine.interbusca.com. -urbanbarn.com. -salvasainz.magix.net. -www.google-analytics.com. -view.atdmt.com. -en.wikipedia.org. -www.youtube-nocookie.com. -sv1.readmangahentai.com. -www.facebook.com. -141.20.168.192.in-addr.arpa. -cableone.net. -www.juegos.com. -mail.rochester.rr.com. -8ninp3dbe.81ce. -mail.google.com. -local-bay.contacts.msn.com. -evt.adrcntr.com. -tutorialesdesing.mforos.com. -134.197.136.186.in-addr.arpa. -creative.ak.fbcdn.net. -ydmd.msn.com. -a4.sphotos.ak.fbcdn.net. -232.210.152.189.in-addr.arpa. -evileyetattoo.blogspot.com. -cdn.rockyou.com. -www.youtube.com. -members.dyndns.org. -www.sbfoot.com. -overunity.com. -servicios.prodigy.msn.com. -www.ftalk.com. -mail.dimensional.com. -www.lge.com. -bio-med.ru. -www.ebusinessblog.org. -clients1.google.com. -www.hidramaq.com. -aerocondor.com.pe. -ntp.bluecoat.com. -r.mzstatic.com. -zynga1-a.akamaihd.net. -pacman.net. -www.facebook.com. -fbeau.com. -g.msn.com. -inbound.cotham.org.netsolmail.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -login.live.com. -87.89.172.187.in-addr.arpa. -directory.services.live.com. -42.19.35.188.in-addr.arpa. -xnxbpnmag.60cu. -f.h1.hiltonhhonors.com. -a.root-servers.net. -www.facebook.com. -www.amazon.com. -fbcdn-sphotos-a.akamaihd.net. -chandlery.apolloduck.com. -exceptnothing.com. -a5.sphotos.ak.fbcdn.net. -pixel.facebook.com. -252.49.145.189.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -c29.smaato.net. -maps.google.com. -sp.cwfservice.net. -internalcomms.com.ar. -www.afrosomething.com. -45.219.158.190.in-addr.arpa. -6cylopnpm.08lw. -solarcontroljackson.com. -148.55.31.190.in-addr.arpa. -aprn.org. -s-static.ak.facebook.com. -208.130.142.187.in-addr.arpa. -cdn.ad4game.com. -www.uccuyosl.edu.ar. -webcache.googleusercontent.com. -mailgate4.econ.usyd.edu.au. -forum.techie-buzz.com. -stromvergleich.freenet.de. -developers.facebook.com. -100.198.178.189.in-addr.arpa. -circusdisco.com. -stamm-mfg.com. -photos-d.ak.fbcdn.net. -matcher.bidder7.mookie1.com. -163.229.183.212.in-addr.arpa. -www.bloompapers.com. -ox-d.liftdna.com. -i2.ytimg.com. -a8.sphotos.ak.fbcdn.net. -www.garageflash.org. -s1-word-view.vo.msecnd.net. -googleads.g.doubleclick.net. -a7.sphotos.ak.fbcdn.net. -j1.tagstat.com. -a.root-servers.net. -profile.ak.fbcdn.net. -a1943.phobos.apple.com. -fbcdn-profile-a.akamaihd.net. -www.landroversuk.co.uk. -cuantopuedecostar.blogspot.com. -pinoy.top-site-list.com. -thepartyworks.com. -211.219.201.190.in-addr.arpa. -weather.wapp.wii.com. -developers.facebook.com. -a1.sphotos.ak.fbcdn.net. -loading3.widdit.com. -mail86a.rheinmetall-de.com. -blumoe.com. -phone.com. -43region.ru. -mscrl.microsoft.com. -a8.sphotos.ak.fbcdn.net. -61.87.163.189.in-addr.arpa. -aol.com. -v5.nonxt1.c.youtube.com. -hopkinsonline.net. -larompieron.cl. -ap.faceboooky.com.ar. -thumbs1.ebaystatic.com. -mt1.google.com. -kg3pzattr.66kk. -57.203.230.190.in-addr.arpa. -238.55.159.189.in-addr.arpa. -a.root-servers.net. -sitecheck2.opera.com. -mail.mz.ru. -25.1.1.10.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -130.52.82.200.in-addr.arpa. -ecimages.kobobooks.com. -www.caratulart.com. -92yzc84ny.72iw. -100.145.67.109.in-addr.arpa. -grupos.emagister.com. -debbiecutieface.com. -www.thepowerbase.com. -www.doublegames.ws. -d2098683.xoom.it. -mirror.fdcservers.net.localdomain. -a.root-servers.net. -api.facebook.com. -www.ramnousia.com. -a868.phobos.apple.com. -checkip.dyndns.org. -fbcdn-photos-a.akamaihd.net. -www.sinmiedo.es. -google.com. -media.admob.com. -www.facebook.com. -www.orangerockcorps.co.uk. -a2.mzstatic.com. -218.182.34.189.in-addr.arpa. -events.unesco.org. -google.com. -img5.catalog.video.msn.com. -i1.ytimg.com. -www.youtube.com. -187.147.157.82.in-addr.arpa. -mail.brandytrust.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -s.ytimg.com. -www.hotvintagetube.com. -adsx.greystripe.com. -www.longzhiguang.cn. -n02.nakanohito.jp. -mail.lnisigns.com. -www.gstatic.com. -sac.gti.mcafee.com. -www.fvc.org.br. -cottoneyedjoe.com. -services.addons.mozilla.org. -www.nationwide.com. -0.11-230f8081.8020081.1518.1945.3ea0.200.0.en9j4bbznzcg3nfde5c5ia2qrv.avqs.mcafee.com. -img.pulsemgr.com. -www.ker-mor.com. -172.218.142.187.in-addr.arpa. -mail2.itko.com. -joker.u.pereslavl.ru. -www.facebook.com. -www.uruguay.com. -sites.google.com. -mta5.am0.yahoodns.net. -owmd8hdae.98ui. -en.wikipedia.org. -photos-d.ak.fbcdn.net. -de-de.facebook.com. -www.trubka.ru. -photos-c.ak.fbcdn.net. -wbhsi.net. -imgb.noticiascristianas.me. -_794_46_0. -a.root-servers.net. -www.cgdd.org. -developers.facebook.com. -48.165.168.192.in-addr.arpa. -20minutos.feedsportal.com. -immunbio.mpg.de. -a.root-servers.net. -210.235.121.84.in-addr.arpa. -login.toolbar.conduit-services.com. -83.25.179.187.in-addr.arpa. -11.176.88.174.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -api-read.facebook.com. -mscrl.microsoft.com. -teredo.ipv6.microsoft.com. -94.222.91.186.in-addr.arpa. -192.12.0.180.in-addr.arpa. -alservice.com. -inbound.medirattas.com.netsolmail.net. -a.root-servers.net. -esdc006.eame.global.sgs.com. -74.209.216.41.in-addr.arpa. -www.3lakeefk.blogspot.com. -dowcorning.com. -46.65.19.186.in-addr.arpa. -photos-g.ak.fbcdn.net. -www.bbc.co.uk. -ad.yieldmanager.com. -ads.bluelithium.com. -tilers.ru. -107.204.103.189.in-addr.arpa. -thecentergb.org. -auditors.spb.ru. -www.google-analytics.com. -eo.wikipedia.org. -remanage.otepremium.gr. -95.231.41.126.in-addr.arpa. -105.196.13.189.in-addr.arpa. -www.galiciasustentable.com. -www.blogger.com. -rxservices.co.uk. -www.socialgrowthtechnologies.com. -lo393qwertasd.com. -static.ak.connect.facebook.com. -twitter.com. -a.root-servers.net. -www.aleks.com. -facebook.farmville.com. -www.google.com. -ksn7-12.kaspersky-labs.com. -a4.sphotos.ak.fbcdn.net. -crl.geotrust.com. -crecardoffer.com. -191.29.95.201.in-addr.arpa. -s-static.ak.fbcdn.net. -desemejanza.br.dnsbl7.mailshell.net. -z5riknayz.54ar. -adonis.ru. -imagen04.247realmedia.com. -client.winamp.com. -35.160.143.190.in-addr.arpa. -a.root-servers.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -smtp.ftnewyorklife.com. -translate.googleapis.com. -www.loveland.k12.oh.us. -nbase.com. -resources.rosettastone.com. -lyricswillnotreachtheaudience.blogspot.com. -www.it-bs.com.ar. -denis.stalker.h3q.com. -js2.wlxrs.com. -www.itinytits.com. -110.88.96.99.in-addr.arpa. -zao-gorod.ru. -ro.wikipedia.org. -login.live.com. -jxe.com. -concordehealth.net. -46.42.171.189.in-addr.arpa. -entertainmentwise.com. -www.youtube.com. -217.210.35.200.in-addr.arpa. -91.125.47.189.in-addr.arpa. -www.clinicaser.info. -cdn2.stanleysupplyservices.com. -syndication.exoclick.com. -ltasconfig.ltassrv.com. -181.113.112.186.in-addr.arpa. -194.222.111.189.in-addr.arpa. -dns.msftncsi.com. -static.ak.facebook.com. -49.200.19.204.in-addr.arpa. -www.dressessalestore.com. -www.twitter.com. -189.104.93.186.in-addr.arpa. -ussigns.com.inbound15.mxlogicmx.net. -blackberrycool.com. -92.165.202.64.in-addr.arpa. -www.mp3sugar.com. -hdarena.org. -www.youtube.com. -ksn2-12.kaspersky-labs.com. -trend_micro_titanium_internet_security.en.softonic.com. -platform.twitter.com. -246.155.172.190.in-addr.arpa. -ad.doubleclick.net. -maps.google.com. -pacific-islander.blogspot.com. -www.juegosjuegos.com. -noesporpresumir.blogspot.com. -api.facebook.com. -207.155.251.189.in-addr.arpa. -d2089124.xoom.it. -a.root-servers.net. -loading321.com. -drb.com.ru. -profile.ak.fbcdn.net. -easygoingscans.disqus.com. -dnl-01.geo.kaspersky.com. -www.escapade-media.com. -www.facebook.com. -photos-f.ak.fbcdn.net. -i4.ytimg.com. -www.google-analytics.com. -api.facebook.com. -photos-c.ak.fbcdn.net. -d2107803.xoom.it. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.busty-teenager.com. -p0.go2map.com. -muppethouse.com. -dns.msftncsi.com. -rwwa.com.au. -www.wintershoesforwomen.com. -a1725.l.akamai.net. -194.81.116.122.in-addr.arpa. -sp.cwfservice.net. -cdn.tynt.com. -unterhaltung.freenet.de. -www3.l.google.com. -149.32.222.190.in-addr.arpa. -gcecisp.com. -mail.panthera-systems.net. -amazing-3d-aquarium.softonic.com. -www.facebook.com. -platform.twitter.com. -214.188.138.189.in-addr.arpa. -s7.addthis.com. -googleads.g.doubleclick.net. -hcmintl.com. -www.sepyme.gov.ar. -interpartner-bg.ru. -www.databasebasketball.com. -130.146.92.114.in-addr.arpa. -yjmkfhcul.14hi. -connect.facebook.net. -www.bonanzabucks.com. -a3.sphotos.ak.fbcdn.net. -gastro.org. -a8.sphotos.ak.fbcdn.net. -921lqelam.v68l4d9s. -cydiahelp.com. -acordespara-guitarra.blogspot.com. -trucosparacityville.com. -www.livetemplate.co.cc. -rv.ginyas.com. -a1148.phobos.apple.com. -ajax.googleapis.com. -ar-ar.facebook.com. -15.28.248.99.in-addr.arpa. -i3.ytimg.com. -1.227.168.192.in-addr.arpa. -212.246.160.190.in-addr.arpa. -www.autocue.com. -tg.9600518.com. -a2.sphotos.ak.fbcdn.net. -im.afy11.net. -youtube.desifun.co.uk. -www.sexonomotel.com.br. -bitnova.info. -event.republika.co.id. -admin.nmt.edu. -garywarnett.wordpress.com. -attitudeclothing.co.uk. -pyzxc32nm.k46s1e0x. -photos-e.ak.fbcdn.net. -195.139.213.186.in-addr.arpa. -182.51.10.186.in-addr.arpa. -www.merval.sba.com.ar. -www.cintras.org. -apps.facebook.com. -www.linkedin.com. -punk-medallo.blogspot.com. -45.232.204.130.in-addr.arpa. -112.59.51.201.in-addr.arpa. -cdn.niche.videosz.com. -sp.cwfservice.net. -northcenter.com. -gut.bmjjournals.com. -sc21.rules.mailshell.net. -fb-fb-0.castle.zynga.com. -vk.com. -. -ihardlyknowher.com. -moyaodejda.ru. -pt-br.facebook.com. -www.stephenking.com. -www.google.com. -www.longrangeweather.com. -mls.softjoys.com. -www-t.decisionnewsmedia.com. -102.45.78.201.in-addr.arpa. -coastallenv.com. -coins.mochimedia.com. -a5.sphotos.ak.fbcdn.net. -142.192.56.190.in-addr.arpa. -scholar.google.com. -147.128.66.201.in-addr.arpa. -vampiro.comze.com. -h.live.com. -mscrl.microsoft.com. -googleads.g.doubleclick.net. -tinyurl.com. -go.srvnow.com. -71.223.163.93.in-addr.arpa. -teredo.ipv6.microsoft.com. -creative.ak.fbcdn.net. -danielnylander.se. -bwig.net. -grooveshark.com. -je.org. -a.root-servers.net. -a.root-servers.net. -shares.ru. -mystartantiphishing.com. -143.244.165.83.in-addr.arpa. -ednathomazini.blogspot.com. -dns.msftncsi.com. -ad-g.doubleclick.net. -www.facebook.com. -35.203.19.24.in-addr.arpa. -inbound.pwpellets.com.netsolmail.net. -rcp.na.blackberry.com. -static.ak.fbcdn.net. -plusone.google.com. -evsecure-ocsp.verisign.com. -fordhamgrad.com. -24.132.217.190.in-addr.arpa. -mismaderitascountry.blogspot.com. -www.pediatraenlinea.com. -download.windowsupdate.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.domainlogr.com. -200.83.139.175.in-addr.arpa. -krauscarpet.com. -de.tynt.com. -mail.rlcone.com. -www.desafinacoes.pt.vu. -43.236.20.186.in-addr.arpa. -chromeupdate.dealply.com. -csa.yahoo.com. -photos-c.ak.fbcdn.net. -zh-cn.facebook.com. -186.169.209.190.in-addr.arpa. -199.71.191.189.in-addr.arpa. -pixel.facebook.com. -a2.sphotos.ak.fbcdn.net. -fabcon-usa.com. -m.facebook.com. -ns.rx.ru. -www.google.com. -photos-c.ak.fbcdn.net. -dns.msftncsi.com. -yaproffi.ru. -google.com. -211.72.223.71.in-addr.arpa. -127.139.245.189.in-addr.arpa. -attaboy.ru. -fbcdn-sphotos-a.akamaihd.net. -img-2006-07.photosight.ru. -www.google-analytics.com. -photos-g.ak.fbcdn.net. -nicewallpaper.tk. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -orcart.facebook.com. -www.google-analytics.com. -www.facebook.com. -us.mg5.mail.yahoo.com. -e.travelocity.co.in. -iso1200.blogspot.com. -www.doulike.us. -demo.templatepanic.com. -244.42.182.190.in-addr.arpa. -g.live.com. -www.facebook.com. -trcexcedg02.madisoncity.k12.al.us. -a.root-servers.net. -. -www.facebook.com. -peoplescube.com. -ip1.dynupdate.no-ip.com. -98.188.160.190.in-addr.arpa. -announce.com. -116.30.118.190.in-addr.arpa. -smtp1.emv2.com. -a4.sphotos.ak.fbcdn.net. -226.103.213.189.in-addr.arpa. -lasdinamicas12.blogspot.es. -108.64.95.190.in-addr.arpa. -a.root-servers.net. -53.234.226.24.in-addr.arpa. -tadufeu-lefilm.com. -z-ecx.images-amazon.com. -www.meet-teens.de. -mta5.am0.yahoodns.net. -42.60.122.186.in-addr.arpa. -rs.gwallet.com.home. -78.45.143.168.in-addr.arpa. -www.uach.cl. -197.255.179.190.in-addr.arpa. -8zc5kyxmq.12pt. -creative.ak.fbcdn.net. -iesnorbabachillerato.files.wordpress.com. -www.hairdirect.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -53.244.84.200.in-addr.arpa. -136.234.38.81.in-addr.arpa. -www.artplus.hr. -www.update.microsoft.com. -checkip.dyndns.com. -www.msn.com. -cs606.vk.com. -www.google.com. -www.eljusticiadearagon.com. -mail.google.com. -a1005.w42.akamai.net. -a.root-servers.net. -axcoto.com. -mailstore1.secureserver.net. -www.google.com. -b-0.19-a3005008.1081.1518.19d3.3ea1.410.0.trqnb8j7c6bttppqf7njezi3zb.avqs.mcafee.com. -190.249.169.189.in-addr.arpa. -www.megavideo.com. -165.25.173.190.in-addr.arpa. -ise.qc.ca. -240.153.68.190.in-addr.arpa. -ci.santa-maria.ca.us. -neustarinc.com. -176.112.137.201.in-addr.arpa. -insider.msg.yahoo.com. -en.y8.com. -utamie.com. -a.root-servers.net. -swxmail01.freddiemac.com. -213.243.34.187.in-addr.arpa. -www.alimam.ws. -zh-cn.facebook.com. -12.1.168.192.in-addr.arpa. -rospres.com. -a8.sphotos.ak.fbcdn.net. -cdn.api.twitter.com. -109.81.173.186.in-addr.arpa. -www.googletagservices.com. -50.37.253.88.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -csi.gstatic.com. -29.156.226.189.in-addr.arpa. -www.hds.com. -a.root-servers.net. -secure.wlxrs.com. -82.8.241.85.in-addr.arpa. -static.socialvi.be. -calendar.live.com. -127.246.143.189.in-addr.arpa. -thebarefootcontessa.hautetfort.com. -184.wap517.mobi. -a.root-servers.net. -mail.desmet.org. -85.137.98.62.in-addr.arpa. -orcart.facebook.com. -www.fdf.ac.uk. -website.informer.com. -egeo.bcr.gob.sv. -fbcdn-photos-a.akamaihd.net. -da4:6z2::.r44a0i0s. -61ov3xt8x.58ev. -photos-e.ak.fbcdn.net. -quick-876346.com. -a1.sphotos.ak.fbcdn.net. -c.prodigy.msn.com. -s7.addthis.com. -aurita.spb.ru. -www.mansilla-lanzuela.com. -photos-a.ak.fbcdn.net. -bbvabancomer.com. -webmail.woolemsinc.com. -tmgnow.com. -hi-in.facebook.com. -timelinevideo.com. -a2.sphotos.ak.fbcdn.net. -mweb.co.za. -capitalventureslc.com. -sherl.ru. -weglobal.com.mail1.psmtp.com. -l18.member.mud.yahoo.com. -glph.com.s7a1.psmtp.com. -www.counterstrikestrats.com. -2.bp.blogspot.com. -elcharlas.com. -s3dg.com. -_568_97_3. -www.jugos.com. -appsuite-production.s3.amazonaws.com. -blog.strava.com. -www.bbc.co.uk. -www.radioasturias.com. -ip-science.thomsonreuters.com. -a.root-servers.net. -a.root-servers.net. -mail.aplusdevelopment.ru. -insightbb.com. -csi.gstatic.com. -cdn.api.twitter.com. -adsbc.com. -thegroovemusiclife.com. -hzykvhi1q.07dd. -223.46.141.201.in-addr.arpa. -a.root-servers.net. -desastrosamenteyo.blogspot.com. -ajax.googleapis.com. -p0b.ru. -cpr.nipc.net. -creative.ak.fbcdn.net. -evapco.com. -www.petter.nu. -static3.spilcdn.com. -cdn.mediafire.com. -www.facebook.com. -www.facebook.com. -atypicalrealism.net. -crl.verisign.com. -mail.hexindo-tbk.co.id. -www.facebook.com. -ads2.msads.net. -apps.facebook.com. -pair.com. -s2.youtube.com. -monitel.ru. -38.43.78.201.in-addr.arpa. -a.c-0.19-230f8081.c120081.1518.19d2.3ea0.210.0.zjbe7f1jq5pn6gzubrpvg9q57b.avqs.mcafee.com. -alamc.org. -a8.sphotos.ak.fbcdn.net. -ic1.apps.yahooapis.com. -a7.sphotos.ak.fbcdn.net. -mail.comestiblesalfa.com. -bs.serving-sys.com. -jumpsstars2ds.ms1.gs.nintendowifi.net. -hot.mshome.net. -spnoibapp02.emea.sas.com. -pixel.facebook.com. -msgnlaw.com. -forums.vostu.com. -noexcusesbbq.com. -profile.ak.fbcdn.net. -_sip._udp.callcentric.com. -zanoga.znakomstva.ru. -nascentric.com. -sqm.microsoft.com. -mx1.atlasta.us. -240.58.219.190.in-addr.arpa. -www.wepa-db.net. -floyd-pflueger.com. -ballaro.blog.rai.it. -58.156.80.186.in-addr.arpa. -1.194.176.190.in-addr.arpa. -us.mg6.mail.yahoo.com. -8.170.25.177.in-addr.arpa. -hg.ca. -3.240.176.189.in-addr.arpa. -ajax.googleapis.com. -127.7.138.190.in-addr.arpa. -barracuda.hilbert.edu. -www.google-analytics.com. -tubescript.nubiles.net. -9lzodgg65.h08p8m7y. -www.you. -a7.sphotos.ak.fbcdn.net. -aus3.mozilla.org. -photos-d.ak.fbcdn.net. -52.86.190.190.in-addr.arpa. -geoiplookup.wikimedia.org. -bluewin.ch. -252.208.208.77.in-addr.arpa. -49.41.244.190.in-addr.arpa. -broadway.com. -www.gamenews.ne.jp. -accounts.google.com. -blog.focus.it. -led.com.br. -mx.comtenidos.com. -www.gstatic.com. -da.wikipedia.org. -distilleryimage6.s3.amazonaws.com. -a.root-servers.net. -safebrowsing-cache.google.com. -lyjak.waw.pl. -i26.lulzimg.com.home. -google.com. -media.solmelia.com. -areku-desingblog.blogspot.com. -a4.sphotos.ak.fbcdn.net. -www.virtual-person.com. -dragon.rioangrybirds.net. -mx.painenterprises.com. -www.fantastigames.com. -intdoc.com.s5b1.psmtp.com. -plusone.google.com. -a.root-servers.net. -affiliates.indialist.com. -dns.msftncsi.com. -hareega.blogspot.com. -www.youtube.com. -google.com. -idcs.interclick.com. -apis.google.com. -ocsp.verisign.com. -knitfamily.blogspot.com. -246.109.53.186.in-addr.arpa. -aol.com. -a.root-servers.net. -rjljz9jld.f77v7n9k. -ovi.la. -mob.adwhirl.com. -146.103.117.200.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -a3.da1.akamai.net. -mail.environmentalworks.com. -cwclick.cingular.com. -api.twitter.com. -img4.pixhost.org. -a6.sphotos.ak.fbcdn.net. -66.253.63.200.in-addr.arpa. -translate.googleapis.com. -www.naviextras.com. -124.119.195.207.in-addr.arpa. -kingbulletmods.de.tl. -bourbonhospital.com. -avetisian.ru. -a.root-servers.net. -mail.klimenko.com. -14.197.60.213.in-addr.arpa. -literatura1.foroactivo.com. -comunicaciondiegosaturno.wordpress.com. -97.43.176.190.in-addr.arpa. -tvshowfavs.com. -124.255.193.71.in-addr.arpa. -developers.facebook.com. -fxfeeds.mozilla.com. -www.hotmail.com. -apps.facebook.com. -www.tvazteca.com. -www.youtube.com. -inicioid.com. -photos-a.ak.fbcdn.net. -www.isegs.com. -www.hawaiiantropic.com. -198.79.18.177.in-addr.arpa. -10.172.168.192.in-addr.arpa. -img.hotwords.com.br. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail. -biologainteractiva.files.wordpress.com. -3636.323230.313531.3830.80h42dc9750.webcfs00.com. -plusone.google.com. -academystudios.com. -31.164.82.186.in-addr.arpa. -mx293.emailfiltering.com. -www.mobilerule.com. -centraldoprog.blogspot.com. -soa.md. -www.5min.com. -static.ak.fbcdn.net. -blog.deepskycolors.com. -www.wdc.com. -gwc2.mine.nu.home. -login.live.com. -teredo.ipv6.microsoft.com. -sbclgobla.net. -www.job.ru. -m.facebook.com. -www.marquipwardunited.com. -_kerberos._tcp.phl00._sites.dc._msdcs.gwamericas.corpnet1.com. -www.google.com. -www.facebook.com. -ksn1-11-part2.kaspersky-labs.com. -mashable.com. -www.blogger.com. -www.facebook.com. -kinopodborka.ru. -207.80.124.189.in-addr.arpa. -mail.revealingtruth.org. -cofetel.gob.mx. -73.142.232.189.in-addr.arpa. -echo.edge.messenger.live.com. -tl.iek.ru. -agt.p.360.cn. -mail.barrengineering.com. -walalabarker.no-ip.org. -a.root-servers.net. -225.0.109.200.in-addr.arpa. -www.bridesmaiddressesnewyork.com. -img.strictrestraint.com. -219.65.226.190.in-addr.arpa. -a1836.phobos.apple.com. -thumbnails31.imagebam.com. -clients1.google.com. -rad.msn.com. -oidossucios.com. -a.tribalfusion.com. -a1.sphotos.ak.fbcdn.net. -medicosconscientes.com. -crl3.digicert.com. -linksv.com. -googleads.g.doubleclick.net. -101.158.66.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -staff.vault.com.inbound15.mxlogicmx.net. -a6.sphotos.ak.fbcdn.net. -js.wlxrs.com. -ssl.gstatic.com. -i2.ytimg.com. -relay.globetrotter.net. -cloud-search-msgplus.linkury.com. -yui.yahooapis.com. -www.youtube.com. -2012carbentley.imagehostinghosting.com. -21.70.111.200.in-addr.arpa. -todomh.foros.ws. -clients1.google.com. -_740_69_7. -s-static.ak.facebook.com. -219.18.173.189.in-addr.arpa. -s-static.ak.fbcdn.net. -zone9.hotwords.com.br. -messenger.providesupport.com. -willowshields.net. -igiva.net. -accounts.google.com. -a2.sphotos.ak.fbcdn.net. -www.hygeiababy.com. -accounts.google.com. -48.87.16.186.in-addr.arpa. -_009_26_4. -mf2.ijnet.net. -232.28.92.201.in-addr.arpa. -www.ebay.com. -www.ypagesminnesota.com. -www.update.microsoft.com. -cs10361.vk.com. -content.yieldmanager.edgesuite.net. -dns.msftncsi.com. -. -east.exch024.serverdata.net. -loqo.ru. -photos-a.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -dl-client6.dropbox.com. -mail.uacparts.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -petanque.ru. -udc.msn.com. -feeds.the9513.com. -alerts.conduit-services.com. -www.buzzdock.com. -mgks.ru. -www.mundofox.com. -5directconnection.sytes.net. -56.150.168.192.in-addr.arpa. -www.cpxadspace.com. -wpad.belkin. -cogito.co.uk. -profile.ak.fbcdn.net. -m.hardsextube.com. -www.traductorgoogle.com.mx. -geo.messenger.services.live.com. -profile.ak.fbcdn.net. -chong.paipai.com. -231.109.180.173.in-addr.arpa. -mail.live.com. -www.youtube.com. -70.103.62.190.in-addr.arpa. -wr.com.au. -xtwitcam-paulocoelhox.e.channel.livestream.com. -pixel.facebook.com. -xmpp.device05.prod.capptain.com. -fbcdn-profile-a.akamaihd.net. -mail.earh.com. -docs.google.com. -photos-h.ak.fbcdn.net. -clubsearay.com. -irc.purchaseservice.com. -smtp2.i-wanna.com. -www.hungriaturismo.com. -rosecm.com. -nethra.us.com.s6a2.psmtp.com. -gfx2.hotmail.com. -abmh.org. -an.tacoda.net. -photos-a.ak.fbcdn.net. -config.conduitapps.com. -_094_45_2. -maps.googleapis.com. -83.111.153.186.in-addr.arpa. -114.166.113.24.in-addr.arpa. -michgreatdane.com. -74.141.162.192.in-addr.arpa. -a.root-servers.net. -www.adobe.com. -63.246.247.190.in-addr.arpa. -www.badanaclinic.com. -132.6.199.190.in-addr.arpa. -soymarketing.org. -148.76.136.190.in-addr.arpa. -www.fyoryi.com. -amr.wuu.ru. -mx1.nom-domaine.fr. -10-razones-para-odiarte.seriespepito.com. -www.sweetim.com. -38.108.24.81.in-addr.arpa. -5jekjdrb6.93gd. -www.google.com. -pespn.chartbeat.net. -ameritimemortgage.com. -extraodelirio.blogspot.com. -a3.da1.akamai.net. -138.122.191.202.in-addr.arpa. -hotmail.com. -api.twitter.com. -www.mariangaspi.blogspot.com. -200.240.135.189.in-addr.arpa. -pmhd.org. -add1-new.dir.vip.sp2.yahoo.com. -lalunamedia.com. -213.224.19.187.in-addr.arpa. -teredo.ipv6.microsoft.com. -newsletter.yves-rocher.ru. -162.23.204.190.in-addr.arpa. -bbcc.com.relay1b.spamh.com. -static.ulule.me. -dns.msftncsi.com. -medintelsolutions.com.inbound10.mxlogicmx.net. -www.edwardandbella.net. -236.169.205.190.in-addr.arpa. -a.root-servers.net. -www.generation5.org. -csi.gstatic.com. -cruisermotorcycles.co.uk. -osce105.icrc.trendmicro.com. -creative.ak.fbcdn.net. -bbvabancoprovincial.blogspot.com. -aaersystems.com. -34.3.79.190.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -10.rarbg.com. -google.com. -funnysize.com. -www.jurnii.com. -www.wtfeed.com. -fr-fr.facebook.com. -mail.google.com. -b.scorecardresearch.com. -www4.pictures.zimbio.com. -wpad.og.ge.com. -pagead2.googlesyndication.com. -content.yieldmanager.edgesuite.net. -. -qnu3yg7nl.l92v6p3x. -voipb.sip.yahoo.com. -cs10784.userapi.com. -214.167.173.189.in-addr.arpa. -31.199.116.194.in-addr.arpa. -ads.us.e-planning.net. -proshowlab.com. -219.92.250.201.in-addr.arpa. -11-courier.push.apple.com. -a1623.phobos.apple.com. -www.facebook.com. -91.145.60.189.in-addr.arpa. -gdbsa.com. -cdn.api.twitter.com. -_215_30_3. -www.topflite.com. -11.168.188.204.in-addr.arpa. -blst.msn.com. -jokerwebhosting.com. -rvlzdqx8.emltrk.com. -11111111.com. -49.114.182.186.in-addr.arpa. -spynet2.microsoft.com. -a8.sphotos.ak.fbcdn.net. -137.221.22.187.in-addr.arpa. -img1.imagehyper.com. -i16.servimg.com. -hdwall.org. -photos-g.ak.fbcdn.net. -www.luckydrunks.com. -pixel.facebook.com. -alphratz.org. -183.154.178.186.in-addr.arpa. -dns.msftncsi.com. -winclufzd.r49r4o9p. -csi.gstatic.com. -safebrowsing-cache.google.com. -movies.getfreefiles.com. -s167.videobb.com. -. -b._dns-sd._udp.lan. -i381.odnoklassniki.ru. -pixel.facebook.com. -counter.yadro.ru. -www.ogov.eu. -106.72.203.190.in-addr.arpa. -0.3696778.com. -www.moblesvano.com. -image2.pubmatic.com. -uysb2jhh6.c09e9g7t. -api.twitter.com. -ow.ly. -tkc-ostrova.ru. -a.root-servers.net. -images.wikia.com. -a.root-servers.net. -171.183.112.204.in-addr.arpa. -www.facebook.com. -rs70tl5.rapidshare.com. -www.dsi.uniroma1.it. -teredo.ipv6.microsoft.com. -www.derbydiva.com. -a575.b.akamai.net. -kenta.ru. -checkip.dyndns.org. -praxisdesigners.com. -rss.elmundo.es. -singnet.com.sg. -a2.mzstatic.com. -dl.secunia.com. -48.149.220.66.in-addr.arpa. -mail.legalaid.qld.gov.au. -girardwinery.com.mx2.mspportal.rcimx.net. -a.root-servers.net. -a.root-servers.net. -b._dns-sd._udp.lan. -helicongroup.com. -a1.sphotos.ak.fbcdn.net. -perdiendomiejem.blogspot.com. -i.ytimg.com. -jtrucks.com. -platform.twitter.com. -galleries.analhookers.com. -i3.ytimg.com. -mail.brmarketinggroup.com. -invotexgroup.com.s6b2.psmtp.com. -ocsp.thawte.com. -132.162.208.201.in-addr.arpa. -6.95.186.189.in-addr.arpa. -ti2.auctiva.com. -1.bp.blogspot.com. -hirm.fr. -www.fashionablynumb.com. -www.cricbuzz.com. -a.root-servers.net. -m.city.zynga.com. -a.root-servers.net. -_965_56_7. -js.admeld.com. -a6.sphotos.ak.fbcdn.net. -86.150.133.187.in-addr.arpa. -ct.buzzfeed.com. -zgn.static.zynga.com. -193.120.33.83.in-addr.arpa. -s.ytimg.com. -age-of-empires-online.browsergamez.com. -o-o.preferred.dfw06s10.v20.lscache8.c.youtube.com. -www.andopobre.tv. -a.root-servers.net. -dns.msftncsi.com. -blue29.com. -newlightrealty-com.mail.eo.outlook.com. -promel.biz. -accounts.google.com. -andreapatchwork.blogspot.com. -www.nibco.com. -photos-b.ak.fbcdn.net. -1-213.channel.facebook.com. -photos-d.ak.fbcdn.net. -trendynewhairstyles.blogspot.com. -210.21.175.78.in-addr.arpa. -www.obsexxed.com. -154.54.230.190.in-addr.arpa. -clients.njoyn.com. -www.olegvolk.net. -maharaja-ki-raaz.blogspot.com. -183.121.159.187.in-addr.arpa. -www.google-analytics.com. -r._dns-sd._udp.lan. -papeplating.com. -b.scorecardresearch.com. -dennisbarnfield.co.uk. -crl.microsoft.com. -apps.facebook.com. -134.199.121.109.in-addr.arpa. -profile.ak.fbcdn.net. -66.152.209.201.in-addr.arpa. -teredo.ipv6.microsoft.com. -in.gotradio.sc.abacast.com. -artabase.net. -static.doubleclick.net. -0.190.157.186.in-addr.arpa. -17.76.102.109.in-addr.arpa. -mail.google.com. -wpad. -abc123.ru. -google.com. -afilm.ru. -abbottlabspharmaceuticals.com. -milou-veronica.faithinpoison.com. -32.49.58.90.in-addr.arpa. -www.betroffen.at. -24.147.73.46.in-addr.arpa. -crl.comodoca.com. -ib.adnxs.com. -gcgvrg.com. -redesdesolidaridad.files.wordpress.com. -143.221.90.186.in-addr.arpa. -justinbiebertube.net. -berryautos.com. -mail.circlecityvets.com. -uaemail.com. -ap.lijit.com. -www.dunksbnikeheels.com. -ajax.googleapis.com. -83.170.181.189.in-addr.arpa. -xr126envq.k36s6g2n. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -139.99.125.76.in-addr.arpa. -bitly.com. -www.virtusmedia.com.br. -stats.buysellads.com. -news.google.com.mx. -a.root-servers.net. -9sn91n:hs.v17p8q4h. -www.bywifi.com. -racheldangerw.files.wordpress.com. -developers.facebook.com. -press.dailymotion.com. -88.68.224.41.in-addr.arpa. -inbound.rfaxis.com.netsolmail.net. -photos-h.ak.fbcdn.net. -. -www.google.com. -db._dns-sd._udp.lan. -hr.mt.com. -i5.tagstat.com. -a.root-servers.net. -tgti.net. -a.root-servers.net. -profile.ak.fbcdn.net. -galeria.infojardin.com. -devil76134.no-ip.org. -pbid.iforex.com. -a1769.phobos.apple.com. -5.48.105.112.in-addr.arpa. -rinco.su. -packages.linuxmint.com. -www.google.com. -www.ant.com. -royalmed.ru. -www.google-analytics.com. -www.things-to-do-barcelona.com. -iwhome.com. -mx.bwcutting.com.cust.b.hostedemail.com. -shremont.ru. -id.google.com.mx. -1k8f5s8nv.46na. -www.neogl.com. -www.bajanreporter.com. -acapellas4u.co.uk. -works.tarefer.ru. -i4.ytimg.com. -mtalk.google.com. -19.95.229.66.in-addr.arpa. -www.gantuk.com. -www.facebook.com. -3-courier.push.apple.com. -nwinsure.com.mx1.wooden-spoon.rcimx.net. -pixel.facebook.com. -api-public.addthis.com. -partner.googleadservices.com. -lucia-rg.blogspot.com. -a.root-servers.net. -159.63.226.213.in-addr.arpa. -249.11.152.189.in-addr.arpa. -tennis.bnpparibas.com. -malpais.cancioneros.com. -meta.wikimedia.org. -mind-caster.com. -a1886.g.akamai.net. -byfiles.storage.msn.com. -ad.yieldads.com. -15.149.11.187.in-addr.arpa. -134.158.65.190.in-addr.arpa. -tucson-club.ru. -206.45.168.192.in-addr.arpa. -57.203.232.24.in-addr.arpa. -bay.messenger.services.live.com. -www.beckys-dungeon.com. -neowa.ru. -counter.yadro.ru. -www.aol.com. -jlsautomation.com.inbound15.mxlogic.net. -www.sport.es. -sergei-fil.j-net.ru. -external.mediaworks.co.nz. -i4.ytimg.com. -185.189.179.190.in-addr.arpa. -155.187.68.189.in-addr.arpa. -t0.tagstat.com. -mablaw.co.uk. -emilyhaledesign.com. -static0.thaitable.com. -a6.sphotos.ak.fbcdn.net. -en-us.fxfeeds.mozilla.com. -s-static.ak.facebook.com. -us1.badoo.com. -rcp.na.blackberry.com. -img.tradedoubler.com. -tdkom.com.br. -www.google-analytics.com. -zgn.static.zynga.com. -js.wlxrs.com. -kindleheating.com. -m.ak.fbcdn.net. -rss.elmundo.es. -mail2.ecdservices.com. -i.w55c.net. -143.118.203.71.in-addr.arpa. -www.suma.org.ar. -b.fenixblau.com. -mail.neomorganics.com. -www.facebook.com. -www.needforspeed.com. -juanpoeta.blogspot.com. -www.ilep.org.uk. -i1.ytimg.com. -www.bywifi.com. -static1.iphoneros.net. -www.gtasa.jp. -mx.cockrell-hill.tx.us. -www.1f1f.net. -muchoestilo.regalosi.com. -iphone.audiofanzine.com. -docs.google.com. -140.68.103.189.in-addr.arpa. -sswww.hotels.com. -chefmail.de. -64.137.151.46.in-addr.arpa. -mastraveller.com. -storage.conduit.com. -photos-a.ak.fbcdn.net. -104.18.188.186.in-addr.arpa. -www.stocking-maniacs.com. -thepiratebay.org. -blog.sulcisiglesiente.eu. -28.81.125.186.in-addr.arpa. -photos-a.ak.fbcdn.net. -239.178.195.190.in-addr.arpa. -a.root-servers.net. -indymedia.org.uk. -especiales.latam.msn.com. -dnl-09.geo.kaspersky.com. -www.professorshouse.com. -sp.internet.com. -a6.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -_999_68_0. -photos.blogger.com. -107.242.192.77.in-addr.arpa. -www.facebook.com. -ad.z5x.net. -graph.facebook.com. -symphonysoldiersuk.tumblr.com. -rightkindofphrase.yuku.com. -previnet.it. -download116.avast.com. -www.infoallen.com.ar. -191.18.195.187.in-addr.arpa. -photos-d.ak.fbcdn.net. -mail.google.com. -krasdalefoods.com. -desarrollogerencial.wordpress.com. -tshore-com.relay1a.spamh.com. -a.root-servers.net. -129.253.47.188.in-addr.arpa. -csi.gstatic.com. -cti.w55c.net. -www.mediafire.com. -219.173.67.201.in-addr.arpa. -www.yamntther.com. -221.cim.meebo.com. -secserv.adtech.de. -kdc.uas.aol.com. -104.0.194.98.in-addr.arpa. -es-la.facebook.com. -citytours.sg. -a.root-servers.net. -thatsmeandthecity.blogspot.com. -201.227.200.112.in-addr.arpa. -gs-loc.apple.com. -apps.facebook.com. -6.26.141.201.in-addr.arpa. -literatehousewife.com. -89.196.103.201.in-addr.arpa. -susanguerin.com. -www.goojue.com. -www.yaracuy.gob.ve. -ocsp.digicert.com. -armmf.adobe.com. -z020.fma.fb.me. -www.facebook.com. -photos-f.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -jfh51l6gc.99ew. -colonialfarmcredit.com.mail4.psmtp.com. -www.3tv.cl. -profile.ak.fbcdn.net. -graph.facebook.com. -content.yepigames.net. -carabobo.mundoanuncio.co.ve. -85.83.149.98.in-addr.arpa. -retroxpuntones.blogspot.com. -freesite.com. -www.youtube-nocookie.com. -rivahistorical.org. -a3.sphotos.ak.fbcdn.net. -7o:hlcx1y.64bh. -rcp.na.blackberry.com. -e3191.c.akamaiedge.net. -photos-b.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -2.129.37.10.in-addr.arpa. -dns.msftncsi.com. -www.pravoslavie.ru. -166.35.47.201.in-addr.arpa. -blog.alvarols.com. -static.apk.hiapk.com. -ts4.mm.bing.net. -ad.z5x.net. -a3.sphotos.ak.fbcdn.net. -twitter.com. -time.chttl.com.tw. -www.google.com. -www.facebook.com. -fbcdn-profile-a.akamaihd.net. -www.maccaferri.com. -49.149.135.190.in-addr.arpa. -seg.sharethis.com. -150.111.55.65.list.dsbl.org. -static.ak.fbcdn.net. -www.indigomedia.com. -46.107.36.114.in-addr.arpa. -sp.cwfservice.net. -platform.ak.fbcdn.net. -29.179.138.189.in-addr.arpa. -ipdns1.hinet.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -97.72.143.201.in-addr.arpa. -gfpa.ch. -194.82.138.121.in-addr.arpa. -babyfaithhope.blogspot.com. -www.karmakerala.com. -et1.xhamster.com. -cantinelizzano.it. -th.cam4.com. -www.informador.com.mx. -126.225.11.201.in-addr.arpa. -34.85.51.190.in-addr.arpa. -anycast.perf.glbdns.microsoft.com. -ldayzv.com. -telusplanet.net. -ced.sascdn.com. -pt.lagsoft.biz. -itunes.apple.com. -ksn5-12.kaspersky-labs.com. -google.com. -a.root-servers.net. -excelir.com. -sacu.com. -www.holdenwiki.net. -223.61.24.201.in-addr.arpa. -ecn.dev.virtualearth.net. -circleofcrafters.com. -zcache.zgncdn.com. -a.static-cdn.playfish.com. -a.root-servers.net. -cmnefktt.cc.lan. -www.blabbers.com. -sherpa-auto.ru. -pamsa.com. -237.222.105.186.in-addr.arpa. -taggalicio.us. -myaccount.k12.com. -get.adobe.com. -www.playblog.ws. -support.google.com. -109.213.184.78.in-addr.arpa. -250.92.46.186.in-addr.arpa. -www.hotlinkbanners.com. -188.227.104.189.in-addr.arpa. -125.108.142.98.in-addr.arpa. -soldmedal.com. -mob800.photobucket.com. -49.208.140.79.in-addr.arpa. -www.friendlyduck.com. -cdn1.video.poshgay.com. -a.root-servers.net. -l.yimg.com. -contatransparente.pt. -blog.spafinder.com. -weather.wapp.wii.com. -www.motionempire.com. -lovepoems.blog13.net. -h.live.com. -rad.msn.com. -www.nytimes.com. -developers.facebook.com. -a5.sphotos.ak.fbcdn.net. -newsrss.bbc.co.uk. -www.unicharm.co.jp. -api.twitter.com. -mail.vag.ru. -xerocost.com. -ns1.dvrtw.com.tw. -smtp4.hamilton.net. -affiliates.lelo.com. -www.google.com. -www.googletagservices.com. -www.radiomuseum-bocket.de. -www.ncjapan.co.jp. -partner.googleadservices.com. -cl.m.globedia.com. -www.google-analytics.com. -coroiepvina.blogspot.com. -marialopez-orientacion.blogspot.com. -www.asone.org. -disqus.com. -www.google.com. -a4.sphotos.ak.fbcdn.net. -arreclau.blogspot.com. -images.channeladvisor.com.edgesuite.net. -cronicas-urbanas.blogspot.com. -mw.50cubes.com. -i.ebayimg.com. -barracuda.reliancemerchantservices.com. -131.56.101.94.in-addr.arpa. -pictures3.ebuddy.com. -www.allmusic.com.au. -peliculas-flv.com. -est.msn.com. -fashiontribe.net. -_909_28_7. -dparikh.com. -gracobaby.com. -243.212.172.190.in-addr.arpa. -socium.info. -photos-f.ak.fbcdn.net. -73.20.136.78.in-addr.arpa. -profile.ak.fbcdn.net. -secure.shared.live.com. -i1.ytimg.com. -www.reliabilityweb.com. -131.207.220.74.in-addr.arpa. -169.71.142.189.in-addr.arpa. -safebrowsing.clients.google.com. -s.youtube.com. -i38.tinypic.com. -9x8wza:f8.u72s4u8p. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -inbound.peraragroup.com.netsolmail.net. -a.root-servers.net. -de-de.facebook.com. -safebrowsing-cache.google.com. -grapecreekisd.net. -217.218.5.187.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -22.140.126.178.in-addr.arpa. -static.2yourface.com. -l.yimg.com. -www.google-analytics.com. -dualstack.ipv6-exp.l.google.com. -www.objetivofamosos.com. -v2.cache2.c.youtube.com. -cachedcommons.org. -skort.nnov.ru. -annami43.gogvo.com. -sp.cwfservice.net. -www.mojoportal.com. -a.root-servers.net. -devices.live.com. -adulteration.com. -155.63.135.88.in-addr.arpa. -www.pc-spielekostenlos.com. -www.queennarriman.com. -www.cdn.sherdog.com. -www.facebook.com. -api-read.facebook.com. -www.conduit.com. -sh.deviantart.net. -hi-in.facebook.com. -d.turn.com. -images.synacor.com. -apex.com.com. -milcomhq.com. -_ldap._tcp.ustc._sites.gc._msdcs.kcc.com. -newtt.com. -vpncasestudy.com. -gfx3.hotmail.com. -yui.yahooapis.com. -cjs.cadmus.com. -www.npcgo.com. -www.gstatic.com. -googleads.g.doubleclick.net. -15.226.13.190.in-addr.arpa. -time.nist.gov. -27.147.220.66.in-addr.arpa. -rad.msn.com. -a.root-servers.net. -js2.wlxrs.com. -d2088610.xoom.it. -www.anth.ucsb.edu. -a1108.da1.akamai.net. -upload.al-wed.com. -sn145ds.mail.services.live.com. -34.239.75.190.in-addr.arpa. -sb.scorecardresearch.com. -wpad. -www.mytreedb.com. -fa:2rgnd6.g99d9r7c. -m.facebook.com. -messenger.hotmail.com. -88.235.159.10.dynamic.ttnet.com.tr. -a7.sphotos.ak.fbcdn.net. -8.5.6.189.in-addr.arpa. -ipolone.com. -d1se315fw1201h.cloudfront.net. -www.greendayvideos.com. -teredo.ipv6.microsoft.com. -wickedfire.com. -frankconsulting.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -bright.com. -a1505.l.akamai.net. -134.188.223.203.in-addr.arpa. -www.ercrugby.com. -hvgo.blogspot.com. -go.srvnow.com. -a.root-servers.net. -214.203.9.190.in-addr.arpa. -japc.demon.co.uk. -p07-caldav.icloud.com. -a.root-servers.net. -www.gobiernodecanarias.org. -i4.ytimg.com. -ocsp.entrust.net. -netsense.net. -segments.adap.tv. -clients1.google.com. -photos-b.ak.fbcdn.net. -time.stdtime.gov.tw. -guessing-game.friv4.info. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -123.185.120.174.in-addr.arpa. -y9pwdp6kw.u86k6q0b. -208.105.145.187.in-addr.arpa. -photos-a.ak.fbcdn.net. -96.200.168.1.in-addr.arpa. -lapassucci.blogspot.com. -1.bp.blogspot.com. -www.facebook.com. -circleoflifelabs.com. -syndication.intel.com. -www.vtsup.com. -login.live.com. -pixel.indieclick.com. -ecards.emilatintools.com. -www.360minutos.com. -jodase19.tumblr.com. -tnvalleyins.com. -thetrucker.com. -api.twitter.com. -apps.facebook.com. -tum.mvd.ru. -www.google-analytics.com. -www.melbournehandyman.com.au. -inmo-balear.com. -pics.ebaystatic.com. -www.facebook.com. -trac.torproject.org. -sparling.com. -fbcdn-profile-a.akamaihd.net. -www.thef1.com. -crmifetel.ife.org.mx. -a.root-servers.net. -photos-b.ak.fbcdn.net. -mail.connico.com. -_134_81_8. -www.je. -creative.ak.fbcdn.net. -. -swiss-style.ru. -static.ak.fbcdn.net. -197.143.172.187.in-addr.arpa. -pega.jorge.over-blog.es. -static.ak.fbcdn.net. -163.62.92.186.in-addr.arpa. -www.airtel.net. -157.100.205.87.in-addr.arpa. -static.ak.fbcdn.net. -ad-g.doubleclick.net. -vcs1.msg.yahoo.com. -www.controlatugastritis.com.mx. -www.675bar.com. -t2.gstatic.com. -mailsiesta.dynalias.org. -gratka.pl. -res.media.net. -a.imageshack.us. -www.laps3.com. -crl.microsoft.com. -www.aspire-cs.com. -au.download.windowsupdate.com. -www.sabayacafe.com. -26.media.tumblr.com. -m45rft6a6.r20x4o5f. -photos-c.ak.fbcdn.net. -ads.tlvmedia.com. -78.16.229.190.in-addr.arpa. -bs.serving-sys.com. -pt-br.facebook.com. -labutacadelcinefilo.files.wordpress.com. -86.218.171.187.in-addr.arpa. -api-public.addthis.com. -a.root-servers.net. -d3lvr7yuk4uaui.cloudfront.net. -pixel.facebook.com. -mail.kis.ru. -www.mediafire.com. -travelport.com. -b._dns-sd._udp.0.129.37.10.in-addr.arpa. -20.208.208.201.in-addr.arpa. -profile.ak.fbcdn.net. -s-static.ak.fbcdn.net. -160.112.61.186.in-addr.arpa. -43.15.57.186.in-addr.arpa. -giantmag.disqus.com. -apple-mobile.query.yahooapis.com. -c0014129.ssl.cf1.rackcdn.com. -wcskids.net. -edtechtalk.com. -download670.avast.com.home. -a5.sphotos.ak.fbcdn.net. -i4.ytimg.com. -js.imonografias.com. -fcico.com. -searchclient.live.net. -cdn.advertserve.com. -www.update.microsoft.com. -188.253.163.71.in-addr.arpa. -c2.softonicads.com. -www.usefulcharts.com. -mail.agr.state.nc.us. -creative.ak.fbcdn.net. -theseges.com. -www.google.com. -170.59.155.189.in-addr.arpa. -162.197.124.189.in-addr.arpa. -226.3.115.79.in-addr.arpa. -dns.msftncsi.com. -www.makemoneyandomainparking.info. -www.aba.org.au. -google.com. -img29.elex-tech.org. -mail.efonalledas.com. -itunes.apple.com. -ucentral.edu.co. -profile.ak.fbcdn.net. -www.download.windowsupdate.com. -api-read.facebook.com. -13.137.89.98.in-addr.arpa. -agencias.ua.com.ar. -dc466.4shared.com. -179.156.92.186.in-addr.arpa. -www.energycodes.gov. -233.32.197.87.in-addr.arpa. -a.root-servers.net. -_752_77_8. -www.metodocallan.net. -mail.cri.org.uk. -api.facebook.com. -www.google.com. -www.msftncsi.com. -lb._dns-sd._udp.0.55.211.10.in-addr.arpa. -p04-keyvalueservice.icloud.com. -accounts.google.com. -thumbs2.ebaystatic.com. -97.140.172.190.in-addr.arpa. -www.facebook.com. -www.google.com. -judaismohoy.com. -dns.msftncsi.com. -espanol.weather.com. -49.149.220.66.in-addr.arpa. -sprentpcs.com. -photos-b.ak.fbcdn.net. -geo.messenger.services.live.com. -files.fatakat.com. -wildcard.whitehouse.gov.edgekey.net. -a.root-servers.net. -231.3.39.184.in-addr.arpa. -137.38.55.187.in-addr.arpa. -sgpqv8gj3.91za. -2.129.37.10.in-addr.arpa. -208.103.206.190.in-addr.arpa. -ccp.ucr.ac.cr. -us.lrd.yahoo.com. -202.184.1.88.in-addr.arpa. -www.dpreview.com. -www.targetingnow.com. -www.damnfunnypictures.com. -i4.ytimg.com. -vkontakte.ru. -clients2.google.com. -www.facebook.com. -hhi.fraunhofer.de. -43.186.152.190.in-addr.arpa. -aol.com. -js.adsonar.com. -photos-b.ak.fbcdn.net. -kinshasa.usembassy.gov. -mail-attachment.googleusercontent.com. -photos-a.ak.fbcdn.net. -mail.holmen.k12.wi.us. -40.139.24.177.in-addr.arpa. -159.201.157.186.in-addr.arpa. -mx.mfua.ru. -www.youtube.com. -limao.com. -littleceasars.com. -21.25.19.186.in-addr.arpa. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -leetufrase.com. -blogs.lavanguardia.es. -pagead2.googlesyndication.com. -i0.tagstat.com. -129.5.78.186.in-addr.arpa. -entretenimiento.prodigy.msn.com. -mail.google.com. -tags.bluekai.com. -237.112.169.189.in-addr.arpa. -s7.addthis.com. -wu.apple.com. -71.153.177.190.in-addr.arpa. -worldcat.org. -liveupdate.symantecliveupdate.com. -kepler.vis.com.pe. -www.es.vectoropenstock.com. -cdnp1.quepasa.com. -zh-cn.facebook.com. -mail.vedenina.ru. -api.midomi.com. -bsf.smowtion.com. -51.119.174.189.in-addr.arpa. -api.chartbeat.com. -54.81.220.189.in-addr.arpa. -64.166.251.78.in-addr.arpa. -twitter-widgets.s3.amazonaws.com. -a-0.19-21090001.c010083.1518.19d4.3ea1.410.0.fkm9uk1mzlibf2ekqil21fqqdv.avqs.mcafee.com. -www.liu.edu.lb. -89.163.1.201.in-addr.arpa. -:n3d3ucx4.n23l8n3d. -hou.jumpskyhigh.com. -112.23.32.99.in-addr.arpa. -www.cubeforums.com. -www.emici.net. -www.g66.co.uk. -dricompanies.com. -s.youtube.com. -5.164.209.61.in-addr.arpa. -relay.platform.co.uk. -yahoo.com. -mail.caryfire.com. -243.157.104.189.in-addr.arpa. -www.lascaderasspain.com. -profile.ak.fbcdn.net. -external.ak.fbcdn.net. -www.facebook.com. -apps.facebook.com. -citylin.ru. -dnl-17.geo.kaspersky.com. -clients2.google.com. -s4.histats.com. -groupeibidaa.com.inbound15.mxlogic.net. -smtp. -download810.avast.com. -www.prtool.info. -euro.mediotiempo.com. -go.trafficshop.com. -85.35.61.186.in-addr.arpa. -49.50.250.189.in-addr.arpa. -pixel-mixer.ru. -www.glennsacks.com. -mus.ch. -18.2.168.192.in-addr.arpa. -www.4shared.com. -www.kreditrechner.be. -www.davinci-barcelona.com. -bay.messenger.services.live.com. -shatteringdenial.com. -hardee.k12.fl.us. -circuitpeople.com. -ads.bluelithium.com. -hi-in.facebook.com. -www.androidgames.com. -cciorg.com. -emotionsandfeelings.com. -finance.fy6.b.yahoo.com. -scholar.google.es. -www.facebook.com. -www.gstatic.com. -alittlefoolish.tumblr.com. -52.245.120.77.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -bar.pianomedia.eu. -www.google.com. -ww137.video7live.com. -a.root-servers.net. -onlysomewhatqueer.blogspot.com. -ssl.gstatic.com. -dns.msftncsi.com. -ebm.cheetahmail.com. -15.127.220.201.in-addr.arpa. -a.root-servers.net. -apps.facebook.com. -federated-states-of-micronesia.evisos.com. -www.youtube.com. -21.30.4.31.in-addr.arpa. -secure.shared.live.com. -foroherramientavirtual.blogspot.com. -rcp.eu.blackberry.com. -i3.ytimg.com. -ctstatic.dealply.com. -214.118.20.187.in-addr.arpa. -urs.microsoft.com. -textual.net. -a7.sphotos.ak.fbcdn.net. -safebrowsing-cache.google.com. -picasaweb.google.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -albertcorp.com. -descargar.mp3.es. -241.143.117.200.in-addr.arpa. -news.google.com.ar. -t.ymlp204.net. -mail.cyscosoft.com. -isapi60.weatherbug.com. -153.42.36.114.in-addr.arpa. -207.100.134.174.in-addr.arpa. -plusone.google.com. -a3.sphotos.ak.fbcdn.net. -142.223.54.189.in-addr.arpa. -amarporamor.blogspot.com. -www.nuriavilanova.com. -a.root-servers.net. -www.gdanskseguros.com.ar. -verbosenfrances.com. -groups.google.com.mx. -145.208.247.92.in-addr.arpa. -stats-incoming.reciva.com. -a-0.19-23095000.c090083.1518.19d4.3ea1.410.0.4er73s9p55296jrntlrqiff28i.avqs.mcafee.com. -mail2.quiktron.com. -cadizmini.myminicity.es. -www.pictureshack.us. -photos-c.ak.fbcdn.net. -t0.gstatic.com. -ads.iforex.com. -cutepuppiespictures.files.wordpress.com. -tvj.ru. -219.136.222.201.in-addr.arpa. -245.200.229.190.in-addr.arpa. -api.twitter.com. -www.stupidexe.com. -www.adobe.com. -139.132.129.186.in-addr.arpa. -a.root-servers.net. -79.234.224.190.in-addr.arpa. -www.conduit.com. -grix:7pus.q47h6k9y. -126.252.20.174.in-addr.arpa. -go.microsoft.com. -3.136.158.85.in-addr.arpa. -js2.wlxrs.com. -166.94.11.201.in-addr.arpa. -123.247.20.71.in-addr.arpa. -home.mcafee.com. -msn.com. -www.public-trust.com. -mirrors.liquidweb.com. -www.soundcloud.com. -www.urbandictionary.com. -platform.ak.fbcdn.net. -www.eurospares.co.uk. -mail.kahndesign.com. -google.com. -mail.unistroy.ru. -www.lugardeorigen.net. -piojodelibro.blogspot.com. -maps.google.es. -a.root-servers.net. -srx.main.ebayrtm.com. -f.hwa.me. -plus.google.com. -sandbridgehouses.com. -i2.ytimg.com. -primerosauxilios.8k.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -archive.slickdeals.net. -a.root-servers.net. -254.120.198.71.in-addr.arpa. -246.77.137.24.in-addr.arpa. -clk.atdmt.com. -api.geo.kontagent.net. -mx.youtube.com. -vgh-gmbh.ru. -www.lolochofun.blogspot.com. -vso.org.uk. -muprsp.ru. -223.240.19.201.in-addr.arpa. -bd0dc.v.fwmrm.net. -es.data.toolbar.yahoo.com. -mx.vistarealtyinc.com. -mail. -dental-tribune.com. -oblfarm.yaroslavl.ru. -a.root-servers.net. -www.myrealty.com. -sg.yimg.com. -80.244.10.83.in-addr.arpa. -en-us.start.mozilla.com. -www.20minutos.es. -sp.cwfservice.net. -tienda.abc.es. -10.207.61.67.in-addr.arpa. -s.ytimg.com. -search.conduit.com. -147.163.174.190.in-addr.arpa. -franciscoafilado.blogspot.com. -a.root-servers.net. -kermit.asvt.ru. -ssl.facebook.com. -ksn2-12.kaspersky-labs.com. -mega.com.ru. -outmail003.snc7.facebook.com. -www.youtube.com. -celebridez.files.wordpress.com. -ad.yieldmanager.com. -yweb.com. -coastin.net. -soul2soul.co.uk. -74.204.29.186.in-addr.arpa. -23.229.180.189.in-addr.arpa. -joule.qfa.uam.es. -pop.gmail.com. -ustravelny.us. -homelynxloans.com. -230.88.42.186.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -ac.ebis.ne.jp. -www.tracker-web-site.com. -42.84.230.189.in-addr.arpa. -tc.v5.cache2.c.youtube.com. -45.93.155.46.in-addr.arpa. -www.independentwestand.org. -75.76.36.186.in-addr.arpa. -183.74.8.83.in-addr.arpa. -\006. -167.8.239.201.in-addr.arpa. -plastek.msk.ru. -ds.addthis.com. -mail.rugbymfg.com. -www.control.com. -www.facebook.com. -syndication.traffichaus.com. -isatap.home. -r.nexac.com. -newchapter.com.inbound20.mailprotector.net. -photos-f.ak.fbcdn.net. -s1.mindvalley.us. -www.missy-elliott.com. -google.com.mx. -www.facebook.com. -linda-goodman.com. -msmedia.ru. -www.twitter.com. -superhembras.blogspot.com. -profile.ak.fbcdn.net. -www.zynga.com. -mail.google.com. -www.bizrate.com. -quirkcars.com. -a.root-servers.net. -signatureloans100.com. -mx.omg.yahoo.com. -www.google-analytics.com. -debelis.net. -photos-e.ak.fbcdn.net. -97.1.1.10.in-addr.arpa. -photos-g.ak.fbcdn.net. -www.easy-dating.org. -85.36.95.190.in-addr.arpa. -creative.ak.fbcdn.net. -www.google.com. -www.russian-women-personals.com. -fbcdn-profile-a.akamaihd.net. -www.maui.net. -api.twitter.com. -a3.twimg.com. -a.root-servers.net. -msn.foxsports.com. -t3.tagstat.com. -55.118.181.175.in-addr.arpa. -dailyicon.net. -static.ak.fbcdn.net. -r._dns-sd._udp.lan. -inbound.rwridley.com.netsolmail.net. -onlinestores.metaservices.microsoft.com. -137.211.193.186.in-addr.arpa. -139.248.106.187.in-addr.arpa. -news.google.com.mx. -googlehosted.l.googleusercontent.com. -updateservice.sonic.com. -profile.ak.fbcdn.net. -92.36.135.190.in-addr.arpa. -hash.orbitdownloader.com. -admin.inventarte.net. -chip01.chipimages.de. -img7.ask.fm. -courtreoprt.com. -ksn2-12.kaspersky-labs.com. -lstk.ru. -orcart.facebook.com. -a6.sphotos.ak.fbcdn.net. -safebrowsing.clients.google.com. -229.31.74.187.in-addr.arpa. -exodus.desync.com. -www.shopbrandclothes.com. -google.com. -a.root-servers.net. -. -oqsauiwk.info. -static.ak.fbcdn.net. -touch.www.linkedin.com. -www.paypal.com. -gbhcpas.com.pri-mx.na0104.smtproutes.com. -_798_42_7. -188.111.191.186.in-addr.arpa. -detr.state.nv.us. -140.13.104.200.in-addr.arpa. -creative.ak.fbcdn.net. -temptechno.ru. -mujeres-de-lujo.seriespepito.com. -warehouse.davematthewsband.com. -lomanis.believeband.com. -a4.sphotos.ak.fbcdn.net. -www.kobakant.at. -flashembed.xvideos.com. -230.107.193.187.in-addr.arpa. -skatechikar.blogspot.com. -243.214.159.189.in-addr.arpa. -ad.yieldmanager.com. -creative.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -ib.adnxs.com. -pagead2.googlesyndication.com. -api.facebook.com. -digiplotinc.com. -www.youtube.com. -mediacdn.disqus.com. -www.google-analytics.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -btdinc.net. -external.ak.fbcdn.net. -imap.strato.com. -151.95.141.201.in-addr.arpa. -icogblogs.com. -emailsecurity.eandggroup.com. -file81.loadup.ru. -ehot.biz. -www.assaya.org. -a.root-servers.net. -www.youtube.com. -katerine-fernandez.blogspot.com. -s.ytimg.com. -health.chinanews.com. -www.topfoci.hu. -michaelpatton.blogspot.com. -idc091a05.parker.com. -watson.microsoft.com. -photos-e.ak.fbcdn.net. -www2.buenacuerdo.com.ar. -ocsp.thawte.com. -mlbplayers.mlb.com. -71.24.23.190.in-addr.arpa. -webcache.googleusercontent.com. -www.facebook.com. -50.20.38.190.in-addr.arpa. -www.english-to-go.com. -ebsrealestate.com. -underpagrounds.wordpress.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -75:6y6ton.44cs. -a.rad.msn.com. -rtc.sfsu.edu. -www.microsoft.com. -t2.gstatic.com. -www.blacksbangblondes.com. -smallmouthinyoursoup.blogspot.com. -www.youtube.com. -a1005.w42.akamai.net. -yule.tom.com. -ueh.dynamixsoftware.com. -photos-h.ak.fbcdn.net. -134.115.204.187.in-addr.arpa. -ax.init.itunes.apple.com. -api.twitter.com. -www.tac.vic.gov.au. -thecw.com. -relay.mobilet.ru. -wafi.com. -www.update.microsoft.com. -229.217.223.66.in-addr.arpa. -231.135.31.88.in-addr.arpa. -sphotos.ak.fbcdn.net. -file.funitto.com. -gate.ece.ucsb.edu. -www.clubsaorihara.com. -dns.msftncsi.com. -www.reggae-blog.net. -plus.google.com. -fbcdn-video-a.akamaihd.net. -www.bs-garden.com. -240.204.160.187.in-addr.arpa. -download326.avast.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -186.78.132.190.in-addr.arpa. -www.gravatar.com. -secure.leadback.advertising.com. -46.190.3.201.in-addr.arpa. -sumsung.com. -microsoft-security-essentials.softonic.com.br. -a.root-servers.net. -responsiblemarketing.com. -s-static.ak.fbcdn.net. -www.puloinfo.net. -s-static.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -market.ape-apps.com. -au.download.windowsupdate.com. -www.eltiempo.com. -i4.ytimg.com. -alliance.zap2it.com. -www.whateats.com. -www.pimms-pages.co.uk. -energen.com.mail5.psmtp.com. -158.30.158.200.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -123.47.184.81.in-addr.arpa. -c143612.memecenter.com. -www.facebook.com. -signum.sivis.org. -111.119.177.72.in-addr.arpa. -i1.ytimg.com. -client-software.real.com. -api-read.facebook.com. -a3.sphotos.ak.fbcdn.net. -114.53.155.187.in-addr.arpa. -aoujaxpdw.m55v2v4g. -www.youtube.com. -www.bigactive.com. -thehousespa.com. -129.210.224.190.in-addr.arpa. -photos-e.ak.fbcdn.net. -checalo.com.mx. -enhancedc.co.za. -ntp1.dlink.com. -southernhomebuildersllc.com. -a3.sphotos.ak.fbcdn.net. -62.158.220.66.in-addr.arpa. -a.root-servers.net. -110.14.168.192.in-addr.arpa. -63.115.111.189.in-addr.arpa. -www.boi-mela.com. -www.toyota.com.ar. -sabores.com. -www.turpoisk.ru. -updates.installshield.com. -www.apple.com. -smtp.bb.din.or.jp. -blugro3relay.groove.microsoft.com. -240.104.126.27.in-addr.arpa. -crm.digitalchocolate.com. -livewiremultimedia.com. -a8.sphotos.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -oi9.photobucket.com. -farmpp.hakunagames.com. -gfx2.hotmail.com. -www.ft.com. -hoetip.tumblr.com. -proxify.biz. -www.facebook.com. -photos-b.ak.fbcdn.net. -62ddb2yru.46uz. -thisishorosho.mshome.net. -ssl.gstatic.com. -my.id.all.biz. -birs.ru. -www.lunarrepublic.com. -duschy.ru. -106.35.243.216.in-addr.arpa. -rsjxdciym.r35t7e7m. -informcomplex.ru. -145.162.81.190.in-addr.arpa. -safebrowsing.clients.google.com. -papginos.com. -entertainment.todaysgist.com. -sharbell.com. -48.159.192.187.in-addr.arpa. -fonts.googleapis.com. -a1.da1.akamai.net. -www.cntt.vn. -63.203.181.175.in-addr.arpa. -jacona.olx.com.mx. -apps.facebook.com. -dns.msftncsi.com. -www.garbarino.com. -a.root-servers.net. -col.stj.s-msn.com. -cn1.redswoosh.akadns.net:443. -farm3.static.flickr.com. -premiergrouprealty.com. -civilwarquilts.blogspot.com. -ads.tlvmedia.com. -api.twitter.com. -safebrowsing.cache.l.google.com. -connect.facebook.net. -www.chw.net. -_422_82_5. -a2.sphotos.ak.fbcdn.net. -www.bawazir.com. -www.goojue.com. -www.xango.fr. -mail.ezmail.com. -cdn.adnxs.com. -5.19.200.189.in-addr.arpa. -imap.gmail.com. -33.3.223.201.in-addr.arpa. -hi-in.facebook.com. -pinnacle-game-profiler.programas-gratis.net. -i3.ytimg.com. -jers3.info. -www.google.com. -cccam.fanhow.com. -15.43.34.190.in-addr.arpa. -92.5.157.201.in-addr.arpa. -chrispiascik.com. -ads.espn.adsonar.com. -ueharlax.ac.uk. -a.root-servers.net. -www.shamiphotos.com. -static.ak.fbcdn.net. -themovieblog.com.woopra-ns.com. -reddit.com. -www.coisasfowfaxdolls1.weblogger.com.br. -www.thedevilsprophet.com. -photos-a.ak.fbcdn.net. -ad.adperium.com. -it-it.facebook.com. -145.70.26.190.in-addr.arpa. -196.141.0.82.in-addr.arpa. -www.distintivoh.com.mx. -blog.girvin.com. -profile.ak.fbcdn.net. -mtlm.com. -156.46.129.190.in-addr.arpa. -youtu.be. -www.google-analytics.com. -3c9bb231773af1ee4011006baf65584f.info. -oo7rzs2in.m26p7a2j. -162.144.111.193.in-addr.arpa. -www.pdfsearchs.in. -worker2.live.kng.wooga.com. -a.root-servers.net. -mailgate1.centura.org. -i2.ytimg.com. -cephey.ru. -mail.vision-financial.net. -a.root-servers.net. -a.root-servers.net. -cdnis2.cam4.com. -140.79.149.190.in-addr.arpa. -173.53.230.190.in-addr.arpa. -www.5b5.info. -a.root-servers.net. -www.msn.com. -profile.ak.fbcdn.net. -photos.aaca.org. -mt2.google.com. -www.maroc.ma. -connect.facebook.net. -simba.region-alsace.fr. -login.live.com. -www.jakegarn.com. -ct.buzzfeed.com. -153.95.149.187.in-addr.arpa. -87.198.114.87.in-addr.arpa. -toolbarqueries.google.com. -52.101.173.189.in-addr.arpa. -xbgoficialx.e.channel.livestream.com. -sabinashidalgo.net. -weather.wapp.wii.com. -msc.wlxrs.com. -ajax.googleapis.com. -ad.z5x.net. -www.google.com. -www.pinturasrodafuerte.com. -static.ak.fbcdn.net. -www.facebook.com. -seastrikeboats.com. -www.periodicos.capes.gov.br. -tsm05.eset.com. -41.235.177.190.in-addr.arpa. -orangebowl.org.s5b1.psmtp.com. -www.vivastreet.fr. -i2.ytimg.com. -orlandochristianprep.org. -images04.olx-st.com. -biomechanic-8001.deviantart.com. -videoseyredin.blogspot.com. -124.22.209.201.in-addr.arpa. -translate.googleapis.com. -20.127.26.92.in-addr.arpa. -mc.smtp.gapm.ru. -psgw.t-mobilesgws.com. -pross.ru. -twitter.com. -s.ytimg.com. -154.175.100.122.in-addr.arpa. -54.214.85.209.bl.spamcop.net. -a1408.w43.akamai.net. -fbcdn-photos-a.akamaihd.net. -a7.sphotos.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -ixbt.biz. -creative.ak.fbcdn.net. -143.132.100.128.in-addr.arpa. -86.1.101.85.in-addr.arpa. -255.46.0.10.in-addr.arpa. -ssl.gstatic.com. -14.200.172.190.in-addr.arpa. -65.194.222.186.in-addr.arpa. -bl121w.blu121.mail.live.com. -loading5.widdit.com. -199.114.22.186.in-addr.arpa. -google.com. -designcore.net. -ci.beaverton.or.us. -_307_76_9. -cmcst.netmng.com. -profile.ak.fbcdn.net. -a.root-servers.net. -img713.imageshack.us. -rentalpro.graco.com. -dohacks.activo.ws. -www.tuteleonline.com. -141.61.154.186.in-addr.arpa. -static.ak.fbcdn.net. -n6cp.akamai.net. -webmail.tx.rr.com. -ns1.dvrtw.com.tw. -metalmeltdown.forumotion.com. -kc2xowt8w.91kn. -buffalohair.wordpress.com. -usequitymortgage.com. -profile.ak.fbcdn.net. -s.youtube.com. -a1408.w43.akamai.net. -www.imss.gob.mx. -inbound.ksoft-us.com.netsolmail.net. -erc.unesco.org. -46.236.22.187.in-addr.arpa. -sovetporemontu.ru. -teredo.ipv6.microsoft.com. -pimg.chulojuegos.com. -photos-a.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -www.daisydiskapp.com. -static.ak.fbcdn.net. -208.161.75.190.in-addr.arpa. -119.54.250.189.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -mail.novogen.com. -169.231.52.186.in-addr.arpa. -counterb.statcounter.com. -aim.pubmatic.com. -ws.pusherapp.com. -s-external.ak.fbcdn.net. -www.myfinepix.com.mx. -www.euroresidentes.com. -www.fwiluminacionsrl.com.ar. -_967_39_1. -a6.sphotos.ak.fbcdn.net. -theprettypoppy1.blogspot.com. -jump.eudora.com. -www.sauerandsteiner.com. -photos-h.ak.fbcdn.net. -ad.afy11.net. -merky.de. -a7.sphotos.ak.fbcdn.net. -scootersplanet.com. -mx.excelsior.ru. -youtube.com. -63.38.19.93.in-addr.arpa. -www.english-heritageshop.org.uk. -213.110.193.190.in-addr.arpa. -icy-veins.com. -static.filestube.com. -photos-g.ak.fbcdn.net. -185.147.81.189.in-addr.arpa. -photos-e.ak.fbcdn.net. -197.32.153.193.in-addr.arpa. -_205_47_3. -g.msn.com. -readinghospital.org. -masajes-spa-relax.blogspot.com. -botones.blogalaxia.com. -89.247.169.182.in-addr.arpa. -twitter.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.lge.com. -145.227.4.187.in-addr.arpa. -91.103.172.201.in-addr.arpa. -sdw.ru. -www.hookedonads.com. -40.131.207.190.in-addr.arpa. -m.addthisedge.com. -m.yahoo.com. -www.ujenawholesale.com. -photos-g.ak.fbcdn.net. -cameronfarley.com. -azimut.ru. -photos-e.ak.fbcdn.net. -72.10.184.187.in-addr.arpa. -s.youtube.com. -137.156.243.201.in-addr.arpa. -ads.yimg.com. -a.root-servers.net. -5l28a:nai.38py. -www.google-analytics.com. -www.conduit.com. -shared.live.com. -aalweb.net. -dbcs2.htc.com. -www.eluniversal.com.mx. -a.root-servers.net. -nabillionaire.se. -www.mangaexpress.net. -apis.google.com. -a4.sphotos.ak.fbcdn.net. -www.citytoo.fr. -personaltraining.com. -www.meiosepublicidade.pt. -warrantiedservices.com. -static.gunggo.com. -a4.sphotos.ak.fbcdn.net. -p.ebaystatic.com. -www.hangfan.co.uk. -a3.sphotos.ak.fbcdn.net. -ask.com. -www.fa. -g0.gstatic.com. -146.48.192.187.in-addr.arpa. -as.webmd.com. -safebrowsing.clients.google.com. -fotosyvideosdehombres.blogspot.com. -mail.greenville.k12.mi.us. -mail.rroom.net. -61.116.191.186.in-addr.arpa. -dirette.sport.repubblica.it. -a.root-servers.net. -xjp.couzens.com. -pixel.facebook.com. -grimreaperracing.com. -cs9872.vk.com. -registrardominios.com.mx. -by2msg3020217.gateway.messenger.live.com. -221.161.6.92.in-addr.arpa. -hi-in.facebook.com. -a.root-servers.net. -feeds2.feedburner.com. -abricos.com.ru. -pagead2.googlesyndication.com. -www.consultorioveterinariolalinea.com. -www.artesaniaelsol.es. -ask3.three.co.uk. -gigamag.ru. -welcome.hp-ww.com. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -translate.googleapis.com. -mettlerpr.com. -s10.histats.com. -www.yogaartandscience.com. -p61.badoo.com. -a2.sphotos.ak.fbcdn.net. -a1.mzstatic.com. -time.chttl.com.tw. -apis.google.com. -ax.init.itunes.apple.com. -51.3.254.94.in-addr.arpa. -ad-g.doubleclick.net. -ingdirect.com.au. -mw2.google.com. -0-jw-w.channel.facebook.com. -hostgrantor.org. -followgrame.uservoice.com. -wbmsepo03.wb.ad.worldbank.org. -unapzq.net. -accounts.bioware.com. -147.71.43.208.in-addr.arpa. -www.match.com.akadns.net. -94.220.144.189.in-addr.arpa. -151.58.46.207.in-addr.arpa. -valencia.infoisinfo.es. -dns.msftncsi.com. -216.224.194.117.in-addr.arpa. -www.juicycloseups.com. -appworld.blackberry.com. -lineup.aclfestival.com. -a7.sphotos.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -_394_89_8. -www.m-m-monsterhive.net. -www.photosthatchangedtheworld.com. -a8.sphotos.ak.fbcdn.net. -clients2.google.com. -www.google-analytics.com. -clients1.google.com. -img211.imagevenue.com. -nationalpropertyresearch.com. -embed.bambuser.com. -www.pspgo1.com. -hotmail.com. -www.ribamatic.com. -7.170.220.201.in-addr.arpa. -islamiskaforbundet.se. -a5.sphotos.ak.fbcdn.net. -www.sims3cheatsanddownloads.com. -en-us.fxfeeds.mozilla.com. -santacruz.patch.com. -www.google.com. -static.ak.fbcdn.net. -sp.cwfservice.net. -123.112.104.189.in-addr.arpa. -tc.v1.cache3.c.pack.google.com. -a.root-servers.net. -rotativo.com.mx. -_744_76_8. -87.148.14.181.in-addr.arpa. -static.ak.fbcdn.net. -mx00.ev1.net. -s-static.ak.fbcdn.net. -197.220.157.190.in-addr.arpa. -www.google.com. -165.33.5.108.in-addr.arpa. -photos-g.ak.fbcdn.net. -baymsg1030118.gateway.messenger.live.com. -c7.zedo.com. -pagead2.googlesyndication.com. -125.6.157.201.in-addr.arpa. -autocosmos.terra.com.ar. -rya.kfmads.com. -39.111.237.71.in-addr.arpa. -snelsonlights.com. -www.javiergomeznoya.com. -www.ukrainedate.com. -safebrowsing.clients.google.com. -profile.ak.fbcdn.net. -tracker.v4en.com. -www.dees.com. -mtalk.google.com. -hipstercore.tumblr.com. -www.annunci.ilfattoquotidiano.it. -hpvf.com. -101.64.232.118.in-addr.arpa. -70.169.60.186.in-addr.arpa. -a.root-servers.net. -relay.kw.ua. -plusone.google.com. -146.17.194.190.in-addr.arpa. -www.caixun.com. -3ivx-mpeg-4.softonic.com. -chegadebagunca.blogspot.com. -246.112.11.173.in-addr.arpa. -ofiodameada.blogspot.com. -photos-e.ak.fbcdn.net. -www.gstatic.com. -www.hu.ikariam.com. -142.101.230.190.in-addr.arpa. -api.recaptcha.net. -a4.mzstatic.com. -87.178.141.190.in-addr.arpa. -api.twitter.com. -a996.mm1.akamai.net. -static.ak.fbcdn.net. -newsrss.bbc.co.uk. -. -a4.sphotos.ak.fbcdn.net. -www.addicitivetips.com. -elsietedias.com. -www.cakespy.com. -comtel-vologda.ru. -www.carolynsandstrom.com. -www.ameristarcasinos.com. -sph3re.tv. -200.77.112.190.in-addr.arpa. -wpad.genzyme.com. -a.root-servers.net. -v5.cache3.c.youtube.com. -apis.google.com. -s0.2mdn.net. -228.93.70.208.in-addr.arpa. -ur.bestpicturesof.com. -41.9.133.189.in-addr.arpa. -developers.facebook.com. -webmail.midtechnologies.net. -static.dealply.com. -api.geo.kontagent.net. -psych.urbanup.com. -en.wikipedia.org. -signup.wazzub.info. -exmail.sina.com. -www.onlineweblibrary.com. -155.26.6.186.in-addr.arpa. -s-external.ak.fbcdn.net. -activatunegocio.com.ar. -photos-f.ak.fbcdn.net. -u20.eset.com. -43.138.13.163.in-addr.arpa. -snippets.mozilla.com. -latam.msn.com. -1056349545.mail.outlook.com. -www.facebook.com. -www.facebook.com. -bs.serving-sys.com. -fvlpl9k13.07re. -214.105.34.190.in-addr.arpa. -a.root-servers.net. -www.juegosyonkis.com. -syria.com. -163.62.109.200.in-addr.arpa. -70.119.21.187.in-addr.arpa. -lurkerfaqs.com. -56.168.36.186.in-addr.arpa. -_autodiscover._tcp.nsn.com.apac.nsn-intra.net. -hallmarksuites.com. -losmundosdepipi.blogspot.com. -hotmail.com. -www.wamagic.com. -a-0.19-230f7081.a0f0131.1518.197c.3ea0.200.0.hch9ftcmi5jjvej61skj7km8di.avqs.mcafee.com. -128.127.148.189.in-addr.arpa. -www.chelseafc4arab.com. -external.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -52.179.179.190.in-addr.arpa. -svod.espn.go.com. -img131.imagevenue.com. -www.pspgo1.com. -mail2.phorn.hu. -media.io. -a5.sphotos.ak.fbcdn.net. -graph.facebook.com. -a6.sphotos.ak.fbcdn.net. -31.146.3.190.in-addr.arpa. -123.251.168.192.in-addr.arpa. -billing.sharo4ka.ru. -207.237.53.201.in-addr.arpa. -profile.ak.fbcdn.net. -77btddl2z.62he. -www.brooonzyah.net. -2.bp.blogspot.com. -dns.msftncsi.com. -googleads.g.doubleclick.net. -cdn.loading321.com. -www.thesunblog.com. -ns3-uk.rapidwaters.net. -a.root-servers.net. -kinsha.msk.ru. -93.136.138.201.in-addr.arpa. -s4.histats.com. -aol.com. -sp.cwfservice.net. -w12.myzcm.com. -graphic-hub.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -hahah.com. -edge.quantserve.com. -rv.ginyas.com. -www.consumer.es. -photos-b.ak.fbcdn.net. -malcerkov.ru. -87.142.80.186.in-addr.arpa. -e3353.c.akamaiedge.net. -checkip.dyndns.org. -www.simplemachines.org. -mail1.crum.com. -mail.jakers.com. -116.23.55.189.in-addr.arpa. -nowthestoryismine.tumblr.com. -d12.laserdiscs.biz. -a1505.l.akamai.net. -mitchell.k12.ga.us.s10a1.psmtp.com. -_330_05_1. -179.145.73.189.in-addr.arpa. -i4.ytimg.com. -static.ak.facebook.com. -graph.facebook.com. -a.root-servers.net. -tcr.tynt.com. -promo.profitsdeluxe.com. -blazinglizard.com. -. -a.root-servers.net. -photos-e.ak.fbcdn.net. -www.google.com. -dns.msftncsi.com. -www.gstatic.com. -data.flurry.com. -wyatt.edisonproject.com. -tag.admeld.com. -developers.facebook.com. -141.197.1.181.in-addr.arpa. -mail.lmpcorp.com. -26.114.71.70.in-addr.arpa. -inbound.lanhambros.com.netsolmail.net. -163.com.cn. -itunes.apple.com. -167.19.225.69.in-addr.arpa. -dns.msftncsi.com. -www.update.microsoft.com. -gateway.arrail-dental.com. -24.media.tumblr.com. -gomarmaris.ru. -195-async.olark.com. -www.google-analytics.com. -lqwutrysqwqonloy.biz. -www.bluecoat.com. -newideamebel.ru. -www.alfaguara.com. -www.tafe.swinburne.edu.au. -_124_17_8. -www.dondebuscarpareja.com. -graph.facebook.com. -support.mozilla.com. -243.140.255.201.in-addr.arpa. -253.135.11.83.in-addr.arpa. -google.com. -37.66.190.189.in-addr.arpa. -64.45.141.201.in-addr.arpa. -wd-edge.sharethis.com. -secure.shared.live.com. -76.255.26.201.in-addr.arpa. -accounts.google.com. -www.rotahavik.co.nz. -z61phxecs.71bd. -219.145.48.65.in-addr.arpa. -api-read.facebook.com. -169.154.79.200.in-addr.arpa. -geo.tp-cdn.com. -platform.ak.fbcdn.net. -a.root-servers.net. -webcache.googleusercontent.com. -habraham.com. -mdk.com.ru. -felafacs.org. -coastalfloorcovering.com. -www.facebook.com. -drawn-reality.org. -_998_39_5. -_548_79_4. -i-0.19-2709f081.83.1518.19d4.3ea1.410.0.wh287b8bvp1cg27mr4pzcu9n5t.avqs.mcafee.com. -www.facebook.com. -eros.21.ru. -tnswfs03.siderca.techint.net. -s.gravatar.com. -133.19.206.187.in-addr.arpa. -microbanc.com. -mail.vegalab.ru. -www.update.microsoft.com. -static.ak.facebook.com. -www.espressoandcream.com. -sn106w.snt106.mail.live.com. -9.182.62.187.in-addr.arpa. -photos-f.ak.fbcdn.net. -zh-cn.facebook.com. -137.106.136.123.in-addr.arpa. -isohunt.com. -136.203.42.177.in-addr.arpa. -boygj.com. -au.bartercard.net. -www.maturetubevids.com. -144.106.87.190.in-addr.arpa. -wpad.domain.name. -mail2.unisale.ru. -www.cladead.com. -169.40.96.94.in-addr.arpa. -cdn.wibiya.com. -safebrowsing.clients.google.com. -urs.microsoft.com. -mrbronco.xomba.com. -www.ardeaprints.com. -19.210.217.87.in-addr.arpa. -carriesyabookshelf.blogspot.com. -192.248.205.109.in-addr.arpa. -4x4mecca.com. -a3.sphotos.ak.fbcdn.net. -cdn.feeds.videosz.com. -mx.ptmail.sapo.pt. -www.downtownwomenscenter.com. -203.100.108.186.in-addr.arpa. -yenibiris.com. -ns202.vpsland.com. -alexandraboigerillustration.blogspot.com. -173.167.161.46.in-addr.arpa. -chilihead.com. -www.tutarotgratis.com. -pagead2.googlesyndication.com. -www.facebook.com. -214.69.175.187.in-addr.arpa. -orate.burlingtoncoatfactory.com. -a.root-servers.net. -eltiempodelaspalabras.blogspot.com. -avgtechnologies.112.2o7.net. -chistesbajosengrasas.blogspot.com. -jxubvflympq.info.lan. -samwep.info. -www.kuzey-guney-son-bolum-izle.com. -dns.msftncsi.com. -126.159.54.83.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -plus.google.com. -mail2.kgoc.com. -google.com. -www.afterfivedesigns.com. -232.8.55.157.in-addr.arpa. -continental.grupobbv.com. -www.facebook.com. -106.44.225.82.in-addr.arpa. -cs5874.vkontakte.ru. -lep113:en.e01b9e0f. -mscrl.microsoft.com. -_970_23_6. -balticbereg.ru. -ad.doubleclick.net. -id.furud.net. -www.bogotalacandelaria.com. -dns.msftncsi.com. -time-nw.nist.gov. -mail.italyrealty.ru. -sc1.rules.mailshell.net. -gawker.com. -www.nude-perfection.com. -www.bestcelebstube.com. -189.254.172.190.in-addr.arpa. -photos-a.ak.fbcdn.net. -time.windows.com. -41.115.115.174.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -grafiq.com.co. -foros.esmas.com.woopra-ns.com. -2.177.35.187.in-addr.arpa. -7.4.f.e.7.c.4.4.0.e.f.0.b.3.8.2.d.f.9.7.5.f.e.5.0.0.0.0.1.0.0.2.ip6.arpa. -186.34.133.186.in-addr.arpa. -techproekt.ru. -a.root-servers.net. -b.scorecardresearch.com. -img84.imageshack.us. -photos-d.ak.fbcdn.net. -www.styling-deluxe.com. -tap2-cdn.rubiconproject.com. -ihlc.udea.edu.co. -connect.facebook.net. -api2.4shared.com. -www.symphonyspace.org. -www.asmallorange.com. -comcast.net. -abercromb.ie. -197.201.153.201.in-addr.arpa. -wazetv.com. -www.tarimziraat.com. -162.252.212.200.in-addr.arpa. -creative.ak.fbcdn.net. -help.slideshare.com. -descargas.muyzorras.com. -googleads.g.doubleclick.net. -www.alacered.com. -a.root-servers.net. -adsfront.iminent.com. -www.bioetica.ufrgs.br. -safebrowsing-cache.google.com. -www.wtp101.com. -a.root-servers.net. -upay-cdn2.playspan.com. -fbcdn-sphotos-a.akamaihd.net. -www.siteadvisor.com. -wdphoto.com. -ad.globaltakeoff.net. -www.google.com. -. -mx-64-60-33-242.newhorizonspix.com. -s-static.ak.facebook.com. -www.chasingeyes.com. -4.69.255.76.in-addr.arpa. -20.30.212.186.in-addr.arpa. -krmuevizk47gsp62nwf22lqd20bxbqgqlsi15.biz. -diss.com. -xpnd.se. -www.eviews.net. -120.129.211.201.in-addr.arpa. -static.ak.fbcdn.net. -csi.gstatic.com. -static.ak.fbcdn.net. -twitter.com. -pixel.facebook.com. -a7.sphotos.ak.fbcdn.net. -desktopworld.disqus.com. -www.fr-reiki.com. -a5.sphotos.ak.fbcdn.net. -a.root-servers.net. -repository.arrow.nokia.com. -logs9.contadorwap.com. -static.ak.fbcdn.net. -233.246.114.59.in-addr.arpa. -mx.news.search.yahoo.com. -a3.sphotos.ak.fbcdn.net. -231.237.27.50.in-addr.arpa. -faebook.com. -187.82.203.108.in-addr.arpa. -:ttvkpspd.95ma. -apis.google.com. -151.19.249.89.in-addr.arpa. -13-courier.push.apple.com. -tracker.publicbt.com. -teredo.ipv6.microsoft.com. -transas.ru. -d1.apktops.com. -137.7.82.200.in-addr.arpa. -es.wikipedia.org. -mail2.furamavietnam.com. -wild-berries-dw.blogspot.com. -a.root-servers.net. -photos-g.ak.fbcdn.net. -regentgroup.ru. -20minutos.feedsportal.com. -pjcvlau57.15vi. -www.topappsquare.com. -www.youtube.com. -110.84.240.190.in-addr.arpa. -sp.cwfservice.net. -www.sdrifter-nismoracing.blogspot.com. -grids.heroku.com. -profile.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -www.portaventura.co.uk. -de-de.facebook.com. -static.ak.fbcdn.net. -clients1.google.com. -www.progressiveseminars.com. -22.202.146.187.in-addr.arpa. -node1.ecogeek-cdn.net. -206.73.77.188.in-addr.arpa. -sytrus.programas-gratis.net. -137.89.250.189.in-addr.arpa. -creative.ak.fbcdn.net. -s3.amazonaws.com. -www.facebook.com. -jack-fx.com. -sn2files.storage.msn.com. -platform.twitter.com. -rcp.na.blackberry.com. -s0.2mdn.net. -. -236.154.247.190.in-addr.arpa. -www.frenchonfire.fr.nf. -u-smile-jb-y-tu.metroblog.com. -tracker.mightynova.com. -225.22.126.190.in-addr.arpa. -gc.peachnet.edu. -a3.sphotos.ak.fbcdn.net. -barrowwhanley.com. -billing.sharo4ka.ru. -www.essayandscience.com. -i3.ytimg.com. -static.ak.fbcdn.net. -a749.g.akamai.net. -219.225.58.201.in-addr.arpa. -trificient.net. -i4.ytimg.com. -fxfeeds.mozilla.com. -211.158.216.201.in-addr.arpa. -www.googleadservices.com. -pappasitos.com. -www.game-advertising-online.com. -milyunanochesconmiada.blogspot.com. -blog.geeksaresexytech.netdna-cdn.com. -a.root-servers.net. -148.150.62.189.in-addr.arpa. -105.20.174.190.in-addr.arpa. -dns.msftncsi.com. -www.facebook.com. -a.root-servers.net. -ksn2-12.kaspersky-labs.com. -pixel.facebook.com. -tags.bluekai.com. -180.51.5.116.in-addr.arpa. -www.texasarchive.org. -support.google.com. -t1.gstatic.com. -www.apple.com. -c.brightcove.com. -s-static.ak.facebook.com. -82.25.71.190.in-addr.arpa. -s-static.ak.facebook.com. -mi.adinterax.com. -a2.sphotos.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -www.googletagservices.com. -34.115.59.187.in-addr.arpa. -gcrm.com. -48.144.171.201.in-addr.arpa. -birdsfod.blogspot.com. -145.212.157.186.in-addr.arpa. -hotmail.com. -www.google.com. -c-0.19-a30fa081.30081.1518.1998.3ea0.200.0.rqw7f386mgq5i2vj71kkslquhj.avqs.mcafee.com. -202.221.104.189.in-addr.arpa. -www.theglobeandmail.com. -price-n.ru. -ads.trafficjunky.net. -130.228.172.94.in-addr.arpa. -www.mittelstandswiki.de. -www.divine.ca. -www.google-analytics.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.cv.vic.gov.au. -www.facebook.com. -www.linkbucksmedia.com. -fs727.filepost.com. -sn1msg1020220.gateway.messenger.live.com. -a328.da1.akamai.net. -ingenieria-de-yacimientos.blogspot.com. -191.96.141.201.in-addr.arpa. -lyuag9n2a.01rf. -a4.sphotos.ak.fbcdn.net. -wzb8a81il.q63j8e6r. -www.a10studio.net. -ajax.googleapis.com. -infonet.tomsk.ru. -170.219.185.187.in-addr.arpa. -elk.mazury.pl. -geo.messenger.services.live.com. -gmedical.org. -tracker.piecesnbits.net. -mscrl.microsoft.com. -144.161.254.190.in-addr.arpa. -9ts.ru. -www.facebwook.com. -50.152.255.201.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.savella.com. -ssl.gstatic.com. -a.root-servers.net. -_641_51_8. -a998.mm1.akamai.net. -174.1.168.192.in-addr.arpa. -cdn.optmd.com. -affiliates.excelcalcs.com. -a.root-servers.net. -accounts.google.com. -www.googleadservices.com. -beharrygroup.com. -www.mediafire.com. -www.mandco.com. -ntp.glb.nist.gov. -1580thelight.com. -www.facebook.com. -skp.com. -rcp.eu.blackberry.com. -zulu.tweetmeme.com. -opencourseware.kfupm.edu.sa. -apps.bittorrent.com. -www.spiritualgangster.com. -njmcli.com. -amor.org. -www.divx-es.com. -a.root-servers.net. -www.amateursexmovs.com. -zjgefordtex.en.alibaba.com. -www.honawahonak.com. -www.youtube. -teredo.ipv6.microsoft.com. -167.142.64.98.in-addr.arpa. -157.222.160.201.in-addr.arpa. -profile.ak.fbcdn.net. -developers.facebook.com. -42.109.45.187.in-addr.arpa. -9gag.com. -www.queenkate.com. -profile.ak.fbcdn.net. -safebrowsing-cache.google.com. -www.delphigroups.info. -www.google.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -csi.gstatic.com. -ad.yieldmanager.com. -poe.perl.org. -dyvzcu.com. -offer.ebay.com. -www.youtube.com. -148.120.20.187.in-addr.arpa. -blog.theicecreamists.com. -evsecure-ocsp.verisign.com. -burtkunihonda.com.inbound15.mxlogic.net. -www.fontanka.ru. -secure.wlxrs.com. -developers.facebook.com. -view.atdmt.com. -172.1.80.2.in-addr.arpa. -google.com. -www.vbeda.com. -239.98.184.201.in-addr.arpa. -www.download.windowsupdate.com. -83.186.56.186.in-addr.arpa. -www.zmtcdn.com. -photos-f.ak.fbcdn.net. -253.76.123.189.in-addr.arpa. -factoryartists.com. -66.116.233.123.in-addr.arpa. -d7.zedo.com. -3etk2jtug.50bo. -www.facebook.com. -www.wkc-collection.de. -www.withoutabox.com. -mailb.aljazeera.net. -a5.sphotos.ak.fbcdn.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -finlandiacheese.com. -62.216.156.189.in-addr.arpa. -twitter.com. -:vxtra9b:.d77r1d0e. -greatinsurancejobs.com.s8b1.psmtp.com. -www.htia.org. -moillusions.us.intellitxt.com. -photos-c.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -global.ard.yahoo.com. -s1-powerpoint.vo.msecnd.net. -231.234.16.62.in-addr.arpa. -www.saintaquinas.com. -_624_97_4. -blog.livestation.com. -dl29.hotgoo.com. -mail2.glmshows.com. -fxfeeds.mozilla.com. -mesianicos.net. -letgetmorefollowers.info. -accounts.google.com. -mx2.smtp.gru.net. -epic.com. -171.19.135.190.in-addr.arpa. -groupusa.com. -www.loureed.8k.com. -a.root-servers.net. -iphone-wu.apple.com. -gbd3d9b9e6e334abf.api.playtomic.com. -mail.des.org.ua. -external.ak.fbcdn.net. -www.facebook.com. -www.google.com. -www.editions-larousse.fr. -pixel.quantserve.com. -www.eluniversal.com.mx. -t-otaku-m.com. -profile.ak.fbcdn.net. -hotmail.com. -a.root-servers.net. -219.186.56.78.in-addr.arpa. -a.root-servers.net. -es.wikipedia.org. -r1-ads.ace.advertising.com. -sportsbybrooks.com. -flyingfish.co.nz. -www.jpbuzz.com. -www.myspace.com. -mail.amvest.com. -www.venesistemas.net. -www.gstatic.com. -215.45.54.125.in-addr.arpa. -132.69.42.83.in-addr.arpa. -www.ipc.org.kw. -forum.avscripts.net. -webmail.radiomaranon.org.pe. -18.152.172.201.in-addr.arpa. -static.ak.fbcdn.net. -mail.bankmeta.com. -bin-short.whatsapp.net. -i6.tagstat.com. -www.sd.xinhuanet.com. -vrgw.komsco.com. -115.189.201.190.in-addr.arpa. -csi.gstatic.com. -www.google.com. -es.dofusmagazine.com. -169.75.213.190.in-addr.arpa. -cn1.redswoosh.akadns.net. -a.root-servers.net. -msc.wlxrs.com. -www.ejuegosdeben10.com. -ad.foxnetworks.com. -connect.facebook.net. -arsavage.com. -12.157.210.201.in-addr.arpa. -armdl.adobe.com. -arosauto.no. -matrixmtgloans.com. -clients4.google.com. -a1720.phobos.apple.com. -login.yahoo.net. -tron.softonic.com. -infor.pl. -242.253.54.60.in-addr.arpa. -es.wikipedia.org. -925.nl. -98.194.114.177.in-addr.arpa. -ibtikar.twofour54.com. -hmh.org. -144.162.24.46.in-addr.arpa. -ad.amgdgt.com. -dns.msftncsi.com. -www.mynewsjapan.com. -tt.net. -i.ebayimg.com. -www.soccerstand.com. -24.103.18.186.in-addr.arpa. -hr3ajvxpd.g34d5k9x. -reviews.cnet.com. -www.sexfilms.com. -61.88.160.189.in-addr.arpa. -www.robotadserver.com. -pttimqfovlnunn.net. -sonalisangbad.com. -169.162.121.84.in-addr.arpa. -www.precisioninstrument.es. -crl.microsoft.com. -:krboeduf.23mv. -genesis.1337x.org. -tc24.easythumbhost.com. -dns.msftncsi.com. -a.root-servers.net. -denegday.ru. -92.106.83.189.in-addr.arpa. -dr._dns-sd._udp.0.70.16.172.in-addr.arpa. -mailer1.tablogix.ru. -s2.youtube.com. -hhholmestesting.com. -cdn.api.twitter.com. -hotmail.com. -yknet.com. -c3v68bgyf.l39g3w6s. -125.68.132.223.in-addr.arpa. -preparadelcamino.blogspot.com. -www.epsco-group.com. -a.root-servers.net. -geo.messenger.services.live.com. -ark.switnet.org. -sunoptics.com. -mx.belkozin.com. -243.184.52.186.in-addr.arpa. -fldeadhead.com. -8.4.236.88.in-addr.arpa. -0.79.6.88.in-addr.arpa. -nc:rlx7yl.09rb. -40.71.21.201.in-addr.arpa. -sdau2.sdau.edu.cn. -google.com. -mx-int.sama.ru. -com. -i4.ytimg.com. -102.69.188.189.in-addr.arpa. -163.53.177.78.in-addr.arpa. -developers.facebook.com. -sacla-tm.com. -support.dtsearch.com. -creative.ak.fbcdn.net. -trksrv10.doublefusion.com. -gfx2.hotmail.com. -www.googleapis.com. -90.52.107.189.in-addr.arpa. -206.141.110.189.in-addr.arpa. -pointsul.com.br. -arsclassicacoins.com. -creative.ak.fbcdn.net. -cdn.babble.com. -zartarco.com.cy. -tracker.ccc.de. -a3.sphotos.ak.fbcdn.net. -bvva62627661.ns02.biz. -www.textpad.com. -principia-group.com. -apps.facebook.com. -110.188.231.190.in-addr.arpa. -asktoolbar.weather.com. -www.pktienda.es. -images.apple.com. -keglerbrown.com. -ds.addthis.com. -mangham.com. -www.gladiatus.lv. -www.readerswivesmovies.com. -27.147.220.66.in-addr.arpa. -9.71.184.201.in-addr.arpa. -s.ytimg.com. -mx2.adamant.ru. -primped4.hcdn1.net. -rpt.ladyfootlocker.com. -www.adaptelec.com. -253.17.231.201.in-addr.arpa. -b-0.19-23091008.481.1518.19d0.3ea1.410.0.cnvnzfragmddpldidjatrqqfmj.avqs.mcafee.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -cursos-blogger.blogspot.com. -mailin-01.mx.aol.com. -widget-36.slide.com. -154.217.73.190.in-addr.arpa. -pjsml.50megs.com. -156.187.192.173.in-addr.arpa. -www.googleadservices.com. -52.77.75.200.in-addr.arpa. -www.adobe.com. -redsys.ru. -www.habbo.es. -www.dlink.com. -massena.com. -thecollectivereview.com. -kidsalive.com.au. -242.214.56.200.in-addr.arpa. -wpad.ad.local. -www.topappsquare.com. -www.addthis.com. -0-jg-w.channel.facebook.com. -www.ashesh.com.np. -sp.cwfservice.net. -lazerit.com. -www.facebook.com. -s4.histats.com. -bookzone4boys.blogspot.com. -sc17.rules.mailshell.net. -accounts.google.com. -gs-loc.apple.com. -169.166.59.186.in-addr.arpa. -de-de.facebook.com. -time.windows.com. -jim6.mail.ru. -2.m0n0wall.pool.ntp.org. -blastmagazine.net. -col.stc.s-msn.com. -graph.facebook.com. -mashable.com. -api.facebook.com. -bits.wikimedia.org. -clients2.google.com. -www.auntruthskitchen.com. -safebrowsing.cache.l.google.com. -js.wlxrs.com. -time.chttl.com.tw. -mail.echolabs.net. -google.com. -0-56.channel.facebook.com. -meg.drs.ca. -a.root-servers.net. -www.weef2012.edu.ar. -teknopanel.com.tr. -safebrowsing.clients.google.com. -radiusventures.com.s6a2.psmtp.com. -a.root-servers.net. -studiocavallleri.it. -emmail.com. -www.aboutoracleapps.com. -a7.sphotos.ak.fbcdn.net. -www.quranrabbi.com. -0.11-2109e021.c0c10b3.1518.19b2.410a.400.9d.gdjs2rgdr2gsw4wia8nflr2dsb.avqs.mcafee.com. -59.157.145.186.in-addr.arpa. -pop3.hiway.co.uk. -buscadorares.com. -www.youtube.com. -dingtao333.3322.org. -conelsolenleo.blogspot.com. -bit.ly. -juegosiphone.org. -www.facebook.com. -190.66.224.190.in-addr.arpa. -a1408.w43.akamai.net. -laberintos.itam.mx. -yovfk6xm:.s00r1e0x. -new.digg.com. -39.113.2.187.in-addr.arpa. -102.38.8.82.in-addr.arpa. -28.26.123.201.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -relay.pholding.ru. -a.root-servers.net. -photos-b.ak.fbcdn.net. -63.221.212.190.in-addr.arpa. -sdc.oocl.com. -external.ak.fbcdn.net. -i2.ytimg.com. -nobu.backup.com. -ksn2-12.kaspersky-labs.com. -tiff.net. -assets.pinterest.com. -96.102.70.77.in-addr.arpa. -alperjcc.org. -wirr.com. -mail2.gicec.net. -a4.sphotos.ak.fbcdn.net. -uni-ins.ru. -tvcomedies.about.com. -www.sonymusic.it. -g.ceipmsn.com. -a276.phobos.apple.com. -lovelythings.typepad.co.uk. -config.messenger.msn.com. -www.orizaba.gob.mx. -ytebgv7or.48ti. -tyther.attmail.com. -latam.preciomania.com. -pixel.facebook.com. -lab.org. -a2.twimg.com. -skanar.sk. -www.restauranticemachine.org. -158.182.9.201.in-addr.arpa. -docs.google.com. -www.indulgecakes.co.za. -fdsn0.skype.net. -www.giardiasis.org. -i4.ytimg.com. -rimail.interlan.com. -plastikote.com. -mscrl.microsoft.com. -www.chch.ox.ac.uk. -www.bestotools.com. -news.iks.ru. -static2.consumerreportscdn.org. -helium.lunarpages.com. -27.252.0.72.in-addr.arpa. -m.twitter.com. -secure.wlxrs.com. -astaro.district106.net. -k14.kn3.net. -www.canadapost.co.uk. -open.pc120.com. -verpelis.ne. -www.jewish-greetings.com. -ahoo.it. -dns.msftncsi.com. -scgi.ebay.com.au. -a.root-servers.net. -mediacom.com.s200a1.psmtp.com. -mebel2006.ru. -214.148.173.190.in-addr.arpa. -google.com. -a4.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -en.wikipedia.org. -www.americas-fr.com. -www.facebook.com. -a.root-servers.net. -mail.crmsei.com. -safeguard.concentric.com. -load.exelator.com. -127.0.0.1. -www.fotosmix.com. -www.foroz.org. -ads.lfstmedia.com. -issworldhistory.forumotion.net. -www.kuponvilag.hu. -www.google-analytics.com. -us.js.yimg.com. -db._dns-sd._udp.lan. -a.c-0.19-a30f7081.c110000.1518.19d4.3ea1.210.0.jtjwp6s1mrce8pabffnu48rjd6.avqs.mcafee.com. -www.snaponequipment.com. -g.ceipmsn.com. -s03.radikal.ru. -webmedia.hrblock.com. -photos-a.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -124.248.174.189.in-addr.arpa. -130.190.109.200.in-addr.arpa. -asktoolbar.weather.com. -rad.msn.com. -26.171.152.189.in-addr.arpa. -prof-soft.com. -fbcdn-photos-a.akamaihd.net. -www.skillsconverged.com. -pix04.revsci.net. -s.youtube.com. -external.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -23.209.18.87.in-addr.arpa. -54.110.69.174.in-addr.arpa. -newsrss.bbc.co.uk. -194.186.7.189.in-addr.arpa. -profile.ak.fbcdn.net. -1stsmg.com. -www.addthis.com. -84.1.204.190.in-addr.arpa. -ad3.liverail.com. -highrollerlimo.com. -www.fiscalia.com. -speedsend.net. -www.si-la.org. -113.52.235.201.in-addr.arpa. -0.11-230f8081.c120081.1518.18a6.3ea0.210.0.m6aph9nmfpfelks3u9ztjvkb9b.avqs.mcafee.com. -cacs.net. -dc427.4shared.com. -static.ak.fbcdn.net. -serv01.colo.owned.hu. -e1.docs.yahoo.com. -saturn.pcb-me.net. -www.yele.org. -www.google.com. -muttski-software.com. -221.199.72.46.in-addr.arpa. -g.promosrv.com. -dns.msftncsi.com. -618connect.com. -www.facebook.com. -pagead.l.doubleclick.net. -www.xtremenutrition.co.nz. -es.dragonball.wikia.com. -safebrowsing.clients.google.com. -external.ak.fbcdn.net. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -edgfdpipm.y75o6k0q. -mikkai.com. -a.root-servers.net. -www.videos-it.com. -228.13.188.190.in-addr.arpa. -google.com. -207.154.199.213.combined.njabl.org. -pagead2.googlesyndication.com. -accounts.google.com. -www.historiadeldibujo.com. -sos19shei.z89v3j1f. -okatrauzdws.info. -www.gangbangcathy.com. -st.plenomedia.com. -rpz-dvb.ru. -ads.eluniversal.com.mx. -www.soharuni.net. -fr-fr.facebook.com. -ds.serving-sys.com. -fbcdn-profile-a.akamaihd.net. -a.root-servers.net. -m.hotmail.com. -keepmybooks.net. -227.36.154.165.in-addr.arpa. -pomol.ru. -edge.quantserve.com. -mail2.cherisundae.com. -gamerrr.com. -macsecrets.ru. -www.facebook.com. -photos-a.ak.fbcdn.net. -d5nxst8fruw4z.cloudfront.net. -www.glenngoodman.com. -www.google.com. -. -www.co2trees.com.au. -ritterbush.com. -astore.amazon.com. -creative.ak.fbcdn.net. -distilleryimage6.instagram.com. -tracker.anime-miako.to. -kapsch.com. -unil.ch. -time.chttl.com.tw. -webmoney26.ru. -top.habbolibre.org. -f4999.mail.yahoo.com. -static.geewa.net. -photos-f.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -urs.microsoft.com. -v2.nonxt3.googlevideo.com. -a8.sphotos.ak.fbcdn.net. -secure.wlxrs.com. -ib.adnxs.com. -www.google.com. -api-read.facebook.com. -35.79.106.186.in-addr.arpa. -partsurfer.hp.com. -a.root-servers.net. -bloodless.ru. -capristan.com. -ad.adtegrity.net. -profile.ak.fbcdn.net. -www.distrikayser.com. -yahoo.com. -161.28.92.186.in-addr.arpa. -_914_05_5. -a.root-servers.net. -antonio-pernas.es. -secure.wlxrs.com. -teredo.ipv6.microsoft.com. -www.google.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.prayertimes.net. -dr._dns-sd._udp.0.44.16.172.in-addr.arpa. -suicide-isnt-painful.piczo.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -168.221.154.190.in-addr.arpa. -crl.microsoft.com. -linkscorp.com. -www.youtube.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -golem.pixar.com. -50.235.51.90.in-addr.arpa. -196.88.217.24.in-addr.arpa. -www.facebook.com. -s-static.ak.fbcdn.net. -static.pulse360.com. -www.tabrizcartoons.com. -s.ytimg.com. -127.49.54.65.in-addr.arpa. -www.geckowood.com. -whos.amung.us. -www.jobmeeting.it. -accounts.youtube.com. -hyacinth.org. -cncbt2.the9.com. -c.atdmt.com. -86.26.176.189.in-addr.arpa. -mx2.capgemini.com. -ad.smowtion.com. -224.169.9.186.in-addr.arpa. -9gv7xkt4n.73dg. -www.google.com. -www.koniambonickel.nc. -bontel.ru. -ar-ar.facebook.com. -twitter.com. -s7.addthis.com. -197.3.167.190.in-addr.arpa. -dietasecreta.com. -a3.sphotos.ak.fbcdn.net. -d7.zedo.com. -www.hilive.tv. -wasio.net. -www.google-analytics.com. -fortheywerefishers.com. -toolbarqueries.google.com. -a.root-servers.net. -photos-f.ak.fbcdn.net. -widgets.twimg.com. -www.facebook.com. -selendangrakyat.blogspot.com. -vistahospitality.com.2.0001.arsmtp.com. -136.255.100.190.in-addr.arpa. -172.157.131.187.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -willeybrothers.com. -photos-d.ak.fbcdn.net. -profile.ak.fbcdn.net. -221.189.180.189.in-addr.arpa. -h9mjcy742.m44w5m1y. -profile.ak.fbcdn.net. -worldpress.org. -api.facebook.com. -loading7.widdit.com. -creative.ak.fbcdn.net. -www.megafilex.com. -sp.cwfservice.net. -12.140.251.190.in-addr.arpa. -thumbs2.ebaystatic.com. -197.208.29.96.in-addr.arpa. -videosonline.petardas.com. -61.168.255.201.in-addr.arpa. -a.root-servers.net. -accounts.google.com. -creative.ak.fbcdn.net. -fpp.pt. -www.google.com. -pagead2.googlesyndication.com. -a6.sphotos.ak.fbcdn.net. -www.hotrecruit.com. -xtaz.ru. -bs.net. -142.78.99.74.in-addr.arpa. -gci.net.s6a2.psmtp.com. -d1.openx.org. -fbcdn-sphotos-a.akamaihd.net. -unifi. -cdn1.thumbnails.4tube.com.rncdn1.com. -107.92.182.189.in-addr.arpa. -i2.ytimg.com. -sierraelpaso.com.s7b2.psmtp.com. -furniturefromhome.com. -115.120.52.186.in-addr.arpa. -developers.facebook.com. -ofertas-empleos.vivastreet.com.mx. -cdn.contentspread.net. -mytime.com.s7a1.psmtp.com. -tr.adinterax.com. -alcatraz.wikia.com. -news.google.com. -203.223.177.190.in-addr.arpa. -www.facebook.com. -www.pretenders.org. -ajax.googleapis.com. -newsrss.bbc.co.uk. -udc.msn.com. -www.loreal-paris.sk. -fr.wikipedia.org. -pandehigo.net. -bit.ly. -s-external.ak.fbcdn.net. -linkhelp.clients.google.com. -ssl.gstatic.com. -cs10668.vk.com. -www.printglobe.com. -www.aerith.net. -co108w.col108.mail.live.com. -s-static.ak.fbcdn.net. -stellar.mit.edu. -a.root-servers.net. -local-bay.contacts.msn.com.nsatc.net. -msc.wlxrs.com. -csi.gstatic.com. -145.8.203.190.in-addr.arpa. -a1408.w43.akamai.net. -219.107.5.187.in-addr.arpa. -boulder.craigslist.org. -a4.sphotos.ak.fbcdn.net. -jlawit.com. -ttk.dp.ua. -vp.sip.messenger.msn.com. -db._dns-sd._udp.home. -39.228.35.189.in-addr.arpa. -profile.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -ranero.ru. -main.dl.wu.akadns.net. -149.251.50.85.in-addr.arpa. -www.facebook.com. -a.root-servers.net. -codegeasstheanime.weebly.com. -www.mdf.nl. -4.bp.blogspot.com. -a.root-servers.net. -cdn8.evendor.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -46.223.183.189.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -ubuntugeek.uk.intellitxt.com. -www.google.com. -i1.ytimg.com. -x80.xanga.com. -mspmx2.redzonetech.net. -trafficpython.com. -138.115.207.186.in-addr.arpa. -225.15.220.189.in-addr.arpa. -modulos.grupojoly.com. -sqis.net. -api.facebook.com. -49.147.220.66.in-addr.arpa. -www.facebook.com. -1.2.168.192.in-addr.arpa. -162.91.141.201.in-addr.arpa. -206.56.59.186.in-addr.arpa. -62.0.172.190.in-addr.arpa. -gandco.net. -www.securecheckout.billmelater.com. -www.facebook.com. -www.youtube.com. -na-baltike.com. -pointdistribution.com. -rtv4xy81o.w00b6y0f. -a3.sphotos.ak.fbcdn.net. -freemail.baden.ch. -124.213.34.186.in-addr.arpa. -lh3.googleusercontent.com. -www.eppingclub.com. -safebrowsing-cache.google.com. -masonresearch.gmu.edu. -www.srpnet.com. -blst.msn.com. -www.facebook.com. -164.10.222.189.in-addr.arpa. -9x2sgie28.w78j4w9o. -185.36.78.85.in-addr.arpa. -aguasdecauri.blogspot.com. -e3167.c.akamaiedge.net. -a8.sphotos.ak.fbcdn.net. -a1.da1.akamai.net. -www.pressenza.com. -profile.ak.fbcdn.net. -unipamplona.edu.co. -www.apple.com. -dandreamz.wordpress.com. -mail.jetter.com. -rcboat.ru. -204.136.232.92.in-addr.arpa. -37.77.165.189.in-addr.arpa. -a.root-servers.net. -bs.serving-sys.com. -profile.ak.fbcdn.net. -p0b.ru. -craigrichard.com. -client-log.amazon.com. -westcoastwine.net. -d.monetate.net. -news.ycombinator.com. -photos-c.ak.fbcdn.net. -icons.iconarchive.com. -jimmyskillerprawns.za.net. -40.209.162.217.in-addr.arpa. -127.65.201.187.in-addr.arpa. -a.root-servers.net. -forum1.netgear.com. -www.juegosus.com. -www.pixazza.com. -fo5kjln:7.h75n1q8y. -pod.xxxmatch.com. -www.facebook.com. -148.42.26.190.in-addr.arpa. -blog.gkelite.com. -googlehosted.l.googleusercontent.com. -www.tirada-tarot-gratis.eu. -images.habbo.com. -hello.home. -mundochess.blogspot.com. -www.bdhs.org. -101.205.237.189.in-addr.arpa. -a.root-servers.net. -fw2a.synexagroup.com. -profile.ak.fbcdn.net. -40.178.27.190.in-addr.arpa. -www.google-analytics.com. -7.5.22.187.in-addr.arpa. -bwnews.us. -136.219.192.173.in-addr.arpa. -a.root-servers.net. -thelookingspoon.com. -93.81.167.190.in-addr.arpa. -apis.google.com. -a8.sphotos.ak.fbcdn.net. -mx.bgeeng.com. -api.twitter.com. -231.68.17.95.in-addr.arpa. -elespejosabio.blogspot.com. -a1.sphotos.ak.fbcdn.net. -226.121.172.76.in-addr.arpa. -youtu.be. -www.wctravel.com. -www.tlucretius.net. -43.116.82.70.in-addr.arpa. -time.chttl.com.tw. -a.root-servers.net. -feeds.vocegiallorossa.it. -u2:ny8de8.81ck. -administradorfinanciero.wordpress.com. -mail.ic-sol.net. -securepubads.g.doubleclick.net. -gap.mx.contego.net. -tc19.easythumbhost.com. -photos-g.ak.fbcdn.net. -86.17.162.189.in-addr.arpa. -mail.ibahn.com. -www.google.com. -www.spicymother.com. -siyavooshan.blogfa.com. -am.renesas.com. -i4.ytimg.com. -cdn.api.twitter.com. -_ldap._tcp. -30.25.31.88.in-addr.arpa. -cdn.gotraffic.net. -creative.ak.fbcdn.net. -shinebythree.com. -interjet.com.mx. -www-google-analytics.l.google.com. -179.208.255.206.in-addr.arpa. -apps.skype.com. -a.root-servers.net. -a.1.s50.avatar.zdn.vn. -a4.sphotos.ak.fbcdn.net. -197.205.0.210.in-addr.arpa. -googleads.g.doubleclick.net. -www.news-leader.com. -pimpdrop.com. -es-es.facebook.com. -768ujb:6r.12tq. -www.shop-summerland.com. -www.wired.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -rnd4.myphotos.cc. -ptcscrutiny.com. -116.192.210.201.in-addr.arpa. -a.root-servers.net. -digiphoto.thepodcastnetwork.com. -www.kt2syggf436dtag641.com. -a.root-servers.net. -mail.arkay.com. -img101.herosh.com. -clients1.google.com. -. -53.21.0.192.in-addr.arpa. -rinconakibareload.blogspot.com. -a7.sphotos.ak.fbcdn.net. -heartbeat.dm.origin.com. -www.mozilla.com. -eternallycool.net. -bda.cwplc.com.s200a2.psmtp.com. -matrix-ibs.com.inbound10.mxlogicmx.net. -65.207.63.78.in-addr.arpa. -bdieguez-photography.blogspot.com. -www.marblas.es. -benpelzel.com. -_692_78_7. -a4.sphotos.ak.fbcdn.net. -search.iminent.com. -apps.facebook.com. -www.diccionariodesinonimos.es. -a1.sphotos.ak.fbcdn.net. -sp.cwfservice.net. -www.google.com. -safebrowsing-cache.google.com. -201.137.194.187.in-addr.arpa. -andrea453301.spaces.live.com. -. -buenos-aires.nexolocal.com.ar. -76.71.140.201.in-addr.arpa. -sedqwickcms.com. -www.facebook.com. -a7.sphotos.ak.fbcdn.net. -google.com. -mail.google.com. -a.root-servers.net. -photos-d.ak.fbcdn.net. -pc7. -www.tifflove.com. -centellazul68.blogspot.com. -softonic-toolbar.softonic.com. -store.yahoo.net. -dnl-01.geo.kaspersky.com. -downings.com.au. -metalbastard.blogspot.com. -ic.tynt.com. -189.125.38.190.in-addr.arpa. -www.scribd.com. -74.42.58.186.in-addr.arpa. -53.73.136.14.in-addr.arpa. -168.51.168.192.in-addr.arpa. -40.171.112.187.in-addr.arpa. -hbfel6pyi.q03j9f8u. -www.facebook.com. -atg-ispf-ex1.altuwairqi.com.sa. -apps.facebook.com. -cafe-buffet.ru. -ntl.westcall.ru. -t2.gstatic.com. -www.allsaints.com. -reynoldspkg.com. -ssl.gstatic.com. -express-inventory.softonic.com. -_579_79_0. -hash.orbitdownloader.com. -251.65.36.187.in-addr.arpa. -googleads.g.doubleclick.net. -193.135.246.201.in-addr.arpa. -7.36.215.189.in-addr.arpa. -americas.orangeadvertisingnetwork.com. -sp.cwfservice.net. -frajumar.com. -33.27.233.96.in-addr.arpa. -73.155.243.201.in-addr.arpa. -www.facebook.com. -www.google.com. -22.190.169.89.in-addr.arpa. -idcs.interclick.com. -themeservice.ebuddy.com. -avow.org. -a.root-servers.net. -artistxite.com. -safebrowsing-cache.google.com. -et4.xhamster.com. -hotmail.com. -110.135.157.189.in-addr.arpa. -sippican.com. -clients2.google.com. -wadakk.com. -hi-in.facebook.com. -platform.twitter.com. -a4.sphotos.ak.fbcdn.net. -51.41.145.189.in-addr.arpa. -152.255.103.85.in-addr.arpa. -17.104.232.190.in-addr.arpa. -it-it.facebook.com. -photos-g.ak.fbcdn.net. -a.root-servers.net. -pixel.facebook.com. -accounts.google.com. -a8.sphotos.ak.fbcdn.net. -www.childcarelounge.com. -ads.adxpansion.com. -eventsforum.net. -17.236.178.186.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -m.facebook.com. -zimplestuff.com. -amimichi.blogspot.com. -a2.twimg.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -126.95.112.99.in-addr.arpa. -fayans.ru. -www.facebook.com. -it-it.facebook.com. -fbcdn-profile-a.akamaihd.net. -3.99.218.186.in-addr.arpa. -ajsfinefoods.com. -comeonaussie.com. -mail.friendimobile.com. -newwest.net. -mail.mc2mm.com. -www.ebook.honglinhsoft.com. -assets.mcity.digitalchocolate.com. -mozilla.cdn.leaseweb.com. -webres1.pand.ctmail.com. -cdn1.widdit.com. -20.29.158.200.in-addr.arpa. -googleads.g.doubleclick.net. -support.sherweb.com. -es-la.facebook.com. -cis.rv.ua. -www.msftncsi.com. -0-299.channel.facebook.com. -crunchpost.com. -_130_54_9. -adam.com.au. -189.206.160.201.in-addr.arpa. -donbass.ua. -119.30.39.70.in-addr.arpa. -a.root-servers.net. -photos-b.ak.fbcdn.net. -a.root-servers.net. -aloha.viber.com. -www.viptranny.com. -photos-d.ak.fbcdn.net. -ipm.bitdefender.com. -customer.accord5.com. -185.59.42.62.in-addr.arpa. -laformarock.com.ar. -www.usatoday.com. -www.textsrv.com. -photos-f.ak.fbcdn.net. -ori.com. -2.104.31.151.in-addr.arpa. -a.root-servers.net. -e906.g.akamaiedge.net. -a8.sphotos.ak.fbcdn.net. -stun.client.akadns.net. -a8.sphotos.ak.fbcdn.net. -safebrowsing.clients.google.com. -ee.port.ac.uk. -cookex.amp.yahoo.com. -espanol.bestbuy.com. -mail.zaprib.ru. -a2.sphotos.ak.fbcdn.net. -www.activistasporelclima.com. -mail.tameerbank.com. -mail.unomail.dk. -glu.com. -photos-g.ak.fbcdn.net. -public.cwgdogp.com.au. -www.almacendesentimientos.com. -www.google.com. -safebrowsing.clients.google.com. -thestaticfanatic.blogspot.com. -www.microsoft.com. -122.166.183.189.in-addr.arpa. -www.youtube.com. -clients2.google.com. -234.142.125.186.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -220.178.202.190.in-addr.arpa. -1.158.9.186.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -bbs.sx128.com. -clock.sjc.he.net. -safebrowsing.clients.google.com. -www.gloryholedatabase.com. -_969_33_5. -a1.sphotos.ak.fbcdn.net. -chromejs.s3.amazonaws.com. -profile.ak.fbcdn.net. -oscararizaleon.lacoctelera.net. -mail.marshallbros.com. -newsrss.bbc.co.uk. -rblns49.mailshell.net. -creative.ak.fbcdn.net. -1stclassmortgagenv.com. -www.youtube. -ye02.ru. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -yahoo.com. -a.root-servers.net. -blu131w.mail.live.com.akadns.net. -sisviso.plades.org.pe. -kh.google.com. -smtp-out2.electric.net. -fbcdn-profile-a.akamaihd.net. -www.todoesoterico.com. -assine.uol.com.br. -ocsp.digicert.com. -cgvrl1bit.60gz. -mail.rock108.com. -ct-miramar.com. -es.tangeroutlet.com. -www.motorcycletouringpro.com. -secure.wlxrs.com. -r._dns-sd._udp.lan. -photos-g.ak.fbcdn.net. -www.jscount.com. -safebrowsing-cache.google.com. -platform.twitter.com. -accounts.youtube.com. -clients1.google.com. -atlasip.com. -se.itunes.apple.com. -nefertarisims3.webcindario.com. -www.cervantesvirtual.com. -ox-op.com. -keelerbrass.com. -mail.marrs-sevier.com. -airewaves.com. -www.facebook.com. -cigarfar.dk. -googel.com. -s-static.ak.fbcdn.net. -mx.yahoo.com. -www.visitraleigh.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -googleads.g.doubleclick.net. -landrys.com. -origin.games.yahoo.net. -wdg8bg1w2.l63q0n1r. -in.yahoo.com. -www.searchqu.com. -www.facebook.com. -mail2.tao.aoins.com. -. -map.czechtrade.net. -www.facebook.com. -mobillacura.wordpress.com. -alternativelnok.blog.hu. -platform.twitter.com. -news-w0rlds.ru. -photos-g.ak.fbcdn.net. -www.soktelefonu.com. -0-jj-w.channel.facebook.com. -connect.facebook.net. -geekmail.de. -a7.sphotos.ak.fbcdn.net. -sn3.mailshell.net. -www.ciberdvd.com. -cdnstatic.visualizeus.com. -b-0.19-22090008.2020580.1518.19d4.3ea1.410.0.w63gpf5wia6jnshhq6na3bjhnj.avqs.mcafee.com. -fbcdn-photos-a.akamaihd.net. -mx.astrology.yahoo.com. -fluxblog.org. -1.130.26.174.in-addr.arpa. -203.36.117.212.in-addr.arpa. -r._dns-sd._udp.lan. -150.20.141.201.in-addr.arpa. -129.100.10.94.in-addr.arpa. -mobth566.photobucket.com. -40.153.155.85.in-addr.arpa. -ib.adnxs.com. -hosezup.net76.net. -pirarucu.galeon.com. -dns.msftncsi.com. -www.homemademoviez.com. -a3.sphotos.ak.fbcdn.net. -www.jiayuan.com. -196.111.133.190.in-addr.arpa. -42.2.97.186.in-addr.arpa. -97.68.230.189.in-addr.arpa. -rcp.eu.blackberry.com. -v7.nonxt7.c.youtube.com. -ffupdate.engine.conduit-services.com. -plusone.com. -143.243.19.50.in-addr.arpa. -friends.totallynsfw.com. -www.facebook.com. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.aboutamanda.com. -a3.sphotos.ak.fbcdn.net. -mail.bmxx.ru. -jo:ksvpu5.05eq. -eye.wplus.net. -www8.gamatar.org. -a.root-servers.net. -107.170.39.190.in-addr.arpa. -rumboacanada.blogspot.com. -ic.tynt.com. -guru.avg.com. -platform.twitter.com. -mntr.babcdn.com. -adele.wikia.com. -hyrogifs.com. -a7.sphotos.ak.fbcdn.net. -www.hallofplay.com. -z021.fma.fb.me. -dns.msftncsi.com. -a6.sphotos.ak.fbcdn.net. -www.elationlighting.eu. -img512.imageshack.us. -98.73.235.189.in-addr.arpa. -mx0.safarisolutions.xrbs.com. -zbar2.zynga.com. -s-static.ak.fbcdn.net. -safebrowsing.cache.l.google.com. -www.apple.com. -worldwidereferrals.pro. -26.67.139.189.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -profile.ak.fbcdn.net. -dns.msftncsi.com. -www.unique-wedding-rings.com. -tip.tv.sohu.com. -tudoparafotografia.blogspot.com. -informsystems.ru. -argo.sourceforge.net. -www.tharmac.de. -ib.adnxs.com. -in.pod01.imht.udc2.mx.trendmicro.com. -26.185.104.187.in-addr.arpa. -profile.ak.fbcdn.net. -197.235.225.212.in-addr.arpa. -190.148.114.190.in-addr.arpa. -a.root-servers.net. -storagenerve.com. -safebrowsing-cache.google.com. -www.apple.com. -news.google.com.mx. -exp01.eset.com. -dltdirect.com. -landonjacob.com. -gdata.youtube.com. -www.humorsearch.com. -a.root-servers.net. -wellspeyton.com. -i.ytimg.com. -dns.msftncsi.com. -developers.facebook.com. -dns.msftncsi.com. -relay.bodaclick.com. -153.104.212.186.in-addr.arpa. -www.nycewheels.com. -iowaelecom.net. -profile.ak.fbcdn.net. -ee.duke.edu. -baymsg1020130.by2.gateway.edge.messenger.live.com. -mt2furia.zapto.org. -www.alec.co.uk. -doportugalprofundo.blogspot.com. -uk-mkivs.net. -68.29.199.87.in-addr.arpa. -13.165.217.217.in-addr.arpa. -siaws.fotolog.com. -l.yimg.com. -pixel.rubiconproject.com. -i845.photobucket.com. -hansens.com.s7b1.psmtp.com. -photos-a.ak.fbcdn.net. -www.rhythmsdelmundo.com. -itunes.apple.com. -mail.google.com. -lifestyle.msn.com. -go.microsoft.com. -asktoolbar.weather.com. -wolfrunstudio.com. -mccabepromo.com. -www.youtube.com. -neonco.spb.ru. -26.239.138.200.in-addr.arpa. -mayads.com.mail6.psmtp.com. -i1.ytimg.com. -quicktwist.wordpress.com. -t0.gstatic.com. -www.letusreason.org. -cnfg.montiera.com. -apps.facebook.com. -www.kantarworldpanel.com. -47.134.48.96.in-addr.arpa. -i0.tagstat.com. -www.ebonyvideosex.com. -187.59.91.186.in-addr.arpa. -156.233.35.187.in-addr.arpa. -m.facebook.com. -1.bp.blogspot.com. -eduardolakatos.wordpress.com. -edge.sharethis.com. -uddjinz9k.73hr. -rss.msnbc.msn.com. -www.a-trust.at. -tienda.tucanarias.com. -www.catchyoutube.com. -mail.avantek.net. -www.youtube.com. -www.ponyforums.com. -145.89.245.88.in-addr.arpa. -photos-e.ak.fbcdn.net. -titanium30-en.nfc.trendmicro.com. -ajax.googleapis.com. -12.59.16.206.in-addr.arpa. -251.125.145.99.in-addr.arpa. -xcite.com. -m.paypal.com. -wearebinary.com. -114.104.243.201.in-addr.arpa. -immanent-god-blues.blogspot.com. -www.google-analytics.com. -tcr.tynt.com. -inbound.pulseniagara.com.netsolmail.net. -236.45.149.83.in-addr.arpa. -220.162.34.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -googleapis.l.google.com. -profile.ak.fbcdn.net. -_127_39_5. -99.192.8.95.in-addr.arpa. -mail. -rs730l35.rapidshare.com. -20minutos.feedsportal.com. -isearch.babylon.com. -www.ephenic.com. -jahudka.zoner.com. -www.facebook.com. -www.uncut.at. -locat.it. -76.108.179.78.in-addr.arpa. -www.tnpesu.org. -crl.globalsign.net. -pagead2.googlesyndication.com. -_090_31_5. -partner.googleadservices.com. -www.moonbingo.net. -www.google.com. -gfx4.hotmail.com. -a1.sphotos.ak.fbcdn.net. -latareadeldormilon.blogspot.com. -mfs.portvancouver.com. -www.articuloz.com. -mahjong-escape.programas-gratis.net. -www.ashrae.org. -photos-a.ak.fbcdn.net. -clanbtl.ru. -vucjumfrv.com. -cultretro.com. -reggaetonlivetv.metroblog.com. -www.ciberia.es. -sports-memorabilia.shop.ebay.co.uk. -254.47.153.189.in-addr.arpa. -hlfraas.com. -g.ceipmsn.com. -s0.2mdn.net. -external.ak.fbcdn.net. -adspro.ru. -googleads.g.doubleclick.net. -www.hemorrhoids.net. -82.134.14.187.in-addr.arpa. -lt1o:3zvk.q41g8n5t. -localhost. -smtp1.vwtus.com. -photos-b.ak.fbcdn.net. -158.17.20.187.in-addr.arpa. -www.annonsera.se. -a.root-servers.net. -7.220.89.186.in-addr.arpa. -210.194.141.201.in-addr.arpa. -trollsmyth.blogspot.com. -www.jpclatam.org. -www.bandeapart.fm. -93.69.231.190.in-addr.arpa. -espanol.answers.yahoo.com. -a1003.w41.akamai.net. -scsa.msg.yahoo.com. -loading2.widdit.com. -www.goojue.com. -www.mojo.co.uk. -c7.zedo.com. -www.kingsofnewyork.net. -roynat.com. -nerve.myyearbook.com. -caughtbytheriver.net. -jooble-cl.com. -102.64.139.187.in-addr.arpa. -facebook.com. -mail.alkhalidgroup.com. -statik.nanopress.it. -mms501.whatsapp.net. -www.masterhack.20m.com. -s3.memberclicks.com. -241.94.191.186.in-addr.arpa. -166.134.44.92.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -armaaaniihd.blogspot.com. -luxury-ideas.net. -www.facebook.com. -weather.services.conduit.com. -jolis.worldbankimflib.org. -www.capeplc.com. -sp.cwfservice.net. -download342.avast.com. -234.7.91.76.in-addr.arpa. -facer-ins.com. -kenametal.com. -event-horizons.com. -www.google.com. -157.131.75.70.in-addr.arpa. -timer.od.ua. -tms30.icrc.trendmicro.com. -www.best-iphone-deals.co. -norecipes.stumbleupon.com. -masterconn11.qq.com. -9.230.147.190.in-addr.arpa. -105.63.67.77.in-addr.arpa. -46.185.176.190.in-addr.arpa. -. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.windowslivemessenger.com. -enpointetechnologies.com. -myspace.com. -b-0.19-a3097008.40080.1518.19d3.3ea1.410.0.msu8df338qwi2hlvilc94zsp65.avqs.mcafee.com. -old.houstontexans.com. -t5.tagstat.com. -to-god-mcsong.blogspot.com. -a8.sphotos.ak.fbcdn.net. -www.adobe.com. -www.redestelecom.es. -www.tusartistas.com. -losmejoresjuegosymasjuegos.blogspot.com. -231.100.208.190.in-addr.arpa. -www.blogus.cl. -bs.serving-sys.com. -users.conduit.com. -cocinandoconkari.blogspot.com. -francistuttle.com.inbound10.mxlogic.net. -a.root-servers.net. -www.undp.uz. -admcnt.tlt.ru. -googleads.g.doubleclick.net. -a.root-servers.net. -accounts.google.com. -b-0.19-2109b008.11081.1518.19d4.2f4a.410.0.5dathp7t43621rr8uue53752ai.avqs.mcafee.com. -newwavecomm.net. -activmedia.com.inbound15.mxlogic.net. -msgr.updates.yahoo.com. -209.231.167.209.list.dsbl.org. -photos-d.ak.fbcdn.net. -www.videowish.com. -catalysteval.com. -a1515.phobos.apple.com. -www.ewg.org. -babybook.91.com. -www.leecooperjeans.com. -a.root-servers.net. -hpw.com.s5a1.psmtp.com. -itunes.apple.com. -getmail.no. -10.mal.de.dos.free.fr. -37.12.137.187.in-addr.arpa. -www.knightrideronline.com. -google.com. -114.38.173.190.in-addr.arpa. -badoo.com. -mgmt.beta.toolbar.msn.com. -yahoo.co.in. -mt0.google.com. -1.bp.blogspot.com. -steviadolce.com.py. -isatap.home. -a8.sphotos.ak.fbcdn.net. -profile.ak.fbcdn.net. -photos-c.ak.fbcdn.net. -loading4.widdit.com. -googleads.g.doubleclick.net. -www.despegar.com.ar. -bdrco.com. -www.mosquelife.com. -www.hotgirlstoys.com. -waterwatcher.net. -a4.sphotos.ak.fbcdn.net. -aixpanish.com. -cf.kampyle.com. -cache.adm.cnzz.net. -119.217.119.174.in-addr.arpa. -productos.weboperador.com.ar. -su.pctools.com. -8.150.57.187.in-addr.arpa. -16-courier.push.apple.com. -mail.sfsustudentcenter.com. -titanium30-en.url.trendmicro.com. -stgeorges.org.nz. -www.raunchygfs.com. -a591.da2.akamai.net. -_325_10_8. -aasp.net. -external.ak.fbcdn.net. -profile.ak.fbcdn.net. -cust5812-1.in.mailcontrol.com. -sexymalecelebrities.blogspot.com. -e5237.g.akamaiedge.net. -i4.ytimg.com. -www.adobe.com. -fengnet.com. -a.root-servers.net. -a.root-servers.net. -interactive.rogers.com. -0.244.115.186.in-addr.arpa. -33.42.4.181.in-addr.arpa. -www.maplegrovebarefootguy.com. -pcdirectbiz.com. -s0.2mdn.net. -152.237.253.190.in-addr.arpa. -guido.kcumb.edu. -www.cfnmguide.com. -psb.state.in.us. -hinsay.com. -csi.gstatic.com. -www.makecitation.com. -www.google.com. -instagram.com. -mscrl.microsoft.com. -moycomputer.ru. -33.54.78.201.in-addr.arpa. -cjgarland.com. -www.links4vids.com. -safebrowsing.clients.google.com. -m1.mx.km.ru. -teredo.ipv6.microsoft.com. -ksn2-12.kaspersky-labs.com. -smtp.live.com. -a5.sphotos.ak.fbcdn.net. -107.43.150.46.in-addr.arpa. -143.166.125.86.in-addr.arpa. -rosems.culligan.com. -cdn.fastclick.net. -sp.cwfservice.net. -hitachisoftware.ru. -mx.youtube.com. -gbc.net. -a749.g.akamai.net. -bmsismtp03.bmsi.a-star.edu.sg. -s1-onenote.vo.msecnd.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -api.facebook.com. -update.utorrent.com. -switchboard.real.com. -www.applifier.com. -arriva.ch. -www.vallarta.com.mx. -redstarenergy.net. -fastspeedtest.com. -93.39.122.190.in-addr.arpa. -samet-russia.ru. -code.google.com. -106.176.66.201.in-addr.arpa. -www.resourcesforlife.com. -sp.cwfservice.net. -netaddess.org. -robgijsberts.com. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -47.1.168.192.in-addr.arpa. -clients1.google.com. -graph.facebook.com. -7sov1arhz.13tf. -fr-fr.facebook.com. -245.102.55.157.in-addr.arpa. -www.arthurgarrosmusic.com. -www.envioscristianos.com. -56.236.201.190.in-addr.arpa. -eteria.net. -free3dstuff.net. -94.58.21.62.in-addr.arpa. -www.cellappsite.com. -s.ytimg.com. -evrokam.ru. -ladywankenobi.tumblr.com. -dtboot.orbitdownloader.com. -146.57.50.190.in-addr.arpa. -153.178.153.187.in-addr.arpa. -gazsvyaz.ru. -dns.msftncsi.com. -robertdice.com. -www.facebook.com. -aresbykes.com. -45.52.246.24.in-addr.arpa. -socpixel.bidsystem.com. -orcart.facebook.com. -bl127w.blu127.mail.live.com. -www.youtube.com. -google.com. -5ced.com. -sl.iciba.com. -us.fluke.com. -s-static.ak.facebook.com. -www.mlr360.com. -www.gstatic.com. -ingrealestate.co.uk. -a.root-servers.net. -apps.facebook.com. -elithetrader.com. -ifpexpo.com. -a2.sphotos.ak.fbcdn.net. -www.quienignora.com. -inbound.fsro.net.netsolmail.net. -www.ohso.co. -sn2files.storage.msn.com. -a761.phobos.apple.com. -cnt.tuberwyn.com. -www.cpdftraining.org. -jers2.info. -gfx3.hotmail.com. -c.prodigy.msn.com. -www.facebook.com. -a.root-servers.net. -237.23.95.59.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -rd.rlcdn.com. -a3.sphotos.ak.fbcdn.net. -141.159.222.201.in-addr.arpa. -epsovirtual.umh.es. -thenewgeneration.foroactivo.com. -mail.softbal.com. -mci.savetrees.com. -s0.2mdn.net. -teredo.ipv6.microsoft.com. -ayudaparamiweb.com. -218.22.105.190.in-addr.arpa. -ad.yieldmanager.com. -a.ads2.msads.net. -134.90.88.186.in-addr.arpa. -townofluray.com. -thesaturnalia.com. -213.241.143.187.in-addr.arpa. -www.google.com. -www.mccordweb.com. -1.pool.ntp.org. -pmx5.unina.it. -tap2-cdn.rubiconproject.com. -zh-cn.facebook.com. -www.oberholtzer-creative.com. -207.205.71.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -blog.taguin.com. -a2.sphotos.ak.fbcdn.net. -google.com. -rospres.com. -www.adventuresinexpatland.com. -221.101.113.189.in-addr.arpa. -enyce.com. -a2.sphotos.ak.fbcdn.net. -external.ak.fbcdn.net. -98.4.205.190.in-addr.arpa. -www9.effectivemeasure.net. -pandorafb2.dk. -lyonsautobody.com. -157.4.55.67.in-addr.arpa. -nr.myhost.ru. -www.microsofttranslator.com. -rizalmanibrahim.blogspot.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -google.com. -lh6.ggpht.com. -news.google.com.mx. -www.coalitionofresistance.org.uk. -206.54.115.186.in-addr.arpa. -171.112.47.189.in-addr.arpa. -a3.mzstatic.com. -mtmi.net. -32.125.17.31.in-addr.arpa. -19.8.17.177.in-addr.arpa. -s-external.ak.fbcdn.net. -22.210.13.189.in-addr.arpa. -evolutionworld.ru. -a3.sphotos.ak.fbcdn.net. -m.ak.fbcdn.net. -pagead2.googlesyndication.com. -actorguide.org. -photos-d.ak.fbcdn.net. -200.126.247.190.in-addr.arpa. -i4.ytimg.com. -www.marsrecruitment.com.au. -pixel.facebook.com. -htcmovilperu.com. -apps.facebook.com. -www.mindmapper.com. -friendscot.fsnet.co.uk. -college.harvard.edu. -mail.google.com. -sahil-tech.blogspot.com. -local-sn.contacts.msn.com. -star.facebook.com. -www.facebook.com. -machens.com. -www.google.com. -content.yieldmanager.edgesuite.net. -wxdata.weather.com. -waykiria.hacerforos.com. -bl159w.blu159.mail.live.com. -247.113.103.2.in-addr.arpa. -ns.sympatico.ca. -wuntvor.pillar.com. -www.eprensa.info. -www.google.com. -sfr.fr. -mailproxy.durmusoglu.de. -laurierelectric.ca. -ns3.afroasia.ru. -ganarporinternet.es. -124.110.193.200.in-addr.arpa. -67.165.48.190.in-addr.arpa. -static.ak.fbcdn.net. -8.62.222.189.in-addr.arpa. -98.119.59.186.in-addr.arpa. -photos-f.ak.fbcdn.net. -140.96.84.188.in-addr.arpa. -18-courier.push.apple.com. -rxhub.com. -dreamers1.com. -www.juegosdcocina.com. -images.redflagdeals.com. -38.147.220.66.in-addr.arpa. -mx10.comparex-group.com. -photos-d.ak.fbcdn.net. -cs6083.vkontakte.ru. -www.australia-alternativa.com. -a3.sphotos.ak.fbcdn.net. -k-swiss.com.s10b2.psmtp.com. -apis.google.com. -toorgle.com. -r.mzstatic.com. -www.facebook.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -b._dns-sd._udp.0.55.211.10.in-addr.arpa. -mail.nisursystems.com. -s-static.ak.facebook.com. -mail2.tcu.edu.tw. -108.214.176.190.in-addr.arpa. -translate.google.com. -finance.google.com. -search.twitter.com. -img4-fotki.yandex.net. -www.centcom.mil. -129.205.53.70.in-addr.arpa. -113.134.67.108.in-addr.arpa. -mail.kwrtools.com. -0-jf-w.channel.facebook.com. -ircai.files.wordpress.com. -_ldap._tcp. -mail.lebelier.com. -videopeeg.wordpress.com. -mailbox.riga.lv. -a4.sphotos.ak.fbcdn.net. -serv.vip.qiyi.com. -duscholux.de. -x-developer.ru. -13.203.221.190.in-addr.arpa. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -external.ak.fbcdn.net. -www.iceage3.es. -secure.wlxrs.com. -. -dns.msftncsi.com. -iolfree.net. -www.marcelamosca.com.ar. -www.fuedin.org. -ksn4.kaspersky-labs.com. -15.236.245.189.in-addr.arpa. -www.facebook.com. -cmap.dc.ace.advertising.com. -. -cm.g.doubleclick.net. -aleluya.com. -valleysystem.com. -s0.2mdn.net. -cnavideo.cna.com.tw. -api.facebook.com. -en.wikipedia.org. -klty.com.s7a1.psmtp.com. -horoscopo.msn.es. -angusbarn.com.s7a1.psmtp.com. -elegantwooddesign.com. -29.126.100.190.in-addr.arpa. -estheticcore.com. -66.13.248.190.in-addr.arpa. -208.33.89.187.in-addr.arpa. -apple.imap.mail.yahoo.com. -27-courier.push.apple.com. -a.root-servers.net. -3l2ktck58.w08e9t2w. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -ecn.t2.tiles.virtualearth.net. -pt-br.facebook.com. -a.root-servers.net. -196.45.168.189.in-addr.arpa. -202.124.149.186.in-addr.arpa. -ny01sec007.mhc.mhc. -2.6.3.188.in-addr.arpa. -marv.mediatti.net. -ib.adnxs.com. -. -www.kyu-jong.com. -www.elizabethperry.com. -www.chinesedragon.org. -www.coet.es. -sl.srcs.k12.ca.us. -usctap3132.amer.schp.com. -sudddenlink.net. -profile.ak.fbcdn.net. -www.google.com. -166.10.168.192.in-addr.arpa. -appleghost.deviantart.com. -platform.twitter.com. -external.clearchannel.com. -185.176.88.186.in-addr.arpa. -three-lakes.org. -olivus.com. -ad.yieldmanager.com. -sonyla.112.2o7.net. -static.ak.fbcdn.net. -a.c-0.19-270f1000.c8b0091.1518.19b2.410a.400.9d.digvq3kjc8aazhra2vgn3zbigb.avqs.mcafee.com. -ptc68.com. -abycom.com. -almojilgroup.com. -people.iola.dk. -photos6.pop6.com. -205.212.142.190.in-addr.arpa. -216.135.32.114.in-addr.arpa. -e3821.c.akamaiedge.net. -nogu.net. -24.236.184.187.in-addr.arpa. -99.152.104.187.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -ar.msn.com. -fuelly.com. -18.163.71.109.in-addr.arpa. -photos-b.ak.fbcdn.net. -www.extremetube.com. -m9exek:8f.j81a0l0i. -intfrog.com. -payrollnetwork.com.pri-mx.na0100.smtproutes.com. -pop.linkservice.cl. -a2.sphotos.ak.fbcdn.net. -graph.facebook.com. -251.249.179.118.in-addr.arpa. -api.twitter.com. -platform.ak.fbcdn.net. -www.facebook.com. -24.85.88.186.in-addr.arpa. -hanusch.de. -udc.msn.com. -yahoo.com. -download.windowsupdate.com. -s-static.ak.fbcdn.net. -bsf-01.sonnit.dk. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -cdn.cpmstar.com. -mtalk.google.com. -136.16.118.200.in-addr.arpa. -injesus.com. -www.facebook.com. -rcp.eu.blackberry.com. -www.acousticmagazine.com. -philwest.net. -118.24.184.201.in-addr.arpa. -t2.gstatic.com. -148.147.82.200.in-addr.arpa. -www.google.com.mx. -www.usabledomainname.com. -d2058628.instant.xoom.it. -profile.ak.fbcdn.net. -82.137.164.187.in-addr.arpa. -photos-e.ak.fbcdn.net. -fbcdn-photos-a.akamaihd.net. -secure.gravatar.com. -sp.cwfservice.net. -drm.mail.universal-music-services.de. -trebaruna-lacocinademaria.blogspot.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -cn1.redswoosh.akadns.net. -a1108.da1.akamai.net. -www.estadionacional.com.pa. -a7.sphotos.ak.fbcdn.net. -17.106.36.177.in-addr.arpa. -t2.gstatic.com. -platform.twitter.com. -ajax.googleapis.com. -www.justasiansluts.com. -g.msn.es. -6.99.19.46.in-addr.arpa. -mail.penza-gorod.ru. -200.108.145.89.in-addr.arpa. -support.google.com. -ns1.serverdns9.net.ru. -fxfeeds.mozilla.com. -www.google.com. -time.chttl.com.tw. -159.49.54.65.in-addr.arpa. -www.xatech.com. -167.101.179.190.in-addr.arpa. -api.facebook.com. -taoyt.ru. -a.root-servers.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -trans-p2p.pandora.tv. -photos-a.ak.fbcdn.net. -spiderbites.about.com. -www.adobe.com. -ylxfavku5.49bm. -dns.msftncsi.com. -alumni.academyart.edu. -fxfeeds.mozilla.com. -developers.facebook.com. -heritagebankofcommerce.com. -s-static.ak.facebook.com. -news.google.com.mx. -images04.olx.com. -videochat.sadismoxxx.com. -gfx4.hotmail.com. -a5.sphotos.ak.fbcdn.net. -fr-fr.facebook.com. -216.45.130.189.in-addr.arpa. -vtaig.com. -vywl6mish.28wx. -digini.com. -partners.poa.com. -mystery-case-files-huntsville.softonic.com. -mxproc.iseek.com.au. -weather.wdtinc.com. -ja-jp.facebook.com. -233.7.249.189.in-addr.arpa. -a.root-servers.net. -116.59.34.212.in-addr.arpa. -s430.photobucket.com. -apps.facebook.com. -russiansilver.ru. -dc265.4shared.com. -i2.ytimg.com. -wp.bingvision.ar.glbdns.microsoft.com. -utmtrk9.apn.ask.com. -72.32.214.121.in-addr.arpa. -static.ak.fbcdn.net. -187.123.172.186.in-addr.arpa. -developers.facebook.com. -vn61ka3ch.p80m8q3l. -spacm1.spac.spc.com. -virtuosasetalentosas.blogspot.com. -www.nissanplatina.com.mx. -30.193.140.175.in-addr.arpa. -s-static.ak.fbcdn.net. -ns2.sparknet.net. -assets.hi5.com. -a6.sphotos.ak.fbcdn.net. -s-static.ak.fbcdn.net. -www.google.com. -api.zynga.com. -yahoo.com. -blackfolkshair.net. -mail.shogun.kiev.ua. -a.root-servers.net. -magicard.ru. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -searchclient.live.net. -tx61opmwf.56lq. -34.42.143.94.in-addr.arpa. -158.77.123.189.in-addr.arpa. -msc.wlxrs.com. -e-items.com. -58.10.173.190.in-addr.arpa. -pixel.facebook.com. -evsecure-ocsp.verisign.com. -apis.google.com. -a.root-servers.net. -l.yimg.com. -i2.ytimg.com. -www.eluniversaldf.mx. -www.chinamextrading.com. -44.99.9.69.in-addr.arpa. -ocsp.thawte.com. -smtpmoko.sensoplan.com. -static.ak.fbcdn.net. -ars.oscar.aol.com. -titanium30-en.url.trendmicro.com. -submitworld.com. -fcu.edu. -g.microsoft.com. -a.root-servers.net. -banners3.spacash.com. -zip.rincondelvago.com. -a6.sphotos.ak.fbcdn.net. -195.113.232.190.in-addr.arpa. -fondos-de-crepusculo.softonic.com. -penn.museum. -it-it.facebook.com. -galleries2.adult-empire.com. -www.homeopatia-si.es. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.ucgs.com.ar. -www.michaelpage.co.za. -. -adfarm.mediaplex.com. -a.root-servers.net. -dsn10.d.skype.net. -adpgs9-bond0-3.jagex.com. -ns2.tmag.de. -bs.wikipedia.org. -photos-f.ak.fbcdn.net. -wyndhamworldwide.com.s8b2.psmtp.com. -external.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -cs5590.vkontakte.ru. -heybubbles.blogspot.com. -wellsforgo.com. -cs.wikipedia.org. -webcache.googleusercontent.com. -www.google.com. -xm5oznl1b.g66h4b1o. -s.youtube.com. -vefwefwl1.65qk. -i1.ytimg.com. -warmingglow.uproxx.netdna-cdn.com. -47.75.45.190.in-addr.arpa. -dbcs1.htc.com. -cdn.wibiya.com. -belltowercourtyard.com. -a-0.19-22097089.c030082.1518.19d3.3ea1.210.0.4bsgrcqmg7g9sjl34dbjsln36i.avqs.mcafee.com. -summergirlz.net. -evsecure-ocsp.verisign.com. -s.ytimg.com. -6-courier.push.apple.com. -a6.sphotos.ak.fbcdn.net. -external.ak.fbcdn.net. -a.root-servers.net. -www.grupoandroid.com. -a7.sphotos.ak.fbcdn.net. -bintobottle.com. -www.topcydiaapps.com. -teredo.ipv6.microsoft.com. -22.22.191.79.in-addr.arpa. -nevada.unr.edu. -spanish.dictionary.com. -xmsecu.com. -carrerasdemontana.wordpress.com. -www-cctld.l.google.com. -s0.2mdn.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -133.85.74.75.in-addr.arpa. -112.69.220.95.in-addr.arpa. -cvssystems.com. -www.esurance.com. -media2.myfoxny.com. -s1-powerpoint.vo.msecnd.net. -g4nij4dce.q65m4p1a. -xmest.ru. -157.20.139.190.in-addr.arpa. -253.111.146.189.in-addr.arpa. -img32.imageshack.us. -www.dustloop.com. -cdn.api.twitter.com. -city.kherson.ua. -api.twitter.com. -inentertainment.disqus.com. -xlab-0.ed.ac.uk. -dawgbusiness.blogspot.com. -miriamyeung.com.tw. -s-static.ak.fbcdn.net. -214.239.29.190.in-addr.arpa. -www.attractivemoms.com. -127.128.77.77.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -22.58.16.75.in-addr.arpa. -aljazeera.net. -94.219.111.189.in-addr.arpa. -vexcorp.com. -45.211.42.181.in-addr.arpa. -249.146.84.188.in-addr.arpa. -a995.mm1.akamai.net. -183.84.149.187.in-addr.arpa. -www.facebook.com. -ksn1-11-part2.kaspersky-labs.com. -nds2.nokia.com. -159.106.45.190.in-addr.arpa. -www.facebook.com. -170.160.85.209.in-addr.arpa. -static.ak.facebook.com. -100.146.220.66.in-addr.arpa. -download349.avast.com. -origin-sp.ask.com. -santander.cz. -zonavi.com. -apps.facebook.com. -16.0.0.10.in-addr.arpa. -www.coffeybuzz.com. -xbzsjhgf7.62dp. -fbcdn-photos-a.akamaihd.net. -profile.ak.fbcdn.net. -traductor.babylon.com. -paloaltoinc.com. -goku.brightcove.com. -33.152.78.186.in-addr.arpa. -by2msg4010509.gateway.messenger.live.com. -emka.info. -static.ak.fbcdn.net. -cvtrucking.com. -profile.ak.fbcdn.net. -www.youtube.com. -blog.myfuncards.com. -photos-c.ak.fbcdn.net. -118.97.1.181.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -lv.wikipedia.org. -b-0.19-2109d809.5c0.1518.19d4.3ea1.410.0.dspijfrbvp4pa13bjgir5n38l6.avqs.mcafee.com. -external.ak.fbcdn.net. -218.85.57.187.in-addr.arpa. -medicalblog.info. -175.102.16.186.in-addr.arpa. -styx.aw.net. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -shared.live.com. -141.212.222.201.in-addr.arpa. -i4.ytimg.com. -relink.net. -profile.ak.fbcdn.net. -netvogator.com. -mail2.agsworld.com. -sites.google.com. -93.224.191.79.in-addr.arpa. -dsiserver.daystarsills.com. -www.proargentina.gov.ar. -s3.amazonaws.com. -epix.xbox.com. -livelifehappy.com. -secure.shared.live.com. -rookiemag.com. -external.ak.fbcdn.net. -mail.livotour.ru. -th605.photobucket.com. -orcart.facebook.com. -demakova.net. -configuration.apple.com. -ldsqoigrp.l46s6s1m. -idi-online.com. -www.websitevaluebot.com. -a2.sphotos.ak.fbcdn.net. -yargroup.ru. -www.oynabitir.com. -photos-f.ak.fbcdn.net. -lordkat.com. -us.bc.yahoo.com. -www.gillbreathing.com. -a1.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -h.live.com. -photos-b.ak.fbcdn.net. -www.largodrive.com. -www.facebook.com. -audiblox.com. -183.24.92.186.in-addr.arpa. -a.root-servers.net. -medals.moshimonsters.com. -asktoolbar.weather.com. -profile.ak.fbcdn.net. -l.betrad.com. -mob.adwhirl.com. -205.241.74.190.in-addr.arpa. -i4.ytimg.com. -bannerassets.universalstudios.com. -g.microsoft.com. -26.250.158.189.in-addr.arpa. -6-courier.push.apple.com. -pool.ntp.org. -14pbzarqh.16xr. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -mx.nrgsys.it. -www.salsas.com.au. -latinworks.com. -www.socialgrowthtechnologies.com. -www.bing.com. -u20.eset.com. -www.ftdimarketplace.com. -luisaalexandramarques.blogspot.com. -www.17tahun.com. -www.majalisna.com. -83.58.250.201.in-addr.arpa. -multi76.thumb.edenflirt.com. -5.38.168.192.in-addr.arpa. -masholdings.com. -s7.addthis.com. -www.hardfest.com. -wqlt5kt8b.h41d4z5a. -185.132.174.118.in-addr.arpa. -mail.isure.ca. -www.sarayacdn.com. -102.20.38.190.in-addr.arpa. -84.112.240.189.in-addr.arpa. -246.161.10.186.in-addr.arpa. -eymuaqjzd20otpsfypymsjuirhxgud10nx.ru. -ad.yieldads.com. -159.140.237.87.in-addr.arpa. -ax.init.itunes.apple.com. -inbound.orionpress.com.netsolmail.net. -gqepy2rg2.t33f2k3e. -a5.sphotos.ak.fbcdn.net. -img1.artron.net. -login.toolbar.conduit-services.com. -orlandoluispardolazo.blogspot.com. -accounts.google.com. -photos-e.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -forumdocumentos.blogspot.com. -localhost. -mail.cyberriver.net. -d2094137.xoom.it. -googleads.g.doubleclick.net. -www.dogbreedinfo.com. -mail1.ci.methuen.ma.us. -www.circsource.com. -ediscovery.com. -so.ie.sogou.com. -i2.ytimg.com. -ads.bluelithium.com. -died.org.ru. -hivhotline.ru. -190.109.114.97.in-addr.arpa. -pech.elektra.ru. -coneltiempoenmisbrazos.blogspot.com. -yahoo.com. -i3.ytimg.com. -reztec.ru. -svrintl-g3-crl.verisign.com. -91.178.81.82.in-addr.arpa. -228.235.116.93.in-addr.arpa. -232.87.232.190.in-addr.arpa. -academy.shoplocal.com. -a.root-servers.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -maps.gstatic.com. -api.zynga.com. -55.15.194.190.in-addr.arpa. -www.kci-world.com. -40.7.223.201.in-addr.arpa. -www.nuevodiarioweb.com.ar. -img121.imageshack.us. -36.74.42.114.in-addr.arpa. -mail. -www.facebook.com. -s-static.ak.facebook.com. -a.root-servers.net. -156.176.92.91.in-addr.arpa. -udc.msn.com. -www.twitter.com. -103.205.144.79.in-addr.arpa. -filmin.ru. -clients1.google.com. -a5.sphotos.ak.fbcdn.net. -sjbbs.pchome.net. -a.root-servers.net. -_470_27_6. -i.promecal.es. -7dslqccti.92aa. -www.cucs.udg.mx. -157.24.131.187.in-addr.arpa. -api.twitter.com. -m.addthisedge.com. -safebrowsing.clients.google.com. -land66.ru. -mx2.bloodservices.ca. -169.172.21.182.in-addr.arpa. -74.186.222.203.in-addr.arpa. -82peunix2.92qo. -v1.cache8.c.youtube.com. -stedbobleabarr.tk. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.carlsberggroup.com. -www.kamusi.org. -caruffo.com. -mx.wrs.yahoo.com. -unix.horizontes.com. -couponbuddy.s3.amazonaws.com. -www.delawaz.com. -www.maquillajeojos.net. -www.batman-on-film.com. -clients2.google.com. -photos-g.ak.fbcdn.net. -www.facebook.com. -pastpresenfuture.net. -a.root-servers.net. -netjetseurope.ru. -www.pressafrik.com. -www.deportesblog.es. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -lb._dns-sd._udp.lan. -i3.ytimg.com. -fbcdn-photos-a.akamaihd.net. -connect.facebook.net. -73.228.247.190.in-addr.arpa. -jendiab.plusnet.com. -cust20986-1.in.mailcontrol.com. -eq4opeahl.94hq. -www.facebook.com. -a.root-servers.net. -i3.ytimg.com. -antibiotix1.net-cube.net. -mitecnologico.com. -bet.iba.org.il. -teredo.ipv6.microsoft.com. -a.root-servers.net. -static.ak.fbcdn.net. -gsmtp.gatewaycc.edu. -ladys.su. -photos-e.ak.fbcdn.net. -eksmo-sale.ru. -dr._dns-sd._udp.lan. -songid.play.it. -volgogradenergo.ru. -www.usemod.com. -160.46.75.187.in-addr.arpa. -s-static.ak.facebook.com. -accounts.google.com. -bea4.v.fwmrm.net. -healthbridgefitness.com.s8a1.psmtp.com. -pridehealth.com. -27.172.174.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -partner.googleadservices.com. -0-161.channel.facebook.com. -mymonthlycycles.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -maribeluxi.blogspot.com. -www.memeadictos.tumblr.com. -183.55.251.189.in-addr.arpa. -207.168.168.192.in-addr.arpa. -tiflocomp.net.ru. -92.184.136.186.in-addr.arpa. -www.mixpod.com. -sp.cwfservice.net. -i3.ytimg.com. -royaldecree.bigcartel.com. -melonball.com. -secure.wlxrs.com. -www.ipodarchive.com. -i.ytimg.com. -. -a7.sphotos.ak.fbcdn.net. -www.movistar.com.co. -www.youtube.com. -i2.ytimg.com. -238.184.13.186.in-addr.arpa. -www.gmodules.com. -a1.sphotos.ak.fbcdn.net. -a1907.w7.akamai.net. -www.kaspersky.com. -196.146.34.187.in-addr.arpa. -distilleryimage3.instagram.com. -api.facebook.com. -a8.sphotos.ak.fbcdn.net. -heraldicasaltena.blogspot.com. -google.com. -daxstudios.net. -static.ak.fbcdn.net. -www.muchacarne.com. -a.root-servers.net. -www.webuzzapp.com. -28.37.89.186.in-addr.arpa. -74.198.24.201.in-addr.arpa. -146.42.60.187.in-addr.arpa. -montser.com. -203.16.249.78.in-addr.arpa. -www.natashasnylons.com. -www.unac.edu.pe. -veneconomia.com. -profile.ak.fbcdn.net. -85.200.244.88.in-addr.arpa. -182.248.43.92.in-addr.arpa. -1804289383.localhost. -233.25.131.187.in-addr.arpa. -instrument52.ru. -www.cwa2222.org. -150.90.13.75.in-addr.arpa. -mail.papalote.org.mx. -maximum-leverage.s3.amazonaws.com. -a-0.19-a30f3081.90e0581.1518.19d4.3ea1.210.0.a7c3cqnnkpvzvcusnnb84wzp25.avqs.mcafee.com. -photos-e.ak.fbcdn.net. -. -160.5.145.93.in-addr.arpa. -rubhim.hugescock.com. -168.144.110.84.in-addr.arpa. -www-akm.imvu.com. -_225_68_1. -v3r2qhhdm.k58e5c9j. -external.ak.fbcdn.net. -_ldap._tcp. -cartoon.iguw.tuwien.ac.at. -ntlworld.com. -www.oppuz.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -paris.lachainemeteo.com. -photos-d.ak.fbcdn.net. -235.178.10.187.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -mtkmobile.ru. -adserver.bcfads.com. -search.cnki.net. -160.211.23.186.in-addr.arpa. -plus.google.com. -www.facebook.com. -a8.sphotos.ak.fbcdn.net. -pimail.pi-isd.net. -228.112.145.201.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -time.windows.com. -cdn.loading321.com. -www.klubskascena.com. -sump.uniblue.com.s3.amazonaws.com. -elsignodelostiempos.blogspot.com. -pop3.hot.glbdns.microsoft.com. -a.root-servers.net. -api.facebook.com. -citiintl.122.2o7.net. -horosta.ru. -www.slotmachines1.com. -elderdemolition.com.inbound15.mxlogic.net. -stroykey.ru. -183.8.22.113.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -spanish.alibaba.com. -157.96.16.177.in-addr.arpa. -www.google-analytics.com. -62.25.184.201.in-addr.arpa. -nm8cjds19.06it. -fr-fr.facebook.com. -mail.satisfacts.com. -a34.g.akamai.net. -aktelux.com. -www.usacoinbook.com. -a.root-servers.net. -i3.ytimg.com. -www.proklamieren.de. -www.enlace.sep.gob.mx. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -streamate.doublepimp.com. -us.camfed.org. -crl.globalsign.net. -226.140.237.189.in-addr.arpa. -www.staatsdruckerei.at. -147.86.111.118.in-addr.arpa. -i3.photobucket.com. -\(none\). -tns-mi.com.s200a2.psmtp.com. -fxyi:pviv.e17r1d7z. -www.christiananime.net. -runbox.com. -239.32.76.84.in-addr.arpa. -a151.d.akamai.net. -218.220.131.187.in-addr.arpa. -a.root-servers.net. -auto.mercadolibre.com.mx. -enter.brazzerspass.com. -bonellmfg.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -42.media.v4.skyrock.net. -secure.localbillinglimited.com. -img100.xvideos.com. -auro.de. -minipanel.qq.com. -a3.mzstatic.com. -schonerttile.com. -thepattinsonproject.files.wordpress.com. -google.com. -a4.sphotos.ak.fbcdn.net. -clients2.google.com. -smtp.bcgassets.com. -0.6171754.com. -36.95.138.190.in-addr.arpa. -i2.ytimg.com. -s-external.ak.fbcdn.net. -investfinancial.com. -windows.download.hn. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.narutomanga.tk3.net. -1.bp.blogspot.com. -testdrive.apc.com. -154.81.211.108.in-addr.arpa. -www.edressme.com. -www.youtube.com. -partner37.mydomainadvisor.com. -i3.ytimg.com. -stats.jtvnw.net. -30.23.168.189.in-addr.arpa. -api.yontoo.com. -252.9.10.186.in-addr.arpa. -barracuda.lrcr.com. -static.ak.fbcdn.net. -219.213.25.201.in-addr.arpa. -megusta.followland.com. -crl3.digicert.com. -dnl-13.geo.kaspersky.com. -. -www.facebook.com. -healthcare-automations.com. -skerneskopdo.mp. -tracker.reprobate.se. -leftwich.com. -lo.wikipedia.org. -sbcgoldal.net. -willbear.com. -clients1.google.com. -servedby.adxpose.com. -ad-g.doubleclick.net. -kupinakleyki.ru. -www.monografias.com. -c13.zedo.com. -t0.gstatic.com. -101.9.168.192.in-addr.arpa. -179.118.208.112.in-addr.arpa. -static.editmysite.com. -83.169.211.201.in-addr.arpa. -www.aa.com. -mx1.elektro.com.br. -a.root-servers.net. -diccionario.reverso.net. -support.google.com. -11.113.25.31.in-addr.arpa. -u40.eset.com. -124.193.232.109.in-addr.arpa. -sngs.biz. -a-0.19-2209b041.c010083.1518.19d3.3ea0.210.0.i9zvhvc5q66kz46p5713r2g3c6.avqs.mcafee.com. -_396_31_4. -pt-br.facebook.com. -b.scorecardresearch.com. -library.unt.edu. -api.twitter.com. -orcart.facebook.com. -photos-b.ak.fbcdn.net. -skylightpictures.com. -a.root-servers.net. -www.facebook.com. -67.213.137.195.in-addr.arpa. -android.clients.google.com. -mail2.ebpoffice.net. -www.dog-pictures.co.uk. -portal.salud.gob.mx. -developers.facebook.com. -a-0.19-220f5081.9830081.1518.19d3.3ea1.200.0.1jpm1u6775pch7wi5lcncvkcl6.avqs.mcafee.com. -time.chttl.com.tw. -lists.chamilo.org. -a.root-servers.net. -google.com. -yoga-ology.com. -photos-a.ak.fbcdn.net. -sp.cwfservice.net. -216.44.159.189.in-addr.arpa. -165.24.105.46.zz.countries.nerd.dk. -www.google-analytics.com. -photos-b.ak.fbcdn.net. -www.google.com. -aero.upm.es. -intomega.ru. -a3.sphotos.ak.fbcdn.net. -unigrids.icm.edu.pl. -ncswmf.com. -www.ebay.com. -a.root-servers.net. -sticker.yadro.ru. -93.230.222.189.in-addr.arpa. -apps.facebook.com. -pagead2.googlesyndication.com. -www.allanaheimtours.com. -ads.wicked.com. -a.root-servers.net. -tanner-informatik.ch. -a.root-servers.net. -www.youtube.com. -aonetel.com. -m8.house-mixes.com. -a4.sphotos.ak.fbcdn.net. -xtra.co.nz. -pnwriders.com. -176.169.78.187.in-addr.arpa. -wholesale.alibaba.com. -www.bleblenigi.miasta.pl. -celebritybabies.people.com. -pt-br.facebook.com. -a.rad.msn.com. -a3.sphotos.ak.fbcdn.net. -_832_47_5. -155.219.192.173.in-addr.arpa. -c.learncodethehardway.org. -dingtao333.3322.org. -ssl.gstatic.com. -mail.ru. -94.7.219.62.in-addr.arpa. -billing.sharo4ka.ru. -facebook-sw.vo.llnwd.net. -img204.imageshack.us. -3.197.154.78.in-addr.arpa. -wintertype101.blogspot.com. -209.120.10.187.in-addr.arpa. -mail.cascadetitlecompany.com. -movinta.com. -jumpy.it. -www.facebook.com. -thehawklovesyou.com. -mypassionofficial.tumblr.com. -www.tinkerbellcupcakes.com. -ksn2-12.kaspersky-labs.com. -bg.wikipedia.org. -askville.amazon.com. -180.144.22.201.in-addr.arpa. -csi.gstatic.com. -ir.ebaystatic.com. -share-online.biz. -251.110.189.72.in-addr.arpa. -101.208.193.91.in-addr.arpa. -pleated-jeans.com. -ads2.msads.net. -ksn3.kaspersky-labs.com. -106.214.146.189.in-addr.arpa. -axiomsmt.com. -ns1.force9.net. -3.223.124.220.in-addr.arpa. -rbr-cards.ru. -de-de.facebook.com. -crazyquizs.com. -fbcdn-profile-a.akamaihd.net. -ads.us.e-planning.net. -www.rakutenblog.jp. -89wuyh3hn.d44g1q9s. -lh5.googleusercontent.com. -www.mobile24.com. -www.adobe.com. -js.microsoft.com. -nextjam.blogspot.com. -lbworks.com. -134.182.84.89.in-addr.arpa. -www.aadynd.org.ar. -ntp.glb.nist.gov. -8.192.8.201.in-addr.arpa. -www.google-analytics.com. -a3.twimg.com. -lbc4nc.com.s9a1.psmtp.com. -www2.twncs.com. -a.analytics.yahoo.com. -www.google.com. -twitter.com. -88.176.20.190.in-addr.arpa. -ivfcenter.ru. -cs504508.vkontakte.ru. -ccbill.com. -103.50.92.190.in-addr.arpa. -drifting.chulojuegos.com. -t-cartledge.com. -widgets-lf.clearspring-lf.com.akadns.net. -i.ytimg.com. -static.ak.fbcdn.net. -m.addthisedge.com. -ksn2-12.kaspersky-labs.com. -photos-e.ak.fbcdn.net. -profile.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -30.196.109.200.in-addr.arpa. -static.ak.fbcdn.net. -79.34.104.186.in-addr.arpa. -mailsrvr.libanpost.com.lb. -training.cakephp.org. -offsetti.com. -www.bluntdelivery.com. -www.histats.com. -www.youtube.com. -85.207.75.201.in-addr.arpa. -www.mail-app.com. -api.twitter.com. -heritage-healthcare.com.s5a1.psmtp.com. -103.53.0.123.in-addr.arpa. -www.tux4kids.com. -homain.com. -57.148.58.201.in-addr.arpa. -hytectelephone.com.inbound15.mxlogicmx.net. -google.com. -b-0.19-23092008.481.1518.19d3.3ea1.410.0.eigsnthbibb5sl1we17n13czpv.avqs.mcafee.com. -niveud.com. -mx.youtube.com. -5syovpg5q.47hj. -imvubling.com. -mail.showcasemn.com. -old.jurnalul.ro. -medicalsupplycenter.com. -200.41.94.200.in-addr.arpa. -168.179.250.112.in-addr.arpa. -apps.facebook.com. -firstrealtybhg.com. -a2.twimg.com. -api.twitter.com. -pt.veoh.com. -static.ak.fbcdn.net. -107.137.134.190.in-addr.arpa. -a.root-servers.net. -photos-g.ak.fbcdn.net. -www.leerburg.com. -_333_63_6. -brightcove.vo.llnwd.net. -join.bangedbytrannies.com. -a.root-servers.net. -9.224.152.189.in-addr.arpa. -teredo.ipv6.microsoft.com. -resources.contactlessnews.com. -surftofind.com. -www.pedaleachile.cl. -udc.msn.com. -aka-cdn-ns.adtech.de. -196.187.137.190.in-addr.arpa. -titanium30-en.url.trendmicro.com. -www.iforex.ph. -elmonoaullador.blogspot.es. -promo.isharemycash.com. -a.root-servers.net. -chittenden.com. -nske.ru. -developers.facebook.com. -www.localizador-telefonos-moviles-celulares-ringtones-movil-gsm-sms.com. -9gag.com. -teesvalleyarts.org.uk. -feeds.feedburner.com. -25.159.213.201.in-addr.arpa. -10.110.103.201.in-addr.arpa. -k.keyade.com. -dns.msftncsi.com. -52.65.202.98.in-addr.arpa. -dnl-00.geo.kaspersky.com. -pediatriaenlared.com.ar. -googleads.g.doubleclick.net. -www.google.com. -185.212.191.186.in-addr.arpa. -s60-store.ovi.com. -www.ask.com. -www.roninsolitario.es. -hot-cam.en-vivo.es. -sites.google.com. -pr4.netatlantic.com. -nobles.com.au.s9a2.psmtp.com. -upload.facebook.com. -static.ak.fbcdn.net. -c4.zedo.com. -31.77.224.189.in-addr.arpa. -43.225.176.187.in-addr.arpa. -poderyambiente.blogspot.com. -adserver.gb5.motorpresse.de. -creative.ak.fbcdn.net. -ozzi.com.au. -use.typekit.com. -www.antsight.com. -holdgruen.de. -wbn.ru. -50.192.82.200.in-addr.arpa. -234.8.55.157.in-addr.arpa. -budado.info. -crl.geotrust.com. -www.cucaboo.com. -acmatcorp.com.inbound15.mxlogicmx.net. -optonlinie.net. -webmasters.tubewolf.com. -mx.hftfund.com. -a.root-servers.net. -photos-c.ak.fbcdn.net. -theabysmal.wordpress.com. -teredo.ipv6.microsoft.com. -a.root-servers.net. -www.revolution-bars.co.uk. -shadesofpa.com. -magus.postgresql.org. -. -a172.w7.akamai.net. -newsobserver.com.s8a1.psmtp.com. -rvr.blogalia.com. -a.root-servers.net. -clients1.google.com.mx. -a3.sphotos.ak.fbcdn.net. -facebook.com. -www.esearches.com.tw. -43.201.3.196.in-addr.arpa. -api.facebook.com. -www.google.com. -baptistretirement.org.inbound10.mxlogic.net. -www.volta.alessandria.it. -145.3.8.200.in-addr.arpa. -worldblog.msnbc.msn.com. -21.59.42.190.in-addr.arpa. -209.246.53.83.in-addr.arpa. -i.ytimg.com. -dnl-01.geo.kaspersky.com. -s.ytimg.com. -kung-fu-panda-msn.programasgratis.es. -hg.splayer.org. -33.7.98.189.in-addr.arpa. -a.root-servers.net. -mintzfamily.com. -123.103.205.190.in-addr.arpa. -a.ads2.msads.net. -8.46.13.190.in-addr.arpa. -domino.ingo.com.ua. -a7.sphotos.ak.fbcdn.net. -www.ibima.org. -evergreen-shipping.com. -bluedogden.com. -www.linkedin.com. -plus.google.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.google.com. -152.163.144.207.in-addr.arpa. -commnat-cohort.ess.apple.com.akadns.net. -a7.sphotos.ak.fbcdn.net. -a-0.19-2109a801.d060083.1518.19d4.3ea1.410.0.spqabajtl54hfqk97s33alujnv.avqs.mcafee.com. -225.103.95.190.in-addr.arpa. -_311_78_5. -a-0.19-230c8079.d160083.1518.19d4.3ea1.410.0.j8pw3bbzug8sm32di2bf42b4dq.avqs.mcafee.com. -ksn2-12.kaspersky-labs.com. -photos-g.ak.fbcdn.net. -a.root-servers.net. -freewareforus.com. -meta.p2.color.com. -a7.sphotos.ak.fbcdn.net. -newsrss.bbc.co.uk. -tc.v13.cache3.c.youtube.com. -184.199.125.84.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -193.61.58.186.in-addr.arpa. -www.flashgalerie.com. -rcp.na.blackberry.com. -creative.ak.fbcdn.net. -www.fantastigames.com. -27.247.89.186.in-addr.arpa. -115.194.179.187.in-addr.arpa. -www.fgcuicehockey.com. -utblive.com. -fasgroup.ru. -vyatskaya-matreshka.ru. -orcart.facebook.com. -a.root-servers.net. -improveverywhere.com. -servicemap.conduit-services.com. -ilov.spb.ru. -rest.motekmobile.com. -i3.ytimg.com. -a.root-servers.net. -linkhelp.clients.google.com. -www.l.google.com. -apps.facebook.com. -ocsp.verisign.com. -ax.init.itunes.apple.com. -google.com. -tnams.com. -mail2.somewhere.com. -asic.gov.au. -16.122.149.187.in-addr.arpa. -4shared.co. -sp.cwfservice.net. -external.ak.fbcdn.net. -tysvrmail.teckyork.com. -abel.dk. -darbylaw.com. -colorquimica.com.co. -sup.live.com. -232.24.85.200.in-addr.arpa. -esino.en.alibaba.com. -a.root-servers.net. -dasya.com. -244.74.41.187.in-addr.arpa. -79.16.21.201.in-addr.arpa. -platform.twitter.com. -creative.ak.fbcdn.net. -shared.live.com. -112.92.112.177.in-addr.arpa. -external.ak.fbcdn.net. -photos-b.ak.fbcdn.net. -time.windows.com. -www.htmlfirm.com. -platform.ak.fbcdn.net. -a1005.w42.akamai.net. -profile.ak.fbcdn.net. -www.facebook.com. -www.gooogirl.com. -pmkqrc8hg.66dq. -www.facebook.com. -a1.sphotos.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -dns.msftncsi.com. -google.com. -adserver.adtechus.com. -www.colsantamariaportu.com. -laobserved.com. -immunolabs.com. -msgr.updates.yahoo.com. -_757_34_5. -photos-a.ak.fbcdn.net. -a.root-servers.net. -97.165.198.74.in-addr.arpa. -61.185.176.190.in-addr.arpa. -us.starmedia.com. -belorys-kh.livejournal.com. -publimetro1.autoplaza.com.mx. -pcweb.mycom.co.jp. -info.yahoo.com. -sc2.rules.mailshell.net. -100.127.101.75.in-addr.arpa. -. -mail.google.com. -191.140.84.200.in-addr.arpa. -www.houseofdeals.com. -js.wlxrs.com. -246.227.171.69.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -content.yieldmanager.edgesuite.net. -l.yimg.com. -googleads.g.doubleclick.net. -www.facebook.com. -a1.sphotos.ak.fbcdn.net. -img301.imageshack.us. -a1505.l.akamai.net. -mail.global.ans-online.net. -lh5.googleusercontent.com. -www.google.com. -www.licornpublishing.com. -mail.ntnindia.com. -stisd.esc2.net. -145.219.110.189.in-addr.arpa. -ns2.fibernet.ro. -www.facebook.com. -smtpfw.citybloom.org. -www.google.com. -92.28.252.189.in-addr.arpa. -a.root-servers.net. -a4.sphotos.ak.fbcdn.net. -blog.beliefnet.com. -aiolfi.ch. -developers.facebook.com. -125.162.168.192.in-addr.arpa. -support.mediafire.com. -116.57.64.62.in-addr.arpa. -a1108.da1.akamai.net. -secure.shared.live.com. -a.root-servers.net. -glayiueditorial.blogspot.com. -pixel.facebook.com. -162.198.143.187.in-addr.arpa. -platform.ak.fbcdn.net. -www.facebook.com. -www.aepia.org. -d-t.ru. -www.bebo.com. -adserver.adtech.de. -1.0.0.127.in-addr.arpa. -www.mujeresdeempresa.com. -a-0.19-a3096081.c0b0002.1518.19d3.3ea1.210.0.wzmeesafj38nm94cm4dpwg8mai.avqs.mcafee.com. -www.dodge.cl. -productos.maycodelsureste.com. -education.parts-express.com. -www.slrphotographyguide.com. -158.82.246.201.in-addr.arpa. -m.addthisedge.com. -www.facebook.com. -carrental.enclick.com. -ns20-f.bigfish.com. -www.infolinks.com. -dm-tech.net. -de.tynt.com. -mail.ce-easy.de. -a2.sphotos.ak.fbcdn.net. -147.255.191.220.in-addr.arpa. -166.115.110.193.in-addr.arpa. -secure.gravatar.com. -elmusic.net. -a1.sphotos.ak.fbcdn.net. -api.bizographics.com. -js2.wlxrs.com. -736561726368636c69656e74.6c697665.6e6574.80h413650eb.webcfs00.com. -146.253.183.190.in-addr.arpa. -profile.ak.fbcdn.net. -pim.ram.htcsense.com. -thumbs.ofmtvimg.info. -5.166.171.69.in-addr.arpa. -63.13.195.187.in-addr.arpa. -admeld.adnxs.com. -afs-seminars.com. -r._dns-sd._udp.0.50.168.192.in-addr.arpa. -www.youtube.com. -www.facebook.com. -186.91.73.190.in-addr.arpa. -pipe-klup.ru. -mail.xn.com. -89.190.170.201.in-addr.arpa. -wuiyue.com. -gfx8.hotmail.com. -_954_38_1. -www.fregate.com. -alumnos.unex.es. -vogue.mundoforo.com. -dstest.yahoo.com. -cdn.search.sweetim.com. -media.monster.com. -mail.quartics.com. -preved.bandoo.com. -a.root-servers.net. -mms602.whatsapp.net. -inspecintl.com. -dns.msftncsi.com. -itx4.2-01-275d-0005.cdx.cedexis.net. -cocinet.net. -aboutfamilies.org. -tissc.corp.travelport.com. -teredo.ipv6.microsoft.com. -libropadrericopadrepobre.wordpress.com. -neksus.net. -accounts.google.com. -yts-blog.weblogs.jp. -107.179.152.201.in-addr.arpa. -copers.ru. -cisadu2.let.uniroma1.it. -www.facebook.com. -www.google.com. -www.googletagservices.com. -ssl.gstatic.com. -creative.ak.fbcdn.net. -95.43.139.187.in-addr.arpa. -a.root-servers.net. -cnic.jp. -www.fickdich.biz. -api.oovoo.com. -a2.sphotos.ak.fbcdn.net. -support.google.com. -203.175.179.60.in-addr.arpa. -es-la.facebook.com. -26.106.73.186.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -www.facebook.com. -77.28.10.201.in-addr.arpa. -row.bc.yahoo.com. -americangaming.org. -www.ociodf.net. -a2.sphotos.ak.fbcdn.net. -s1-s.licdn.com. -a.root-servers.net. -www.facebook.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -58.59.13.189.in-addr.arpa. -www.itb.co.uk. -rss.msnbc.msn.com. -238.235.231.190.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -www.bing.com. -www.shutterbug.net. -hawaiicaterers.com. -www.getitnearme.com. -sites.google.com. -www.mediawiki.org. -mailsrv2.sofidel.com. -jemsite.com. -fotoramok.net. -es.answers.yahoo.com. -mailgate.burgoynes.com. -ksn2-12.kaspersky-labs.com. -ads.sumavisos.com. -www.hsbc.co.mu. -ocsp.verisign.com. -www.worldlandtrust.org. -winderhall.co.uk. -snsgw.samsungmobile.com. -www.google.com. -safebrowsing-cache.google.com. -static.ak.fbcdn.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -107.146.220.66.in-addr.arpa. -biblioteca.enah.edu.ni. -loschicosenero.blogspot.com. -creative.ak.fbcdn.net. -www.todotorrents.com. -253.248.72.184.in-addr.arpa. -windcriesamy.blogspot.com. -creative.ak.fbcdn.net. -121.80.51.170.in-addr.arpa. -46.33.119.200.in-addr.arpa. -css.corriereobjects.it. -224.225.173.201.in-addr.arpa. -profile.ak.fbcdn.net. -www.qzal.net. -46.171.168.67.in-addr.arpa. -insites.com.au. -94.86.110.79.in-addr.arpa. -www.britishsupermarketworldwide.com. -goo.gl. -0-155.channel.facebook.com. -a4.sphotos.ak.fbcdn.net. -1-nuncasabe.blogspot.com. -s.youtube.com. -googleads.g.doubleclick.net. -14.38.34.156.in-addr.arpa. -blogdegameloft.es. -s-static.ak.facebook.com. -mail4.syntec.carlisle.com. -bolig.lokalavisen.dk. -celebritybabies.people.com. -p.twimg.com. -www.fourwinds10.net. -google.com. -db._dns-sd._udp.lan. -crl.microsoft.com. -a.root-servers.net. -a.root-servers.net. -banners2.ero-advertising.com. -web.ewu.edu. -skydrive.live.com. -a.root-servers.net. -media.relay.voice.yahoo.com. -developers.facebook.com. -entertaintexas.com. -118.82.106.189.in-addr.arpa. -calendarmarks.xanga.com. -va.px.invitemedia.com. -supcisqslsyiqrs.biz. -platform.twitter.com. -seriesloads.com.ar. -www.youtube.com. -img216.imagevenue.com. -pacificbmw.com.s9b1.psmtp.com. -www.crunchbase.com. -api.twitter.com. -backupmx.mycompuworld.net. -www.facebook.com. -127.234.178.186.in-addr.arpa. -greaterlexins.com. -tms30.icrc.trendmicro.com. -csi.gstatic.com. -pnrws.skype.com. -aeglegno.it. -176.104.117.200.in-addr.arpa. -mail.sleeppd.com. -231.119.47.92.in-addr.arpa. -219.219.91.186.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -pool.ntp.org. -a.root-servers.net. -i2.ytimg.com. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -fghyt.com. -google.com. -www.amorenlinea.biz. -cdn.dnsmex.net. -35.29.69.187.in-addr.arpa. -knowco.com. -www.mccannfiles.com. -glenelg74.fsnet.co.uk. -amer.rel.msn.com. -webcache.googleusercontent.com. -apps.facebook.com. -251.15.236.189.in-addr.arpa. -37.41.177.142.in-addr.arpa. -by2msg4020708.gateway.messenger.live.com. -55.92.161.189.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -www.bing.com. -titanium30-en.url.trendmicro.com. -www.doosaninfracore.com. -www.dayspring.com. -79.29.200.189.in-addr.arpa. -centurioninsurance.net. -www.mmsend1.com. -a2.da1.akamai.net. -afrada.com.ua. -7.30.4.189.in-addr.arpa. -l.yimg.com. -dcads.sina.com.cn. -pagead2.googlesyndication.com. -s.youtube.com. -viajedefrances2009.wordpress.com. -accounts.google.com. -cdn1.ads.contentabc.com. -dimmitt.net. -peru21.pe. -newmonetarism.blogspot.com. -i4.ytimg.com. -a.root-servers.net. -www.globus.org. -news.search.yahoo.com. -rest-img.msg.yahoo.com. -historiasdeamor-mina.blogspot.com. -www.juegos-diarios.org. -soundeyet.blogspot.com. -support.google.com. -sonamywings.foroactivo.net. -static.ak.fbcdn.net. -5.p.s.mfcdn.net. -zh-cn.facebook.com. -i2.ytimg.com. -google.com. -mx2.dualog.no. -service1.ess.apple.com. -estonoesunblogdehistoria.blogspot.com. -eysk.kuban.su. -135.201.157.186.in-addr.arpa. -www.potoandcabenga.com. -55.181.63.69.in-addr.arpa. -creative.ak.fbcdn.net. -ds.serving-sys.com. -a2.sphotos.ak.fbcdn.net. -weather.ammonnews.net. -googleads.g.doubleclick.net. -a.root-servers.net. -safebrowsing-cache.google.com. -_806_43_8. -sp.cwfservice.net. -www.statcounter.com. -photos-d.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -20.83.187.190.in-addr.arpa. -32.96.188.186.in-addr.arpa. -176.220.85.209.sbl-xbl.spamhaus.org. -www.facebook.com. -marksstudio.com. -a7.sphotos.ak.fbcdn.net. -developers.facebook.com. -63.49.79.187.in-addr.arpa. -relay.voice.messenger.msn.com. -bleetz.wordpress.com. -m.ak.fbcdn.net. -es.wikipedia.org. -www.global.hs-mittweida.de. -lernet.ru. -www.peopleeffect.com.au. -www.facebook.com. -dragon-ball-z-budokai-x.softonic.com.br. -s2.youtube.com. -m.hotmail.com. -ad.adnetwork.net. -mail2.americasvacationcenter.com. -apps.facebook.com. -rayman-raving-rabbids.programas-gratis.net. -a8.sphotos.ak.fbcdn.net. -7.37.215.186.in-addr.arpa. -zynga.tm. -music-vokal.ru. -apir.webrep.avast.com. -www.saartjeknits.nl. -profile.ak.fbcdn.net. -tc16.easythumbhost.com. -wws.mcanime.net. -code.jquery.com. -122.173.180.186.in-addr.arpa. -167.19.106.186.in-addr.arpa. -photos-e.ak.fbcdn.net. -mashsf.tumblr.com. -a.root-servers.net. -53.50.27.201.in-addr.arpa. -kdc.uas.aol.com. -adm-saransk.ru. -tc3.easythumbhost.com. -m.addthisedge.com. -ultrastardx.sourceforge.net. -133.81.73.190.in-addr.arpa. -www.bestbuy-walmart.com. -dogparry.deviantart.com. -thumbs2.ebaystatic.com. -profile.ak.fbcdn.net. -muscledmanmeat.bestmalediaries.com. -134.56.5.190.in-addr.arpa. -googleads.g.doubleclick.net. -www.64colors.com. -api.facebook.com. -www.google.com. -www.adobe.com. -107.187.153.186.in-addr.arpa. -www.bravotube.net. -googleads.g.doubleclick.net. -news.google.com. -partner.googleadservices.com. -_922_37_6. -www.wamgroup.com. -1.207.239.71.in-addr.arpa. -artesana.mejorforo.net. -glamaur.ru. -www.yx0077.com. -s.youtube.com. -145.7.173.201.in-addr.arpa. -yahoo.com. -bom3.vsnl.net.in. -e-tard.tv. -chy856n7f.18hx. -adsfront.iminent.com. -178.41.210.201.in-addr.arpa. -bnlmail.com. -img100.xvideos.com. -sf-mailgate.hellerehrman.com. -160.172.83.178.in-addr.arpa. -facultalandia.blogia.com. -insider.msg.yahoo.com. -ytimg.l.google.com. -adfactory.publicidees.net. -sexy-1.momsfactory.com. -a3.da1.akamai.net. -safebrowsing.clients.google.com. -alt1.aspmx.l.google.com. -ever.ru. -blufiles.storage.msn.com. -a1.sphotos.ak.fbcdn.net. -chromejs.s3.amazonaws.com. -dcoxy4i5d.89bi. -a.root-servers.net. -www.toons-x.com. -156.120.75.200.in-addr.arpa. -109.31.156.187.in-addr.arpa. -www.wetteronline.de. -www.mi6-hq.com. -137.131.170.118.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -www.usps.com. -swaisland-ltd.com. -dc.logmein-gateway.com. -bible.christiansunite.com. -jers2.info. -s-static.ak.fbcdn.net. -. -104.217.237.78.in-addr.arpa. -www.jumboacasa.com.ar. -151.183.193.111.in-addr.arpa. -i998.mangareader.net. -www.tips4mums.com. -a.root-servers.net. -profile.ak.fbcdn.net. -developers.facebook.com. -. -relay1.delight2000.com. -photos-b.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -id-id.facebook.com. -www.bancobcr.com. -csc3-2010-crl.verisign.com. -www.gerencie.com. -facebook.com. -ocsp.digicert.com. -download313.avast.com. -angus.njcure.com. -cs10124.vk.com. -. -200.27.81.187.in-addr.arpa. -atlantichealth.com. -loefflerrandall.com. -c0013899.cdn1.cloudfiles.rackspacecloud.com. -114.225.234.99.in-addr.arpa. -mail1.mn-services.nl. -maverickflooring.com. -websearch.ask.com. -fr-fr.facebook.com. -static.ak.facebook.com. -zammbkygf.76ul. -q.ebaystatic.com. -localhost. -mail.jofair.com. -a1997.b.akamai.net. -78.50.170.201.in-addr.arpa. -download.cartoonnetworkasia.com. -cdn.rep.sc.sweetim.com. -www.ambafrance-id.org. -125.100.255.77.in-addr.arpa. -api-read.facebook.com. -205.113.102.201.in-addr.arpa. -mail.flinteclk.com. -www.adobe.com. -wd-edge.sharethis.com. -showtimepictures.com. -ad.jumbaexchange.com. -apis.google.com. -wikileaks.org. -sa.wikipedia.org. -radoscorp.radoscompanies.com. -63.90.30.190.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -102.214.231.89.in-addr.arpa. -skj-advokat.dk. -e4805.b.akamaiedge.net. -a.root-servers.net. -box425.bluehost.com. -www.belkin.com. -104.2.168.192.in-addr.arpa. -238.62.248.201.in-addr.arpa. -secure.gate2shop.com. -ymail.com. -74.166.58.187.in-addr.arpa. -es-la.facebook.com. -vstun.voipinfocenter.com. -b._dns-sd._udp.0.55.211.10.in-addr.arpa. -photos-h.ak.fbcdn.net. -a.root-servers.net. -236.73.243.201.in-addr.arpa. -www.micasarevista.com. -dinero.univision.com. -126.39.213.186.in-addr.arpa. -mis-3.pgi.citiesofgold.com. -c-0.19-a309f481.483.1518.19d3.3ea1.410.0.i8p2s6m6vjskf3g8al12u1wpdq.avqs.mcafee.com. -photos-d.ak.fbcdn.net. -mercigod.com. -www.losrecursoshumanos.com. -www.calculadoradelamortotal.com. -www.lyme.org. -22.242.171.69.in-addr.arpa. -79.189.245.190.in-addr.arpa. -us.bc.yahoo.com. -worldattnet.com. -hst14.vault-it.ru. -a.root-servers.net. -s.youtube.com. -profile.ak.fbcdn.net. -201.204.177.189.in-addr.arpa. -mail.fpalex.com. -tuqbjzkbh.a99t7h1e. -creative.ak.fbcdn.net. -clients1.google.com. -215.198.3.190.in-addr.arpa. -107.69.210.201.in-addr.arpa. -3oaks.com. -ad-g.doubleclick.net. -developers.facebook.com. -mobileinsights.com. -www.themotoguide.com. -mail.fe-azp.com. -zoo-tycoon-2-endangered-species.softonic.com. -i1.ytimg.com. -seversk.net. -. -a.root-servers.net. -9.55.98.68.in-addr.arpa. -aol.com. -jcgodj7jq.43cc. -98.165.66.66.in-addr.arpa. -flashpirate.com. -csi.gstatic.com. -www.facebook.com. -a13.t26.net. -financialheritage.com. -www.google.com. -lawebdeidea.org. -photos-h.ak.fbcdn.net. -apps.facebook.com. -www.googletagservices.com. -us.bc.yahoo.com. -a.c-0.19-1309d081.20400b3.1518.19d4.3ea1.210.0.upmrq98fnvwbita33avahwiqgi.avqs.mcafee.com. -picasaweb.google.ru. -d2095743.xoom.it. -a.root-servers.net. -adewumicollege.net. -i3.ytimg.com. -www.dollarparalelovenezuela.com. -platform.twitter.com. -js.aiya.com.cn. -service.gc.apple.com. -a.root-servers.net. -photos-d.ak.fbcdn.net. -ideatrainingcenter.com. -radoux.fr. -161.0.94.208.in-addr.arpa. -turismo.perfil.com. -cluster2a.us.messagelabs.com. -ntp1.cs.wisc.edu. -hs9ba2qyg.49gr. -cataclysm.wowmortal.com. -smtp02-1.omse-rz.net. -video.google.com. -plus.google.com. -dns.msftncsi.com. -firsttennessee.com. -55.69.108.118.in-addr.arpa. -112.2.135.190.in-addr.arpa. -229.110.14.186.in-addr.arpa. -armmf.adobe.com. -109.217.252.49.in-addr.arpa. -xomediaxchange.voicenation.com. -i3.ytimg.com. -bookplatejunkie.blogspot.com. -blog.4shared.com. -rts.phn.doublepimp.com. -his.se. -caleidoscoop.net. -manila.craigslist.com.ph. -saransk.binbank.ru. -www.restaurantsource.com. -a1313.da1.akamai.net. -www.google.com. -biglonline.com. -shared.live.com. -o.analytics.yahoo.com. -a5.sphotos.ak.fbcdn.net. -55.19.118.75.in-addr.arpa. -www.facebook.com. -34.111.246.190.in-addr.arpa. -market.android.com. -creative.ak.fbcdn.net. -www.new-hairgames.com. -buildabearnews.com. -ksn2-12.kaspersky-labs.com. -fpdownload.adobe.com. -dns.msftncsi.com. -95.118.145.186.in-addr.arpa. -a1701.v.phobos.apple.com. -counterb.statcounter.com. -css.wlxrs.com. -photos-b.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -jjrinccpa.com. -a.root-servers.net. -cxz23.meaningtool.com. -33.141.14.201.in-addr.arpa. -145.122.255.200.in-addr.arpa. -dns.msftncsi.com. -backofficesite.epyte.com. -platform.twitter.com. -monitor.nsk.su. -mx03.wow.synacor.com. -rs570l3.rapidshare.com. -www.druglib.com. -201.120.141.99.in-addr.arpa. -plus.google.com. -download.cnet.com. -latinoweb.com. -222.73.109.79.in-addr.arpa. -ax.su.itunes.apple.com. -mobile.jang.com.pk. -recall.com.s5a2.psmtp.com. -photos-a.ak.fbcdn.net. -141.190.106.177.in-addr.arpa. -l.yimg.com. -orovalleycam.webhop.net. -ak1.abmr.net. -80.76.132.190.in-addr.arpa. -www.gatorade.com.mx. -abnorth.com. -download115.avast.com. -www.care4babygallery.net. -33.248.95.82.in-addr.arpa. -39.68.172.123.in-addr.arpa. -rt.liftdna.com. -a749.g.akamai.net. -platform.twitter.com. -pics.ebaystatic.com. -ads.zepterads.com. -74.244.117.98.in-addr.arpa. -186.185.208.189.in-addr.arpa. -www.saunasol.com. -wods.radio.com. -personyze-ssl-399604307.eu-west-1.elb.amazonaws.com. -hagenburgsrv3.hagenburg.se. -cdn.api.twitter.com. -www.m6m3.com. -www.facebook.com. -horizon.bcbsnj.com. -fotografia.facilisimo.com. -. -www.tntla.com. -122.117.250.201.in-addr.arpa. -survey.westfalia-separator.com. -www.efesis.cl. -a3.sphotos.ak.fbcdn.net. -ihatemyparents.tumblr.com. -op.pl. -www.prodiverstore.com. -nimbus.com. -photos-f.ak.fbcdn.net. -69.206.84.200.in-addr.arpa. -clutch.mtv.com. -e554sgnyx.53kx. -safebrowsing-cache.google.com. -www.parroquiasanfranciscosj.com. -www.google-analytics.com. -a5.sphotos.ak.fbcdn.net. -safebrowsing.clients.google.com. -www.google-analytics.com. -a.root-servers.net. -alberdalellc.com. -eyuon.net. -www.hispatube.com. -sundistasya-shx.blogspot.com. -feeds.feedburner.com. -. -bitech.net. -img.scoop.it. -30.media.tumblr.com. -l.yimg.com. -www.google-analytics.com. -twitter.com. -www.facebook.com. -isatap.cisco. -fxfeeds.mozilla.com. -mail.sabarch.com. -www.bn.pt. -igenbergs.de. -safebrowsing-cache.google.com. -carla.cg-models.net. -ad-g.doubleclick.net. -technorati.com. -6.88.168.192.in-addr.arpa. -121.2.54.121.in-addr.arpa. -www.celebritiesdietplan.com. -zh-cn.facebook.com. -client-software.real.com. -www.valuedgirls.com. -gaoqing.baofeng.com. -mysearchdock.com. -130.45.42.200.in-addr.arpa. -ad.yieldmanager.com. -31.71.191.186.in-addr.arpa. -antiaging.com. -stats.update.microsoft.com. -photos-e.ak.fbcdn.net. -holaapple.com. -laodontologia.blogspot.com. -sports.espn.go.com. -e1.extreme-dm.com. -www.bollesafety.com.au. -www.vuelos.com. -profile.ak.fbcdn.net. -174.96.122.190.in-addr.arpa. -pagead2.googlesyndication.com. -a5.da1.akamai.net. -a.root-servers.net. -d.shareaholic.com. -a.root-servers.net. -clients1.google.com. -29.media.tumblr.com. -creative.ak.fbcdn.net. -www.dobrucki.com. -65.68.69.189.in-addr.arpa. -105.250.161.201.in-addr.arpa. -i4.ytimg.com. -www.rashed-elmajed.com. -cdn1.finaltorrent.com. -164.240.250.190.in-addr.arpa. -www.altillo.com. -smtp.ctshk.com. -217.76.210.189.in-addr.arpa. -isohunt.com. -oh.rr.com. -189.181.106.177.in-addr.arpa. -nashvillemama.com. -187.142.20.92.in-addr.arpa. -mx03.peoplepc.com. -safebrowsing.clients.google.com. -www.facebook.com. -c49cvdtnsjqhvprarmrjvdxe41e11a37nybu.info. -profile.ak.fbcdn.net. -www9.effectivemeasure.net. -15.222.198.190.in-addr.arpa. -rivergrovewinery.com. -155.58.50.190.in-addr.arpa. -a.root-servers.net. -a1.sphotos.ak.fbcdn.net. -badge.facebook.com. -lafvb.com. -a.root-servers.net. -highbury.ac.uk. -www.thehkaccess.com. -uh9ql5i6u.k81a3t8z. -www.waringcommercialproducts.com. -a4.sphotos.ak.fbcdn.net. -american-playboy-spread.peliculon.tv. -checkip.dyndns.org. -a.root-servers.net. -13.252.241.201.in-addr.arpa. -ib.adnxs.com. -www.blingblog.info. -icons.net. -netrats.net. -matedicc.blogspot.com. -a6.sphotos.ak.fbcdn.net. -55.9.2.187.in-addr.arpa. -www.foxsoccer.com. -api.twitter.com. -81.178.31.88.in-addr.arpa. -mx2.mail.eu.yahoo.com. -i32.tinypic.com. -fisgoneo.blogspot.com. -google.com. -www.joystiq.com. -ovejaquebalabocadoquepierde.blogspot.com. -mx.ntcom.ru. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -12.79.250.190.in-addr.arpa. -mail.pioneeris.net. -a.root-servers.net. -devices.live.com. -dns.msftncsi.com. -mail2.idesign.com. -64.202.128.189.in-addr.arpa. -247.67.228.189.in-addr.arpa. -www.torrentman.com. -mvc.break.com. -media.adxpansion.com. -cerealmx.quepasa.com. -clients1.google.com. -email.dropsend.com. -sn1msg2010531.gateway.messenger.live.com. -www.comcast-deals.info. -ds.serving-sys.com. -oojk2ck8t.21sq. -www.facebook.com. -mail.bettysshop.com. -dl.google.com. -xentric.deviantart.com. -mx.direxions.com. -api.mybrowserbar.com. -ssl.gstatic.com. -b.scorecardresearch.com. -hcjdazlivat.cc.domain_not_set.invalid. -kbr.com. -www.socialgrowthtechnologies.com. -profile.ak.fbcdn.net. -ohota-barex.ru. -api.twitter.com. -connect.facebook.net. -gordon-silber.com. -crl.microsoft.com. -query.nytimes.com. -164.115.172.201.in-addr.arpa. -antonriot.ru. -212.130.240.85.in-addr.arpa. -mac.com. -external.ak.fbcdn.net. -2.224.195.176.in-addr.arpa. -_164_71_9. -img7.imagevenue.com. -um18.eset.com. -mail.awlindustries.com. -qbar.book.qq.com. -www.mspbs.gov.py. -150.246.19.187.in-addr.arpa. -cmts.cmm.msu.ru. -checkip.dyndns.com. -www.adobe.com. -www.thegeneral.com. -a.root-servers.net. -75.95.218.186.in-addr.arpa. -a.root-servers.net. -m.addthisedge.com. -up.e7s.net. -pinme.ru. -a.root-servers.net. -arxivblog.com. -www.apple.com. -w:5lv9:ve.h26v8v6f. -ds.serving-sys.com. -www.statefarm.com. -19.247.121.109.in-addr.arpa. -parroquiadebarciela.org. -flagerschools.com. -d3lvr7yuk4uaui.cloudfront.net. -73.91.68.94.in-addr.arpa. -www.edenred.es. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.skykid.org. -24.media.tumblr.com. -www.cdevision.com. -mypmfloan.com. -photos-e.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -lienzogazules.wordpress.com. -www.gstatic.com. -mail.omnihomesinc.com. -www.update.microsoft.com. -es-es.facebook.com. -www.google.com. -l9h64srgl.k63c2y2h. -forum.4shared.com. -googleads.g.doubleclick.net. -www.buzzeum.com. -29.116.46.207.in-addr.arpa. -mail2.ringpower.com. -ottawaplastics.com. -gimail.af.mil. -60.70.38.186.in-addr.arpa. -0-310.channel.facebook.com. -api-read.facebook.com. -88.80.130.213.in-addr.arpa. -dns.msftncsi.com. -platform.twitter.com. -238.247.114.186.in-addr.arpa. -planeta-hot.blogspot.com. -google.com. -www.youtube.com. -sp.cwfservice.net. -www.gstatic.com. -95c91792.realfiles.net. -162.252.9.177.in-addr.arpa. -googleads.g.doubleclick.net. -multimediajuegosyprogramas.blogspot.com. -www.adultizle.net. -sites.google.com. -135.194.55.187.in-addr.arpa. -75.41.165.83.in-addr.arpa. -a.root-servers.net. -www.sharethis.com. -www.5starcosmetics.co.uk. -84.18.76.189.in-addr.arpa. -biltmorebaptist.com. -163.51.173.201.in-addr.arpa. -mailserver.rkprint.com. -a1003.w41.akamai.net. -s.youtube.com. -_512_31_2. -www.unitedelectricalservices.com.au. -xefevsma1.69pe. -dv57qk7uv.01kk. -220.26.74.187.in-addr.arpa. -_ldap._tcp. -butterfield.k12.mn.us. -degerencia.com. -tc24.easythumbhost.com. -api.twitter.com. -104.139.17.201.in-addr.arpa. -api-read.facebook.com. -www.google.com. -_282_00_4. -sc2.rules.mailshell.net. -6.105.68.201.in-addr.arpa. -www.mayflowerfamilies.com. -paradiseartists.com.s10a1.psmtp.com. -www.bangkokbargirl.com. -plus.google.com. -jalisco.milenio.com. -photos-c.ak.fbcdn.net. -www.youtube.com. -www.belote-en-ligne.fr. -de-de.facebook.com. -www.intel.com. -ajax.googleapis.com. -185.6.36.186.in-addr.arpa. -www.google-analytics.com. -ccso.fr. -117.220.20.58.in-addr.arpa. -ads.adxpose.com. -stratus.com.br. -css.wlxrs.com. -js.revsci.net. -www.wheredidugetthat.com. -dotmed-images.s3.amazonaws.com. -152.129.203.190.in-addr.arpa. -inlinethumb09.webshots.com. -viv.ebay.ie. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.facebook.com. -suddenlinke.net. -_ldap._tcp. -www.searchqu.com. -psgw.t-mobilesgws.com. -rad.msn.com. -madolcevita.canalblog.com. -a.root-servers.net. -profile.ak.fbcdn.net. -www.yangmi.com. -vegweb.com. -mavericklogistics.com. -smtp.mourik.com. -a2.sphotos.ak.fbcdn.net. -translate.googleapis.com. -google.com. -inbound.trektours.com.netsolmail.net. -pixel.quantserve.com. -accounts.youtube.com. -shop.frontarmy.com. -62.101.69.189.in-addr.arpa. -www.youtube.com. -mx2.archirodon.net. -35.238.57.62.in-addr.arpa. -138.95.150.187.in-addr.arpa. -support.google.com. -a8.sphotos.ak.fbcdn.net. -stats.beaconads.com. -154.97.237.98.in-addr.arpa. -ts3.mm.bing.net. -a6.sphotos.ak.fbcdn.net. -a78srlmfd.n17i7f6q. -www.maltatexo.com.mx. -0-167.channel.facebook.com. -104.176.161.109.in-addr.arpa. -74.8.238.189.in-addr.arpa. -img703.imageshack.us. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -photos-d.ak.fbcdn.net. -mangacan.blogspot.com. -dhp.com. -photos-b.ak.fbcdn.net. -223.206.236.99.in-addr.arpa. -www.facebook.com. -chatenabled.mail.google.com. -smtp1.qatar-med.cornell.edu. -optimumreturn.com.s7a1.psmtp.com. -andreaandreanavarretemarn04-andrea.blogspot.com. -accountservices.msn.com. -50.226.93.186.in-addr.arpa. -absolute-bikini.com. -fbcdn-sphotos-a.akamaihd.net. -www.googleadservices.com. -smtp.cobantur.com. -bbcore.cloudapp.net. -developers.facebook.com. -eolapaz2.blogspot.com. -mail.google.com. -_284_43_8. -js.admeld.com. -server1.torrenzano.com. -188.177.232.190.in-addr.arpa. -g-ecx.images-amazon.com. -www.davedubya.com. -pixel.facebook.com. -39-courier.push.apple.com. -hoymusic.com. -creative.ak.fbcdn.net. -www.citedusexe.com. -a.root-servers.net. -233.7.147.190.in-addr.arpa. -ringo.com. -davesnotepad.blogspot.com. -10marnellcorrao.com.inbound10.mxlogic.net. -img.youtube.com. -external.ak.fbcdn.net. -www.msftncsi.com. -weddings.about.com. -sro.whatsapp.net. -pagead2.googlesyndication.com. -fls-sccmgl01.pfaff.local. -www.veithsymposium.org. -mail.btc.net. -notifier.avira.com. -retracker.hotplug.ru. -a1005.w42.akamai.net. -static.4shared.com. -mail.firstmerc.com. -www.warrs.com. -142.195.206.200.in-addr.arpa. -a.root-servers.net. -ipm.bitdefender.com. -backup-bc.mail-relay.com. -241.31.63.189.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -getprof.de.np.community.playstation.net. -mail.eldacc.co.za. -palax.kirov.ru. -115.26.170.189.in-addr.arpa. -profile.ak.fbcdn.net. -_303_11_0. -aol.com. -profile.ak.fbcdn.net. -mystartantiphishing.com. -mail.yiron.org.il. -ch.roskzn.ru. -www.laboratoryequipment.com. -api.facebook.com. -itunes.apple.com. -www.facebook.com. -www.googletagservices.com. -www.google.com. -www.maturetubesite.net. -20minutos.feedsportal.com. -www.facebook.com. -fr.maps.yahoo.com. -aka-cdn-ns.adtech.de. -fr.webrep.avast.com. -a.root-servers.net. -caminosdepoesia123.foro-colombia.net. -www.historyforsale.com. -cgp.pu.ru. -151.204.31.190.in-addr.arpa. -ec.atdmt.com. -www.infoempleo.com. -203.107.25.84.in-addr.arpa. -www.facebook.com. -connect.facebook.net. -thumbs.ass4all.com. -wiredepicenter.disqus.com. -www.google-analytics.com. -groups.google.com.mx. -solutionmyworking.com. -janakipattiskitchen.blogspot.com. -226.204.106.187.in-addr.arpa. -aspuru.unix.fas.harvard.edu. -gidrogroup.ru. -www.tsumorichisato.com. -imp-6.mail.tiscali.it. -148.33.87.24.in-addr.arpa. -flash.quantserve.com. -photos-c.ak.fbcdn.net. -m.google.com. -c7.zedo.com. -247.157.41.68.in-addr.arpa. -estede-m.ru. -www.jordanalmonds.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -107.234.251.88.in-addr.arpa. -eramatarealty.com. -plus.google.com. -www.riotsweb.com. -www.cineplus.ch. -api.bing.com. -8.105.127.200.in-addr.arpa. -ap.jil.com. -upload.traidnt.net. -www.google-analytics.com. -www.bywifi.com. -facebook.net.dnsbl7.mailshell.net. -dns.msftncsi.com. -p.rightaction.com. -104.12.169.189.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -stuy.edu. -37.143.253.159.in-addr.arpa. -x4w19xc8e.93wa. -plusone.google.com. -a.root-servers.net. -apple-mobile.query.yahooapis.com. -28.media.tumblr.com. -cartas_clow.frikitest.com. -s-static.ak.facebook.com. -adrianarojaspacheco.wordpress.com. -adserving.cpxinteractive.com. -24.18.93.114.in-addr.arpa. -toolbarqueries.clients.google.com. -www.goojue.com. -www.ultimatelakehouston.com. -www.aastra.com. -s0.2mdn.net. -www.google-analytics.com. -mail.nimi24.com. -shore.net. -pt-br.facebook.com. -sp.cwfservice.net. -mail.bannerbatterien.com. -p06-contacts.icloud.com. -clothing.shop.ebay.com. -176.93.206.190.in-addr.arpa. -s6asmj1zy.k08f7n4q. -safebrowsing-cache.google.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.juegos.com.cdngc.net. -plushkacraft.blogspot.com. -58.29.53.186.in-addr.arpa. -dns.msftncsi.com. -www.wordreference.com. -i3.ytimg.com. -pubads.g.doubleclick.net. -hatch.com.au. -191.150.142.75.in-addr.arpa. -anticap.files.wordpress.com. -es.justin.tv. -www.tirateunpalo.net. -cs9663.vk.com. -www.google-analytics.com. -hplusson.com. -175.241.23.186.in-addr.arpa. -onelinkpr.net. -personalityl.ru. -ocsp.verisign.com. -www.kwausa.com. -cdn.api.twitter.com. -hernanbartra.blogspot.com. -www.youtube.com. -newsrss.bbc.co.uk. -211.9.139.190.in-addr.arpa. -www.youtube.com. -a4.sphotos.ak.fbcdn.net. -cherryredcasino.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -musica.temadictos.org. -postmaster.co.uk. -external.ak.fbcdn.net. -blog3.fc2.com. -www.solounminuto.org.ar. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -newsinfo.inquirer.net. -signlite.com. -cdmsllc.com. -megabook.ru. -97.69.118.200.in-addr.arpa. -static.adwired.mobi. -www.facebook.com. -a2.sphotos.ak.fbcdn.net. -antologia-de-poesia.blogspot.com. -amazon-s.maxthon.com. -ads.yimg.com. -slc.manserve.com. -office.azbukavkusa.ru. -www.bing.com. -photos-b.ak.fbcdn.net. -cf.rr.com. -caballerosdelaordendelsol.blogspot.com. -www.kpm-usa.com. -mx3.hotmail.com. -mail.cg02.fr. -4luq47dwi.q62o6p8x. -16.147.220.66.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -i4.ytimg.com. -s0.2mdn.net. -imgserv.co.uk. -rad.msn.com. -www.sep.pue.gob.mx. -mx2.meisterseelig.com. -fbcdn-photos-a.akamaihd.net. -partner.directadvert.ru. -royalsociety.ru. -www.cafeteritas.com. -carolwoods.org. -72.51.7.199.in-addr.arpa. -curtisbrown.com.au. -84.25.168.192.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -www.nytimes.com. -tsm05.eset.com. -168.137.99.85.in-addr.arpa. -www.public-trust.com. -tc.v9.cache3.c.youtube.com. -www.facebook.com. -www.4kotob.com. -www.digi-panel.com. -trevorhowell.wanadoo.co.uk. -snacho.ru. -rssgov.windows.microsoft.com. -advolution.de. -152.11.243.201.in-addr.arpa. -www.adobe.com. -es-la.facebook.com. -lqp1muko6.53us. -static.ak.fbcdn.net. -google.com. -google.com. -a4.sphotos.ak.fbcdn.net. -176.228.148.90.in-addr.arpa. -www.crunchbase.com. -banashare.com. -216.225.193.190.in-addr.arpa. -218.216.87.186.in-addr.arpa. -jjjjjjjjjj.xsocks.net. -209.18.253.190.in-addr.arpa. -www.shoutcastunlimited.com. -fr-fr.facebook.com. -d2089471.xoom.it. -visualpeacemakers.org. -92.105.127.201.in-addr.arpa. -medals.bizrate.com. -db11.spamcatcher.net. -ds.addthis.com. -redtube.com.hypestat.com. -smtap1.systems.smu.edu. -186.63.0.10.in-addr.arpa. -safebrowsing.clients.google.com. -latam.msn.com. -prod-nr203.voxer.com. -p.twimg.com. -mail.dhart.net. -cgjeaf.com. -_035_61_8. -usadanet.net. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -go.microsoft.com. -warrendalesales.com. -www.alpamare.ch. -tv4s11nsq.24vh. -www.facebook.com. -s.ytimg.com. -controldevices.com. -38.8.171.189.in-addr.arpa. -asdjk.com. -graph.facebook.com. -www.joepastry.com. -bt.gamesir.com. -modpodgerocks.blogspot.com. -155.173.205.190.in-addr.arpa. -elcomercio.pe. -www.tecandsup.com. -photos-f.ak.fbcdn.net. -nxx.com. -doc.verycd.com. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -mx.youtube.com. -comevamail.com. -www.completemedicalservices.com. -www.bestmovietrailer.info. -a5.sphotos.ak.fbcdn.net. -leydig.com. -fbcdn-sphotos-a.akamaihd.net. -www.softahead.com. -a.root-servers.net. -w.sharethis.com. -a2.sphotos.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -www.lancope.com. -photos-b.ak.fbcdn.net. -mail.delphiconstruction.net. -ttlrcct2.qianqian.com. -plugins.longtailvideo.com. -a151.d.akamai.net. -a5.sphotos.ak.fbcdn.net. -servedby.adxpose.com. -203.15.0.192.in-addr.arpa. -brianproperties.com.s8b2.psmtp.com. -program.avast.com. -146.16.0.186.in-addr.arpa. -cjkingent.blogspot.com. -apps.facebook.com. -api.twitter.com. -www.facebook.com. -mi-touch-y-yo.blogspot.com. -fbcdn-profile-a.akamaihd.net. -download115.avast.com. -www.saary-up.com. -tag.admeld.com. -e566.b.akamaiedge.net. -yahoo.com. -a.root-servers.net. -evolutionsportsscience.com. -231.186.198.187.in-addr.arpa. -b.scorecardresearch.com. -www.google-analytics.com. -support.google.com. -agro.com.ru. -rocha.la. -d3lyqimqlfvq37.cloudfront.net. -acv.com.au. -a.root-servers.net. -a.root-servers.net. -www.oxfamblogs.org. -46.courier-push-apple.com.akadns.net. -a948.g.akamai.net. -www.pizap.com. -ads2.iforex.com. -a.root-servers.net. -165.42.78.201.in-addr.arpa. -t0.gstatic.com. -denison01.denisonhydraulics.com. -www.bywifi.com. -t0.gstatic.com. -hi-in.facebook.com. -www.elbebedemama.net. -177.245.153.189.in-addr.arpa. -www.google.com. -vector.info. -miblog-especialdominiotk.blogspot.com. -photos-c.ak.fbcdn.net. -secure.wlxrs.com. -bcovekk.fcod.llnwd.net. -www.vintaxe.com. -www.sennheiser-sites.com. -clpav.fr. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -mx1.ceres.k12.ca.us. -s-static.ak.fbcdn.net. -googleads.g.doubleclick.net. -exitmedia.net. -support.google.com. -78.195.86.77.in-addr.arpa. -im3yy873m.y29t3i4l. -www.gstatic.com. -144.201.207.190.in-addr.arpa. -apis.google.com. -98.147.227.190.in-addr.arpa. -theswingingsixties.tumblr.com. -csf2-1.yobt.tv. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-h.ak.fbcdn.net. -200.200.10.186.in-addr.arpa. -_436_35_9. -staging-beacon-1.newrelic.com. -p.ebaystatic.com. -88.70.249.201.in-addr.arpa. -ads.tlvmedia.com. -a998.mm1.akamai.net. -232.240.58.201.in-addr.arpa. -www.facebook.com. -mail.porterkhouwconsulting.com. -www.expansion.net. -173.57.147.187.in-addr.arpa. -reefdevelopment.com. -dsn9.d.skype.net. -7.77.51.190.in-addr.arpa. -liveupdate.symantecliveupdate.com. -96.242.84.200.in-addr.arpa. -www.facebook.com. -s.ytimg.com. -www.eternellepharma.com. -yahoo.com. -85.102.160.187.in-addr.arpa. -mail.crestfoods.com. -groups.live.com. -gfx2.hotmail.com. -mail.sigmamail.com. -www.facebook.com. -ec2-50-19-48-225.compute-1.amazonaws.com. -smtp.fairadsl.co.uk. -chrome.google.com. -apps.facebook.com. -www.sony.com.mx. -zopf.ru. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -83.230.212.186.in-addr.arpa. -www.conduit.com. -creative.ak.fbcdn.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.fileserve.com. -www.update.microsoft.com. -rad.msn.com. -mail.intermountaintruck.com. -ads.weownthetraffic.com. -www.hotels.com. -fsldjx.en.made-in-china.com. -simplifiedofficesystems.com. -profile.ak.fbcdn.net. -. -connect.facebook.net. -geoip.vmn.net. -toons.kharabeesh.com. -d1.openx.org. -72.153.130.201.in-addr.arpa. -www.careerjet.com.mt. -www.suvtracker.com. -books.google.com. -mx1.vostok.ru. -www.gritos.com. -a.root-servers.net. -photos-d.ak.fbcdn.net. -fettemama.org. -www.facebook.com. -a.root-servers.net. -haymarket.subscribeonline.co.uk. -apple.com. -smtp.hereweare.de. -images.cdn.redtube.com. -s.youtube.com. -animeone.com. -www.google.com. -mail.eyrisgroup.com. -www.netvibes.com. -www.enelsexo.com. -dantextil.dk. -aalcliquers.files.wordpress.com. -250.236.242.88.in-addr.arpa. -www.lpn-to-rn.org. -31.58.200.190.in-addr.arpa. -i.streetmobster.net. -www.adobe.com. -a3.sphotos.ak.fbcdn.net. -mobiletg.com. -majesticfunding.net. -euro.mediotiempo.com. -254.233.190.186.in-addr.arpa. -apps.facebook.com. -35.116.168.192.in-addr.arpa. -speaklolcat.com. -photos-a.ak.fbcdn.net. -www.familiainstitucional.com. -www.peliculas-flv.com. -www.thefashionshow.com. -ar-ar.facebook.com. -mail.dthsculptor.com. -static.ak.fbcdn.net. -gfx2.hotmail.com. -mail.orsin.net. -toastmasters.org. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -earthworksstudio.co.uk. -s1.lemde.fr. -0-167.channel.facebook.com. -imail.mk. -google.com. -www.unonoticias.com. -a.root-servers.net. -nsx.sec.np.dl.playstation.net. -touch.facebook.com. -208.212.158.95.in-addr.arpa. -ads.yimg.com. -footballer.com. -adserving.cpxinteractive.com. -login.oscar.aol.com. -googleads.g.doubleclick.net. -www.keeway-america.com. -photos-a.ak.fbcdn.net. -24.114.41.92.in-addr.arpa. -17.119.201.187.in-addr.arpa. -c0013680.r32.cf1.rackcdn.com. -mailserver.the-hopes.com. -pixel.facebook.com. -profile.ak.fbcdn.net. -r.l.admob.com. -us.bc.yahoo.com. -csi.gstatic.com. -a.root-servers.net. -thecodingmassacre.wordpress.com. -mail.wpi-europe.com. -www.facebook.com. -plusone.google.com. -r._dns-sd._udp.0.244.16.172.in-addr.arpa. -a937.g.akamai.net. -checkip.dyndns.com. -pokah.ru. -a1.sphotos.ak.fbcdn.net. -del.icio.us. -anthrowebstage.endecaondemand.net. -206.13.14.88.in-addr.arpa. -evsecure-ocsp.verisign.com. -registration.mercadolibre.com.mx. -150.171.176.190.in-addr.arpa. -www.snowtoit.com. -37.137.237.64.in-addr.arpa. -44.183.82.189.in-addr.arpa. -3-courier.push.apple.com. -m.hotmail.com. -www.facebook.com. -hollyta.en.alibaba.com. -www.youtube.com. -sophos.cbtri.com. -ads.united.no. -static.ak.fbcdn.net. -staff.detik.com. -www.sound.org. -enterprise-secure-registration.com. -crl.verisign.com. -80.166.125.186.in-addr.arpa. -pneutronics.com. -tcr.tynt.com. -www.nondisco.com. -ocio.mundijuegos.com. -www.google-analytics.com. -watashikimakesou.blogspot.com. -www.fundacionclaudionaranjo.com. -www.youtube.com. -bdm.careerbuilder.com. -238.113.166.190.in-addr.arpa. -idrops.terra.com.pe. -www.bridgetmonet.net. -b._dns-sd._udp.lan. -www.aljazeera.com. -br.pps.tv. -206.163.252.72.in-addr.arpa. -widgets.amung.us. -hightechadv.com. -www.nlm.nih.gov. -www.google.com. -a.root-servers.net. -www.dsttspain.com. -www.facebook.com. -rt.liftdna.com. -www.facebook.com. -a6.sphotos.ak.fbcdn.net. -photos-c.ak.fbcdn.net. -safebrowsing.clients.google.com. -s1-word-edit.vo.msecnd.net. -clients2.google.com. -www.yournextskirt.com. -29.209.57.187.in-addr.arpa. -a.root-servers.net. -www.tecnologia-e.com. -a.root-servers.net. -a.root-servers.net. -googleads.g.doubleclick.net. -time.nist.gov. -www.youtube.com. -contrib.com. -jndlparmbjimenvchwxek.sc. -maktoob.omg.yahoo.com. -s-static.ak.fbcdn.net. -v1.nonxt1.c.android.clients.google.com. -29.53.21.187.in-addr.arpa. -w5v1ulxw2.04kd. -a8.sphotos.ak.fbcdn.net. -profile.ak.fbcdn.net. -dingtao333.3322.org. -dc105.4shared.com. -apps.facebook.com. -platform.ak.fbcdn.net. -csi.gstatic.com. -tc23.easythumbhost.com. -scripts. -102.15.229.190.in-addr.arpa. -fantasyart.ru. -ad.doubleclick.net. -heartbeat.belkin.com. -usersystem783aa.ru. -7mxjnpfl3.e01g5z0j. -135.119.217.87.in-addr.arpa. -130.153.56.186.in-addr.arpa. -www.livejournal.com. -paraguay.clasificadoya.com. -karaokekm3.com. -a6.sphotos.ak.fbcdn.net. -174.230.209.201.in-addr.arpa. -msnvidweb.vo.msecnd.net. -mail.mnui.com. -feeds.ovi.com. -promo.badoink.com. -www.fc-moto.com. -static.nfilesystem.com. -static.ak.fbcdn.net. -intermed.com. -132.95.158.200.in-addr.arpa. -www.campbells.com.mx. -a.mx.moatsconsulting.com. -v3.nonxt5.c.youtube.com. -30.227.107.46.in-addr.arpa. -www.fayereaganclub.com. -pixel.facebook.com. -photos-a.ak.fbcdn.net. -banners.killtro.com. -apis.google.com. -ads.bluelithium.com. -switch.atdmt.com. -132.113.97.93.in-addr.arpa. -static.ak.fbcdn.net. -dnl-01.geo.kaspersky.com. -mail.betsbv.com. -s3pu.blogspot.com. -www.visa.com.ar. -d2x3khweh61zds.cloudfront.net. -a.root-servers.net. -www.rockchalktalk.com. -bloger.co. -youcantcallitit.com. -www.sparwelt.de. -www.samwha.com. -external.ak.fbcdn.net. -_037_08_7. -img.yktravelphoto.com. -215.125.153.201.in-addr.arpa. -ixefirl:h.57bm. -yugiohsanluis.blogspot.com. -a7.sphotos.ak.fbcdn.net. -content.nuvid.com. -kellpkthpxrmppdr.info. -ot2wp1mu:.05yd. -googleads.g.doubleclick.net. -a-0.19-a20c8079.d1b0083.1518.19d4.3ea1.410.0.1pgnhn5gu7ln3cqlh44lr7nf2j.avqs.mcafee.com. -47.149.220.66.in-addr.arpa. -134.100.70.58.in-addr.arpa. -9gag.com. -mx.folksam.se. -img843.imageshack.us. -fbcdn-profile-a.akamaihd.net. -230.104.111.78.in-addr.arpa. -23.159.102.201.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -teredo.ipv6.microsoft.com. -3.bp.blogspot.com. -www.soloimportastu.com. -a4.sphotos.ak.fbcdn.net. -lycoos.com. -counterpixel.beiersdorf.com. -static.ak.fbcdn.net. -hi-in.facebook.com. -a.root-servers.net. -239.203.14.187.in-addr.arpa. -google.com. -www.ownerchats.com. -www.mugutu.com. -221.165.83.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -mail.dgen.com. -mfe5.polimi.it. -www.wmaker.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -134.240.194.90.in-addr.arpa. -dg.specificclick.net. -85.167.21.189.in-addr.arpa. -o1.t26.net. -www.mercator-publicitor.fr. -www2.cbox.ws. -a1.sphotos.ak.fbcdn.net. -1.bp.blogspot.com. -. -sites.google.com. -balticbulges.blogspot.com. -10.122.0.190.in-addr.arpa. -cdn.ad4game.com. -video.google.com.mx. -api-read.facebook.com. -camba.com. -a4.sphotos.ak.fbcdn.net. -87.190.56.186.in-addr.arpa. -safebrowsing-cache.google.com. -62.94.120.186.in-addr.arpa. -nswlant.navy.mil. -video-stats.l.google.com. -myworld.ebay.com. -time.windows.com. -ocsp.verisign.com. -syednetworks.com. -246.53.66.187.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -tools.google.com. -safebrowsing-cache.google.com. -158.58.69.190.in-addr.arpa. -152.129.79.84.in-addr.arpa. -a.root-servers.net. -saur.spbnit.ru. -photos-a.ak.fbcdn.net. -twitter.com. -billing.sharo4ka.ru. -elrecreodelasmamis.foroactivo.com. -tetonvalley.net.microserv.s5a1.psmtp.com. -local-bay.contacts.msn.com. -clients1.google.com. -ology.com. -27.199.201.190.in-addr.arpa. -www.juegosdiarios.com. -vm1.yorku.ca. -12.240.16.95.in-addr.arpa. -cdn.api.twitter.com. -juegosdemaquillar.com.mx. -fr-fr.facebook.com. -a3.sphotos.ak.fbcdn.net. -108.249.44.200.in-addr.arpa. -echo.edge.messenger.live.com. -140.208.224.189.in-addr.arpa. -164.68.93.186.in-addr.arpa. -www.awaite. -d.mybustymilf.com. -sundries.ru. -tmss-p.activeupdate.trendmicro.com. -platform.twitter.com. -te.net.ru. -13.129.156.75.in-addr.arpa. -grossaer.ru. -a5.sphotos.ak.fbcdn.net. -homeinstead.com.s5a1.psmtp.com. -a.root-servers.net. -323436891.mail.outlook.com. -coweta.lib.ok.us. -www.allmetsat.com. -tairesources.com. -informativos.net. -s-static.ak.fbcdn.net. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -www.bbc.co.uk. -244.13.208.189.in-addr.arpa. -a.root-servers.net. -i2.ytimg.com. -csi.gstatic.com. -sn1msg2010733.gateway.messenger.live.com. -photos-f.ak.fbcdn.net. -_644_73_6. -a.root-servers.net. -s-static.ak.fbcdn.net. -www.farmacopedia.com.mx. -151.83.131.50.in-addr.arpa. -srv.main.ebayrtm.com. -atd.com. -s.ytimg.com. -kvnews.ru. -photos-a.ak.fbcdn.net. -www.listaviral.com. -google.com. -14.184.82.186.in-addr.arpa. -ad.doubleclick.net. -ecx.images-amazon.com. -www.theserved.com. -www.agri-pulse.com. -cdn.tynt.com. -7pdqahw6d.r80t1q9z. -static.ak.fbcdn.net. -147.9.109.79.in-addr.arpa. -www.roshan.mobie.in. -join.gayasianamateurs.com. -www.blog-emprendedor.info. -api-read.facebook.com. -l.live.net. -ci.atlanta.ga.us. -10.1.168.192.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -comark.corp.com. -. -tc.v5.cache7.c.youtube.com. -rospres.com. -twitter.com. -aka-cdn-ns.adtech.de. -101.213.143.95.in-addr.arpa. -www.filmdept.com. -twitter.com. -56.214.57.186.in-addr.arpa. -a.root-servers.net. -www.micro-machine-shop.com. -ocsp.verisign.com. -profile.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -www.facebook.com. -profile.ak.fbcdn.net. -fr.boats.com. -rblns75.mailshell.net. -developers.facebook.com. -img802.imageshack.us.home. -205.4.66.201.in-addr.arpa. -teredo.ipv6.microsoft.com. -thesaurus.com. -home.disneylatino.com. -pmanet.org. -jv.wikipedia.org. -www.glendalenewspress.com. -a.root-servers.net. -mx1.gddinstrumentation.com. -fm100.fm.monroeclinic.org. -0-jf-w.channel.facebook.com. -www.mintebay.com. -apiit.edu.my. -fbcdn-photos-a.akamaihd.net. -i3.bzpics.com. -fxozjsbm6.j35r5o3r. -170.193.102.177.in-addr.arpa. -170.21.220.189.in-addr.arpa. -accreditation.aus.com. -kerrmachine.com. -a.root-servers.net. -www.mikeybustos.ca. -tcgroup.net. -static02.linkedin.com. -www.anyads.lk. -oldnavy.gap.com. -unifi. -google.com. -photos-d.ak.fbcdn.net. -1.231.21.187.in-addr.arpa. -www.vklogger.com. -www.fizik.it. -126.195.172.201.in-addr.arpa. -mail.google.com. -toolbar.google.com.mx. -db2.stb00.s-msn.com. -ppspackaging.com.inbound15.mxlogicmx.net. -photos-c.ak.fbcdn.net. -cust14283-2.in.mailcontrol.com. -www.miniclip.com. -mail.google.com. -192.143.248.201.in-addr.arpa. -rd.apmebf.com. -master14.teamviewer.com. -cdn.gigya.com. -www.findppc.net. -photos-f.ak.fbcdn.net. -www.newy8games.com. -mgw.serverparkering.no. -profile.ak.fbcdn.net. -217.163.186.86.in-addr.arpa. -comcolease.com.s5b2.psmtp.com. -mx3.start.ca. -76.19.44.187.in-addr.arpa. -02261e64b3.org. -150.8.0.10.in-addr.arpa. -lechim-bolezni.ru. -50.177.168.192.in-addr.arpa. -recover-my-files.softonic.com. -api.modegallerian.se. -fe.brandreachsys.com. -62.29.117.200.in-addr.arpa. -morrieabramson.com. -scrub.bluekloud.com. -titanium30-en.url.trendmicro.com. -apps.facebook.com. -51.0.0.192.in-addr.arpa. -syndication.exoclick.com. -ar.y8.com. -cmbinfo.com.s8b1.psmtp.com. -jj13bk2j1.91nd. -gui.m.mofos.com. -_045_80_9. -isatap.uqc.ne.jp. -orcart.facebook.com. -138.171.48.190.in-addr.arpa. -b-0.19-230f4008.1.1518.19d4.3ea1.410.0.65wlql4n1en4fh5da6mrnh7gai.avqs.mcafee.com. -photos-b.ak.fbcdn.net. -iitem.ru. -ocsp.comodoca.com. -pbsmnwubnxhutgmod.ms. -posta39a.mailbeta.libero.it. -badge.facebook.com. -www.kmplayer.com. -mail.wilcopm.com. -bbmwlaw.com.1.arsmtp.com. -www.videobb-ideal.com. -ibahia.globo.com. -. -sobrecostarica.blogspot.com. -a.root-servers.net. -www.caltagironeeditore.it. -59.2.164.189.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -www.google.com. -the-uuu.com. -i.w.inmobi.com. -webcache.googleusercontent.com. -131.114.139.187.in-addr.arpa. -s-static.ak.fbcdn.net. -mail.shoptools.ru. -apps.facebook.com. -ecosca.mass.rbc.ru. -maconleadersrealtors.com. -pipocacombo.com. -www.youtube.com. -api.facebook.com. -dns.msftncsi.com. -i1.uploadem.com. -clickmaster.xtgem.com. -6.51.67.70.in-addr.arpa. -profile.ak.fbcdn.net. -de.wikibooks.org. -photos-f.ak.fbcdn.net. -140.132.46.186.in-addr.arpa. -48.81.95.201.in-addr.arpa. -dns.msftncsi.com. -84.228.102.201.in-addr.arpa. -yavmamemo.deviantart.com. -contacts.msn.com.nsatc.net. -ocsp.verisign.com. -aol.com. -pabloyyo.com. -german-uribe.blogspot.com. -fr-fr.facebook.com. -a.root-servers.net. -218.84.12.189.in-addr.arpa. -www.forosdelweb.com. -a7.sphotos.ak.fbcdn.net. -4-1.qlty.finarea.ch. -a.root-servers.net. -www.juegosdevestirfamosos.net. -_924_86_1. -claydyergess.tk. -huaren.su. -8.75.188.190.in-addr.arpa. -s-static.ak.fbcdn.net. -static.ak.fbcdn.net. -soundcloud.com. -elminaya.blogspot.com. -wlan.lycos.de. -cdn.api.twitter.com. -lubimoff.msk.ru. -a.root-servers.net. -205.166.141.120.in-addr.arpa. -www.tubemonsoon.com. -dibisrl.com. -m.badjojo.com. -a1404.w41.akamai.net. -6.103.153.186.in-addr.arpa. -static.ak.fbcdn.net. -136.149.120.190.in-addr.arpa. -googleads.g.doubleclick.net. -www.peliculas21.com. -229.144.179.189.in-addr.arpa. -cache-download.real.com. -c1617.sandai.net. -polypeck.ru. -www.solomonbrothers.com. -www.alimtyaz.com. -libera.com. -dmsas.com.s8a1.psmtp.com. -photos-g.ak.fbcdn.net. -ssl.gstatic.com. -www.amazon.com. -bfgb.files.wordpress.com. -_753_33_3. -www.google.com. -223.55.167.190.in-addr.arpa. -google.com. -mx1.iacna.com. -167.127.144.187.in-addr.arpa. -twitter.com. -183.196.84.200.in-addr.arpa. -servizio-pubblico.com. -www.iconj.com. -conduit.anybodyoutthere.com. -crl.microsoft.com. -www.mizukinana.jp. -16.253.137.187.in-addr.arpa. -www.adobe.com. -20minutos.feedsportal.com. -scholar.google.es. -www.youtube.com. -ajax.googleapis.com. -www.foxsportsla.com. -www.yorkpress.co.uk. -215.238.247.189.in-addr.arpa. -haverford.edu.s8a2.psmtp.com. -www.archiexpo.com. -i4.ytimg.com. -jsbcglobal.net. -www.robertbrault.com. -cdn.api.twitter.com. -news.err.ee. -ajax.googleapis.com. -a1.twimg.com. -photos-e.ak.fbcdn.net. -60.32.41.187.in-addr.arpa. -brucellosis.com. -fbcdn-sphotos-a.akamaihd.net. -photos-d.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.beijingtoday.com.cn. -hi-in.facebook.com. -a3.sphotos.ak.fbcdn.net. -www.delirica.com. -a7.sphotos.ak.fbcdn.net. -253.104.217.81.in-addr.arpa. -is.gd. -www.dollstory.eu. -i2.ytimg.com. -www.ozgurkocaeli.com.tr. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -34.114.74.190.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -www.youtube.com. -seabld.itn.ru. -s-static.ak.fbcdn.net. -cdn.flashtalking.com. -k9bhl94w3.16gn. -payment.socialgamenet.com. -dnl-01.geo.kaspersky.com. -_493_32_4. -mail.hubbardberry.com. -a.root-servers.net. -thelawstore.co.uk. -67.201.176.189.in-addr.arpa. -jigsaw.w3.org. -polskaviva.com. -mail.avu.org. -131.244.142.190.in-addr.arpa. -a.root-servers.net. -ad.adtegrity.net. -masae.deviantart.com. -www.pmi.org.in. -149.150.195.187.in-addr.arpa. -roverparts.spb.ru. -takio.com. -majeko.ru. -support.google.com. -banboon.com. -vfs.com.s10a1.psmtp.com. -www.eluniversaldelvalle.mx. -a.root-servers.net. -b._dns-sd._udp.0.73.168.192.in-addr.arpa. -chesterfield.k12.va.us. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -cache.internal.query.g06.yahoodns.net. -xxzrg8djy.37xo. -ingersoll-inc.com. -i.cdn.turner.com. -100.214.18.189.in-addr.arpa. -view.atdmt.com. -dl_dir.qq.com. -dtboot.orbitdownloader.com. -219.61.25.186.in-addr.arpa. -platform.twitter.com. -lyramondlicht.deviantart.com. -www.idiomasonline-ba.com.ar. -devices.live.com. -126.39.51.96.in-addr.arpa. -mail.cygnuscorp.com. -sweetgum.nybg.org. -www.panet.co.il. -a8.sphotos.ak.fbcdn.net. -4.1.168.192.in-addr.arpa. -www.stopbadware.org. -tmss.trendmicro.com. -api.facebook.com. -inbound.sgsproperties.com.netsolmail.net. -d2089876.xoom.it. -www.cakgames.com. -fs.motorolasolutions.com. -89.152.195.98.in-addr.arpa. -extremetracking.com. -crl3.digicert.com. -prenoms.doctissimo.fr. -webcache.googleusercontent.com. -www.farsiweb.ir. -mxh24.hichina.com. -www.vizio.com. -profile.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -mundicenter.pt. -billing.sharo4ka.ru. -mail.peteparks.com. -a.root-servers.net. -ntp.glb.nist.gov. -a.root-servers.net. -www.0zz0.com. -verizon.net. -grocerybiz.com.s8a1.psmtp.com. -192.168.34.201.in-addr.arpa. -76.217.139.190.in-addr.arpa. -166.142.160.187.in-addr.arpa. -jualanterkini.blogspot.com. -fs11.myvi.ru. -a4.sphotos.ak.fbcdn.net. -theforwardforum.blogspot.com. -safebrowsing-cache.google.com. -nipinxofutbol.blogspot.com. -ocsp.verisign.net. -www.original-vision.com. -249.108.79.187.in-addr.arpa. -g.msn.com.nsatc.net. -botrytis.polytechnique.fr. -fifo.com. -www.self.ox.ac.uk. -j::88wcuv.r19p2l8b. -87.16.57.187.in-addr.arpa. -152.184.55.65.in-addr.arpa. -cepram.org.ar. -1.0.168.192.in-addr.arpa. -twitter.com. -www.google.com. -clientalerts.ebay.com. -sinobbs.com. -independent.org. -drugstorenews.com. -a2.sphotos.ak.fbcdn.net. -groups.l.google.com. -mobilemaps.clients.google.com. -s0.2mdn.net. -a.root-servers.net. -www.sonico.com.mx. -lmliberty.files.wordpress.com. -adserver.adtech.de. -audit.303br.net. -accounts.google.com. -www.aewmerotica.com. -photos-d.ak.fbcdn.net. -max.ifd.uni.wroc.pl. -news.yahoo.com. -mx.harborinsurancegroup.com. -mail.google.com. -75.175.75.190.in-addr.arpa. -130.71.15.187.in-addr.arpa. -it-it.facebook.com. -elbuenvecino.com.mx. -a.root-servers.net. -www.circuloempresariosune.com. -touraero.spb.ru. -mx1.unicitynetwork.com. -pacificcoastimports.com. -190.101.50.186.in-addr.arpa. -4.77.168.66.in-addr.arpa. -franklin.kyschools.us. -qe8jid8px.12as. -a0.twimg.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -srsg.violenceagainstchildren.org. -588-async.olark.com. -photos-a.ak.fbcdn.net. -produccionmusical.org. -fukuya-k.co.jp. -balcakoyu.com. -safebrowsing.clients.google.com. -initialvision.com. -www.facebook.com. -img413.imageshack.us. -190.147.229.190.in-addr.arpa. -safebrowsing.clients.google.com. -plugin.maldi.tv. -aa.xml.slide.com. -photos-a.ak.fbcdn.net. -a.root-servers.net. -www.mozilla-europe.org. -client.akamai.com. -elsys.de. -nxcache.nexon.net. -perfectpay.com. -tomam.ru. -a1.sphotos.ak.fbcdn.net. -63.6d6963726f736f6674.636f6d.80h40041e86.webcfs00.com. -46.158.220.66.in-addr.arpa. -www.infolinks.com. -api.breaktimestudios.com. -cncsjz.line.p2pdl.baofeng.net. -49.30.78.189.in-addr.arpa. -spotlight-verlag.de. -84.211.144.189.in-addr.arpa. -tamcar.galeon.com. -sp.cwfservice.net. -2:iw9t7:u.n05r1n1r. -fbcdn-sphotos-a.akamaihd.net. -wix.com. -l.yimg.com. -134.55.156.187.in-addr.arpa. -facor.ru. -www.google-analytics.com. -time.stdtime.gov.tw. -i4.ytimg.com. -imgv2-4.scribdassets.com. -0.gravatar.com. -0.11-a30f2081.d0810b1.1518.19d4.3ea1.210.0.2pqgphplpzu9q1ej3p6m28uv2q.avqs.mcafee.com. -www.etnopsico.org. -sn3.mailshell.net. -exchange.volioytrejos.com. -365-async.olark.com. -profile.ak.fbcdn.net. -a.root-servers.net. -114.218.12.83.in-addr.arpa. -5.1.168.192.in-addr.arpa. -computerscan.com. -a.root-servers.net. -7nbeknju7.43vi. -images.dvdcollects.com. -static.app.widdit.com. -platform.ak.fbcdn.net. -_119_63_8. -css.wlxrs.com. -p2pupgrade.gamedl.qq.com. -196.15.95.190.in-addr.arpa. -js2.wlxrs.com. -amosrivera.com. -static.ak.fbcdn.net. -download.xbox.com. -www.blush4u.com. -www.genteloca.com. -crl.globalsign.net. -infocentertour.ru. -www.coniefoxdress.com. -news.mongabay.com. -231.230.121.76.in-addr.arpa. -news.google.com.mx. -mail.prodigy.net.mx. -63.1.168.192.in-addr.arpa. -0-257.channel.facebook.com. -www.all-4-home.net. -i4.ytimg.com. -whos.amung.us. -thecreaturehub.com.lan. -a.root-servers.net. -bitly.com. -init.ess.apple.com. -www.radiotorre.org. -coralhotels.com. -atna.net. -d1z5wd2gcq19yd.cloudfront.net. -ad.auditude.com. -a5.sphotos.ak.fbcdn.net. -a.root-servers.net. -142.134.175.187.in-addr.arpa. -www.plusgay.es. -www.facebook.com. -especiales.latino.msn.com. -google.com. -vp.sip.messenger.msn.com. -www.youtube.com. -www.google.com. -162.33.248.189.in-addr.arpa. -pearsoncustom.com.mail6.psmtp.com. -developers.facebook.com. -lvb.avg.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -0.260214.com. -lvb.avg.com. -mail.eatrightamerica.com. -www.facebook.com. -a.root-servers.net. -www.facebook.com. -xdsmhost.wellmark.com. -a.root-servers.net. -www.google-analytics.com. -mail.villagehamburg.com. -adcode.adengage.com. -a3.sphotos.ak.fbcdn.net. -creative.ak.fbcdn.net. -www.trinityatierra.com. -connect.facebook.net. -parlament-kbr.ru. -144.179.100.94.in-addr.arpa. -static.ak.fbcdn.net. -s0.2mdn.net. -ocsp.digicert.com. -www.acfas.org. -barakus.tiscali.com. -www.googleadservices.com. -static.ak.fbcdn.net. -blu.stj.s-msn.com. -www.taringa.net. -revistadcasa.uol.com.br. -allstarhomeloans.com. -letmewatch.name. -a1.sphotos.ak.fbcdn.net. -m.addthisedge.com. -www.ferrovial.com. -sterneagee.com. -w1197.photobucket.com. -224.147.99.190.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -s-external.ak.fbcdn.net. -www.gstatic.com. -www.juegosycoches.com. -wikimediafoundation.org. -www.geom.uiuc.edu. -www.igihe.com. -a4.sphotos.ak.fbcdn.net. -www.linkwithin.com. -gats.popcap.com. -es.youtube.com. -www.facetofacethemovie.com. -189.224.188.88.in-addr.arpa. -poetashispanicos.blogspot.com. -ksn2-12.kaspersky-labs.com. -zone28.hotwords.com.br. -negro004.com. -s.youtube.com. -losfueroscf.com. -wtol.com. -32.170.248.189.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -www.facebook.com. -www.limelife.com. -ksn1-11-part2.kaspersky-labs.com. -download767.avast.com. -www.starmedia.com. -82.247.231.201.in-addr.arpa. -webmail.beumer.com. -103.80.208.201.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -rules.securestudies.com. -yahoo.com. -ads.affbuzzads.com. -clients1.google.com. -photos-e.ak.fbcdn.net. -foxdeportes.com. -62.63.169.124.in-addr.arpa. -tracker.torrentbay.to. -www.sai.org.co. -202.94.122.200.in-addr.arpa. -track.hardcoretoons.com. -0-292.channel.facebook.com. -hi-in.facebook.com. -www.google.com. -www.revodvr.com. -8muy7vane.88hx. -schroff.com. -flashpirate.com. -a6.sphotos.ak.fbcdn.net. -b7dktcdu4.k87r2j0h. -jp.99chats.com. -secure.jwatch.org. -79.251.181.189.in-addr.arpa. -59.125.191.190.in-addr.arpa. -6.00.2900.3698.dnsbl7.mailshell.net. -twimg0-a.akamaihd.net. -t4.tagstat.com. -a286.phobos.apple.com. -profile.ak.fbcdn.net. -58.82.42.62.in-addr.arpa. -compfxnet.com. -nice-puppy.com. -sv.wikipedia.org. -gdata.youtube.com. -www.todoanimes.com. -1.courier-push-apple.com.akadns.net. -7daycatering.co.uk. -s9.addthis.com. -www.converthub.com. -com.ua. -25qd3ix24.i51d4x9f. -translate.google.com.mx. -hedltindia.com. -www.genogenogeno.com. -t2.gstatic.com. -rmd.atdmt.com. -bb624022.linkbucks.com. -www.altoatacama.cl. -valuerichonline.com. -teredo.ipv6.microsoft.com. -profile.ak.fbcdn.net. -iparadigms.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -m.facebook.com. -midas.org.uk. -equest.com. -21.152.248.201.in-addr.arpa. -kyuketsuki-usagi.blogspot.com. -www.vol-gta.com. -a.root-servers.net. -flindal.ru. -sadasdnwqjrrww.net. -a1984.phobos.apple.com. -128.2.14.186.in-addr.arpa. -uralsib-sk.ru. -sc.tom.com. -api.twitter.com. -234.13.206.196.in-addr.arpa. -phart.ru. -www.mywebproxies.com. -www.napcor.com. -profile.ak.fbcdn.net. -hgvjrr2pu.r86a6w5y. -184.47.250.201.in-addr.arpa. -www.dhl.com.uy. -www.google.com. -www.bezz41.skyrock.com. -www.picshared4free.com. -ke33aeg:m.a48a7y2z. -video.humanesociety.org. -vladgsound.wordpress.com. -time.chttl.com.tw. -columbuspolice.org. -agromash.by. -photos-h.ak.fbcdn.net. -www.imiclk.com. -oblogdeeoblogda.wordpress.com. -pipic.com.s5a1.psmtp.com. -187.63.111.189.in-addr.arpa. -36.128.93.190.in-addr.arpa. -data.mobclix.com. -kupperberg.com. -112.228.90.200.in-addr.arpa. -storage.conduit.com. -i4.ytimg.com. -photos-c.ak.fbcdn.net. -twoo.com. -youtube-ui.l.google.com. -telekbird.com.cn. -www.animacor.com. -_419_13_9. -es.888.com. -ocsp.verisign.com. -profile.ak.fbcdn.net. -apps.facebook.com. -platform.twitter.com. -ads.channelcapital.net. -googleads.g.doubleclick.net. -lazarus.elte.hu. -mail.phillipsind.com. -www.crankshaftcoalition.com. -pixel.facebook.com. -www.danielaperfumes.cl. -www.microsoft.com. -photos-b.ak.fbcdn.net. -time-a.netgear.com. -120.62.172.189.in-addr.arpa. -robrprsmtp01.csavgroup.com.br. -ad.xtendmedia.com. -orcart.facebook.com. -www.hoerzu.de. -www.dripirrigation.org. -tracker.bittorrent.am. -photos-f.ak.fbcdn.net. -not-mail.avfsrv.ru. -a.root-servers.net. -a.root-servers.net. -131.70.239.189.in-addr.arpa. -www.djcrazychris.de. -. -paris-dl.ru. -114.130.189.79.in-addr.arpa. -rwsytm82g.l62f8c0h. -ronees.unets.ru. -www.condusef.futbolfinanciero.com.mx. -profile.ak.fbcdn.net. -dj.renren.com. -64.112.100.189.in-addr.arpa. -ox-m.d.chango.com. -ventechtrain.com. -creative.ak.fbcdn.net. -www.barranquilla.gov.co. -www.facebook.com. -d2091148.xoom.it. -sk.wikipedia.org. -login.live.com. -49.133.168.192.in-addr.arpa. -digital.com. -www.stopbadware.org. -login.live.com. -tools.buzzwestcash.com. -static.chartbeat.com. -photos-b.ak.fbcdn.net. -187.214.8.201.in-addr.arpa. -wlcmail.com. -rexel.cl. -118.163.173.189.in-addr.arpa. -bit.ly. -dl34.hotgoo.com. -luissanchez.deviantart.com. -content.dl-rms.com. -bit.ly. -a.root-servers.net. -14.144.148.46.in-addr.arpa. -regalad.com.tw. -go.srvnow.com. -v4.cache5.c.youtube.com. -171.228.244.190.in-addr.arpa. -www.shesabetty.com. -api-read.facebook.com. -a.root-servers.net. -chaussuralacarte.com. -www.viewleicester.co.uk. -newmail.to.pager.tascom.ru. -baycom.com.tw. -48.149.220.66.in-addr.arpa. -_ldap._tcp. -dns.msftncsi.com. -_425_86_2. -www.facebook.com. -174.84.232.84.in-addr.arpa. -ad.metanetwork.com. -optusnet.coma.u. -a.root-servers.net. -correodepuntadeleste.com. -ticketland.ru. -174.86.214.189.in-addr.arpa. -c.msn.com. -holsten.gtn.ru. -google.com. -cdn.api.twitter.com. -gohealthcast.com.inbound15.mxlogic.net. -www.chandal.tv. -mx1.comcast.com. -www.hotmail.com. -loieqeeu.name. -api.geo.kontagent.net. -www.comunio.es. -0-44.channel.facebook.com. -www.facebook.com. -42.187.178.190.in-addr.arpa. -www.surgedirect.com. -www.peeperz.com. -nakcumrrt.32lx. -c-0.19-31096008.82.1518.19d4.36d4.400.0.3ku5gfh9hvtfb5rsdblk41wvsb.avqs.mcafee.com. -www.milenio.com. -ve.starmedia.com. -creative.ak.fbcdn.net. -www.scienceviews.com. -7mo-cbime.blogspot.com. -hotmail.com. -pagead2.googlesyndication.com. -www.britishmotorcyclegear.com. -ciengarabatos.blogspot.com. -www.stvgroup.cz. -46.139.206.186.in-addr.arpa. -179.134.247.72.in-addr.arpa. -www.wooaudio.com. -www.youtube.com. -hi-in.facebook.com. -a2.sphotos.ak.fbcdn.net. -mango-skin-pack.softonic.com. -malosocityperu.blogspot.com. -60.218.9.70.in-addr.arpa. -sissonscale.com. -6.188.172.189.in-addr.arpa. -a17.phobos.apple.com. -d2092950.xoom.it. -bgky.com. -platform.twitter.com. -sites.google.com. -www.howtofixcomputers.com. -4.20.12.108.in-addr.arpa. -www.google.com. -wz2s.taobao.com. -104.2.4.64.in-addr.arpa. -asset1.modelmanagement.com. -apps.facebook.com. -mailhost.dynaloy.com. -87.8.34.186.in-addr.arpa. -a.root-servers.net. -dogtimemedia.squarespace.com. -estilos.prodigy.msn.com. -83.65.69.189.in-addr.arpa. -kissphoto.net. -ec.atdmt.com. -wellthatsjustme.blogspot.com. -t0.gstatic.com. -google.com. -bitkoo.com. -fbcdn-sphotos-a.akamaihd.net. -216.111.131.189.in-addr.arpa. -google.com. -photos-b.ak.fbcdn.net. -girl.bodyartgo.com. -ttjmhy6jq.23ra. -smtp3.everyday.com.kh. -ns.orenburg-cci.ru. -linkhelp.clients.google.com. -vostok.vladpost.marine.su. -newsrss.bbc.co.uk. -www.amazon.fr. -api.twitter.com. -dns.msftncsi.com. -www.xemtiep.com. -63.23.190.88.in-addr.arpa. -www.astrobot.eu. -img233.imageshack.us. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -pt-br.facebook.com. -ping3.teamviewer.com. -dinorun03.xgenstudios.com. -csi.gstatic.com. -wirelessretailinc.com.s8b2.psmtp.com. -ds.serving-sys.com. -www.be. -71.169.55.190.in-addr.arpa. -profile.ak.fbcdn.net. -windows-server-training.com. -thebeaveronline.co.uk. -www.youtube.com. -wpad. -mail.chtivo.ru. -lolkaaaaa3.in. -mccane.co.uk. -www.criollosperuanos.com. -251.159.200.112.in-addr.arpa. -i3.ytimg.com. -187.200.53.187.in-addr.arpa. -www.el-guru.com. -distfiles.macports.org. -graph.facebook.com. -6d70.61706d656266.636f6d.80hd822cfb1.webcfs00.com. -lisa42.hubpages.com. -video-1-11.rutube.ru. -226.129.87.190.in-addr.arpa. -antropologiayecologiaupel.blogspot.com. -plugin.maldi.tv. -a.root-servers.net. -rcp.na.blackberry.com. -97.231.134.115.in-addr.arpa. -wanadoo.de. -colingasm.tumblr.com. -server4.operamini.com. -a.root-servers.net. -profile.ak.fbcdn.net. -ontariodie.com.s8b2.psmtp.com. -43.146.106.186.in-addr.arpa. -navy.net. -i4.ytimg.com. -marketing.menasoftware.com. -houseplants-care.blogspot.com. -powersonic.net.2.0001.arsmtp.com. -85.239.65.187.in-addr.arpa. -70.23.224.78.in-addr.arpa. -selena-tour.ru. -sbcglobal.net. -www.obloggeral.com. -api.facebook.com. -2.bp.blogspot.com. -www.irc-hispano.es. -www.bluempegs.com. -profile.ak.fbcdn.net. -ssl.gstatic.com. -autocrib.com. -_042_76_7. -mikutankyu.blog132.fc2.com. -ist1-3.filesor.com. -cdn-0.nflximg.com. -110.251.64.202.in-addr.arpa. -arizona.aaa.com. -riskmetrics.com.inbound10.mxlogicmx.net. -m1.fank.ru. -s453.videobb.com. -mtstravel.com. -developers.facebook.com. -widgets.amung.us. -s-static.ak.facebook.com. -hasslacher.at. -profile.ak.fbcdn.net. -www.chatvibes.com. -85.237.65.187.in-addr.arpa. -tapasmss-1.edwardjones.com. -buodz2agl.80ph. -static.ak.fbcdn.net. -9.media.bustedtees.cvcdn.com. -teredo.ipv6.microsoft.com. -a1.sphotos.ak.fbcdn.net. -en.wikipedia.org. -www.vampire-diaries.es. -www.cardiofy.com. -a7.sphotos.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -www.videosvideojuegos.com. -mail.playcore.com. -segurosygarantias.com.ar. -checkip.dyndns.org. -bluestarbus.com. -rbbyno:xe.e69k6l2n. -steviadolce.com.py. -bewag.se. -photos-h.ak.fbcdn.net. -www.feedburner.com. -www.gra.gi. -ar-ar.facebook.com. -es.perfectworld.aeriagames.com. -nocado.msk.ru. -173.199.1.118.in-addr.arpa. -hope-academies.com. -a.root-servers.net. -gamereleases.teamxbox.com. -www.hentailoves.me. -a.root-servers.net. -www.sgourosmp3.com. -3e-co.com.s8b2.psmtp.com. -174.23.58.201.in-addr.arpa. -kasdancommunications.com. -marinaconcrete.com. -1.201.85.75.in-addr.arpa. -www.izaping.com. -aol.com. -www.google.com. -graph.facebook.com. -21.77.30.189.in-addr.arpa. -player.nakedsword.com. -246.109.28.99.in-addr.arpa. -_902_76_6. -www.hoobing.com. -www.facebook.com. -photos-d.ak.fbcdn.net. -ad.doubleclick.net. -hotmail.com. -ia.media-imdb.com. -fbcdn-profile-a.akamaihd.net. -live6.truelook.com. -tas.orangeads.fr. -auditplusservice.ru. -qyahds.com. -en.wikipedia.org. -gw.incompany.ru. -melissamcclain.hubpages.com. -nappanet.net. -a.root-servers.net. -pixel.facebook.com. -96.225.46.189.in-addr.arpa. -photos-h.ak.fbcdn.net. -a.root-servers.net. -mail.printecs.ru. -barcampguayaquil.org. -download.windowsupdate.com. -external.ak.fbcdn.net. -a1725.l.akamai.net. -ece.cornell.edu. -a.jango.com. -comcluster.cxense.com. -tander.kmv.ru. -www.tickets.com. -ad-g.doubleclick.net. -dns.msftncsi.com. -186.220.145.59.in-addr.arpa. -s.youtube.com. -static.ak.fbcdn.net. -dmvs321.denken.or.jp. -external.ak.fbcdn.net. -143.172.246.203.in-addr.arpa. -s2.youtube.com. -b._dns-sd._udp.lan. -mail.terra.es. -api.twitter.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -berndrosinski.de. -91.42.173.190.in-addr.arpa. -platform.twitter.com. -pixel.facebook.com. -photos-d.ak.fbcdn.net. -gift-order.ru. -13.200.37.124.in-addr.arpa. -mail.waveware.com. -a1725.l.akamai.net. -google.com. -relay.voice.messenger.msn.com. -_480_59_9. -lookquick.com. -dnl-01.geo.kaspersky.com. -a.root-servers.net. -www.wsoftlink.com. -streams.fusionchicago.com. -pixel.rubiconproject.com. -sites.google.com. -8.250.59.200.in-addr.arpa. -rs115l3.rapidshare.com. -iol.co.za. -service2.pricegong.com. -www.blackberry.com. -ir.nielsen.com. -mx01.simplesiteonline.com. -www.youtube.com. -www.facebook.com. -login.live.com. -vmwebfe.voice.yahoo.com. -photos-g.ak.fbcdn.net. -loading2.widdit.com. -www.charitiesnfplaw.com. -www.missionaccomplished.co.uk. -api.twitter.com. -ter4ik.ru. -www.bonerowner.com. -www.flycell.com.mx. -platform.twitter.com. -top-fwz1.mail.ru. -virginradio.ca. -mailin.v6.t-online.de. -api.twitter.com. -16.video.mystreamservice.com. -www.savannajones.com. -secure.shared.live.com. -photos-e.ak.fbcdn.net. -99.235.39.190.in-addr.arpa. -acummy.com. -82.72.204.190.in-addr.arpa. -www.fa.domain_not_set.invalid. -i-0.19-a30e3079.83.1518.19d4.3ea1.210.0.17bmp285vgz7ept5ngbp7d2itb.avqs.mcafee.com. -gorgeous-teardrops.blogspot.com. -o1.t26.net. -developers.facebook.com. -29.45.105.189.in-addr.arpa. -tango.mybboard.net. -adspaces.ero-advertising.com. -154.200.208.77.in-addr.arpa. -www.antena3.com. -a1003.w41.akamai.net. -www.washingtonpostreprints.com. -a4.sphotos.ak.fbcdn.net. -france24.mobiclip.com. -zone104.hotwords.com.br. -a.root-servers.net. -p7-buy.itunes.apple.com. -ksn2-12.kaspersky-labs.com. -rpmffe.com. -australia.newads.com. -cid-0c4d020e598f0974.profile.live.com. -csi.gstatic.com. -native.np.ac.playstation.net. -tkrdr.storage.msn.com. -www.pixmac.de. -www.rip-factor.com. -49.139.20.190.in-addr.arpa. -nwwlc.org. -google.com. -107.203.143.175.in-addr.arpa. -www.mejor-sonido.com. -static.cda.pl. -andrews.esc18.net. -blogs.aecomo.org. -mexico.cnn.com. -a.root-servers.net. -s7.addthis.com. -108.98.19.190.in-addr.arpa. -webconferencing.avaya.com. -r.nocouchpotato.com. -124.141.219.87.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -api26.thetrafficstat.net. -goo.gl. -www.norden.lv. -146.205.129.186.in-addr.arpa. -campodemarte.com. -video1.spunkybee.com. -www.socialgrowthtechnologies.com. -et8.xhamster.com. -profile.ak.fbcdn.net. -s-external.ak.fbcdn.net. -216.220.152.201.in-addr.arpa. -apps.mobilityware.com. -nxcache.nexon.net. -community.g4s.com. -fbcdn-profile-a.akamaihd.net. -mlssw.com. -photos-a.ak.fbcdn.net. -download332.avast.com. -s10.histats.com. -pubads.g.doubleclick.net. -apps.facebook.com. -sur.pep.pemex.com. -81.78.248.87.in-addr.arpa. -117.240.236.84.in-addr.arpa. -. -a1.sphotos.ak.fbcdn.net. -25.164.191.190.in-addr.arpa. -113.229.110.123.in-addr.arpa. -bbklaw.com.mail11.psmtp.com. -ca.yahoo.com. -clk.atdmt.com. -165.48.51.68.in-addr.arpa. -photos6.pop6.com. -cepheidpharmaceuticals.com. -www.imef.org.mx. -www.cocinaconrecetas.com. -27.105.123.190.in-addr.arpa. -. -loansmadeeazy.com. -peterharveyco.com.au. -photos-f.ak.fbcdn.net. -nude-males.nudeandcute.com. -a7.sphotos.ak.fbcdn.net. -scrat.hellocoton.fr. -rt.legolas-media.com. -urs.microsoft.com. -mail.rhytec.com. -99.194.231.190.in-addr.arpa. -multiplos.hotwords.com.br. -rover.ebay.com. -photos-a.ak.fbcdn.net. -174.207.133.124.in-addr.arpa. -140.247.191.216.in-addr.arpa. -photos-b.ak.fbcdn.net. -rendwell.ryazan.ru. -acsi.org. -girondinstv.com. -weather.services.conduit.com. -maie.com. -dartt.net. -download-judging-amy.edogo.com. -agnifm.ru. -profile.ak.fbcdn.net. -p130.hmarzaber.com. -creative.ak.fbcdn.net. -w88.go.com. -odata.intel.com. -aff.publicdisgrace.com. -www.dingin.com. -coupons.walmart.com. -safebrowsing.clients.google.com. -photos-h.ak.fbcdn.net. -clients1.google.com. -ssl.gstatic.com. -winecellarinnovations.com.s10a2.psmtp.com. -sp.cwfservice.net. -th04.deviantart.net. -bfz.ru. -gfx8.hotmail.com. -a.root-servers.net. -ips-invite.iperceptions.com. -147.53.1.190.in-addr.arpa. -twitter.com. -stream66-he.grooveshark.com. -www.alexa.com. -mail.buildingengines.com. -sms.mts.ru. -138.65.23.186.in-addr.arpa. -www.epoch.com. -. -187.253.195.187.in-addr.arpa. -postman.gbh.com. -obgyn.ru. -static.ak.fbcdn.net. -alisavet.ru. -teredo.ipv6.microsoft.com. -cluster1a.us.messagelabs.com. -img.mediaplex.com. -photos-a.ak.fbcdn.net. -dmitriyev.ru. -plus.google.com. -program.avast.com. -oysh4bj6p.28iz. -sn1msg3020214.gateway.messenger.live.com. -www.editorialtelevisa.com.mx. -secure.victoriassecret.com.edgekey.net. -industrial.clickyourproduct.com. -66.39.236.189.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -140.247.141.201.in-addr.arpa. -smx.westminstercollege.edu.redcondor.net. -geoengineers.com. -pe.starmedia.com. -www.aeromexico.com.mx. -maps.google.com.mx. -www.chrisbartlett.org. -vloox.com. -mail.fitflat.de. -ad.doubleclick.net. -www.brooklynpubliclibrary.org. -www.passionblogs.com. -www.arthritishelpguide.com. -banif.pt. -mail.cnti-penza.ru. -a.root-servers.net. -bs.serving-sys.com. -m.facebook.com. -www.girlsnews.tv. -i1.social.s-msft.com. -a5.sphotos.ak.fbcdn.net. -85.207.245.190.in-addr.arpa. -24.media.tumblr.com. -www.pantyhosesex.ws. -bcoa.us. -a.root-servers.net. -photos-g.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -126.88.0.186.in-addr.arpa. -23.59.174.190.in-addr.arpa. -a.root-servers.net. -smtp.fibrehost.net. -platform.twitter.com. -tools.google.com. -sod-a.rsc-cdn.org. -10.115.142.190.in-addr.arpa. -gaming.stackexchange.com. -support.google.com. -mx01.windstream.net. -www.facebook.com. -www.freedownload3.com. -76.66.151.189.in-addr.arpa. -54.172.100.190.in-addr.arpa. -static.ak.fbcdn.net. -www.amazon.de. -www.agoda.vn. -graph.facebook.com. -ksn7.kaspersky-labs.com. -www.oipolloi.com. -profile.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -cinepivates.blogspot.com. -mail.zdrav.spb.ru. -creative.ak.fbcdn.net. -20minutos.feedsportal.com. -cityvillefb1.static.zgncdn.com. -www.paranominal.com. -118.229.138.98.in-addr.arpa. -pixel.quantserve.com. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -deportebase.elcomerciodigital.com. -g.edu-servers.net. -ma156-r.analytics.edgesuite.net. -developers.facebook.com. -j5d4gsftz.11or. -noctambulo.com. -carlosavelli.it. -86.231.35.189.in-addr.arpa. -www.blogger.com. -a.root-servers.net. -s-static.ak.facebook.com. -www.premiumstorage.info. -enkamoscity.com.home. -www.bing.com. -1001books.ru. -dns.msftncsi.com. -pbid.iforex.com. -pixel.facebook.com. -www.allaboutshoes.ca. -s1-powerpoint.vo.msecnd.net. -leyendasdelecuador.blogspot.com. -a3.da1.akamai.net. -accounts.google.com. -photos-a.ak.fbcdn.net. -75.44.218.121.in-addr.arpa. -mail.kraski.spb.ru. -offer.g.ebay.com. -www.redflamencos.org. -spotirama.blogspot.com. -cp37902.edgefcs.net. -css-ace.com. -ksn2-12.kaspersky-labs.com. -elvideoclubdelos80.blogspot.com. -pagead2.googlesyndication.com. -www.blackberry.com. -williamson2012blog.dailymail.co.uk. -236.125.126.206.in-addr.arpa. -tutorial-para-blender.uptodown.com. -0-292.channel.facebook.com. -radicaepost.com. -spopk.org. -www.juegosdepalabras.com. -profile.ak.fbcdn.net. -creative.ak.fbcdn.net. -android.clients.google.com. -elupus.com. -nrjweggi.com. -bit.ly. -www.crosspoint.tv. -www.youtube-nocookie.com. -manhattancc.org. -www.google-analytics.com. -82.211.141.201.in-addr.arpa. -funmoods.com. -connect.facebook.net. -romsfullworld.blogspot.com. -csc3-2010-crl.verisign.com. -155.212.230.190.in-addr.arpa. -helpdesk.princeton.edu. -sylvia.mmodels.net. -79.231.2.187.in-addr.arpa. -cafeycabaret.com. -a6.sphotos.ak.fbcdn.net. -aulatic.cl. -cdn-1.nflximg.com. -www.anasac.cl. -29.media.tumblr.com. -www.jscount.com. -lookatmyhorsemyhorseisamazing.com. -69.155.6.69.in-addr.arpa. -36.13.7.89.in-addr.arpa. -taztheambo.blogspot.com. -www.asomagdalena.org. -mx3.investici.org. -s0.2mdn.net. -a.root-servers.net. -itc-01.ru. -dns.msftncsi.com. -s2.youtube.com. -plus.google.com. -ad.foxnetworks.com. -eewine.com. -dasgelbeforum.de.org. -186.34.168.192.in-addr.arpa. -ozum.ru. -tour.jizz-on-my-gf.com. -www.centraloutpost.com. -scream-room.blogspot.com. -137.147.85.85.in-addr.arpa. -www.msftncsi.com. -simple-timer-clocks.googlecode.com. -ambar-jeans.ru. -33.72.169.184.in-addr.arpa. -dns.msftncsi.com. -buildexpo.ru. -e566.b.akamaiedge.net. -a4.sphotos.ak.fbcdn.net. -11.224.193.190.in-addr.arpa. -citrys.ca. -video.google.com.mx. -csi.gstatic.com. -www.niktutos.wordpress.com. -169.151.160.201.in-addr.arpa. -198.255.37.184.in-addr.arpa. -db._dns-sd._udp.lan. -mail.mbsuk.com. -api.theknot.com. -www.thisfellow.com. -planet-group.co.uk. -www.louisvuitton.org.in. -developers.facebook.com. -www.jpfgallery.com. -www.corepredictivedialer.com. -static02.olx-st.com. -carpartsonsale.com. -3.89.181.207.in-addr.arpa. -www.advent.com. -94.217.56.186.in-addr.arpa. -21.228.171.69.in-addr.arpa. -46.64.127.200.in-addr.arpa. -73.26.0.10.in-addr.arpa. -ph.jobomas.com. -apps.facebook.com. -cs.oag.state.tx.us. -www.google.com. -www.browtf.com. -147.198.117.62.in-addr.arpa. -www.wfn.org. -twitter.com. -mps.hwcdn.net. -21.175.99.24.in-addr.arpa. -edge-wunderkit.dotcloud.com. -93.docs.google.com. -suncars.com.tw. -browse.postcards.org. -up0002-blus30838-00.auth.np.ac.playstation.net. -171.62.26.83.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -clkads.com. -ryanbuildingmaterials.com. -static.ak.fbcdn.net. -srx.main.ebayrtm.com. -photos-h.ak.fbcdn.net. -57.34.169.1.in-addr.arpa. -tinyurl.com. -sonydadc.com. -masco.cc. -www.facebook.com. -www.kunstkopie.at. -post3.cox.com. -. -98.2.86.200.in-addr.arpa. -252.91.45.200.in-addr.arpa. -109.42.205.187.in-addr.arpa. -shout2a.gnax.net. -a.root-servers.net. -www.freefullfrontals.co.uk. -d15gt9gwxw5wu0.cloudfront.net. -203.81.127.187.in-addr.arpa. -numericafunding.com. -www.google.com. -kangarobin.cixx6.com. -sbcglobal.net. -www.alternativechannel.tv. -gfx3.hotmail.com. -www.ssn.org. -plusone.google.com. -126.165.240.89.in-addr.arpa. -23.229.171.69.in-addr.arpa. -a.root-servers.net. -depacnglw0dc001.code1.emi.philips.com. -144.140.235.24.in-addr.arpa. -201.145.79.190.in-addr.arpa. -57.ru. -donsapaugh.com. -studioscalia.com. -223.78.250.190.in-addr.arpa. -146.84.54.68.in-addr.arpa. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.nikonlinks.com. -photos-f.ak.fbcdn.net. -csi.gstatic.com. -169.166.226.91.in-addr.arpa. -dkz.info. -mail.live.com. -s.youtube.com. -fbcdn-photos-a.akamaihd.net. -assetman23.d1g.com. -www.facebook.com. -static.ak.fbcdn.net. -edge1.catalog.video.msn.com. -8.99.215.189.in-addr.arpa. -static.ak.fbcdn.net. -yfdb213o.com. -oglobo.globo.com. -wwf.org.uk. -photos-h.ak.fbcdn.net. -8.70.56.85.in-addr.arpa. -dordrecht.nl. -digg.com. -www.spanish.audiogil.es. -buynowfromusa.com. -death-note-hentai.famous-toons-facial.com. -_023_83_0. -mail.newworldtrust.com. -givision.net. -www.charmbeadswholesale.com. -photos-g.ak.fbcdn.net. -us.data.toolbar.yahoo.com. -196.0.168.192.in-addr.arpa. -wat.com. -inbound.edgewaterdesign.com.netsolmail.net. -edentworld.com. -groups.l.google.com. -m.facebook.com. -241.35.10.187.in-addr.arpa. -leerlibros.com. -59.188.20.186.in-addr.arpa. -25.207.25.189.in-addr.arpa. -38.147.220.66.in-addr.arpa. -234.1.0.192.in-addr.arpa. -troy30c.org.s5b1.psmtp.com. -keine.at. -podermilitar.blogspot.com. -groundside.com. -87.19.168.192.in-addr.arpa. -a.root-servers.net. -www.profilebanner.com. -connect.facebook.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -189.85.104.200.in-addr.arpa. -90elf.spiegel.de. -www.wladhe.com. -saabworkshop.com. -www.mywebsearch.comm. -www.justinpictures.org. -www.yahoo.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -46.101.168.192.in-addr.arpa. -productnews.link.net. -ipblmg.com. -googleads.g.doubleclick.net. -www.belkin.com. -193.1.170.85.in-addr.arpa. -newsrss.bbc.co.uk. -a8.sphotos.ak.fbcdn.net. -eearthlink.com. -www.flintshirechronicle.co.uk. -abacushk.com.inbound10.ttasia.net. -sites.google.com. -www.saludmd.com. -ec.atdmt.com. -damianvoltes.com. -k-s-p.ru. -b.static-cdn.playfish.com. -external.ak.fbcdn.net. -emersonmgmt.com. -231.43.143.189.in-addr.arpa. -186.226.209.77.in-addr.arpa. -conf.socialvi.be. -webmail.villarrobledo.com. -1.118.28.186.in-addr.arpa. -mail34.opentransfer.com. -static.ak.fbcdn.net. -194.196.248.201.in-addr.arpa. -157.122.41.190.in-addr.arpa. -bar.leo.org. -_ldap._tcp.dd273816-6837-406d-8b28-d47fdadd0ea3.domains._msdcs.ey.net. -www.gstatic.com. -yahoo.com. -api.twitter.com. -teredo.ipv6.microsoft.com. -mail.gladcorp.com. -informatika.net.ru. -ad.yieldmanager.com. -gg.google.com. -ow.ly. -www.gmperformanceparts.com. -a.root-servers.net. -livefilestore.com.multi.uribl.com. -static.polldaddy.com. -id.google.com.mx. -static-resource.np.community.playstation.net. -moranandco.com.s7b2.psmtp.com. -bs.serving-sys.com. -195.7.95.201.in-addr.arpa. -yytayna.com. -fetch.flashget.com. -profile.ak.fbcdn.net. -ff.connextra.com. -es.wikipedia.org. -fbcdn-profile-a.akamaihd.net. -photos-a.ak.fbcdn.net. -ruhlman.com. -www.leverguns.com. -static.ak.fbcdn.net. -auto.mercadolibre.com.ar. -8-courier.push.apple.com. -www.facebook.com. -getpersonas-cdn.mozilla.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.dietadiaria.com. -a2.sphotos.ak.fbcdn.net. -i3.ytimg.com. -www.materialesparatocados.com. -photos-f.ak.fbcdn.net. -tock.usno.navy.mil. -globaltranceinvasion.com. -www.midespertardeconciencia.ning.com. -apps.facebook.com. -rospres.com. -www.abcjuegos.net. -plus.google.com. -t.tmimgcdn.com. -www.youtube.com. -191.200.72.190.in-addr.arpa. -profile.ak.fbcdn.net. -premierfitnessclubs.com. -simdesk.com. -wortschatz.informatik.uni-leipzig.de. -terra.uplanet.ru. -ur.wikipedia.org. -endz.nne.elektra.ru. -202.187.19.186.in-addr.arpa. -images.google.com. -explore.live.com. -de.wikipedia.org. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -twitpic.com. -ekpc.com. -go.srvnow.com. -17.98.56.85.in-addr.arpa. -turnkeymarketing.us. -google.com. -a8.sphotos.ak.fbcdn.net. -media2sm.firstshowing.net. -forum.japantoday.com. -a.root-servers.net. -content.yieldmanager.edgesuite.net. -static.ak.fbcdn.net. -chhg.biz. -bodyandhealth.canada.com. -65.203.21.23.in-addr.arpa. -mail.brprint.de. -190.35.209.77.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -seriyps.ru. -201.95.27.187.in-addr.arpa. -csi.gstatic.com. -profile.ak.fbcdn.net. -babymaker.mauryshow.com. -62.69.249.84.in-addr.arpa. -alcatraz.wikia.com. -pathwayproductions.com. -www.facebook.com. -74.201.0.10.in-addr.arpa. -39.170.2.178.in-addr.arpa. -emtec-group.com. -amnet.net.au. -photos-a.ak.fbcdn.net. -a.root-servers.net. -game-gt.com. -humour.wikinut.com. -asktoolbar.weather.com. -preveaclinic.com. -api.twitter.com. -a.rad.msn.com. -photos-e.ak.fbcdn.net. -webcache.googleusercontent.com. -mail.successfactors.com. -smtp.beagvs.com. -91.44.51.190.in-addr.arpa. -au.movies.yahoo.com. -ekran-tv.ru. -a.appbank.com. -map.media6degrees.com. -75.254.254.220.in-addr.arpa. -www.homeinbayarea.com. -gross.ru. -mail.travesi.com. -254.211.142.187.in-addr.arpa. -local-sn.contacts.msn.com. -www.businessweek.com. -meridiansystems.com. -shared.live.com. -culturacomic.com. -opisventures.com. -www.inkapoker.com. -sharethis.com. -gliocchimarroni.blogspot.com. -www.google.com. -609.talkgadget.google.com. -b-0.19-23096008.481.1518.19d3.3ea0.410.0.iksp3etvn9s9utfq893mqspvf5.avqs.mcafee.com. -img6.ask.fm. -thesecretworldofacraftaholic.blogspot.com. -www.facebook.com. -5735-100.cudamail.com. -es-la.facebook.com. -www.jkhglmncd48.com. -www.youtravel.com.au. -imgur.com.multi.uribl.com. -215.245.206.190.in-addr.arpa. -plusone.google.com. -dns.msftncsi.com. -aqgc545xp.31uw. -187.126.25.189.in-addr.arpa. -developers.facebook.com. -inbound.scanlanfamilyfarms.com.namesecuremail.net. -susu.ac.ru. -dr._dns-sd._udp.0.2.168.192.in-addr.arpa. -53.227.171.69.in-addr.arpa. -www.belkin.com. -www.facebook.com. -photos-f.ak.fbcdn.net. -_666_11_4. -hubbell-canada.com.s7b1.psmtp.com. -teredo.ipv6.microsoft.com. -2.1.168.192.in-addr.arpa. -udig.com. -carlossotomorales.blogspot.com. -pt.trafficjunky.net.home. -static.ak.fbcdn.net. -ba.ckground.com. -a.root-servers.net. -euro.mediotiempo.com. -es-es.fxfeeds.mozilla.com. -ru.wikipedia.org. -data.flurry.com. -sn1msg1020127.gateway.messenger.live.com. -a.root-servers.net. -96.45.25.80.in-addr.arpa. -blitz.nocrawl.www.dik.nl. -es-la.facebook.com. -118.188.140.69.in-addr.arpa. -lcbenefits.com.inbound15.mxlogicmx.net. -www.mamemimo.com. -110.30.31.190.in-addr.arpa. -www.antena3tv.es. -files.myopera.com. -a4.sphotos.ak.fbcdn.net. -manga.hentai.ms. -toolbarqueries.google.com. -photos-f.ak.fbcdn.net. -api.twitter.com. -www.jornada.unam.mx. -penskemercedes.com.s8b1.psmtp.com. -bay.messenger.services.live.com. -wpad. -bt.yikuai.com. -avatar.nimbuzz.com. -kinesis.co.uk. -216.175.108.186.in-addr.arpa. -201.132.43.178.in-addr.arpa. -photos-h.ak.fbcdn.net. -gooble.com. -hits.e.cl. -248.154.158.189.in-addr.arpa. -177.140.193.187.in-addr.arpa. -s0.2mdn.net. -www.ebayanuncios.es. -www.airwick.com.mx. -api.ak.facebook.com. -a8.sphotos.ak.fbcdn.net. -meme-spot.tumblr.com. -dns.msftncsi.com. -bibriesca2009.keepandshare.com. -www.givetoqueens.ca. -mail.heliumm.com. -dr._dns-sd._udp.lan. -time.chttl.com.tw. -ink.voskresensk.ru. -54.254.56.190.in-addr.arpa. -csc3-2010-crl.verisign.com. -swcmail.net. -arbia.it. -www.airforce-magazine.com. -51.127.0.190.in-addr.arpa. -tr.dohop.com. -theairloom.files.wordpress.com. -147.19.125.84.in-addr.arpa. -206.54.87.186.in-addr.arpa. -a.root-servers.net. -ax.init.itunes.apple.com. -p1t.ru. -profile.ak.fbcdn.net. -pixel.facebook.com. -www.buriedmirror.com. -phone.com. -es.y8.com. -xrfelzx.rjzl. -realnetworks.com. -www.praben.cl. -ad.doubleclick.net. -michelleobamawatch.com. -tech.tln.lib.mi.us. -websearch.ask.com. -198.10.176.190.in-addr.arpa. -mailrelay01.virginmedia.co.uk. -photos-d.ak.fbcdn.net. -capitulosdenarutoshippuden.blogspot.com. -woodstock.k12.vt.us. -www.web-flv-player.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -z7mjefkuu.04zs. -246.172.87.67.in-addr.arpa. -gaom.hit.gemius.pl. -content.yieldmanager.edgesuite.net. -126.37.43.190.in-addr.arpa. -cleanmymac.softonic.de. -a.root-servers.net. -intlreg.aol.com. -54.111.162.189.in-addr.arpa. -matcher-rbc.bidder7.mookie1.com. -102.108.22.195.in-addr.arpa. -www.echodesign.com. -platform.ak.fbcdn.net. -www.hovernauts.com. -photos-e.ak.fbcdn.net. -_185_82_0. -202.161.97.76.in-addr.arpa. -yahoo.ca. -e1.f1213.mail.yahoo.com. -map.no. -198.184.176.189.in-addr.arpa. -79.19.152.189.in-addr.arpa. -chat.facebook.com. -www.jmarcano.com. -www.businessweek.com. -ksn3-11.part1.kaspersky-labs.com. -49.218.41.83.in-addr.arpa. -36.213.10.82.in-addr.arpa. -static.panoramio.com. -s-static.ak.fbcdn.net. -d2100708.xoom.it. -a.root-servers.net. -www.boxingbets.ru. -28.176.19.95.in-addr.arpa. -ls2web.redmond.corp.microsoft.com. -safebrowsing-cache.google.com. -apps.facebook.com. -vpn-cc1.reliablehosting.com. -98.146.82.189.in-addr.arpa. -lh4.googleusercontent.com. -114.39.79.94.in-addr.arpa. -it-it.facebook.com. -nsx-e.np.dl.playstation.net. -apps.facebook.com. -254.125.214.201.in-addr.arpa. -227.39.135.187.in-addr.arpa. -smtpin2.usinternet.com. -18.137.91.186.in-addr.arpa. -estebanfuentealba.files.wordpress.com. -ad.yieldmanager.com. -letter.ly. -static.ak.facebook.com. -www.abc.es. -84.68.28.186.in-addr.arpa. -133.75.220.95.in-addr.arpa. -zaragozame.com. -photos-f.ak.fbcdn.net. -integration.klarna.com. -freelink.org. -www.facebook.com. -22.90.248.189.in-addr.arpa. -39.187.29.189.in-addr.arpa. -0-125.channel.facebook.com. -a1003.w41.akamai.net. -_660_41_2. -static.ak.fbcdn.net. -freakshare.net. -www.youtube.com. -www.g4tv.com. -70.71.33.190.in-addr.arpa. -www.defensetech.org. -dr._dns-sd._udp.lan. -smtp.glittered-pastel.net. -publicpolicy.com.1.arsmtp.com. -161.14.179.190.in-addr.arpa. -systems42ltd.com. -angelesysuscuentos.blogspot.com. -dns.msftncsi.com. -vacsend.ru. -w.sharethis.com. -sbcgoabl.net. -gnow.com. -lifestream.glifestream.aim.com. -52.17.66.87.in-addr.arpa. -whlr9:vdj.84gg. -84.5.216.203.in-addr.arpa. -pixel.facebook.com. -www.freehomemademovie.com. -41.55.241.189.in-addr.arpa. -68.12.59.186.in-addr.arpa. -www.archivisionstudio.com. -_940_20_1. -mail.isgtechnologies.com. -safebrowsing.clients.google.com. -bluegraysky.blogspot.com. -lh5.googleusercontent.com. -careers.msn.com. -www.google.com. -www.hjkomr.com. -sc19.rules.mailshell.net. -s-external.ak.fbcdn.net. -pixel.facebook.com. -a5.sphotos.ak.fbcdn.net. -33.96.251.82.in-addr.arpa. -es.wikipedia.org. -mx0.uniserve.ca. -gorrosdequirofanojaner.blogspot.com. -api.tweetdeck.com. -sux2cocuf.s19g9z0c. -www.lamaripepa.com. -photos-d.ak.fbcdn.net. -lorillard.com. -zynga1-a.akamaihd.net. -up.ro7k.net. -e-states.ru. -a4.sphotos.ak.fbcdn.net. -binarytech.wordpress.com. -40.1.152.201.in-addr.arpa. -photos-d.ak.fbcdn.net. -mail.google.com. -argos.co.uk. -8-courier.push.apple.com. -152.193.18.186.in-addr.arpa. -dx3723.tinyurl.com. -shop.productwiki.com. -s15279541.onlinehome-server.info. -update.avg.com. -premiersurgical.com.s7b2.psmtp.com. -a.root-servers.net. -time.chttl.com.tw. -106.170.224.186.in-addr.arpa. -google.com. -adadvisor.net. -photos-a.ak.fbcdn.net. -a.root-servers.net. -apps.facebook.com. -secure.shared.live.com. -yahoo.com. -www.epicgameads.com. -blufiles.storage.msn.com. -ashfordsearch.com.s9a2.psmtp.com. -v3.nonxt7.c.youtube.com. -profile.chcf.org. -busy-at-home.com. -mail.mercergov.org. -www.fb.telemakingweb.com. -humorwit.com. -www.xtrf.eu. -www.100forexbrokers.com. -70.79.73.78.in-addr.arpa. -a.root-servers.net. -126.116.45.190.in-addr.arpa. -a.ads2.msads.net. -www.alldemotivational.com. -googleads.g.doubleclick.net. -imagenes.es.sftcdn.net. -freemarket.kiev.ua. -ellarguero.info. -tripletorsion.com. -i1.images.mofosworldwide.com. -www.facebook.com. -i1.ytimg.com. -profile.ak.fbcdn.net. -www.alliedmoulded.com. -www.mikelozano.com.mx. -a.root-servers.net. -kommarsolutions.com. -arianacb.obolog.com. -es.y8.com. -oi560.photobucket.com. -dailyfun4u.com. -. -profile.live.com. -webmail.joyeriagutierrezsousa.com. -www.facebook.com. -www.socialgrowthtechnologies.com. -arvidarealtor.com. -photos-g.ak.fbcdn.net. -6be7434q4.77ng. -mail.fnmsbranch.com. -dmntbank.msk.ru. -pixel.facebook.com. -www.solomotoparts.com. -cn1.redswoosh.akadns.net:443. -a0.twimg.com. -content.yieldmanager.edgesuite.net. -www.google.com.mx. -mail.nabarreria.com. -paramirarnos.blogspot.com. -v15.lscache1.c.youtube.com. -www.drm-x.com. -cityvillefb1.static.zgncdn.com. -www.googleadservices.com. -y4aw25vth.57av. -plusone.google.com. -20.141.132.92.in-addr.arpa. -coniferit.net. -a.root-servers.net. -250.48.105.190.in-addr.arpa. -polkadotlighthouseuk.blogspot.com. -addons.mozilla.org. -teredo.ipv6.microsoft.com. -it-it.facebook.com. -192.64.144.186.in-addr.arpa. -profile.ak.fbcdn.net. -s.ytimg.com. -national1direct.com. -www.facebook.com. -vosmd.com. -mdawmdexmjaxmjaxmg.info. -49.137.249.186.in-addr.arpa. -a.root-servers.net. -www.food-allergy.org. -dnstest.baofeng.com. -www.google.com. -a.root-servers.net. -www.elblogdecineespanol.com. -s1-excel.vo.msecnd.net. -www.uz. -213.241.209.201.in-addr.arpa. -blog.gamesparadise.com.au. -static.ak.fbcdn.net. -loading3.widdit.com. -a.root-servers.net. -a.root-servers.net. -254.48.17.190.in-addr.arpa. -cloudtv.accu-weather.com. -profile.ak.fbcdn.net. -d2098308.xoom.it. -um14.eset.com. -asweetadventure.com. -clients4.google.com. -iscnvx.lmsc.lockheed.com. -apps.facebook.com. -191.96.15.129.in-addr.arpa. -184.86.103.80.in-addr.arpa. -us.img.e-planning.net. -es-es.facebook.com. -analyser.oli.tudelft.nl. -11.8.34.201.in-addr.arpa. -77.200.191.186.in-addr.arpa. -www.googleadservices.com. -a.root-servers.net. -a.root-servers.net. -108.157.202.190.in-addr.arpa. -a.root-servers.net. -money.msn.com. -download858.avast.com. -www.rotavirusvaccine.org. -ranking.enfeel.com. -s.youtube.com. -rad.msn.com. -steinberg2002.com. -data.mxm.ch. -a.root-servers.net. -www.eraltd.org. -b-0.19-21025008.1581.1518.19d4.3ea1.410.0.pqkwldtwiadawn4nfkewen5pvi.avqs.mcafee.com. -photos-g.ak.fbcdn.net. -a.root-servers.net. -photos-e.ak.fbcdn.net. -a.root-servers.net. -mail.ivillage.com. -mozilla.mirror.nexicom.net. -classic.mountaingear.com. -226.241.61.200.in-addr.arpa. -reddog.net.au. -download.windowsupdate.com. -plus.google.com. -creative.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -provo.edu. -searchjustice.usdoj.gov. -www.classically-elegant.com. -web.csuchico.edu. -www.laporteriadejorgejuan.com. -a.root-servers.net. -scrapsandthecity.gotop100.com. -v2.cache8.c.youtube.com. -jattgroup.com. -static.ak.fbcdn.net. -www.dosomethingamazing.com. -ads.mobclix.com. -search.softonic.com. -tuckerlaw.net.p4.mx-route.com. -inkman.co.th. -yahoo.com. -www.erica.biz. -www.youtube.com. -sales.vip.tom.com. -a.root-servers.net. -178.36.48.212.in-addr.arpa. -apps.facebook.com. -232.84.231.189.in-addr.arpa. -mail.zublatt.com. -_953_46_7. -e5413.g.akamaiedge.net. -platform.ak.fbcdn.net. -www.yahoo.com. -cheaptickets.com.s7a2.psmtp.com. -respuestas.wikia.com. -2.docs.google.com. -125.166.89.108.in-addr.arpa. -118.249.16.200.in-addr.arpa. -blairschools.org. -racetech.com. -westwood-apartments.com. -rpo.ru. -ocsp.geotrust.com. -www.google.com. -it-it.facebook.com. -191.204.107.189.in-addr.arpa. -223.224.140.175.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -opessworprvygpj.net. -ax26.a.cocolog-nifty.com. -53.134.38.187.in-addr.arpa. -pixel.facebook.com. -43.163.20.190.in-addr.arpa. -static.ak.fbcdn.net. -www.vogue.fr. -gmail.com. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.gstatic.com. -aerolineasmexicanas.com.mx. -127.67.164.58.in-addr.arpa. -a4.mzstatic.com. -89.54.198.190.in-addr.arpa. -cdn3.cpmstar.com. -mail.google.com. -developers.facebook.com. -content.yieldmanager.edgesuite.net. -a.rad.msn.com. -breakmysex.info. -recep.com. -t2.gstatic.com. -it.carsmaniacs.com. -u20.eset.com. -www.lindsaylohanweb.com. -www.facebook.com. -209.51.194.187.in-addr.arpa. -www.tatil-gunleri.com. -sup.live.com. -apus.edu. -signup.wazzub.info. -hog.assets2.zgncdn.com. -fbcdn-profile-a.akamaihd.net. -www.arpia.be. -truevalue.com. -130.137.148.190.in-addr.arpa. -mt0.google.com. -207.2.27.77.in-addr.arpa. -imgs1.smutxx.com. -img100.xvideos.com. -153.250.103.80.in-addr.arpa. -platform.twitter.com. -29.53.222.189.in-addr.arpa. -liveupdate.symantecliveupdate.com. -images.amazon.com. -atlantarubber.com. -opentranslators.transifex.net. -inbound.willistire.com.netsolmail.net. -www.dokterdokter.nl. -cdn.magiclevel.com. -api-read.facebook.com. -tools.google.com. -levitontelcom.com. -a.root-servers.net. -www.facebook.com. -ocsp.verisign.com. -dy1719dhn.h86k5y2l. -a2.sphotos.ak.fbcdn.net. -www.diccionariopubli.com. -s-external.ak.fbcdn.net. -mail.google.com. -28.78.59.85.in-addr.arpa. -www.pautefacil.com. -fbcdn-profile-a.akamaihd.net. -77.206.222.190.in-addr.arpa. -dnl-01.geo.kaspersky.com. -www.oafiliado.com.br. -www.superzooi.com. -ad.harrenmedianetwork.com. -virgin.net. -platform.twitter.com. -www.rasushi.com. -4.220.71.190.in-addr.arpa. -www.compunetsi.net. -hg1.hitbox.com. -safebrowsing.clients.google.com. -your.schoolfeed.com. -2.bp.blogspot.com. -www.teleweb-mallorca.com. -external.ak.fbcdn.net. -mail.neemranahotels.com. -106.229.80.188.in-addr.arpa. -www.paragonco.com. -wikipedia-lb.wikimedia.org. -a2.sphotos.ak.fbcdn.net. -data.flurry.com. -g:ka9b7aa.17hk. -52.68.173.190.in-addr.arpa. -188.249.211.205.in-addr.arpa. -m.facebook.com. -teoten.wordpress.com. -i.ebayimg.com. -229.194.74.190.in-addr.arpa. -photos-d.ak.fbcdn.net. -a.root-servers.net. -s.youtube.com. -laopinionautos.com. -www.cacillo.it. -. -112.114.156.187.in-addr.arpa. -puzzle.gamesdidi.org. -royaltyroofing.com. -2.0.0.10.in-addr.arpa. -ctdb.samba.org. -rommai.com. -211.225.77.190.in-addr.arpa. -www.ivss.gov.ve. -translate.google.com.mx. -clients1.google.com. -static.ak.fbcdn.net. -www.youtube.com. -dorado.cl06.ch. -ns2.vclk.net. -www.biotechniques.com. -mail.dza.com. -www.google.com. -d3j5vwomefv46c.cloudfront.net. -gay-dating-sites.no1reviews.com. -www.luvsdiapers.com. -a.root-servers.net. -imadreamer.metroblog.com. -55.61.93.58.in-addr.arpa. -www.bahai-studies.ca. -bettybeauty.com. -ad-g.doubleclick.net. -fr.webrep.avast.com. -twitter.com. -a.root-servers.net. -54.43.208.201.in-addr.arpa. -ocsp.thawte.com. -169.5.126.188.in-addr.arpa. -prospects4travel.com. -doehler.com. -177.31.111.189.in-addr.arpa. -bendliving.com. -gostosoflexsp.blogspot.com. -pixel.quantserve.com. -77.238.81.75.in-addr.arpa. -safebrowsing.clients.google.com. -lozzpfn46.u23k3m7e. -orcart.facebook.com. -www.youtube.com. -pixel.facebook.com. -greenflora.ru. -fbcdn-photos-a.akamaihd.net. -n.univision.com. -chubarama.net. -a4.da1.akamai.net. -a.root-servers.net. -m.facebook.com. -218.42.198.187.in-addr.arpa. -external.ak.fbcdn.net. -it-it.facebook.com. -twiconsol.com. -rosautoprom.ru. -www.flycell.com.ar. -kaffeine.sourceforge.net. -xbox360media.ign.com. -o.httpcs102.wg.msg.sp1.yahoo.com. -51.159.102.80.in-addr.arpa. -teredo.ipv6.microsoft.com. -atlasfreight.net.inbound10.mxlogicmx.net. -ad.lpxp.net. -www.watchsolution.com. -ksn1-12-part2.kaspersky-labs.com. -www.licc.org.uk. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -40.89.102.187.in-addr.arpa. -www.ihrtrauringjuwelier.de. -105.216.72.187.in-addr.arpa. -m002.maktoob.com. -www.google.com. -stepbystep.ru. -online.casino.winner.com. -web2.nidhog.com. -www.redcultura.com. -a.root-servers.net. -220.110.120.200.in-addr.arpa. -56.72.59.193.in-addr.arpa. -243.51.2.187.in-addr.arpa. -plusone.google.com. -members.dyndns.org. -photos-b.ak.fbcdn.net. -mail.bcvt.tec.pa.us. -gjsteel.com.s8b1.psmtp.com. -www.eluniversal.com.mx. -www.mozilla.com. -skype2.en.softonic.com. -flextel.ru. -api.twitter.com. -d3lvr7yuk4uaui.cloudfront.net. -ja-jp.facebook.com. -a6.sphotos.ak.fbcdn.net. -opora.org.ru. -photos-f.ak.fbcdn.net. -towersemi.com. -133.202.79.188.in-addr.arpa. -www.cantabriatorrent.es. -www.autogasitalia.it. -244.58.168.189.in-addr.arpa. -37.0.215.201.in-addr.arpa. -google.com.mx. -www.facebook.com. -profile.ak.fbcdn.net. -105.153.122.186.in-addr.arpa. -developers.facebook.com. -f.root-servers.net. -www.comechochos.com. -server29.appriver.com. -images.honda-tech.com. -ad.103092804.com. -a.root-servers.net. -www.baskingsharks.org. -153.121.75.187.in-addr.arpa. -shepaug.com.inbound10.mxlogic.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.gillespieonline.com. -mtg911.com. -mail.italee.com. -tuireg.9158.com. -connect.facebook.net. -www.amazon.ca. -alerts.conduit-services.com. -e5z1rcx96.n83u2i6c. -www.zurich.com.ar. -profile.live.com. -blobcdn.iegallery.com. -apps.facebook.com. -pomogi-rebenku.ru. -mirinfo.ru. -www.anamardoll.com. -32.84.158.79.in-addr.arpa. -www.nj.com. -a1003.w41.akamai.net. -widget.plugrush.com. -horoskop.vol.at. -50.26.221.189.in-addr.arpa. -forum.sh3bwah.maktoob.com. -www.mizinapecuaro.com. -apps.facebook.com. -m.facebook.com. -d1ros97qkrwjf5.cloudfront.net. -cs.wikipedia.org. -download695.avast.com. -rsvl.unisys.com. -www.belkin.com. -www.skyhighlb.com. -i35.tinypic.com. -www.macrothink.org. -rep.netel.net. -hitltd.msk.su. -lists-mx.mysql.com. -connect.facebook.net. -fxfeeds.mozilla.com. -www.inspirational-motivational-quotes.com. -api.twitter.com. -support.google.com. -www.conceptoam.com.ar. -dns2.is.net.pl. -wpad. -11.21.206.24.in-addr.arpa. -37.84.76.190.in-addr.arpa. -apis.google.com. -www.toplist.cz. -photos-f.ak.fbcdn.net. -_433_49_4. -a.root-servers.net. -tap.rubiconproject.com. -finift.ru. -video321.info. -www.sigmabeauty.com. -www.google.com. -geo.yahoo.com. -gamezadvisor.com. -villakoenig.blogspot.com. -rwc-temp7.openwave.com. -portcontractors.com.inbound15.mxlogicmx.net. -ir.ebaystatic.com. -9.79.10.187.in-addr.arpa. -twitter.com. -www.berklee.edu. -a4.sphotos.ak.fbcdn.net. -230.114.172.201.in-addr.arpa. -tracker.torrent.to. -allconnect.ru. -graphicsanddesigns.foroactivo.com. -goo.gl. -www.lumen.com.mx. -16.7.168.192.in-addr.arpa. -www.yahooka.com. -mtnlmail.com. -pagead2.googlesyndication.com. -vgtribune.com. -9.48.159.189.in-addr.arpa. -api-read.facebook.com. -s-static.ak.facebook.com. -s-static.ak.fbcdn.net. -photos-c.ak.fbcdn.net. -shop.nakedfunny.com. -mumfordcompany.com.inbound15.mxlogic.net. -124.143.239.189.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -drlopez.com. -video.google.com.mx. -72.142.58.85.in-addr.arpa. -www.hostweb.byethost2.com. -globetour.ru. -no-replay.alertreceived.com. -51.list.themediafinder.com. -www.codango.com. -carnationbanc.com. -being-glamorous.blogspot.com. -www.lalibcosupport.com. -api-read.facebook.com.7. -lb._dns-sd._udp.0.0.168.192.in-addr.arpa. -a.root-servers.net. -berriojimenez.blogspot.com. -imagengratis.org. -www.ecampus.com.akadns.net. -224.0.0.10.in-addr.arpa. -73.140.100.70.in-addr.arpa. -in.mx.skynet.be. -apps.facebook.com. -d2092610.xoom.it. -www.thisislocallondon.co.uk. -picasaweb.google.com. -ufps.chukotka.ru. -www.youtube.com. -s2.googleusercontent.com. -onet.pl. -ssl.gstatic.com. -26.23.18.89.in-addr.arpa. -media02-ak.vivastreet.com. -opel-werner.de. -www.macromedia.com. -www.4msa.com. -local-bay.contacts.msn.com. -166.11.234.201.in-addr.arpa. -189.18.244.117.in-addr.arpa. -google.com. -mail.tehn.ru. -ads.yimg.com. -www.apple.com. -merax.ru. -isatap.home. -que-video-loco.blogspot.co.nz. -128.1.16.172.in-addr.arpa. -www.worldofends.com. -barracuda2.mbgpepsi.com. -pixel.rubiconproject.com. -www.neoteo.com. -49.147.220.66.in-addr.arpa. -hackosphere.blogspot.com. -augmentedrealityblog.files.wordpress.com. -raveassociates.net. -a.root-servers.net. -a4.sphotos.ak.fbcdn.net. -google.com. -exotherm.com.inbound10.mxlogicmx.net. -us.bc.yahoo.com. -apuntesdelprofesor.over-blog.es. -www.penguinvids.com. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -quotations.about.com. -api.zynga.com. -sup.live.com. -msigeek.disqus.com. -puzzlingames.com. -a8.sphotos.ak.fbcdn.net. -api-read.facebook.com. -searchclient.live.net. -avrlider.ru. -www.computerstore.co.nz. -urs.microsoft.com. -educacionmusical.es. -www.dospuntocerovision.com. -getlistedsd.com. -creative.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -avril_lavigne-3454.tabsmetal.org. -www.imagegroup.cl. -conveyancepartners.com. -nomoresabotage.com. -www.rockmx.com.mx. -s-static.ak.fbcdn.net. -90.180.107.2.in-addr.arpa. -www.facebook.com. -_360_91_4. -scores.espn.go.com. -time.chttl.com.tw. -fbcdn-profile-a.akamaihd.net. -a5.sphotos.ak.fbcdn.net. -a.root-servers.net. -developers.facebook.com. -urlseek20.vmn.net. -213.254.76.200.in-addr.arpa. -pagead2.googlesyndication.com. -a.root-servers.net. -88p.ru. -group36.com.my. -buoyweather.com. -blst.msn.com. -a.root-servers.net. -ns02.cashparking.com. -9gag.com. -apps.facebook.com. -a.root-servers.net. -netbit.ru. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -news-assets.rovio.com. -login.live.com. -static.ak.fbcdn.net. -s-external.ak.fbcdn.net. -c-0.19-a30f1071.40081.1518.19d0.3ea1.400.0.kn9e331jip5d71gr69pjl3h56t.avqs.mcafee.com. -www.dlpfoodguide.com. -104.1.168.192.in-addr.arpa. -photos-g.ak.fbcdn.net. -baketech.com. -101.10.217.98.in-addr.arpa. -a.root-servers.net. -pmx1.prismnet.com. -www.hese-project.org. -vozenoff7.blogspot.com. -ads.phonemates.com. -67.200.177.189.in-addr.arpa. -trastoteca.blogspot.com. -a3.sphotos.ak.fbcdn.net. -211.212.143.187.in-addr.arpa. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -rons-org.ru. -ad.yieldmanager.com. -klimat.vl.ru. -calendarsglobal.office.glbdns.microsoft.com. -money.cnn.com. -apps.facebook.com. -www.facebook.com. -nichegohoroshego.narod.ru. -165.91.132.189.in-addr.arpa. -ali.shop.sportstoday.com. -data.flurry.com. -www.supersavertravel.se. -es.mg40.mail.yahoo.com. -msn.com. -a.root-servers.net. -cursos-computacion.vivavisos.com.ar. -www.youtube.com. -mail1.entertainment.com. -s0.2mdn.net. -_998_76_9. -107.146.220.66.in-addr.arpa. -pagead2.googlesyndication.com. -crystalpeaks.com. -aspmx3.googlemail.com. -ads.adxpose.com. -fbcdn-profile-a.akamaihd.net. -csi.gstatic.com. -a8.sphotos.ak.fbcdn.net. -www.adcash.com. -. -nochesenlima.com. -snipergirl.ru. -tr.wikipedia.org. -38.73.36.186.in-addr.arpa. -_785_79_1. -loquebuscabas.wordpress.com. -apps.facebook.com. -dns.msftncsi.com. -s-static.ak.fbcdn.net. -mail.de.ensinger-online.com. -cust10074-1.in.mailcontrol.com. -113.204.130.186.in-addr.arpa. -wd-edge.sharethis.com. -zayuwu.com. -www.tashadelrae.com. -appworld.blackberry.com. -ns2.yr.com. -visionexotik.com. -linkhelp.clients.google.com. -6ru3efog2.m14u0e0e. -www.dating-chat.net. -profile.ak.fbcdn.net. -a.root-servers.net. -mail2.digipark.com. -bmx.texasroyalty.com.redcondor.net. -mailscan.au.edu. -secure.internetdownloadmanager.com. -brandonheath.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.l.google.com. -cdn1.ads.contentabc.com. -sn142w.snt142.mail.live.com. -www.teenteddies.com. -xcdn.xgraph.net. -ar-ar.facebook.com. -a.root-servers.net. -accountservices.msn.com. -allcranerentalgeorgia.com.s8b2.psmtp.com. -bs.serving-sys.com. -www.robtex.com. -pottery.ebay.com.au. -www.google.com. -ad2games.com. -246.107.4.171.in-addr.arpa. -www.nokaut.pl. -a.root-servers.net. -download-games.juegosindie.net. -facebook.com. -whitestone.spb.ru. -setup.fanhow.com. -cdn-1.pics.hardsextubepremium.com. -a2.twimg.com. -cim-mf.tmbbank.com. -ftgx.com.s5a2.psmtp.com. -row.bc.yahoo.com. -148.157.68.208.in-addr.arpa. -245.90.250.190.in-addr.arpa. -212.60.128.69.in-addr.arpa. -8.19.170.118.in-addr.arpa. -a.root-servers.net. -148.3.62.186.in-addr.arpa. -pop.asia.secureserver.net. -l.yimg.com. -47.208.242.212.in-addr.arpa. -static.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -www.marcacamps.com. -hi-techsystems.com.s10a2.psmtp.com. -hall-chem.com.inbound15.mxlogic.net. -111.184.188.190.in-addr.arpa. -16.60.153.189.in-addr.arpa. -ps3pirata.com. -183.16.106.177.in-addr.arpa. -check4.facebook.com. -h20157.www2.hp.com. -www.gdservice.piczo.com. -a.root-servers.net. -d7.zedo.com. -48.149.220.66.in-addr.arpa. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -15.70.78.208.zen.spamhaus.org. -176.64.32.189.in-addr.arpa. -www.google-analytics.com. -142.40.242.88.in-addr.arpa. -ajax.googleapis.com. -www.seek.com.au. -hy.wikipedia.org. -7.188.112.200.in-addr.arpa. -eu.wikipedia.org. -pool.ntp.org. -www.google-analytics.com. -vp.kis.ru. -i4.ytimg.com. -a4.sphotos.ak.fbcdn.net. -pqj16dwcxpzn20puatg53jukxowmtp62ctjx.com. -theeclecticlife.wordpress.com. -b:hicg4zo.h67f8t0f. -mail06.enterhost.com. -www.premiere.frhttp. -a6.sphotos.ak.fbcdn.net. -www.potube.com. -idmtfopfphqwp.biz. -iphonesubmissions.apple.com. -www.escolar.com.mx. -sn116w.snt116.mail.live.com. -_883_68_0. -www.patentati.it. -a3.sphotos.ak.fbcdn.net. -striker-manager.blogspot.com. -secure.shared.live.com. -s1-word-edit.vo.msecnd.net. -redir.metaservices.microsoft.com. -sadfas.com. -twedge02.ohsu.edu. -8213l4dgx.h23f9j0q. -135.247.228.94.in-addr.arpa. -photos-f.ak.fbcdn.net. -external.ak.fbcdn.net. -149.206.30.200.in-addr.arpa. -ic.tynt.com. -g.ceipmsn.com. -thecalloflove.blogspot.com. -denis.stalker.h3q.com. -jameique.com. -244.172.82.67.in-addr.arpa. -svrsecure-g2-aia.verisign.com. -maquerosmac.blogspot.com. -i413.photobucket.com. -www.google.com. -distilleryimage7.s3.amazonaws.com. -granvillehouse.blogspot.com. -www.satireworld.com. -multi96.thumb.edenflirt.com. -_716_22_9. -www.argentinaxplora.com. -vindiaservices.com. -www.edmaster.it. -44.101.243.80.in-addr.arpa. -nhahouston.com. -ngf:gxuk1.c14y5u2a. -www.google-analytics.com. -ocsp.verisign.com. -www.msftncsi.com. -updatekeepalive.mcafee.com. -a4.sphotos.ak.fbcdn.net. -www.bryanreesman.com. -www.ceajalisco.gob.mx. -kontur-s.ru. -t2.gstatic.com. -teraprom.ru. -76.186.190.189.in-addr.arpa. -225.177.208.201.in-addr.arpa. -lucernevalley.net. -247.68.22.95.in-addr.arpa. -altex.ru. -fi.wikipedia.org. -static.ak.fbcdn.net. -javadl-esd.sun.com. -anstracker.no-ip.org. -www.google.com. -id.etn.net. -91.200.66.186.in-addr.arpa. -correo.ugr.es. -a1.sphotos.ak.fbcdn.net. -dtboot.orbitdownloader.com. -ads.movpod.net. -48.248.107.189.in-addr.arpa. -blu.stc.s-msn.com. -stefi-tk.ru. -photos-g.ak.fbcdn.net. -www.tvnotas.com. -asegenpropiedades.cl. -a.root-servers.net. -i2.ytimg.com. -mail.cityoflafayette.com. -www.pronosticssportif.com. -cblproball.com. -218.254.192.187.in-addr.arpa. -sites.google.com. -a2.sphotos.ak.fbcdn.net. -ads16411.hotwords.es. -twitter.com. -a1001.w40.akamai.net. -stk:zrmf8.b97d6e1h. -www.mims.com.sg. -staff.tabideru.com. -andersenjoy.com. -a1.sphotos.ak.fbcdn.net. -71.242.143.187.in-addr.arpa. -js.media.motortopia.com. -charbonneau.com. -www.googleadservices.com. -www.afianza.com.mx. -21.168.248.111.in-addr.arpa. -www.carlkleiner.com. -photos-a.ak.fbcdn.net. -crl.usertrust.com. -selenaweb.org. -wootton-hall.com. -236.29.2.24.in-addr.arpa. -profile.ak.fbcdn.net. -ssl.gstatic.com. -64.92.213.201.in-addr.arpa. -. -amasscn.en.made-in-china.com. -api-public.addthis.com. -view.atdmt.com. -cocomponents.com. -www.youtube.com. -twitter.com. -a.root-servers.net. -r.mzstatic.com. -crprint.com.s6b2.psmtp.com. -photos-f.ak.fbcdn.net. -69.249.46.189.in-addr.arpa. -es.avatars.yahoo.com. -s-static.ak.facebook.com. -sexyrebelde69.obolog.com. -profiles.google.com. -gfx4.hotmail.com. -www.gayanime.com. -berghof.de. -47.174.1.24.in-addr.arpa. -mail.wsasystems.com. -148.121.230.201.in-addr.arpa. -www.facebook.com. -time.nist.gov. -upctv.com. -127.79.233.178.in-addr.arpa. -mx.mail.sogou.com. -api.mixpanel.com. -a2.sphotos.ak.fbcdn.net. -200.210.224.190.in-addr.arpa. -affordableinsurance.us. -www.colorearte.cl. -www.uzai.com. -us.lrd.yahoo.com. -www.bbc.co.uk. -recursos.espaciosexy.com. -external.ak.fbcdn.net. -136.71.43.208.in-addr.arpa. -safebrowsing.clients.google.com. -teredo.ipv6.microsoft.com. -230.246.159.79.in-addr.arpa. -64.1.168.192.in-addr.arpa. -s-static.ak.facebook.com. -madewithluv.com. -e906.g.akamaiedge.net. -a8.sphotos.ak.fbcdn.net. -www.alfainmo.com. -photos-c.ak.fbcdn.net. -www.google.com. -www.facebook.com. -q75hrirce.99ax. -inmortalyvampiros.blogspot.com. -las-chicas-superpoderosas-z.blogspot.com. -dns.msftncsi.com. -51.174.126.2.in-addr.arpa. -cliffordchance.com. -www.potter.web.id. -147.125.46.189.in-addr.arpa. -gfxp.com. -www.lifeyoyo.com. -29.124.45.216.in-addr.arpa. -vcs2.msg.yahoo.com. -polychem-usa.com. -liteonit.com. -sinlatvcom.chatango.com. -a.root-servers.net. -cdn-6.pics.redtubeplatinum.com. -a.root-servers.net. -safebrowsing-cache.google.com. -www.facebook.com. -ksn2-12.kaspersky-labs.com. -photos-f.ak.fbcdn.net. -jtaby.com. -45.102.150.91.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -ocsp.verisign.com. -www.kinkydates.com. -176.216.80.190.in-addr.arpa. -www.tastygo.com. -androidsdk.ads.mp.mydas.mobi. -218.141.97.109.in-addr.arpa. -noticias.terra.cl. -www.zorritasconcam.com. -a4.sphotos.ak.fbcdn.net. -luciensteil.tripod.com. -support.euro.dell.com. -whyweightinternational.com. -www.google-analytics.com. -touch.facebook.com. -validator.w3.org. -seg.sharethis.com. -www.super-science-fair-projects.net. -check6.facebook.com. -66.177.6.186.in-addr.arpa. -partyreflections.com. -74.95.135.187.in-addr.arpa. -foundation-financial.com. -a.root-servers.net. -d2094073.xoom.it. -jewel-staite.net. -msc.wlxrs.com. -c5.zedo.com. -a.root-servers.net. -photos-g.ak.fbcdn.net. -rdgoodgebuilder.co.uk. -243.102.51.72.in-addr.arpa. -222.101.199.190.in-addr.arpa. -a.root-servers.net. -profile.ak.fbcdn.net. -es.astrology.yahoo.com. -76.228.121.123.in-addr.arpa. -63.42.223.189.in-addr.arpa. -exp02.eset.com. -photos-e.ak.fbcdn.net. -mx2.interworld.net. -t-online.de. -www9.effectivemeasure.net. -a.root-servers.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -96.179.165.58.in-addr.arpa. -ajax.aspnetcdn.com. -me-cdn.effectivemeasure.net. -teredo.ipv6.microsoft.com. -www.adobe.com. -44-courier.push.apple.com. -mail.sdoamg.com. -264lpgc88.08gm. -81.154.227.77.in-addr.arpa. -kailea.com. -114.21.101.187.in-addr.arpa. -233.170.8.99.in-addr.arpa. -42.106.81.75.in-addr.arpa. -kayser-roth.com.s5b2.psmtp.com. -landquestdevelopment.com.s5b2.psmtp.com. -:xa96l8dm.75na. -12.122.172.189.in-addr.arpa. -ccpi-inc.com.s5b1.psmtp.com. -photos-a.ak.fbcdn.net. -163.148.134.174.in-addr.arpa. -65.145.133.50.in-addr.arpa. -ssl.gstatic.com. -extremefitnessco.com. -www.dofiscal.net. -a.triggit.com. -konata-station.net. -www.mozilla.org. -hofferflow.com. -estrenosperu.jimdo.com. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -torrent.mangastream.to. -local-sn.contacts.msn.com. -a.root-servers.net. -ns56.1und1.de. -dns.msftncsi.com. -creative.ak.fbcdn.net. -66.172.22.190.in-addr.arpa. -bin-short.whatsapp.net. -www.ethorprotect.com. -a8.sphotos.ak.fbcdn.net. -www.chicasasiaticas.com.ar. -distilleryimage9.s3.amazonaws.com. -crl.microsoft.com. -yunno.com. -googleads.g.doubleclick.net. -apple-mobile.query.yahooapis.com. -www.google.com. -en.wikipedia.org. -ml-rl.fsbusiness.co.uk. -www.ccee.ch. -photos-a.ak.fbcdn.net. -accounts.google.com. -235.26.31.189.in-addr.arpa. -l8qczsku7.87ct. -www.lapopottedemanue.com. -a.root-servers.net. -50.195.249.190.in-addr.arpa. -static.depers.nl. -dr._dns-sd._udp.na.pg.com. -itworks.com. -www.google-analytics.com. -d3lvr7yuk4uaui.cloudfront.net. -agentphone.co.uk. -31-courier.push.apple.com. -britishmidland.co.uk. -i.juegosdecartas.org. -www.google-analytics.com. -mail.infosys.ru. -233.29.99.190.in-addr.arpa. -sp.cwfservice.net. -clock.fmt.he.net. -hughdancy.info. -api.webrep.avast.com. -mami. -youtube.com. -www.mocacleveland.org. -t.co. -peloterosperuanos.blogspot.com. -s-static.ak.facebook.com. -profile.ak.fbcdn.net. -a728.g.akamai.net. -www.googleadservices.com. -v3.cache3.c.youtube.com. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -www.roflzoo.com. -photos-f.ak.fbcdn.net. -s-static.ak.facebook.com. -www.boost-your-low-testosterone.com. -65.213.14.50.in-addr.arpa. -39games.com. -a.root-servers.net. -actionteam.es. -c247723.r23.cf1.rackcdn.com. -introsco.ru. -hi-in.facebook.com. -domssl.mercadolibre.com.co. -endirect.radio-canada.ca. -a8.sphotos.ak.fbcdn.net. -179.98.135.89.in-addr.arpa. -www.meristation.es. -49.216.141.75.in-addr.arpa. -elite-traveller.ru. -77.92.158.189.in-addr.arpa. -badoo.com. -www.epyte.com. -ads1.msads.net. -fontmatrix.net. -www.jrhjw.com. -cybercomp.com. -s.ytimg.com. -www.tourvenezuela.com.ve. -uk.f1324.mail.yahoo.com. -nothingtocontribute.tumblr.com. -www.facebook.com. -163.201.25.190.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -www.sithma.com. -a4.sphotos.ak.fbcdn.net. -laboratorio.clandlan.net. -platform.ak.fbcdn.net. -a.root-servers.net. -gfinpolish.blogspot.com. -www.facebook.com. -www.mandtbank.com. -static.getclicky.com. -205.141.157.189.in-addr.arpa. -s-static.ak.fbcdn.net. -safebrowsing-cache.google.com. -photos-h.ak.fbcdn.net. -aussiemail.com. -altfarm.mediaplex.com. -www.deblancointernet.com. -google.com. -89.247.20.95.in-addr.arpa. -mdsaude.disqus.com. -scribe.twitter.com. -leon.gob.mx. -110.79.129.189.in-addr.arpa. -ksn2-12.kaspersky-labs.com. -svitanok.ru. -tagmarks.jmin.net. -ntp1.cs.wisc.edu. -s3.amazonaws.com. -145.236.230.91.in-addr.arpa. -www.ebay.es. -i1.ytimg.com. -11.140.198.68.in-addr.arpa. -external.ak.fbcdn.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -catalog-retail.amazon.com. -download330.avast.com. -photos-d.ak.fbcdn.net. -www.cpxadspace.com. -a8.sphotos.ak.fbcdn.net. -www.google.com. -s0.2mdn.net. -14.8.84.200.in-addr.arpa. -ru.mirror.alawar.com. -151.172.62.190.in-addr.arpa. -mx2.neonhost.com. -65.1.168.192.in-addr.arpa. -226.2.172.190.in-addr.arpa. -i1.ytimg.com. -t1.gstatic.com. -upload.itvnn.net. -www.google.com. -www.iamosx.com. -65.250.120.124.in-addr.arpa. -www.meowhoo.com. -climatec.com.inbound15.mxlogic.net. -s2.youtube.com. -240.84.67.24.zz.countries.nerd.dk. -www.kwinanatech.com. -www.google-analytics.com. -66.33.224.190.in-addr.arpa. -sky.ee. -64.141.53.201.in-addr.arpa. -a.root-servers.net. -39.152.101.75.in-addr.arpa. -pegasusrealty.us. -sigs.symantec.com. -y2wkcl6ve.q54m2e9w. -literariokapasulino.blogspot.com. -a1767.phobos.apple.com. -content.cricinfo.com.edgesuite.net. -join.societysm.com. -a.root-servers.net. -a.root-servers.net. -inbound.haakon.com.netsolmail.net. -ut8.xhamster.com. -21.201.34.187.in-addr.arpa. -static.searchya.com. -www.total3d.ru. -ncbaptist.org. -169.119.136.186.in-addr.arpa. -connect.facebook.net. -www.apetube.com. -knockman.com. -gta-nuevoleon.blogspot.com. -i.i.com.com. -any-global.mg.mail.am0.yahoodns.net. -www.dpinterracial.com. -pixel.33across.com. -www.torrentzap.com. -99.46.48.190.in-addr.arpa. -a.root-servers.net. -ajax.googleapis.com. -teredo.ipv6.microsoft.com. -hay. -profiles.google.com. -google.com. -alerts.conduit-services.com. -googleads.g.doubleclick.net. -jcmountainview.com. -pt-br.facebook.com. -www.google.com. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.theydrawandtravel.com. -19.228.171.69.in-addr.arpa. -www.facebook.com. -a.root-servers.net. -a6.sphotos.ak.fbcdn.net. -ocsp.verisign.net. -www.facebook.com. -132.15.152.187.in-addr.arpa. -_080_08_2. -login.live.com. -photos-d.ak.fbcdn.net. -ads.adxpose.com. -s2.youtube.com. -cdn.api.twitter.com. -mail.abbottinsuranceagency.com. -bateriaswillard.com. -static.ak.fbcdn.net. -clarence.com. -26.6.106.201.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -www.msn.com. -americansuburbx.com. -freemail.com.ru. -136.27.138.201.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -36.4.31.186.in-addr.arpa. -a.root-servers.net. -www.google.es. -89.183.220.201.in-addr.arpa. -49-courier.push.apple.com. -84viwst58.32ta. -ipad.91.com. -paisleystclaire.typepad.com. -books.google.com.mx. -_854_29_8. -a.root-servers.net. -www.granch.ru. -185.162.48.190.in-addr.arpa. -9.229.194.186.in-addr.arpa. -www.defiendetufamilia.com. -static.ak.fbcdn.net. -203.56.11.190.in-addr.arpa. -www.star-wars3d.com. -wo.wikipedia.org. -43.96.189.24.in-addr.arpa. -profile.ak.fbcdn.net. -shop.broccoli.co.jp. -pagead2.googlesyndication.com. -aca.gov.au. -eo.wikipedia.org. -photos-g.ak.fbcdn.net. -www.myhappyplanet.com. -gmail.com. -observatorio.atriumlinguarum.org. -www.google-analytics.com. -54.53.93.186.in-addr.arpa. -external.ak.fbcdn.net. -48.177.223.77.in-addr.arpa. -70.12.14.125.in-addr.arpa. -eriadi.elkhabar.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -iemcontractors.com. -earth.google.co.uk. -35.76.165.190.in-addr.arpa. -s-static.ak.facebook.com. -239.19.132.187.in-addr.arpa. -gdata.youtube.com. -www.lafd.org. -4q7irqere.47qh. -webng.com. -79.22.245.190.in-addr.arpa. -kekop.com. -us.mc1215.mail.yahoo.com. -y3.ifengimg.com. -14.204.kam-telecom.ru.lan. -84.113.159.187.in-addr.arpa. -s-static.ak.fbcdn.net. -214.16.125.74.in-addr.arpa. -www.biodanza-adrian.com.ar. -goglingb.org. -eu.ecs.com.tw. -hi-in.facebook.com. -www.physiciansofficeresource.com. -www.facebook.com. -179.211.124.201.in-addr.arpa. -a2.twimg.com. -www.peliculastnt.com. -download.microsoft.com. -gaming.hardwareheaven.com. -softwarena.com. -ksn2-12.kaspersky-labs.com. -www.kathyskakes.com. -161.216.14.186.in-addr.arpa. -embaqmail.com. -65.88.54.75.in-addr.arpa. -www.xtremethumbs.com. -a.root-servers.net. -blackmilkclothing.myshopify.com. -www.mataderos.info. -www.juegajuegosflash.com. -71.94.172.189.in-addr.arpa. -162.230.23.71.in-addr.arpa. -ad-apac.doubleclick.net. -www.time.com. -105.186.191.186.in-addr.arpa. -www.facebook.com. -isearch.avg.com. -helpcenter.spp.com. -stanpark.com. -. -www.celebrityclubber.com. -kadgeo.ru. -nottango.bandcamp.com. -code.jquery.com. -cdn1.hitnettracer.com. -6.28.39.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -www.facebook.com. -mebeingcrafty.com. -mail.danvadenchevrolet.com. -sites.google.com. -_023_46_3. -www.facebook.com. -a.root-servers.net. -startechev.com. -a.root-servers.net. -es.msn.com. -b._dns-sd._udp.belkin. -es.answers.yahoo.com. -translate.google.com. -planetadepeliculaskriec.blogspot.com. -a7.sphotos.ak.fbcdn.net. -34.120.24.217.in-addr.arpa. -www1.blogblog.com. -zynga2-a.akamaihd.net. -sp.cwfservice.net. -97.245.77.188.in-addr.arpa. -profile.ak.fbcdn.net. -api.twitter.com. -java-source.net. -cutekittens.com. -photos-f.ak.fbcdn.net. -meredithtv.us.intellitxt.com. -235.102.114.1.in-addr.arpa. -228.29.76.189.in-addr.arpa. -efacico.wordpress.com. -www.facebook.com. -google.com. -thelariat.com. -a.root-servers.net. -238.30.142.79.in-addr.arpa. -adops.alloy.com. -docs.google.com. -www.castillodearena.edu.mx. -b-t.com.ua. -apps.facebook.com. -125.195.198.190.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -mx1.flirble.org. -csi.gstatic.com. -www.bywifi.com. -186.46.30.83.in-addr.arpa. -224.30.168.192.in-addr.arpa. -s-static.ak.facebook.com. -27.8.224.189.in-addr.arpa. -static.ak.fbcdn.net. -certificates.godaddy.com. -137.196.141.201.in-addr.arpa. -mail.goole.net. -226.46.55.189.in-addr.arpa. -enviayreporta.esmas.com. -indieclick.3janecdn.com. -photos-h.ak.fbcdn.net. -79.75.220.87.in-addr.arpa. -www.facebook.com. -www.supercuts.com.au. -myapself.blogspot.com. -www.search-results.com. -mailman2.youngsmarket-ut.com. -www.google-analytics.com. -inbound.dominiontruss.com.netsolmail.net. -static.exoclick.com. -ksn2-12.kaspersky-labs.com. -mx01.comp-pro-dns.de. -www.evostc.state.ak.us. -photos-d.ak.fbcdn.net. -www.joris-vervuurt.com. -www.lsgmodelsnude.com. -udc.msn.com. -l.betrad.com. -gamezer.com. -www.mbtshoesdepot.com. -a1.sphotos.ak.fbcdn.net. -media.scenedaily.com. -apps.facebook.com. -quebecblogue.com. -146.79.236.201.in-addr.arpa. -i4.ytimg.com. -www.google.com. -safebrowsing-cache.google.com. -leaderbusiness.com. -l7dxx99jn.76zr. -attachment.fbsbx.com. -www.hk.com. -charlesburt.com. -4.177.244.207.in-addr.arpa. -beatwolf.com. -support.google.com. -connect.facebook.net. -sports.yahoo.com. -y3agg2b81.36ej. -www.gravatar.com. -120.145.85.77.in-addr.arpa. -. -ssl.gstatic.com. -1.234.10.83.in-addr.arpa. -89.54.200.178.in-addr.arpa. -nexisint.com. -twitter.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -a.root-servers.net. -st.p.360.cn. -pt-br.facebook.com. -a.root-servers.net. -secure.wlxrs.com. -2.m0n0wall.pool.ntp.org. -www.precisiondrilling.com. -apix.iminent.com. -jhc.co.uk. -stardock-logonstudio.softonic.com. -jones-thomas-md.com. -www.d365.org. -profile.ak.fbcdn.net. -www.peoplefinders.org. -239.22.127.201.in-addr.arpa. -244.239.229.88.in-addr.arpa. -naruto.wikia.com. -62.138.6.189.in-addr.arpa. -www.godofwar.com. -171.30.220.189.in-addr.arpa. -mail1.westernrefining.com. -www.maj.ie.edu. -www.tequilabeachtours.com. -208.126.233.201.in-addr.arpa. -static.ak.facebook.com. -mx.parktelusa.com. -ocsp.thawte.com. -a785.phobos.apple.com. -mountaincreek.com.s5a1.psmtp.com. -m.facebook.com. -ms.adscope.co.kr. -flow-entertainment.com. -vivaldi-travel.ru. -de.cliplike.net. -hello.connectivity.me.com. -widget.plugrush.com. -200.151.252.201.in-addr.arpa. -dns.msftncsi.com. -www.3dtv.com. -unifi. -appsmetadata.toolbar.conduit-services.com. -253.104.170.189.in-addr.arpa. -catolicosfirmes.phpbbforo.com. -maggiered.blogspot.com. -www.chicaswebcam803.com. -support.google.com. -www.google-analytics.com. -callwriter.com. -dns.msftncsi.com. -csi.gstatic.com. -ns.dipmap.com. -sup.arnuvo.ru. -apps.facebook.com. -fs_bt.qq.com. -utm.trk.mywebsearch.com. -ad.leadboltapps.net. -feeds.bbci.co.uk. -google.com. -a3.sphotos.ak.fbcdn.net. -splav.net.ru. -pixel.facebook.com. -careercenter.com. -processanalyzers.net. -v17.nonxt7.c.youtube.com. -www.cssforum.com.pk. -twitpic.com. -stonehardware.com. -shortstop-left-field.blogspot.com. -www.djkrac.blogspot.com. -www.oneclickshooting.com. -frontend.weeds.mytopia.com. -www.strefa.pl. -197.51.93.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -servicenet.com. -26.135.213.201.in-addr.arpa. -12.122.113.195.in-addr.arpa. -225.14.85.99.in-addr.arpa. -profile.ak.fbcdn.net. -external.ak.fbcdn.net. -ellsworth.net. -131.87.5.88.in-addr.arpa. -www.hotelrua.com. -17.15.208.95.in-addr.arpa. -alfrasha.maktoob.com. -img226.imagevenue.com. -galleries.messygangbangs.com. -www.facebook.com. -argentinarrhh.blogspot.com. -_527_09_1. -google.com. -a.root-servers.net. -www.bing.com. -aquanet.com. -www.facebook.com. -ic.tynt.com. -rs38dt.rapidshare.com. -es.answers.yahoo.com. -a.root-servers.net. -r.mzstatic.com. -a.root-servers.net. -a.root-servers.net. -chokefrantic.hubpages.com. -static.ak.fbcdn.net. -ledergroup-com.mail.eo.outlook.com. -push2check.com. -embarazadafeliz.com. -www.jethrotull.com. -r1.gslb.ace.advertising.com.adcom.akadns.net. -www.ideasdenegocio.com.co. -platform0.twitter.com. -a8.sphotos.ak.fbcdn.net. -_378_56_8. -pixel.facebook.com. -www.nuevebits.com. -a1174.g.akamai.net. -250.146.42.201.in-addr.arpa. -www.super8news.com. -www.elcrimennopaga.com. -a5.sphotos.ak.fbcdn.net. -account.live.com. -photos-h.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -news.google.com. -www.jacksmannequin.com. -mx2.oregonmetro.gov. -cmdos.files.wordpress.com. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -l.yimg.com. -agent.kuaiwan.com. -photos-e.ak.fbcdn.net. -www.youtube.com. -photos-e.ak.fbcdn.net. -wzus1.search-results.com. -a.root-servers.net. -www.hotelreservaciones.com.mx. -newsrss.bbc.co.uk. -www.stephisparadise.com. -138.76.200.186.in-addr.arpa. -8207.4.img98.net. -mf.orkut.vostu.com. -external.ak.fbcdn.net. -8mln:f:84.k41w9z9y. -www.facebook.com. -optimized-by.rubiconproject.com. -mobile.search.aol.com. -www.crlsresearchguide.org. -ds.serving-sys.com. -149.168.9.61.in-addr.arpa. -a.root-servers.net. -www.volleyball-tours.com. -lenix.com.br. -68.84.224.125.in-addr.arpa. -217.152.48.190.in-addr.arpa. -prod-nr285.voxer.com. -d2055523.instant.xoom.it. -images.effexmedia.com. -host.name.ru. -permlight.com. -a.root-servers.net. -profile.ak.fbcdn.net. -www.1wanwan.com. -static.ak.fbcdn.net. -141.39.160.190.in-addr.arpa. -www.baidu.com. -gone-star.tumblr.com. -www.sonesta.com. -a.root-servers.net. -208.72.131.82.in-addr.arpa. -59.187.195.71.in-addr.arpa. -ee:evptz7.l32p6r6o. -satfile300.corp.kbr.com.beknet.us. -a.root-servers.net. -31.201.163.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -ad.adnetwork.net. -img.android.maxpedia.org. -cityvillefb1.static.zgncdn.com. -www.allposters.com.tr. -isiprint.net. -hiphopgalaxy.com. -www.ticketmaster.com. -aneses.com. -14.34.92.93.in-addr.arpa. -cmapspublic2.ihmc.us. -www.jocjuegos.com. -login.skype.com. -www.ocesa.com.mx. -campusdigital.uag.mx. -www.gstatic.com. -google.com. -celularessonyericsson.para-celulares.com. -www.liverpool-live.info. -vewrizon.net. -photos-e.ak.fbcdn.net. -googleads.g.doubleclick.net. -cirkor.se. -reng.ru. -www.apic.org. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -skhamp.files.wordpress.com. -a1724.phobos.apple.com.edgesuite.net. -fls.doubleclick.net. -i2.ytimg.com. -205.47.194.187.in-addr.arpa. -mail2brussels.com. -altaiagro.com. -72.33.134.188.in-addr.arpa. -b._dns-sd._udp.lan. -s2.youtube.com. -phxdata.com. -shop65367577.taobao.com. -apis.google.com. -cdn.montiera.com. -nvkz.net. -static.ak.fbcdn.net. -blufiles.storage.msn.com. -www.harleyandharlett.blogspot.com. -wii.mmgn.com. -tobolsk.info. -31.60.49.190.in-addr.arpa. -ad.doubleclick.net. -dtboot.orbitdownloader.com. -cine.es.msn.com. -www.strbk.fr. -api.facebook.com. -9gag.com. -eldelyayo.blogspot.com. -mlb.mlb.com. -it-it.facebook.com. -109.218.117.75.in-addr.arpa. -au.download.windowsupdate.com. -mta4.am0.yahoodns.net. -a.root-servers.net. -profile.ak.fbcdn.net. -148.88.145.201.in-addr.arpa. -filter2.mittkontor.no. -tracker.mightynova.com. -ezay55cz5.65wy. -www.google.com. -gte.n. -thumbs1.ebaystatic.com. -purenetworks.com. -. -www.animal-games.biz. -mail.v1mortgage.com. -53.110.102.201.in-addr.arpa. -b.scorecardresearch.com. -ar-ar.facebook.com. -static.ak.fbcdn.net. -taipei.org.nz. -infectomica.cinvestav.mx. -bbfdyz3yz.57sl. -m.facebook.com. -www.google.com. -taz.de. -baymsg1010833.by2.gateway.edge.messenger.live.com. -www.tarif-mobile.ru. -newsrss.bbc.co.uk. -a.root-servers.net. -us.yimg.com. -communityvoices.sites.post-gazette.com. -ut2.xhamster.com. -romana.babylon.com. -humorvice.blogspot.com. -a7.sphotos.ak.fbcdn.net. -mx183.emialfiltering.com. -www.socialmediasl.com. -a.root-servers.net. -c10038.ic-live.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -sro.whatsapp.net. -itunes.apple.com. -external.ak.fbcdn.net. -www.batanga.com. -teredo.ipv6.microsoft.com. -wheels.blogs.nytimes.com. -23.242.163.189.in-addr.arpa. -91.175.140.194.in-addr.arpa. -www.plabell.com. -a2.sphotos.ak.fbcdn.net. -distilleryimage5.instagram.com. -212.171.131.189.in-addr.arpa. -ocsp.godaddy.com. -yahoo.com. -alger.ebuddy.com. -35.207.23.92.in-addr.arpa. -ae.adserver.yahoo.com. -m.addthisedge.com. -1.70.16.172.in-addr.arpa. -crl.microsoft.com. -hk.search.auctions.yahoo.com. -tobolsk.info. -9q5lzw5c2.n96f0r1q. -46.117.103.201.in-addr.arpa. -tools.google.com. -update.messenger.yahoo.com. -110.21.39.81.in-addr.arpa. -241.116.172.187.in-addr.arpa. -game.softick.com. -www.siempreeducando.com. -ad-g.doubleclick.net. -us1.harunyahya.com. -tko7ia.bay.livefilestore.com. -82.107.39.190.in-addr.arpa. -a.root-servers.net. -mail.kcengineering.com. -107.178.179.190.in-addr.arpa. -mail.lobosservices.com. -royalflush.ru. -market.android.com. -data.shopsavvy.mobi. -www.gmflotillas.com.mx. -235.189.26.201.in-addr.arpa. -_818_12_0. -adsfront.iminent.com. -239.166.236.189.in-addr.arpa. -apeco.org.pe. -www.google.com. -chicostara.com. -urbanterror.mtc-team.fr. -storage.conduit.com. -cs1752.vkontakte.ru. -photos-d.ak.fbcdn.net. -\(none\). -lavozdecristian.cl.woopra-ns.com. -102.148.144.189.in-addr.arpa. -www.google.com. -partner.googleadservices.com. -reawards.ru. -smtp-in2.sfbcic.com. -thedanisgroup.com. -estate-insurance-credit-conference.ru. -a997.mm1.akamai.net. -ads.yimg.com. -100.110.175.190.in-addr.arpa. -hootsuite.com. -16.79.31.189.in-addr.arpa. -creative.ak.fbcdn.net. -207.42.42.186.in-addr.arpa. -ar-ar.facebook.com. -7.169.122.195.in-addr.arpa. -aidps.atdmt.com. -www.crushingonclothes.com. -www.facebook.com. -www.quiebro.com. -www.facebook.com. -ksn2-12.kaspersky-labs.com. -profile.ak.fbcdn.net. -ad-g.doubleclick.net. -_653_20_8. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-g.ak.fbcdn.net. -download115.avast.com. -ws-cloud-msgplus.linkury.com. -30.117.5.189.in-addr.arpa. -242.240.10.187.in-addr.arpa. -wistron.com. -biasabaeiki.blogspot.com. -www.facebook.com. -ie9cvlist.ie.microsoft.com. -teredo.ipv6.microsoft.com. -desmorrugador.bravehost.com. -www.gocanvas.com. -tallerdelibros.com. -www.bostonherald.com. -www.bilatinmen.com. -photos-a.ak.fbcdn.net. -diabetes.todominio.com. -www.facebook.com. -widgets.amung.us. -195.252.127.187.in-addr.arpa. -pagead.l.doubleclick.net. -gfx4.hotmail.com. -photos-g.ak.fbcdn.net. -www.gpbatteries.com. -mx.youtube.com. -acordiare.com. -unitmagazine.com. -gymnasticbodies.com. -ad.doubleclick.net. -a1.sphotos.ak.fbcdn.net. -223.128.121.94.in-addr.arpa. -global.nytimes.com. -accounts.google.com. -www.69bits.com. -fremont.downtown.net. -nina.pagesz.net. -www.woitalia.it. -bravox.net. -172.199.163.142.in-addr.arpa. -navy.mil. -182.69.46.189.in-addr.arpa. -a.root-servers.net. -photos-d.ak.fbcdn.net. -safebrowsing-cache.google.com. -yaoi-haven.com. -app54.logmein.com. -geo.tp-cdn.com. -s.mfcdn.net. -p06-contacts.icloud.com. -67.174.63.83.in-addr.arpa. -www.ukwhitegoods.co.uk. -cm.ac3.msn.com. -dns.msftncsi.com. -pixel.facebook.com. -media.esmas.com. -a1.sphotos.ak.fbcdn.net. -242.30.62.186.in-addr.arpa. -photos-a.ak.fbcdn.net. -admeld.adnxs.com. -mx.youtube.com. -118.199.216.89.in-addr.arpa. -73.111.31.190.in-addr.arpa. -zh-cn.facebook.com. -google.com. -186.14.229.201.in-addr.arpa. -siteholder.ru. -www.addthis.com. -caldwellw.freeserve.co.uk. -graph.facebook.com. -photos-h.ak.fbcdn.net. -a.root-servers.net. -109.75.105.75.in-addr.arpa. -maldi.tv. -apuntesparaestudiar.com. -uralhosting.ru. -www.belkin.com. -156.46.83.78.in-addr.arpa. -cborange.com. -platform.twitter.com. -www.google-analytics.com. -fbcdn-profile-a.akamaihd.net. -dfdffdf.com. -www.battlefieldadventures.com. -conn.skype.com. -a.root-servers.net. -tc.v23.cache5.c.youtube.com. -scotia70657275.h1x.com. -235.189.91.186.in-addr.arpa. -115.53.48.190.in-addr.arpa. -i4.ytimg.com. -127.189.22.190.in-addr.arpa. -a.root-servers.net. -clients1.google.com. -133.0.0.10.in-addr.arpa. -54.55.82.200.in-addr.arpa. -hypermetix.net. -58.56.35.187.in-addr.arpa. -www.milenio.com. -www.gstatic.com. -pushpoppress.com. -2.174.254.201.in-addr.arpa. -www.elsegundero.com. -whiteandassociates.net.bak-mx.na0102.smtpbak.comcom. -teredo.ipv6.microsoft.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -101.45.138.24.in-addr.arpa. -www.msftncsi.com. -a.ads2.msads.net. -totallycellular.net.bak-mx.smtproutes.com. -a1.sphotos.ak.fbcdn.net. -68ohh6com6c1h-c.c.yom.mail.yahoo.com. -9.233.174.190.in-addr.arpa. -photos-g.ak.fbcdn.net. -freephotocalendar.net. -a.root-servers.net. -gmail.com. -eivyaaox.info. -cs221.stanford.edu. -mailx.hoster.ru. -a.root-servers.net. -biowiki.ucdavis.edu. -f741.mail.yahoo.com. -iowa-city.org.inbound45.mxlogicmx.net. -www.synonyms-antonyms.com. -sumvm1.vnet.ibm.com. -19.219.109.101.in-addr.arpa. -152.23.50.190.in-addr.arpa. -a.root-servers.net. -202.11.19.189.in-addr.arpa. -dns.msftncsi.com. -beta.stun.voice.yahoo.com. -www.facebook.com. -246.200.57.186.in-addr.arpa. -www.swallowsquirt.com. -photos-e.ak.fbcdn.net. -ksn1-11-part1.kaspersky-labs.com. -static.ak.fbcdn.net. -evssl-aia.geotrust.com. -219.148.56.186.in-addr.arpa. -signin.ebay.com. -wpad. -85.61.174.190.in-addr.arpa. -wdg1.apple.com. -97.73.105.187.in-addr.arpa. -p1901.infolinks.com. -t9ahqgs4m.06zw. -infoworld.com.s6b1.psmtp.com. -mail.onlinep2000.com. -u1.ac.hk2.yahoo.com. -a.root-servers.net. -id.google.com. -14.149.221.190.in-addr.arpa. -creative.clicksor.com. -a8.sphotos.ak.fbcdn.net. -x264dev.multimedia.cx. -ocsp.verisign.com. -www.youtube-nocookie.com. -rv.coupish.com. -cdn2.pugetsystems.com. -pagead2.googlesyndication.com. -242.45.117.200.in-addr.arpa. -. -vidasilvestre.org.ar. -107.111.143.89.in-addr.arpa. -www.mmorpgranks.com. -assets4.castle.zgncdn.com. -www.bfeditor.org. -expert.co.th. -wixmobile.com. -boblynchford.com. -www.desafiointel.com. -a.root-servers.net. -stock.joinsmsn.com. -123.69.59.186.in-addr.arpa. -kaibacorp0.50megs.com. -dbru.br.ns.els-gms.att.net. -s3.sidereel.com. -club-krasotki.ru. -www.facebook.com. -resources.search.conduit.com. -app.appgefahren.de. -_957_33_5. -131.149.18.187.in-addr.arpa. -agothsphere.com. -a1113.da1.akamai.net. -lgrlwq.bay.livefilestore.com. -s5bi:uk6r.61le. -179.17.46.208.in-addr.arpa. -damonbraces.com. -static.ak.fbcdn.net. -www.google-analytics.com. -gilat.net. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -www.facebook.com. -www.google-analytics.com. -ejabat.google.com. -stun.client.akadns.net. -safebrowsing.clients.google.com. -www.valleviejo1041.com.ar. -vcs1.msg.yahoo.com. -www.facebook.com. -www.cliphai.com. -waggingthefox.blogspot.com. -www.google.com. -images.hornymatches.com. -client.akamai.com. -fbcdn-profile-a.akamaihd.net. -creative.ak.fbcdn.net. -anna-zont.blogspot.com. -www.flickr.com. -i2.ytimg.com. -hotmail.com. -fbcdn-profile-a.akamaihd.net. -gpcom.srvc.metaboli.net. -toolbarqueries.google.com. -l.yimg.com. -www.megaplay.ru. -www.skipsnotes.com. -wallet.google.com. -mdawmdezmtaxmjaxmg.org. -73.67.222.189.in-addr.arpa. -143.239.200.112.in-addr.arpa. -ad.harrenmedianetwork.com. -connect.facebook.net. -www.cosl.com.au. -67.38.150.187.in-addr.arpa. -220.95.192.187.in-addr.arpa. -sharebit.net. -www.poemaspoetas.com. -vpaf.unr.edu. -i4.ytimg.com. -www.philippinen-life.de. -indusladies.com. -photos-f.ak.fbcdn.net. -cnn.joins.com. -a1003.w41.akamai.net. -5y1r4y9fs.75xq. -www.albercas.mx. -udo.informatik.uni-dortmund.de. -3alp17:cq.j75p7l0w. -davidrio.com. -www.arabize.com.eg. -010c36352e35352e39302e3137320000.lbl8.mailshell.net. -dns.msftncsi.com. -www.twistedzones.com. -169.200.138.190.in-addr.arpa. -twitter.com. -accounts.google.com. -euro.mediotiempo.com. -piensa-linux.programas-gratis.net. -newsltd.com.au. -email.80stees.com. -37.105.202.81.in-addr.arpa. -relay1.karelia.ru. -static.addtoany.com. -p0b.ru. -home.live.com. -www.map.utah.edu. -webtrends1.taitra.org.tw. -www.biblia12.com. -s2.youtube.com. -i1101.photobucket.com. -tracker.dunnsearch.org. -t2.gstatic.com. -www.softonic.com. -23.33.170.201.in-addr.arpa. -googleads.g.doubleclick.net. -prod2.rest-notify.msg.yahoo.com. -voipc.sip.yahoo.com. -ads1.msn.com. -wzv6csg96.w17q2k2n. -b.scorecardresearch.com. -i1.ytimg.com. -193.235.29.186.in-addr.arpa. -funcampco.ca. -www.salzburg-night.at. -s.ytimg.com. -clinicalconnexion.com. -webcache.googleusercontent.com. -cmc-loan.com. -horoscopos.prodigy.msn.com. -photos-f.ak.fbcdn.net. -hotmail.com. -s.ytimg.com. -ratoactorework.ph. -29.16.121.84.in-addr.arpa. -201.171.57.186.in-addr.arpa. -anunciosyavisos.com.pe. -safebrowsing.clients.google.com. -epacksolutions.com. -sp.cwfservice.net. -nem.com.s8a2.psmtp.com. -217.90.223.189.in-addr.arpa. -www.pspglobal.com. -file4sharing.com. -img.informer.com. -103.54.96.200.in-addr.arpa. -callejondeldeseo.blogspot.com. -tee:f:op3.67nh. -m4.licdn.com. -215.186.127.201.in-addr.arpa. -line-ra.ru. -a.ittad.com. -travelmarket.com. -ksn1-12-part2.kaspersky-labs.com. -relay.sobin.arh.ru. -m.ak.fbcdn.net. -212.1.168.192.in-addr.arpa. -130.19.168.192.in-addr.arpa. -127.92.137.187.in-addr.arpa. -get.webwangwang.taobao.com. -geo.tp-cdn.com. -download348.avast.com. -lt.navegg.com. -a.root-servers.net. -widget.ovo.com. -www.google.com. -83.105.188.71.in-addr.arpa. -_582_97_7. -ivrichpe.it. -70.55.165.90.in-addr.arpa. -www.stealth.nl. -coruna-sec01.usersad.everis.int. -zz.amur.su. -www.twitter.com. -rsc.co.uk. -57.248.237.67.in-addr.arpa. -roninpro.blogspot.com. -apps.facebook.com. -bs.serving-sys.com. -www.acclimited.com. -yakamar.com. -rad.msn.com. -www.telebasura.net. -horoscopos.prodigy.msn.com. -196.60.33.178.in-addr.arpa. -i2.ytimg.com. -mykadesigns.com. -mediums.es. -g.live.com. -111.128.100.190.in-addr.arpa. -eplresidential.com. -a2.twimg.com. -7-courier.push.apple.com. -a.root-servers.net. -www.cebupacificair.com. -smtp.ru. -www.wired.com. -a.root-servers.net. -a.root-servers.net. -geometriagrafica.wordpress.com. -relay.data.edge.messenger.live.com. -farm6.staticflickr.com. -ssl.gstatic.com. -latimesblogs.latimes.com. -casa.astoriail.net. -get.adobe.com. -akam.bing.com. -archerac.com.s10a1.psmtp.com. -186.129.171.201.in-addr.arpa. -www.magdalenajalisco.gob.mx. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -client.akamai.com. -168.227.161.189.in-addr.arpa. -sfa.d300.kane.k12.il.us. -jjfnj1poh.37jg. -www.gilberdesigns.com. -76.247.198.190.in-addr.arpa. -226.20.199.190.in-addr.arpa. -www.umontreal.ca. -photos-g.ak.fbcdn.net. -topvino.ru. -zh-cn.facebook.com. -adserver.adtech.de. -londonamericantx.com.inbound15.mxlogicmx.net. -mail.proinversion.gob.pe. -93.45.9.201.in-addr.arpa. -smtp.hallco.org. -rcp.na.blackberry.com. -download115.avast.com. -alarabiya.lsops.net. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -safebrowsing-cache.google.com. -api.mixpanel.com. -153.230.79.184.in-addr.arpa. -mailin-02.mx.aol.com. -img4.imageshack.us. -icons.wxug.com. -teredo.ipv6.microsoft.com. -teredo.ipv6.microsoft.com. -www.stop-ciberbullying.info. -98.240.89.200.in-addr.arpa. -suxxessology.com. -www.google.com. -www.esprit.co.uk. -whythetech.com. -i4.ytimg.com. -pop3.hot.glbdns.microsoft.com. -shortstackapp.com. -www.facebook.com. -conn.skype.com. -232.10.0.192.in-addr.arpa. -203.233.172.201.in-addr.arpa. -85.58.230.189.in-addr.arpa. -ist1-2.filesor.com. -eupen.us. -dangg-amy.polyvore.com. -236.60.103.201.in-addr.arpa. -173.138.73.189.in-addr.arpa. -www.juegosonline.com.py. -mm3.no-ip.info. -a1637.phobos.apple.com. -accountservices.msn.com. -www.universalairsuspension.com. -lfgms.logica.com. -a-0.19-a30fd081.c0b0580.1518.19d4.3ea1.410.0.mkhwv99ghppe6l4bjkfvsjc8pt.avqs.mcafee.com. -groups.google.com.mx. -twitter.com. -168.170.48.190.in-addr.arpa. -33.116.40.114.in-addr.arpa. -74.222.160.118.in-addr.arpa. -102.78.81.189.in-addr.arpa. -gq7zzoav1.s42h4y6b. -cityvillefb2.static.zgncdn.com. -206.34.237.186.in-addr.arpa. -20.228.125.64.in-addr.arpa. -mail.tapco.ae. -206.27.35.187.in-addr.arpa. -230.89.19.186.in-addr.arpa. -19.191.189.89.in-addr.arpa. -cines.com.py. -a5.sphotos.ak.fbcdn.net. -www.acuale.com. -61.36.153.187.in-addr.arpa. -static.ak.fbcdn.net. -dl21.ccb2.ru. -external.ak.fbcdn.net. -time.windows.com. -i1101.photobucket.com. -uac.advertising.com. -13.136.83.186.in-addr.arpa. -_577_55_7. -ls.nexon.net. -61.73.6.186.in-addr.arpa. -fxfeeds.mozilla.com. -a.root-servers.net. -techreport.com. -a.root-servers.net. -www.maxmedals.com. -addisonpools.com. -ts4.travian.pk. -kiva.net. -buryclean.co.uk. -coopatlantic.ca. -creative.ak.fbcdn.net. -t0.gstatic.com. -mail.desertcard.com. -128.168.253.201.in-addr.arpa. -posterspoint.com. -bsitecnologia.com.br. -148.182.158.69.in-addr.arpa. -mediacorppublishing.com. -gogethealthynow.com. -11.36.81.88.in-addr.arpa. -wac.5f48.edgecastcdn.net. -a.root-servers.net. -a.root-servers.net. -wljtzplr.net. -eldy.softonic.com. -www.biografias.pe. -www.myspace.com. -psprs.com.1.0001.arsmtp.com. -mail.inlandcardiology.com. -safebrowsing-cache.google.com. -pbsc.co.uk. -mail2.lanusa.com. -img469.imageshack.us. -clock.fmt.he.net. -85.130.184.81.in-addr.arpa. -login.toolbar.conduit-services.com. -dv-region.ru. -www.facebook.com. -mgcr.wordpress.com. -225.144.171.201.in-addr.arpa. -static.ak.fbcdn.net. -egyptiancastle.com. -wwwimages.adobe.com. -phone.com. -71.12.179.189.in-addr.arpa. -a.tribalfusion.com. -dalk.ru. -u.ywu. -menupages.com.s8b1.psmtp.com. -artisticas-normaldetorreon.blogspot.com. -secure.wlxrs.com. -lpcdn04.nflximg.com. -wollive.windowsmedia.com.akadns.net. -photos-d.ak.fbcdn.net. -i.imwx.com. -ngfts.lge.com. -www.facebook.com. -teamlatus.com. -mail.orchardchurch.com. -laptopstands.tv. -static.ak.fbcdn.net. -a.root-servers.net. -24.173.122.84.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -mariamora.blogdiario.com. -www.osstem.com. -dl.gameplaylabs.com.s3.amazonaws.com. -clientui.babylon.com. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.facebook.com. -mail.ncs-law.com. -imap.gmail.com. -50.149.220.66.in-addr.arpa. -google.com. -ea:4uaxx8.44jg. -mail.capcomp.com. -www.groveatlantic.com. -ministerioluzalasnaciones.com. -www.louisvuittonpurses-bags.net. -safebrowsing-cache.google.com. -foros.3dgames.com.ar. -49.93.47.189.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -word-search-maker.com. -google.com. -studiohilldesign.com. -133.2.23.95.in-addr.arpa. -photos-g.ak.fbcdn.net. -js2.wlxrs.com. -104.159.100.190.in-addr.arpa. -www.mooncandy.org. -60.240.105.186.in-addr.arpa. -37.30.170.189.in-addr.arpa. -248.23.171.187.in-addr.arpa. -support.google.com. -247.35.237.186.in-addr.arpa. -host-delay.logmein-gateway.com. -i.ytimg.com. -static0.kizi.com. -specmetall.ru. -static.gallendor.com. -neron.ac-creteil.fr. -apps.facebook.com. -photos-c.ak.fbcdn.net. -137.197.152.193.in-addr.arpa. -www.freecaliforniawallpaper.com. -143.21.163.190.in-addr.arpa. -hotmail.com. -a6.sphotos.ak.fbcdn.net. -www.wikimediafoundation.org. -www.rtl2.fr. -a.root-servers.net. -www.trackon.org. -localad.walmart.com. -searchclient.live.net. -echo.edge.messenger.live.com. -2.m0n0wall.pool.ntp.org. -stardaily.ru. -152.130.29.186.in-addr.arpa. -5.239.196.90.in-addr.arpa. -www.facebook.com. -it-it.facebook.com. -time.chttl.com.tw. -alyeparusa.msk.ru. -smtp.126.com. -sgag.org. -shasta-rrs.symantec.com. -mail.turascandinavia.com. -rt.rtoaster.jp. -www.gagaplay.com. -www.google.com. -storage.conduit.com. -25.201.52.186.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -support.google.com. -ready-access.com.inbound25.mxlogic.net. -richardhellergallery.com. -photos-g.ak.fbcdn.net. -ds.addthis.com. -www.barraclou.com. -bbcore.cloudapp.net. -www.destroyplanethuman.com. -youtu.be. -static.ak.fbcdn.net. -platform.twitter.com. -www.apple.com. -www.alltagz.de. -56.42.171.201.in-addr.arpa. -www.google.com. -vpx8ezg4f.t20y4t4x. -heyo.cc. -www.esabmalaysia.com. -umail.iu.edu. -mycitybynight.co.za. -rslonline.net. -safebrowsing-cache.google.com. -ksn2-12.kaspersky-labs.com. -crissisideenschmiede.blogspot.com. -mrc2.k12.mo.us. -o.nimbuzz.com. -elitebproductions.com. -1.gvt0.com. -webcache.googleusercontent.com. -. -www.facebook.com. -www.shareasale.com. -photos-a.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -www.jaimieveale.com. -unhcr.ch. -t.co. -p05-contacts.icloud.com.akadns.net. -msg2.caddock.com. -mail.sikon.com. -146.69.81.186.in-addr.arpa. -amorconagujaylana.blogspot.com. -h-oneindia.com. -mjzjnlshsqzbqbg.biz. -jiu66.cn. -dc384.4shared.com. -e.taxactonline.com. -googleads.g.doubleclick.net. -ad.yieldmanager.com. -87.172.0.88.in-addr.arpa. -accounts.google.com. -mail.postjung.com. -www.ivorde.ro. -telvent.com. -hotmail.com. -s1-word-view.vo.msecnd.net. -comluv.s3.amazonaws.com. -www.ideastelcel.com. -dns.msftncsi.com. -appenda.com. -adammesh.com. -51.203.228.190.in-addr.arpa. -data.mobclix.com. -www.weather.com. -clientes.hiltoncolon.com. -a.root-servers.net. -102.19.174.190.in-addr.arpa. -148.196.212.186.in-addr.arpa. -widgets.amung.us. -32.60.61.85.in-addr.arpa. -59.222.29.89.in-addr.arpa. -photos-e.ak.fbcdn.net. -zao.spb.ru. -228.80.72.190.in-addr.arpa. -57.231.195.190.in-addr.arpa. -241.42.166.77.in-addr.arpa. -cy.sosiphone.com. -pixer.meaningtool.com. -crescentmoongames.com. -googleblog.blogspot.com. -pinoysila.blogspot.com. -184.15.228.189.in-addr.arpa. -www.babe-party.com. -www.lawebdelprogramador.com. -i.ytimg.com. -internalcheck.apple.com. -159.187.28.181.in-addr.arpa. -dns.msftncsi.com. -dns.msftncsi.com. -201.94.60.177.in-addr.arpa. -154.11.176.190.in-addr.arpa. -api.facebook.com. -galadrielcrea.blogspot.com. -www.urbanartcore.eu. -photos-c.ak.fbcdn.net. -pixel.facebook.com. -id25915.al16.luxup.ru. -126.27.54.177.in-addr.arpa. -www.analisisdemedios.com. -d2100674.xoom.it. -googleads.g.doubleclick.net. -a.root-servers.net. -teredo.ipv6.microsoft.com. -a8.sphotos.ak.fbcdn.net. -e3191.c.akamaiedge.net. -westplastgroup.ru.lan. -checkip.dyndns.org. -www.update.microsoft.com. -c-0.19-210f8801.8020081.1518.19d4.3ea1.210.0.edipit6qmwhmvfd93tphlqk856.avqs.mcafee.com. -csi.gstatic.com. -a4.sphotos.ak.fbcdn.net. -167.163.39.187.in-addr.arpa. -www.google.com.me. -sothorn.net. -26.169.109.200.in-addr.arpa. -rtb.pclick.yahoo.com. -chevaliermalay.com. -indid.ru. -205.167.126.200.in-addr.arpa. -88.33.155.189.in-addr.arpa. -nyti.ms. -photos-a.ak.fbcdn.net. -photos-f.ak.fbcdn.net. -www.gnomonwatches.com. -imissyouif.blogspot.com. -unblocker.me. -kalamsetat.blogspot.com. -a.root-servers.net. -photos-c.ak.fbcdn.net. -api.facebook.com. -photos-c.ak.fbcdn.net. -mcmcorp.com. -config.broadvoice.com. -www.realtalkreggaeton.net. -dmpas02.scig.gov.hk. -www.gravatar.com. -smx.rrt.net.redcondor.net. -www.youtube.com. -mobile.webroot.com. -v8.cache5.c.youtube.com. -admin.na5.acrobat.com. -profile.ak.fbcdn.net. -i3.ytimg.com. -32.102.11.190.in-addr.arpa. -www.ontronics.com. -13.29.78.41.in-addr.arpa. -binary-zone.com. -125.240.72.189.in-addr.arpa. -www.dmaranatha.com. -widgets.amung.us. -thequeensgalley.org. -www.milfmature.net. -macrae4.wanadoo.co.uk. -. -glassmenagerie.com. -hibble.com.au. -lh3.googleusercontent.com. -a.root-servers.net. -24.229.171.69.in-addr.arpa. -g.ceipmsn.com. -www.cuevana.tv. -dns.msftncsi.com. -a3.sphotos.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -24.159.89.186.in-addr.arpa. -a.root-servers.net. -cricinfo.co. -bangbroscorp.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -photos-d.ak.fbcdn.net. -inbound.stuartsofeldorado.com.netsolmail.net. -www.futurocine.com. -r.mzstatic.com. -report.cedexis.com. -akcontent.ebuddy.com. -195.1.168.192.in-addr.arpa. -i3.ytimg.com. -www.facebook.com. -a.root-servers.net. -photos-h.ak.fbcdn.net. -alerts.conduit-services.com. -62.72.221.190.in-addr.arpa. -94.36.174.190.in-addr.arpa. -photos-h.ak.fbcdn.net. -www.petnos.com. -mx0.calcet.com. -a2.sphotos.ak.fbcdn.net. -cacheserve.williamhill.com. -a-0.19-23090081.a020083.1518.19b2.410a.400.9d.u1s471dkqp57euv5pprpsp3jtb.avqs.mcafee.com. -153.6.214.189.in-addr.arpa. -l.yimg.com. -pagead2.googlesyndication.com. -162.235.94.82.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -dns.msftncsi.com. -translate.google.com.mx. -40.153.11.94.in-addr.arpa. -cdn3.api.openfeint.com. -biometeurope.com. -d7.zedo.com. -api.facebook.com. -. -63.185.141.189.in-addr.arpa. -bankri.com.s6a1.psmtp.com. -metrics.target.com. -177.220.10.187.in-addr.arpa. -228.137.37.114.in-addr.arpa. -forominecraft.foroactivo.com. -s7.addthis.com. -e7rk3dsv3.23ys. -unifi. -a.root-servers.net. -pixel.quantserve.com. -creative.ak.fbcdn.net. -lunix.wscb.ru. -198.102.131.189.in-addr.arpa. -twitter.com. -204.234.112.186.in-addr.arpa. -247.176.178.190.in-addr.arpa. -7.94.200.195.in-addr.arpa. -226.171.204.130.in-addr.arpa. -a.root-servers.net. -gibbons.com. -cmithum.com. -34.111.149.187.in-addr.arpa. -fa.wikipedia.org. -106.21.251.201.in-addr.arpa. -www.facebook.com. -node.applifier.com. -98.80.229.77.in-addr.arpa. -myworkinet.ru. -support.google.com. -www.adobe.com. -www.belkin.com. -94.119.174.190.in-addr.arpa. -resources.infolinks.com. -creative.ak.fbcdn.net. -homoclub.foroactivo.com. -creative.ak.fbcdn.net. -fbcdn-sphotos-a.akamaihd.net. -212.190.51.190.in-addr.arpa. -luchifeliz.lacoctelera.net. -secure.wlxrs.com. -235.71.224.189.in-addr.arpa. -www.antiplagas.com. -136.190.19.186.in-addr.arpa. -www.genbeta.com. -a6.sphotos.ak.fbcdn.net. -a.root-servers.net. -24.239.188.189.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -a1408.w43.akamai.net. -www.facebook.com. -img1.blogblog.com. -i2.ytimg.com. -a3.sphotos.ak.fbcdn.net. -tiscali.it. -plusone.google.com. -safebrowsing-cache.google.com. -a8.sphotos.ak.fbcdn.net. -191.237.37.190.in-addr.arpa. -gallospedragliofarm.com. -27.147.220.66.in-addr.arpa. -www.ginasommelier.com.mx. -200.132.65.85.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -ad-g.doubleclick.net. -power.alstom.com. -cs792.vk.com. -clients2.google.com. -155.205.59.186.in-addr.arpa. -mail.google.com. -ocsp.thawte.com. -fbcdn-profile-a.akamaihd.net. -empresasinternacionales.com. -www.yahoo.com. -www.bestbuy.com.mx. -214.189.144.186.in-addr.arpa. -mta1.am0.yahoodns.net. -127.87.91.186.in-addr.arpa. -teredo.ipv6.microsoft.com. -www.twgirl.net. -gotthard-karstens.de. -9gag.com. -support.google.com. -41.175.106.200.in-addr.arpa. -personnel.nsk.su. -bf74c17fce5b72a5f98844a4f8446b2c.org. -d2099252.xoom.it. -solarwinds-tftp-server.softonic.com. -uk.pwc.com. -a2.sphotos.ak.fbcdn.net. -231.137.82.189.in-addr.arpa. -248.90.159.189.in-addr.arpa. -csi.gstatic.com. -crossdillon.com. -unifi.lan. -mt4-is02.fxsecure.com. -pcwin.com. -a2.sphotos.ak.fbcdn.net. -reportlink.pbwdev.com. -www.fineartsla.com. -206.48.31.82.in-addr.arpa. -www.anpad.org.br. -youtube-ui.l.google.com. -a1294.w20.akamai.net. -a.root-servers.net. -needless.jp. -www.google.com. -styletraxx.com. -profile.ameba.jp. -agzgcoo.info. -www.facebook.com. -teredo.ipv6.microsoft.com. -a5.sphotos.ak.fbcdn.net. -s.staticyonkis.com. -twitter.com. -www.stage6fullero.net. -p04-caldav.icloud.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -google.com. -nohaypan.blogspot.com. -pixel.facebook.com. -kosu.ru. -br.weather.com. -pix2pix.org. -elblogdeledzeppelin.blogspot.com. -www.gstatic.com. -couponbuddy.s3.amazonaws.com. -in.jagran.yahoo.com. -19.136.194.187.in-addr.arpa. -www.google.com. -photos-a.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -shared.live.com. -ryouae.com. -linkhelp.clients.google.com. -mosmas.ru. -70.67.144.180.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -i30.tinypic.com. -autos.aol.com. -rssgov.windows.microsoft.com. -155.165.201.190.in-addr.arpa. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -sparkpeo.vo.llnwd.net. -suoernet.com. -fwaproducts.com. -th239.photobucket.com. -csi.gstatic.com. -6.15.224.88.in-addr.arpa. -pb.blabbers.com. -hotmail.com. -seal-alaskaoregonwesternwashington.bbb.org. -badoo.com. -a1.sphotos.ak.fbcdn.net. -237.5.205.187.in-addr.arpa. -17.121.207.82.in-addr.arpa. -a.root-servers.net. -www.ivb.cz. -_394_85_9. -rosefarm.com. -smtp.live.com. -www.ipkat.com. -playig.com. -download.windowsupdate.com. -www.google.com. -sp.cwfservice.net. -touch.facebook.com. -144.41.253.111.in-addr.arpa. -domino.juegate.com. -as-gest.com. -6wlpnxaas.j92f5h4u. -view.atdmt.com. -137.203.132.189.in-addr.arpa. -ad.wowtv.co.kr. -marknet.ee. -teredo.ipv6.microsoft.com. -subseven90.no-ip.org. -ns1.hsbc.com.sg. -86.14.38.186.in-addr.arpa. -link.nokia.com. -www.facebook.com. -tas.orangeads.fr. -static.woopra.com. -chinoataku.wordpress.com. -es-la.facebook.com. -iwebunlimited.com. -mail.chronicleseries.com. -www.foxrio2.com. -secure.logmein.com. -www.terra.com. -67.36.138.187.in-addr.arpa. -a.root-servers.net. -www.portalminero.com. -58.93.153.189.in-addr.arpa. -103.216.177.190.in-addr.arpa. -www.youtube.com. -g.ceipmsn.com. -35.227.239.189.in-addr.arpa. -www.gameschecker.de. -lh5.ggpht.com. -blog.typograffit.com. -ns1.scs-net.org. -csmonolit.ru. -233.108.156.114.in-addr.arpa. -www.sciencebooksonline.info. -214.245.43.190.in-addr.arpa. -196.76.20.187.in-addr.arpa. -webcache.googleusercontent.com. -luckyemperor.tumblr.com. -node.applifier.com. -ihktech.net. -localhost. -b.scorecardresearch.com. -a3.sphotos.ak.fbcdn.net. -199.26.0.10.in-addr.arpa. -. -nextag.com. -a4.sphotos.ak.fbcdn.net. -mail.resheto.ru. -pagead2.googlesyndication.com. -riehle.org. -tor-office.iqpartners.com. -markoniya.ucoz.ru. -delivery.trafficbroker.com. -fr-fr.facebook.com. -parana.tuentrerios.com. -time.bora.net. -seaborne-intl.com. -220.176.88.186.in-addr.arpa. -www.pension4armynews.co.uk. -server.sportsawardsonline.com. -43.106.148.190.in-addr.arpa. -media.tumblr.com. -teredo.ipv6.microsoft.com. -221.62.232.189.in-addr.arpa. -photos-f.ak.fbcdn.net. -apps.facebook.com. -t.co. -uluniwiming.com. -nastymomvideo.com. -www.muzik-torrent.net. -18.4.183.65.in-addr.arpa. -dns.msftncsi.com. -s-static.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -auto.mail.ru. -smk-iso9001.ru. -5.237.223.201.in-addr.arpa. -www.agame.me. -175.74.31.189.in-addr.arpa. -www.2dplan.com. -dnl-01.geo.kaspersky.com. -ciber. -www.lotteryinsider.com. -sgdc1max1.chevron.com. -safebrowsing-cache.google.com. -mx.xmission.com. -41.146.230.99.in-addr.arpa. -ipmsa.ru. -skydrive.live.com. -vietstar.info. -tnbaptist.org. -www.msftncsi.com. -www.wtp101.com. -dnl-01.geo.kaspersky.com. -a7.sphotos.ak.fbcdn.net. -nekrst.nek.ru.s200a1.psmtp.com. -48.ns1631263.net. -localhost. -www.hotmail.com. -www.cgsecurity.org. -www.path.cam.ac.uk. -ws.tapjoyads.com. -platform.twitter.com. -romsan.ru. -76.31.2.187.in-addr.arpa. -racismdaily.com. -www.google.com.mx. -167.78.247.88.in-addr.arpa. -www.voayeurs.com. -teredo.ipv6.microsoft.com. -a5.sphotos.ak.fbcdn.net. -netflix-login.com. -www.newseasims.com. -a.ads2.msads.net. -img100.xvideos.com. -mail.ppcserver.net. -a1725.l.akamai.net. -241.40.20.186.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -tj9w5jhz4.a72f1k2h. -trendeotonyo.files.wordpress.com. -68.90.53.187.in-addr.arpa. -123.222.155.189.in-addr.arpa. -qbtmwj.info. -www.cahams.com. -sofort-mail.de. -i1.ytimg.com. -84.21.221.189.in-addr.arpa. -www.update-software.com. -ksn2-12.kaspersky-labs.com. -www.chemm.cn. -www.goodwinmedia.com. -1800sunstar.com. -advanced-renamer.en.softonic.com. -photos-h.ak.fbcdn.net. -ad-emea.doubleclick.net. -homethelovely.com. -totao56.files.wordpress.com. -stephenstimson.com.1.0001.arsmtp.com. -www.homesearch.ph. -safebrowsing.clients.google.com. -mail.sierraconstruction.com. -www.juegosdecrear.net. -t3.gstatic.com. -www.stnicholascenter.org. -evsecure-ocsp.verisign.com. -itcomp.pl. -a.root-servers.net. -radar.cedexis.com. -en.bn.fb.igg.com. -10.38.49.151.in-addr.arpa. -pixel.facebook.com. -bgnet.com. -181.236.232.190.in-addr.arpa. -mail.paquettewhite.com. -www.mypursehandbag.com. -melitusmen.podbean.com. -249.35.193.187.in-addr.arpa. -a.root-servers.net. -crl.thawte.com. -101.43.23.186.in-addr.arpa. -a.root-servers.net. -www.toshiba.com.mx. -db2.stb01.s-msn.com. -t.co. -211.65.27.69.in-addr.arpa. -s-static.ak.facebook.com. -230.98.135.187.in-addr.arpa. -www.blackberry.com. -images.proxm.com. -plus.google.com. -www.pajamasmedia.com. -time.chttl.com.tw. -190.178.85.186.in-addr.arpa. -mail.google.com. -wearnesmotors.com. -tap2-cdn.rubiconproject.com. -170.252.6.190.in-addr.arpa. -www.braillenet.org. -photos-h.ak.fbcdn.net. -trianguloequidlatere.blogspot.com. -www.susanholmes.net. -www.offshore-fox.com. -apix.iminent.com. -static.ak.fbcdn.net. -static.ak.fbcdn.net. -a771.da1.akamai.net. -0-jg-w.channel.facebook.com. -106.178.161.207.in-addr.arpa. -couponbuddy.s3.amazonaws.com. -crl.microsoft.com. -groups.yahoo.com. -a.rad.msn.com. -apis.google.com. -0-278.channel.facebook.com. -cs4109.vkontakte.ru. -cdn.lfstmedia.com. -_293_69_4. -docs.google.com. -dns.msftncsi.com. -photos-f.ak.fbcdn.net. -163.141.109.190.in-addr.arpa. -www.defensa.cl. -ytimg.l.google.com. -www.gmail.com. -www.culioneros.com. -sutrust.com. -mcermalwbbes.nu. -fbcdn-photos-a.akamaihd.net. -236.93.121.190.in-addr.arpa. -www.buenscoring.com. -_883_08_2. -ulead-gif-animator.softonic.pl. -www.blogger.com. -s-static.ak.facebook.com. -i1.ytimg.com. -a3.sphotos.ak.fbcdn.net. -48.30.227.201.in-addr.arpa. -captcha.naver.com. -apps.facebook.com. -200.253.171.200.in-addr.arpa. -api.twitter.com. -img.funenclave.com. -blogs.visoftinc.com. -www.google-analytics.com. -photos-h.ak.fbcdn.net. -cdn.at.atwola.com. -a.root-servers.net. -pool.ntp.org. -ping1.unicast.com. -client-software.real.com. -a.root-servers.net. -78.165.50.190.in-addr.arpa. -dns.msftncsi.com. -cp2.websolspk.com. -www.linkmoz.org. -i1.ytimg.com. -www.bestellipticalreviews.org. -apps.facebook.com. -download943.avast.com. -_712_11_0. -100.248.211.201.in-addr.arpa. -www.wandermap.net. -weather.wapp.wii.com. -www.funpic.in. -23.74.61.186.in-addr.arpa. -transparencia-economica.mef.gob.pe. -. -creative.ak.fbcdn.net. -239.177.2.200.in-addr.arpa. -stroytrek.ru. -static.ak.fbcdn.net. -www.lika-online.com. -192.186.22.186.in-addr.arpa. -238.96.133.115.in-addr.arpa. -photos-a.ak.fbcdn.net. -bjklaw.us.2.arsmtp.com. -www.facebook.com. -www.ledmobile.net. -static.ak.fbcdn.net. -connect.facebook.net. -api.twitter.com. -stun.voip.blackberry.com. -descargalosmejoresprogramasgratis.blogspot.com. -googleads.g.doubleclick.net. -www.amazon.ca. -mail. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.labsdirect.com. -62.219.124.202.in-addr.arpa. -23.245.176.186.in-addr.arpa. -sm9.sitemeter.com. -www.twitter.com. -www.google-analytics.com. -www.microjuris.com. -rldownload.com. -ksn3-11.part1.kaspersky-labs.com. -clients1.google.com. -239.163.251.201.in-addr.arpa. -safebrowsing-cache.google.com. -www.justgayhardcore.com. -youtu.be. -www.comprarenmollet.com. -a.root-servers.net. -213.89.111.189.in-addr.arpa. -www.ldsdudes.com. -220.82.252.201.in-addr.arpa. -s2j369:pg.m77t9e0x. -ky3.com.s5a1.psmtp.com. -m.youtube.com. -s4.histats.com. -152.192.54.190.in-addr.arpa. -ns.nav.kiev.ua. -dnl-06.geo.kaspersky.com. -static.ak.fbcdn.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -251.189.114.189.in-addr.arpa. -a.root-servers.net. -mailc.txdps.state.tx.us. -sp.cwfservice.net. -180.115.145.78.in-addr.arpa. -www.thesound.co.nz. -www.grupoimplantes.com.ar. -crl.microsoft.com. -s0.2mdn.net. -blog.oafe.net. -istatistikler.ligtv.com.tr. -sulfatreat.com. -ad.yieldmanager.com. -plus.google.com. -gtaonline.com.ar. -profile.ak.fbcdn.net. -tdsystems.org. -www.ofertas-outlets.com. -mx.msn.recepedia.com. -fxfeeds.mozilla.com. -www.toolguys.com. -1.201.159.189.in-addr.arpa. -sp.cwfservice.net. -203.160.179.190.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -s.ytimg.com. -b-0.19-2309c008.c0c1081.1518.19ce.3ea1.410.0.5d7ar9ejb8b4z724c3w9ldp4p5.avqs.mcafee.com. -www.dondeganardinero.com. -tc22.easythumbhost.com. -20.29.184.186.in-addr.arpa. -antarcticsun.usap.gov. -www.dailymail.pinkribbonbingo.com. -a1.sphotos.ak.fbcdn.net. -_853_37_3. -go.microsoft.com. -135.90.188.201.in-addr.arpa. -www.minikmodaci.com. -a6.sphotos.ak.fbcdn.net. -ls57tiger.freepgs.com. -phfilms.com. -upload.wikimedia.org. -twitter.com. -pixel.facebook.com. -chqronq5f.n56q7s1o. -bnreview.lithium.com. -mx.youtube.com. -pivotnetworks.com.inbound15.mxlogicmx.net. -31.65.252.117.in-addr.arpa. -tarkett-ee.com.s200a2.psmtp.com. -inbound.midtownhotel.com.netsolmail.net. -rediffamil.com. -i.ytimg.com. -www.photorecept.ru. -mx.youtube.com. -peabodygallery.com. -a.root-servers.net. -a.root-servers.net. -www.cheforopeza.com.mx. -195.39.102.189.in-addr.arpa. -www.photo-warping.com. -play.jo. -xagminecraft.blogspot.com. -photos-a.ak.fbcdn.net. -designerbagcatalog.com. -61.99.112.112.in-addr.arpa. -www.google-analytics.com. -tatooshop.ru. -d1ros97qkrwjf5.cloudfront.net. -prodigy.msn.com. -www.google-analytics.com. -mail02.avmin.co.za. -ns1.sitibroadband.in. -244.136.6.74.in-addr.arpa. -photos-e.ak.fbcdn.net. -ar.autos.yahoo.com. -www.facebook.com. -safebrowsing-cache.google.com. -thraki-devil.blogspot.com. -download624.avast.com. -cetelbras.com.br. -calgate01.a02.yahoodns.net. -www.termofrigidus.com. -parking.www.kilu.org. -178.57.230.201.in-addr.arpa. -www.bigfatass.org. -44.150.14.88.in-addr.arpa. -171.103.135.189.in-addr.arpa. -s-static.ak.fbcdn.net. -www.pipiota.blogspot.com. -www.zfforum.es. -pts.lockerz.com. -mebelka.ru. -www.botpa.co.kr. -staleyplanning.com. -push.apple.com. -rpm.elmundoenlinea.com.mx. -44.29.194.173.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -static.ak.fbcdn.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -161.226.120.68.in-addr.arpa. -css.wlxrs.com. -a.root-servers.net. -a.root-servers.net. -a.root-servers.net. -photos-e.ak.fbcdn.net. -wakayama-med.ac.jp. -db._dns-sd._udp.0.195.16.172.in-addr.arpa. -198.114.4.171.in-addr.arpa. -adserving.cpxinteractive.com. -pcthings.org.uk. -www.titsbig.net. -view.atdmt.com. -29.234.229.190.in-addr.arpa. -114.45.87.186.in-addr.arpa. -215.99.24.190.in-addr.arpa. -s-external.ak.fbcdn.net. -37.192.11.111.in-addr.arpa. -dsn15.d.skype.net. -challiance.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -149.250.16.190.in-addr.arpa. -83.149.10.75.in-addr.arpa. -calendar.live.com. -google.com. -a1108.da1.akamai.net. -photos-b.ak.fbcdn.net. -suggestqueries.google.com. -elperro13.net. -viajes-vuelos.agencias-de-viajes.com. -es-la.facebook.com. -photos-a.ak.fbcdn.net. -ajax.googleapis.com. -www.computadorasenlaeducacion.com. -s0.2mdn.net. -1.0.0.127.in-addr.arpa. -sup.live.com. -222.143.162.190.in-addr.arpa. -es-la.facebook.com. -apix.iminent.com. -164.145.168.192.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -ipcast2.dynupdate.no-ip.com. -myiafrica.com. -www-fc-opensocial.googleusercontent.com. -gfx2.hotmail.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -photos-c.ak.fbcdn.net. -greystone.messagescreen.com. -ad.yieldmanager.com. -updates.sonic.com. -profile.ak.fbcdn.net. -twitter.com. -www.xom.com.mx. -a6.sphotos.ak.fbcdn.net. -ajax.aspnetcdn.com. -kidbleach.com. -pop.theitmachine.com. -player.vimeo.com. -51.252.22.24.in-addr.arpa. -www.gatitasconcam.com. -ssl.gstatic.com. -www.souleaterwallpaper.com. -teredo.ipv6.microsoft.com. -login.live.com. -wpad. -mail.brce.com. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -82.146.69.190.in-addr.arpa. -174.169.245.190.in-addr.arpa. -sac.gti.mcafee.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -s.youtube.com. -www.facebook.com. -150.102.35.189.in-addr.arpa. -nbmedia.com. -776964676574.6265.6575.63726974656f.636f6d.80hb2fa014f.webcfs00.com. -134.117.6.210.in-addr.arpa. -rs931l3.rapidshare.com. -lb._dns-sd._udp.lan. -ns2.redbee.nl. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.stumbleupon.com. -ssl.gstatic.com. -pu.com.au. -www.facebook.com. -asia.battle.net. -www.nhtbw.com. -_ldap._tcp. -xtra.co.nz. -api.twitter.com. -lh4.ggpht.com. -220.103.174.190.in-addr.arpa. -remote.dillonworks.com. -www.twitter.com. -76.245.24.88.in-addr.arpa. -143.233.26.85.in-addr.arpa. -geo.ltassrv.com. -profile.ak.fbcdn.net. -226.86.213.83.in-addr.arpa. -32.6.22.95.in-addr.arpa. -profile.ak.fbcdn.net. -195.108.173.190.in-addr.arpa. -www.facebook.com. -rad.msn.com. -profile.ak.fbcdn.net. -210.9.0.10.in-addr.arpa. -www.stopbadware.org. -53.237.83.71.in-addr.arpa. -147.61.81.186.in-addr.arpa. -www.msftncsi.com. -www.taringa.net. -191.22.187.67.in-addr.arpa. -marihuanacultivo.com. -creative.ak.fbcdn.net. -parenting.co.uk. -item.taobao.com. -www.freesexnavigator.com. -t13.intelliad.de. -www.youravon.com. -mail.translabourage.ru. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.google.com. -3j:onbsbh.87dl. -236.127.171.189.in-addr.arpa. -158.74.61.174.in-addr.arpa. -19.191.55.72.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -thetastefulbasket.com. -loading.retry.widdit.com. -ulrtrxxhxonsyh.info. -analyze.net.tf. -27.42.56.190.in-addr.arpa. -s.ytimg.com. -multiplaz.ru. -safebrowsing-cache.google.com. -238.242.16.122.in-addr.arpa. -www.altaro.com. -www.calorieking.com. -www.agenciaartistatv.com. -www.google-analytics.com. -groups.google.com.mx. -www.homestayfinder.com. -81.173.168.75.in-addr.arpa. -www.facebook.com. -107.1.168.192.in-addr.arpa. -_ldap._tcp. -234.31.232.189.in-addr.arpa. -novar.com. -www.dibujosdisney.org. -creative.ak.fbcdn.net. -7.129.234.119.in-addr.arpa. -mx.katsinas.com. -eltech.net.pl. -v1.nonxt5.c.youtube.com. -aig.com.co. -55.31.142.187.in-addr.arpa. -updatekeepalive.mcafee.com. -242.132.123.84.in-addr.arpa. -mail.foxriver.ru. -billing.service.playfish.com. -crl.microsoft.com. -soporte.pandasecurity.com. -entrysfo002a.skyfire.com. -32.245.23.186.in-addr.arpa. -m.facebook.com. -162.135.84.41.in-addr.arpa. -117.52.160.189.in-addr.arpa. -214.12.146.187.in-addr.arpa. -dsmllp.com. -static.image-gmkt.com. -static.ak.fbcdn.net. -google.com. -a.root-servers.net. -it-it.facebook.com. -s-static.ak.facebook.com. -guru.avg.com. -ad.lpxp.net. -www.youtube.com. -a.root-servers.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.linares.net. -mailhost.tecrodpd.com. -facebook.com.my.hostlogr.com. -amitelco.com. -15.93.131.187.in-addr.arpa. -177.209.121.65.in-addr.arpa. -a.root-servers.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mx.alfacenter.it. -pop3.live.com. -buttons.reddit.com. -www.game.ezfun.net. -s.ytimg.com. -developers.facebook.com. -mk4099.spb.edu. -actionplusrealty.com. -mail.limbless-association.org. -rss.cbc.ca. -252.22.0.192.in-addr.arpa. -creative.ak.fbcdn.net. -msgr.updates.yahoo.com. -www.chinaglia.com.br. -s-static.ak.facebook.com. -www.isabelaguera.com. -pagead.l.doubleclick.net. -www.10ka20.com. -www.facebook.com. -links.mkt1340.com. -mail.rbi.com. -www.todoar.com.ar. -load.s3.amazonaws.com. -thrice.net. -sparks.city.nv.us. -s1.ubalert.com. -australiasevereweather.com. -voipa.sip.yahoo.com. -www.viendosexo.com. -teredo.ipv6.microsoft.com. -130.114.76.83.in-addr.arpa. -www.6188.com. -mail.google.com. -ad-g.doubleclick.net. -26.media.tumblr.com. -eu.wikipedia.org. -250.11.168.192.in-addr.arpa. -cdduplicationdata.com. -47.37.1.190.in-addr.arpa. -www.nsoftware.com. -156.155.195.90.in-addr.arpa. -apps.facebook.com. -tavi-dent.ru. -a1.twimg.com. -3.1.2.a.2.5.6.a.0.8.5.0.3.d.4.1.d.f.9.7.5.f.e.5.0.0.0.0.1.0.0.2.ip6.arpa. -1africa.com. -teredo.ipv6.microsoft.com. -0-44.channel.facebook.com. -profile.ak.fbcdn.net. -51.99.223.87.in-addr.arpa. -bt-srv01.bauschtech.com. -creative.ak.fbcdn.net. -mail.ourismanva.com.mx.swishmail.net. -photos-f.ak.fbcdn.net. -www.loyola.edu.mx. -77.34.205.71.in-addr.arpa. -7.90.119.177.in-addr.arpa. -zeroz.biz. -orkom1c.ru. -courseroom2.capella.edu. -sp.cwfservice.net. -3.bp.blogspot.com. -mx.sdelali.ru. -server-28.reportgoogle.com. -27.194.191.189.in-addr.arpa. -_684_97_4. -so-gi.spb.ru. -rcl.ramsey.lib.mn.us. -www.foscarini.com. -ssl.gstatic.com. -www.templaraz.com. -movies.broadwayworld.com. -a.root-servers.net. -palsa.com. -www.eurekasa.it. -131.141.108.187.in-addr.arpa. -dsn9.d.skype.net. -mx2.sanet.ru. -www.cookingforgirlz.com. -26.255.57.69.in-addr.arpa. -whisperedinspirations.com. -img3.stripperparadise.com. -www.divxmovieplayer.com. -www.facebook.com. -ad.yieldmanager.com. -234.189.174.195.in-addr.arpa. -cs1524.vkontakte.ru. -69.177.171.187.in-addr.arpa. -13.149.165.83.in-addr.arpa. -bs.serving-sys.com. -google.com. -bbg.lt. -piano.ocn.ne.jp. -a.root-servers.net. -r.turn.com. -www.juegosjuegos.com. -58.165.44.194.in-addr.arpa. -videos.mundo.com. -93.95.82.203.in-addr.arpa. -m.wsj.net. -mail02.gigalinkmail.com. -zjam.com. -beacon.shazam.com. -www.facebook.com. -205.20.243.88.in-addr.arpa. -partner.googleadservices.com. -adserver.adtech.de. -tigerbeatdown.com. -a1497.phobos.apple.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -fxfeeds.mozilla.com. -6.15.122.84.in-addr.arpa. -72ffkjpjn.07kc. -juno.com. -www.kaleykennedy.com. -smtp.tmr-sa.co.za. -a7.sphotos.ak.fbcdn.net. -front.pyramid.kobojo.com. -a.root-servers.net. -techgage.com. -az15112.vo.msecnd.net. -anewmode.com. -61.52.14.186.in-addr.arpa. -www.vuelomania.com. -sp.cwfservice.net. -lakelanier.com. -apps.facebook.com. -ads.prisacom.com. -v1kqf35es.27fg. -apps.facebook.com. -175.254.236.201.in-addr.arpa. -c14152960.web.cddbp.net. -slabberredux.blogspot.com. -11.28.174.190.in-addr.arpa. -xmpp003.hpeprint.com. -dns.msftncsi.com. -adsrv.deviantart.com. -comptoncorp.com. -lnhi.net.s7b2.psmtp.com. -dns.msftncsi.com. -www.cloudkillers.com. -chi.rtkl.com. -102.169.85.186.in-addr.arpa. -localhost. -static.ak.fbcdn.net. -ar-ar.facebook.com. -12.17.141.201.in-addr.arpa. -developers.facebook.com. -content.yieldmanager.edgesuite.net. -www.youtube.com. -www.segurosvip.com. -amateur-pussy-finder.notlong.com. -pagead2.googlesyndication.com. -232.156.83.62.in-addr.arpa. -mail.proitss.com. -cure-net.com. -f.funmoods.com. -172.201.178.190.in-addr.arpa. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.tabletsandroid.com.ar. -202.88.55.74.in-addr.arpa. -forums.redcarpetrebellion.org. -s-static.ak.fbcdn.net. -board.airrivals.net. -0-jx-w.channel.facebook.com. -www.outlook-web-access.com. -www.tibet-tour.com. -9gag.com. -creative.ak.fbcdn.net. -www.yeze.us. -a.analytics.yahoo.com. -121.173.116.174.in-addr.arpa. -external.ak.fbcdn.net. -dnl-01.geo.kaspersky.com. -a.root-servers.net. -www.kenrockwell.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -su.wikipedia.org. -fotolog.terra.com.co. -mail.realdating.ru. -ad.turn.com. -85.61.24.190.in-addr.arpa. -inglcarion.com. -mindspring.com. -a3.twimg.com. -a7.sphotos.ak.fbcdn.net. -storage.conduit.com. -wd-edge.sharethis.com. -www.tattooremoval.eu. -time.vonage.net. -dnl-01.geo.kaspersky.com. -52.72.143.201.in-addr.arpa. -cogame.timestorm.de. -bostoncomedyfest.com. -154.108.95.190.in-addr.arpa. -v6.nonxt2.c.youtube.com. -barcorgages.com. -39.6.188.190.in-addr.arpa. -hzs7.cnzz.com. -206.164.141.69.in-addr.arpa. -a.root-servers.net. -www.seoghoer.dk. -photos-f.ak.fbcdn.net. -www.japanican.com. -49.180.96.65.in-addr.arpa. -7064612d6173.616d617a6f6e.636f6d.80h4815d64a.webcfs00.com. -mail.nlicgulf.com. -ikhr9bhww.y55i6n4r. -www.google.com. -a.root-servers.net. -vfsuites.com. -a7.sphotos.ak.fbcdn.net. -203.3.23.113.in-addr.arpa. -click.18clicks.com. -richfaces.org. -redsweetclubvip.com.multi.surbl.org. -casiangelesymuchomas.blogspot.es. -twitter.com. -a1725.l.akamai.net. -a.root-servers.net. -profile.ak.fbcdn.net. -o-o.preferred.iad09s10.v14.lscache5.c.youtube.com. -www.img.forogames.net. -nflattorney.com. -trsbattorneys.com. -205.129.211.201.in-addr.arpa. -6to4.ipv6.microsoft.com. -127.77.144.79.in-addr.arpa. -p0b.ru. -dsn3.d.skype.net. -sp.cwfservice.net. -i49.tinypic.com. -a.root-servers.net. -www.bikegames247.com. -136.177.111.89.in-addr.arpa. -md:gm4wz9.c19f7a1y. -carolina.cmac.com. -43.134.187.67.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -ad.yieldmanager.com. -es-es.facebook.com. -a1.sphotos.ak.fbcdn.net. -apps.facebook.com. -philadelphia.ebayclassifieds.com. -baymsg1020124.gateway.messenger.live.com. -www.gstatic.com. -187.89.102.84.in-addr.arpa. -apnstatic.ask.com. -msg.jetapp.com. -a.root-servers.net. -torrentz.eu. -app.crowdscience.com. -www.google.com. -pix04.revsci.net. -login.yahoo.net. -aol.com. -lh5.googleusercontent.com. -css.wlxrs.com. -159.4.146.189.in-addr.arpa. -photos-a.ak.fbcdn.net. -tralala.com. -market.android.com. -dns.msftncsi.com. -pagead2.googlesyndication.com. -www.google.gy. -cisbec.net. -a5.sphotos.ak.fbcdn.net. -b-f-c.com. -profile.ak.fbcdn.net. -www.google-analytics.com. -175.30.171.187.in-addr.arpa. -0-68.channel.facebook.com. -rad.msn.com. -forums.extensis.com. -safebrowsing-cache.google.com. -ber.lesnoy.ru. -319.ns1631263.info. -safebrowsing-cache.google.com. -pernod-ricard-canada.com.s7a2.psmtp.com. -37.48.36.190.in-addr.arpa. -liveupdate.symantecliveupdate.com. -vcs2.msg.yahoo.com. -www.addthis.com. -ougsyrokrvoljtpz.net. -www.desktopsmiley.com. -sites.google.com. -content.yieldmanager.edgesuite.net. -saint-etienne.lachainemeteo.com. -menofcolor.thumblogger.com. -api.zynga.com. -www.cbnicaragua.com. -www.facebook.com.\255\255\255\255. -lordbingo.co.uk. -it-it.facebook.com. -www.compassion-revolution.com. -download.windowsupdate.com. -images01.olx-st.com. -mirabella.com. -kaliman14.listen2myradio.com. -www.fajarweb.com. -142.145.87.187.in-addr.arpa. -www.drmalpani.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -toolbar.live.com. -2.149.120.187.in-addr.arpa. -www.googleadservices.com. -api.twitter.com. -augustana.edu.s10b2.psmtp.com. -translate.googleapis.com. -varuc.com. -www.tierradelfuego.gov.ar. -embedhunter.com. -alicexu59.en.made-in-china.com. -ad.yieldmanager.com. -search.babylon.com. -203.233.100.74.in-addr.arpa. -allo34.ru. -sharptampa.com. -crl.entrust.net. -diq.wikipedia.org. -www.nexteve.com. -cdn.lfstmedia.com. -www.google-analytics.com. -www.coca-cola.ba. -www.yourskin.nl. -apix.iminent.com. -ping3.dyngate.com. -accounts.google.com. -i4.ytimg.com. -139.41.252.190.in-addr.arpa. -synd.netseer.com. -weather.wapp.wii.com. -photos-a.ak.fbcdn.net. -img520.imageshack.us. -fxfeeds.mozilla.com. -ut2.xhamster.com. -clients.babylon.com. -pubads.g.doubleclick.net. -139.7.145.92.in-addr.arpa. -api.twitter.com. -mail.calparks.org. -cdn.fastclick.net. -resources1.search.conduit.com. -safebrowsing-cache.google.com. -scsd.msg.yahoo.com. -204.99.102.189.in-addr.arpa. -cdn.api.twitter.com. -0-310.channel.facebook.com. -hsym8ldfm.61ll. -www.edifact.com.mx. -www.astigresasdofunk.com.br. -admiral-billiard.ru. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -evsecure-ocsp.verisign.com. -guzzoni.apple.com. -35.191.113.187.in-addr.arpa. -hostmysite.javahd.com. -213.203.91.76.in-addr.arpa. -test-rt.liftdna.com. -ppgnow.com. -members.dyndns.org. -photos-f.ak.fbcdn.net. -www.google.com. -crl.godaddy.com. -carlosgivaja.blogspot.com. -beon.ru. -dr._dns-sd._udp.0.3.168.192.in-addr.arpa. -zpay.static.zynga.com. -techsfera.blogspot.com. -171.41.141.201.in-addr.arpa. -41.211.101.24.in-addr.arpa. -tmss.trendmicro.com. -www.amazon.co.jp. -login.live.com. -b.static.ak.fbcdn.net. -az15112.vo.msecnd.net. -mail.bobcatwireless.net. -extra-tm.ru. -dancinteens.com. -211.161.255.201.in-addr.arpa. -www.mybrowserbar.com. -designchlorid.com. -mail.tesmedsonic.com. -wikiguate.com.gt. -zpwrcqmtpdtiolr.biz. -shared.live.com. -a.root-servers.net. -a.root-servers.net. -j5.tagstat.com. -time.windows.com. -dns.msftncsi.com. -imap.gmail.com. -ucs.query.yahoo.com. -a.root-servers.net. -mx4.hotmail.com. -mx.pchg.net. -pixel.facebook.com. -rtigaf.com. -a1005.w42.akamai.net. -www.defenderseguridad.com.ar. -94.53.58.187.in-addr.arpa. -ds.serving-sys.com. -dainikbhaskarcom.ourtoolbar.com. -relay.data.edge.messenger.live.com. -a-0.19-a3090071.9050083.1518.19d3.3ea1.410.0.e5ngemfnasja57b2n97v98jpmv.avqs.mcafee.com. -www.webstats.motigo.com. -145.111.221.189.in-addr.arpa. -lh3.googleusercontent.com. -27.media.tumblr.com. -rtf.com. -www.scotiabank.com.mx. -www.jtc1.org. -107.145.96.177.in-addr.arpa. -vivastil.ru. -nmbar.org. -ads.revsci.net. -cn1.redswoosh.akadns.net. -fsnp74.ucsnet.ru. -cy.pwc.com. -245.194.152.202.in-addr.arpa. -twitter.com. -rememberthewar.com. -vision.ucdavis.edu. -a2.sphotos.ak.fbcdn.net. -116.92.127.201.in-addr.arpa. -167.98.46.190.in-addr.arpa. -carlsandburgvisits.com. -www.googletagservices.com. -a5.sphotos.ak.fbcdn.net. -7vwaptlqn.27tm. -smarturl.it. -16.3.129.189.in-addr.arpa. -platform.ak.fbcdn.net. -www.downtownbatonrouge.org. -kytubhtgf.34dx. -ib7nqfu12.e97u8g4a. -orange.fr. -187.10.168.192.in-addr.arpa. -3e-co.com. -pixel.rubiconproject.com. -hughes.net. -sp.cwfservice.net. -developers.facebook.com. -open.bonniersciencegroup.com. -srp-law.com. -embed.jungroup.com. -25.76.150.190.in-addr.arpa. -www.firstrowsports.tv. -creative.ak.fbcdn.net. -s-static.ak.facebook.com. -www.portalculturista.com. -referentia.com.s8a2.psmtp.com. -southernsecurity.org. -23.227.48.65.in-addr.arpa. -rs749tl2.rapidshare.com. -www.coolrom.com. -206.217.75.190.in-addr.arpa. -www.ellencparkhurst.com. -brand.blogs.com. -mail1.mxsmtp.com. -connect.facebook.net. -222.157.215.201.in-addr.arpa. -shaoranlds.blogspot.com. -sp.cwfservice.net. -250.9.186.190.in-addr.arpa. -video.auto.sina.com.cn. -api.twitter.com. -220.194.97.59.in-addr.arpa. -philou-traductions.fr. -emai.com. -a1533.da1.akamai.net. -apis.google.com. -ars.oscar.aol.com. -www.wisteriaandcowparsley.com. -profile.ak.fbcdn.net. -updatekeepalive.mcafee.com. -245.212.18.95.in-addr.arpa. -106.241.209.201.in-addr.arpa. -metallurgizdat.com. -geo.messenger.services.live.com. -6e3ff508.allanalpass.com. -214.80.65.190.in-addr.arpa. -164.11.1.121.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -mxmail.datamaticstech.com. -a997.mm1.akamai.net. -sqm.microsoft.com. -profile.ak.fbcdn.net. -psychiatry.wustl.edu. -58.168.245.61.in-addr.arpa. -mvtv.kr. -a5.sphotos.ak.fbcdn.net. -twitter.com. -static.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -gentechcontrols.com. -fbcdn-photos-a.akamaihd.net. -59.0.249.46.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -msnads.vo.msecnd.net. -es.data.toolbar.yahoo.com. -smtp.ssvecnet.com. -170.152.62.186.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -tallerdearquitectura.com.mx. -dnl-00.geo.kaspersky.com. -i52.tinypic.com. -88.127.72.190.in-addr.arpa. -ads2.msads.net. -init.ess.apple.com. -bs.serving-sys.com. -static.ak.fbcdn.net. -mail2hot.com. -tracelabs.com. -185.51.213.201.in-addr.arpa. -npipb.com.s8b2.psmtp.com. -50.29.102.201.in-addr.arpa. -248.206.122.190.in-addr.arpa. -fbcdn-profile-a.akamaihd.net. -news.google.com.mx. -gdgt.com. -ville-antony.fr. -www.sat.gob.mx. -time.chttl.com.tw. -37.111.56.87.in-addr.arpa. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -sophiedahl.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.xhamster.com. -154.215.120.203.in-addr.arpa. -google.com.mx. -wwerrsdf.blogspot.com. -wooster.bur.ru. -ajax.googleapis.com. -creative.ak.fbcdn.net. -a-tuin.t72.ru. -www.austinwholesaledecking.com. -photos-h.ak.fbcdn.net. -80.61.147.79.in-addr.arpa. -excessivesweatingtreatmentsite.com. -365holiday.net. -yudo-ch.com. -a.root-servers.net. -234.45.5.149.in-addr.arpa. -www.facebook.com. -a8.sphotos.ak.fbcdn.net. -iabw:p6c6.y77u7t2n. -voipb.sip.yahoo.com. -www.peseatodo.com.ar. -cbsradioguide.files.wordpress.com. -ocsp.godaddy.com. -www.weather.com. -60.112.38.115.in-addr.arpa. -roger.s.com. -triumphstaffing.com.s5a2.psmtp.com. -online.cartus.com. -sd-cf.softonic.com. -sn1sifs30001.unilever.com. -citron.ru. -plusone.google.com. -tc.v17.cache3.c.youtube.com. -barracuda.geneva.edu. -by2msg3010506.gateway.messenger.live.com. -photos-g.ak.fbcdn.net. -nm28-vm1.bullet.mail.sp2.yahoo.com. -_318_87_8. -dns.msftncsi.com. -translate.google.com.mx. -104.182.200.189.in-addr.arpa. -y5h7hfih1.98gu. -dr._dns-sd._udp.lan. -impaxlabs.com. -a5.sphotos.ak.fbcdn.net. -117.0.170.201.in-addr.arpa. -media.singsnap.com. -intaugol.portal.ru. -support.google.com. -c.admob.com. -www.muslmh.com. -external.ak.fbcdn.net. -81.103.193.190.in-addr.arpa. -119.154.128.189.in-addr.arpa. -photos-g.ak.fbcdn.net. -a.root-servers.net. -www.carversation.com. -239.94.72.82.in-addr.arpa. -safebrowsing.clients.google.com. -113.125.158.82.in-addr.arpa. -profile.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -api.nanigans.com. -83.229.248.189.in-addr.arpa. -_vlmcs._tcp. -a8.sphotos.ak.fbcdn.net. -www.madera.gob.mx. -google.com. -titanium30-en.url.trendmicro.com. -calculadora-cientifica.blogspot.com. -mail2.easternandoriental.com. -otonews.com. -a7.sphotos.ak.fbcdn.net. -m2.nsimg.net. -www.last.fm. -r.mzstatic.com. -www.bustyivysnow.com. -155.154.105.85.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -48.121.251.190.in-addr.arpa. -ubas.ru. -profile.ak.fbcdn.net. -qbgmtqv7k.98zd. -imetstuart.com. -81.150.110.87.in-addr.arpa. -203.85.146.189.in-addr.arpa. -www.amle.org. -photos-a.ak.fbcdn.net. -usd368.k12.ks.us. -i1.ytimg.com. -167.174.173.218.in-addr.arpa. -a.root-servers.net. -24.39.111.198.in-addr.arpa. -rad.msn.com. -235.154.242.82.in-addr.arpa. -dasfasdf.com. -a.root-servers.net. -c-0.19-220f9041.6010081.1518.19d4.3ea1.210.0.ar12mm2qe8znm1u6b3vqqwfhi6.avqs.mcafee.com. -img546.imageshack.us. -cm.ac3.msn.com. -plusone.google.com. -profile.ak.fbcdn.net. -pagead2.googlesyndication.com. -webcache.googleusercontent.com. -mail.austasia.net. -photos-b.ak.fbcdn.net. -d2060227.instant.xoom.it. -s0.2mdn.net. -217.92.192.88.in-addr.arpa. -www.yiyi.cc. -plusone.google.com. -facebook.com. -www.facebook.com. -mpcstatic.com. -dns.msftncsi.com. -244.3.0.192.in-addr.arpa. -sds.nus.ventura.xbox.com. -barranquilla.vive.in. -www.google.com. -gplus.to. -www.trailersdecine.com. -a.root-servers.net. -163.20.224.85.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -xtina-forum.com. -d.foxadd.com. -safebrowsing.clients.google.com. -766.talkgadget.google.com. -3.bp.blogspot.com. -www.gtldna.com. -media.secret.shooshtime.com. -198.27.253.201.in-addr.arpa. -photos-h.ak.fbcdn.net. -startsear.ch. -inbound.jessicasoutlet.com.netsolmail.net. -static.ak.fbcdn.net. -www.googleadservices.com. -a1005.w42.akamai.net. -penxl.ru. -tr.wikipedia.org. -a2.sphotos.ak.fbcdn.net. -3.121.121.192.in-addr.arpa. -a.root-servers.net. -www.codinginstinct.com. -googleads.g.doubleclick.net. -249.63.72.89.in-addr.arpa. -col.stc.s-msn.com. -engr.sgi.com. -221.142.39.190.in-addr.arpa. -handicapping.bloodhorse.com. -a.root-servers.net. -bersoaexpres.blogspot.com. -soccergoals.com. -www.facebook.com. -a.root-servers.net. -202.22.168.192.in-addr.arpa. -webmail.conformis.com. -secure.shared.live.com. -mail2.ibmc.up.pt. -cifraclub.terra.com. -radio1.todostreaming.es. -meronisrl.it. -update.epyte.com. -www.facebook.com. -blog.wiggle.co.uk. -pagead2.googlesyndication.com. -sup.live.com. -a.root-servers.net. -h.live.com. -27.60.124.190.in-addr.arpa. -pixel.quantserve.com. -xmails.org. -40.114.167.189.in-addr.arpa. -171.250.183.98.in-addr.arpa. -106.214.94.98.in-addr.arpa. -i1.ytimg.com. -231.162.27.190.in-addr.arpa. -sonefex.com. -external.ak.fbcdn.net. -scotiarewards.scotiabank.com. -246.102.218.90.in-addr.arpa. -download.windowsupdate.com. -www.rsanow.com.au. -jkl123.com. -a.root-servers.net. -www.google-analytics.com. -www.facebook.com. -www.voayeurs.com. -sp.mx.ask.com. -www.pablogeo.com. -ad.yieldmanager.com. -75.82.81.71.in-addr.arpa. -platform.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -www.fiordland.org.nz. -a7.sphotos.ak.fbcdn.net. -rcp.eu.blackberry.com. -yeglive.ca. -www.momhairypussy.com. -a.root-servers.net. -static.ak.fbcdn.net. -safebrowsing.clients.google.com. -google.com. -140.122.105.46.zz.countries.nerd.dk. -edge.youtube-mp3.org. -mail01.travelexamericas.com. -71.98.49.190.in-addr.arpa. -producciondelibros.blogspot.com. -photos-d.ak.fbcdn.net. -master7.teamviewer.com. -mail1.sfisolutions.com. -fpdownload.adobe.com. -zulu.tweetmeme.com. -santiago.boardwalk-internet.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -safebrowsing-cache.google.com. -113.244.112.200.in-addr.arpa. -. -www.tienda-regalos-bautizo.com. -cs11233.vk.com. -educacion-virtualidad.blogspot.com. -debryanskaya.ru. -30.28.32.186.in-addr.arpa. -cdn.dzone.com. -www.google.com. -a.root-servers.net. -ocsp.digicert.com. -86.160.144.189.in-addr.arpa. -35.173.130.190.in-addr.arpa. -a.root-servers.net. -feeds.randyblue.com. -www.3hhd.com. -hmr.ms00.net. -profile.ak.fbcdn.net. -platform.ak.fbcdn.net. -es-es.facebook.com. -pixel.facebook.com. -t2.gstatic.com. -es-es.fxfeeds.mozilla.com. -abpp01.albertapermitpro.com. -convista.com. -sac.gti.mcafee.com. -ok.ru. -191.248.168.192.in-addr.arpa. -uniqlo.edgesuite.net. -www.cuantamierda.com. -s7.addthis.com. -54.51.1.46.in-addr.arpa. -youtu.be. -_892_16_9. -evenx.ru. -236.146.151.190.in-addr.arpa. -mail-s13.1gb.ru. -ocsp.digicert.com. -_682_27_1. -go.purenetworks.com. -rt.legolas-media.com. -weekly.chosun.com. -jameique.com. -dl.pinyin.sogou.com. -clients2.google.com. -221.156.145.72.in-addr.arpa. -niiide.com. -loc7.eu1.badoo.com. -photos-f.ak.fbcdn.net. -44-courier.push.apple.com. -mail.mavara.com. -dns.msftncsi.com. -cfs-p3.l3.fbcdn.net. -2il3o8527.59tq. -250.74.108.38.in-addr.arpa. -medfordwomensclinic.com. -christianwach.blogspot.com. -c.msn.com. -www.youtube.com. -www.dosmildiez.net. -www.fristam.de. -s.youtube.com. -www.plan-uk.org. -fhstzigtc.55og. -photos-g.ak.fbcdn.net. -www.elbuscapersonas.com.pe. -www.drjeffadams.com. -pt-br.facebook.com. -windowslive.com. -cdn.vidigital.ru. -www.youtube.com. -main.exoclick.com. -. -fashionleague-uk.blogspot.com. -profile.ak.fbcdn.net. -creative.ak.fbcdn.net. -223.224.83.189.in-addr.arpa. -creative.ak.fbcdn.net. -216.7.19.187.in-addr.arpa. -106.119.204.187.in-addr.arpa. -r._dns-sd._udp.lan. -ponchtomellh.nu. -www.santanderempresarial.com.br. -www.badoo.com. -www.youtube.com. -feeds.feedburner.com. -dealers.autotrader.com. -twitter.com. -listado.mercadolibre.com.ar. -t.co. -uralan.ru. -a.root-servers.net. -www.facebook.com. -photos-c.ak.fbcdn.net. -w.sharethis.com. -citu.info. -122.173.31.88.in-addr.arpa. -social.bidsystem.com. -sharethis.com. -130.27.242.201.in-addr.arpa. -esemomentoesacancion.blogspot.com. -45.6.106.84.in-addr.arpa. -xads.zedo.com. -mail.new.flexmail.ifxnetworks.com. -www.facebook.com. -photos-f.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -ssl.gstatic.com. -apps.facebook.com. -gwia1.eht.k12.nj.us. -torrent.ibiblio.org. -apis.google.com. -244d9103.yyv.co. -sea-latino.com. -116.39.64.98.in-addr.arpa. -nctinc.com. -el.justin.tv. -106.227.117.200.in-addr.arpa. -dir.xiph.org. -sn1msg3020109.gateway.messenger.live.com. -us.mcafee.com. -www.renuevodeplenitud.com. -ads.trafficjunky.net. -clients1.google.com. -d1ros97qkrwjf5.cloudfront.net. -www.google.com. -cdn.siteanalytics.evolvemediametrics.com. -www.facebook.com. -apis.google.com. -r-data.adsrvr.org. -_631_30_5. -105.164.164.187.in-addr.arpa. -y97fysd1y.68qn. -a926.da1.akamai.net. -ar.wikipedia.org. -api.twitter.com. -www.youtube.com. -dothehudson.net. -shnotify.acer.com.tw. -uphoto.doulike.com. -www.net-tec-ag.de. -210.31.225.189.in-addr.arpa. -a.root-servers.net. -google.com. -fs476.uploading.com. -4.map.pop6.com. -supplementwarehouse.com. -mx1.mailcleaner.pro. -apps.facebook.com. -0.pool.ntp.org. -www.eliphone5.com. -www.segundamano.com.mx. -201.109.117.200.in-addr.arpa. -www.expendablespremiere.com. -_166_57_6. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mscrl.microsoft.com. -vgn-xpromo.vostu.com. -240.137.167.190.in-addr.arpa. -www.petroleo-mexico.com. -aurelinlul.fitepyciness.pw. -onlinehelp.microsoft.com. -a.root-servers.net. -cuda4002.acc.org. -www.google.com. -s-static.ak.facebook.com. -www.stopbadware.org. -googleads.g.doubleclick.net. -56.15.156.187.in-addr.arpa. -a.root-servers.net. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -mt.livecamfun.com. -41.249.193.186.in-addr.arpa. -mailserver3.escatec.com. -igor.facemoods.com. -krona.obninsk.ru. -littlehousedenoel.blogspot.com. -urls.co.za. -bloghelp.exblog.jp. -s.aeriastatic.com. -65.215.36.69.in-addr.arpa. -a.root-servers.net. -www.google.com. -safebrowsing-cache.google.com. -benihana.com. -denmangroup.com. -www.google.com. -secure.wlxrs.com. -www.youtube.com. -sophtech.com. -www.hixatselfridges.co.uk. -www.mochiads.com. -137.41.87.201.in-addr.arpa. -12.217.58.71.in-addr.arpa. -ttns.com. -14.167.146.213.in-addr.arpa. -elteatrito.com. -a.root-servers.net. -mail.pastadelcapitano.com.br. -161.172.137.187.in-addr.arpa. -www.mulletsighting.com. -elblogdemariaelena.wordpress.com. -m.hotmail.com. -53.40.135.181.in-addr.arpa. -8b.u.51img1.com. -xulforge.com. -_708_57_9. -integrityhomelending.com. -fcbarcelonanoticias.com. -stateplanthire.com. -anonysupermaguila.esforos.com. -www.download.windowsupdate.com. -nihonkiin.or.jp. -sasvp.callvantage.att.com. -109.171.161.187.in-addr.arpa. -137.51.93.186.in-addr.arpa. -46.92.199.190.in-addr.arpa. -mail.printlux.com. -0.11-a30fc081.80210b1.1518.19d2.3ea1.200.0.aziphaksrrcu4c52zmddfs4m4b.avqs.mcafee.com. -mail01.agcs.allianz.com.ppde.azmx.de. -static.ak.fbcdn.net. -prpadi6nh.y98m8g1x. -157.54.15.116.in-addr.arpa. -ads2.iforex.com. -www.gi.co.id. -164.3.74.187.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -tpb.tracker.thepiratebay.org. -d3lvr7yuk4uaui.cloudfront.net. -www.bestbuy.com.mx. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -ksn1-11-part1.kaspersky-labs.com. -225.123.231.190.in-addr.arpa. -barkeeper.ie. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -us.battle.net. -a.root-servers.net. -60.57.109.70.in-addr.arpa. -www.carapantalla.com. -lb._dns-sd._udp.lan. -fbcdn-profile-a.akamaihd.net. -235.41.11.83.in-addr.arpa. -j-osaka.net. -www.mecanica-facil.com. -www.lifebatch.com. -3.162.30.186.in-addr.arpa. -lsgip-com.relay1c.spamh.com. -cdn.hegre-art.com.fpbns.net. -a3.sphotos.ak.fbcdn.net. -32.36.148.88.in-addr.arpa. -dosrv.perry.k12.ms.us. -www.ygexpert.com. -49.192.64.195.in-addr.arpa. -ozestretch.com. -photos-e.ak.fbcdn.net. -es.99counters.com. -23.65.229.220.in-addr.arpa. -for-my-wedding.com. -css.wlxrs.com. -a.root-servers.net. -static.ak.facebook.com. -mail.int.ru. -www.google-analytics.com. -www.gstatic.com. -photos-h.ak.fbcdn.net. -186.123.104.209.in-addr.arpa. -apple.com. -126.216.51.190.in-addr.arpa. -www.youtube.com. -a3.sphotos.ak.fbcdn.net. -appspot.l.google.com. -www.flexcourt.com. -webassets3.sparkybee.com. -wxdata.weather.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -gdgundem.com. -thumbnail.api.livestream.com. -ejabh.m5zn.com. -connect.facebook.net. -cxz23.meaningtool.com. -apple.accuweather.com. -youtube-global.blogspot.com. -114.222.107.209.in-addr.arpa. -thor24.com.s8a1.psmtp.com. -111.15.238.173.in-addr.arpa. -profile.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -www.juegosjuegos.asia. -www.adobe.com. -ipad.screensteps.com. -api.quizlet.com. -www.elle.es. -col.stc.s-msn.com. -conloscascospuestos.blogspot.es. -66.21.71.190.in-addr.arpa. -241.255.239.190.in-addr.arpa. -contadorweb.net. -www.jeuxfille.tv. -teredo.ipv6.microsoft.com. -250.249.230.190.in-addr.arpa. -www.myfblikes.info. -www.tibiawar.org. -lassuperfotos.com.es. -mail2a.smtproutes.org. -connexions-durham.org. -112.98.41.187.in-addr.arpa. -dns.msftncsi.com. -cs4499.vk.com. -www.culosdetias.com. -static.ak.fbcdn.net. -e1310.vuclip.com. -212.87.156.203.in-addr.arpa. -ad.yieldmanager.com. -dk.webcams.travel. -dns.msftncsi.com. -picasaweb.google.com. -sprojects.mmi.mcgill.ca. -checkip.dyndns.org. -bit.ly. -ssl.gstatic.com. -www.nudelinkdump.com. -cdn.api.twitter.com. -nova100.evectors.it. -mail.google.com. -fromthepews.org. -apple.com. -i-cdn.servedbyopenx.com. -tv2x2.ru. -sn1msg2010522.gateway.messenger.live.com. -acoupleofgurus.com.inbound10.mxlogicmx.net. -crl.microsoft.com. -photos-f.ak.fbcdn.net. -www.facebook.com. -www.google.com. -secure.tours4fun.com. -cm.g.doubleclick.net. -www.navartur.es. -a.root-servers.net. -mx2c26.carrierzone.com. -apis.google.com. -th2.iwannajerk.com. -ib.adnxs.com. -msc.wlxrs.com. -www.iesloscardones.es. -view.atdmt.com. -cdn0.sexysway.com. -www.montanasilversmiths.com. -213.45.171.118.in-addr.arpa. -www.johnstonpress.co.uk. -www.estilaestilo.cl. -38.9.93.200.in-addr.arpa. -v1es.sftcdn.net. -webcompay.com. -es.wikipedia.org. -www.entretengo.com. -www.comparaencasa.com. -176.84.104.186.in-addr.arpa. -m.facebook.com. -a.root-servers.net. -redirector.c.youtube.com. -pixel.facebook.com. -mx.youtube.com. -noble.org. -www.carhood.com. -us.rd.yahoo.com. -www.parafernalha.com.br. -groups.google.com.mx. -nsw.austutors.com.au. -199.194.105.186.in-addr.arpa. -urs.microsoft.com. -_086_63_2. -turneralternatives.com. -s7.addthis.com. -a.root-servers.net. -developers.facebook.com. -55.214.159.200.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -images.crocotube.com. -checkip.dyndns.org. -mexicanainforma.com. -fbcdn-sphotos-a.akamaihd.net. -developers.facebook.com. -www.facebook.com. -sosrecados.com. -external.ak.fbcdn.net. -external.ak.fbcdn.net. -static.ak.fbcdn.net. -i2.ytimg.com. -a2.twimg.com. -ads1.msads.net. -johnhcarter.com.s7b1.psmtp.com. -c-0.19-a3098481.483.1518.19d4.3ea1.410.0.96atjpzlesjf4k3w9ewwebnsl5.avqs.mcafee.com. -www.teentiger.com. -www.ig.gmodules.com. -ssl.gstatic.com. -photos-a.ak.fbcdn.net. -external.ak.fbcdn.net. -ar.finance.yahoo.com. -www.gstatic.com. -c.static-cdn.playfish.com. -97.232.10.181.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -l.yimg.com. -b._dns-sd._udp.belkin. -220.171.152.79.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -cpssys.com. -sevastopol.info. -www.masimasd.blogspot.com. -photos-g.ak.fbcdn.net. -cssweat.com. -prev.explabs.net. -cwnt.com. -217.26.108.190.in-addr.arpa. -bikinibank.com. -39.126.126.200.in-addr.arpa. -topoaze.eu. -sportingnews.checkm8.com. -static.ak.connect.facebook.com. -www.wftv.com. -profile.ak.fbcdn.net. -www.peyamner.com. -mail.seec.com.tw. -www.cnc.org.mx. -profile.ak.fbcdn.net. -cybershadow.com. -groups.live.com. -a.root-servers.net. -41.23.8.176.in-addr.arpa. -114.83.19.67.in-addr.arpa. -forum.swzone.it. -a.root-servers.net. -mxytiqlgllxl.ac. -xetgs.xboxlive.com. -pagead2.googlesyndication.com. -221.36.113.92.in-addr.arpa. -dvlti.ru. -ad.z5x.net. -csi.gstatic.com. -www.frederico-araujo.com. -www.adobe.com. -nullmx.matthew1.com. -onlinux-it.setupdns.net. -75.167.56.186.in-addr.arpa. -nl.softonic.com. -windowslivelatam.com. -dns.msftncsi.com. -mountainss.wordpress.com. -95.181.11.88.in-addr.arpa. -ksn1-11-part2.kaspersky-labs.com. -eqekld.com. -www.betweenthelines.net.au. -mk3047.spb.edu. -65.12.221.189.in-addr.arpa. -external.ak.fbcdn.net. -time.chttl.com.tw. -_490_63_5. -b.imwx.com. -222.199.172.78.in-addr.arpa. -237.73.167.190.in-addr.arpa. -riyadhciti.com. -1.134.113.186.in-addr.arpa. -connect.facebook.net. -a.root-servers.net. -www.durometrosymicrodurometros.com. -newsrss.bbc.co.uk. -34.211.36.186.in-addr.arpa. -sp.cwfservice.net. -dns.msftncsi.com. -clampfansub.foroes.net. -77.82.187.93.in-addr.arpa. -11.87.190.71.in-addr.arpa. -134.149.83.200.in-addr.arpa. -adsx.greystripe.com. -www.psychiatry.ox.ac.uk. -rad.msn.com. -bs.eyeblaster.akadns.net. -www.usdrybeans.com. -all-hidden-object-games.com. -a.root-servers.net. -196.206.65.151.in-addr.arpa. -. -littlemayra.blogspot.com. -234.6.179.190.in-addr.arpa. -www.textsrv.com. -www.youtube.com. -tomkadlec.com. -a-0.19-210f7001.a0e0131.1518.19d4.3ea1.210.0.gq4f3ru3uzzs8dk17ne1ngnvct.avqs.mcafee.com. -storage.conduit.com. -starnetworks.ru. -photos-d.ak.fbcdn.net. -a.root-servers.net. -profile.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -dominformer.ru. -a7.sphotos.ak.fbcdn.net. -sc19.rules.mailshell.net. -i4.ytimg.com. -a.rad.msn.com. -lb._dns-sd._udp.0.129.37.10.in-addr.arpa. -2.197.253.201.in-addr.arpa. -a0.twimg.com. -120.44.37.190.in-addr.arpa. -200.99.51.190.in-addr.arpa. -156.101.138.187.in-addr.arpa. -177.87.232.189.in-addr.arpa. -tour.twistys.com. -blufiles.storage.msn.com. -static.ak.fbcdn.net. -ak-media.soundcloud.com. -static.app.widdit.com. -teredo.ipv6.microsoft.com. -www.dulcedecoracion.es. -a-0.19-220f3081.9120081.1518.19d4.3ea0.200.0.btenq4pn4ldvwt3855u2t1jdnt.avqs.mcafee.com. -106.254.238.201.in-addr.arpa. -pres.us.mydlink.com. -www.innovar.gov.ar. -nsx.np.dl.playstation.net. -a3.sphotos.ak.fbcdn.net. -img100.xvideos.com. -www.adobe.com. -smtp.cimcast.net. -www.dsri.dk. -www.google.com. -secure.shared.live.com. -a5.sphotos.ak.fbcdn.net. -anaggh.com. -www.redphotophotography.com. -136.200.89.87.in-addr.arpa. -www.masmitja.net. -images.digby.com. -45.92.217.188.in-addr.arpa. -twitter.com. -photos-a.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -aaasea.org. -velvac.com.inbound10.mxlogicmx.net. -a.root-servers.net. -www.opensong.org. -developers.facebook.com. -www.nitrohouse.com. -check4.facebook.com. -246.138.120.186.in-addr.arpa. -www.releasedon.com. -static.ak.fbcdn.net. -a1725.l.akamai.net. -mai.in.th. -104.47.52.186.in-addr.arpa. -matscanbaraney.museum. -128.31.107.186.in-addr.arpa. -214.39.254.201.in-addr.arpa. -tc4.easythumbhost.com. -246.198.239.85.in-addr.arpa. -google.com. -platform.ak.fbcdn.net. -a.root-servers.net. -comconcrp.com. -www.gph.gov.sa. -53.69.23.76.in-addr.arpa. -vax.co.uk. -a6.sphotos.ak.fbcdn.net. -maerchen.woxikon.de. -a3.sphotos.ak.fbcdn.net. -www.facebook.com. -allfreevectors.com. -benelli.com.au. -pfplace.com. -www.hulkshare.com. -a.root-servers.net. -76.240.78.187.in-addr.arpa. -apple.com. -comentarios.esmas.com. -230.89.88.200.in-addr.arpa. -56.12.27.77.in-addr.arpa. -img69.imageshack.us. -_411_83_3. -wk-diecast.blogspot.com. -140.82.224.189.in-addr.arpa. -img.tongji.linezing.com. -s1.img.awempire.com. -a.root-servers.net. -mail.peakinsight.com. -bolsaibex.com. -www.younghegan.com. -www.dahousecat.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -161.221.165.69.in-addr.arpa. -clinedavis.com. -api.twitter.com. -a.root-servers.net. -mail2.graymont.com. -img.adverticum.net. -33.66.179.190.in-addr.arpa. -mx.alanet.com.br. -24.177.176.78.in-addr.arpa. -b.scorecardresearch.com. -google.com. -profile.ak.fbcdn.net. -228.201.43.200.in-addr.arpa. -adserving.cpxinteractive.com. -botsikas.blogspot.com. -26.media.tumblr.com. -s1-word-edit.vo.msecnd.net. -147.159.232.200.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -95.66.56.186.in-addr.arpa. -22.6.168.192.in-addr.arpa. -141.142.18.187.in-addr.arpa. -www.teamopolis.com. -161.68.232.82.in-addr.arpa. -nteck.com. -4sq.com. -a.root-servers.net. -mail.percarbonat.ru. -sc62.engate.com. -d2100638.xoom.it. -www.barclays.mobi. -photos-f.ak.fbcdn.net. -googleads.g.doubleclick.net. -mx1.techintgroup.com. -a.root-servers.net. -www.myresortnetwork.com. -rospres.com. -ib.adnxs.com. -static.ak.fbcdn.net. -127.181.176.190.in-addr.arpa. -eliocel.blogspot.com. -38.82.153.201.in-addr.arpa. -pixel.facebook.com. -www9.effectivemeasure.net. -a.root-servers.net. -gtsru.com. -www.changosmangos.net. -_403_10_2. -www.prontorotulo.com. -226.236.62.95.in-addr.arpa. -profile.ak.fbcdn.net. -time.apple.com. -a-0.19-2109e071.d0b0083.1518.19d4.3ea1.410.0.a8vnw6m6j8wv1hhrhb4gd6awlq.avqs.mcafee.com. -mail.hhqc.com. -pixel.quantserve.com. -platform.twitter.com. -yahoo.com. -alicante.cochesdeocasion.com. -www.facebook.com. -74.12.45.86.in-addr.arpa. -a.root-servers.net. -habboon.com. -www.abc.es. -couponbuddy.s3.amazonaws.com. -id.countrysearch.ec21.com. -p04-bookmarks.icloud.com. -google.com. -apps.facebook.com. -linux.ca. -a.root-servers.net. -70.235.189.184.in-addr.arpa. -windows.microsoft.com. -147.245.115.186.in-addr.arpa. -appsforbb.com. -creative.ak.fbcdn.net. -www.sohubook.com. -www2.netcom.com. -photos-h.ak.fbcdn.net. -www.google.com. -a.root-servers.net. -fls.doubleclick.net. -coaching.35webs.com. -twitter.com. -rd.meebo.com. -164.184.26.78.in-addr.arpa. -www.rangeen.in. -_213_07_1. -88.104.88.186.in-addr.arpa. -szwandu11.w91.516dns.com. -tap2-cdn.rubiconproject.com. -bkuxz526k.42wo. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -talk4.1.google.com. -blyudo.org.ru. -mvfhr.blogspot.com. -centos.omnispring.com. -pointa.autodesk.com. -1257868.r.msn.com. -www.guiadeestetica.com. -51.239.168.192.in-addr.arpa. -www.preferredhealthgroup.com. -45.154.96.177.in-addr.arpa. -atomicparsley.sourceforge.net. -s7.addthis.com. -kuv3wp1or.85nt. -www.vjvdiamonds.com. -static.only18teensex.com. -www.connect.facebook.com. -www.yahoo.com. -www.richvomdorf.com. -230.108.242.92.in-addr.arpa. -icarly.co. -sicurezza.ebay.it. -s0.2mdn.net. -ajax.googleapis.com. -pagead2.googlesyndication.com. -www.gstatic.com. -126.9.0.192.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -213.22.95.190.in-addr.arpa. -71.5.13.201.in-addr.arpa. -creative.ak.fbcdn.net. -russellandhazel.com. -google.com. -mowmgw02.mow.com. -tracker.ccc.de. -www.renegocios.com. -www.peachygreen.com. -voipc.sip.yahoo.com. -6xgate.deviantart.com. -www.ozu.es. -a2.sphotos.ak.fbcdn.net. -northshore-golfclub.com. -ts.tsnet.ru. -47j7b263u.j79b4r2u. -www.policia.gov.co. -a.root-servers.net. -www.google.com. -5h92qfb31.32kl. -ltasconfig.ltassrv.com. -www.facebook.com. -www.effect.com.ve. -www.nattoli.net. -dfaasd.com. -16.234.25.189.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -b.scorecardresearch.com. -126.0.20.212.in-addr.arpa. -www.alawar.ru. -www.switchplane.com. -external.ak.fbcdn.net. -11.105.247.189.in-addr.arpa. -www.conduit.com. -profile.ak.fbcdn.net. -qiran.com. -clients1.google.com. -fxfeeds.mozilla.com. -i4ucity.com. -googleads.g.doubleclick.net. -creative.ak.fbcdn.net. -202.164.44.91.in-addr.arpa. -vast.bp3846813.btrll.com. -lhkha2sqv.m06m4m8c. -external.ak.fbcdn.net. -nt3.ggpht.com. -profile.ak.fbcdn.net. -www.dogpile.co.uk. -profile.ak.fbcdn.net. -134.143.86.186.in-addr.arpa. -www.10stiri.ro. -blog.mon-anniversaire.com. -www.google-analytics.com. -zynga2-a.akamaihd.net. -missyfeelingaddicted.blogspot.com. -mail.st-tula.ru. -rs983l33.rapidshare.com. -40-courier.push.apple.com. -developers.facebook.com. -smtp4.ocps.net. -231.192.32.114.in-addr.arpa. -pixel.facebook.com. -110.237.211.201.in-addr.arpa. -169.90.173.190.in-addr.arpa. -es.babelfish.yahoo.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -rcp.na.blackberry.com. -bcvideos.wwe.com. -cdn-0.pics.hardsextubepremium.com. -teredo.ipv6.microsoft.com. -www.google.com. -_280_38_3. -152.10.90.208.in-addr.arpa. -www.youtube.com. -101.107.181.80.in-addr.arpa. -smtp.divex.se. -. -jers3.info. -photos-f.ak.fbcdn.net. -vglgmtj.com. -pixel.facebook.com. -nvc.net. -a8.sphotos.ak.fbcdn.net. -58.189.15.216.zen.spamhaus.org. -182.93.168.192.in-addr.arpa. -a.ads2.msads.net. -googleads.g.doubleclick.net. -57.26.157.157.in-addr.arpa. -250.45.228.91.in-addr.arpa. -home.shop.ebay.com. -fundacioncth.org. -ratings-wrs.symantec.com. -creative.ak.fbcdn.net. -www.shantui-xcmg.ru. -ibm-consultant.jobs. -tts.hcs.k12.al.us. -billing.sharo4ka.ru. -p23.easybitsgo.net. -www.dvdstore.com. -172.154.102.189.in-addr.arpa. -www.allteentits.com. -mail2chile.com. -pagead2.googlesyndication.com. -0. -9.65.57.187.in-addr.arpa. -a-0.19-2309a081.d060083.1518.19b3.3ea1.210.0.spqabajtl54hfqk97s33alujnv.avqs.mcafee.com. -www.bitefight.es. -cdn.wibiya.com. -ssl.gstatic.com. -vthumb.ak.fbcdn.net. -www.siteadvisor.com. -4.bp.blogspot.com. -zpzp2bd5d.84fm. -csi.gstatic.com. -www.microsoft.com. -ubds.uniblue.com. -photos-c.ak.fbcdn.net. -ymail.com. -mail.gmail.com. -www.doc.mx. -static.bergfex.at. -www.crushingonclothes.com. -m.wetter.net. -www.slideshare.net. -push.tagged.com. -www.maxicon.com. -173.151.22.190.in-addr.arpa. -e7f964eb.rqq.co. -plus.google.com. -mail1.subrogation.net. -photos-f.ak.fbcdn.net. -a28.g.akamai.net. -washingtondc.backpage.com. -109.36.218.180.in-addr.arpa. -183.119.56.187.in-addr.arpa. -edge.quantserve.com. -a.root-servers.net. -hotmail.com. -65.67.36.46.in-addr.arpa. -227.253.174.189.in-addr.arpa. -assets.tp-cdn.com. -www.lanueva.com. -137.158.45.70.in-addr.arpa. -teredo.ipv6.microsoft.com. -blomasa.com. -254.65.91.186.in-addr.arpa. -resolver1.wguard.ctmail.com. -ib.adnxs.com. -rhrun.com. -pix.fileratings.com. -www.unydos.com. -www.facebook.com. -65.54.51.190.in-addr.arpa. -irc.purchaseservice.com. -fun.zynga.com. -fbcdn-photos-a.akamaihd.net. -northstar-service.com. -tap.rubiconproject.com. -tunnel.cfw.trustedsource.org. -www.telalinks.com. -marinerscovebayclub.org. -24.42.76.189.in-addr.arpa. -ohu32l2uu.l79o9n0a. -www.americanyogaassociation.org. -spamfilter.vpdinc.com. -g12254.chrome.funnygames.org. -219.73.43.114.in-addr.arpa. -code.google.com. -a.root-servers.net. -216.107.66.75.in-addr.arpa. -voipb.sip.yahoo.com. -221.20.7.190.in-addr.arpa. -www.youtube.com. -www.fammed.ouhsc.edu. -lukar.ru. -lovewellmtn.com. -mail.bazzillbasics.com. -eser.cl. -um16.eset.com. -cloudav.updates.pandasecurity.com. -photos-f.ak.fbcdn.net. -mercuryapps.foxnews.com. -_140_66_9. -es.wikipedia.org. -www.filestube.me. -sisbib.unmsm.edu.pe. -a4.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.3dtoontube.com. -a.root-servers.net. -photos-f.ak.fbcdn.net. -rapidssl-crl.geotrust.com. -a.root-servers.net. -sp.cwfservice.net. -fbcdn-photos-a.akamaihd.net. -sandaraparkfashion.wordpress.com. -a6.sphotos.ak.fbcdn.net. -97.211.59.186.in-addr.arpa. -www.youtube.com. -ad.doubleclick.net. -www.google.com. -dns.msftncsi.com. -jehzlau-concepts.com. -ex.starwebnet.com. -wirtschaftsschaufenster.augsburger-allgemeine.de. -i.ytimg.com. -rad.msn.com. -_451_59_4. -www.greenmanreview.com. -201.102.172.81.in-addr.arpa. -peseta.org. -dns.msftncsi.com. -tta.angel.googlepages.com. -fpinsurance.com.s5b1.psmtp.com. -photos-f.ak.fbcdn.net. -denkermuscarello.com.pri-mx.na0100.smtproutes.com. -itunes.apple.com. -a.root-servers.net. -utorak007.spreadshirt.net. -api.facebook.com. -orthoklahoma.com. -118.244.78.186.in-addr.arpa. -www.dlink-me.com. -0.gravatar.com. -tsi.com. -67.1.144.187.in-addr.arpa. -mail.webuzmani.net. -time.chttl.com.tw. -rusgai.ru. -r._dns-sd._udp.0.79.168.192.in-addr.arpa. -179.99.146.187.in-addr.arpa. -www.roadsters.com. -212.5.42.113.in-addr.arpa. -20.224.171.69.in-addr.arpa. -barracuda.networkpartners.com. -static.ak.fbcdn.net. -www.peliculasconpalomitas.com. -vsal.ru. -nccray.com. -psrbb.com.s10b1.psmtp.com. -a6.sphotos.ak.fbcdn.net. -119.112.141.201.in-addr.arpa. -c-0.19-a30fa081.8110000.1518.19d4.3ea1.410.0.e4w56fs4drhcime9zrg33i8qfv.avqs.mcafee.com. -tagmanezt.terra.com. -nenacho.blogspot.com. -edgeyoke.com. -pixel.facebook.com. -135.141.24.189.in-addr.arpa. -safe-mail.net. -ocsp.godaddy.com. -beta.hustlerstaboo.com. -profile.ak.fbcdn.net. -ns45.domaincontrol.com. -190.29.126.77.in-addr.arpa. -lcbcmail.com. -dhs.state.tx.us. -craneveyor.com.s7a2.psmtp.com. -deltavalves.com. -www.sqm.microsoft.com. -profile.ak.fbcdn.net. -ispro.de. -api-read.facebook.com. -adsfront.iminent.com. -www.gstatic.com. -a7.sphotos.ak.fbcdn.net. -ctnzlauwgtgpryqp.net. -ksn1-11-part1.kaspersky-labs.com. -tubes.wamcash.com. -www.thisislondon.co.uk. -a.root-servers.net. -a.root-servers.net. -photos-b.ak.fbcdn.net. -www.activica.com. -a.root-servers.net. -twitter.com. -tap2-cdn.rubiconproject.com. -mail.google.com. -143.124.222.189.in-addr.arpa. -www.addthis.com. -www.addthis.com. -80.226.34.187.in-addr.arpa. -pt-br.facebook.com. -watson.microsoft.com. -api.bing.net. -mail.goodnessgreeness.com. -yahoo.c.uk.lan. -ggstat.flashget.com. -es-la.facebook.com. -s-static.ak.facebook.com. -api.twitter.com. -mscan.hortresearch.co.nz. -www.emailmeform.com. -dsd-www.nuts.co.uk.edgesuite.net. -graph.facebook.com. -0.gravatar.com. -a.root-servers.net. -142.12.185.201.in-addr.arpa. -itunes.apple.com. -backup35.url.trendmicro.com. -itunes.apple.com. -clients1.google.com. -236.173.22.190.in-addr.arpa. -galtime27.disqus.com. -safebrowsing-cache.google.com. -57.214.217.87.in-addr.arpa. -225.8.175.187.in-addr.arpa. -98.249.185.86.in-addr.arpa. -www.kitco.com. -urs.microsoft.com. -cwine.com. -safedrivingacademy.net. -askville.amazon.com. -pixel.quantserve.com. -altfarm.mediaplex.com. -51.117.111.87.in-addr.arpa. -torem.ru. -rct.ru. -62.16.46.50.in-addr.arpa. -mail.krata.ru. -s.youtube.com. -tools.google.com. -huzzah.edublogs.org. -global.cyworld.com. -melco.com. -feeds.bbci.co.uk. -ms.aidc.com.tw. -d15gt9gwxw5wu0.cloudfront.net. -forums2.battleon.com. -a1.sphotos.ak.fbcdn.net. -mail.ideaspublishinggroup.com. -26.120.112.190.in-addr.arpa. -www.surveymonkey.com. -188.187.93.173.in-addr.arpa. -inglesperu.blogspot.com. -a6.sphotos.ak.fbcdn.net. -s.ytimg.com. -beachcroft.co.uk. -m.facebook.com. -_123_71_9. -a3.sphotos.ak.fbcdn.net. -bloc.filantprim.com. -www.putumayo-home.com. -external.ak.fbcdn.net. -weltonstreet.com.s10b2.psmtp.com. -www.xat.org. -teredo.ipv6.microsoft.com. -a3dauto.com. -99yahoo.com. -www.facebook.com. -152.222.247.189.in-addr.arpa. -api-read.facebook.com. -wmxzrgc4p.75ry. -utmtrk9.apn.ask.com. -checkip.dyndns.org. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -tp.socialvi.be. -a85.phobos.apple.com. -adframes.iminent.com. -dt.tongji.linezing.com. -blogis.in. -banking.shinhan.com. -l2.dmggroup.com. -forums.theplanet.com. -a8.sphotos.ak.fbcdn.net. -sipc.org.rbl2.mcafee.com. -static.ak.fbcdn.net. -_391_24_4. -61.178.210.186.in-addr.arpa. -168.7.168.192.in-addr.arpa. -bs.serving-sys.com. -photos-e.ak.fbcdn.net. -umcom.org. -developers.facebook.com. -tnn.ru. -berega.net. -mx02.vtb24.ru. -db._dns-sd._udp.lan. -karev.org.il. -63.6d736e.636f6d.80h40041527.webcfs02.com. -verizon.net. -a6.sphotos.ak.fbcdn.net. -245.64.161.190.in-addr.arpa. -ny.goldenbridgeyoga.com. -www.thehostmovienews.com. -v7k5:a2rg.s27r4t9p. -mx.masonattorneys.com. -www8.babblar.org. -a6.sphotos.ak.fbcdn.net. -s-r.ru. -234.92.169.189.in-addr.arpa. -platform.twitter.com. -picasaweb.google.com. -73.215.248.74.in-addr.arpa. -www.facebook.com. -bkkok.com. -www.google.com. -js2.wlxrs.com. -100.123.110.186.in-addr.arpa. -sup.live.com. -photos-h.ak.fbcdn.net. -176.138.226.189.in-addr.arpa. -www.meinsurancereview.com. -www.americanplacetheatre.org. -www.facebook.com. -ssl.gstatic.com. -paceproperties.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.w3api.com. -ad.adnetwork.net. -a6.sphotos.ak.fbcdn.net. -itworld.simplyhired.com. -l08.member.sp1.yahoo.com. -136.89.229.189.in-addr.arpa. -ad-g.doubleclick.net. -chrisbblihy.mywibes.com. -image2.pubmatic.com. -www.linkbucks.com. -hi-in.facebook.com. -cdo.wikipedia.org. -writetodone.com. -test-rt.liftdna.com. -filnaturalista.blogspot.com. -p07-bookmarks.icloud.com. -estaticos.diariodemallorca.es. -www.futureelectronics.com. -97.40.135.190.in-addr.arpa. -motor.net.au. -acegolfcars.com. -fashionvibe-blog.blogspot.com. -creative.ak.fbcdn.net. -87.35.240.201.in-addr.arpa. -www.diffuse-cpm.com. -pek-nn.ru. -profile.ak.fbcdn.net. -www.download.windowsupdate.com. -volga.customs.ru. -sawall.de. -www.movie1820.com. -squarise.com. -icon.daumcdn.net. -a.root-servers.net. -mbacm.com. -a.root-servers.net. -www.youtube-nocookie.com. -castlocations.com. -www.gratispeliculas.org. -lh6.ggpht.com. -piterspy.ru. -creative.ak.fbcdn.net. -hantech.com. -rcp.na.blackberry.com. -www.isg-apple.com.akadns.net. -api-read.facebook.com. -244.151.108.95.in-addr.arpa. -video.google.com. -220.193.122.84.in-addr.arpa. -sync.search.spotxchange.com. -www.adobe.com. -profile.live.com. -sn3.mailshell.net. -www.deportemundial.net. -fc07.deviantart.net. -sneak.co.nz. -bid.openx.net. -s.amazon-adsystem.com. -www.amyscott.com. -www.unicef.org. -16.133.25.210.in-addr.arpa. -0-jh-w.channel.facebook.com. -www.foxsportsla.com. -bleached-to-the-bone-scene-3.ss.thirdmovies.com. -cdn-a1.dvipcdn.com. -partner.googleadservices.com. -a.root-servers.net. -mums.cl. -99.139.172.189.in-addr.arpa. -localhost. -catgirlkawaii.deviantart.com. -googlemail.l.google.com. -hotmait.com. -render.talk4free.com. -61.208.179.189.in-addr.arpa. -www.sanitaryum.com. -119.228.51.190.in-addr.arpa. -oxydo.ru. -espn.co. -iteccolorado.com. -web360.com. -a.root-servers.net. -www.playflv.com. -kfmg9lgzm.93kx. -18.116.8.60.in-addr.arpa. -dh.api.apptao.com. -redffmaill.com. -a.root-servers.net. -toolbar.google.com. -176.247.160.201.in-addr.arpa. -topcharts.ru. -xml.opera.com. -photos-g.ak.fbcdn.net. -googleads.g.doubleclick.net. -kft8nx7q:.57eg. -billing.sharo4ka.ru. -www.itknowledge24.com. -139.203.41.200.in-addr.arpa. -photos9.flickr.com. -77867bf.net. -profile.ak.fbcdn.net. -126.96.48.60.in-addr.arpa. -fl0.ru. -r._dns-sd._udp.0.10.168.192.in-addr.arpa. -e566.b.akamaiedge.net. -pixel.facebook.com. -12.109.122.200.in-addr.arpa. -webyetis.com. -developers.facebook.com. -pixel.facebook.com. -www.facebook.com. -forum.axishistory.com. -193.222.36.187.in-addr.arpa. -www.lanvin.com. -196.33.148.88.in-addr.arpa. -gqlgroup.com. -time.chttl.com.tw. -a.root-servers.net. -external.ak.fbcdn.net. -grandgeneral.com. -www.facebook.com. -g0.gstatic.com. -doha.frasershospitality.com. -a.root-servers.net. -kremino.com. -photos-b.ak.fbcdn.net. -network.incgamers.com. -ir.ebaystatic.com. -voipb.sip.yahoo.com. -apple.com. -ippi.msk.su. -83.95.70.208.in-addr.arpa. -us.kpmg.com. -del.icio.us. -37.95.190.189.in-addr.arpa. -ayaks.ru. -load.tubemogul.com. -www.rallyandracing.com. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -pixel.facebook.com. -rssc.com. -106.185.134.187.in-addr.arpa. -videodown.baofeng.com. -elpasotimes.gannettonline.com. -piesdefamosas.com. -133.203.26.177.in-addr.arpa. -1.bp.blogspot.com. -graph.facebook.com. -b.scorecardresearch.com. -photos-b.ak.fbcdn.net. -ezlip.com. -media.fastcar.co.uk. -a5.sphotos.ak.fbcdn.net. -232.180.146.187.in-addr.arpa. -photos-b.ak.fbcdn.net. -laminate-parquet.ru. -db._dns-sd._udp.lan. -clients1.google.com. -www.unileon.es. -creative.ak.fbcdn.net. -profile.ak.fbcdn.net. -www.msftncsi.com. -s7.addthis.com. -be-x-old.wikipedia.org. -www.nabdh-alm3ani.net. -photos-h.ak.fbcdn.net. -f:mw7gybl.h86d7r5b. -www.foodreference.com. -a.root-servers.net. -tracker.csze.com. -154.129.39.186.in-addr.arpa. -platform.ak.fbcdn.net. -227.173.123.84.in-addr.arpa. -dcingredients.com. -ladbrokesmobilebetting.com. -103.187.12.186.in-addr.arpa. -inky.tumblr.com. -google.com. -www.consoleaddiction.com. -zipform.com.s8a2.psmtp.com. -weather.wapp.wii.com. -a.root-servers.net. -8.24.220.189.in-addr.arpa. -www.emesotherapy.com.au. -download347.avast.com. -r.openx.net.akadns.net. -external.ak.fbcdn.net. -www.linguee.com.ar. -www.steampunkmagazine.com. -a-0.19-a3092081.20200b3.1518.19d3.3ea1.410.0.eh5u9jzwkkcg57a42q646qaje6.avqs.mcafee.com. -158.181.231.190.in-addr.arpa. -s.ytimg.com. -161.234.141.201.in-addr.arpa. -resolutioncenter.ebay.com. -flatfrogmusic.com. -www.richtig-spielen.de. -smtp-out.wplus.net. -17.142.138.187.in-addr.arpa. -anixter.net. -rcw.wc24.wii.com. -200.115.69.189.in-addr.arpa. -0-jl-w.channel.facebook.com. -www.facebook.com. -www.msn.com. -barracuda.cannondesign.com. -52.239.68.66.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -online.unitconverterpro.com. -ad.z5x.net. -platform.ak.fbcdn.net. -m.addthisedge.com. -www.facebook.com. -weather.services.conduit.com. -www.juegos.com. -a.root-servers.net. -www.crecimiento-personal.com. -185.227.195.187.in-addr.arpa. -16.102.59.186.in-addr.arpa. -image2.pubmatic.com. -photos-h.ak.fbcdn.net. -124.4.51.190.in-addr.arpa. -famintl.com. -ksn7-12.kaspersky-labs.com. -newsrss.bbc.co.uk. -by2msg4010517.gateway.messenger.live.com. -73.22.31.77.in-addr.arpa. -smtp.ravensport.com. -scripts.demandmedia.com. -dieterpreiser.de. -blog.mundoanuncio.com. -157.254.146.190.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -a.root-servers.net. -on.nba.com. -websoilsurvey.nrcs.usda.gov. -mail.nvdevelop.ru. -17.254.216.189.in-addr.arpa. -160.78.220.189.in-addr.arpa. -www.discomuseum.com. -tzzs888.com. -a.root-servers.net. -www.bywifi.com. -cust13538-2.in.mailcontrol.com. -a5.sphotos.ak.fbcdn.net. -www.runningafrica.com. -creative.ak.fbcdn.net. -24.255.41.177.in-addr.arpa. -239.109.10.46.in-addr.arpa. -www.filesonic.com. -www.google.com. -90.239.164.190.in-addr.arpa. -alt1.aspmx.l.google.com. -stats.norton.com. -swcdn.apple.com. -a.root-servers.net. -apps.facebook.com. -249.42.80.186.in-addr.arpa. -profile.ak.fbcdn.net. -www.viglink.com. -www.hostk.info. -www.msftncsi.com. -connect.facebook.net. -shop.jayalders.com. -www.ustream.tv. -79.202.8.200.in-addr.arpa. -geo-science.ch. -events.unisfair.com. -mail.reactionlab.com. -46-courier.push.apple.com. -one-chord-wonders.blogspot.com. -www.facebook.com. -yahoo.com. -www.presentationmagazine.com. -asm.sourceforge.net. -hotmail.com. -www.engadget.com. -1stholistic.com. -frdiscovery.hosting.sca. -ws-cloud-msgplus.linkury.com. -www.visitlawrence.com. -whos.amung.us. -cvtrust.org. -news.google.co.il. -www.cu-g.com. -20minutos.feedsportal.com. -123.110.72.50.in-addr.arpa. -static.da.com.ar. -takenaka.com.sg. -a.root-servers.net. -pes.liaofoo.com. -16.230.86.200.in-addr.arpa. -promotionalptnr.com. -billing.sharo4ka.ru. -ad.reachjunction.com. -voipa.sip.yahoo.com. -miepspb.ru. -www.xboxlc.com. -myexceltemplates.com. -quyettri.com. -elaviadorcapotado.blogspot.com. -5.9.38.196.in-addr.arpa. -s-static.ak.facebook.com. -www.google-analytics.com. -solocinehd.blogspot.com. -lpcnb.com. -a.root-servers.net. -158.10.242.46.in-addr.arpa. -contemplator.com. -239.47.243.123.in-addr.arpa. -tools.google.com. -mail.chiefexecutive.com. -26-courier.push.apple.com. -www.facebook.com. -pixel.facebook.com. -pixel.facebook.com. -arabia.msn.com. -www.adshow.eu. -platform.ak.fbcdn.net. -_765_80_1. -campeaoprovincias.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -sidler.de. -www.google.com.mx. -teredo.ipv6.microsoft.com. -disqus.com. -73.157.252.83.in-addr.arpa. -e.miniclip.com. -i4.ytimg.com. -findgift.com. -creative.ak.fbcdn.net. -cnrit.tamu.edu. -millerbranding.com. -accounts.google.com. -189.118.255.190.in-addr.arpa. -www.bidhere.com. -121.78.22.186.in-addr.arpa. -chinanav.com. -www.losratonesdepablo.com. -youtu.be. -ukfinancehouse.com. -radar.meteo.be. -metalwarez.com. -grupogal.com. -ns3.eu.editdns.net. -s.youtube.com. -google.com. -ds.addthis.com. -ns2.unity-web.ch. -wearethelaw.tk. -es-la.facebook.com. -153.125.114.201.in-addr.arpa. -66.66.30.190.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -plus.google.com. -etaion.com. -mainlinemedianews.com. -koreamedicaltravel.com. -rrppnet.com.ar. -92.41.75.190.in-addr.arpa. -somtel.com. -www.radiomuseum.org. -70.92.144.216.in-addr.arpa. -www.thedavidlawrenceshow.com. -the-vault-surf-target-maker.com. -ksn2-12.kaspersky-labs.com. -www.facebook.com. -scallywagandvagabond.com. -del.icio.us. -bigblue.com. -lb._dns-sd._udp.0.2.168.192.in-addr.arpa. -a.root-servers.net. -ar-ar.facebook.com. -7.0.0.10.in-addr.arpa. -lomassexxx.blogspot.com. -www.rinconjuegos.com. -platform.twitter.com. -dlvr.it. -video.google.com. -_ldap._tcp.dc._msdcs.hospira.corp. -w40kespecialista.blogspot.com. -inblindinglights.com. -img.iwasinturkey.com. -profile.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -s0.2mdn.net. -i3.ytimg.com. -z.alimama.com. -108.28.64.115.in-addr.arpa. -row.bc.yahoo.com. -244.32.252.173.in-addr.arpa. -www.gamer.ne.jp. -webpark.rutube.ru. -um10.eset.com. -static.ak.fbcdn.net. -feeds.videosz.com. -a.root-servers.net. -79.156.16.70.in-addr.arpa. -static.ak.facebook.com. -kacharin.ru. -skipoleposition.com. -photos-f.ak.fbcdn.net. -www.mattcardlefansite.co.uk. -edge.quantserve.com. -mbpvideo.com. -dsn3.d.skype.net. -by2msg3020215.gateway.messenger.live.com. -www.gstatic.com. -www.chinesecars.net. -119.37.42.186.in-addr.arpa. -www.starphone.com.ar. -webspin-design.com. -pixel.facebook.com. -46.201.54.85.in-addr.arpa. -103.199.168.192.in-addr.arpa. -95.220.132.217.in-addr.arpa. -www.iphone-girl.jp. -sp.cwfservice.net. -airbrakeapp.com. -ofurotaimu.dreamwidth.org. -pagead2.googlesyndication.com. -me-cdn.effectivemeasure.net. -www.google-analytics.com. -profile.ak.fbcdn.net. -a.root-servers.net. -dingtao333.3322.org. -platform.ak.fbcdn.net. -172.66.27.201.in-addr.arpa. -www.new.facebook.com. -108.183.135.211.in-addr.arpa. -223.227.51.190.in-addr.arpa. -116.111.110.186.in-addr.arpa. -243.126.75.200.in-addr.arpa. -8.169.49.190.in-addr.arpa. -tiwitter.com. -up7y:ri5p.71sv. -a.root-servers.net. -nationaled.net.mail10.psmtp.com. -oascentral.crainsnewyork.com. -z022.fma.fb.me. -119.62.81.151.in-addr.arpa. -ctcinsurance.com. -a.root-servers.net. -secure.thinkstockphotos.com. -googleads.g.doubleclick.net. -www.expedia.co.kr. -a1.sphotos.ak.fbcdn.net. -156.53.56.200.in-addr.arpa. -www.facebook.com. -img-cdn.mediaplex.com. -252.232.189.190.in-addr.arpa. -_546_77_4. -buschmanpartners.com. -9.82.125.186.in-addr.arpa. -grupoarion.com.mx. -profile.ak.fbcdn.net. -37.148.23.95.in-addr.arpa. -monstrobe.com. -m.facebook.com. -elite-servers.com.ua. -tudecidesmedia.com. -csi.gstatic.com. -www.facebook.com. -franelasarepa.blogspot.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -denis.stalker.h3q.com. -63.93.70.208.in-addr.arpa. -static.ak.fbcdn.net. -vcs2.msg.yahoo.com. -_754_86_4. -www.hostingz.com. -profile.ak.fbcdn.net. -adventcomms.com. -fbcdn-profile-a.akamaihd.net. -developers.facebook.com. -www.facebook.com. -planes.pensiones.ley.com.es. -sp.cwfservice.net. -upakkom.ru. -televisa.esmas.com. -capacidadesespeciales.blogspot.com. -gablesigns.com.s8b1.psmtp.com. -www.youtube.com. -a.root-servers.net. -mail.cablelite.com. -doma-konsult.ru. -a.root-servers.net. -webserver4.pjq.ok.cl. -kircherlandscape.blogspot.com. -e4.ny.us.ibm.com. -www.google-analytics.com. -www.webshaper.com.my. -a.root-servers.net. -standard.image.draw.spankapps.com. -a8.sphotos.ak.fbcdn.net. -mail.google.com. -t3.gstatic.com. -safebrowsing.clients.google.com. -click.infospace.com. -bmsapedyuxz.org. -facebook.com. -pixel.quantserve.com. -a.root-servers.net. -s2.youtube.com. -a7.sphotos.ak.fbcdn.net. -tradebox.ru. -mchsi.com. -28.18.230.190.in-addr.arpa. -a.root-servers.net. -proxy.promenergoresurs.ru. -www.indavideo.hu. -king.jetztspielen.de. -a.c-0.19-230fa081.8110000.1518.19d3.3ea1.210.0.3t5zbpee7lm5hpbj4udp5m4ql6.avqs.mcafee.com. -pt-br.facebook.com. -www.gstatic.com. -s.xvideos.com. -a7.sphotos.ak.fbcdn.net. -125.161.0.24.in-addr.arpa. -16.9.47.201.in-addr.arpa. -241.39.121.200.in-addr.arpa. -multi.xnxx.com. -www.stopbadware.org. -pascal-descharmes.fr. -graph.facebook.com. -95.228.31.190.in-addr.arpa. -photos-c.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -92.167.29.78.in-addr.arpa. -simpsongeneralhospital.com. -bartowregional.com. -rpmusic.com. -113.1.95.184.in-addr.arpa. -b.scorecardresearch.com. -fbcdn-profile-a.akamaihd.net. -gnnchannel.com. -129.25.161.201.in-addr.arpa. -aa.online-metrix.net. -energiadeluz.com. -216.9.36.187.in-addr.arpa. -www.tecnomed2000.com. -i1.ytimg.com. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -byfiles.storage.msn.com. -bezar.ru. -teredo.ipv6.microsoft.com. -aha.msk.su. -a.root-servers.net. -107.117.64.75.in-addr.arpa. -www.facebook.com. -www.mdgfog.com. -peter.com. -beringov-proliv.ru. -a756.r.akamai.net. -cactusmat.com. -12.65.52.201.in-addr.arpa. -mail.philharmonia.spb.ru. -googleads.g.doubleclick.net. -t1.gstatic.com. -osalotteries.net. -nitrato-lirico.blogspot.com. -v8.nonxt7.c.youtube.com. -mail.organic-shop.ru. -ads.admarvel.com. -couponbuddy.s3.amazonaws.com. -www.wwl.com. -photos-b.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -www.rutschmann.biz. -es.wikipedia.org. -bbvaganadero1.bbva.com.co. -realty.mail.ru. -aquienaguas.com. -zamunda.net. -169.138.106.186.in-addr.arpa. -europe.perf.glbdns.microsoft.com. -a.root-servers.net. -psgw.t-mobilesgws.com. -a15.t26.net. -mail.sacramentointernet.com. -a.root-servers.net. -s108.filesonic.com. -86.140.176.190.in-addr.arpa. -8ejb1eqrb.25zf. -99.91.44.190.in-addr.arpa. -ad.smowtion.com. -200.13.153.189.in-addr.arpa. -profile.ak.fbcdn.net. -235.72.31.80.in-addr.arpa. -es.wikipedia.org. -cpsfx.com. -www.asian-boy-bondage.com. -46.85.191.186.in-addr.arpa. -pt-br.facebook.com. -174.219.226.95.in-addr.arpa. -buy.norton.com. -secure.wlxrs.com. -fbcdn-sphotos-a.akamaihd.net. -nasascience.nasa.gov. -merckx-nv.be. -appenda.com. -www.google-analytics.com. -185.33.159.190.in-addr.arpa. -73.238.191.189.in-addr.arpa. -promo.meetatranny.com. -pop3.live.com. -a1814.g.akamai.net. -a2.sphotos.ak.fbcdn.net. -dns.msftncsi.com. -suscom-main.net. -ads.us.e-planning.net. -www.gazzetta.it. -www.stopbadware.org. -www.happycow.net. -analogmachine.com. -www.myspacegens.com. -europe.worldtraveler.biz. -a4.sphotos.ak.fbcdn.net. -ww2.nf.outerinfo.net. -a.root-servers.net. -a.root-servers.net. -accounts.google.com.mx. -66.130.255.222.in-addr.arpa. -lobotuerto.com. -creative.ak.fbcdn.net. -l.yimg.com. -cityofripon.org. -homesteadlandscaping.com. -connect.facebook.net. -fbcdn-sphotos-a.akamaihd.net. -khabarovsk.telephone.ru. -mail.gmhca.com. -www.facebook.com. -www.doazafrandelamancha.com. -laprincipianta.blogspot.com. -chat.facebook.com. -49.212.85.209.zen.spamhaus.org. -fortax.ch. -gospelmusicchannel.edgesuite.net. -153.124.49.190.in-addr.arpa. -post.centro.ru. -nuestras.frasesdeface.net. -www.google-analytics.com. -mail2.sinclairresearch.com. -chintels.com. -nl.pollypocket.com. -www.pixelpraise.com. -a.root-servers.net. -static.ak.fbcdn.net. -119.247.119.75.in-addr.arpa. -www.geeky-gadgets.com. -www.senia.com. -id.l.google.com. -metrix.511tactical.com. -tracker.bittorrent.am. -mail.rwandair.com. -google-analytics.com. -mail.google.com. -a1.sphotos.ak.fbcdn.net. -83.186.101.78.in-addr.arpa. -ak.imgfarm.com. -197.36.52.186.in-addr.arpa. -listen.grooveshark.com. -a7.sphotos.ak.fbcdn.net. -m.addthisedge.com. -lumpeny.com. -71.60.191.190.in-addr.arpa. -instagram.com. -beta.stun.voice.yahoo.com. -mxa-0006fb01.gslb.pphosted.com. -btonternet.com. -100.33.148.58.in-addr.arpa. -messenger.hotmail.com. -www.gregbyng.com. -abutik.hu. -200.252.34.186.in-addr.arpa. -ekaterinka.orthodoxy.ru. -js.wlxrs.com. -i3.ytimg.com. -csi.gstatic.com. -www.afrik-cuisine.com. -platform.ak.fbcdn.net. -cm.g.doubleclick.net. -0-jx-w.channel.facebook.com. -ns.neptun.spb.ru. -adoholik.com. -www.shubertticketing.com. -sportshunter.eu. -argentinahistorica.com.ar. -agenbolaa.nuke.im. -112.219.86.186.in-addr.arpa. -blackvelvet.comastuff.com. -www.facebook.com. -188.250.78.74.in-addr.arpa. -chmail.tecan.com. -mail.carter.ru. -download115.avast.com. -a4.sphotos.ak.fbcdn.net. -mail.regtime-k.ru. -checkip.dyndns.org. -afe.specificclick.net. -mail1.sharafdg.com. -sar.ws.kaleidescape.com. -www.femeba.org.ar. -www.alarabiya.net. -a6.sphotos.ak.fbcdn.net. -www.wwfca.org. -16.118.51.190.in-addr.arpa. -204.50.35.89.in-addr.arpa. -_840_88_9. -mail.safeinformationgroup.com. -133.86.251.111.in-addr.arpa. -creative.ak.fbcdn.net. -a.root-servers.net. -abuelos-manchegos.blogspot.com. -photos-d.ak.fbcdn.net. -_883_36_4. -i.fr.imwx.com. -mail.digitalsunrise.com. -d2057300.instant.xoom.it. -bl59naigc.z55v2e6t. -search.pontofrio.com.br. -csi.gstatic.com. -reastructuralengineers.com. -193.187.240.82.in-addr.arpa. -googleads.g.doubleclick.net. -adm-druckmedien.de. -www.google.com. -i4.ytimg.com. -ads.yimg.com. -vp.sip.messenger.msn.com. -hitext.ru. -www.google-analytics.com. -creative.ak.fbcdn.net. -www.iegallery.com. -wpad. -wpad.hotspot. -s-static.ak.facebook.com. -fbcdn-sphotos-a.akamaihd.net. -181.223.155.189.in-addr.arpa. -camcor.ru. -fxfeeds.mozilla.com. -168.137.12.118.in-addr.arpa. -checkip.dyndns.org. -118.162.255.201.in-addr.arpa. -ocsp.thawte.com. -s-static.ak.fbcdn.net. -www.youtube.com. -www.webcamscaseras.info. -mail.ccli.co.uk. -vivalaleydeltemor.blogspot.com. -sites.google.com. -ns1.cafe24.com. -platform.twitter.com. -mailgateway.studiobana.it. -www.caughtpeeing.info. -static.ak.fbcdn.net. -106.89.161.113.in-addr.arpa. -www.y8.com. -rya.rockyou.com. -69.107.10.46.in-addr.arpa. -blog.mesmo.tv. -185.232.226.202.in-addr.arpa. -casa-italia.immobiliare.it. -www.facebook.com. -ec2-50-19-163-62.compute-1.amazonaws.com. -errors.jawaker.com. -kaplowe.com. -d2105488.xoom.it. -msn.com. -7.226.149.213.in-addr.arpa. -tc.v22.cache7.googlevideo.com. -173.69.204.130.in-addr.arpa. -www.ccchp-isys.edu.pa. -244.195.157.186.in-addr.arpa. -www.dvd-explorer.org. -photos-g.ak.fbcdn.net. -a.root-servers.net. -e4805.b.akamaiedge.net. -cnref.com.s5a1.psmtp.com. -safebrowsing.clients.google.com. -camera1.mairie-brest.fr. -api.oovoo.com. -kanto.machi.to. -accounts.google.com. -es.answers.yahoo.com. -ziafog.com. -237.210.132.189.in-addr.arpa. -gtamexico.com. -4:hdifftw.92vi. -46.234.94.190.in-addr.arpa. -i4.ytimg.com. -18.214.112.126.in-addr.arpa. -a.root-servers.net. -guiacinefila.com. -3.140.69.189.in-addr.arpa. -ftk.dk. -medienhaus.nuggad.net. -store.gcsis-apple.com.akadns.net. -_155_62_1. -apps.facebook.com. -73.85.168.192.in-addr.arpa. -www1.euro.dell-cidr.akadns.net. -www.facebook.com. -static.ak.fbcdn.net. -222.168.232.190.in-addr.arpa. -ecs.k12.ny.us. -www.socialgrowthtechnologies.com. -xxramneekxx.tumblr.com. -i2.ytimg.com. -95.177.102.201.in-addr.arpa. -a.root-servers.net. -protontech.com. -csi.web.aol.com. -connect.facebook.net. -a.root-servers.net. -c1.microsoft.com. -b.vimeocdn.com. -a4.sphotos.ak.fbcdn.net. -newsrss.bbc.co.uk. -125.197.172.199.in-addr.arpa. -laotramitadelaverdad.nixiweb.com. -safebrowsing-cache.google.com. -www.facebook.com. -mail.pycnogenol.com. -teredo.ipv6.microsoft.com. -es-la.facebook.com. -clients2.google.com. -q-love.ru. -www.fimkastore.com. -ejabat.google.com. -dns.msftncsi.com. -185.209.46.190.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -149.4.168.192.in-addr.arpa. -ad-g.doubleclick.net. -ddcm.wildtangent.com. -distritofederal.olx.com.mx. -www.thehairbowcompany.com. -www.wubisheng.cn. -www.google.com. -gatvolinoman.blogspot.com. -a.root-servers.net. -. -238.230.240.94.in-addr.arpa. -www.facebook.com. -a7.sphotos.ak.fbcdn.net. -assda.com. -shiva.grozny.ru. -genkienglish.net. -secure.shared.live.com. -seguros-automovil.mascoche.net. -victorianus.com. -74.244.253.190.in-addr.arpa. -banners2.hollywoodaffiliates.com. -protechnics.com. -www.scopemed.org. -blog.corporationwiki.com. -i3.ytimg.com. -244.83.144.187.in-addr.arpa. -simplelifecorp.com. -static.ak.fbcdn.net. -htdogs.ru. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -42.213.26.216.in-addr.arpa. -breakingmedia.com. -fxfeeds.mozilla.com. -gvnvbbpev.i51i0n3x. -goldliger.evplayer.com. -iklancoffee.blogspot.com. -safepages.com.s6a2.psmtp.com. -22.126.111.219.in-addr.arpa. -commsoft.net.s8a2.psmtp.com. -1xt1xik3b.65ct. -237.183.131.190.in-addr.arpa. -www.monitos.cl. -www.ratteb.com. -www.lifeinsurancechandigarh.com. -router.infolinks.com. -147.212.139.98.bl.spamcop.net. -us.f1814.mail.yahoo.com. -4.bp.blogspot.com. -kut258r94.o01u8a6r. -www.fhg.ladyboycandyshop.com. -bl163w.blu163.mail.live.com. -worldwildnessweb.blogspot.com. -crl.microsoft.com. -hipservice.live.com. -connect.facebook.net. -mail3.enorthfield.com. -www.bcrae.es. -dsn6.d.skype.net. -www.celebboutique.com. -a.root-servers.net. -photos-a.ak.fbcdn.net. -mail.walshalbert.com. -google.com. -ar.ika-world.com. -www.facebook.com. -a.root-servers.net. -www.facebook.com. -241.134.144.187.in-addr.arpa. -mail.spoon.org. -time.chttl.com.tw. -pedos.com.ar. -click2.info. -plusone.google.com. -fbcdn-profile-a.akamaihd.net. -apcarolinas.com. -51.210.21.201.in-addr.arpa. -photos-b.ak.fbcdn.net. -streetbundy.blogspot.com. -yibrq4rmn.d64l7j1y. -www.facebook.com. -139.0.181.189.in-addr.arpa. -215.84.156.187.in-addr.arpa. -js.revsci.net. -fr-talk.kakao.com. -nightside.ksl.com. -82.96.160.190.in-addr.arpa. -rss.cnn.com. -www.conocewordpress.com. -toolbarqueries.google.com. -www.investors.ups.com. -1991.com. -rwhois.net. -www.google.com. -www.google.com. -a.root-servers.net. -a.root-servers.net. -25-courier.push.apple.com. -mob.adwhirl.com. -ic.s1.qzone.qq.com. -profile.ak.fbcdn.net. -twitter.co. -l.yimg.com. -168.225.126.200.in-addr.arpa. -edge.quantserve.com. -activesync.hot.glbdns.microsoft.com. -www.google.com. -a4.mzstatic.com. -translate.google.com. -www.google.com. -plusone.google.com. -sp.cwfservice.net. -static.ak.fbcdn.net. -developers.facebook.com. -stitcheree.com. -feeds.101cookbooks.com. -ronacom.ru. -yaahooo.ru.lan. -vip.tracker.thepiratebay.org. -228.126.90.189.in-addr.arpa. -_440_07_5. -mx.answers.yahoo.com. -checkip.dyndns.com. -gdata.youtube.com. -photos-g.ak.fbcdn.net. -firstdatabank.com.s7a1.psmtp.com. -androidwallpaper.org. -basslake.com.s8a1.psmtp.com. -sites.vnuexhibitions.com. -ib.adnxs.com. -archive.wgnradio.com. -28-courier.push.apple.com. -entela.com. -ad.adnetwork.net. -123.94.232.190.in-addr.arpa. -android.clients.google.com. -www.e-ir.info. -www.perfectweb.ro. -time.windows.com. -del.icio.us. -2822.v.fwmrm.net. -180.63.25.83.in-addr.arpa. -www.streethandball.com. -sn127w.snt127.mail.live.com. -data.flurry.com. -sp.cwfservice.net. -www.google.com.mx. -teredo.ipv6.microsoft.com. -99.224.138.201.in-addr.arpa. -www.facebook.com. -www.google.com. -es.wikiquote.org. -a.root-servers.net. -dinamicasvivenciales.blogspot.com. -www.ipolitics360.com. -0.4403013.com. -static.ak.fbcdn.net. -a.root-servers.net. -profile.ak.fbcdn.net. -a.root-servers.net. -_622_01_9. -joesixpack.net. -gomortgageconcepts.com. -bcinnkeepers.com.mail1.psmtp.com. -michaelanthony.co.uk. -apis.google.com. -quieresadelgazar.tonykamo.com. -www.facebook.com. -55.218.180.180.in-addr.arpa. -before-and-after-pics.com. -63.141.129.189.in-addr.arpa. -96.105.248.201.in-addr.arpa. -efu.org.ua. -login.live.com. -www.youtube.com. -46.223.74.201.in-addr.arpa. -pankhurst.com. -www.facebook.com. -grannytubexxx.com. -66.34.213.194.in-addr.arpa. -gtp.ru. -a.root-servers.net. -denis.stalker.h3q.com. -mail. -73.236.178.186.in-addr.arpa. -dns.msftncsi.com. -34.9.157.187.in-addr.arpa. -g-ecx.images-amazon.com. -0-id-w.channel.facebook.com. -www.woolandthegang.com. -yahoo.com. -1.0.0.127.in-addr.arpa. -dm.ie.sogou.com. -www.google.com. -api.twitter.com. -tcadops.leshebdos.com. -www.monografias.com. -sbs-solicitors.co.uk. -8k8uznxyk.l61t7h0t. -googleads.g.doubleclick.net. -animeymanga4forever.foroactivo.com. -140.180.86.85.in-addr.arpa. -246.123.75.201.in-addr.arpa. -telemedia.com. -hcd-inc.com. -n18.8-d.com. -www.foroactivo.com. -215.212.28.189.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -redirector.aaanet.ru. -mwgxfzgzhyd40a47ltiqp22lygwnqcubvcy.biz. -7.52.162.189.in-addr.arpa. -im79.vk.com. -gmll.com. -p08-bookmarks.icloud.com. -www.facebook.com. -profile.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -members.dyndns.org. -dama-de-agua.blogspot.com. -teredo.ipv6.microsoft.com. -swalif.net. -20.50.169.118.in-addr.arpa. -peru.ahk.de. -csm.com. -kuf.biglobe.ne.jp. -encrypted-tbn0.google.com. -a.root-servers.net. -www.google.com. -wpad.belkin. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -70.172.74.187.in-addr.arpa. -developers.facebook.com. -_200_46_7. -www.16valvulas.com.ar. -col.stc.s-msn.com. -library.skillport.com. -236.207.14.187.in-addr.arpa. -www.allsaints.com. -safebrowsing.clients.google.com. -sites.google.com. -pixel.facebook.com. -101.153.138.187.in-addr.arpa. -ct5:4y9rs.48jf. -126.83.34.83.in-addr.arpa. -horoscopos.prodigy.msn.com. -www.historama.com. -150.177.90.2.in-addr.arpa. -ca-fr.norton.com. -www.unixmanga.com. -ad.adserverplus.com. -ad-g.doubleclick.net. -noemozica.files.wordpress.com. -www.facebook.com. -105.1.168.192.in-addr.arpa. -www.facebook.com. -s649.photobucket.com. -mup.asu.edu. -mail.firedog.cc. -74.250.145.187.in-addr.arpa. -ef.ewf. -colunistas.ig.com.br. -o.analytics.yahoo.com. -photos-b.ak.fbcdn.net. -img226.imagevenue.com. -grgfood.com. -a1325.phobos.apple.com. -mx.msn.recepedia.com. -160.66.114.190.in-addr.arpa. -ipv6.msftncsi.com. -srx.main.ebayrtm.com. -talking-tom-cat.softonic.fr. -standnow.org. -i4.ytimg.com. -www.radiomodelos.com.mx. -orientexpress.forumcommunity.net. -dnl-01.geo.kaspersky.com. -nextramail.hu. -192.152.29.70.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -webcache.googleusercontent.com. -sru.ru. -photos-b.ak.fbcdn.net. -236.175.14.189.in-addr.arpa. -www.smutdvds.com. -static.ak.facebook.com. -_662_98_2. -0-jj-w.channel.facebook.com. -multi.xnxx.com. -190.184.241.92.in-addr.arpa. -um10.eset.com. -wpad. -217.178.140.201.in-addr.arpa. -www.autoepc.net. -a.root-servers.net. -120.153.212.201.in-addr.arpa. -hightech-redneck.com. -www.shy-models.org. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -translate.google.com.mx. -acap.it. -108.90.90.84.in-addr.arpa. -hi5.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -24.233.35.177.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.vh1la.com. -ads.themxua.net. -aplisic.iese.edu. -creative.ak.fbcdn.net. -www.lasorquideashotel.com. -cn1.redswoosh.akadns.net. -mayaweb.upr.clu.edu. -69.71.66.184.in-addr.arpa. -wakmc.com. -mohawk-radio.com. -www.adbrite.com. -lapaz-bajacaliforniasur.olx.com.mx. -www.freeotoscript.com. -a.root-servers.net. -orttool.com.s7b2.psmtp.com. -photos-d.ak.fbcdn.net. -toolbarqueries.google.com. -_ldap._tcp. -nniline.naver.com. -api.facebook.com. -aspmx.l.google.com. -69.227.131.189.in-addr.arpa. -www.google.co. -www.youtube-nocookie.com. -photos-f.ak.fbcdn.net. -dnn506yrbagrg.cloudfront.net. -gdata.youtube.com. -goamtel.com. -swohio.twcbc.com. -187.16.161.189.in-addr.arpa. -i3.ytimg.com. -pixel.facebook.com. -179.82.231.189.in-addr.arpa. -api.twitter.com. -lasrecetasdesuli.blogspot.com. -www5.tranexp.com. -65.231.82.189.in-addr.arpa. -www.archive.org. -sourceforge.net.dnsbl7.mailshell.net. -img129.imageshack.us. -www.ambysoft.com. -monchyvariedadesenfieltro.blogspot.com. -photos-b.ak.fbcdn.net. -prod2.rest-notify.msg.yahoo.com. -a.root-servers.net. -66.153.175.190.in-addr.arpa. -si0.twimg.com. -khm0.google.com. -gmail.com. -167.6.217.87.in-addr.arpa. -metsco.com. -a5.sphotos.ak.fbcdn.net. -static.ak.connect.facebook.com. -developers.facebook.com. -196.72.75.201.in-addr.arpa. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -safebrowsing.clients.google.com. -api.twitter.com. -136.204.224.24.in-addr.arpa. -benning.army.mil. -horoscopos.euroresidentes.es. -sawdustmaking.com. -akitacopy.com. -i48.tinypic.com. -router.tlvmedia.com. -benkovitz.com. -a.root-servers.net. -apps.facebook.com. -205.168.57.186.in-addr.arpa. -158.17.11.186.in-addr.arpa. -img.babylon.com. -photos-a.ak.fbcdn.net. -85.43.24.189.in-addr.arpa. -45.166.171.201.in-addr.arpa. -clients1.google.com. -184.2.219.85.in-addr.arpa. -islambuddhism.com. -65.189.241.60.in-addr.arpa. -0sxx.com. -platform.twitter.com. -cm.g.doubleclick.net. -a.root-servers.net. -build.last.fm. -133.204.184.88.in-addr.arpa. -www.facebook.com. -34.31.93.200.in-addr.arpa. -131.97.161.189.in-addr.arpa. -concilioshekinah.org. -a.root-servers.net. -76.190.10.201.in-addr.arpa. -www.facebook.com. -mail.cs181.xqx.cn. -a8.sphotos.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -ranking-view-c01.u0.np.community.playstation.net. -fbcdn-photos-a.akamaihd.net. -41.162.171.200.in-addr.arpa. -golyon.com. -www.scrumalliance.org. -34.179.97.190.in-addr.arpa. -gfx1.hotmail.com. -a.root-servers.net. -www.cbsinteractive.com. -photos-d.ak.fbcdn.net. -142.149.41.71.in-addr.arpa. -photos-e.ak.fbcdn.net. -inbound.aabinc.net.netsolmail.net. -disneyworldforum.disney.go.com. -iappraise.com. -www.googleadservices.com. -up.rabe7.com. -www.funtal.com. -stankobank.ru. -images.scanalert.com. -ocsp.comodoca.com. -www.sqm.microsoft.com. -youtube-ui.l.google.com. -230.115.125.186.in-addr.arpa. -s3.buysellads.com. -austin.slcs.slb.com. -ksn6-12.kaspersky-labs.com. -205.224.117.42.in-addr.arpa. -lh6.ggpht.com. -www.googleadservices.com. -dj-nia.com. -a5.sphotos.ak.fbcdn.net. -broadband.cnet.com.au. -www.masquefutbol.com. -95.196.8.200.in-addr.arpa. -media.victoriassecret.com. -clients1.google.com. -essensualsasia.com. -www.christiansalerno.com. -www.statcounter.com. -yubless.org. -a7.sphotos.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -204.79.18.76.in-addr.arpa. -www.ticotimes.net. -www.actionsprite.com. -static.chartbeat.com. -aspmx.spamjadoo.com. -i4.ytimg.com. -fezgu.com. -www.sky4energy.com. -ps.palmws.com. -lkh-hoergas.at. -e-mails.ru. -spamassassin.idgcomm.com. -22.183.121.84.in-addr.arpa. -_086_72_7. -a1.sphotos.ak.fbcdn.net. -235.246.15.8.in-addr.arpa. -a.root-servers.net. -tebnfi.com. -200.78.132.189.in-addr.arpa. -zrein.artician.com. -a1.sphotos.ak.fbcdn.net. -developers.facebook.com. -search.vuze.com. -d2098724.xoom.it. -www.ripleysthailand.com. -azle.esc11.net. -www.monitor.net. -soulwire.co.uk. -www.facebook.com. -photos-e.ak.fbcdn.net. -terceracultura.cl. -bluepyramid.org. -gallery.sourceforge.net. -a749.g.akamai.net. -24.90.55.65.psbl.surriel.com. -cookex.amp.yahoo.com. -th-p14.talk.kakao.co.kr. -161.56.194.190.in-addr.arpa. -safebrowsing.cache.l.google.com. -connect.facebook.net. -candymania.com. -static.ak.fbcdn.net. -time.chttl.com.tw. -a1404.w41.akamai.net. -104.202.48.186.in-addr.arpa. -1212yahoo.com. -www.facebook.com. -3.242.18.177.in-addr.arpa. -ad.smowtion.com. -telstra.com. -reggaetrain.com. -www.upload2world.com. -search.4shared.com. -168.214.141.27.in-addr.arpa. -relianceengineers.com. -css.wlxrs.com. -twitter.com. -sp.cwfservice.net. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -www.basketball-bundesliga.de. -7.224.160.193.in-addr.arpa. -speedy.imo.im. -profile.ak.fbcdn.net. -izhauto.ru. -energuia.com. -nations.widmi.com. -83.190.209.201.in-addr.arpa. -www.facebook.com. -a6.sphotos.ak.fbcdn.net. -kalamullah.com. -246.187.159.189.in-addr.arpa. -s94.cnzz.com. -e3646.b.akamaiedge.net. -roband.com. -profile.ak.fbcdn.net. -61.232.39.187.in-addr.arpa. -s21.bitshare.com. -new.zveroforma.ru. -www.pinkmgp.com. -9.155.26.24.in-addr.arpa. -a4.da1.akamai.net. -pottermorewatch.tumblr.com. -imshop.com.ru. -pt-br.facebook.com. -9.192.20.81.in-addr.arpa. -resimail.beachfrontonline.com. -165.107.91.186.in-addr.arpa. -159.26.84.200.in-addr.arpa. -cdn.lfstmedia.com. -content.yieldmanager.edgesuite.net. -external.ak.fbcdn.net. -go.srvnow.com. -mail2.hoksve.com. -clients4.google.com. -external.ak.fbcdn.net. -www.inbursa.com.mx. -tacoda.at.atwola.com. -www.thestreet.com. -www.bighdesign.com. -mencey-al-mo.blogspot.com. -au.download.windowsupdate.com. -lanoire.wikia.com. -www.facebook.com. -m.ak.fbcdn.net. -74.90.123.189.in-addr.arpa. -i1.ytimg.com. -a7.sphotos.ak.fbcdn.net. -www.plusnetwork.com. -s1.tanoth.com.mx. -freudenberg-nw.com. -motorcyclephilippines.com. -img4.ask.fm. -www.facebook.com. -crl.verisign.net. -mail.navcanada.ca. -apis.google.com. -www.witchhut.com. -pop.180com.net. -breedclub.ru. -www13.0zz0.com. -droidsecurity.appspot.com. -g.microsoft.com. -js.wlxrs.com. -lists.xmission.com. -already.com. -. -_ldap._tcp. -115.158.115.140.in-addr.arpa. -runonce.msn.com. -intali.ru. -www.facebook.com. -www.oniichannoecchi.com. -40.36.162.189.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -datingtools.spacash.com. -images.hotnewnet.com. -59.238.31.161.in-addr.arpa. -c143528.memecenter.com. -206.108.252.201.in-addr.arpa. -158.144.112.212.in-addr.arpa. -img.imobiletube.com. -187.8.121.59.in-addr.arpa. -googleads.g.doubleclick.net. -test-rt.liftdna.com. -photos-b.ak.fbcdn.net. -239.202.8.200.in-addr.arpa. -smtp5.smart.com.ph. -eldoradofurniture.com. -www.unrisd.org. -player.radio.com. -138.120.65.217.in-addr.arpa. -translate.google.com.mx. -mail. -v14.nonxt2.c.youtube.com. -josemariomourinho.com. -www.entreprisescanada.ca. -www.lacoteimmo.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -js.wlxrs.com. -140.41.173.190.in-addr.arpa. -achusnetgolf.com. -www.visitehoteles.com. -eloff.net. -i2.ytimg.com. -www.bywifi.com. -ksn2-12.kaspersky-labs.com. -unlibroabierto.tumblr.com. -ad.yieldmanager.com. -175.30.188.190.in-addr.arpa. -pschmid.net. -0.gravatar.com. -vicentelopez0.tripod.com. -www.solarsolar.com.au. -www.apple.com. -partner.googleadservices.com. -www.gigisapparel.com. -docs.google.com. -images.scanalert.com. -telodigo.com. -stereosvit.ua. -profile.ak.fbcdn.net. -rcp.eu.blackberry.com. -www.carsmexico.com. -www.pubmedcentral.nih.gov. -static2.dmcdn.net. -d2.zedo.com. -checkip.dyndns.org. -photos-a.ak.fbcdn.net. -175.220.31.190.in-addr.arpa. -67.126.240.123.in-addr.arpa. -atyourcervix.blogspot.com. -safebrowsing.clients.google.com. -www.google.com. -husky.courant2.com. -tcp.sagepub.com. -correo.almacenes-si.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -ad.adnetwork.net. -12.104.20.190.in-addr.arpa. -graph.facebook.com. -toolbarqueries.google.com. -s-static.ak.facebook.com. -_247_17_2. -www3.zero-animation.net. -smretina.s3.amazonaws.com. -sevastopol.su. -hiphop-ejay.softonic.com. -i.imgur.com. -solucionesbook.blogspot.com. -ksn2-12.kaspersky-labs.com. -kr.ec21.com. -apps.facebook.com. -a749.g.akamai.net. -www.rapesin.com. -www.leopardtrek.lu. -a.root-servers.net. -bfbc2.gos.ea.com. -plus.google.com. -platform.ak.fbcdn.net. -developers.facebook.com. -243.77.47.24.in-addr.arpa. -234.8.55.157.in-addr.arpa. -tools.google.com. -stonesoft.com. -download.microsoft.com. -www.osl.no. -78.245.105.119.in-addr.arpa. -www.atbholidays.com. -sanmiguel.mundoanuncio.cr. -api.twitter.com. -ar-ar.facebook.com. -41.41.222.77.in-addr.arpa. -www.travian.com.mx. -dns.msftncsi.com. -strollinfield.com. -newsrss.bbc.co.uk. -r._dns-sd._udp.lan. -inf.sup.ru. -corazondepoeta.obolog.com. -api.twitter.com. -ec2-50-16-50-154.compute-1.amazonaws.com. -actsys.ru. -243.205.225.190.in-addr.arpa. -updatekeepalive.mcafee.com. -apis.google.com. -www.zmovie.tv. -text.lan. -www.softonic.com. -smtp.gs-development.com. -www.google.com. -mx1.kcnet.org. -36.23.90.186.in-addr.arpa. -www.morphuk.com. -sp.cwfservice.net. -31.3.69.189.in-addr.arpa. -global.ard.yahoo.com. -profile.ak.fbcdn.net. -i2.ytimg.com. -a.root-servers.net. -google.com. -www.iriver.com.au. -update.messenger.yahoo.com. -_537_69_1. -forbesbowman.com. -webmail-ru.bul.net. -w393jvnvr.t06l8i9s. -profile.ak.fbcdn.net. -www.kt.com. -sfiles.d1g.com. -www.doncellabeach.com. -comocrecer.netfirms.com. -30.211.27.194.in-addr.arpa. -163.248.53.201.in-addr.arpa. -enciclopedia.us.es. -static.ak.fbcdn.net. -ksn7-12.kaspersky-labs.com. -webimgs.bevnet.com. -pes6-club.pesgame.net. -zone20.hotwords.com.br. -95.155.23.186.in-addr.arpa. -mrbursnuclearplant.blogspot.com. -tima-xtreme.com. -nokia-maps.softonic.com. -v574.vkadre.ru. -in.penguingroup.com. -creaciones5semestre.blogspot.com. -51.68.238.189.in-addr.arpa. -lm.pcworld.com. -connect.facebook.net. -fbcdn-sphotos-a.akamaihd.net. -www.google.com. -s0.2mdn.net. -sp.cwfservice.net. -a.root-servers.net. -photos-b.ak.fbcdn.net. -20.228.171.69.in-addr.arpa. -mail-server.finist.ru. -g.msn.com. -148.32.134.188.in-addr.arpa. -ael77kwzk.72bj. -40.84.94.186.in-addr.arpa. -img38.imageshack.us. -a.root-servers.net. -platform.twitter.com. -www.youtube.com. -_945_63_1. -a.root-servers.net. -a.root-servers.net. -appframe.qq.com. -bbshtml.shangdu.com. -a.root-servers.net. -exquisesensualite.blogspot.com. -pt-br.facebook.com. -time.chttl.com.tw. -pagead2.googlesyndication.com. -e566.b.akamaiedge.net. -www.aggman.com. -s0.2mdn.net. -9.148.79.200.in-addr.arpa. -144.36.134.190.in-addr.arpa. -www.thenlpcompany.com. -cl.msn.com. -twitter.com. -www.arzaworld.com. -v2.cache7.c.youtube.com. -geo.tp-cdn.com. -ssl.gstatic.com. -apps.facebook.com. -e4805.b.akamaiedge.net. -dt1pibe7d.01el. -_453_58_7. -hfmlegal.com. -a-0.19-2309a081.c130083.1518.19d0.3ea1.210.0.sm6i6bzwl5spsqq1in31p8adb5.avqs.mcafee.com. -googleads.g.doubleclick.net. -static.ak.fbcdn.net. -h.atdmt.com. -meneame.wikispaces.com. -nudeisfashion.wordpress.com. -pixel.facebook.com. -edge.quantserve.com. -ajax.cloudflare.com. -vesteon.en.alibaba.com. -id.google.com. -132.241.94.190.in-addr.arpa. -112.120.43.190.in-addr.arpa. -www.mozilla.com. -time.chttl.com.tw. -twitter.com. -190.241.94.86.in-addr.arpa. -www.wwe.com. -www.untreueteens.com. -112.173.240.201.in-addr.arpa. -photos-a.ak.fbcdn.net. -www.johnsemper.com. -cranepsych.edublogs.org. -ib.adnxs.com. -kote983vh.12dj. -local-bay.contacts.msn.com. -www.archizines.com. -grijalva.house.gov. -pyzizzle.com. -tk2.greedland.net. -developers.facebook.com. -www.facebook.com. -b._dns-sd._udp.lan. -www.aapg.org. -us-ads.openx.net. -community.mtasa.com. -google.com. -boompa.ca. -photos-d.ak.fbcdn.net. -onevoicetech.com. -242.79.14.187.in-addr.arpa. -a2.mzstatic.com. -pixel.invitemedia.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -emkegroup.ae.s200a2.psmtp.com. -profile.ak.fbcdn.net. -eledoz.ru. -connect.facebook.net. -tap2-cdn.rubiconproject.com. -tools.google.com. -www.google-analytics.com. -vivendiwater.com. -ksn1-12-part1.kaspersky-labs.com. -s.youtube.com. -www.addthis.com. -26.195.135.66.in-addr.arpa. -mpp.cpii.com. -116.52.50.190.in-addr.arpa. -hotcd.ru. -animeid.com. -lesbians.ru. -tdy.prodigy.msn.com. -248.228.78.195.in-addr.arpa. -i4.ytimg.com. -a.root-servers.net. -www.blogger.com. -a.root-servers.net. -checkout1.gulfnews.com. -www.casapilo.es. -246.216.127.84.in-addr.arpa. -cdn.qbo.intuit.com. -www.update.microsoft.com. -teredo.ipv6.microsoft.com. -a6.sphotos.ak.fbcdn.net. -armmf.adobe.com. -a.root-servers.net. -www.automobilesnews.com. -tinypic.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -s2.youtube.com. -login.live.com. -a5.sphotos.ak.fbcdn.net. -servicemap.conduit-services.com. -tetercon.com. -s.youtube.com. -mx3.mail.buffalo.edu. -a.root-servers.net. -sewintriguing.blogspot.com. -careers.herbertsmith.com. -idpfilm.com.s7a1.psmtp.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -dcsbiz.com. -_ldap._tcp. -www.cpxadspace.com. -api.facebook.com. -a1.sphotos.ak.fbcdn.net. -kina.net. -time.stdtime.gov.tw. -www.facebook.com. -ghostscript.cvs.sourceforge.net. -. -checkip.dyndns.org. -245.2.139.187.in-addr.arpa. -s-tet.ru. -116.192.38.24.in-addr.arpa. -tenibacgraphion-com.relay1a.spamh.com. -mail.armoremont.ru. -t2.gstatic.com. -www.w3.org. -googleads.g.doubleclick.net. -photos-h.ak.fbcdn.net. -forums.cnet.com. -www.masaat.com. -photos-d.ak.fbcdn.net. -www.peliculas-flv.com. -thefrogseyebrows.blogspot.com. -51.236.74.201.in-addr.arpa. -bin-short.whatsapp.net. -ikekox.net. -www.aada.org.ar. -web-zc1.cityville.zynga.com. -130.70.30.177.in-addr.arpa. -no.travellerspoint.com. -distilleryimage9.s3.amazonaws.com. -medicina-primitiva.blogspot.com. -_ldap._tcp. -mail.harrybrowns.com. -30-courier.push.apple.com. -download116.avast.com. -www.reydelospernos.cl. -mail.nysaver.com. -94.98.29.186.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -_898_44_9. -cbi-interiors.com. -18-wheels-of-steel-extreme-trucker.en.softonic.com. -s2.youtube.com. -artegiron.com. -msgr.zenfs.com. -teredo.ipv6.microsoft.com. -127.242.97.2.in-addr.arpa. -photos-a.ak.fbcdn.net. -interactbp.com.s8b2.psmtp.com. -crl.verisign.com. -ceptoplist.com. -www.bestbuy.com.mx. -s4i.histats.com. -startv.mncdn.net. -isco.co.jp. -a6.sphotos.ak.fbcdn.net. -lasletrasmudas.com. -www.deliciousvinyl.com. -48.107.242.189.in-addr.arpa. -www.zynga.com. -photos-a.ak.fbcdn.net. -vms.msn.com. -www.release.fr. -static.ak.fbcdn.net. -e5237.g.akamaiedge.net. -video.msnbc.msn.com. -gdata.youtube.com. -www.alnetsito.blogspot.com. -37.223.127.201.in-addr.arpa. -mhome.live.com. -dev.galleries.aebn.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -accounts.google.com. -140.69.64.177.in-addr.arpa. -74.79.178.190.in-addr.arpa. -developers.facebook.com. -cdn.mediafire.com. -creative.ak.fbcdn.net. -sp.cwfservice.net. -jsrails.timeinc.net. -254.82.130.189.in-addr.arpa. -toscasatope.foro-espana.es. -four-seasons-sunrooms.com.s7a2.psmtp.com. -fr-fr.facebook.com. -mail.florant.ru. -spinworks.net. -nbcpolitics.msnbc.msn.com. -photos-g.ak.fbcdn.net. -knoll.com.mail12.psmtp.com. -www.baulsoft.com. -cs10558.vkontakte.ru. -img507.imageshack.us. -it-it.facebook.com. -www.google-analytics.com. -geo.tp-cdn.com. -196.101.152.201.in-addr.arpa. -dns.msftncsi.com. -sb-ssl.google.com. -108.251.202.68.in-addr.arpa. -29.221.141.201.in-addr.arpa. -with-heart-and-hands.blogspot.com. -oleg.lgg.ru. -235.30.178.190.in-addr.arpa. -sp.cwfservice.net. -www.gstatic.com. -privatemx.de. -www.facebook.com. -1s2qvh91x.site.aplus.net. -photos-a.ak.fbcdn.net. -connect.facebook.net. -www.michaelpage.es. -pki.dimc.dhs.gov. -195.36.73.190.in-addr.arpa. -i2.ytimg.com. -translate.googleapis.com. -www.musica21.net. -media.admob.com. -1.bp.blogspot.com. -mail.ag-is.com. -photos-e.ak.fbcdn.net. -www.musicalion.com. -ad.yieldmanager.com. -a.root-servers.net. -v5stats.windowsupdate.microsoft.com. -a8.sphotos.ak.fbcdn.net. -google.com. -scholarshipfor.info. -1314.qq.com. -static.ak.fbcdn.net. -westlakefg.com. -kosa.baikal.ru. -a.root-servers.net. -wepales.subcultura.es. -crl.godaddy.com. -echonest.com. -dns.msftncsi.com. -image.tx.redbox.com. -cpibeta.com. -srv.main.ebayrtm.com. -www.inmigracionmasiva.com. -sp.cwfservice.net. -services.conduit.com. -www.canalesya.com. -moderngrip.ru. -a.root-servers.net. -aeropostale.com. -photos-g.ak.fbcdn.net. -static.ak.fbcdn.net. -www.hulkshare.com. -photos-g.ak.fbcdn.net. -a.root-servers.net. -photos-a.ak.fbcdn.net. -macrogroup.com. -a5.sphotos.ak.fbcdn.net. -tracker.keyscore.com. -teredo.ipv6.microsoft.com. -0.11-a30f1071.40081.1518.18a4.3ea1.210.0.kn9e331jip5d71gr69pjl3h56t.avqs.mcafee.com. -111.127.123.189.in-addr.arpa. -pixel.facebook.com. -delta. -sp.cwfservice.net. -www.aspiremag.net. -miencarnacion.blogspot.com. -limeodyssey.aeriagames.com. -www.belkin.com. -a.root-servers.net. -plusone.google.com. -mail.doctormortgage.com. -www.private2atp.com. -www.googleadservices.com. -poemasdelpurgatorio.blogspot.com. -eckstein-audit.ru. -ce.lijit.com. -reviews.latam.kaspersky.com. -cdn82.atkingdom-network.com. -www.continental.com.ar. -rakeandback.ru. -papyrefb2.net. -hornecpa.com. -231.254.168.192.in-addr.arpa. -e4414.b.akamaiedge.net. -a3.sphotos.ak.fbcdn.net. -www.explorergirls.com. -google.com. -www.mobilizacaocontramalaria.org.br. -timesaversmed.com. -ssl.gstatic.com. -157.80.102.201.in-addr.arpa. -i4.tagstat.com. -112.79.186.189.in-addr.arpa. -backroads.net. -bin-short.whatsapp.net. -aidps.atdmt.com. -liveperson.com. -inbound.orionires.com.netsolmail.net. -render.talk4free.com. -css.wlxrs.com. -165.175.230.201.in-addr.arpa. -mail.bakerbonnigson.com. -ds.addthis.com. -avimex.ru. -www.juegosdepacman.com. -www.sharpbyte.net. -t1.gstatic.com. -legalterms.cbsinteractive.com. -67.16.57.186.in-addr.arpa. -www.mandco.com. -7ria5s3ix.u00w0o7d. -smtp2.nwths.com. -api.facebook.com. -mts.silvinit.ru. -ad.xtendmedia.com. -a.root-servers.net. -. -www.elgrandesconocido.es. -210.174.252.201.in-addr.arpa. -docs.google.com. -www.steadywebs.com. -234.70.90.200.in-addr.arpa. -126.26.88.87.in-addr.arpa. -a.root-servers.net. -www.windows7library.com. -rcp2.us.blackberry.com. -garden.ebay.com. -bits.wikimedia.org. -hippoinbox.com. -d2096563.xoom.it. -go.srvnow.com. -www.wemadethis.co.uk. -surbc.ru. -www.facebook.com. -asiaintheheart.blogspot.com. -www.speedsupplies.com. -a.root-servers.net. -www.websitestatscounter.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -developers.facebook.com. -google.com. -openreach.com. -moellendorf.com. -88.75.55.50.in-addr.arpa. -apacs3000.ru. -www.modernwarfare3forum.com. -feeds.mydtzone.com. -cf2.msn.com. -view.atdmt.com. -tick.stdtime.gov.tw. -tv.seoul.co.kr. -196.234.39.190.in-addr.arpa. -11.25.83.189.in-addr.arpa. -cdn.g.promosrv.com. -dns.msftncsi.com. -71.104.18.186.in-addr.arpa. -js.admeld.com. -mail.s360-1.charter-business.net. -www.civilica.com. -mail1.adax.com. -profile.ak.fbcdn.net. -mailin-01.mx.aol.com. -www.copib.es. -243.118.54.95.in-addr.arpa. -i1.ytimg.com. -zeus.ccu.umich.mx. -a.root-servers.net. -6135.7370686f746f73.616b.666263646e.6e6574.80h41c5f429.webcfs00.com. -www.citi.com. -55.199.148.159.in-addr.arpa. -cdn.nextcenturyproductions.com. -mobilemaps.clients.google.com. -103.120.54.86.cbl.abuseat.org. -0-jg-w.channel.facebook.com. -www.spainthenandnow.com. -www.retailonlineintegration.com. -a8.sphotos.ak.fbcdn.net. -webcache.googleusercontent.com. -vjf.com. -www.myhomedeco.com. -api-public.addthis.com. -msgr.updates.yahoo.com. -www.google-analytics.com. -a7.sphotos.ak.fbcdn.net. -www.badassjv.com. -mexicotop.com. -3pb4d3ci5.03sh. -www.wdr2.de. -178.228.37.178.in-addr.arpa. -mobilecom.gmarket.co.kr. -a.root-servers.net. -60.29.42.83.in-addr.arpa. -www.google.com. -lh3.ggpht.com. -ssl.gstatic.com. -www.amervets.com. -aapt.net.au. -ads.yimg.com. -76.150.149.187.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -www.gstatic.com. -mail.skanska.co.uk. -christina.com. -u3gkf7ab4.c47m3r8i. -v99apuynw.75ow. -flavioluccisano.cghub.com. -136.78.78.201.in-addr.arpa. -www.facebook.com. -google.com. -code.jquery.com. -a.root-servers.net. -ar-ar.facebook.com. -best-tattoo.gnug.us. -206.33.174.118.in-addr.arpa. -creative.ak.fbcdn.net. -115.195.194.14.in-addr.arpa. -bsgsearch.com. -cx.sts.ru. -207.123.92.186.in-addr.arpa. -24.249.163.90.in-addr.arpa. -a.root-servers.net. -www.gleason.com. -geoiplookup.wikimedia.org. -kisul.wordpress.com. -ad-g.doubleclick.net. -conntest.nintendowifi.net. -scopeo.usal.es. -unifi. -www.jovencitasa9euros.com. -www.blogmisterios.com. -www2.whitney36dd.com. -wiesnergroup.com. -83.34.105.187.in-addr.arpa. -ns1.networklayer.com. -es-la.facebook.com. -teredo.ipv6.microsoft.com. -www.cafepress.com. -groups.google.com.mx. -a.root-servers.net. -www.asslickingmovies.net. -30.21.185.203.in-addr.arpa. -bmgcontracting.com. -cinci.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -talkingblocks.com. -fei9988.3322.org. -187.91.87.108.in-addr.arpa. -support.maktoob.com. -inbound.ashburngroup.com.netsolmail.net. -202.94.223.201.in-addr.arpa. -i1.ytimg.com. -62.232.191.186.in-addr.arpa. -www.bigfoot4x4.com. -pagead2.googlesyndication.com. -census.pewsocialtrends.org. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -creative.ak.fbcdn.net. -time.chttl.com.tw. -134.171.140.67.in-addr.arpa. -scottbarnes.com. -168.205.250.111.in-addr.arpa. -emediawire.com. -p07-contacts.icloud.com. -exk7oqy5r.35tz. -vipmutrpx001.tf1.fr. -www.dico-definitions.com. -rss.elmundo.es. -mail.fstar.ru. -www.facebook.com. -comercial-lonco.blogspot.com. -denis.stalker.h3q.com. -moneycentral.msn.com. -118.228.113.217.in-addr.arpa. -fr-fr.facebook.com. -i.ytimg.com. -orcart.facebook.com. -captainsof.com. -www.iglesiabautistalagrancomision.com. -123.82.0.190.in-addr.arpa. -itunes.apple.com. -224799.mimejorfrase2.info. -213.139.176.190.in-addr.arpa. -a1007.w43.akamai.net. -mx.lumisys.com. -117.247.1.181.in-addr.arpa. -1.173.75.201.in-addr.arpa. -fsarria.blogspot.com. -www.quotesarena.com. -pr.prchecker.info. -kultmetro.ru. -txu.ed.com. -translate.google.com. -geraxzz.blogspot.com. -shared.live.com. -pop.bogor.net. -9.223.170.201.in-addr.arpa. -www.adobe.com. -www.municipios.com.mx. -a3.sphotos.ak.fbcdn.net. -www.charlottemagazine.com. -185.132.91.76.in-addr.arpa. -58.104.44.187.in-addr.arpa. -stockindesign.com. -plus.google.com. -photos-d.ak.fbcdn.net. -www.qaronline.org. -dns.msftncsi.com. -triplesphilippines.blogspot.com. -162.86.54.189.in-addr.arpa. -141.138.193.173.in-addr.arpa. -www.blueaquarium.org. -smx.twinwest.com.redcondor.net. -ct.metrocast.net. -pagead2.googlesyndication.com. -gruporenacer.wordpress.com. -195.23.75.201.in-addr.arpa. -ss3.videosz.com. -click.infospace.com. -r12.lhr14g01.c.youtube.com. -a.root-servers.net. -r._dns-sd._udp.lan. -pop.toserbayogya.com. -www.ihsi.ht. -rg-ap.ru. -i-0.19-a30e0079.83.1518.19d4.3ea1.210.0.b8mvqdmsdsnmq1gtzs9ushe89q.avqs.mcafee.com. -a.root-servers.net. -s-static.ak.fbcdn.net. -a1267.phobos.apple.com. -dns.msftncsi.com. -s-static.ak.fbcdn.net. -_594_18_3. -c.msn.com. -likesfb.net. -csi-las-vegas.seriespepito.com. -dns.msftncsi.com. -books.elsevier.com. -static.ak.fbcdn.net. -mymail.scc-fl.edu. -apis.google.com. -47.175.54.189.in-addr.arpa. -secure-au.imrworldwide.com. -a.root-servers.net. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -lagaleriadelkuxo.blogspot.com. -static.dealply.com. -20.133.29.77.in-addr.arpa. -72.219.160.189.in-addr.arpa. -hirecounsel.com.s5b2.psmtp.com. -108.65.122.187.in-addr.arpa. -blog.python.org. -chat.facebook.com. -a1404.w41.akamai.net. -time.chttl.com.tw. -www.sulis.net. -163.14.185.187.in-addr.arpa. -5.62.242.99.in-addr.arpa. -122.63.113.186.in-addr.arpa. -apps.facebook.com. -0.gravatar.com. -231.68.166.190.in-addr.arpa. -www.google.com. -www.fastfivemovie.com. -mail.live.com. -developers.facebook.com. -www.facebook.com. -accfle.nl. -ntp.glb.nist.gov. -a.root-servers.net. -tags.bluekai.com. -nemesis.1337x.org. -91.229.159.190.in-addr.arpa. -67.147.58.186.in-addr.arpa. -s.ytimg.com. -static.hqtubexxx.com. -www.youyube.com. -peisys.net. -ssl.google-analytics.com. -. -edge.quantserve.com. -platform0.twitter.com. -166.171.107.186.in-addr.arpa. -imk.es. -i.gismeteo.com. -photos-a.ak.fbcdn.net. -249.225.151.68.in-addr.arpa. -239.82.220.189.in-addr.arpa. -au.download.windowsupdate.com. -profile.ak.fbcdn.net. -config.conduitapps.com. -48.112.219.81.in-addr.arpa. -urs.microsoft.com. -apis.google.com. -118.69.105.190.in-addr.arpa. -209.159.125.124.in-addr.arpa. -snowcrst.net. -22.123.210.112.in-addr.arpa. -naughtyamericans.com. -a2.sphotos.ak.fbcdn.net. -rvwc.com. -131.232.42.177.in-addr.arpa. -105.191.82.190.in-addr.arpa. -182.243.178.186.in-addr.arpa. -livecams.vol.at. -localhost. -micaela-thesims3.blogspot.com. -profile.ak.fbcdn.net. -124.127.122.70.in-addr.arpa. -176.165.178.190.in-addr.arpa. -vn-media.s3.amazonaws.com. -msk.rusmarine.ru. -mail.blackseek.com. -a2.sphotos.ak.fbcdn.net. -es-es.facebook.com. -mediaoutletonline.com. -7.87.128.78.in-addr.arpa. -oktopod.ru. -www.lasrecetasdecocina.com. -data.mobclix.com. -catemaco.info. -m.dk.pp.ru. -blogs.ligasilverlight.com. -b._dns-sd._udp.lan. -safebrowsing-cache.google.com. -webmail1.cps.k12.va.us. -img851.imageshack.us. -xsltcache.alexa.com. -profile.ak.fbcdn.net. -forums.toshiba.com. -a.root-servers.net. -dealhojaye.rediff.com. -112.132.246.201.in-addr.arpa. -autos.trovit.com.mx. -www.pocketpcmag.com. -a.root-servers.net. -profile.ak.fbcdn.net. -skins.gmodules.com. -mx.elementstore.ru. -www.natate.org. -caseworkltd.com.s8b2.psmtp.com. -mail.live.com. -js.wlxrs.com. -u20.eset.com. -photos-b.ak.fbcdn.net. -widgets.twimg.com. -a.root-servers.net. -thewhir.com. -www.youtube.com. -concordia-ny.edu. -email-mx.baypointcorp.com. -b._dns-sd._udp.lan. -www.horsepowerfreaks.com. -albaraqi.net. -certrevoc.vo.msecnd.net. -49.75.4.189.in-addr.arpa. -g.ceipmsn.com. -204.1.65.177.in-addr.arpa. -224.71.209.201.in-addr.arpa. -www.tilannehuone.fi. -v6.nonxt3.c.youtube.com. -governor.state.al.us. -www.goojue.com. -apple.com. -storage.conduit.com. -176.11.185.72.in-addr.arpa. -euro.mediotiempo.com. -36.222.113.186.in-addr.arpa. -mx2.r-kh.ru. -a8.sphotos.ak.fbcdn.net. -toolbarqueries.google.com. -yahoo.com. -i4.ytimg.com. -ad.doubleclick.net. -photos-d.ak.fbcdn.net. -toolbar.live.com. -a.root-servers.net. -sellstatenj.net. -u01.gate01.com. -creative.ak.fbcdn.net. -yqeycyvfc.05zr. -alltherage4u.blogspot.com. -www.beatmybox.com. -ad.auditude.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -p0b.ru. -photos-f.ak.fbcdn.net. -a5.sphotos.ak.fbcdn.net. -euqvuzvufyvmssxg.com. -blekko.com. -flashresults.com. -www.gatovolador.net. -photos-a.ak.fbcdn.net. -crest.tudou.com. -a.root-servers.net. -www.youtube.com. -www.iplay.com.br. -finance.my.freeze.com. -oimg.nbcuni.com. -safebrowsing-cache.google.com. -zgfma1t88.11mz. -ssl.gstatic.com. -profile.ak.fbcdn.net. -ingdirect.com.au. -com-fallback.pandonetworks.com. -81.10.168.192.in-addr.arpa. -payload8.cargocollective.com. -tile24.mqcdn.com. -relay.vostok-invest.ru. -69.164.156.82.in-addr.arpa. -apk-prioritet.ru. -static01.olx-st.com. -www.casakeim.cl. -dmail.cobaltgroup.com. -www.productiveramadan.com. -js.wlxrs.com. -ticketmaster.com.mx. -download338.avast.com. -www.facebook.com. -byfiles.storage.msn.com. -www.testfreaks.com.pt. -www.facebook.com. -b-0.19-a309c009.8020580.1518.19d4.3ea1.410.0.kp16q82qf2989s62frjgvpw4pj.avqs.mcafee.com. -83.98.200.88.in-addr.arpa. -31.73.35.186.in-addr.arpa. -pamjeshqiptare.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -mx.sincrono.it. -a-0.19-21097081.d010583.1518.19d4.2f4a.210.0.qzzi6qttfmt4136j9flfm6aq7j.avqs.mcafee.com. -mail.verizon.net. -www.therioruminant.ulg.ac.be. -www.nvnet.org. -rs854dt.rapidshare.com. -178.87.204.187.in-addr.arpa. -gwde2.linde.com. -a749.g.akamai.net. -www.onyxcollection.com. -veracruz.campusanuncios.com.mx. -55.245.179.190.in-addr.arpa. -creativecommons.org. -24.117.60.78.in-addr.arpa. -mail.yahoo.com. -rt-soft.ru. -www.gameportal.net. -mail.sembutilities.co.uk. -pixel.facebook.com. -204.195.50.99.in-addr.arpa. -www.danniesdesigns.com. -s0.wp.com. -www.gstatic.com. -tourblackstone.com. -www.fastbooking.co.uk. -plus.google.com. -unilever.com. -plus.google.com. -static.ak.fbcdn.net. -www.tfg.com. -www.facebook.com. -google.com. -117.203.26.80.in-addr.arpa. -www.extremetube.com. -fbcdn-photos-a.akamaihd.net. -cgi.una.ac.cr. -profile.ak.fbcdn.net. -www.metacafe.com. -www.youtube.com. -heartbeat.belkin.com. -a5.sphotos.ak.fbcdn.net. -i1.ytimg.com. -v17.nonxt8.c.pack.google.com. -cdn1.inner-active.mobi. -s440.photobucket.com. -genderoutlaw.wordpress.com. -bserver.npfszma.ru. -www.gstatic.com. -141.47.79.189.in-addr.arpa. -ccb.edu.co. -aprenspan.blogspot.com. -138.39.86.186.in-addr.arpa. -i2.ytimg.com. -twenty04.com. -43.101.140.187.in-addr.arpa. -94.55.237.80.in-addr.arpa. -116.231.240.189.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -profile.ak.fbcdn.net. -evrophone.ru. -mail.collisiononwheels.com. -hfry3pd5s.12dl. -thehospital.bligoo.com. -a8.sphotos.ak.fbcdn.net. -ubuvepyn.etcampaigns.com. -innovationliving.com. -cdn.tynt.com. -us.js.yimg.com. -scholar.google.com. -fr.astrology.yahoo.com. -_918_80_5. -clients2.google.com. -38.101.0.123.in-addr.arpa. -79.206.22.71.in-addr.arpa. -83.65.72.189.in-addr.arpa. -i4.ytimg.com. -bauerpublishing.sl.advertising.com. -hitsports.info. -photos-a.ak.fbcdn.net. -www-google-analytics.l.google.com. -www.videoweed.es. -sn1msg3020306.sn1.gateway.edge.messenger.live.com. -. -www.google.com. -www.google.com. -videotron.ca. -35.10.168.192.in-addr.arpa. -_ldap._tcp. -www.google-analytics.com. -i1.ytimg.com. -a4.sphotos.ak.fbcdn.net. -205.37.97.190.in-addr.arpa. -emout11.mail.aol.com. -www.fontifier.com. -semeini.ru. -www.livejasmin.com. -darkenedcultuszepharis2.blogspot.com. -230.141.153.201.in-addr.arpa. -. -mail.mpe.lv. -26.161.7.58.in-addr.arpa. -www.justintimberlake.com. -scpet.net. -he.y8.com. -cs575.vk.com. -s.youtube.com. -best-toys-for-toddler.blogspot.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -images.thalia.de. -167.207.83.189.in-addr.arpa. -static.ak.fbcdn.net. -www.solarturbines.com. -t1.gstatic.com. -search.ewebse.com. -bs.serving-sys.com. -ceradyne.com.s9a1.psmtp.com. -x83xxsyua.i29u4v6u. -plus.google.com. -sterh.ru. -uu4371ywt.14ip. -dns.msftncsi.com. -138.155.211.189.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -etas.us.s201a1.psmtp.com. -csi.gstatic.com. -tobolsk.info. -88.159.147.49.in-addr.arpa. -86.41.53.186.in-addr.arpa. -sanjudastadeo.foroactivo.com. -b.scorecardresearch.com. -www.touchmymelons.com. -content.yieldmanager.edgesuite.net. -www.topcatcomputing.com. -pixel.facebook.com. -ksn1-11-part1.kaspersky-labs.com. -tic.sepdf.gob.mx. -www.youtube.com. -avis-moscow.ru. -mclean.k12.ky.us. -attglobal.com.lan. -gateway.messenger.hotmail.com. -9gag.com. -174.1.168.192.in-addr.arpa. -mail.ezcorp.com. -www.vuelos-sevilla.es. -hemeroteca.elimparcial.es. -s.ytimg.com. -www.usajordanshops.com. -secure.wlxrs.com. -smtp.abelia.ocn.ne.jp. -www.amazon.com. -buttholesandtoys.blogspot.com. -www-open-opensocial.googleusercontent.com. -gmx.gameduell.de. -bugnbird.com. -lxzh2wjil.r69b3e6k. -a771.da1.akamai.net. -www.motorsportinsurance.com.au. -reckittcolman.com. -www.gamert.nl. -mx.lomsys.net. -www.mab.com.au. -107.66.43.62.in-addr.arpa. -a.root-servers.net. -photos-h.ak.fbcdn.net. -imtgapp.com. -a.root-servers.net. -silverlight.dlservice.microsoft.com. -static.ak.fbcdn.net. -144.5.134.187.in-addr.arpa. -www.aerochambervhc.com. -ads.intergi.com. -static.panoramio.com. -_315_80_9. -awesomebarnhart.wordpress.com. -ads1.msads.net. -any-fam.data.fy2.b.yahoo.com. -m.addthisedge.com. -consalting-secrets.ru. -88.136.25.114.in-addr.arpa. -safebrowsing-cache.google.com. -data.mobclix.com. -a1408.w43.akamai.net. -a.root-servers.net. -40.128.163.189.in-addr.arpa. -hotmailhot.com. -91.156.205.66.in-addr.arpa. -photos-b.ak.fbcdn.net. -www.google.com. -teredo.ipv6.microsoft.com. -eth0. -a7.sphotos.ak.fbcdn.net. -trophy.ww.np.community.playstation.net. -177.228.197.46.in-addr.arpa. -xslt.alexa.com. -a3.sphotos.ak.fbcdn.net. -i2.ytimg.com. -www.audionur.com. -83.210.73.69.in-addr.arpa. -searchjs.s3.amazonaws.com. -ct57f4z9b.07tb. -help.social.ea.com. -f21.360tag.com. -www.care-et-entreprise.eu. -www.macos.utah.edu. -www.wwe.com. -thematchettgroup.com. -a.root-servers.net. -hotmail.com. -apis.google.com. -ftp.lug.ro. -i1av:1uho.46nq. -3.139.159.94.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -www.google.com. -a.root-servers.net. -pfchre.co.zw. -order.store.yahoo.net. -photos-a.ak.fbcdn.net. -mail.znaki-pr.ru. -177.103.222.189.in-addr.arpa. -svpeds.net. -www.kvministries.com. -bkktonight.com. -www.circiruj.edilaser.net. -72.30.229.189.in-addr.arpa. -yojuegomagic.blogspot.com. -shops.oscommerce.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -celebsforsale.files.wordpress.com. -aixnet.com. -www.fullpelis.com. -ds.addthis.com. -i3.ytimg.com. -zbar2.zynga.com. -profile.ak.fbcdn.net. -113.203.237.81.in-addr.arpa. -cwcapital.com. -aladas-palabras.blogspot.com. -204.225.195.187.in-addr.arpa. -mxcluster2.tieto.com. -sp.cwfservice.net. -zm17aos3a.l15o7t7n. -content.gamezer.com. -content.yieldmanager.edgesuite.net. -hi-in.facebook.com. -97e1e8g68.e44h6x0w. -http://google.com/. -www.welovehappy.com. -akamai.invitemedia.com. -edge.quantserve.com. -clients1.google.com. -a8.sphotos.ak.fbcdn.net. -www.giving.ox.ac.uk. -entrevistas.sport.es. -www.position-monitoring.de. -s.ytimg.com. -lhospitalarias.com. -114.35.121.91.in-addr.arpa. -login.yahoo.com. -apis.google.com. -del.icio.us. -www.male-sexual-dysfunction.com. -infomanspec.com. -wwwimages.adobe.com. -teredo.ipv6.microsoft.com. -a.root-servers.net. -img59.imageshack.us. -pixel.facebook.com. -9.178.51.190.in-addr.arpa. -dns.msftncsi.com. -photos-c.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -5e2neyv9u.h79b0j1h. -11.8.43.200.in-addr.arpa. -242.26.231.201.in-addr.arpa. -noticias.prodigy.msn.com. -blogs.elcomercio.pe. -cdn.applifier.com. -www.paisajeculturalcafetero.org.co. -17.242.58.83.in-addr.arpa. -plusone.google.com. -a-0.19-22098081.c0c0083.1518.19b2.410a.400.9d.qfptcsf437v6s7kaak2qs267pq.avqs.mcafee.com. -nxcache.nexon.net. -instagram.com. -www.imdb.com. -cdn1.techbang.com.tw. -138.211.112.204.in-addr.arpa. -plus.google.com. -relay.voice.messenger.msn.com. -mail.riverbluff.com. -188.85.61.174.in-addr.arpa. -www.komputronik.pl. -a5.sphotos.ak.fbcdn.net. -85.112.86.188.in-addr.arpa. -stud.hib.no. -mx.jobrapido.com. -static.ak.fbcdn.net. -vsofte.ru. -www.google.com. -15eb7bh0.aime5.eu. -checkip.dyndns.org. -landmarkcu.com. -a5e327c6.linkbucks.com. -188.177.249.115.in-addr.arpa. -www.facebook.com. -232.61.168.192.in-addr.arpa. -www.factoriadoson.com. -243.154.48.190.in-addr.arpa. -96.171.158.200.in-addr.arpa. -thumbs4.ebaystatic.com. -clubs-kids.scholastic.co.uk. -240.219.60.151.in-addr.arpa. -apis.google.com. -www.compumundo.com.ar. -a1.sphotos.ak.fbcdn.net. -mx3.hotmail.com. -www.cdl55.com. -nko88bgkb.t19z7h1t. -a.root-servers.net. -photos-d.ak.fbcdn.net. -23k938zvm.k99d2w7z. -198.225.23.186.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -www.mobile-free-calls.blogspot.com. -94.220.227.71.in-addr.arpa. -www.google.com. -mail.atlasswitch.com. -www.google-analytics.com. -cox.net. -firsthomemortgage.com. -babader.com. -creative.ak.fbcdn.net. -103.250.131.187.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -227.131.141.190.in-addr.arpa. -pixel.quantserve.com. -myperfectgame.ru. -choose-happiness.com.au. -186.95.173.90.in-addr.arpa. -static.ak.fbcdn.net. -www.revistabuenasalud.com. -www.unidad094.upn.mx. -31.120.110.175.in-addr.arpa. -troi.csw.net. -222.120.40.177.in-addr.arpa. -crary.com.s8b1.psmtp.com. -photos-h.ak.fbcdn.net. -ads.clicksor.com. -ads.sonobi.com. -gajigratis.com. -a.root-servers.net. -www.conduit.com. -mobileeurope.co.uk. -api.digitalhomeservices.yahoo.com. -ssl.gstatic.com. -gardenvariety.com. -photos-b.ak.fbcdn.net. -kamiahproperties.com. -a7.sphotos.ak.fbcdn.net. -173.135.26.174.in-addr.arpa. -google.com. -accounts.google.com. -a1007.w43.akamai.net. -msc.wlxrs.com. -fotografiska.eu. -mail.jsprinting.com. -topshop.chtah.com. -static.ak.fbcdn.net. -www.insuagro.com.ar. -photos-f.ak.fbcdn.net. -asia.perf.glbdns.microsoft.com. -a.root-servers.net. -wpad. -members.sneakypeek.net. -mail.btinternet.com. -edition.cn. -a.root-servers.net. -www.gravatar.com. -s2.youtube.com. -alame2009.pixnet.net. -27.198.48.65.in-addr.arpa. -google.com. -twoomail.com.multi.surbl.org. -x3wi43b7t.j25g9o0l. -188.170.100.190.in-addr.arpa. -www.google.com. -100.127.109.85.in-addr.arpa. -humblebundle.appspot.com. -construction.kizifriv.com. -52.197.106.89.in-addr.arpa. -sites.google.com. -cresswellservices.co.uk. -www.floweroflife.org. -images.google.com. -mail3.xchanging.com. -www.adobe.com. -pagead2.googlesyndication.com. -ese1.com.s9a2.psmtp.com. -160.60.158.200.in-addr.arpa. -www.google.com. -drakausa.com. -s-static.ak.fbcdn.net. -tepic.olx.com.mx. -gorx9395.files.wordpress.com. -mail.yoursmilecenter.com. -cs-g2-crl.thawte.com. -yulianacreations.blogspot.com. -b-0.19-a7063079.31002.1518.19bc.3ea1.210.0.qa7p2li2mpzdei6l82mr51e5mv.avqs.mcafee.com. -www.google-analytics.com. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.aseguratuauto.com.ar. -tracker.thepiratebay.org. -l.yimg.com. -blog.joachim.at. -eroticplanet.ru. -clock.fmt.he.net. -api-read.facebook.com. -a7.sphotos.ak.fbcdn.net. -forum.safecreative.net. -reporting.fl.skype.net. -googleads.g.doubleclick.net. -www.tratamientohemorroidesefectivo.com. -a.root-servers.net. -runninglip.com. -8.128.207.190.in-addr.arpa. -gmail.ci. -whos.amung.us. -importnut.net. -84.231.123.188.in-addr.arpa. -0-271.channel.facebook.com. -ssl.google-analytics.com. -hsbc.com.hk. -115.72.156.79.in-addr.arpa. -219.119.170.72.in-addr.arpa. -matcher.bidder8.mookie1.com. -time.chttl.com.tw. -static.ak.fbcdn.net. -turkish.keyboard.su. -mail.giv.it. -es-la.facebook.com. -s-static.ak.facebook.com. -tierrainfinitaz.chatango.com. -a.root-servers.net. -www.facebook.com. -www.yendit.com. -161.42.59.82.in-addr.arpa. -navidadd.com. -img.youtube.com. -all-kids.us. -apkbank.ru. -nodrivetime.com. -brocktonautomile.com. -testinfo007.blogspot.com. -www.urbian.biz. -www.laverdad.es. -it-it.facebook.com. -48.178.168.189.in-addr.arpa. -external.ak.fbcdn.net. -grafedia.net. -s3.amazonaws.com. -celulasabundancia.blogspot.com. -www.facebook.com. -a.root-servers.net. -l.yimg.com. -borovit.ru. -ssl.gstatic.com. -spiritually.com. -download351.avast.com. -www.youtube.com. -plusone.google.com. -fotografiaecuador.com. -167.148.146.24.in-addr.arpa. -ciudadanotasca.blogspot.com. -92.54.192.190.in-addr.arpa. -52.173.30.189.in-addr.arpa. -open.spotify.com. -battlefield-2142.en.softonic.com. -dns.msftncsi.com. -ocw.uniovi.es. -profile.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -researchreports.sdcexec.com. -ashtontechgroup.com. -kulturmejeriet.se. -plusone.google.com. -a7.sphotos.ak.fbcdn.net. -sac.gti.mcafee.com. -data.tvdownload.microsoft.com. -p07-contacts.icloud.com. -buiembtyd.88ya. -www.akm.com. -www.toptanciyiz.net. -ntp.glb.nist.gov. -ceoiq.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -d2uukq5a8vhcuo.cloudfront.net. -whos.amung.us. -search.twitter.com. -www.juegosagogo.com. -kalachev.ru. -www.alliedtime.com. -support.google.com. -61.127.10.189.in-addr.arpa. -a.root-servers.net. -smtp01.swisscenter.com. -cdn-0.pics.dvdcdn.com. -photos-c.ak.fbcdn.net. -services.net.au. -reddit.com. -zh-cn.facebook.com. -adpcos.com. -tc.v3.cache4.c.youtube.com. -a1.sphotos.ak.fbcdn.net. -help.yahoo.com. -8.154.243.201.in-addr.arpa. -groups.google.com.mx. -mcfarren-assoc.com. -channing-t.com. -librerias.idoneos.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -alert.services.conduit.comalerts. -145.18.57.187.in-addr.arpa. -descargar.mp3.es. -reelclipx.com. -www.torrentrg.com. -57.228.211.201.in-addr.arpa. -buenosaires.evisos.net. -udc.msn.com. -i1.ytimg.com. -151.44.173.190.in-addr.arpa. -wpad. -www.toxinology.com. -cs9571.vkontakte.ru. -v9.nonxt7.c.youtube.com. -www.live.com. -169.47.34.189.in-addr.arpa. -117.111.83.75.in-addr.arpa. -www.facebook.com. -a3.sphotos.ak.fbcdn.net. -36.196.143.187.in-addr.arpa. -api.cbssports.com. -teredo.ipv6.microsoft.com. -at.atwola.com. -www.reidsteel.aero. -profile.ak.fbcdn.net. -mail.tsibridges.com. -mail.conmed.com. -meritas.net.s5a2.psmtp.com. -s.ytimg.com. -a.root-servers.net. -ksn4-12.kaspersky-labs.com. -www.nokiakiller.com. -ca.com.s9b1.psmtp.com. -ci33hiu3l.c96u9z1g. -twitter.com. -img.babcdn.com. -latino.msn.com. -profile.ak.fbcdn.net. -www.curr.it. -a3.twimg.com. -tc.v6.cache3.c.youtube.com. -www.loocks.com. -sde7a1j4m.55ic. -a7.sphotos.ak.fbcdn.net. -email.it. -prowlapp.com. -a.root-servers.net. -bt.e-burg.org. -yahoo.com. -unifi. -macdougalls.com. -widgets.digg.com. -a2.sphotos.ak.fbcdn.net. -www.pixoto.com. -123.217.92.75.in-addr.arpa. -logv33.xiti.com. -s.youtube.com. -api.facebook.com. -www.cwdkids.com. -fbcdn-photos-a.akamaihd.net. -backdoorjobs.com. -fxfeeds.mozilla.com. -mrb.mail.ru. -66.99.164.67.in-addr.arpa. -ipom.ru. -photos-d.ak.fbcdn.net. -cat.frivjuegos.info. -dr._dns-sd._udp.home. -b.scorecardresearch.com. -content.yieldmanager.edgesuite.net. -81.173.95.89.in-addr.arpa. -www.jobstreet.com.my. -fbcdn-profile-a.akamaihd.net. -202.248.248.92.in-addr.arpa. -i4.ytimg.com. -www.m5zn.com. -www.driftlive.com. -download.paltalk.com. -google.com. -reddit.com. -static.ak.fbcdn.net. -mserver.etn.com.mx. -u21.eset.com. -a4.sphotos.ak.fbcdn.net. -www.google-analytics.com. -6j5oyw99u.n49e0t9j. -8.mails4e.com. -97.145.55.190.in-addr.arpa. -254.200.65.190.in-addr.arpa. -nemesis.1337x.org. -a5.sphotos.ak.fbcdn.net. -googleads.g.doubleclick.net. -www.allsaints.com. -campaign.constantcontact.com. -a.root-servers.net. -www.apple.com. -175.114.83.200.in-addr.arpa. -galleries.bunnygirlz.com. -p.d.ovi.com. -a4.sphotos.ak.fbcdn.net. -wxdata.weather.com. -71.23.149.98.in-addr.arpa. -107.41.20.187.in-addr.arpa. -payments.makemytrip.com. -ns3.avira-ns.net. -www.banamex.com. -vonxfuupyyxino.org. -www.missdriftedsnowwhite.com. -www.update.microsoft.com. -balu.us. -a1003.w41.akamai.net. -support.google.com. -videos.drole.ch. -api-public.addthis.com. -onetidbit.wordpress.com. -45.155.90.208.in-addr.arpa. -ltd.br.dnsbl7.mailshell.net. -www.myus.com. -fbcdn-profile-a.akamaihd.net. -irresistablefilms.com. -uristspb.ru. -intranet.adecco.com.mx. -promedica.com.br. -www.blackberry.com. -97.49.186.201.in-addr.arpa. -glimages.graphicleftovers.com. -mail.moltoni.com.au. -ocsp.digicert.com. -mail.pofboxing.perm.ru. -www.facebook.com. -top100-images.rambler.ru. -197.69.40.114.in-addr.arpa. -128.19.237.78.in-addr.arpa. -www.miguelcarrasco.net. -beta.stun.voice.yahoo.com. -101.252.168.78.in-addr.arpa. -js1.infoseek.co.jp. -35.39.157.189.in-addr.arpa. -api.facebook.com. -photos-e.ak.fbcdn.net. -safebrowsing.clients.google.com. -water.friv-y8.com. -a.root-servers.net. -crl3.digicert.com. -external.ak.fbcdn.net. -www.joshstrength.com. -www.indiana.edu. -mail.m-s.de. -a1294.w20.akamai.net. -proxy.yospb.yahoo.com. -2.0.0.10.in-addr.arpa. -api.facebook.com. -_255_92_6. -155.232.171.69.list.dsbl.org. -i2.ytimg.com. -mt1.google.com. -87.124.141.69.in-addr.arpa. -static.ifa.camads.net. -www.eurocampings.es. -nnov.ancor.ru. -105.1.168.192.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -mobileads.nimbuzz.com. -pt-br.facebook.com. -cf.addthis.com. -xtra1.gpsonextra.net. -allan-knox.com. -227.201.49.85.in-addr.arpa. -s-static.ak.fbcdn.net. -www.bustyashlynnbrooke.com. -125.102.202.125.in-addr.arpa. -prodel.ru. -dmgrealty.com. -media.oh-barcelona.com. -_233_86_3. -www.afforums.com. -photos-a.ak.fbcdn.net. -viocast.net. -jewelryconcepts.com.s7b1.psmtp.com. -videos.flv2.redtubefiles.com. -a6.sphotos.ak.fbcdn.net. -www.drtuberpremium.com. -cohutta.tdesystems.com. -accounts.google.com. -www.juntandocorazones.com. -a.root-servers.net. -affordablebusinesssystems.com.inbound15.mxlogic.net. -www.vidz.com. -4148091.frasesinolvidables1.com.ar. -google.com. -images.2.bangyoulater.com. -ganemasociados.com. -mitsubishi-forums.us.intellitxt.com. -odisea.activoforo.com. -mt1.googleapis.com. -newhopetel.net. -mh-mx1.onderwijsgroeptilburg.nl. -s0.2mdn.net. -161.adsina.allyes.com. -www.tienda.telmex.com. -www.jolintsai.net. -www.msftncsi.com. -fxfeeds.mozilla.com. -accounts.google.com. -www.y8.com. -www.ortsbo.com. -wls-mail.whitelodging.com. -api.facebook.com. -external.ak.fbcdn.net. -ddserv.com. -italianfarmacieonline.com. -www.casaensamble.com. -sparklepainting.com. -loading1.widdit.com. -player.slipstreamradio.com. -ivxwk:zko.f28v1y3s. -www.canidouafavor.com. -seven.net. -mail.waroundtable.com. -2.211.141.201.in-addr.arpa. -smtp.live.com. -plus.google.com. -a7.sphotos.ak.fbcdn.net. -d2092558.xoom.it. -rich.igg.com. -ak.search.mywebsearch.com. -ssl.google-analytics.com. -www.bomc2.com. -mail.carpentedil.com. -proyectodocumenta.org. -wmp.audible.com. -api.conduit.com. -otb-games.com. -infonavitpuntos.net. -112.12.252.189.in-addr.arpa. -lb._dns-sd._udp.lan. -b._dns-sd._udp.0.129.37.10.in-addr.arpa. -mx.youtube.com. -1.0.0.127.in-addr.arpa. -_vlmcs._tcp. -www.xstarsvod.com. -switch.atdmt.com. -mx2-exc.dgx.com.br. -_140_36_2. -130.10.174.190.in-addr.arpa. -kleartextbook.com. -ssl.gstatic.com. -imzh.ru. -225.100.40.178.in-addr.arpa. -news.google.com.mx. -llll. -_208_51_6. -www.google-analytics.com. -www.filthcafe.com. -verviers.lameuse.be. -etrn.turk.net. -249.144.73.189.in-addr.arpa. -aweza.co. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -checkip.dyndns.org. -1.77.176.187.in-addr.arpa. -usea.org. -hahnfamily.com. -www.bioterraviva.com. -233.132.62.189.in-addr.arpa. -js.anonym.to. -217.173.125.186.in-addr.arpa. -www.powerhomepages.com. -pap.wikipedia.org. -a5.da1.akamai.net. -. -dimassimo.com. -apple.com. -www.radiozu.ro. -a-0.19-23091081.c070083.1518.19d4.3ea1.210.0.4nckv22dv8e58ggm6pdvqgragj.avqs.mcafee.com. -mainstreamp.com. -www.googleadservices.com. -jacksonville.com. -ipowersolutions.net.s5b2.psmtp.com. -a.root-servers.net. -rincon-grafico.blogspot.com. -a997.mm1.akamai.net. -www.jazzpublishing.co.uk. -developers.facebook.com. -_886_50_8. -dibels.org. -apps.facebook.com. -www.youtube-nocookie.com. -. -103.4.148.64.in-addr.arpa. -www.bobsboots.com. -197.167.98.87.in-addr.arpa. -mail.systeminplace.net. -a.root-servers.net. -mxtls.expurgate.net. -tools.google.com. -clients1.google.com. -xtn.net.mx2.jonesmedia.rcimx.net. -profile.ak.fbcdn.net. -levoyage.ru. -www.zebra.com. -photos-c.ak.fbcdn.net. -teacherswithoutborders.org. -kilikahechoamano.blogspot.com. -noxius.wordpress.com. -t0.gstatic.com. -ec.atdmt.com. -mansfeld.ipk-gatersleben.de. -d2095607.xoom.it. -www.msftncsi.com. -vladasvet.ru. -mkusdc.com. -79.211.72.121.in-addr.arpa. -a.root-servers.net. -www.pianoaprimeravista.com. -www.aswwaq.com. -dl-client89.dropbox.com. -smtp.omniprint.com. -external.ak.fbcdn.net. -ads.bluelithium.com. -creative.ak.fbcdn.net. -beybladebattles.hn. -t2.gstatic.com. -7.90.91.186.in-addr.arpa. -www.facebook.com. -105.17.156.190.in-addr.arpa. -67.216.107.186.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -enter.premium.moviebox.com. -a.root-servers.net. -84.107.127.201.in-addr.arpa. -blog-albertosaez.blogspot.com. -educaresensenaravivir.blogspot.com. -34.153.0.88.in-addr.arpa. -creative.ak.fbcdn.net. -197.233.141.201.in-addr.arpa. -dm-download02.mozilla.org. -mail.woo-hoo.com. -www.places-to-visit.co.uk. -www.transalpworldtour.com. -www.wweplus.net. -adsm.gameforge.de. -external.ak.fbcdn.net. -www.33tres.com. -a1.da1.akamai.net. -epcs.com. -a8.sphotos.ak.fbcdn.net. -photos-a.ak.fbcdn.net. -70.219.25.218.in-addr.arpa. -wdmpyj.com. -h3plus.uiuc.edu. -150.69.104.95.in-addr.arpa. -d2058412.instant.xoom.it. -www.theradiancefoundation.org. -webcache.googleusercontent.com. -www.regnumchristi.org. -ilovepoems.com. -googleads.g.doubleclick.net. -dl.com. -a5.sphotos.ak.fbcdn.net. -2fyfmek2w.51tg. -www.facebook.com. -mail.ksshp.fi. -surftheplanet.com. -creative.ak.fbcdn.net. -235.243.63.92.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -accounts.google.com. -collection.theaa.com. -feeds.feedburner.com. -piedrasenlavesicula.org. -a.root-servers.net. -i4.ytimg.com. -partner.googleadservices.com. -photos-e.ak.fbcdn.net. -sky.geocities.jp. -www.pensador.info. -mchst.com. -121.2.16.172.in-addr.arpa. -richmond.craigslist.org. -s-static.ak.fbcdn.net. -mail.yimg.com. -e1.mc1615.mail.yahoo.com. -fonts.gawker.com. -adelphia.net. -orh.ch. -a5.sphotos.ak.fbcdn.net. -img.myfreecams.com. -www.jesustebusca.com.ar. -www.formula-romantica.com. -www.worldtangsoodo.com. -hurdrolland.co.uk. -_640_41_4. -. -thrd.com. -accounts.google.com. -exclusivepress.net. -s-static.ak.fbcdn.net. -. -id.wikipedia.org. -135.215.240.201.in-addr.arpa. -blogsoloeducacion.blogspot.com. -external.ak.fbcdn.net. -program.avast.com. -t-online.de. -accounts.google.com. -us.bc.yahoo.com. -usuarios.multimania.es. -fbcdn-profile-a.akamaihd.net. -api.recaptcha.net. -i3.ytimg.com. -i9.mangareader.net. -b.scorecardresearch.com. -ricercashopping.virgilio.it. -brownchecco.com. -mail.carsondixie.com. -109.60.168.192.in-addr.arpa. -photos-h.ak.fbcdn.net. -l.yimg.com. -c.msn.com. -boysyes.blogspot.com. -www.stats.gov.ck. -p49-buy.itunes.apple.com. -profile.ak.fbcdn.net. -prod.support.belgacom.be. -googleads.g.doubleclick.net. -a.root-servers.net. -apps.facebook.com. -206.33.173.190.in-addr.arpa. -www.mounteverest.net. -www-akm.imvu.com. -mail.vermilionriverrealty.com. -sopris.net. -www.myxboxspot.com. -www.entrebits.com. -profile.ak.fbcdn.net. -download.live.com. -api.webrep.avast.com. -192.161.202.94.in-addr.arpa. -www.sullysrants.com. -www.consultoresvalencia.com. -a.root-servers.net. -www.banquemondiale.org.lbe.worldbank.org. -grin.khv.ru. -yui.yahooapis.com. -univ.oryol.ru. -www.google.com. -www.sofitel.com. -photos-h.ak.fbcdn.net. -otcnet.org. -www.antiqueswords.com. -toolbarqueries.google.com. -a.root-servers.net. -static.ak.fbcdn.net. -aplcenmp.apl.jhu.edu. -s-static.ak.fbcdn.net. -vp.sip.messenger.msn.com. -imagen01.247realmedia.com. -64.105.105.190.in-addr.arpa. -superiortanklines.com.mx2.superiortanklines.rcimx.net. -digitalmudstudio.com. -www.iteracion.cl. -wallpapers4iphone.net. -248.52.124.201.in-addr.arpa. -teknicote.com.s7b1.psmtp.com. -a2.sphotos.ak.fbcdn.net. -ad.yieldmanager.com. -154.77.161.189.in-addr.arpa. -skyder.ru. -www.ankeligteringen.nl. -46.116.161.190.in-addr.arpa. -efgoze.com. -mail.dfo.gov.ru. -ts4.mm.bing.net. -error.flashget.com. -www.e-belis.com. -photos-g.ak.fbcdn.net. -news.google.es. -abudhabienv.com. -100.148.252.201.in-addr.arpa. -flowhot.info. -bitty.com. -pt-br.facebook.com. -es-la.facebook.com. -112.54.156.187.in-addr.arpa. -www.fmjfee.com. -www.pillositio.com. -_355_12_0. -a1.twimg.com. -73.0.175.190.in-addr.arpa. -94.180.3.76.in-addr.arpa. -dnl-08.geo.kaspersky.com. -219.26.163.189.in-addr.arpa. -rougehotel.com.inbound15.mxlogicmx.net. -news.barrons.com. -a.root-servers.net. -qestest.com. -pricepricemech.com. -39.8.47.186.in-addr.arpa. -a.root-servers.net. -a6.sphotos.ak.fbcdn.net. -u-tlnrn2o7o.clb1.com. -sqm.microsoft.com. -www.google-analytics.com. -photos-g.ak.fbcdn.net. -webcache.googleusercontent.com. -sites.google.com. -a.root-servers.net. -www.vinosdeargentina.com. -www.hispanicprblog.com. -footysphere.com. -asa-schalttechnik.de. -m.shopeuro.angrybirds.com. -www.latinlover.com.au. -www.freakquotes.com. -cf.addthis.com. -cocinarparalosmios.blogspot.com. -193.38.210.94.in-addr.arpa. -197.152.143.201.in-addr.arpa. -uponor.ru. -ct.ebis.ne.jp. -5.252.190.189.in-addr.arpa. -43.203.176.190.in-addr.arpa. -mail.bemco-ipp.com. -bs.serving-sys.com. -belleza.facilisimo.com. -adin.com. -caminoholistico-mabel.blogspot.com. -mail.legalcolombia.com. -xtremespeeds.net.home. -3lbvurryv.91ot. -images.instagram.com. -geo.messenger.services.live.com. -www.pixelradio.com.mx. -www.biggercity.com. -addon.onlinevideoconverter.com. -y25aks6xm.68yt. -www.truckads.com. -secure.wlxrs.com. -premieralliance.com.mx3.at-net.rcimx.net. -suggestqueries.google.com. -www.twitter.com. -www.ach.com. -acorn.org. -mtalk.google.com. -55.183.168.192.in-addr.arpa. -safebrowsing-cache.google.com. -relay.data.edge.messenger.live.com. -www.youtube.com. -246.25.93.186.in-addr.arpa. -m.facebook.com. -www.tattoofinder.com. -www-us.softsalad.com. -peliculasonline2.com. -ad-emea.doubleclick.net. -www.unefilledulimmatquai.ch. -www.bondagedesigns.com. -mail.scrtc.com. -pagead2.googlesyndication.com. -www.prettyteenpictures.com. -free-ebook-download-links.blogspot.com. -twitter.com. -checkip.dyndns.org. -www.arcelormittal.tv. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -newtab.conduit-hosting.com. -i4.ytimg.com. -qu.wikipedia.org. -www.facebook.com. -palabradeclio-mepi.blogspot.com. -www.youtube.com. -www.facebook.com. -www.google-analytics.com. -89.71.55.65.in-addr.arpa. -platform.stumbleupon.com. -profile.ak.fbcdn.net. -wps-dfp.com. -www.hp.com. -map.media6degrees.com. -easy-google-search.blogspot.com. -cs4341.vkontakte.ru. -om.recruit.net. -5-courier.push.apple.com. -0-74.channel.facebook.com. -by161w.bay161.mail.live.com. -184.162.50.66.in-addr.arpa. -www.balivillapoint.com. -9gag.com. -192.36.155.122.in-addr.arpa. -a1737.g.akamai.net. -speedtest.tune-up.com. -a.root-servers.net. -time.apple.com. -a209.phobos.apple.com.edgesuite.net. -www.googleadservices.com. -gfx1.hotmail.com. -www.mindeporte.gob.ve. -163.27.7.189.in-addr.arpa. -_772_41_0. -218.36.155.189.in-addr.arpa. -cf.addthis.com. -www.icap.org. -fbcdn-photos-a.akamaihd.net. -a.root-servers.net. -comcluster.cxense.com. -g.ceipmsn.com. -photos-e.ak.fbcdn.net. -android.clients.google.com. -acetec.com.mx. -\(none\). -www.youtube-nocookie.com. -210.43.255.201.in-addr.arpa. -87.57.238.166.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -mob.adwhirl.com. -nww6j6151.60lh. -ytimg.l.google.com. -a.root-servers.net. -158.42.192.190.in-addr.arpa. -la.wikipedia.org. -download304.avast.com. -www.freerealms.com. -box582.bluehost.com. -i1b95ewnr.33en. -www.alejandronogueira.com. -filter1.lach.net. -cameronparkcc.com. -photos-e.ak.fbcdn.net. -sfo.sysco.com. -a14.t26.net. -www.movieposteraddict.com. -www.lair2000.net. -ajax.googleapis.com. -mail.yahoo.com. -a1294.w20.akamai.net. -a5.sphotos.ak.fbcdn.net. -images04.olx.com. -actife.com. -safebrowsing.clients.google.com. -ksn1-12-part2.kaspersky-labs.com. -us.social.s-msn.com. -uu1.orbitdownloader.com. -download.windowsupdate.com. -photos-a.ak.fbcdn.net. -www.google.com. -pt-br.facebook.com. -js2.wlxrs.com. -45.85.188.189.in-addr.arpa. -newsrss.bbc.co.uk. -download-akm.skype.com. -sp.ask.com. -sp.cwfservice.net. -a1.sphotos.ak.fbcdn.net. -riskyregencies.blogspot.com. -accountservices.msn.com. -www.y8.com. -encuentromegaproyectosymineria.blogspot.com. -a.root-servers.net. -_965_19_2. -il-solito-potere.blogspot.com. -www.janes-kitchen-table.co.uk. -pagead2.googlesyndication.com. -a.root-servers.net. -a7.sphotos.ak.fbcdn.net. -scribe.twitter.com. -www.tusletras.com. -ws-cloud-msgplus.linkury.com. -mail.dariusunrise.com. -_859_19_7. -ntp.glb.nist.gov. -colstb.msn.com. -50.4.204.190.in-addr.arpa. -169.77.194.108.in-addr.arpa. -gmpcompanies.com. -guitar.nmts.ru. -30.192.2.201.in-addr.arpa. -au.download.windowsupdate.com. -openxfront.iminent.com. -youtu.be. -229.101.15.88.in-addr.arpa. -photos-e.ak.fbcdn.net. -45.65.32.196.in-addr.arpa. -www.usp.com.au. -blogs.microsoftvip.net. -webcache.googleusercontent.com. -sn3.mailshell.net. -relay.voice.messenger.msn.com. -405.webim0268.webim.myspace.com. -jooble-br.com. -plantasdeacuarios.com. -s7.addthis.com. -r._dns-sd._udp.0.55.211.10.in-addr.arpa. -235.8.55.157.in-addr.arpa. -_696_50_5. -login.live.com. -mobile.inova.si. -www.lwflowers.com. -www.jhj-consultancy.com. -205.28.215.186.in-addr.arpa. -graco.112.2o7.net. -23.196.124.186.in-addr.arpa. -mail.solve.net. -jacaro.es. -app.appatyze.com. -a.root-servers.net. -a3.sphotos.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -b3ck.blogspot.com. -blog.es.twitter.com. -maps.google.com.mx. -msainc.us. -www.music4games.net. -time.windows.com. -yo-conmigo.blogspot.com. -lb._dns-sd._udp.lan. -63.51.152.189.in-addr.arpa. -pascual.com.mx. -ad-apac.doubleclick.net. -photos-g.ak.fbcdn.net. -fntp.fr. -a.root-servers.net. -www.fwol.cn. -. -ec.atdmt.com. -mail.ppcse.ru. -www.google.com. -b2p1anxd4.05ab. -a1170.g.akamai.net. -planetek.it. -www.yaelsyummies.blogspot.com. -adspaces.ero-advertising.com. -a4.sphotos.ak.fbcdn.net. -www2.cinetux.org. -domino.harrassowitz.de. -by2msg4020715.gateway.messenger.live.com. -www.mini01.com. -post.sotcom.ru. -brilliantvoices.com. -media.winamp.com. -www.sqm.microsoft.com. -a.ads2.msads.net. -vp.sip.messenger.msn.com. -networkworld.com. -mistermaid.com. -aide.livenet.fr. -www.facebook.com. -6f74db9c.filesonthe.net. -254.19.145.78.in-addr.arpa. -dudnyk.com. -mail001.uniquemail.com. -api.facebook.com. -www.hammdann.net. -96.148.59.199.in-addr.arpa. -buildingcolorado.com. -s-static.ak.fbcdn.net. -77.10.26.83.in-addr.arpa. -43.217.6.88.in-addr.arpa. -by2msg3020417.gateway.messenger.live.com. -p6y.ru. -www.customgraffiti.net. -liero.it. -webres3.bullguard.ctmail.com. -becauseiamagirl.ca. -27-courier.push.apple.com. -safebrowsing.clients.google.com. -www.magictoolbox.com. -84.106.229.71.in-addr.arpa. -re-board.ru. -io.bucyrus.cl. -afiliados-natural.com.s108-67.furanet.com. -external.ak.fbcdn.net. -www.facebook.com. -www.out-there.com. -compras.periodistadigital.com. -platform.twitter.com. -cuanta-alegria-en-vidoes.blogspot.co.nz. -live-ciner.mncdn.net. -recetasdelaabuela.blogia.com. -developers.facebook.com. -www.onlineslotsentertainment.com. -mx2.iweb.com. -233.253.215.207.in-addr.arpa. -www.nicosia.sgul.ac.cy. -cdn.api.twitter.com. -dulcelife.com. -_336_36_1. -sharphomeloans.com. -ksn4-12.kaspersky-labs.com. -gotovaja-rabota.ru. -www.myspace.com. -mta6.am0.yahoodns.net. -s-external.ak.fbcdn.net. -ns.r-style.ru. -maps.googleapis.com. -cri.crinet.com. -136.89.75.190.in-addr.arpa. -www.google.com. -www.osirisibiza.com. -halo-zero.softonic.com. -eo-eo.facebook.com. -partner.googleadservices.com. -www.itsthecat.com. -a6.sphotos.ak.fbcdn.net. -www.mobileelements.com. -www.pelo10.com. -s-external.ak.fbcdn.net. -db._dns-sd._udp.lan. -www.morhipo.com. -s.ccdn.ur-img.com. -30.246.166.189.in-addr.arpa. -aspweb.gslb.monster.com. -www.gruposancorseguros.com. -42.244.9.65.in-addr.arpa. -www.litainete.lt. -fbcdn-sphotos-a.akamaihd.net. -orkut.com. -68.171.13.187.in-addr.arpa. -messenger.hotmail.com. -a.root-servers.net. -lemonodor.com. -233.112.53.60.in-addr.arpa. -free-php.net.ru. -a.root-servers.net. -www.elpalaciodehierro.com.mx. -150.2.132.189.in-addr.arpa. -im1.garenaconnect.com. -pop3.hot.glbdns.microsoft.com. -99.118.1.201.in-addr.arpa. -artofflight-contest.fr. -bachelorgirl.zzn.com. -www.systems-biology.org. -ib.adnxs.com. -georgiabulletin.org. -img3.pcpop.com. -magrec.de. -larcoco.wordpress.com. -97.211.127.201.in-addr.arpa. -capital-funding.com. -a3.sphotos.ak.fbcdn.net. -elizabethmelendez.com. -alteks-servis.com. -www.generadordenicks.com. -sevenstar.spb.ru. -singularlabs.com. -www.tarot-numerologie.fr. -lxt.com. -mail. -32.122.18.95.in-addr.arpa. -www.olga-kurylenko.net. -a.root-servers.net. -b.scorecardresearch.com. -a5.sphotos.ak.fbcdn.net. -103.237.252.186.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -sp.cwfservice.net. -photos-d.ak.fbcdn.net. -chile.infomine.com. -pixel.facebook.com. -jenniferdelonge.tumblr.com. -creative.ak.fbcdn.net. -i1.ytimg.com. -236.223.135.189.in-addr.arpa. -vqu9:dodh.r57s2x9f. -d2103197.xoom.it. -254.234.254.190.in-addr.arpa. -6uz6psorh.61il. -highlandsinsurance.com. -78.145.109.62.in-addr.arpa. -js.dmtry.com. -download339.avast.com. -mystart.incredibar.com. -i3.ytimg.com. -www.pokeyplay.com. -bmx.onxlti.com.redcondor.net. -61.160.209.201.in-addr.arpa. -www.dickinsonstate.edu. -static.ak.facebook.com. -238.29.116.174.in-addr.arpa. -r.turn.com. -plusone.google.com. -www.agiletelecom.com. -a995.mm1.akamai.net. -163.42.140.89.in-addr.arpa. -ece.ucdavis.edu. -www.google.com. -www.photomediashop.com. -teredo.ipv6.microsoft.com. -news.google.com. -youtube-ui.l.google.com. -www.descomsms.com. -update.epyte.com. -hotleathers.com.s9b2.psmtp.com. -isatap.swdl.com. -mediashifting.com. -a8.sphotos.ak.fbcdn.net. -download-soft.ru. -14.229.152.187.in-addr.arpa. -graph.facebook.com. -ihl.state.ms.us. -gamelux.ru. -gnguttrnc.61uh. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -google-analytics.com. -a.root-servers.net. -a3.da1.akamai.net. -59.21.254.201.in-addr.arpa. -www.jcortazar.udg.mx. -walgreens.vo.llnwd.net. -a.root-servers.net. -static.ak.fbcdn.net. -33.117.200.190.in-addr.arpa. -photos-f.ak.fbcdn.net. -webcache.googleusercontent.com. -156.226.35.187.in-addr.arpa. -www.fuelcells.us. -95.11.243.189.in-addr.arpa. -171.8.76.188.in-addr.arpa. -cdn-static.liverail.com. -89.152.99.213.in-addr.arpa. -translate.google.com.mx. -214.190.241.201.in-addr.arpa. -es.noticias.yahoo.com. -dns.msftncsi.com. -a3.sphotos.ak.fbcdn.net. -www.youtube.com. -m.facebook.com. -dns.msftncsi.com. -archive.rec.org. -130.210.138.189.in-addr.arpa. -shiroin.deviantart.com. -204.191.214.186.in-addr.arpa. -docs.google.com. -39.197.250.189.in-addr.arpa. -tools.google.com. -_503_33_5. -livejournalgaua.hit.gemius.pl. -g.ceipmsn.com. -124.221.124.189.in-addr.arpa. -time.chttl.com.tw. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -tracker.openbittorrent.com. -www.fujifilm.eu. -www.youtube.com. -mail.izreps.com. -4thletter.net. -220.144.162.112.in-addr.arpa. -mtalk.google.com. -ajax.googleapis.com. -accounts.google.com. -131.22.55.190.in-addr.arpa. -www.mardev.com.au. -204.169.250.201.in-addr.arpa. -s2.youtube.com. -e3191.c.akamaiedge.net. -googleads.g.doubleclick.net. -a.root-servers.net. -a.root-servers.net. -on.fb.me. -mailwash46.pair.com. -pccbs8i93.k35m2u0m. -dibujandosonrisas.blogspot.com. -178.137.255.83.in-addr.arpa. -developers.facebook.com. -. -swarthmore.edu. -falconvision.ru. -www.editorialmerial.es. -205.26.43.201.in-addr.arpa. -www.trucoteca.com. -vwsouth.com. -www.hiderefer.com. -www.facebook.com. -mail.ugvclmail.com. -www.toptyt.com. -www.eset-la.com. -purchase.mydirtyhobby.com. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -hp.zumodrive.com. -hr.pce-group.com. -www.facebook.com. -windeslive.com. -12.81.66.190.in-addr.arpa. -213.190.54.65.zen.spamhaus.org. -a8.sphotos.ak.fbcdn.net. -centralizedlab.com. -api.gamatar.org. -conn.skype.com. -79.169.160.189.in-addr.arpa. -a3.da1.akamai.net. -media.columbiamissourian.com. -r._dns-sd._udp.lan. -www.google.com. -rs1.scribd.com. -nasch-chat.ru. -244.232.26.85.in-addr.arpa. -www.losmejoresvideosdeinternet.net. -www.romacess.com. -a1957.da1.akamai.net. -static.ak.fbcdn.net. -c13.zedo.com. -190.68.173.190.in-addr.arpa. -connect.facebook.net. -mjqwmtiwmtia.info. -dvd.box.sk. -82.85.164.189.in-addr.arpa. -bank10.mi.ads.mp.mydas.mobi. -mail.htc.nett. -download712.avast.com. -a1.sphotos.ak.fbcdn.net. -webcache.googleusercontent.com. -199.96.172.201.in-addr.arpa. -checkip.dyndns.org. -photobucket.com. -greenfieldpro.com. -dispatch.lite.adlesse.com. -distilleryimage10.instagram.com. -p04-fmfmobile.icloud.com.akadns.net. -creareconilcuore.blogspot.com. -35.28.94.186.in-addr.arpa. -www.facebook.com. -quintess.com.inbound15.mxlogic.net. -sup.live.com. -db._dns-sd._udp.0.0.168.192.in-addr.arpa. -jsbin.tumblr.com. -senderra.com. -u24.eset.com. -en-us.fxfeeds.mozilla.com. -miscritscdn.brokenbulbstudios.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -b-0.19-2305f479.8030081.1518.19d3.3ea1.210.0.h16pz26nu19r8ezkn3t14c9lli.avqs.mcafee.com. -ibizabeatreview.podbean.com. -photos-f.ak.fbcdn.net. -blazemail.com. -r.turn.com.akadns.net. -143.139.229.77.in-addr.arpa. -www.ricardosalinas.com. -karelia-granit.ru. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.facebook.com. -142.8.17.190.in-addr.arpa. -165.22.82.62.in-addr.arpa. -191.192.194.117.in-addr.arpa. -www.paypalbisnis.com. -a1.sphotos.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -axa-sunlife.co.uk. -a.root-servers.net. -altfarm.mediaplex.com. -www.crunchbase.com. -newtscape.com. -platform.twitter.com. -151.153.101.118.in-addr.arpa. -photos-b.ak.fbcdn.net. -developers.facebook.com. -45.241.155.72.in-addr.arpa. -_417_71_1. -crl.microsoft.com. -239.247.141.201.in-addr.arpa. -www.bbc.co.uk. -amsprd0104.outlook.com. -203.33.168.192.in-addr.arpa. -mx.procilia.com. -oboedit.org. -pablo-javier-perez-fuentes.suite101.net. -talongroup.biz. -used.guitarcenter.com. -a.root-servers.net. -iad09s10.iad09s11.iad09s14.iad09s15.iad09s16.iad09s17.iad09s20.iad09s21.o-o.v2.lscache6.c.youtube.com. -_114_92_8. -fusion.google.com. -fbcdn-profile-a.akamaihd.net. -254.83.186.190.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -www.decolar.com. -mapscroll.blogspot.com. -static-0.farmville.zgncdn.com. -logictel.ru. -tracking.novem.pl. -baysidecontractors.com. -profile.ak.fbcdn.net. -todointeresante.wordpress.com. -ping3.teamviewer.com. -. -developers.facebook.com. -media.admob.com. -toolbarqueries.google.com. -studyworld.us.intellitxt.com. -212.93.44.190.in-addr.arpa. -relay2.sitel.com.ua. -www.avisooportuno.mx. -250.147.209.39.in-addr.arpa. -tvmax-9.com. -teredo.ipv6.microsoft.com. -www.historiasdechile.cl. -safebrowsing.clients.google.com. -www.update.microsoft.com. -89.80.198.190.in-addr.arpa. -meridiem91.blogspot.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -7.6.107.186.in-addr.arpa. -www.wikio.es. -omniamerican.org. -129.18.28.98.in-addr.arpa. -us.blackberry.com. -berniekeating.com. -www.gmail.com. -mail.proviewrussia.ru. -clock.nyc.he.net. -glb-ads.intergi.adtechus.com. -100.98.157.189.in-addr.arpa. -rcp.na.blackberry.com. -xzn8e9tc2.y47u6p1u. -www.facebook.com. -www.celebuzz.com. -a-0.19-a309d000.130092.1518.19d4.3ea1.210.0.cvtecms8k26gt7dsd4f6hnaeht.avqs.mcafee.com. -apps.facebook.com. -captcha.chat.yahoo.com. -eqxe7nppd.53fx. -mail.google.com. -mscrl.microsoft.com. -www.starnow.ie. -malakhov.spb.su. -wombat.nen-inc.com. -75.10.85.186.in-addr.arpa. -ds.serving-sys.com. -lucyhaleweb.org. -236.32.34.187.in-addr.arpa. -visitarmexico.net. -top.amateuralbum.net. -artidd.com. -www.netgear.com. -accidentalmommies.com. -aux.planetmath.org. -www.neruda.cl. -a6.sphotos.ak.fbcdn.net. -mail.google.com. -tbr.ask.com. -sdbs.adb.org. -www.rabobank.jobs. -plus.google.com. -cdn.fastclick.net. -profile.ak.fbcdn.net. -www.pacoelviraenglish.blogspot.com. -marketplace.honda-tech.com. -www.facebook.com. -edge.bredg.com. -mx1c11.megamailservers.com. -ballingerpublishing.com.1.arsmtp.com. -. -cf.cgl.com. -csi.gstatic.com. -fujitsugeneral.com.au. -a.root-servers.net. -ns3.mgn.net. -www.aquariuscasinoresort.com. -il06edm06.corp.mot.com. -www.leisuretown.com. -6.125.252.46.in-addr.arpa. -m.xp1.ru4.com. -tracking.batanga.com. -miis.edu.ru. -csi.gstatic.com. -lovelineshow.com. -lost.seriesasd.com. -dtboot.orbitdownloader.com. -86.117.19.177.in-addr.arpa. -134.61.194.68.in-addr.arpa. -assets2.helium.com. -pbelec.com. -a.root-servers.net. -time.windows.com. -apis.google.com. -external.ak.fbcdn.net. -img100.xvideos.com. -zyryanov.ru. -external.ak.fbcdn.net. -85.71.27.108.in-addr.arpa. -tudvdrip.blogspot.com. -casalelizrodri.blogspot.com. -30.media.tumblr.com. -www.vintageprojects.com. -mail-2.diabet-news.ru. -wer.microsoft.com. -loto.scn.ru. -tools.google.com. -www.thepier.org. -images04.olx-st.com. -81.185.15.180.in-addr.arpa. -r._dns-sd._udp.lan. -con8sylo6.q08v3j2n. -faqa.net. -mx.answers.yahoo.com. -db._dns-sd._udp.0.147.168.192.in-addr.arpa. -www.extremetube.com. -photos-g.ak.fbcdn.net. -img6.planetadelibros.com. -d2092951.xoom.it. -123.180.138.190.in-addr.arpa. -instagr.am. -s-translate.ru. -sc.sweetim.com. -60.1.1.10.in-addr.arpa. -ads.contentabc.com. -hearth.is. -38.143.25.201.in-addr.arpa. -www.hermesmedical.com. -teolatosno.ru. -video.xnxx.com. -254.66.61.189.in-addr.arpa. -ad.doubleclick.net. -birch.ssec.wisc.edu. -b.scorecardresearch.com. -www.star-advertising.com. -profile.ak.fbcdn.net. -upload.streamzoo.com. -www.ebaybag.com. -mail.informedx.com. -www.anunciadero.com. -juridicosonline.bligoo.com. -themasterstouch.com. -54.248.222.189.in-addr.arpa. -202.29.36.186.in-addr.arpa. -www.imperialinnovations.co.uk. -www.davidtutera.com. -www.girlsgogames.ru. -www.facebook.com. -dr._dns-sd._udp.0.101.168.192.in-addr.arpa. -s0.uvnimg.com. -db8.net-filter.com. -www.bmwra.org. -mail.google.com. -sites.google.com. -www.whoisthisphone.com. -api.pixel-mags.com. -teredo.ipv6.microsoft.com. -116.54.226.189.in-addr.arpa. -photos-e.ak.fbcdn.net. -photos-h.ak.fbcdn.net. -st.oros.karelia.ru. -164.8.0.10.in-addr.arpa. -nimir.com. -169796.frases10.info. -7pcl2kcwo.o53j1c5j. -zgn.static.zynga.com. -s10.histats.com. -i818.photobucket.com. -plus.google.com. -ic.tynt.com. -ar-ar.facebook.com. -shop.ebay.com. -3cp9lcoq32dpn-c.c.yom.mail.yahoo.com. -46.100.173.190.in-addr.arpa. -bellsouth.net. -yakimaclarion.com. -www.google.com. -t1.gstatic.com. -hosthotels.com. -109.216.136.82.in-addr.arpa. -147.148.141.189.in-addr.arpa. -147.51.42.190.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -www.ingenierocivilinfo.com. -153.130.9.186.in-addr.arpa. -mfddlaw.com. -loadbalancer.jn3jokm.com. -mk.wikipedia.org. -3b363b2490002cd1e5b508a91d696810.info. -223.181.127.200.in-addr.arpa. -kuige1cti.33pc. -a6.sphotos.ak.fbcdn.net. -www.southwillard.com. -donking.com. -teredo.ipv6.microsoft.com. -inbound.informfitness.com.netsolmail.net. -apps.facebook.com. -ratasyrockabilly.blogspot.com. -mail-attachment.googleusercontent.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -esonora.gob.mx. -a3.sphotos.ak.fbcdn.net. -66.177.9.186.in-addr.arpa. -profile.ak.fbcdn.net. -a1.sphotos.ak.fbcdn.net. -am686op8ejk5aahb9kk6k985qk.gcdn.biz. -a.root-servers.net. -157.125.14.181.in-addr.arpa. -www.sexscience.org. -api.facebook.com. -a.root-servers.net. -celularesnokiasamsungmotorolalg.blogspot.com. -mail.guardiancomfort.com. -tommy2.net. -a6.sphotos.ak.fbcdn.net. -e-2dj6wjkockcjkhp.stats.esomniture.com. -www.isimarsivi.com. -161.123.235.201.in-addr.arpa. -166.113.251.189.in-addr.arpa. -feokon.ru. -operadays.eu. -35.76.236.63.in-addr.arpa. -www.monsterdivx.com. -100-litsa.ru. -fqsf.com. -www.baseball-almanac.com. -psgw.t-mobilesgws.com. -20.75.179.190.in-addr.arpa. -www.youtube.com. -a8.sphotos.ak.fbcdn.net. -oficedepot.com. -memolaesto.blogspot.com. -www.m. -www.ucdenver.edu. -rd-legal.com. -18.250.115.200.in-addr.arpa. -pop3.live.com. -147.44.6.108.in-addr.arpa. -creative.ak.fbcdn.net. -booksbikesboomsticks.blogspot.com. -forum.khoone.org. -www.facebook.com. -mail2.angara.ru. -ccl.rutgers.edu. -www.nmc.edu. -foto-natura-huesca.blogspot.com. -widgets.amung.us. -fbcdn-profile-a.akamaihd.net. -a1.sphotos.ak.fbcdn.net. -time.chttl.com.tw. -newtab.conduit-hosting.com. -57.98.244.71.in-addr.arpa. -www.l.google.com. -accounts.google.com. -oscex-en.url.trendmicro.com. -250.252.16.190.in-addr.arpa. -5.96.134.189.in-addr.arpa. -241.23.250.189.in-addr.arpa. -www.ratesupermarket.ca. -elm.cl. -apps.facebook.com. -25.231.88.79.in-addr.arpa. -amoviesz.com. -peeterha.erroratyou.pw. -pheedo.msnbc.msn.com. -pagead2.googlesyndication.com. -www.avionews.com. -tools.l.google.com. -golosnadezhdi.ru. -www.ufs.ac.za. -178.86.177.195.in-addr.arpa. -24.109.222.201.in-addr.arpa. -plusone.google.com. -www.stopbadware.org. -a.root-servers.net. -photos-h.ak.fbcdn.net. -gfx1.hotmail.com. -config.mobile.wxbug.com. -photos-h.ak.fbcdn.net. -200.90.157.123.in-addr.arpa. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.gamebasics.co.uk. -vp.sip.messenger.msn.com. -ad-dc2.adtech.de. -yahoo.com. -midominio.com. -a.root-servers.net. -ar-ar.facebook.com. -savingssavingsandmoresavings.net. -p08-keyvalueservice.icloud.com. -www.seti-inst.edu. -udc.msn.com. -1.bp.blogspot.com. -wserectors.com. -b-0.19-2309b089.715c0.1518.19d4.3ea1.410.0.l48wk63hd6u11dcp1quez3wqmq.avqs.mcafee.com. -rt.com. -rotativover.com.mx. -a.root-servers.net. -beacon-1.newrelic.com. -knicksfanaticsblog.com. -www.apuntesgestion.com. -a.root-servers.net. -www.como-e.com. -www.facebook.com. -www.folder-guard.com. -commons.wikimedia.org. -www.belkin.com. -softel.ntl.ru. -a4.da1.akamai.net. -malah.biz. -91.87.229.189.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -hardwarefan.com. -it.coinmill.com. -www.casualadultgamers.com. -realplayer.com. -otz2diys3.d23o8z3w. -log.client.akadns.net. -41.45.134.190.in-addr.arpa. -apple.com. -21diciembre2012.foroes.net. -xwall.bridgecom.com. -72.206.154.62.in-addr.arpa. -cuc.claremont.edu.s7a2.psmtp.com. -philadelphia.cbslocalfanshop.com. -dfrf.daisypath.com. -www.naturaltranssexuals.com. -167.40.46.83.in-addr.arpa. -194.65.141.201.in-addr.arpa. -a.root-servers.net. -a.root-servers.net. -byfiles.storage.msn.com. -jeep.com. -l.yimg.com. -cs10526.vk.com. -164.233.48.178.in-addr.arpa. -exsib.ru. -140.202.68.76.in-addr.arpa. -ads1.msads.net. -jm-ingles.foroactivo.net. -130.18.204.67.in-addr.arpa. -rochester.it.com. -_674_32_5. -secure.wlxrs.com. -mail.gladtech.netd.com. -sbcglobal.net. -smtp.monavie.com. -cdn.api.twitter.com. -mail.dentforcongress.com. -idigjesus.com. -a2.sphotos.ak.fbcdn.net. -s.youtube.com. -marshallhotels.com. -pan.starmedia.com. -cityvillefb1.static.zgncdn.com. -account.live.com. -profile.ak.fbcdn.net. -proyectofueradeserie.blogspot.com. -41.62.44.190.in-addr.arpa. -122.165.1.88.in-addr.arpa. -191.147.137.186.in-addr.arpa. -_ldap._tcp.4577284e-c7dc-4f42-9890-bae63effdf68.domains._msdcs.vetco.com. -mx1.effortel.ru. -www.df-gay.com.mx. -www.pancrase.org. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.yimg.com. -a.root-servers.net. -www.facebook.com. -fortune-int.en.alibaba.com. -seabretelon.blogspot.com. -www.hipertimestico.com. -kisianmail1.kisian.mimcom.net. -touch.net. -cluster8a.us.messagelabs.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -s.ytimg.com. -247.96.76.188.in-addr.arpa. -mail.crewing.ru. -p012a.polyvore.com. -worldgeo.ru. -clients4.google.com. -dl.jav4u.net. -matrixres.com. -s2.youtube.com. -ksn2-12.kaspersky-labs.com. -0-278.channel.facebook.com. -sro.whatsapp.net. -m.facebook.com. -www.sabidurias.com. -docs.google.com. -www.massiveattack.clan.su. -pixel.quantserve.com. -ksn2-12.kaspersky-labs.com. -static.ak.fbcdn.net. -static.ak.fbcdn.net. -sp.cwfservice.net. -www.google.com. -www.facebook.com. -a5.sphotos.ak.fbcdn.net. -a.root-servers.net. -pagead2.googlesyndication.com. -18girls.ru. -zsnes.programas-gratis.net. -m.accuweather.com. -a.root-servers.net. -concheck.nimbuzz.com. -www.dominiopublico.gov.br. -www.behindthathole.com. -a.root-servers.net. -dsn4.d.skype.net. -49.132.46.118.in-addr.arpa. -platform.twitter.com. -90.185.91.80.in-addr.arpa. -t.co. -dc446.4shared.com. -twitter.com. -a5.sphotos.ak.fbcdn.net. -tbcocala.com. -ads1.msn.com. -google.com. -smtp02.radioholland.net. -34.26.62.186.in-addr.arpa. -platform.ak.fbcdn.net. -253.108.136.186.in-addr.arpa. -poker-academy.com. -static.ak.fbcdn.net. -0.5852475.com. -fbcdn-profile-a.akamaihd.net. -r._dns-sd._udp.x\001h. -12.165.14.217.in-addr.arpa. -s.youtube.com. -us.mc1813.mail.yahoo.com. -www.zwinky.com. -cachecasino.ll.eurogrand.com. -www.davidellischrysler.com. -www.facebook.com. -www.patrimoniohistorico.org.ar. -223.69.134.187.in-addr.arpa. -22.224.171.69.in-addr.arpa. -mobile-3g-dyn-bu-48-172.zappmobile.ro. -mihijoconbuenanotaenmate.com. -m.webtrends.com. -microsoft.com.mx. -www.myspace.com. -www.l.google.com. -www.googleadservices.com. -www.alcoulson.com. -www.verdaderaseduccion.com. -ja.y8.com. -et7jzfujd.28xt. -www.msnarea.com. -posicionesalhacerelamor.com. -ec.atdmt.com. -api-read.facebook.com. -hebbo-chilexx.ciudadhabbo.com. -223.236.229.190.in-addr.arpa. -deucescrackedrakeback.net. -22.17.191.189.in-addr.arpa. -ksn1-11-part1.kaspersky-labs.com. -connect.facebook.net. -syrcafe.com. -formatfactory.softpedia.com. -182.234.63.178.bl.spamcop.net. -www.google-analytics.com. -a.root-servers.net. -de.wikipedia.org. -sup.live.com. -ocsp.webspace-forum.de. -www.anunciosdeveracruz.com. -prideofthetide.com. -it-it.facebook.com. -www.fuerteloko.com. -162.79.9.177.in-addr.arpa. -sedecalusa.com. -www.truste.org. -166.1.123.187.in-addr.arpa. -www.alarab.net. -cwuk.com. -www.drleonards.com. -www.google.com. -113.34.110.189.in-addr.arpa. -profile.ak.fbcdn.net. -i1.ytimg.com. -twitter.com. -eu.wikipedia.org. -googleads.g.doubleclick.net. -105.224.233.190.in-addr.arpa. -pixel.invitemedia.com. -cdn.api.twitter.com. -www.eku.edu. -secure.etype.com. -directory.services.live.com. -content.dl-rms.com. -a.root-servers.net. -apis.google.com. -tayabeixo.org. -194.93.24.195.in-addr.arpa. -messager.com. -a.root-servers.net. -th.wikipedia.org. -smtp.mailserv.in. -teredo.ipv6.microsoft.com. -mscrl.microsoft.com. -c0.echoenabled.com. -77.178.243.201.in-addr.arpa. -www.ownedcore.com. -embutidosrios.blogspot.com. -frogs.org.au. -www.youtube.com. -158.13.141.201.in-addr.arpa. -theansiblog.wordpress.com. -xmat.com. -42.156.244.189.in-addr.arpa. -222.163.166.189.in-addr.arpa. -tiendamexico.com.mx. -www.bestgolftipsandtricks.com. -www.google.com. -nl.wikipedia.org. -ms.samwellg.com. -wikimediafoundation.org. -c.atdmt.com. -29.205.233.46.in-addr.arpa. -pixel.facebook.com. -download.windowsupdate.com. -www.youtube.com. -www.expedia.co.in. -www.kshe95.com. -photos-c.ak.fbcdn.net. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -healthy-ojas.com. -mail.citymt.ru. -60.66.111.95.in-addr.arpa. -google.com. -ads.yimg.com. -millaray.un-clic-por-el-bosque.com. -profile.ak.fbcdn.net. -google.com.mx. -a.root-servers.net. -www.penguin.co.nz. -city.yatsushiro.lg.jp. -webcache.googleusercontent.com. -a.root-servers.net. -88.142.249.77.in-addr.arpa. -safebrowsing-cache.google.com. -billing.sharo4ka.ru. -torrentz.eu. -uidai.sifyitest.com. -a.root-servers.net. -csi.gstatic.com. -images.google.com. -facebook.com. -emailium.com. -creditway.ru. -c.atdmt.com. -cedasecuador.com. -a5.sphotos.ak.fbcdn.net. -www.facebook.com. -127.0.0.1. -infothread.org. -www.coachsfactory-online.net. -a.root-servers.net. -a.root-servers.net. -m.trendenciasbelleza.com. -email.1800baskets.com. -www.facebook.com. -profile.ak.fbcdn.net. -www.crookedtimber.org. -www.google.com. -2bebullyfree.com. -www.air.flyingway.com. -teredo.ipv6.microsoft.com. -237.18.17.76.in-addr.arpa. -platform.twitter.com. -pagead2.googlesyndication.com. -www.youtube.com. -mail.reycorporacion.com. -a.root-servers.net. -40.197.202.190.in-addr.arpa. -www.google-analytics.com. -sqqamnjx7.o13l3h8q. -rio-toys.ru. -webcache.googleusercontent.com. -ocsp.thawte.com. -static.ak.fbcdn.net. -edge.hostuc.com. -136.153.63.24.in-addr.arpa. -trucosmasgame.blogspot.com. -secure.wlxrs.com. -fbcdn-photos-a.akamaihd.net. -226.84.178.190.in-addr.arpa. -www.wmnf.org. -www.mcity.com.au. -banner-in.net. -creative.ak.fbcdn.net. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -jqtxjs6qs.24tg. -r.co.igameunion.com. -b.scorecardresearch.com. -1804289383.localhost. -nyxstyle.com. -174.214.92.201.in-addr.arpa. -www.20minutos.es. -33.161.225.77.in-addr.arpa. -a.root-servers.net. -translate.googleapis.com. -photos-g.ak.fbcdn.net. -www.dvrserver.net. -gfx3.hotmail.com. -187.113.227.77.in-addr.arpa. -84.136.114.200.in-addr.arpa. -www.facebook.com. -www.equipodinero.com. -zumo.at. -225.30.82.190.in-addr.arpa. -www.allvideotrafficschool.com. -secure.wlxrs.com. -dftuz.unizar.es. -b.f.8.8.5.3.f.8.b.1.f.3.9.1.0.2.6.7.e.9.7.3.1.4.0.0.0.0.1.0.0.2.ip6.arpa. -a1725.l.akamai.net. -www.ci.lafayette.or.us. -www.yugiohtheabridgedseries.com. -mulkcpulx.88wg. -tc11.easythumbhost.com. -a7.sphotos.ak.fbcdn.net. -167.161.26.201.in-addr.arpa. -175.9.248.62.in-addr.arpa. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -179.60.139.98.in-addr.arpa. -mx.mikecorey.com. -check6.facebook.com. -pic.zdface.com. -252.67.11.187.in-addr.arpa. -twitter.com. -api.twitter.com. -252.1.84.78.in-addr.arpa. -245.198.30.186.in-addr.arpa. -twitter.com. -grupoautofin.com. -developers.facebook.com. -profile.ak.fbcdn.net. -vaiogatenotifications2.sony-europe.com. -171.252.184.67.in-addr.arpa. -harrisonsmythe.com. -www.bocetoweb.net. -mail.bhc.car-crm.com. -mail.kalleh.com. -a3.sphotos.ak.fbcdn.net. -catholicspotlight.com. -seguros-moto.arpem.com. -ghandshake.com. -im12.gulfup.com. -a.root-servers.net. -s.youtube.com. -www.google.com.mx. -www.canew.org. -google.com. -www.mindfly.com. -www.argentinabusca.com. -www.microsoft.com. -www.rulez.org.ua. -102.155.145.201.in-addr.arpa. -p.twimg.com. -luber.obladm.msk.su. -ytimg.l.google.com. -a2.sphotos.ak.fbcdn.net. -www.google.com. -share.lockerz.com. -svcs.ebay.com. -au.download.windowsupdate.com. -32.43.214.201.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -hi-in.facebook.com. -58.45.194.180.in-addr.arpa. -firstunion.com. -media.pron.com. -latinax100pre.blogspot.com. -mail.google.com. -www.tv.nu. -90.172.160.201.in-addr.arpa. -124.74.37.190.in-addr.arpa. -d15gt9gwxw5wu0.cloudfront.net. -googleads.g.doubleclick.net. -test-rt.liftdna.com. -allaccess.biancabeauchamp.com. -os.evoice.com. -bet.iach.cz. -mosdomen.ru. -syndication.traffichaus.com. -fr-fr.facebook.com. -cookingquinn.blogspot.com. -configuration.apple.com. -remaxcedarrapids.com. -osxbook.com. -docs.portfoliodesign.org. -a.root-servers.net. -static2.avast.com. -pt-br.facebook.com. -sfg.ru. -ksn1-11-part2.kaspersky-labs.com. -cermics.enpc.fr. -219.250.220.186.in-addr.arpa. -www.canterburytales.org.uk. -21.0.168.192.in-addr.arpa. -mail.ukrpromtrans.com. -www.thevoicemyanmar.com. -ksn2-12.kaspersky-labs.com. -ip1.dynupdate.no-ip.com. -ftp.uu.net. -b.scorecardresearch.com. -i38.tinypic.com. -www.enlacespanama.com. -204.73.12.88.in-addr.arpa. -photos-a.ak.fbcdn.net. -regrus.spb.ru. -a2.sphotos.ak.fbcdn.net. -widgets.twimg.com. -suburbanhockey.com.1.0001.arsmtp.com. -ars.oscar.aol.com. -static.ak.fbcdn.net. -171.29.11.186.in-addr.arpa. -mail.google.com. -233.241.143.71.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -sanyopg.com.my. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -fxfeeds.mozilla.com. -static.ak.fbcdn.net. -128.176.170.201.in-addr.arpa. -www.lancel.com. -semstroy.ru. -123.247.32.189.in-addr.arpa. -www.droitpublic.net. -a.root-servers.net. -a.root-servers.net. -sf2.yourpractice.com. -ccbltd.com. -www.pem.org. -safebrowsing-cache.google.com. -www.thomascrampton.com. -download661.avast.com. -eco-forest.com. -bud.indirect.com. -photos-e.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -mail.alfaplast.ru. -bluevalleybrand.com.s6b1.psmtp.com. -wpad. -vb.qloob.com. -26.230.228.189.in-addr.arpa. -126.219.0.123.in-addr.arpa. -social.successtelevision.com. -download.microsoft.com. -a.root-servers.net. -sebringraceway.com. -ebrinc.com.s8a2.psmtp.com. -dasletzteeinhorn.ch. -deathgrindfreak.blogspot.com. -linkhelp.clients.google.com. -apps.facebook.com. -www.produ.com. -api.geo.kontagent.net. -www.facebook.com. -a.root-servers.net. -trophy01.np.community.playstation.net. -ow.ly. -www.otomania.net. -shawcomm.com. -clients1.google.com. -profile.ak.fbcdn.net. -dl-client477.dropbox.com. -blair.tcaps.net. -pubads.g.doubleclick.net. -118.205.255.84.in-addr.arpa. -blog.mercadoshops.com. -a.root-servers.net. -ads.hotgirlsgames.net. -terra.alts.net. -enlightenhairstudio.com. -0-250.channel.facebook.com. -dtphila.com. -profile.ak.fbcdn.net. -i1.ytimg.com. -fbcdn-profile-a.akamaihd.net. -ncmail.net. -photos-c.ak.fbcdn.net. -62.154.84.86.in-addr.arpa. -people.uleth.ca. -sexcamy.ch. -lookworldusa.com. -www.kizi-games.com. -a749.g.akamai.net. -www.chillout.fm. -blog.open-office.es. -alweeam.com. -pixel.facebook.com. -a.root-servers.net. -graph.facebook.com. -84.114.27.46.in-addr.arpa. -www.a12.ro. -s.youtube.com. -es-la.facebook.com. -safebrowsing-cache.google.com. -www.androidenea.com. -facebook.comac. -budget101.com. -iloveyouman.com. -www.imdb.com. -spam.globaltac.com. -maiquiflores.over-blog.es. -pagead2.googlesyndication.com. -pixel.facebook.com. -centralamericadata.com. -achtenberg.com. -www.locosporlastelas.com.ar. -support.google.com. -db._dns-sd._udp.0.55.211.10.in-addr.arpa. -mitecnologico.com. -www.google.com. -mx3.ksk.co.in. -www.ojocientifico.com. -ladificilsencillez-online.blogspot.com. -29.37.173.190.in-addr.arpa. -243.34.114.174.in-addr.arpa. -login.yahoo.com. -136.9.168.192.in-addr.arpa. -135.111.55.65.zen.spamhaus.org. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -billcam.axiscam.net. -a1.sphotos.ak.fbcdn.net. -a.root-servers.net. -backgroundlayoutsforfacebook.com. -sns.goodgamestudios.com. -gfx3.hotmail.com. -147.128.92.201.in-addr.arpa. -streaming.playwire.com. -facedesign.us. -l1.yimg.com. -graph.facebook.com. -hoteliers.wego.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -cherrysage.com. -130.86.227.189.in-addr.arpa. -gfx2.hotmail.com. -www.siuxy-pets.com. -smak.ru. -alleytheatre.com. -ja-jp.facebook.com. -www.google-analytics.com. -mail.tgk13.ru. -cust22700-1.in.mailcontrol.com. -newsletter.iciparisxl.nl. -www.correo.unam.mx. -login.live.com. -photos-b.ak.fbcdn.net. -www.getios.com. -www.elnuevoherald.com. -161.100.9.186.in-addr.arpa. -72.148.45.189.in-addr.arpa. -bit.ly. -mail.iristel.com. -187.65.66.186.in-addr.arpa. -www.facebook.com. -www.yahoo.com. -mail.centreprint.net. -my.bta.kz. -centrodecocinaygastronomia.com. -cheriefm.radio.fr. -correo.adylog.com. -app140895852605282.socialappspot.com. -350letras.blogspot.com. -158.5.168.192.in-addr.arpa. -251.217.176.187.in-addr.arpa. -newtab.conduit-hosting.com. -www.comipems.org.mx. -orcart.facebook.com. -www.facebook.com. -136.209.57.186.in-addr.arpa. -i.ytimg.com. -twitter.com. -static.xvideos.com. -apex.bryansk.ru. -0-299.channel.facebook.com. -google.com. -media.mpgomatic.com. -www.facebook.com. -www.tsa.es. -cdn.api.twitter.com. -safebrowsing.clients.google.com. -todosobrenickelodeon.blogspot.com. -a.root-servers.net. -lakelandproair.com. -lostandfoundandconnectionsabound.blogspot.com. -5oyystxh5.94od. -yuec7yln9.90bc. -250.103.58.201.in-addr.arpa. -s.youtube.com. -putlockersearch.com. -fonts.googleapis.com. -www.google.es. -dracoandginny.com. -www.google.com. -163.245.3.211.in-addr.arpa. -photos-c.ak.fbcdn.net. -www.mosaizer.com. -t0.gstatic.com. -ad.harrenmedianetwork.com. -accountservices.msn.com. -234.69.91.190.in-addr.arpa. -143.138.126.122.in-addr.arpa. -www.google.com. -a489.w11.akamai.net. -view.atdmt.com. -www.jane-wyman.com. -a.root-servers.net. -ad.handycafe.com. -ks-v.ru. -237.224.124.113.in-addr.arpa. -badges.coroflot.com. -www.visto-eua.com.br. -1-i.ru. -fs-wti9.wavetechinc.com. -a-0.19-23091081.c8a0082.1518.19d4.3ea1.210.0.fgsm3869zqsua6rhzrlaju4v6t.avqs.mcafee.com. -a.root-servers.net. -img115.imageshack.us. -www.cinescape.tv. -254.95.48.190.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -a.root-servers.net. -ad.yieldmanager.com. -www.microsoft.com. -www.baidu.com. -www.yomolomazo.es.vg. -moscow-offices.ru. -44.35.43.186.in-addr.arpa. -www.facebook.com. -1st-line.com. -fctoplist.uuuq.com. -32.250.49.95.in-addr.arpa. -creative.ak.fbcdn.net. -104.212.1.99.in-addr.arpa. -ns2.colocationamerica.com. -profile.ak.fbcdn.net. -s5.scribdassets.com. -tk6pjyxt:.31al. -25.media.tumblr.com. -safebrowsing.clients.google.com. -mail.antenne-wien.at. -giraffeelizabeth.wordpress.com. -asseeninbyjosia.wordpress.com. -pixel.facebook.com. -ksn2-12.kaspersky-labs.com. -pro-sham.travail.gouv.fr. -tamammennah.blogspot.com. -safebrowsing-cache.google.com. -41-courier.push.apple.com. -parse.howdesign.com. -iamx.eu. -djox4jhho.p51u7m9o. -ruban1.kiwito.com. -photos-c.ak.fbcdn.net. -qd7fvzqhx.73tr. -tangspac.com. -download795.avast.com. -1.everystudent.com. -www.ordinarypastor.com. -orcart.facebook.com. -www.google-analytics.com. -www.vbulletin.com. -letsbuycom.ugc.bazaarvoice.com. -ip52-60.cbn.net.id. -csi.gstatic.com. -google.com. -a5.sphotos.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -mx1.ahold.ru. -www.ilgiornaledelpiemonte.com. -safebrowsing.clients.google.com. -22.228.171.69.in-addr.arpa. -static.ning.com. -9recvkqi8.54hn. -enazuero.com. -www.anikovillalba.com. -www.facebook.com. -www.google-analytics.com. -img2.catalog.video.msn.com. -safebrowsing.clients.google.com. -thewoostergroup.org. -www.elong.net. -welcome.colostate.edu. -profile.ak.fbcdn.net. -mail.comhem.basefarm.net. -www.bigtunainteractive.com. -photos-b.ak.fbcdn.net. -rcp.na.blackberry.com. -217.96.237.189.in-addr.arpa. -www.facebook.com. -dns.msftncsi.com. -252.146.131.187.in-addr.arpa. -s-static.ak.fbcdn.net. -gfx4.hotmail.com. -pixel.quantserve.com. -lumpyfame.ru. -apis.google.com. -remote.innovativedrivers.com. -7616-574.cudamail.com. -stat1.moneycontrol.com. -js.wlxrs.com. -ajax.googleapis.com. -i4.ytimg.com. -g.juegosdebob.com. -www.megafitness.es. -246.20.107.189.in-addr.arpa. -www.addthis.com. -es.translatedsongs.com. -toolbar.baidu.com. -colomsat.net. -p0b.ru. -elguiondecine.blogspot.com. -dl5.avgate.net. -photos-f.ak.fbcdn.net. -vqhekvup4.j01i4q1l. -developers.facebook.com. -client-software.real.com. -twitter.com. -www.annapolishomebrew.com. -zynga2-a.akamaihd.net. -france.usembassy.gov. -101.212.45.201.in-addr.arpa. -res-66.ru. -dns.msftncsi.com. -en-us.fxfeeds.mozilla.com. -ldlocke.com. -mail.theofficeconnection.com. -87.28.215.176.in-addr.arpa. -www.bedfed.org.uk. -kevinoleary.ie. -www.tattooheaven.com. -a.root-servers.net. -camelliaandmain.com. -ticketweb.ca. -c0.cctld.afilias-nst.info. -mail02.ifxnetworks.com. -k:29m8d4f.a17u5d1m. -katherineisawesome.com. -laangostura.com. -205.9.135.186.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -taxicorona.ru. -utrish.com.ru. -179.229.132.187.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -antropologiafisica.cl. -login.yahoo.com. -developers.facebook.com. -beta.rocket-bird.com. -lissyhistorias.blogspot.com. -229.29.220.76.in-addr.arpa. -178.206.10.190.in-addr.arpa. -mail.mflandtitle.com. -5.88.144.189.in-addr.arpa. -teamnrn.com. -ludowthompson.com. -mx2.krasnoe-beloe.ru. -91.86.187.221.in-addr.arpa. -ib.adnxs.com. -img705.imageshack.us. -www.google.com.mx. -plusone.google.com. -dvt.vn. -59.122.129.24.in-addr.arpa. -albertomielgo.blogspot.com. -a.root-servers.net. -115.242.85.24.in-addr.arpa. -www.moneymanagement.com.au. -28.134.163.90.in-addr.arpa. -r73.kadastr.ru. -32.49.174.190.in-addr.arpa. -www.google.com. -www.cyberxbabes.net. -www.guillaume-tesson.com. -a5.sphotos.ak.fbcdn.net. -mail.dbylaw.com. -68.230.231.189.in-addr.arpa. -mbcpepsi.com. -external.ak.fbcdn.net. -static.app.widdit.com. -ads-vrx.adbrite.com. -home24bank.com.s9a2.psmtp.com. -99.45.115.186.in-addr.arpa. -www.roboelectro.com. -mail.711.ru. -www.cooking.info. -ramrealestate.com. -tools.google.com. -54.189.117.62.in-addr.arpa. -www.google.com. -explorermusic.com. -www.thedigitalangel.co.uk. -www.telme.sg. -43.115.220.190.in-addr.arpa. -xclick.ru. -www.mountainweb.com. -a.root-servers.net. -terrehaute.in.gov. -www.ladyfist.com. -dereusarch.com. -www.mobiusinstitute.com. -i1.ytimg.com. -pagead2.googlesyndication.com. -www.tophotrod.net. -www.nh2007.com. -mail.furtherfilms.com. -www.eurocopter.com. -js.microsoft.com. -69.212.122.190.in-addr.arpa. -developers.facebook.com. -www.free-hideip.com. -www.alarab.net. -tags.toolbarsmedia.com. -a.root-servers.net. -dr._dns-sd._udp.lan. -download323.avast.com. -photos-f.ak.fbcdn.net. -www.scenesix.com. -mail.krline.net. -zkudoc.com. -janaschi.deviantart.com. -nikkibeach.com. -proidy.net. -connect.facebook.net. -a2.sphotos.ak.fbcdn.net. -www.heywhatsthat.com. -www.facebook.com. -y7mjd5lwc.s78z8n1e. -www.berlin.es. -0.11-a70e9079.8140083.1518.18bb.3ea1.210.0.ir328glk7gtudi9qpucepaen55.avqs.mcafee.com. -www.google.com. -relay.505010.ru. -sut1.co.uk. -a5.sphotos.ak.fbcdn.net. -78.24.1.181.in-addr.arpa. -215.38.168.192.in-addr.arpa. -www.google.com. -i4.ytimg.com. -a.root-servers.net. -anywhere.platform.twitter.com. -hoster-1.ru. -a1920.g.akamai.net. -static.ak.fbcdn.net. -i4.ytimg.com. -66.130.37.2.in-addr.arpa. -a.root-servers.net. -www.marben.net. -cdn1.clkads.com. -cs5279.vk.com. -106.2.139.189.in-addr.arpa. -188.229.21.190.in-addr.arpa. -au.download.windowsupdate.com. -156.148.113.187.in-addr.arpa. -rol.paraguay.com. -n7b.akamaiedge.net. -mail.yahoo.com. -www.google.com. -momentumplanet.com. -pmstrk.mercadolibre.com. -mail.ietf.org. -blog.astrakhan.ru. -28.174.102.85.in-addr.arpa. -dns.msftncsi.com. -fbcdn-sphotos-a.akamaihd.net. -go3.trekaklik.com. -mta.pacific-textiles.com. -www.blogaditas.com. -auxilor.com. -a.root-servers.net. -titanium30-en.url.trendmicro.com. -www.spss.com.ar. -iieh5fqs1.10ui. -www.exzellenz.rwth-aachen.de. -www.naimnet.com. -yahoo.com. -p.twimg.com. -244.1.19.190.in-addr.arpa. -www.coolmsn.com. -www.google.com. -s.ytimg.com. -s.ytimg.com. -mappe.regioneveneto.net. -38.92.177.190.in-addr.arpa. -cuadernosdealfonsosalazar.blogspot.com. -14.55.14.201.in-addr.arpa. -creative.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -www.youtube.com. -adserver.adtech.de. -tags.expo9.exponential.com. -ex.urlux.ru. -ass-1.buttscrewing.com. -133.71.126.69.in-addr.arpa. -ec.atdmt.com. -186.146.27.114.in-addr.arpa. -anythingfree4you.com. -dbcmedia.com.s7a2.psmtp.com. -s-static.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -www.segurosrossi.com.ar. -www.facebook.com. -ww.npr.org. -bookclubs.barnesandnoble.com. -download-31.blogspot.com. -www.recoleta.com.ar. -sdsd.com. -www.eltiempo.com. -lh6.ggpht.com. -bkmx.jicjo.com. -146.201.42.186.in-addr.arpa. -www.google.com. -a7.sphotos.ak.fbcdn.net. -lakeareabank.com.inbound10.mxlogicmx.net. -www.okaris.com. -a1732.v.phobos.apple.com. -24.169.149.99.in-addr.arpa. -www.unitec.mx. -www.7peliculas.com. -tsc-corp.com. -d98klhsqa.97kp. -shad.pp.ru. -a.root-servers.net. -photos-c.ak.fbcdn.net. -244.177.209.190.in-addr.arpa. -platform.stumbleupon.com. -ovg.ru. -227.1.213.201.in-addr.arpa. -cr.loszona.com. -www.stardoll.com. -kolkata.craigslist.co.in. -au.download.windowsupdate.com. -pagead2.googlesyndication.com. -time.nist.gov. -gonewiththetwins.com. -219.251.63.204.in-addr.arpa. -wkowtv-com.mail.eo.outlook.com. -toolbox.contentspread.net. -www.google.com. -quarantine.royallepage.ca. -www.facebook.com. -i2.ytimg.com. -www.scientology.pt. -www.wineselect.com.uy. -www.garbarino.com. -41.38.106.187.in-addr.arpa. -71.33.223.201.in-addr.arpa. -www.africanaquatics.co.za. -buzzbox.buzzfeed.com. -connect.facebook.net. -i1.ytimg.com. -www.usavetoday.co.uk. -profile.ak.fbcdn.net. -smtp.provcombank.com. -gtinsurance.net. -crl.microsoft.com. -ade.k12.ms.us. -www.facebook.com. -www2.una.edu. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -17.168.138.187.in-addr.arpa. -ctn.it. -guard.nexon.net. -login.live.com. -www.youjel.ly. -youtube-ui.l.google.com. -www.a-m-o-r.blogspot.com. -matejacro.polyvore.com. -blog-frasescelebres.blogspot.com. -indiaplazamail.com. -ns4.mentora.biz. -nspmotion.com. -6.190.171.88.in-addr.arpa. -www.breakmedia.com. -www.eatis.org. -hub5idx.shub.sandai.net. -a7.sphotos.ak.fbcdn.net. -33.253.195.187.in-addr.arpa. -multimedia.nydailynews.com. -plusone.google.com. -95.229.134.187.in-addr.arpa. -a.root-servers.net. -www.kaspersky.com. -us.data.toolbar.yahoo.com. -static4.videobam.com. -s.ytimg.com. -myspread.co.uk. -profile.ak.fbcdn.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.digitape.com. -237.60.175.189.in-addr.arpa. -i4.ytimg.com. -inbound1.metrocast.net. -time.windows.com. -es.lyricsgaps.com. -a.root-servers.net. -profile.ak.fbcdn.net. -141.179.247.190.in-addr.arpa. -img100.xvideos.com. -228.18.111.189.in-addr.arpa. -fxfeeds.mozilla.com. -228.7.169.89.in-addr.arpa. -26.107.93.186.in-addr.arpa. -heritubsyose.com. -tpprm.ru. -feeds.bbci.co.uk. -dns.ystrad-mynach.ac.uk. -www.nbc40.net. -apps.facebook.com. -static.ak.facebook.com. -feeds.feedburner.com. -js2.wlxrs.com. -pixel.facebook.com. -developers.facebook.com. -redeoxi.net. -onsecurityvid.pearson.libsynpro.com. -dinsmoreworkshop.blogspot.com. -teredo.ipv6.microsoft.com. -a4.sphotos.ak.fbcdn.net. -236.170.12.186.in-addr.arpa. -strollinfield.com. -d2100109.xoom.it. -techbroker.com. -27.130.127.84.in-addr.arpa. -mail.divinesearch.com. -relay.lafondiariatreviglio.it. -a5.sphotos.ak.fbcdn.net. -overseasjobs.escapeartist.com. -tips.kuwo.cn. -a4.sphotos.ak.fbcdn.net. -accounts.google.com. -apps.facebook.com. -a4.sphotos.ak.fbcdn.net. -az15112.vo.msecnd.net. -js.pokernet.dk. -a8.sphotos.ak.fbcdn.net. -mail.dottikon.com. -mail1.iship.com. -www.youtube.com. -www.veterinariaexoticos.com.ar. -www.donnelly24.com. -ev.ib-ibi.com. -photos-h.ak.fbcdn.net. -173.141.78.89.in-addr.arpa. -www.update.microsoft.com. -nspmotion.com. -relay.edison.com.hk. -manosurbanasscrap.blogspot.com. -www.nic.com.kw. -qualitytech.com. -74.15.124.189.in-addr.arpa. -189.4.157.201.in-addr.arpa. -s.ytimg.com. -bit.ly. -smtpmail1.xvand.com. -fluidpowernet.com. -sr0.comstar.ru. -static.avast.com. -a.root-servers.net. -b-0.19-230a1089.1081.1518.19d3.3ea1.410.0.am9iezikd1d13rw9j23eaurksb.avqs.mcafee.com. -photos-b.ak.fbcdn.net. -loading6.widdit.com. -193.93.125.74.in-addr.arpa. -216.111.25.190.in-addr.arpa. -acenexus.com. -www.facebook.com. -wlc.hebrewtanakh.com. -imap.gmail.com. -qki.bg. -d.5.9.f.8.8.1.5.f.5.5.2.e.1.c.1.6.7.e.9.7.3.1.4.0.0.0.0.1.0.0.2.ip6.arpa. -midcountypc.com. -dc392.4shared.com. -us.data.toolbar.yahoo.com. -fun.techradium.com. -connect.facebook.net. -static.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -i727.photobucket.com. -i-o.net.au. -jiu66.cn. -empoweredbiblestudy.blogspot.com. -pagead2.googlesyndication.com. -www.squareinsider.com. -7tools.ru. -down.sjxyx.com. -www.update.microsoft.com. -msn.levelup.com.mx. -249.55.228.85.in-addr.arpa. -apps.facebook.com. -mangans.blogspot.com. -www.googleadservices.com. -e3191.c.akamaiedge.net. -inbound.mole-end.com.netsolmail.net. -www.smarturl.it. -105.23.75.187.in-addr.arpa. -appworld.blackberry.com. -www.rpp.com.pe. -static.zsl.org. -com-services.pandonetworks.com. -. -bit.ly. -17.148.182.93.zz.countries.nerd.dk. -mail.ridex.ru. -56.67.215.189.in-addr.arpa. -tagler.cl. -x-images1.bangbros.com. -ssl.gstatic.com. -r._dns-sd._udp.lan. -www.twitter.com. -antivirus5.cynet.co.jp. -ar.games.yahoo.com. -photos-g.ak.fbcdn.net. -www.gaystack.com. -apps.tianya.cn. -static.scanscout.com. -132.176.126.87.in-addr.arpa. -84.45.55.186.in-addr.arpa. -cdn1.videothumbs.xtube.com. -www.duramerica.com. -249.147.50.95.in-addr.arpa. -www.iduplicate.us. -secure.gaug.es. -26.127.227.190.in-addr.arpa. -partner.vrvm.com. -profile.ak.fbcdn.net. -top-sc.daum.net. -a.root-servers.net. -pixel.quantserve.com. -ibo2gusli.25tu. -static.ak.fbcdn.net. -westerndiatoms.colorado.edu. -de-de.facebook.com. -www.decolar.com. -q.home. -teredo.ipv6.microsoft.com. -adeiphia.net. -beattylumber.com. -rss.my.nero.com. -docs.google.com. -lh5.ggpht.com. -www.hhizle.com. -widgets.api.ebay.com. -htmlentities.net. -ticknthistle.com. -crl.geotrust.com. -static4.filefront.com. -www.tecnocemento.com. -www.creativaint.com. -67.202.230.190.in-addr.arpa. -a1505.l.akamai.net. -2.246.1.187.in-addr.arpa. -www.lubosa.com.mx. -33-courier.push.apple.com. -www.lolshock.com. -99.23.248.63.in-addr.arpa. -plusone.google.com. -centurrytel.net. -i.ytimg.com. -98.6.62.120.in-addr.arpa. -creative.ak.fbcdn.net. -1m:ip6jj1.12iz. -xxx.nick-toons.net. -www.lasa.com.mx. -ns2.webkontrol.doruk.net.tr. -a4.sphotos.ak.fbcdn.net. -mail.dakota.com.br. -80.85.171.201.in-addr.arpa. -www.bluesfestivals.com. -kinnofilm.ru. -www.andorraguia.com. -pixel.quantserve.com. -19.76.228.165.in-addr.arpa. -firesafetysystems.com. -a-0.19-26091081.e0b0083.1518.19d4.3ea1.210.0.vmlhtvjuflgiddme6imndigcd6.avqs.mcafee.com. -la-uno.com. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -233.254.75.86.in-addr.arpa. -120.234.221.87.in-addr.arpa. -mail.nnex.net. -www.webstore.softexpert.com. -resp.survey01.net. -s.chzbgr.com. -146.70.251.212.in-addr.arpa. -mx.youtube.com. -photos-a.ak.fbcdn.net. -static.ak.fbcdn.net. -dl2.htc.com. -5.87.240.201.in-addr.arpa. -dr._dns-sd._udp.lan. -30.23.232.189.in-addr.arpa. -219.10.206.196.in-addr.arpa. -netscaper.net. -im.messenger-update.com. -s.youtube.com. -atlasdmt.vo.msecnd.net. -a6.sphotos.ak.fbcdn.net. -wzeu.ask.com. -www.elnaveghable.cl. -t2.gstatic.com. -7.162.160.189.in-addr.arpa. -60.61.34.186.in-addr.arpa. -blue.plala.or.jp. -realnw.ru. -photos-c.ak.fbcdn.net. -www.avsim.su. -m.facebook.com. -campbell.k12.va.us. -sp.cwfservice.net. -a2.sphotos.ak.fbcdn.net. -247.21.226.189.in-addr.arpa. -a-0.19-210f1001.c080081.1518.19d4.3ea1.210.0.56w5db9fams4nfne7us43b3qk6.avqs.mcafee.com. -voipa.sip.yahoo.com. -a1.sphotos.ak.fbcdn.net. -lrmail.com. -netpay31.sdo.com. -www.mommynature.com. -28-courier.push.apple.com. -llorca-enriqueta.blogspot.com. -230.11.207.178.in-addr.arpa. -78.29.133.186.in-addr.arpa. -photos-d.ak.fbcdn.net. -log.client.akadns.net. -edag.com.br. -144.113.39.216.in-addr.arpa. -fdh5xuxdk.02ct. -vaniava.wordpress.com. -www.compumundo.com.ar. -mx.aisco-yemen.com. -cdn.api.twitter.com. -s-static.ak.fbcdn.net. -toolbarqueries.clients.google.com. -t0.gstatic.com. -sohumx.h.a.sohu.com. -teamrepro.com. -sllimages.s3.amazonaws.com. -www.histats.com. -affluence.ru. -foxnetsolutions.com.s5b1.psmtp.com. -slys.ru. -serv11.boxca.com. -royalinteriors.ru. -93.22.189.190.in-addr.arpa. -www.boostindependentmusic.com. -mx.smtnw.com. -secure.shared.live.com. -api.tweetmeme.com. -tilsted.com. -139.42.134.188.in-addr.arpa. -tas.orangeads.fr. -rpg-maker-xp.softonic.com. -clients2.google.com. -dns.msftncsi.com. -www.macappfans.org. -46.214.6.189.in-addr.arpa. -25.220.64.199.in-addr.arpa. -thmarine.com.s8b1.psmtp.com. -stroudcenter.org.s7a2.psmtp.com. -icons.cubics.com. -compsourceok.com. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -www.immunoconcepts.com. -ecn.t1.tiles.virtualearth.net. -17iywqlpz.i60v6h0d. -external.ak.fbcdn.net. -www.coloriuris.net. -teredo.ipv6.microsoft.com. -v3.cache1.c.youtube.com. -240.154.74.108.in-addr.arpa. -igor.funmoods.com. -googleads.g.doubleclick.net. -pix.lfstmedia.com. -xm.xtendmedia.com. -hdfsi.com. -www.losangelesinternships.com. -srpmic.com. -a.root-servers.net. -departmanmedya.com. -a4.sphotos.ak.fbcdn.net. -orangemail.com. -delta-kr.ru. -www.textsrv.com. -go.srvnow.com. -www.recapist.com. -a8.sphotos.ak.fbcdn.net. -5littles.com. -www.interpretamos.com. -98.231.3.190.in-addr.arpa. -s-static.ak.fbcdn.net. -183.58.138.187.in-addr.arpa. -salterlabs.com.2.arsmtp.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -67.198.86.208.in-addr.arpa. -175.197.14.187.in-addr.arpa. -253.7.91.77.in-addr.arpa. -www.myshoutbox.com. -www.autoresponseplus.com. -173.8.177.72.in-addr.arpa. -arsecurity.com. -m.facebook.com. -pic2.bai.sohu.com.cn. -teredo.ipv6.microsoft.com. -sunflower.bio.indiana.edu. -_767_78_3. -a.root-servers.net. -rek.irk.ru. -s.openad.tf1.fr. -a1.sphotos.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -ilaaheb14.28xc. -yahoo.co.ae. -profile.ak.fbcdn.net. -www.9v8v.com. -www.maleikie.blogspot.com. -www.facebook.com. -186.209.154.109.in-addr.arpa. -3.bp.blogspot.com. -downloads8.uptodown.net. -yahoo.com. -teeworlds.softonic.com. -redjellyfish.com. -a8.sphotos.ak.fbcdn.net. -media.ticketmaster.com. -remanage.otepremium.gr. -www.evanbot.com. -safebrowsing-cache.google.com. -www.heat-pump-systems.org. -forum.say7.info. -6sigmasolution.com. -www.hookah-pipe.com. -104.17.195.68.in-addr.arpa. -jlisigns.com. -www.hitachi.com. -dmail.com. -g4w0041.americas.hpqcorp.net. -www.chistesinternet.com. -es.wikipedia.org. -a.root-servers.net. -www.flynetonline.com. -232.228.74.89.in-addr.arpa. -firefox01.taobao.com. -outbound.mailhop.org. -ar.fifa.com. -ad.turn.com. -s.ytimg.com. -www.divenewzealand.com. -allsignsdirect.com. -newsrss.bbc.co.uk. -gallantsys.com. -www.google.com. -teredo.ipv6.microsoft.com. -dns.msftncsi.com. -linbox.ru. -us.mg4.mail.yahoo.com. -google.com. -poutres.com. -ecuamagazine.com. -musyuseidougamura.blog134.fc2.com. -www.makrama.es. -profile.ak.fbcdn.net. -youtu.be. -18.116.55.65.sbl.spamhaus.org. -a2.sphotos.ak.fbcdn.net. -iafrica.com. -vt1b741ks.q92l1m6s. -51.219.252.72.in-addr.arpa. -developers.facebook.com. -www.canonusa.com. -gg24t6oom.b19i4v0q. -www.aviacion.mil.ve. -msntest.serving-sys.com. -isearch.babylon.com. -727431333032.696e666f6c696e6b73.636f6d.80h4ac8e4a3.webcfs00.com. -75.154.45.190.in-addr.arpa. -m.facebook.com. -132.249.66.152.in-addr.arpa. -jenners.com. -mx.mediagroup-consulting.com.cust.b.hostedemail.com. -www.fanmexico.net. -a8.sphotos.ak.fbcdn.net. -es.aliexpress.com. -wp.me. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -hmit.ww.msn.com. -www.google.com. -creative.ak.fbcdn.net. -extranet.ufc.tv. -www.bearnet.eu. -99.87.136.220.in-addr.arpa. -www.ots.ac.cr. -dyn-images.hsn.com. -a.root-servers.net. -www.themetal-spirit.com. -100.96.191.209.in-addr.arpa. -photos-a.ak.fbcdn.net. -219.77.91.190.in-addr.arpa. -www.adobe.com. -theglamourwhore.blogspot.com. -profile.ak.fbcdn.net. -static.ak.fbcdn.net. -mclaire.ru. -200.232.187.189.in-addr.arpa. -124.22.38.190.in-addr.arpa. -42.123.158.187.in-addr.arpa. -www.steel-sci.org. -192.107.105.189.in-addr.arpa. -a-0.19-23094081.c0f0083.1518.19d0.3ea1.210.0.zp77cr5ulnlsmfvftm57rc5mgq.avqs.mcafee.com. -equestria-prevails.deviantart.com. -0-jw-w.channel.facebook.com. -de.tynt.com. -mail.ccmadocs.com. -www.wildtangent.com. -bit.ly. -list.bentium.net. -cn.pool.ntp.org. -start.facemoods.com. -arcade.y8-y8.com. -img4.catalog.video.msn.com. -pmcarpenter.blogs.com. -www.facebook.com. -46.224.150.64.in-addr.arpa. -static.ak.fbcdn.net. -csc.beap.ad.yieldmanager.net. -checkip.dyndns.org. -www.facebook.com. -235.19.214.186.in-addr.arpa. -www.airgraver.com. -rumahmadu.com. -l.yimg.com. -rosarioout.blogspot.com. -pixel.facebook.com. -asalallenaonline.com.ar. -230.61.137.187.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -5449380.ru. -205.78.167.79.in-addr.arpa. -partner.googleadservices.com. -romanticlub.en.alibaba.com. -myfacebooktoolbar.s3.amazonaws.com. -google.com. -a.root-servers.net. -battlefield2.ru. -amer.rel.msn.com. -82.66.110.189.in-addr.arpa. -creative.ak.fbcdn.net. -bellsou1h.net. -196.174.83.200.in-addr.arpa. -nancythomas.blogspot.com. -montbleau.com. -165.240.254.99.in-addr.arpa. -www.flirtfair.it. -www.2gaypasswords.com. -mx.263.net. -profile.ak.fbcdn.net. -profile.ak.fbcdn.net. -c-0.19-210fc271.8020081.1518.19d3.3ea1.210.0.9mdra7zszvzfpdszhrtwc9k4jj.avqs.mcafee.com. -dns.msftncsi.com. -a2.sphotos.ak.fbcdn.net. -cdn.mdotm.com. -www.godmammon.com. -concheck.nimbuzz.com. -accounts.google.com. -a5.sphotos.ak.fbcdn.net. -threadedrod.com. -jmwelectric.com. -www.msftncsi.com. -a.root-servers.net. -show.kirov.ru. -ccandw.com. -t.co. -96.170.6.200.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -rocktheworld.polyvore.com. -d3dqyhyld.39sf. -www.bravoteens.com. -ymcamontgomery.org. -sp.cwfservice.net. -sync.mathtag.com. -www.socialsafety.org. -apps.facebook.com. -ne1.wac.edgecastcdn.net. -g.msn.com. -bcge.ch. -content.yieldmanager.edgesuite.net. -spe.atdmt.com. -www.conspiracybomb.com. -0.57.29.186.in-addr.arpa. -83.63.168.94.in-addr.arpa. -www.boats.net. -clients1.google.com. -gocanada.about.com. -www.vodafone.ie. -a.root-servers.net. -a.root-servers.net. -media.adamdodson.org.woopra-ns.com. -jisublover.blogspot.com. -a.root-servers.net. -kyno.ru. -log.client.akadns.net. -photos-b.ak.fbcdn.net. -www.invodo.com. -altfarm.mediaplex.com. -files.adbrite.com. -www4.l.google.com. -mail.solarsilicon.com. -www.picnik.com. -mfspex.com. -appworld.blackberry.com. -www.guyana.com. -photos-b.ak.fbcdn.net. -_031_06_2. -portugues.vacationstogo.com. -84.247.164.190.in-addr.arpa. -nba2karg.forolatin.com. -marketing.iprofesional.com. -a.root-servers.net. -dns.msftncsi.com. -mail-2.galenica.ch. -de-de.facebook.com. -mksound.com. -214.33.136.187.in-addr.arpa. -az.wikipedia.org. -a4.da1.akamai.net. -codep30rollerskating.fr. -darkbattm14-videos.blogspot.com. -www.transparency.org. -www.adobe.com. -92.97.82.108.in-addr.arpa. -35.147.179.189.in-addr.arpa. -feeds.videosz.com. -dns.msftncsi.com. -dr._dns-sd._udp.0.0.168.192.in-addr.arpa. -safebrowsing.clients.google.com. -29.150.16.181.in-addr.arpa. -93.57.40.190.in-addr.arpa. -41.247.143.189.in-addr.arpa. -static.ak.fbcdn.net. -stagemoscow.ru. -120.165.98.85.in-addr.arpa. -www.ascensionenergyprogram.com. -moda.aukro.ua. -the.illusionist.tracker.prq.to. -80.181.88.186.in-addr.arpa. -www.allcelebritiessex.net. -eemeasess07.eemea.ericsson.se. -mail.google.com. -phuketgolf.com. -faith.rydia.net. -am.ricardo.ch. -content.yieldmanager.edgesuite.net. -liveupdate.symantecliveupdate.com. -google.com. -177.148.99.190.in-addr.arpa. -169.cim.meebo.com. -dealcom.ru. -a1505.l.akamai.net. -ad.yieldmanager.com. -supremeflooring.net. -external.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -a998.mm1.akamai.net. -232.101.171.189.in-addr.arpa. -si0.twimg.com. -marquettenatl.com. -103.151.109.190.in-addr.arpa. -190.170.36.186.in-addr.arpa. -checkip.dyndns.com. -a.root-servers.net. -38.189.7.81.in-addr.arpa. -www.facebook.com. -158.166.138.187.in-addr.arpa. -google.com. -c247723.r23.cf1.rackcdn.com. -s-static.ak.fbcdn.net. -petersresort.com. -www.facebook.com. -allconnex.com.s7b1.psmtp.com. -1.53.44.176.in-addr.arpa. -apis.google.com. -www.scp-wiki.net. -_061_46_9. -a.root-servers.net. -www.noveldadigital.es. -photos-d.ak.fbcdn.net. -profile.ak.fbcdn.net. -b-0.19-22016008.580.1518.19d4.3ea1.410.0.7akhquus6vkutd5v1vntgif765.avqs.mcafee.com. -refresh.monohrome.com. -google.com. -a.root-servers.net. -4e1q7m25n.c48r4d0p. -b._dns-sd._udp.lan. -greenpeace.ru. -76.67.36.46.in-addr.arpa. -s-static.ak.fbcdn.net. -hwcdn.net. -r._dns-sd._udp.lan. -photos-c.ak.fbcdn.net. -a.root-servers.net. -search.bearshare.com. -photos1.hi5.com. -statusformaturas.com.br. -www.google-analytics.com. -static.ak.fbcdn.net. -gallery.hartmannwheels.com. -120.142.90.78.in-addr.arpa. -162.158.224.190.in-addr.arpa. -hortonsigns.co.nz. -www.belkin.com. -a1.sphotos.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -mail.live.com. -www.fal.com.mx. -105.94.19.201.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -mail.kop.ru. -photos-e.ak.fbcdn.net. -a377.w23.akamai.net. -hotmail.com. -photos-h.ak.fbcdn.net. -a.root-servers.net. -148.239.29.202.in-addr.arpa. -yoshifuji.org. -227.60.237.189.in-addr.arpa. -pixel.facebook.com. -cgigroup.com. -tsm04.eset.com. -genieind.com. -mail.vision2results.com. -a1.sphotos.ak.fbcdn.net. -bit.ly. -58.95.145.64.in-addr.arpa. -cronistadearena.blogspot.com. -a1406.w42.akamai.net. -pixel.facebook.com. -www.juicygoo.com. -www.vanguardia.com.mx. -ssl.gstatic.com. -messenger.yahoo.com. -www.nikonhq.com. -myomnicomp.com.s8a1.psmtp.com. -207.96.102.201.in-addr.arpa. -bghgmi85m.49cw. -weekly.ua. -147.99.48.190.in-addr.arpa. -www.facebook.com. -groups.yahoo.com. -53.73.187.78.in-addr.arpa. -www.3dtoontube.com. -cdn.loading321.com. -fbcdn-profile-a.akamaihd.net. -www.lafolia.com. -www.extremetube.com. -a5.sphotos.ak.fbcdn.net. -d2107725.xoom.it. -6-courier.push.apple.com. -ielu.wamani.apc.org. -photos2.pop6.com. -trissalicious.com. -mx3.rowan.edu. -inetsite.ru. -www.popinstituut.nl. -adserver.adtechus.com. -212.62.6.186.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -moris.ru. -static.hotelsone.com. -us.data.toolbar.yahoo.com. -a4.sphotos.ak.fbcdn.net. -spb.nek.ru.s200a1.psmtp.com. -dns.msftncsi.com. -secure-uk.imrworldwide.com. -a.root-servers.net. -www.kerri. -photos-b.ak.fbcdn.net. -a.root-servers.net. -cdna.pics.youjizz.com. -ksn1-11-part1.kaspersky-labs.com. -px.owneriq.net. -a1.sphotos.ak.fbcdn.net. -www.gruposantillana.com. -48.25.145.186.in-addr.arpa. -exitrealtyabacus.com. -pagead2.googlesyndication.com. -79.52.92.186.in-addr.arpa. -www.courthouse.kay.ok.us. -lazarusfoundation-asiapacific.org. -c-0.19-230f6041.10081.1518.19d3.2f4e.10.0.zneg8jpfq12mrtk94v6p4ibuei.avqs.mcafee.com. -a1108.da1.akamai.net. -mail.bolo.com. -www.causes.com. -b._dns-sd._udp.home. -162.74.156.93.in-addr.arpa. -www.ojogo.pt. -lcbf-com.relay1b.spamh.com. -r20.rs6.net. -www.pellegrinocattolico.com. -16.147.220.66.in-addr.arpa. -ns.linkexplore.ro. -6-courier.push.apple.com. -167.219.206.91.in-addr.arpa. -greenslip.com. -e-premieradvantage.com. -support.live.com. -110.192.201.173.sbl.spamhaus.org. -cakecreate.co.uk. -56.55.123.69.in-addr.arpa. -www.fswshoes.com.au. -www.mp3-codes.com. -a.root-servers.net. -dmsr.files.wordpress.com. -l.sharethis.com. -loading321.com. -mail.benchmarklends.com. -105.219.120.187.in-addr.arpa. -verbes.woxikon.fr. -images.habbo.com. -statcounter.com. -94.35.12.88.in-addr.arpa. -agrimedia.info. -a.root-servers.net. -www.wanderlust-movie.com. -www.facebook.com. -hairsaloon.com. -www.go-video-ltd.co.uk. -txtmpmnn.com. -hotmail.com. -elartedelacomunicacion.blogspot.com. -natadosromances.blogspot.com. -139.70.27.188.in-addr.arpa. -forestcity.net.s7a2.psmtp.com. -www.facebook.com. -crl.microsoft.com. -www.wikimediafoundation.org. -www.jornada.unam.mx. -27.164.112.76.in-addr.arpa. -www.musiikkitalo.fi. -www.lomejordelheavy.com. -consfab.com. -e3167.c.akamaiedge.net. -86.183.57.187.in-addr.arpa. -images.images4us.com. -translate.googleapis.com. -mail.imobileus.com. -us1.badoo.com. -energia.corriere.it. -photos-a.ak.fbcdn.net. -rmd.atdmt.com. -healthguide.howstuffworks.com. -whatdoesthebiblesayabout.com. -wpad. -www.queregalo.cl. -redir.metaservices.microsoft.com. -www.c24.com.br. -plusone.google.com. -getdocumentary.com. -www.match4me.be. -www.flowers24hours.co.uk. -google.com. -apps.facebook.com. -google.com. -platform.ak.fbcdn.net. -www.justin.tv. -124.210.131.74.in-addr.arpa. -api.twitter.com. -video.google.es. -imap.gmail.com. -www.audible.com. -a.root-servers.net. -a.root-servers.net. -club.astro.sina.com.cn. -www.facebook.com. -power.ru. -107.37.10.187.in-addr.arpa. -fatmaturebbw.thumblogger.com. -23.191.25.187.in-addr.arpa. -www.lesbianascolegialas.com. -hfns.com. -pinterest.com. -x4.xvideohost.com. -transporteskortmann.cl. -eulcpf2v2.90mk. -datitoos.org. -ad.foxnetworks.com. -a.root-servers.net. -ouest-france.fr. -impes.tradedoubler.com. -78.147.214.189.in-addr.arpa. -ent.paris-sorbonne.fr. -awe-newtech.com. -google.com. -c3christiancounseling.com. -ppenet.com.s8a2.psmtp.com. -em.tenant401.ovi.messaging.nokia.com. -bitacoras.com. -st.chatango.com. -s-external.ak.fbcdn.net. -237.66.0.10.in-addr.arpa. -114.113.7.187.in-addr.arpa. -developers.facebook.com. -ihzoopy14.77ki. -www.facebook.com. -a7l8ctpwo.m64f9a0x. -static.ak.facebook.com. -ssl.gstatic.com. -tecnobreros.wordpress.com. -profile.ak.fbcdn.net. -a.root-servers.net. -12.187.88.208.in-addr.arpa. -www.facebook.com. -biz52.ru. -thumbnails34.imagebam.com. -profile.ak.fbcdn.net. -. -orr99bcq6.00vy. -www.ritamitsouko.com. -www.harley-bobbers.com. -mx1.snapnames.com. -mematodelarisa.blogspot.com. -pagead2.googlesyndication.com. -petronmarketing.com. -merida.adoos.com.mx. -www.alexanderneumann.com. -fisinc.com. -s4.histats.com. -premiermtg1.com. -cydia.saurik.com.cdngc.net. -www.dpreview.com. -38.162.43.200.in-addr.arpa. -ufojeans.tumblr.com. -125.120.234.98.in-addr.arpa. -bluelawllp.com. -download.juegos.com. -addacover.com. -50.253.101.174.in-addr.arpa. -id.google.com. -nicolas_17_n.tripod.com.mx. -geokite.com. -yahoo.com. -pass.yandex.ru. -cinergymetronet.com. -zonamanga.com. -images.yodibujo.es. -aspmx.l.google.com. -v14.nonxt3.c.youtube.com. -torrntdao.blog129.fc2.com. -www.eluniversal.com.mx. -paragondm.com. -www.mercedes.de. -bs.serving-sys.com. -s.ytimg.com. -mx.posluh.hr. -k2vm6jz5y.l34v9b3f. -mobth198.photobucket.com. -mx2.talk21.mail.yahoo.com. -culture.alwatanyh.com. -www.womensgolf.org.au. -fwgapp.net.s200b1.psmtp.com. -www.godney.fan-strefa.pl. -lighthousetoyota.com.inbounda.reyrey.net. -api-global.netflix.com. -funt.ru. -mx1.earthlink.net. -3cwboio1p.g20r0n5k. -hqde.infrabrk.com. -233.165.102.97.in-addr.arpa. -24.187.23.95.in-addr.arpa. -profile.ak.fbcdn.net. -www.medieval-castle-siege-weapons.com. -spbmetro.ru. -teredo.ipv6.microsoft.com. -ajax.googleapis.com. -www.orthocast-online.com. -251.21.0.192.in-addr.arpa. -soap.bmstu.ru. -speedy.imo.im. -photos-f.ak.fbcdn.net. -sites.google.com. -www.geotenis.com. -studentschile.tripod.com. -www.cdmale.com. -www.google-analytics.com. -ib.adnxs.com. -adwhirllb-473732162.us-east-1.elb.amazonaws.com. -www.uaz.edu.mx. -27.109.250.189.in-addr.arpa. -img.youtube.com. -bobschwab.com. -88.59.191.189.in-addr.arpa. -reports.montiera.com. -surfsurd.hubpages.com. -friends.doubledowncasino.com. -incorporation.ru. -a.root-servers.net. -pheedo.msnbc.msn.com. -a3.sphotos.ak.fbcdn.net. -crl.globalsign.net. -a.root-servers.net. -www.googleadservices.com. -19.128.100.190.in-addr.arpa. -www.youtube.com. -www.facebook.com. -ax.search.itunes.apple.com. -mailgw.deerfieldpartners.com. -213.209.94.190.in-addr.arpa. -profile.ak.fbcdn.net. -cdn.feeds.videosz.com. -190.136.105.92.in-addr.arpa. -www.zingy.fr. -webassets3.sparkybee.com. -g.espncdn.com. -8.138.162.184.in-addr.arpa. -del.icio.us. -121.151.24.88.in-addr.arpa. -rya.rockyou.com. -a.root-servers.net. -es.tatsuorg.wikia.com. -www.lotto-results.co.za. -152.25.48.190.in-addr.arpa. -www.cotifiesta.cl. -ad.e-viral.com. -www.movistar.com.pe. -reachandrich.antevenio.com. -253.7.105.201.in-addr.arpa. -photos-c.ak.fbcdn.net. -teredo.ipv6.microsoft.com. -mail.giumarravineyards.com. -grindesign.tumblr.com. -p0b.ru. -t1.gstatic.com. -_866_03_6. -235.83.137.118.in-addr.arpa. -creative.ak.fbcdn.net. -_ldap._tcp. -mail.bkrlaw.com. -141.194.245.189.in-addr.arpa. -www.periodicoadarve.com. -strsd.southwick.ma.us. -14.174.240.67.in-addr.arpa. -a.root-servers.net. -ksn7.kaspersky-labs.com. -canitscan1.cal.net. -180.201.48.190.in-addr.arpa. -sub-talk.net. -press.ba.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -apple.com. -img-cdn.mediaplex.com. -profile.ak.fbcdn.net. -_480_84_7. -69.148.214.189.in-addr.arpa. -crona-m.ru. -158.198.174.190.in-addr.arpa. -www.leivankash.com. -197.26.128.188.in-addr.arpa. -26438.envacaciones.info. -media-cdn.tripadvisor.com. -100.3.59.186.in-addr.arpa. -adserver.adtech.de. -fbcdn-profile-a.akamaihd.net. -www.genomereviews.ebi.ac.uk. -in.getclicky.com. -ledfordmed.secure-enterprise.com. -img100.xvideos.com. -chocoline.ru. -sites.google.com. -cs9345.vk.com. -a.root-servers.net. -1diet.jp. -137.25.130.189.in-addr.arpa. -a.root-servers.net. -img298.imagevenue.com. -static.ak.fbcdn.net. -73.17.213.186.in-addr.arpa. -173.199.15.95.in-addr.arpa. -img124.hotlinkimage.com. -www.ifixit.com. -mail.b2buying.com. -161.131.194.187.in-addr.arpa. -prgschultz.net. -teredo.ipv6.microsoft.com. -87.85.237.189.in-addr.arpa. -www.update.microsoft.com. -53.193.226.189.in-addr.arpa. -238.250.253.190.in-addr.arpa. -sites.google.com. -111.230.231.77.in-addr.arpa. -piuv5.francetv.fr. -teredo.ipv6.microsoft.com. -tempfile.ru. -119.78.201.41.in-addr.arpa. -229.52.74.190.in-addr.arpa. -mamasita.wordpress.com. -cdn.ubergizmo.com. -agriproj.com. -pixel.facebook.com. -orcart.facebook.com. -atube-catcher.uptodown.com. -_ldap._tcp. -15.175.192.94.in-addr.arpa. -any-ycpi.aycpi.b.yahoodns.net. -ndt.iupui.ath01.measurement-lab.org. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -cloutieretfils.com. -d2055705.instant.xoom.it. -15.92.82.203.in-addr.arpa. -www.wguaba.com. -228.26.126.187.in-addr.arpa. -advancemfg.com. -www.cam4com.info. -77.161.100.118.in-addr.arpa. -ksn3-11.part1.kaspersky-labs.com. -peopleschoicesurgical.com. -www.google.com. -www.clickondetroit.com. -www.agiteysirva.com. -arcade-classic-arcade-pack.softonic.com. -nichegeek.com. -andreaslagerkvist.com. -s-static.ak.facebook.com. -www.facebook.com. -www.moviezet.com. -a.root-servers.net. -151.11.46.24.in-addr.arpa. -bypalisades.com.inbound10.mxlogicmx.net. -cuenca.anuxi.ec. -www.digiturk.gen.tr. -radiodisney.disneylatino.com. -ph.priceprice.com. -63.162.32.114.in-addr.arpa. -webconfig.merck.com.nch.intra. -zh-cn.facebook.com. -250.69.237.189.in-addr.arpa. -60.249.191.186.in-addr.arpa. -www.walmart.com.mx. -179.54.186.189.in-addr.arpa. -176.111.55.65.in-addr.arpa. -comunidad.levante-emv.com. -213.198.19.201.in-addr.arpa. -mm3.no-ip.info. -a.root-servers.net. -smtp.wpcind.com. -apps.bittorrent.com. -onemain-mx.earthlink.net. -a7.sphotos.ak.fbcdn.net. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -cmknn.ru. -48.163.46.208.in-addr.arpa. -config.pinballbu1.com. -careers.nyumc.org. -ezfwpdp.die.net. -jobs.careerbuilder.com. -226.248.132.82.in-addr.arpa. -larrygibbons.com. -www.google.com.mx. -a7.sphotos.ak.fbcdn.net. -9.239.193.212.in-addr.arpa. -_155_52_3. -www.brendanemmettquigley.com. -207.246.54.96.in-addr.arpa. -twitter.com. -imgfinance.naver.net. -www.facebook.com. -latitudeds.com. -132.52.123.88.in-addr.arpa. -wwwimages.adobe.com. -www.infometeo.es. -ile-tropicale.com. -mx.sotcom.ru.ryazan.ru. -s.sputnik.mail.ru. -img18.mediafire.com. -www.download.windowsupdate.com. -_741_39_8. -dano-uso-audifonos.blogspot.com. -www.zonafandom.com. -www.google-analytics.com. -e269.b.akamaiedge.net. -rdr.leeds.ac.uk. -cl1bak2smtp1.na.epidm.net. -ftryea.com. -cdnis3.cam4.com. -sony-928.vo.llnwd.net. -dns.msftncsi.com. -www.farmacia-espana.org. -www.futuredimensions.net. -www.carrera-toys.com. -0.242.144.186.in-addr.arpa. -albatros.spb.ru. -www.qcmp3.com. -sirius-art.spb.ru. -cap1.conduit-apps.com. -rad.msn.com. -www.imgclck.com. -main.dl.wu.akadns.net. -feeds.bbci.co.uk. -rapidssl-aia.geotrust.com. -ajga.org. -un4rwezip.i32j0r6q. -safdf.com. -witer.bitacoras.com. -weldinghouse.com. -eaglemortgageloan.com. -feeds.feedburner.com. -. -hotmail.com. -231.152.25.46.in-addr.arpa. -www.sepyme.gov.ar. -pixel.facebook.com. -223.71.191.189.in-addr.arpa. -121.135.121.74.in-addr.arpa. -philippineamericanwar.webs.com. -au.download.windowsupdate.com. -www.sanook.at. -www.novacreations.net. -pagead2.googlesyndication.com. -xsltcache.alexa.com. -apple.imap.mail.yahoo.com. -co.tvunetworks.com. -101.66.97.129.in-addr.arpa. -a.root-servers.net. -214.53.19.186.in-addr.arpa. -foodtrade.ru. -adi-martinique.fr. -www.rhapsody-fr.com. -oms.sakhanet.ru. -cdn.phonezoo.com. -www.myoutdoortv.com. -egaservicios.com. -152.71.43.208.in-addr.arpa. -touch.facebook.com. -nht-2.extreme-dm.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -static.ak.fbcdn.net. -chatyahoo.blogspot.com. -a.root-servers.net. -a.root-servers.net. -mail2.teknoloji.com. -www.facebook.com. -a.root-servers.net. -wakegov.com. -www.fho-emden.de. -rs292dt.rapidshare.com. -media.v55v.net. -sddic9gzp.26uj. -bz:74n6ge.z49t8n4r. -photos-c.ak.fbcdn.net. -allergan.com.s7b2.psmtp.com. -photos-a.ak.fbcdn.net. -caroserena.blogspot.com. -lineage2.free.fr. -www.cablemas.com.mx. -mail.goozmo.com. -110.99.81.186.in-addr.arpa. -c-0.19-a309d481.50483.1518.19d4.3ea1.410.0.dvvkjbg3g7rbsew6n8rdutm2wv.avqs.mcafee.com. -weather.wapp.wii.com. -evangeliodeldia.org. -tms5.icrc.trendmicro.com. -_877_92_6. -mail.scarsdaledentistry.com. -a5.sphotos.ak.fbcdn.net. -static.ak.fbcdn.net. -safebrowsing.clients.google.com. -b.scorecardresearch.com. -www.update.microsoft.com. -215.125.178.31.in-addr.arpa. -goosebox.net.lan. -www.http. -ssl.gstatic.com. -apps.facebook.com. -240.112.36.177.in-addr.arpa. -api.twitter.com. -www.humeseeds.com. -ad.doubleclick.net. -disneysjessie.com. -a5.sphotos.ak.fbcdn.net. -www.free-tv-video-online.me. -151.61.141.201.in-addr.arpa. -218.240.26.80.in-addr.arpa. -www.icameltoes.com. -load.s3.amazonaws.com. -pagead2.googlesyndication.com. -142.3.44.81.in-addr.arpa. -cf.addthis.com. -. -pixel.facebook.com. -149.130.50.201.in-addr.arpa. -c0013999.ssl.cf1.rackcdn.com. -e906.g.akamaiedge.net. -espanol.support.vonage.com. -softpro.msk.ru. -www.google.com. -a-0.19-230fd081.a060131.1518.19d4.3ea0.210.0.555215vife6tps7czkhjhiiz15.avqs.mcafee.com. -81.93.5.88.in-addr.arpa. -226.139.85.186.in-addr.arpa. -a995.mm1.akamai.net. -218.143.209.201.in-addr.arpa. -a8.sphotos.ak.fbcdn.net. -safebrowsing.clients.google.com. -www.xperthr.co.uk. -a1.sphotos.ak.fbcdn.net. -images03.olx-st.com. -cstheory.stackexchange.com. -www.youtube.com. -a.root-servers.net. -mail.96861mail.com. -trigate.com. -de-de.facebook.com. -www.adobe.com. -www.e-belis.com. -deltavolt.pe. -t3.gstatic.com. -lizzie-mcguire.seriespepito.com. -www.google.com. -ajax.googleapis.com. -g.ceipmsn.com. -a.root-servers.net. -s.youtube.com. -www.what-time-is-it.com. -25.174.219.190.in-addr.arpa. -mx1.mac.com.akadns.net. -www.hotmail.com. -www.metroscubicos.com. -static.ak.fbcdn.net. -pixel.facebook.com. -teacher.ocps.net. -202.218.11.200.in-addr.arpa. -profile.ak.fbcdn.net. -5.99.184.81.in-addr.arpa. -beta.stun.voice.yahoo.com. -www.segurosrossi.com.ar. -a.root-servers.net. -apps.facebook.com. -a.root-servers.net. -mashable.com. -58.147.87.186.in-addr.arpa. -195.103.16.186.in-addr.arpa. -www.trogontours.net. -127.104.4.186.in-addr.arpa. -fbcdn-photos-a.akamaihd.net. -qaxp.com. -sqm.microsoft.com. -pagead2.googlesyndication.com. -youtube.com. -a7.sphotos.ak.fbcdn.net. -mscrl.microsoft.com. -hoy-sa.com. -www.bebesymas.com. -a.root-servers.net. -209.ns1631262.net. -directas-descargas-rapidshare.blogspot.com. -210.59.187.115.in-addr.arpa. -211.94.138.189.in-addr.arpa. -43.62.75.187.in-addr.arpa. -api-public.addthis.com. -97.106.161.189.in-addr.arpa. -220.227.31.190.in-addr.arpa. -grupocolmenar.com. -www.kut-friends.com. -yahoo.com. -_895_96_3. -www.maslacasassa.com. -photos-e.ak.fbcdn.net. -developers.facebook.com. -www.use.com.ph. -communityhospital.com. -197.57.159.189.in-addr.arpa. -profile.ak.fbcdn.net. -badoo.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.google-analytics.com. -ninjasaga.superforos.org. -www.google-analytics.com. -harborexpress.com.inbound10.mxlogicmx.net. -pan.starmedia.com. -s7.addthis.com. -_134_50_9. -elpollohipnotico.wordpress.com. -168.215.228.77.in-addr.arpa. -fbcdn-sphotos-a.akamaihd.net. -c-0.19-a3094081.4010082.1518.19d4.3ea1.210.0.7u8bgmsrtmk94dmjibw29c4sq5.avqs.mcafee.com. -a.root-servers.net. -photos-b.ak.fbcdn.net. -s10.histats.com. -fxfeeds.mozilla.com. -i4.ytimg.com. -diad.capex.com.ar. -z1851z6rp.10zi. -clients4.google.com. -156.227.84.200.in-addr.arpa. -toolfarm.com. -www.youpouch.com. -harpiesbizarre.com. -a.root-servers.net. -mscrl.microsoft.com. -t0.gstatic.com. -41.244.197.65.in-addr.arpa. -check4.facebook.com. -weather.msn.com. -cs5.wac.edgecastcdn.net. -86.120.184.88.in-addr.arpa. -www.goddiva.co.uk. -gouvisgroup.com.s10a1.psmtp.com. -s0.2mdn.net. -creative.ak.fbcdn.net. -e566.b.akamaiedge.net. -i.ytimg.com. -www.paypalobjects.com. -31.73.171.201.in-addr.arpa. -ironport-mx-vip.maxnet.net.nz. -www.csidata.com. -live4this.com. -api.conduit.com. -www.brooklyn.liu.edu. -mx.zarlene.com. -prophotos.ru. -102.23.171.78.in-addr.arpa. -connect.facebook.net. -217.139.46.189.in-addr.arpa. -apps.facebook.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -au.download.windowsupdate.com. -kclinc.org. -www.amazinghotgirls.com. -profile.ak.fbcdn.net. -plusone.google.com. -spam.phison.com. -static.ak.fbcdn.net. -news.google.com. -maps.google.com. -28.126.156.201.in-addr.arpa. -b-0.19-210d2479.1f0000.1518.19d4.3ea0.410.0.57n2b377h7e4m77in2dvzq28lq.avqs.mcafee.com. -m.hotmail.com. -75.140.141.190.in-addr.arpa. -so35j64ls.x85r8p9k. -sp.cwfservice.net. -www.iegallery.com. -upload.wikimedia.org. -144.172.212.64.in-addr.arpa. -downloads.bf-servers.com. -9uaxokfq5.i77i8k7m. -mail.capitalconservator.com. -meengle.net. -213.101.99.86.in-addr.arpa. -www.coursokado.fr. -api.bestvideodownloader.com. -photos-b.ak.fbcdn.net. -download.windowsupdate.com. -stronzodimerda.it. -dvdfab-hd-decrypter.malavida.com. -m.hotmail.com. -sup.live.com. -static.ak.fbcdn.net. -. -searchjs.s3.amazonaws.com. -www.apple.com. -130.205.61.69.in-addr.arpa. -a21a.com. -_613_48_2. -teredo.ipv6.microsoft.com. -122.169.158.187.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.resonancechina.com. -scripts.affiliatefuture.com. -download.windowsupdate.com. -pepsico.trabajo.infojobs.net. -www.keys4.me. -ak1.abmr.net. -beta.stun.voice.yahoo.com. -developers.facebook.com. -umunu.com. -multiparking.com. -profile.ak.fbcdn.net. -gdata.youtube.com. -1np4eey8c.y44y3o0i. -252.220.51.190.in-addr.arpa. -luttner.com. -mobile.blackberry.com. -dr._dns-sd._udp.0.0.0.5.in-addr.arpa. -maps.google.com. -ag-c.ru. -122.188.66.187.in-addr.arpa. -microtekmed.com.s8b1.psmtp.com. -a.root-servers.net. -www.baropen.com.au. -53.32.56.85.in-addr.arpa. -nt.go.th. -146.194.51.190.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -cyberlife.co.uk. -moonconnection.com. -dr._dns-sd._udp.0.129.37.10.in-addr.arpa. -sitno.mgn.ru. -benjaesoptimus.spaces.live.com. -ppc.2-01-282a-0002.cdx.cedexis.net. -www.bandoo.com. -www.google-analytics.com. -platform.twitter.com. -ksn1-12-part2.kaspersky-labs.com. -unreasonableness.com. -_901_68_5. -connect.facebook.net. -safebrowsing.clients.google.com. -frontiermedical.net.inbound15.mxlogic.net. -223.152.123.201.in-addr.arpa. -static.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -9.8.23.190.in-addr.arpa. -live-radio.net. -a3.sphotos.ak.fbcdn.net. -apps.facebook.com. -mail.alarm-plus.ru. -62.71.112.87.in-addr.arpa. -profile.ak.fbcdn.net. -nvtc.org. -clients1.google.com. -fb-client-0.castle.zynga.com. -dpz14.cocolog-nifty.com. -35.45.132.144.in-addr.arpa. -www.alean.ru. -img.constantcontact.com. -download.windowsupdate.com. -amcourier.com. -ecc.elevatorcontrols.com. -pixel.facebook.com. -www.frwl7.com. -kxgdv4yc9.15rb. -www.fortunebeach.com. -www.cbox.ws. -www.cenidiap.net. -scripts.verticalacuity.com. -a3.sphotos.ak.fbcdn.net. -176.185.253.201.in-addr.arpa. -a852.phobos.apple.com. -a-0.19-2209e071.d0b0083.1518.19d3.3ea1.410.0.2jh8jqwju5dctz3u8lweue22q6.avqs.mcafee.com. -a.root-servers.net. -edge.sharethis.com. -profiles.google.com. -ad.doubleclick.net. -a.root-servers.net. -weather.services.conduit.com. -tribalectic.com. -www.google.com. -a8.sphotos.ak.fbcdn.net. -www.google.com. -connect.facebook.net. -ocsp.verisign.com. -mujer.es.msn.com. -adserver.itsfogo.com. -v17.hispavista.com. -www.tube43.com. -www.google-analytics.com. -safebrowsing-cache.google.com. -es-es.facebook.com. -photos-d.ak.fbcdn.net. -bingo.bitrhymes.com. -pubads.g.doubleclick.net. -belarustime.ru. -i5.cmail2.com. -www.bywifi.com. -116.183.0.186.in-addr.arpa. -www.facebook.com. -google.com. -181.43.130.24.in-addr.arpa. -googleads.g.doubleclick.net. -218.107.107.190.in-addr.arpa. -scapegoat.ru. -s.whatsapp.net. -linkhelp.clients.google.com. -4ubpva8bj.o36h0o8j. -www.youtube.com. -www.eric-clapton.co.uk. -149.84.160.189.in-addr.arpa. -ad.foxnetworks.com. -www.en.bpl.admcsport.com. -140.122.168.192.in-addr.arpa. -www.hotxxxasia.com. -beacon-1.newrelic.com. -136.150.32.114.in-addr.arpa. -wzpo1.ask.com. -photos-a.ak.fbcdn.net. -a2.sphotos.ak.fbcdn.net. -a.root-servers.net. -www.lrc.rpi.edu. -dns.camcctv.com. -facemoods.com. -25.231.31.190.in-addr.arpa. -version.com. -60.223.212.186.in-addr.arpa. -queesproyecto.wordpress.com. -sinar.co.id. -s.stpost.com. -a6.sphotos.ak.fbcdn.net. -s-static.ak.fbcdn.net. -landom.com. -maps.google.de. -safebrowsing.clients.google.com. -www.gstatic.com. -a.root-servers.net. -www.nitzanonline.com. -82.17.22.95.in-addr.arpa. -mail.gosiger.com. -asturaleza.blogspot.com. -www.citydom24.pl. -maxcdn.fooyoh.com. -www.facebook.com. -home.speedbit.com. -teredo.ipv6.microsoft.com. -static.ak.fbcdn.net. -bhrei-com.relay1b.spamh.com. -189.38.206.187.in-addr.arpa. -profile.ak.fbcdn.net. -d5nxst8fruw4z.cloudfront.net. -ru.wikipedia.org. -xxlss.com. -s-static.ak.fbcdn.net. -www.google.com.mx. -www.facebook.com. -www.goojue.com. -ns1.dyndns.org. -a749.g.akamai.net. -cerato.wordpress.com. -support.urbanairship.com. -35.44.90.87.in-addr.arpa. -wyq6l1:ds.o39m4e3c. -a.root-servers.net. -daddygrognard.blogspot.com. -16.144.2.186.in-addr.arpa. -mx.youtube.com. -94.203.87.203.in-addr.arpa. -atelier.org. -170.216.108.114.in-addr.arpa. -photos-e.ak.fbcdn.net. -a.root-servers.net. -genevatypewriters.blogspot.com. -platform.ak.fbcdn.net. -ajax.googleapis.com. -lifeinfomation.com. -119.176.155.79.in-addr.arpa. -www.famosasmexicanas.net. -mx.lasallegroup.com. -v4.cache5.c.youtube.com. -www.csmonitor.com. -eltc.com. -90.7.221.190.in-addr.arpa. -www.youtube.com. -www.sinais.salud.gob.mx. -www.pangolin.com. -179.250.18.189.in-addr.arpa. -88.79.55.65.in-addr.arpa. -up4.m5zn.com. -external.ak.fbcdn.net. -pagead2.googlesyndication.com. -www.spaziogames.it. -i4.ytimg.com. -photos-g.ak.fbcdn.net. -www.thebookyard.com. -teredo.ipv6.microsoft.com. -alerts.conduit-services.com. -a5.da1.akamai.net. -www.www.facebook.com. -e566.b.akamaiedge.net. -puzolencontrol.blogspot.com. -www.pulpijuegos.com. -googleads.g.doubleclick.net. -a1.twimg.com. -173.244.246.99.in-addr.arpa. -www.onlinefunarcade.com. -www.comunidadyprevencion.org. -69.139.110.189.in-addr.arpa. -d15gt9gwxw5wu0.cloudfront.net. -mta5.am0.yahoodns.net. -ads.matomy.com. -teredo.ipv6.microsoft.com. -19-courier.push.apple.com. -msratingbureau.com. -yxmpofgx6.z08f6u9x. -dr._dns-sd._udp.0.129.37.10.in-addr.arpa. -ytimg.l.google.com. -1.gvt0.com. -a3.sphotos.ak.fbcdn.net. -194.227.122.128.in-addr.arpa. -7yqllhxyp.31jx. -support.google.com. -www.googleadservices.com. -a.root-servers.net. -a.root-servers.net. -liberomx4.libero.it. -googleads.g.doubleclick.net. -a.root-servers.net. -6.227.224.190.in-addr.arpa. -www.trialpay.com. -www.friv2.org. -adserver.adtech.de. -polenimplement.com. -omp1040.mail.ne1.yahoo.com. -32.26.230.201.in-addr.arpa. -hit.sunnydollars.net. -www.facebook.com. -sp.search-results.com. -www.alejandramatus.cl. -fqqyd171h.44mg. -datafeed.weatherbug.com. -244.144.254.180.in-addr.arpa. -61.144.119.189.in-addr.arpa. -djesibonajeb.com. -russian-girls.name. -lh6.googleusercontent.com. -translate.google.com.mx. -femalepop.tumblr.com. -www.icams.es. -17.203.240.195.in-addr.arpa. -a.rad.msn.com. -mail.gordos.com. -www.facebook.com. -www.umeng.com. -pinklaserspa.com. -www.amo.qc.ca. -aybk.ru. -brasil.babycenter.com. -a.root-servers.net. -71.208.97.94.in-addr.arpa. -www.allhandbagfashion.com. -mail.fanafel.pt. -www.sohokid.com.ar. -inxs.phpbbforum.eu. -35.175.123.84.in-addr.arpa. -122.173.102.201.in-addr.arpa. -popravu.ru. -www.mistressdemonic.com. -connect.facebook.net. -s7.addthis.com. -freetrafficbar.com. -img198.imageshack.us. -intrawesttremblant.112.2o7.net. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.mineros.com.co. -m.addthisedge.com. -de-de.facebook.com. -199.221.21.23.in-addr.arpa. -jenchina.ucoz.ru. -a.root-servers.net. -syndication.mmismm.com. -u3.hazipatika.com. -www.google.com. -emelian.ru. -utils.babylon.com. -www.google-analytics.com. -195.80.139.69.in-addr.arpa. -t.fuziontech.net. -udc.msn.com. -_107_11_9. -teredo.ipv6.microsoft.com. -132.157.229.77.in-addr.arpa. -crown-energy.com. -mp.rj.gov.br. -www.jacklalanne.com. -www.brits.co.uk. -profile.ak.fbcdn.net. -www.copa.com. -iaechina.net. -www.geekbecois.com. -9-0.qlty.finarea.ch. -138.147.232.201.in-addr.arpa. -manahair.blogspot.com. -talan.udm.ru. -114.55.24.189.in-addr.arpa. -www.cuadherpetol.com.ar. -developers.facebook.com. -218.191.77.190.in-addr.arpa. -a.root-servers.net. -zh-cn.facebook.com. -ugbmzq.com. -84.160.191.189.in-addr.arpa. -www.radiorhemapresencia.com. -fi-fi.facebook.com. -182.251.56.187.in-addr.arpa. -localhost. -ocsp.geotrust.com. -www.redpymes.org.ar. -a.root-servers.net. -smtp5.acsu.buffalo.edu. -contentfilter.futuragts.com. -howchi.net. -shortime.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.polfa-tarchomin.ru. -yogi.apps.bittorrent.com. -made-to-travel.com. -25.241.232.66.in-addr.arpa. -pacific.net.au. -teredo.ipv6.microsoft.com. -www.elcinema.com. -www.facebook.com. -www.divyy.net. -224.138.242.88.in-addr.arpa. -csi.gstatic.com. -e566.b.akamaiedge.net. -4.bp.blogspot.com. -www.segob.gob.mx. -internet-explorer-7.fr.malavida.com. -ad.doubleclick.net. -imap.gmail.com. -163.137.234.201.in-addr.arpa. -pixel.facebook.com. -www.bangavet.com. -platform.ak.fbcdn.net. -a6.sphotos.ak.fbcdn.net. -trgc.opt.fimserve.com. -us.mg6.mail.yahoo.com. -in.loreal.com. -www.naturhome.org. -i.microsoft.com. -www.ecopics.com. -janics.com. -www.youtube.com. -bicentenario.tamaulipas.gob.mx. -126.37.37.190.in-addr.arpa. -mail2mars.com. -www.mininova.org. -84.191.192.187.in-addr.arpa. -safebrowsing-cache.google.com. -wap.id.samsungmobile.com. -www.speeduppro.com. -131.236.206.190.in-addr.arpa. -apps.facebook.com. -www.29content14.com. -84.208.0.181.in-addr.arpa. -r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com. -thousidis.no-ip.biz. -www.shopbenchmark.com. -metrics.skype.com. -vzlettime.ru. -twimg0-a.akamaihd.net. -178.195.124.70.in-addr.arpa. -s.youtube.com. -a0.twimg.com. -solar.dp.ua. -troyafotos.galeon.com. -safebrowsing-cache.google.com. -cargocollective.com. -_305_41_3. -davenportfoundationrepair.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.imagengratis.org. -l3.image.peepeebabes.com. -www.iafa.go.cr. -cullprop.com.s5b2.psmtp.com. -www.andrevanamstel.nl. -a.root-servers.net. -www.thegemstoneconnection.com. -www.google-analytics.com. -243.77.81.201.in-addr.arpa. -enact.com. -society6.com. -marcusevans.com.rbl2.mcafee.com. -0-143.channel.facebook.com. -r._dns-sd._udp.lan. -static.ak.fbcdn.net. -www.mtvla.com. -i.imgur.com. -220.11.168.192.in-addr.arpa. -byfiles.storage.msn.com. -www.diariopuntual.com. -www.weather.com. -v6.nonxt8.c.pack.google.com. -12.254.29.186.in-addr.arpa. -s.pcdcdn.com. -microtechnica.com. -relay1.fitolek.com. -orwells1984oregon.files.wordpress.com. -mx2.mailhop.org. -trixsters.net. -www.wernerlau.com. -m.addthisedge.com. -mediageekzone.blip.tv. -castalia.es. -. -www.chubbysistas.com. -boing4u.net\032. -creative.ak.fbcdn.net. -matcher.bidder7.mookie1.com. -www.msftncsi.com. -www.fincasriazor.com. -www.heylittledick.com. -a.root-servers.net. -www.nathalieschuterman.com. -gateways2.aep.com. -b-0.19-230e7219.11081.1518.19d4.3ea1.410.0.14kg454zt8ib4fr3gsldv6ejw5.avqs.mcafee.com. -ak1s.abmr.net. -148.26.156.201.in-addr.arpa. -www.clearleadinc.com. -bulbyonder.co.uk. -d.p-td.com. -www.y8.com. -plus.google.com. -60.45.35.173.in-addr.arpa. -photos-b.ak.fbcdn.net. -i4.ytimg.com. -oipikrprhtzxtcp.biz. -a1222.phobos.apple.com.edgesuite.net. -checkip.dyndns.org. -_541_39_7. -181.142.155.93.in-addr.arpa. -4.109.123.84.in-addr.arpa. -www.chicaspilladas.com.ar. -szchaoyueic.en.alibaba.com. -15-courier.push.apple.com. -mail.google.com. -59.81.19.186.in-addr.arpa. -a7.sphotos.ak.fbcdn.net. -o-o.preferred.fra02s03.v1.lscache8.c.youtube.com. -lh6.googleusercontent.com. -80.56.92.186.in-addr.arpa. -static.exoclick.com. -sp.cwfservice.net. -a.root-servers.net. -pbttbc.bt.motive.com. -barracuda.priocom.com. -barras.virgula.com.br. -appworld.blackberry.com. -curious-george13.polyvore.com. -fftoday.com. -www.youtube.com. -198.181.240.189.in-addr.arpa. -176.151.83.98.in-addr.arpa. -fr.y8.com. -137.192.152.190.in-addr.arpa. -a.root-servers.net. -m.addthisedge.com. -www.kenwoodvineyards.com. -www.yaguar.com. -19.78.61.74.in-addr.arpa. -180.254.166.76.in-addr.arpa. -www.twitter.com. -6.66.158.187.in-addr.arpa. -a.root-servers.net. -a3.mzstatic.com.home. -mx3.gcmhmr.com. -58.226.237.189.in-addr.arpa. -teredo.ipv6.microsoft.com. -developers.facebook.com. -cot7jg:al.g56k6i4k. -artofdavidwalker.com. -external.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -54.235.159.189.in-addr.arpa. -www.adivinalesuscositas.blogspot.com. -1.167.50.190.in-addr.arpa. -t0.gstatic.com. -fxfeeds.mozilla.com. -ucci.org.ua. -platform.twitter.com. -updates3.pc-fix-cleaner.com. -i1.ytimg.com. -byfiles.storage.msn.com. -28oawqsur.00kp. -veronicauribe.wordpress.com. -creative.ak.fbcdn.net. -www-google-analytics.l.google.com. -cdn3.rocketlanguages.com. -js.wlxrs.com. -en.mobile.wikipedia.org. -nailpolishenthusiast.blogspot.com. -a8.sphotos.ak.fbcdn.net. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail2.nwave.com. -ssl.gstatic.com. -www.foxsportsla.com. -233.4.56.187.in-addr.arpa. -litehosting.ru. -www.supercardds.es. -whos.amung.us. -89.151.168.192.in-addr.arpa. -fireclad.com. -www.zkoss.org. -googleads.g.doubleclick.net. -cdylk4zdy.60ov. -api.searchvideo.com. -service.gc.apple.com.akadns.net. -a1.twimg.com. -65.173.89.85.in-addr.arpa. -www.facebook.com. -www.bingolines.com. -yorktech.com. -www.papeleriaalbe.com.uy. -www.google.com. -thejetpacker.com. -a5.da1.akamai.net. -i3.ytimg.com. -connect.facebook.net. -www.wosa.co.za. -a.rad.msn.com. -login.zoosk.com. -bqzvet.com. -mso61bybwcqlyd60pyl48hzc69n20n40dtj46bz.org. -www.facebook.com. -en.wordpress.com. -www.roundup.com. -photos-a.ak.fbcdn.net. -www.google-analytics.com. -ssl.gstatic.com. -mail.sia-r.ru. -www.20minutos.es. -147.12.46.184.in-addr.arpa. -84.199.1.181.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -static.ak.fbcdn.net. -apps.facebook.com. -193.83.144.189.in-addr.arpa. -shell.windows.com. -rcp.na.blackberry.com. -237.157.234.190.in-addr.arpa. -ccc.usccb.org. -clearance.cnet.com. -a3.sphotos.ak.fbcdn.net. -heartindiana.com. -0-155.channel.facebook.com. -103.9.76.95.in-addr.arpa. -clients.teamtalk.com. -met.adwhirl.com. -teredo.ipv6.microsoft.com. -apps.facebook.com. -s.jimdo.com. -srchsugg.funwebproducts.com. -iphone.facebook.com. -widergastro.ch. -a5.sphotos.ak.fbcdn.net. -www.d2open.com. -www.littleariel.com. -www.nsaayat.com. -98.117.94.201.in-addr.arpa. -pagead2.googlesyndication.com. -93yhpjk9s.x26q2s6m. -www.elgrafico.mx. -159.254.234.190.in-addr.arpa. -prse.de. -knowle.fslife.co.uk. -syndication.norton.com. -buscador.emol.com. -teredo.ipv6.microsoft.com. -noticias.prodigy.msn.com. -lenaten.ru. -30.217.9.186.in-addr.arpa. -finks.com. -add.my.yahoo.com. -a3.sphotos.ak.fbcdn.net. -external.ak.fbcdn.net. -a.root-servers.net. -toys-house.kiev.ua. -ksn2-12.kaspersky-labs.com. -profilecommunication.com. -119.103.201.190.in-addr.arpa. -axifer.net. -www.google.com. -ib.adnxs.com. -edge-mt.datpiff.com. -kwo31n50l48n10lsp32bqivlvjviulynxnvl38.com. -fishermfg.com. -125.35.168.192.in-addr.arpa. -apps.facebook.com. -mail.in2m.com. -www.facebook.com. -bluebanana.ch. -www.facebook.com. -rhpmlgknnklmtyzn.biz. -www.google-analytics.com. -bay.messenger.services.live.com. -www.casadellibro.com. -msntest.serving-sys.com. -206.86.51.190.in-addr.arpa. -themes.googleusercontent.com. -motorcyclepictures.faqih.net. -img.foroalfa.org. -ssl2.twitter.com.edgekey.net. -ocsp.entrust.net. -tunein.defjay.com. -vcs1.msg.yahoo.com. -apple.com. -41.94.170.212.in-addr.arpa. -twitter.com. -sync.mathtag.com. -a.root-servers.net. -156.80.67.201.in-addr.arpa. -checkip.dyndns.com. -dns.msftncsi.com. -gfx4.hotmail.com. -www.belkin.com. -51.89.194.122.in-addr.arpa. -www.931amor.com. -whk.com.au. -mailgate.childsoc.org.uk. -hubster.ru. -ad.z5x.net. -appenda.com. -www.facebook.com. -www.facebook.com. -a.root-servers.net. -203.194.239.189.in-addr.arpa. -armada-ra.ru. -kent157-visions.tumblr.com. -planetaciclista.blogspot.com. -s1.us.imgsrc.ru. -106.144.222.189.in-addr.arpa. -a.root-servers.net. -clients4.google.com. -247.80.67.201.in-addr.arpa. -a1851.phobos.apple.com.edgesuite.net. -freebaselibs.com. -g.ceipmsn.com. -www.google-analytics.com. -www.feldmanns.com. -external.ak.fbcdn.net. -petsalon-ipa.animoca.com. -go-usa.com. -su.pr. -yogananda-srf.org. -1-courier.push.apple.com. -156.92.166.88.in-addr.arpa. -charteroakmedical.com. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -27.media.tumblr.com. -jrwheel.com. -android.clients.google.com. -profile.ak.fbcdn.net. -235.13.24.190.in-addr.arpa. -www.lost-away.org. -zulu.tweetmeme.com. -sp.cwfservice.net. -i4.ytimg.com. -www.animalarchitecture.org. -ocsp.digicert.com. -isprime.com.fpbns.net. -224.27.171.189.in-addr.arpa. -www.boobies.pro. -nigelgearing.com. -i2.ytimg.com. -www.milfstalker.com. -ssl.gstatic.com. -gleeph.blogspot.com. -253.0.162.190.in-addr.arpa. -cdn-5.nflximg.com. -d.yimg.com. -a1402.w40.akamai.net. -bodacion.com. -118.217.82.200.in-addr.arpa. -www.chandia.net. -static.ak.fbcdn.net. -cmodules.com. -mb.vodch.mgn.ru. -www.crafterscompanion.com. -css.wlxrs.com. -upnufyam.net. -motturaspa.ru. -eusors.com. -36.212.84.200.in-addr.arpa. -widgets.amung.us. -135.11.97.189.in-addr.arpa. -s2.youtube.com. -5.232.88.186.in-addr.arpa. -edison.upc.es. -i4.ytimg.com. -api.facebook.com. -www.facebook.com. -themeworxmedia.com. -bestbooks.net.ru. -cdn.api.twitter.com. -26.220.44.194.in-addr.arpa. -105.208.85.200.in-addr.arpa. -aziacarpets.com. -179.134.170.193.in-addr.arpa. -www.facebook.com. -66.223.232.200.in-addr.arpa. -tracker.openbittorrent.com. -sites.google.com. -mail.tnx.net. -s2.macupdate.com. -44.247.50.200.in-addr.arpa. -imap.gmail.com. -247.151.201.112.in-addr.arpa. -www.googleadservices.com. -tonycpa.com. -origin.by167w.bay167.mail.live.com. -45.238.168.192.in-addr.arpa. -thebetterlenders.com. -6.214.247.88.in-addr.arpa. -motox.accu-weather.com. -mx10.who.int. -libpacmed.com. -25.123.32.190.in-addr.arpa. -118.199.55.177.in-addr.arpa. -www.pourquois.com. -a.root-servers.net. -accounts.google.com. -juanalvarezm.blogspot.com. -photos-e.ak.fbcdn.net. -95.5.0.10.in-addr.arpa. -d1j68ux4ukg4g1.cloudfront.net. -i1.ytimg.com. -39.220.226.63.in-addr.arpa. -photos-a.ak.fbcdn.net. -t2.gstatic.com. -profile.ak.fbcdn.net. -www.google.com. -dns1.southeast-pa.com. -plitka.spb.ru. -www.facebook.com. -www.elconfidencial.com. -js.wlxrs.com. -136.162.131.95.in-addr.arpa. -shyr.sumy.org. -sc.msn.com. -186.242.19.187.in-addr.arpa. -ax.su.itunes.apple.com. -198.184.45.200.in-addr.arpa. -a.root-servers.net. -www.ddm.org.au. -244.157.210.201.in-addr.arpa. -www.comedy104.com. -a4.sphotos.ak.fbcdn.net. -www.youtube.com. -eurosocialfiscal.org. -www.wikipedia.nl. -conf.socialvi.be. -starwars.wikia.com. -shared.live.com. -talent-scale.com. -www.braintreegateway.com. -drayok.deviantart.com. -imap.gmail.com. -rktm.spb.ru. -www.google-analytics.com. -www.conama.cl. -251.188.142.187.in-addr.arpa. -scotia70657275.h1x.com. -b.scorecardresearch.com. -a.root-servers.net. -a1505.l.akamai.net. -swim-online.foroac.org. -a.root-servers.net. -secure-uk.imrworldwide.com. -mtalk.google.com. -conjugator.reverso.net. -www.motors.ebay.com. -apis.google.com. -58.5.21.201.in-addr.arpa. -www.vaginamaster.com. -a.root-servers.net. -0-292.channel.facebook.com. -pterlink.ru. -www.gayblacksexguide.com. -smtp.touchpoint.co.nz. -zh-cn.facebook.com. -rs154dt.rapidshare.com. -twitter.com. -pixel.invitemedia.com. -yoco-fashion.com. -31.104.142.187.in-addr.arpa. -dthesurfacingjungle.com. -gfx3.hotmail.com. -apps.facebook.com. -a.c-0.19-230f5000.10011.1518.19d3.3ea1.210.0.rc42tqj7mtqr7ic8vlvkbc55nb.avqs.mcafee.com. -csi.gstatic.com. -press-centre.ru. -www.tigersandstrawberries.com. -casalcasadosp.blogspot.com. -amigurumi-montse.blogspot.com. -photos-f.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -www.iogear.com. -aeggroup.net.s5a2.psmtp.com. -140.2.133.86.in-addr.arpa. -mr.vipmed.ru. -apps.facebook.com. -purosvideos.net. -a8.sphotos.ak.fbcdn.net. -yahoo.es. -smtp4.absinternet.com. -fy.wikipedia.org. -freetelecom.fr. -thumbs3.ebaystatic.com. -creative.ak.fbcdn.net. -heartbeat.dm.origin.com. -channelgroup.net. -msiv.com. -checkip.dyndns.org. -164.69.146.187.in-addr.arpa. -interserve.org. -mail.dyc.edu. -googleads.g.doubleclick.net. -au.answers.yahoo.com. -urs.microsoft.com. -filminfo.ru. -smtp.siscom.net. -twitter.com. -safebrowsing.clients.google.com. -fbtrn-lash.net. -bps-stage.takeda.it. -apps.facebook.com. -pnrws.skype.com. -developers.facebook.com. -162.24.11.186.in-addr.arpa. -a4.sphotos.ak.fbcdn.net. -t.co. -www.se-te.com. -www.google.com. -terra.com.br. -www.xvideos.com. -0.11-a309c081.21033.1518.19d4.3ea1.410.0.qtm62tr24fszzi9mickjf2p4tt.avqs.mcafee.com. -rh99vd:it.83ec. -go.srvnow.com. -time.nist.gov. -mail.idcfinancial.com. -dfwgroup.com. -sn1.gateway.messenger.live.com. -dns.msftncsi.com. -fr-fr.facebook.com. -google.com. -emediate.apmmedia.net. -farm1.static.flickr.com. -tmhomes.co.uk. -. -ar-ar.facebook.com. -ns2.globalsources.com. -ssl.gstatic.com. -41.39.57.82.in-addr.arpa. -enidnews.com. -bashinform.ru. -192.87.146.93.in-addr.arpa. -pixel.facebook.com. -profile.ak.fbcdn.net. -apis.google.com. -xmpp.device07.prod.capptain.com. -www.linguee.es. -safebrowsing-cache.google.com. -www.xing.com. -download.xbox.com. -click.emailinfo2.bestbuy.com. -teredo.ipv6.microsoft.com. -www.youtube.com. -nimbus.bitdefender.net. -www.scubadivingphuket.net. -amateursextapes.adultvideobuzz.com. -bf74c17fce5b72a5f98844a4f8446b2c.co.cc. -pixerloadbalancer-126298269.us-east-1.elb.amazonaws.com. -www.statcounter.com. -pixel.facebook.com. -suggestqueries.google.com. -contact.ebay.com. -migbank.com. -video.gazetevatan.com. -zfxug.com. -online-au.objective.com. -developers.facebook.com. -snippets.mozilla.com. -www.clubofthewaves.com. -_457_26_1. -smtp.subscribe.ru. -doug1izaerwt3.cloudfront.net. -mx2.unccd.int. -kermarak.radiolivre.org. -www.masajecorporal.com. -plugin.maldi.tv. -i3.ytimg.com. -a1505.l.akamai.net. -nicholsonintl.com. -18.151.155.178.in-addr.arpa. -207.0.86.186.in-addr.arpa. -www.wholesale-luxury.com. -www.google.com.mx. -ssl.gstatic.com. -cdn.gigya.com. -adobe.ugc.bazaarvoice.com. -images.anniesattic.com. -s-static.ak.fbcdn.net. -89.111.46.186.in-addr.arpa. -828vdo66y.p89s8x4y. -jackinworld.com. -www2.smartadserver.com. -diamondtrustgame.com. -s.youtube.com. -filial.vrn.ru. -ratchet.dayspring.com. -info.juridicas.unam.mx. -a.root-servers.net. -www.z7mh.com. -ns2.cheat.net.ru. -pixel.facebook.com. -xtu.me. -bs.serving-sys.com. -a.root-servers.net. -s-static.ak.facebook.com. -content.imorphosis.com. -time.windows.com. -mail.yimg.com. -wwww.siliconera.com. -a.root-servers.net. -a.root-servers.net. -169.163.29.89.in-addr.arpa. -messenger.hotmail.com. -photos-a.ak.fbcdn.net. -89.221.25.190.in-addr.arpa. -31.37.55.187.in-addr.arpa. -www.almightycontent.com. -images.apple.com. -a.root-servers.net. -sex-4.shemalepuzzle.com. -10.152.3.108.in-addr.arpa. -au.download.windowsupdate.com. -www.davidemaggio.it. -79.91.116.82.in-addr.arpa. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -plus.google.com. -mx5.mail.yahoo.co.jp. -cars.bookit.com. -google.com. -www.facebook.com. -wwwimages.adobe.com. -220.246.206.190.in-addr.arpa. -developers.facebook.com. -api.twitter.com. -claremontounry.com. -839.coll.ning.com. -photos-b.ak.fbcdn.net. -elvensoft.net. -www.googleadservices.com. -mail2.bravehost.com. -online.speedbit.com. -www.bing.com. -13.55.157.186.in-addr.arpa. -download744.avast.com. -cemwxo1b6.14ta. -a1157.phobos.apple.com.edgesuite.net. -19.88.122.74.in-addr.arpa. -13.160.224.195.in-addr.arpa. -dns.msftncsi.com. -an.d.chango.com. -251.175.42.201.in-addr.arpa. -www.facebook.com. -checkip.dyndns.org. -profile.ak.fbcdn.net. -mx1.decknet.fr. -jolenesbeenwriting.blogspot.com. -www.ratepoint.com. -horwath.co.uk. -shorinryu.ru. -csi.gstatic.com. -www.bluegala.com. -www.rumbo.es. -ds.addthis.com. -yahoo.com. -237.209.168.192.in-addr.arpa. -newsrss.bbc.co.uk. -capital-network.net. -profile.live.com. -acatoday.org.inbound15.mxlogicmx.net. -75.66.105.190.in-addr.arpa. -ngmknaflk.o43q6v1v. -buick.riobrancofac.edu.br. -www.ee77ee.com. -time.chttl.com.tw. -google.com. -www.teamtoyminator.org. -teredo.ipv6.microsoft.com. -www.facebook.com. -ksn2-12.kaspersky-labs.com. -www.granttube.com. -mscmags.com. -60.148.168.192.in-addr.arpa. -galkasoft.ru. -sleinous.dyndns.info. -www.time.com. -207.239.171.111.in-addr.arpa. -dns.detroit.net. -cde.unibe.ch. -alerts.conduit-services.com. -o-o.preferred.atl14s01.v24.lscache5.c.youtube.com. -rostovinfo.ru. -ar.answers.yahoo.com. -www.coolrom.com. -m.addthisedge.com. -metrodotpop.com. -remydumont.net. -r._dns-sd._udp.0.55.211.10.in-addr.arpa. -www.animal-crossing.com. -www.internal.schools.net.au. -50.174.244.190.in-addr.arpa. -a.root-servers.net. -photos-ugc.l.google.com. -3h93lxn4m.90kd. -202.68.21.187.in-addr.arpa. -web38.jimdo-server.com. -torontoboatshow.com. -uaqxj:1oo.32xl. -s.youtube.com. -twitter.com. -mozilla.pettay.fi. -mail.live.com. -www.libremercado.com. -mail.samswope.com. -unifi.lan. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -10.147.6.203.in-addr.arpa. -mlonlinegeneration.wordpress.com. -a.root-servers.net. -2.63.139.178.in-addr.arpa. -. -mx.bmb.com. -d2syub29v5lge2.cloudfront.net. -tap2-cdn.rubiconproject.com. -acte.org.2.arsmtp.com. -clients1.google.com. -p130.s523ll5pu6s1.com. -balharbourflorida.com. -a.root-servers.net. -www.faperos.com. -maps.gstatic.com. -pixel.quantserve.com. -www.facebook.com. -52.102.66.187.in-addr.arpa. -11.112.194.91.in-addr.arpa. -api.myprecisionads.com. -233.80.190.189.in-addr.arpa. -addons.mozilla.org. -williamzhou.com. -i.dailymail.co.uk. -a.root-servers.net. -mail.defythis.com. -gosprod-qos01.m3d-syd.ea.com. -msn.match.com.akadns.net. -www.lifestreetmedia.com. -www.jorigames.com. -www.facebook.com. -demilovato.com. -www.todopapas.com. -msgr.updates.yahoo.com. -i3.ytimg.com. -215.57.110.201.in-addr.arpa. -www.google.com. -www.betaarchive.co.uk. -i1.ytimg.com. -yahoo.co.uk. -astiline.ru. -sktuote.ru. -performair.com. -altfarm.mediaplex.com. -smtp3.wescorp.org. -a6.sphotos.ak.fbcdn.net. -s7.addthis.com. -server82.appriver.com. -urs.microsoft.com. -rusneft.ru. -www.felixjpalma.es. -ksn1-12-part1.kaspersky-labs.com. -mscrl.microsoft.com. -133.171.82.200.in-addr.arpa. -www.google.com. -249.79.96.114.in-addr.arpa. -snaps.vidiemi.com. -b._dns-sd._udp.0.0.168.192.in-addr.arpa. -a.rad.msn.com. -pubads.g.doubleclick.net. -a2.sphotos.ak.fbcdn.net. -82.230.132.144.in-addr.arpa. -www.bestcupon.com.ar. -i3.ytimg.com. -b3.mookie1.com. -184.195.235.189.in-addr.arpa. -_031_79_0. -www.librolibro.es. -unthb9r8d.20gt. -ad.doubleclick.net. -mia.mediaedgecia.com. -110.133.23.62.in-addr.arpa. -google.com. -profile.ak.fbcdn.net. -71.104.237.189.in-addr.arpa. -cstdata.com. -profile.ak.fbcdn.net. -195.143.138.187.in-addr.arpa. -amebasaladeriva.com. -sympatico.ca. -www.mozilla.org. -nbyouthsoccer.com. -15.187.245.190.in-addr.arpa. -unisys.fr. -jardines.ydecoraciondeinteriores.com. -www.brokenbells.com. -www.strictlysudoku.com. -eo.wikipedia.org. -www.aircharter-international.com. -www.facebook-mp3.co. -main.exoclick.com. -a.root-servers.net. -pixel.facebook.com. -www.internostrum.com. -_942_63_3. -149.12.168.192.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -photos-e.ak.fbcdn.net. -cinemaggel.blogspot.com. -thetelephoneconnection.com.s7b2.psmtp.com. -kbp.ru. -208.122.82.200.in-addr.arpa. -search-results.site90.net. -pixel.facebook.com. -www.googleadservices.com. -a.root-servers.net. -80.230.22.202.in-addr.arpa. -static.ak.fbcdn.net. -guspereyra.blogspot.com. -abzurdah-filosofia.blogspot.com. -hotelcall.ru. -nineviya.ru. -i4.ytimg.com. -salud.regioncallao.gob.pe. -profile.ak.fbcdn.net. -connect.facebook.net. -googleads.g.doubleclick.net. -60.239.53.83.in-addr.arpa. -228.66.19.61.in-addr.arpa. -a.root-servers.net. -ddns.iview-ddns.com. -117.225.145.187.in-addr.arpa. -tritiumband.com. -luismartinez4.files.wordpress.com. -amxinternational.com. -a8.sphotos.ak.fbcdn.net. -sin.net. -p.rightaction.com. -a.root-servers.net. -distilleryimage4.instagram.com. -s0.2mdn.net. -dns.msftncsi.com. -www.astroscu.unam.mx. -corp.badoo.com. -apps.facebook.com. -weibo.pp.cc. -a2.sphotos.ak.fbcdn.net. -39.198.69.24.in-addr.arpa. -espanol.answers.yahoo.com. -www.jasonmomoa.com. -164.241.182.189.in-addr.arpa. -abbottcapital.com.s8a1.psmtp.com. -photos-g.ak.fbcdn.net. -0.13.123.94.in-addr.arpa. -www.mokkabisuteria.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -news.buzzbox.com. -hi-in.facebook.com. -68.38.168.192.in-addr.arpa. -profile.ak.fbcdn.net. -docs.google. -www.pokerroom.com. -euroionia.com. -108.135.168.192.in-addr.arpa. -x-top.info. -rubikspark.jimdo.com. -clfrates.com.s8a2.psmtp.com. -pegaso.ific.uv.es. -me-cdn.effectivemeasure.net. -ssl.gstatic.com. -hootsuite.com. -sp.cwfservice.net. -a2.twimg.com. -refundhomeloans.com. -en.netlog.com. -www.boardingschoolreview.com. -gmaccmahd.com. -www.mamafaiz.com. -180.60.126.24.in-addr.arpa. -r._dns-sd._udp.lan. -d2108679.xoom.it. -ssl.gstatic.com. -firstchoice.ru. -adserver.duetads.com. -14.161.210.62.in-addr.arpa. -rad.msn.com. -www.howtogardenadvice.com. -mail.vertex.com.ar. -3ie33cpgj6dhi-c.c.yom.mail.yahoo.com. -media.y8.com. -147.210.211.220.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -www.todoanimes.com. -a.root-servers.net. -www.donutey.com. -s2.youtube.com. -10.35.62.177.in-addr.arpa. -www.hotmail-iniciar-sesion.com. -a639.da1.akamai.net. -148.255.199.197.in-addr.arpa. -me.effectivemeasure.net. -www.symantec.com.akadns.net. -graph.facebook.com. -a1001.w40.akamai.net. -r8b7ydgpg.e66c6k6z. -ifreest.ru. -onegaprim.ru. -234.163.87.85.in-addr.arpa. -208.50.126.123.in-addr.arpa. -img1.blogblog.com. -a2.sphotos.ak.fbcdn.net. -232.131.162.189.in-addr.arpa. -de-de.facebook.com. -www.americanexpressfhr.com. -m.facebook.com. -a.root-servers.net. -reidsteel.co.uk. -www.wikimediafoundation.org. -a5.sphotos.ak.fbcdn.net. -ayudatec.cl. -fbcdn-photos-a.akamaihd.net. -clients1.google.com.br. -89.55.36.174.in-addr.arpa. -jrw.com. -i.walmartimages.com. -a7.sphotos.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -mensmodelstalk.blog8.fc2.com. -stun.client.akadns.net. -s.youtube.com. -www.ansp.gob.sv. -gfx1.hotmail.com. -a8.sphotos.ak.fbcdn.net. -js.psp.guias-trucos-juegos.com. -a.root-servers.net. -plusone.google.com. -a5.sphotos.ak.fbcdn.net. -d37ts36x2rbd21.cloudfront.net. -145.241.222.24.in-addr.arpa. -www.gq.com.tw. -www.update.microsoft.com. -204.157.82.190.in-addr.arpa. -d2098481.xoom.it. -dam.cloud.kargo.com. -safebrowsing-cache.google.com. -photos-d.ak.fbcdn.net. -ad.yieldmanager.com. -a.root-servers.net. -www.syriarose.com. -swkins.com.s8a1.psmtp.com. -a2.sphotos.ak.fbcdn.net. -172.203.175.189.in-addr.arpa. -gfx1.hotmail.com. -86.147.156.78.in-addr.arpa. -dns.msftncsi.com. -a.root-servers.net. -53.237.183.212.in-addr.arpa. -mx.youtube.com. -a8.sphotos.ak.fbcdn.net. -www.youtube.com. -www.geocities.com. -migranviaje.wordpress.com. -ssl.gstatic.com. -downloads.networkmagic.com. -connect.facebook.net. -www.farskids168.com. -asrengineering.com. -static.ak.fbcdn.net. -c-0.19-a309f481.483.1518.19d4.3ea1.210.0.gqsznzg3zhr6v264pgdsuub4vi.avqs.mcafee.com. -a1001.w40.akamai.net. -229.89.233.220.in-addr.arpa. -120.3.198.72.in-addr.arpa. -www.clubmed.com.my. -3.233.10.186.in-addr.arpa. -api.twitter.com. -viagem.br.msn.com. -aol.com. -s-external.ak.fbcdn.net. -client.akamai.com. -247.16.33.46.in-addr.arpa. -tdbde6gz7.g93z8f0c. -80.23.222.189.in-addr.arpa. -www.hotmail.com. -169.35.145.189.in-addr.arpa. -www.warezmedia.net. -ssl.gstatic.com. -kailep.deviantart.com. -vote.mmosite.com. -www.morevisits.info. -www.grape-info.com. -powerwall.msnbc.msn.com. -a1505.l.akamai.net. -211.217.131.187.in-addr.arpa. -m.addthisedge.com. -plus.google.com. -rs424l33.rapidshare.com. -www.ridemygirls.com. -a7.sphotos.ak.fbcdn.net. -theageofreason.org. -grants1.nih.gov. -tcfhlaw.com.s8a2.psmtp.com. -static.ak.fbcdn.net. -elsphiprtp001.science.regn.net. -click.info.simpletuition.com. -a.root-servers.net. -photos-a.ak.fbcdn.net. -a7.sphotos.ak.fbcdn.net. -euro.mediotiempo.com. -m.addthisedge.com. -wordpress.com.dob.sibl.support-intelligence.net. -navnbwnscwa.cc. -a1507.b.akamai.net. -a.root-servers.net. -tssl.kewego.com. -www.ero-advertising.com. -armmf.adobe.com. -i-55.com. -zacapacity.mundoanuncio.com.gt. -pup.raz.htcsense.com. -services.windowsmedia.com. -99.154.92.201.in-addr.arpa. -85.163.79.201.in-addr.arpa. -sp.cwfservice.net. -safebrowsing.clients.google.com. -cqrjcpb9x.c09h8i7w. -www.erpsoftwaredownload.com. -dns2.easydns.net. -safebrowsing.clients.google.com. -ksn2-12.kaspersky-labs.com. -mail. -vivalamodaa.blogspot.com. -dpmconsult.de. -www.humpingbunny.com. -92.43.90.190.in-addr.arpa. -www.loscostos.info. -teamxenon.com. -www.bago.com. -r._dns-sd._udp.0.0.2.10.in-addr.arpa. -cbkservices.com. -201.201.58.71.in-addr.arpa. -28.media.tumblr.com. -www.reforma.com. -170.159.52.83.in-addr.arpa. -i3.ytimg.com. -ap.lijit.com. -dns.msftncsi.com. -ssl.gstatic.com. -bs.serving-sys.com. -249.50.215.109.in-addr.arpa. -228.135.178.190.in-addr.arpa. -sites.google.com. -pixel.facebook.com. -external.ak.fbcdn.net. -www.shiou.ws. -bestflatironsforhair.com. -172.142.54.187.in-addr.arpa. -external.ak.fbcdn.net. -a.root-servers.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -239.237.137.186.in-addr.arpa. -185.15.157.201.in-addr.arpa. -174.37.152.189.in-addr.arpa. -secure.logmein.com. -asiancondition.blogspot.com. -154.102.144.186.in-addr.arpa. -r._dns-sd._udp.0.129.37.10.in-addr.arpa. -g77l:yezr.u06v0k8p. -external.ak.fbcdn.net. -unsubscribe.fromdoppler.com. -cdn.foxadd.com. -myimg.zhaopin.com. -daddyforever.com. -www.strawsticksandbricks.com. -sc19.rules.mailshell.net. -a659.b.akamai.net. -636f6e74656e74.6e657773696e63.636f6d.80hcfaba321.webcfs00.com. -www.flashvault.net. -firma.eniro.dk. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -vmx.shiplpskey.com.redcondor.net. -fxprofsignal.ru. -static.ak.fbcdn.net. -ksn2-12.kaspersky-labs.com. -i3.ytimg.com. -30-60-90-day-sales-plan.com. -a2.sphotos.ak.fbcdn.net. -csi.gstatic.com. -lyricskeeper.fr. -232.148.42.95.in-addr.arpa. -s-static.ak.fbcdn.net. -v8.nonxt3.c.youtube.com. -clients2.google.com. -api-read.facebook.com. -www.balnaves.com. -clock.fmt.he.net. -ufrnet.ufrn.br. -mx.mechel.com. -a.root-servers.net. -a-0.19-25093001.c0a0083.1518.19c4.3ea1.210.0.hr8fzrijs2f2fuk2bz5jqjl3fj.avqs.mcafee.com. -g.ceipmsn.com. -rcfesq.com. -www.skins.tv. -www.cooperativa.cl. -i.ytimg.com. -www.vpnpop.com. -a7.sphotos.ak.fbcdn.net. -pphsh2lx2.p76t7s5s. -a8.sphotos.ak.fbcdn.net. -travel.wikia.com. -a3.da1.akamai.net. -www.buildabear.ae. -www.frype.lt. -94.5.1.181.in-addr.arpa. -poemi-carolina.blogspot.com. -csi.gstatic.com. -fashionloven.com. -nuvxak1h1.99fb. -www.1musica.com. -plusone.google.com. -bluemars.com. -johnconti.com.s6a2.psmtp.com. -a.root-servers.net. -completecolour.com.au. -b-0.19-a30e8008.10081.1518.19d3.3ea1.410.0.gu1k3w3q7l4hm126j4jqbi9ldb.avqs.mcafee.com. -b.scorecardresearch.com. -www.judithpaton.com. -ad.z5x.net. -fbcdn-photos-a.akamaihd.net. -s0.2mdn.net. -hazuki-pat.com. -fashion4chill.com. -tiresias.gr. -planetfallas.com. -90.40.58.186.in-addr.arpa. -www.nobodycares.ca. -ads.adxpansion.com. -clxrcvnsse.ms. -ds.serving-sys.com. -google.com.mx. -www.squashleon.com. -pegasus.baltmd.ru. -crl.thawte.com. -gfx1.hotmail.com. -profiles.google.com. -247.109.126.80.in-addr.arpa. -mail.msss.ru. -www.bigtitsroundasses.com. -t0.gstatic.com. -www.google-analytics.com. -time.chttl.com.tw. -mail2.abena.dk. -pixel.facebook.com. -bejomi1.es.tl. -www.google.com. -doglover.com. -es-es.facebook.com. -alfon.org. -ns1.comtelligence.net. -kordp.ru. -141.1.168.192.in-addr.arpa. -api.tweetmeme.com. -tqbnngfpzworfmp.biz. -mail.live.com. -a1007.w43.akamai.net. -18.9.168.192.in-addr.arpa. -us.mg4.mail.yahoo.com. -a.root-servers.net. -www.bywifi.com. -static2.embarazoymas.com. -directcopiersupplies.com. -_481_76_9. -photos-f.ak.fbcdn.net. -eltiomananero.blogspot.com. -www.giochislot.com. -liranroll.com.mx. -a0.twimg.com. -a998.mm1.akamai.net. -platform.twitter.com. -s-static.ak.fbcdn.net. -www.gda.com. -www.juegosdecarrosgratis.co. -external.ak.fbcdn.net. -42.168.243.148.in-addr.arpa. -img7.sencha.com. -www.google.com. -mx2.hotmail.com. -tag.admeld.com. -15.216.51.68.in-addr.arpa. -www.cachador.co. -vocid-cdn.elnortedecastilla.es. -saiteprice.ru. -www.wikimediafoundation.org. -www.mostonline.org. -pixel.facebook.com. -api.twitter.com. -buddgroup.com.s5a1.psmtp.com. -www.zeplan.biz. -google.com. -ntn-group.ru. -reddit.com. -220.131.221.87.in-addr.arpa. -pt-br.facebook.com. -www.redtube.com. -www.playing2.com. -liken0ther.no-ip.biz. -framanc.com. -89.180.248.70.in-addr.arpa. -fne.net. -www.e-computo.net. -91.92.231.190.in-addr.arpa. -www.google.com.mx. -72.107.11.201.in-addr.arpa. -photos-g.ak.fbcdn.net. -api.facebook.com. -ax.init.itunes.apple.com. -m2m1.inner-active.com. -sp.cwfservice.net. -www.facebook.com. -static.ak.fbcdn.net. -www.dramainnature.com. -26.194.232.24.in-addr.arpa. -www.vjoon.com. -data.flurry.com. -mexico32.com. -pituco.com. -side2.no. -om98.ru. -med.uni-heidelberg.de. -es-la.facebook.com. -bjjweekly.com. -155.7.177.189.in-addr.arpa. -www.ledevoir.com. -117.137.37.190.in-addr.arpa. -peliculasinmegavideo.com. -hammerson.com.s200a1.psmtp.com. -bankom.ru. -kamidesunya.blogspot.com. -api.twitter.com. -crl.microsoft.com. -widgets.amung.us. -syndication.exoclick.com. -120.52.18.211.in-addr.arpa. -vthumb.ak.fbcdn.net. -shioz.jp. -tsm01.eset.com. -77.39.225.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -us1.badoo.com. -adsx.greystripe.com. -ptgh.co.uk.pri-mx.uk0109.smtproutes.com. -ccm.imn.intel.com. -www.tumblr.com. -naturalmedications.com. -220.173.103.201.in-addr.arpa. -76.147.15.194.in-addr.arpa. -www.metalicas.estimulaciontemprana.org. -zhz.ivanovo.ru. -92.91.38.186.in-addr.arpa. -iphone-wu.apple.com. -creative.ak.fbcdn.net. -231.101.24.190.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -infinitos.es. -mail1.trellist.com. -api-read.facebook.com. -ocs.ebay.com. -external.ak.fbcdn.net. -20.184.251.189.in-addr.arpa. -static-cdn2.ustream.tv. -35-courier.push.apple.com. -creative.ak.fbcdn.net. -gumaih.com. -mail. -tiny.cc. -yahoo.com. -a.root-servers.net. -dns.msftncsi.com. -www.vintageandchiclove.com. -www.routledgementalhealth.com. -apps.facebook.com. -14.134.110.186.in-addr.arpa. -photos-d.ak.fbcdn.net. -jbzuu.beastavsclub.com. -www.soc-neuro-onc.org. -arabidopsis.info. -shop.tfl.gov.uk. -themnaxs.deviantart.com. -janegrey.hubpages.com. -moreapps.droidhen.com. -an.tacoda.net. -tair.by. -dsn5.d.skype.net. -uzhnp.gng.com.ua. -platform.twitter.com. -211.57.167.218.in-addr.arpa. -l.yimg.com. -hamachi-dc.logmein-gateway.com. -www.1001postales.com. -www8.agame.com. -a3.twimg.com. -developers.facebook.com. -billing.sharo4ka.ru. -dns.msftncsi.com. -www.youtube.com. -www.google-analytics.com. -idpix.media6degrees.com. -blst.msn.com. -a1.sphotos.ak.fbcdn.net. -c479837.r37.cf2.rackcdn.com. -a.root-servers.net. -sp.cwfservice.net. -profile.ak.fbcdn.net. -fb-zc1.cityville.zynga.com. -mfaltd.com.s8b2.psmtp.com. -ma90-r.analytics.edgesuite.net. -www2.cromos.com.co. -88.236.82.186.in-addr.arpa. -141.217.212.201.in-addr.arpa. -www.youtube.com. -www.rctopsites.com. -i4.ytimg.com. -c.statcounter.com. -thehizoku.com. -57.226.142.187.in-addr.arpa. -124.webim0230.webim.myspace.com. -profile.ak.fbcdn.net. -2.160.108.216.in-addr.arpa. -www.cameras.co.uk. -www.youtube.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -matineeashell.net. -proxy.yospb.yahoo.com. -prttravel.net. -17.217.134.216.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -nimdev.com.2.0001.arsmtp.com. -www.synchrondatenbank.de. -www.lokotop.net. -www.google.com. -graph.facebook.com. -mail.google.com. -a.ads2.msads.net. -ocsp.verisign.com. -www.emol.com. -profile.ak.fbcdn.net. -mx.youtube.com. -www.facebook.com. -rubennavarrofilms.com. -immo-trend.at. -track.bobs-tgirls.com. -abcblobal.net. -bs.serving-sys.com. -166.94.233.99.in-addr.arpa. -flippingtypical.com. -photos-h.ak.fbcdn.net. -www.imagenesdemaria.com. -nospam.chilitech.net. -video.google.com.mx. -a.root-servers.net. -2.bp.blogspot.com. -de08vphraus02.honeywell.com. -yyy.com. -bitbucket.fastpace.org. -147.132.162.189.in-addr.arpa. -anywhere.platform.twitter.com. -edge.quantserve.com. -api-read.facebook.com. -aqxok8whh.04dd. -www.meusrecados.com. -juegos.latingames.com. -www.update.microsoft.com. -safebrowsing-cache.google.com. -www.freesexnavigator.com. -dvanemorris.com. -www.fempclm.com. -xml12es.farolatino.com. -twitter.com. -getmortgagez.com. -ib.mookie1.com. -a3.sphotos.ak.fbcdn.net. -photos-d.ak.fbcdn.net. -www.gourmetfly.com. -www.deviantart.com. -www.illinoishistory.gov. -b92.yahoo.co.jp. -yahoo.com. -cdn.yottos.com. -a.root-servers.net. -3runescape8.no-ip.biz. -forum.playfish.com. -www.16bitsoft.com. -204.3.135.186.in-addr.arpa. -a.root-servers.net. -aspmx.datainfosys.net. -static.ak.facebook.com. -a.root-servers.net. -lasersafety.com. -emotion-photo.ru. -gw-mail6.3rdstudio.net. -mikewarez.disqus.com. -c:emeiy98.p00s4w0z. -www.facebook.com. -redirector.c.youtube.com. -e4805.b.akamaiedge.net. -3wmexico.com.dnsbl7.mailshell.net. -a.root-servers.net. -a2.sphotos.ak.fbcdn.net. -english.mag2.com. -www.facebook.com. -53.72.25.95.in-addr.arpa. -116.5.74.180.in-addr.arpa. -sp.cwfservice.net. -subarcade.com. -120.39.151.79.in-addr.arpa. -2007.ispace.ci.fsu.edu. -zww.me. -a3.sphotos.ak.fbcdn.net. -fbio.uh.cu. -55.181.160.187.in-addr.arpa. -24.154.72.190.in-addr.arpa. -pagead2.googlesyndication.com. -imgtech.ru. -tropiezosdelavida.blogspot.com. -hotmail.it. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -mosrembyt.ru. -2.38.133.174.in-addr.arpa. -www.trenesmls.es. -plus.google.com. -accounts.google.com. -ads.yimg.com. -www.noticiasdelcosmos.com. -122.163.149.109.in-addr.arpa. -googleads.g.doubleclick.net. -amadeus.lv. -counter.yadro.ru. -toabonothfaci.ph. -90.164.222.189.in-addr.arpa. -translation.toolbar.conduit-services.com. -staticapp.icpsc.com. -screamtour.com. -173.100.132.190.in-addr.arpa. -zoomyummy.com. -surveyclub.com. -z58lfabb3.j23h7z2t. -dns.msftncsi.com. -a8.sphotos.ak.fbcdn.net. -229.75.154.187.in-addr.arpa. -a.root-servers.net. -_137_19_1. -a1.twimg.com. -www.underwaterjournal.com. -www.update.microsoft.com. -www.youtube.com. -compartiendoconmisamigas.blogspot.com. -accounts.google.com. -randyfox.com. -77.161.240.201.in-addr.arpa. -videos.starmedia.com. -101.249.201.86.in-addr.arpa. -207.54.181.189.in-addr.arpa. -google-earth.windows.brothersoft.com. -d2058743.instant.xoom.it. -wsihawaii.com. -www.detail-mania.com. -www.statcounter.com. -platform.ak.fbcdn.net. -www.youtube.com. -www.arr-tv.com. -prodigy.msn.com. -a1.sphotos.ak.fbcdn.net. -127.0.0.1. -entretenimiento.latam.msn.com. -149.18.224.159.in-addr.arpa. -wpad. -www.gstatic.com. -a.root-servers.net. -thrashers.nhl.com. -i.ytimg.com. -mail1.imco-inc.net. -a1003.w41.akamai.net. -www.paranormalhaven.com. -www.historiacocina.com. -spamfilter.rclick.com. -235.225.39.187.in-addr.arpa. -37.23.168.192.in-addr.arpa. -shared.live.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -i.indiafm.com. -static.ak.connect.facebook.com. -i34.tinypic.com. -connect.facebook.net. -ad.harrenmedianetwork.com. -25.53.149.187.in-addr.arpa. -_452_73_8. -inkincpr.com. -groups.google.com.mx. -kln.com.inbound15.mxlogic.net. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -nuevaspeliculas.info. -a.root-servers.net. -pagead2.googlesyndication.com. -a372.phobos.apple.com. -201.66.208.84.in-addr.arpa. -flyadi-com.relay1c.spamh.com. -elclubdelaslocaspositivas.blogspot.com. -frankrewold.com. -bilder.clipfish.de. -210.254.198.190.in-addr.arpa. -193.40.55.187.in-addr.arpa. -gfx3.hotmail.com. -3.51.160.187.in-addr.arpa. -photos-d.ak.fbcdn.net. -docs.google.com. -127.0.0.1. -b._dns-sd._udp.belkin. -91.230.132.189.in-addr.arpa. -www.youtube.com. -www.incredimailshop.com. -mail.poyatos.ru. -marketpioneer.com.s7a2.psmtp.com. -83.1.217.74.in-addr.arpa. -segutronic.com. -view.atdmt.com. -chromejs.s3.amazonaws.com. -7.155.93.195.in-addr.arpa. -www.google.com. -2kme3ic3a.f48m4o4f. -67.208.114.187.in-addr.arpa. -ft.ntvspor.net. -mail.southtel.ru. -imytravel.ru. -img824.imageshack.us. -creatives.livejasmin.com. -mail.ufps.tmb.ru. -js.wlxrs.com. -93.74.137.190.in-addr.arpa. -profile.ak.fbcdn.net. -elektron.pl. -blog.apesoft.es. -linuxsix.blogspot.com. -www.nu.edu.sa. -t1.gstatic.com. -esphoto500x500.mnstatic.com. -sfx.en.alibaba.com. -cnfg.montiera.com. -www.jazztelydigitalplus.com. -www.cinmaeg.com. -pofboxing.perm.ru. -static.ak.fbcdn.net. -a.root-servers.net. -googlemail.l.google.com. -snt0-omc1-s21.snt0.hotmail.com. -mx1.canterburycoffee.com. -crl.microsoft.com. -ad.smowtion.com. -en-us.fxfeeds.mozilla.com. -239.102.80.201.in-addr.arpa. -photos-g.ak.fbcdn.net. -api.twitter.com. -mbsg.intel.com. -external.ak.fbcdn.net. -www.rootsweb.ancestry.com. -profile.ak.fbcdn.net. -b.scorecardresearch.com. -beita-misstrapitos.blogspot.com. -emob220.photobucket.com. -231.185.211.189.in-addr.arpa. -autoroom-usa.tk. -ssl.gstatic.com. -smallenginewarehouse.com.s9b1.psmtp.com. -www.nickarcade.com. -a996.mm1.akamai.net. -static.ak.fbcdn.net. -toolbarqueries.l.google.com. -i4.ytimg.com. -www.macizorras.com. -196.70.188.201.in-addr.arpa. -www.manukau.ac.nz. -gomezdecadiz.blogspot.com. -106.161.193.190.in-addr.arpa. -245.203.103.190.in-addr.arpa. -www.advancescripts.com. -www.tiedtortured.com. -bbcore.cloudapp.net. -gfx2.hotmail.com. -hfengine.com. -yui.yahooapis.com. -www.bywifi.com. -7md1loq:t.49rf. -ironplanet.com. -i52.tinypic.com. -233.28.109.200.in-addr.arpa. -www.decentral.com.ar. -113.153.231.190.in-addr.arpa. -s10.histats.com. -a995.mm1.akamai.net. -yhhlptf2u.n31p9a6l. -www.google.com.mx. -167.64.82.200.in-addr.arpa. -www.pathology.vcu.edu. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -brig.spb.ru. -maktoob.news.yahoo.com. -www.polskastacja.pl. -mail.live.com. -goldbarshop.com. -microsoft-netmeeting.archivospc.com. -a1408.w43.akamai.net. -skydrive.live.com. -public.blu.livefilestore.com. -235.156.104.186.in-addr.arpa. -wiprospectramind.com. -120.254.43.99.in-addr.arpa. -malah.biz. -it-it.facebook.com. -www.imparoax.com.mx. -strangefunnyworld.com. -hombrerefranero.blogspot.com. -www.philcollins. -silverstockreport.com. -osnovnoy.ru. -adobe-acrobat-professional.softonic.com. -centes01.cuttingedgenet.com. -gud.com. -workface.com. -photos-e.ak.fbcdn.net. -apple.ease.lsoft.com. -231.47.25.125.in-addr.arpa. -www.everestauction.com.au. -lucasboutique.bigcartel.com. -www.academiademusica.cl. -_321_49_5. -relay.voice.edge.messenger.live.com. -bluebird2.betonmarkets.com. -apis.google.com. -photos-f.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -a-0.19-a30a6089.c010082.1518.19d3.3ea1.210.0.k4zg82371ek3ijdgpn6qls1b1j.avqs.mcafee.com. -static.www.occ.com.mx. -225.51.115.186.in-addr.arpa. -aarabladies.com. -marymount.fr. -inferno.demonoid.com. -googleapis.l.google.com. -m.adnxs.com. -www.pymeservices.com. -cdn1.thumbs.xogogo.com. -7.152.30.194.in-addr.arpa. -ssl.gstatic.com. -www.puebla.com.mx. -adc-orbit.telefonica.com. -dinell.ru. -55.158.157.190.in-addr.arpa. -m.addthisedge.com. -cf.addthis.com. -orlandoenespanol.com. -190.2.133.186.in-addr.arpa. -ad.yieldmanager.com. -csi.gstatic.com. -129.53.246.190.in-addr.arpa. -a.root-servers.net. -pagead2.googlesyndication.com. -www.ciat.cgiar.org. -www.faceinhole.co. -platform.twitter.com. -time.stdtime.gov.tw. -profile.ak.fbcdn.net. -www.sepomexyuc.gob.mx. -170.231.160.190.in-addr.arpa. -a.root-servers.net. -175.37.18.177.in-addr.arpa. -google.com. -136.31.12.190.in-addr.arpa. -www.efectivale.com.mx. -billing.sharo4ka.ru. -www.kardelenyucel.com. -safebrowsing-cache.google.com. -34.236.172.190.in-addr.arpa. -gvntv.gvnstudio.com. -eset.122.2o7.net. -www.facebook.com. -cfile157.uf.daum.net. -www.mbt-shoes-sale.info. -s3.amazonaws.com. -id.wikipedia.org. -98.241.153.189.in-addr.arpa. -moviestarpets.com. -v12.lscache2.c.youtube.com. -code.jquery.com. -. -vecinos-1.blogspot.com. -www.google.com. -www.conchamayordomo.com. -localcardonors.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -mail.okhammaren.se. -75.195.104.186.in-addr.arpa. -theclaw.net. -nombresdebebe.blogspot.com. -thwfx.piczo.com. -laurelriverdesigns.com. -adsx.greystripe.com. -seymourjohnson.af.mil. -yeyeolade.files.wordpress.com. -local-bay.contacts.msn.com. -41.240.185.190.in-addr.arpa. -rtduuo8c1.02pn. -i-lensk.ru. -www.apple.com. -myintelligentlife.wordpress.com. -aidps.atdmt.com. -blog.pressdisplay.com. -west.thomson.com. -www.manga.it. -a.root-servers.net. -www.google.com. -partner.googleadservices.com. -www.childrensbooksforever.com. -montel.isa-geek.org. -11.48.168.192.in-addr.arpa. -164.146.161.189.in-addr.arpa. -_692_60_6. -www.decentral.com.ar. -a.root-servers.net. -tap-cdn.rubiconproject.com. -blogs.nybooks.com. -s-static.ak.facebook.com. -a.root-servers.net. -lavieenrosegirl.blogspot.com. -www.tvdoo.it. -ansonic.com.au. -www.hfcbank.co.uk. -p08-mobilebackup.icloud.com.akadns.net. -www.endandit.nl. -havenrefuge.org.uk. -www.populars.ru. -155.135.120.69.in-addr.arpa. -80.134.41.187.in-addr.arpa. -photos-d.ak.fbcdn.net. -bomberos.cl. -icaewmessaging.net. -68.106.80.88.in-addr.arpa. -static.ak.facebook.com. -ahhelp.me. -secure.wlxrs.com. -atconnercpa.com. -a.root-servers.net. -b._dns-sd._udp.0.2.168.192.in-addr.arpa. -154.200.83.186.in-addr.arpa. -anycast.perf.glbdns.microsoft.com. -ajax.googleapis.com. -jaclninc.com. -ad.adnetwork.net. -orcart.facebook.com. -i4.ytimg.com. -photos-h.ak.fbcdn.net. -www.facebook.com. -pubads.g.doubleclick.net. -a.root-servers.net. -sidroga.com. -graph.facebook.com. -alerts.conduit-services.com. -mail.adelphia.net. -accountservices.msn.com. -www.nonude-free-photos.com. -googleads.g.doubleclick.net. -s1-word-view.vo.msecnd.net. -28.75.96.58.in-addr.arpa. -tc6.easythumbhost.com. -alerts.conduit-services.com. -profile.ak.fbcdn.net. -translate.google.com. -www.google-analytics.com. -au.download.windowsupdate.com. -www.goodlightscraps.com. -56.251.131.187.in-addr.arpa. -spring-board.info. -southampton.ac.uk. -profile.ak.fbcdn.net. -251.76.159.110.in-addr.arpa. -mx.alegro.com. -a4.sphotos.ak.fbcdn.net. -163.231.27.190.in-addr.arpa. -250.10.82.190.in-addr.arpa. -9.217.31.189.in-addr.arpa. -a1.sphotos.ak.fbcdn.net. -211.151.146.91.in-addr.arpa. -photos-h.ak.fbcdn.net. -www.crea.org.mx. -quick-slide-show.malavida.com. -i2.ytimg.com. -csi.gstatic.com. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -d15gt9gwxw5wu0.cloudfront.net. -profile.ak.fbcdn.net. -docs.google.com. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.facebook.com. -etisbew.com. -malmalloy.com. -a.root-servers.net. -biplan.ru. -129.129.165.66.in-addr.arpa. -www.logoblog.org. -www.google.com. -api.twitter.com. -espndeportes.espn.go.com. -daligallery.com. -it-it.facebook.com. -support.google.com. -74.0.78.89.in-addr.arpa. -www.condominiobahiainglesa.cl. -utopiaverde.org. -rn9bzlfj8.f13o5k1f. -www.subhavaastu.com. -golge.net. -assine.mundodositio.com.br. -www.facebook.com. -corneredge.com. -www.20minutos.es. -feeds.reuters.com. -clients1.google.com. -blog-imgs-1.fc2.com. -gfx3.hotmail.com. -www.oagaviation.com. -www.google.com. -243.112.75.190.in-addr.arpa. -uniglobecandes.com. -external.ak.fbcdn.net. -www.mysexgames.com. -w88.go.com. -local-bay.contacts.msn.com. -www.ehealthcentral.com.au. -64.116.51.190.in-addr.arpa. -api-read.facebook.com. -photos-b.ak.fbcdn.net. -hotmail.com. -it-it.facebook.com. -kb.bizagi.com. -es1.zcominc.com. -a.root-servers.net. -req.appads.com. -a.root-servers.net. -twitter.com. -timexgroup.com.s6a2.psmtp.com. -www.gstock.com. -100.27.81.189.in-addr.arpa. -um16.eset.com. -www.google.com. -6.243.224.186.in-addr.arpa. -www.lojamusica.com. -sc21.rules.mailshell.net. -117.117.149.186.in-addr.arpa. -www.bing.com. -4913559952871923121-a-1802744773732722657-s-sites.googlegroups.com. -a4.sphotos.ak.fbcdn.net. -cdn.dsultra.com. -www.gstatic.com. -games.khleeg.com. -upload.wikimedia.org. -lapoliciaca.disqus.com. -_625_72_5. -rosepacking.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -134.43.148.79.in-addr.arpa. -hyperlink.net.au. -ct.buzzfeed.com. -a1230.b.akamai.net. -mail.hcgmedical.com. -dnl-01.geo.kaspersky.com. -nievestoledo.wikispaces.com. -t3.gstatic.com. -www.master.com. -maktoob.yahoo.com. -checkip.dyndns.org. -fracpump.com. -a.root-servers.net. -s4.histats.com. -www.facebook.com. -b:qevtu6p.86dd. -hwtaa::mz.p01q2r2q. -yahoo.com.hk. -linkhelp.clients.google.com. -unpacked2012.org. -155.195.141.201.in-addr.arpa. -download891.avast.com. -purpletriangle.co.uk. -s.yimg.com. -185.181.32.216.dnsbl.sorbs.net. -photos-f.ak.fbcdn.net. -rrjobs.com.s6a1.psmtp.com. -profile.ak.fbcdn.net. -loading2.widdit.com. -cs9227.vk.com. -89.13.224.90.in-addr.arpa. -www.facebook.com. -www.joshgentry.com. -87.12.234.189.in-addr.arpa. -api.twitter.com. -jigsaw.w3.org. -mscrl.microsoft.com. -profile.ak.fbcdn.net. -mx.caixacatalunya.es. -stats.bloggvarde.se. -84.143.158.187.in-addr.arpa. -eskup.elpais.com. -7hbzxg46w.i35o9w6b. -img802.imageshack.us. -apps.facebook.com. -a2.sphotos.ak.fbcdn.net. -groups.google.com.mx. -mail1.eircom.net. -40.82.26.190.in-addr.arpa. -02011808.com. -221.21.219.218.in-addr.arpa. -kronen.net. -www.sexchat.pl. -m.google.com. -teredo.ipv6.microsoft.com. -tourneytime.com. -bbs.py168.com. -zegna.com. -resident-evil-5-benchmark.softonic.fr. -180.255.185.190.in-addr.arpa. -a.root-servers.net. -songreader.softonic.com. -91.103.43.186.in-addr.arpa. -a.root-servers.net. -plus.l.google.com. -www.sectormatematica.cl. -pogodavsamare.ru. -ib.adnxs.com. -myinahar67.blogspot.com. -lb._dns-sd._udp.0.1.168.192.in-addr.arpa. -www.mandco.com. -api-read.facebook.com. -youtube.com. -lanuevaeconomia.com. -www.googleapis.com. -235.144.14.186.in-addr.arpa. -202.100.91.75.in-addr.arpa. -mail.sinolines.com. -static.ak.fbcdn.net. -52.12.193.190.in-addr.arpa. -photos-a.ak.fbcdn.net. -static.ak.fbcdn.net. -ip1-02.patriarch.ru. -wjvtke.com. -ns3.freescale.com. -www.asociaciongrama.org. -www.emi.ae. -email.com. -fbcdn-photos-a.akamaihd.net. -photos-e.ak.fbcdn.net. -a4.sphotos.ak.fbcdn.net. -8.235.217.111.in-addr.arpa. -fredericton.kijiji.ca. -divamission.com. -1.gravatar.com. -isatap.domain_not_set.invalid. -www.insistecweb.com. -176.131.11.189.in-addr.arpa. -www.oyunlar1.com. -bay.gateway.messenger.live.com. -95.99.0.186.in-addr.arpa. -cima.ng-london.org.uk. -advantagesurveillance-net.mail.eo.outlook.com. -shared.live.com. -10.api.urban-rivals.com. -images.francisfrith.com. -220.78.146.189.in-addr.arpa. -www.rackitup.com.au. -130.13.168.192.in-addr.arpa. -rogers.com. -4.111.43.200.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -6.1.168.192.in-addr.arpa. -apps.facebook.com. -a.root-servers.net. -bob.jncb.com. -a.root-servers.net. -www.facebook.com. -external.ak.fbcdn.net. -www.foxsportsla.com. -179.46.135.71.in-addr.arpa. -mail.readingworks.net. -a4.sphotos.ak.fbcdn.net. -plusone.google.com. -pixel.quantserve.com. -240.52.29.186.in-addr.arpa. -js2.wlxrs.com. -res5.windowsmedia.com. -148.192.10.8.in-addr.arpa. -ad.metanetwork.com. -api.twitter.com. -terratv.terra.com.mx. -mail.loadedimage.com. -maps.k12.wi.us.s6a1.psmtp.com. -static.chartbeat.com. -trilleros.activoforo.com. -1.0.0.127.dnsbugtest.1.0.0.127.in-addr.arpa. -googleads.g.doubleclick.net. -chat.shopjimmy.com. -ra4king.is-a-geek.net. -static.ak.fbcdn.net. -a.root-servers.net. -www.rro.ch. -photos-b.ak.fbcdn.net. -www.misputillas.com. -video.es.msn.com. -lesmash.spb.ru. -sac.gti.mcafee.com. -clients2.google.com. -congdongvip.com. -swcdn.apple.com. -pixer.meaningtool.com. -hjk01.hjklaw.com. -twitter.com. -a5.sphotos.ak.fbcdn.net. -www.stumbleupon.com. -162.67.246.190.in-addr.arpa. -booklistonline.com. -56.107.236.190.in-addr.arpa. -24.2.129.174.in-addr.arpa. -dns.msftncsi.com. -www.isg-apple.com.akadns.net. -mail.missioncarwash.com. -justjared. -canon-photo-club.ru. -180.4.19.187.in-addr.arpa. -ad-g.doubleclick.net. -235.110.201.187.in-addr.arpa. -www.howtoattractagirl.org. -www.google.com.mx. -jeved.com. -146.52.123.201.in-addr.arpa. -hotel-femida.ru. -100.94.75.195.in-addr.arpa. -474.ns1631262.org. -games.yahoo.com. -mob.adwhirl.com. -estad.emagister.com. -132.106.35.190.in-addr.arpa. -_353_17_6. -rad.msn.com. -fr-fr.facebook.com. -rspl:6uc1.q00t4x6x. -34.95.130.174.in-addr.arpa. -translate.google.es. -eserviceinfo.com. -149.38.54.208.in-addr.arpa. -marriott.weather.com. -a.root-servers.net. -225.198.192.173.in-addr.arpa. -163.168.235.190.in-addr.arpa. -pakistanimedia-thewaythingsare.blogspot.com. -140.219.111.190.in-addr.arpa. -weather.service.msn.com. -photos-e.ak.fbcdn.net. -www.globalfundforwomen.org. -212.168.60.83.in-addr.arpa. -adelia.net. -a7.sphotos.ak.fbcdn.net. -a.root-servers.net. -creative.ak.fbcdn.net. -payment.socialgamenet.com. -fixounet.free.fr. -www.apple.com. -www.facebook.com. -missjordanlee.blogspot.com. -topgsite.com. -72.76.91.190.in-addr.arpa. -citationstyles.org. -136.105.77.79.in-addr.arpa. -ksn6-12.kaspersky-labs.com. -93.35.139.189.in-addr.arpa. -news.google.com.mx. -www.hispanicad.com. -ntp1.tummy.com. -www.cmpadministration.com. -www.wustemcells-arabic.com. -www.fragilestory.com. -117.130.193.113.in-addr.arpa. -img838.imageshack.us. -translate.googleapis.com. -www.yahoo.com. -favbrowser.disqus.com. -119.174.35.213.in-addr.arpa. -rdav1.blogspot.com. -xiangjishi.taobao.com. -232.205.29.196.in-addr.arpa. -autos.trovitargentina.com.ar. -udc.udc0.glbdns.microsoft.com. -www.bcsf.com.ar. -56.165.77.190.in-addr.arpa. -157.207.109.200.in-addr.arpa. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -105.33.192.123.in-addr.arpa. -www.guia.hipnosis.org.es. -lostrabajosdemarianelaguerrerosanchez.blogspot.com. -american.idolblog.com. -js01.pixelsnippet.com. -www.ncca.ie. -accounts.google.com. -187.34.104.189.in-addr.arpa. -mx2.mail.eu.yahoo.com. -a.root-servers.net. -rtr8.m9.ru. -gruposinos.com.br. -www.yahoo.com. -112.110.249.201.in-addr.arpa. -login.yahoo.com. -fdgdfgdfg.com. -119.10.39.190.in-addr.arpa. -accidentexchange.com.s200a2.psmtp.com. -platform.ak.fbcdn.net. -www.google.com. -adsfront.iminent.com. -i4.ytimg.com. -ntp.glb.nist.gov. -absolut.fr. -netmail.hetnet.nl. -support.google.com. -a1738.phobos.apple.com. -29.174.78.186.in-addr.arpa. -210.237.94.66.in-addr.arpa. -photos-f.ak.fbcdn.net. -s-static.ak.facebook.com. -www.google-analytics.com. -a.root-servers.net. -plusone.google.com. -eos.hs-niederrhein.de. -www.good.is. -esjatologico.files.wordpress.com. -152.182.130.27.in-addr.arpa. -www.flydreamers.com. -a2.sphotos.ak.fbcdn.net. -udc.msn.com. -simpy.com. -api.zynga.com. -data.flurry.com. -teredo.ipv6.microsoft.com. -a.root-servers.net. -girlytattoosforgirls.com. -yahoo.com. -c.prodigy.msn.com. -0-jf-w.channel.facebook.com. -dns.msftncsi.com. -irregularly.com. -adx.adnxs.com. -a.root-servers.net. -ntp.glb.nist.gov. -cnainsurance.com. -espanol.answers.yahoo.com. -a3.sphotos.ak.fbcdn.net. -atlanta.uwservices.com. -encielodeloceano.blogspot.com. -. -db._dns-sd._udp.0.129.37.10.in-addr.arpa. -s0.2mdn.net. -a8.sphotos.ak.fbcdn.net. -122hotmail.com. -luma.pt. -developers.facebook.com. -www.xuvn.com. -api.facebook.com. -93.178.145.189.in-addr.arpa. -manualguides.info. -www.msftncsi.com. -mx1.nebutel.com. -0.226.179.85.in-addr.arpa. -v3.nonxt2.c.youtube.com. -time.chttl.com.tw. -154.88.59.209.in-addr.arpa. -santacru2mortgage.com. -hosted.analrecruiters.com. -static.ak.fbcdn.net. -_016_38_9. -140.18.67.201.in-addr.arpa. -zackandres.hi5.com. -download843.avast.com. -s-static.ak.fbcdn.net. -seal.verisign.com. -a.root-servers.net. -87.68.92.186.in-addr.arpa. -img07.b2b.hc360.com. -m.addthisedge.com. -mail.co.campbell.va.us. -static.ak.fbcdn.net. -js.admeld.com. -dsn8.d.skype.net. -206.196.165.46.in-addr.arpa. -mscrl.microsoft.com. -content.thermoinformatics.com. -www.sentadoenelaire.com. -www.crackberrista.com. -photos-b.ak.fbcdn.net. -238.166.227.2.in-addr.arpa. -mail.yorktownenergy.com. -d2089620.xoom.it. -mail.sevel.com.uy. -www.intercambiosbarcelona.com. -sp.cwfservice.net. -www.wdc.com. -profile.ak.fbcdn.net. -evrostroydom.ru. -levuaf:j8.b14a5m1n. -187.27.35.189.in-addr.arpa. -0.7050456.com. -183.86.11.189.in-addr.arpa. -www.gstatic.com. -newsrss.bbc.co.uk. -54.181.125.99.in-addr.arpa. -flexplan.com. -yui.yahooapis.com. -tcr.tynt.com. -c1:2rzehs.i88y9e5d. -mail25.arinc.com. -v24.nonxt3.googlevideo.com. -tools.google.com. -content.yieldmanager.edgesuite.net. -s-fitness.ru. -www.specialops.org. -ndhsb.org. -global.mitsubishielectric.com. -s-static.ak.fbcdn.net. -busites-legacy-elb-9-1502350783.us-east-1.elb.amazonaws.com. -foto-natura-huesca-2.blogspot.com. -mail.cpfuinc.com. -danielatamayo.com. -ie9cvlist.ie.microsoft.com. -p06-keyvalueservice.icloud.com. -khm0.googleapis.com. -secure.worldspot.net. -nccpr.p2p.baofeng.net. -lancastersys.com. -tag.admeld.com. -sls2ns215.y57p7f0m. -www.youtube.com. -www.gadgetrynews.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -hindi.babylon.com. -static.ak.fbcdn.net. -d2059613.instant.xoom.it. -209.247.74.187.in-addr.arpa. -bentvip.com. -www.foxsportsla.com. -www.google-analytics.com. -www.cpxadspace.com. -download337.avast.com. -couponbuddy.s3.amazonaws.com. -lexx.ru. -musica.descarga-gratis.org. -www.buono.aipop.cl. -s-static.ak.fbcdn.net. -67.109.220.201.in-addr.arpa. -pixel.facebook.com. -topfuelwebdesign.com. -p698wia5n.a77p0x6r. -isatap.pxe.acer.com. -125.194.237.166.in-addr.arpa. -www.msftncsi.com. -viamail.ru. -139.94.91.190.in-addr.arpa. -a5.mzstatic.com. -sp-avto.ru. -apps.facebook.com. -megusta.fraseshit.com. -p02-bookmarks.icloud.com. -. -tierrasdemiscelanea.wordpress.com. -81.103.43.186.in-addr.arpa. -_114_99_7. -callway.ru. -www.18to19teenies.com. -hdp.zapto.org. -mscrl.microsoft.com. -google.com. -219.31.115.189.in-addr.arpa. -benito-juarez.alumnosonline.com. -www.kt2syggf436dtag162.com. -www.myaddressus.com. -optimodal.com. -timberfinec.com. -mx1.riseup.net. -m2.nsimg.net. -www.anime-sharing.com. -plusone.google.com. -5.251.254.188.in-addr.arpa. -www.sitedefou.com. -a.root-servers.net. -exp01.eset.com. -dr._dns-sd._udp.0.42.168.192.in-addr.arpa. -www.ericas.com. -api.facebook.com. -secure.shared.live.com. -fbcdn-sphotos-a.akamaihd.net. -250.27.242.85.in-addr.arpa. -digg.com. -www.socialgrowthtechnologies.com. -time.stdtime.gov.tw. -cdn-4.nflximg.com. -myspace.com. -42.160.116.122.in-addr.arpa. -155.78.34.187.in-addr.arpa. -i.walmartimages.com.edgesuite.net. -www.google-analytics.com. -0-250.channel.facebook.com. -profile.ak.fbcdn.net. -229.153.252.109.in-addr.arpa. -alerts.conduit-services.com. -s0.2mdn.net. -www.ecologiapolitica.info. -buck.de. -smtp.loyalistc.on.ca. -www.tudiscovery.com. -68.95.80.72.in-addr.arpa. -www.optimus.se. -36.14.12.204.in-addr.arpa. -189.249.244.201.in-addr.arpa. -custmx.cscdns.net. -mx.youtube.com. -apple.com. -platform.ak.fbcdn.net. -ads1.msads.net. -descargargratis.com. -oppty4u.com. -27.165.42.62.in-addr.arpa. -www.mypagerank.net. -gaizhaohua.blog.sohu.com. -www.google.com. -pixel.facebook.com. -www.joancollins.net. -. -www.cochesdeimportacion.com. -instaar.metapress.com. -www.cerberusftp.com. -lw19w1:a5.o76u5f4s. -162.128.129.186.in-addr.arpa. -a6.sphotos.ak.fbcdn.net. -skahunter.com. -p2.trrsf.com. -13.20.193.190.in-addr.arpa. -newsnetinfo.com. -merera.ru. -musahim.maktoob.com. -estilos.prodigy.msn.com. -mail.google.com. -42.82.224.190.in-addr.arpa. -www.bestday.com.ar. -mx.sherl.ru. -feeds.bbci.co.uk. -tital.com. -www.thenewstribune.com. -www.facebook.com. -static-resource.np.community.playstation.net. -r._dns-sd._udp.0.1.168.192.in-addr.arpa. -75.78.132.190.in-addr.arpa. -186.201.177.187.in-addr.arpa. -allana.ru. -expresscarpet.net. -35.155.202.190.in-addr.arpa. -col.stc.s-msn.com. -s.ytimg.com. -loadbalancing.modaco.com. -photographypros.com. -tagps.ru. -rad.msn.com. -megapolis-st.ru. -www.wrightangle.com. -plusone.google.com. -istockanalyst.com. -www.rubyrobot.org. -20.1.168.192.in-addr.arpa. -invite.youmint.net. -aol.com. -103.28.241.119.in-addr.arpa. -3o4aldia.blogspot.com. -heartbeat.belkin.com. -dss1.siteadvisor.com. -mail.sutd.ru. -176.171.215.81.in-addr.arpa. -248.36.251.146.in-addr.arpa. -profile.ak.fbcdn.net. -forums.zynga.com. -112.216.84.186.in-addr.arpa. -mail2.phyton.ru. -www.hyruledynasty.com. -mypage.rediff.com. -ksn1-11-part1.kaspersky-labs.com. -es-la.facebook.com. -js.admeld.com. -70.54.243.189.in-addr.arpa. -www.facebook.com. -www.aarinfantasy.com. -www.1st-class-software.com. -www.blovers4.tumblr.com. -pixel.facebook.com. -2.61.120.189.in-addr.arpa. -rv.ginyas.com. -fxfeeds.mozilla.com. -e-2dj6aemiwidpmgp.stats.esomniture.com. -a771.da1.akamai.net. -ye3bcopsm.18ms. -www.google.com. -precisionprint.com. -ssl.gstatic.com. -www.lan.com. -mcasteei.com. -fasims.fasi.com. -19.207.78.188.in-addr.arpa. -geckofx.org. -static.ak.fbcdn.net. -fbcdn-profile-a.akamaihd.net. -www.agoda.es. -appsmetadata.toolbar.conduit-services.com. -api.skype.com. -www.chollywood.tv. -station.netmarble.com. -facebook.betterflashgames.com. -teredo.ipv6.microsoft.com. -googleblog.blogspot.com. -clients1.google.com. -231.51.21.187.in-addr.arpa. -searchclient.live.net. -img-cdn.mediaplex.com. -static.ak.facebook.com. -159.7.173.186.in-addr.arpa. -api.twitter.com. -zmsegamat.blogspot.com. -mobilemaps.clients.google.com. -modernismvintage.blogspot.com. -204.45.13.200.in-addr.arpa. -bpifunds.com. -cbbc.org. -static.pcomperf.com. -i48.tinypic.com. -a.root-servers.net. -api.twitter.com. -app102194446556627.socialappspot.com. -photos1.pop6.com. -115.139.68.189.in-addr.arpa. -ns1.denisovv.ru. -www.zonafutbolera.com. -mx2.safe4mail.cz. -mail.p106.ru. -a.root-servers.net. -s1-word-edit.vo.msecnd.net. -entretenimiento.univision.com. -ads.trafficjunky.net. -34.39.94.189.in-addr.arpa. -www.capplustech.com. -www.prtool.info. -www.easymix.co.nz. -alerts.conduit-services.com. -yahoo.com. -m5fib7l68.88ma. -podiumdist.com. -30.media.tumblr.com. -www.bywifi.com. -beach.orangecounty.com. -photos-f.ak.fbcdn.net. -5.134.93.75.in-addr.arpa. -fashion.sabayagazine.com. -cs13076.vk.com. -evbeacon.starfieldtech.com. -a7.sphotos.ak.fbcdn.net. -autobirga.ru. -smetrics.mindjet.com. -www.strato.it. -www.coloradomusicbuzz.com. -www.facebook.com. -110.129.144.189.in-addr.arpa. -lul.es.multi.surbl.org. -platform.ak.fbcdn.net. -uses.strawberrynet.com. -trlf.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -feeds.qzone.qq.com. -149.222.175.79.in-addr.arpa. -fr-fr.facebook.com. -watson.microsoft.com. -www.buenaspracticas.com. -a.root-servers.net. -tools.google.com. -studiotaro.ru. -www.hotmail.com. -tunnel.cfw.trustedsource.org. -social.bidsystem.com. -teredo.ipv6.microsoft.com. -db._dns-sd._udp.0.1.168.192.in-addr.arpa. -api.facebook.com. -smogy.galya.ru. -safebrowsing.clients.google.com. -gorr.state.ny.us. -ns3.apollo.lv. -a.root-servers.net. -hotmail.com. -adv.yidaba.com. -www.love-personals.co.uk. -twitter.com. -scqekuakauie.com. -www.facebook.com. -facebook-video-call-plug-in-installer.softonic.com. -153.178.92.91.in-addr.arpa. -db._dns-sd._udp.0.2.168.192.in-addr.arpa. -81.236.15.209.in-addr.arpa. -candpmachine.com.2.0001.arsmtp.com. -www.google.com. -www.discipulosdecristoemanuel.org. -pixel.facebook.com. -65.237.34.177.in-addr.arpa. -mail.rngroup.ru. -mail.dyerferris.com. -www.votocatolico.com. -75.128.122.123.in-addr.arpa. -a.root-servers.net. -unilever-foodsolutions.ru. -fadevicelilaof.nu. -196.192.9.65.in-addr.arpa. -ocsp.verisign.com. -www.revoltinstyle.com. -a-0.19-230960c1.a030083.1518.19b2.410a.400.9d.atuj1gaj4zc4gimumscaulqzpv.avqs.mcafee.com. -212.146.11.187.in-addr.arpa. -response.jp. -107.254.56.190.in-addr.arpa. -external.ak.fbcdn.net. -koran-jakarta.com. -imagesperiodicook.s3.amazonaws.com. -apps.facebook.com. -dr._dns-sd._udp.0.1.168.192.in-addr.arpa. -twitter.com. -_ldap._tcp. -nnsqi223b.81zq. -zhetus.esir.ru. -profile.ak.fbcdn.net. -www.vardai.org. -wpad.home. -loading.retry.widdit.com. -48.102.191.79.in-addr.arpa. -static.ak.fbcdn.net. -clock.nyc.he.net. -157.252.168.216.in-addr.arpa. -oborudunion.ru. -laminaters.ru. -a.root-servers.net. -2.150.35.177.in-addr.arpa. -photos-a.ak.fbcdn.net. -a-0.19-23074089.30133.1518.19cf.3ea1.410.0.s8t4djrgtphuf24aed6r4tgiv6.avqs.mcafee.com. -media.liquidx.net. -v6:rixtv6.58je. -profile.ak.fbcdn.net. -59.158.241.201.in-addr.arpa. -db._dns-sd._udp.lan. -191.30.147.79.in-addr.arpa. -164.155.49.178.in-addr.arpa. -a.root-servers.net. -js.wlxrs.com. -external.ak.fbcdn.net. -nsx.sec.np.dl.playstation.net. -time.chttl.com.tw. -209.163.160.190.in-addr.arpa. -resi.com.au. -www.fcyt.umss.edu.bo. -r._dns-sd._udp.0.2.168.192.in-addr.arpa. -i4.ytimg.com. -saintpetersbasilica.org. -cowboyuk.com. -redir.metaservices.microsoft.com. -sd-ansp02-m-dc1.pic.com.kw. -imaverystylishgirl.blogspot.com. -upay-cdn0.playspan.com. -www.elprisma.com. -maycot.com.au. -ping3.dyngate.com. -casas.aki.com.mx. -_089_17_5. -rihanna.wikia.com. -statse.webtrendslive.com. -paramountcoffee.com.s10a1.psmtp.com. -sat.utm.ru. -www.fourthwish.com. -forums.surclaro.com. -accumalax.com. -platform.twitter.com. -a.analytics.yahoo.com. -125.250.1.181.in-addr.arpa. -dns.msftncsi.com. -fengshuiclassic.blogspot.com. -yomismamayte.blogspot.com. -plus.google.com. -a.root-servers.net. -aphrodite5239.livejournal.com. -www.libertystickers.com. -a40.phobos.apple.com. -www.google.com. -teredo.ipv6.microsoft.com. -a.root-servers.net. -186.83.249.201.in-addr.arpa. -www.adobe.com. -www.insurekidsnow.gov. -mail.paramountmanufacturing.com. -mail.nordicbioscience.com. -179.2.137.190.in-addr.arpa. -estrenoesp.blogspot.com. -a.root-servers.net. -fastracksoftware.co.uk. -www.gstatic.com. -215.1.168.192.in-addr.arpa. -225.49.190.190.in-addr.arpa. -161.61.32.83.in-addr.arpa. -www.facebook.com. -safebrowsing.clients.google.com. -215.77.82.189.in-addr.arpa. -hetnet.nl. -176.15.251.146.in-addr.arpa. -zona-anime.org. -1.118.122.201.in-addr.arpa. -www.futbolsantander.com. -240.50.193.190.in-addr.arpa. -oxfordinc.com. -88.19.237.92.in-addr.arpa. -laofficesupply.com.inbound15.mxlogicmx.net. -local.msn.com. -i4.ytimg.com. -www.googleadservices.com. -jaytees.com. -cc.peralta.edu. -saucontech.com. -215.189.108.101.in-addr.arpa. -s2.youtube.com. -cdn.farmsrv.com. -154.73.139.175.in-addr.arpa. -mq3sgyg76.70hw. -ja-jp.facebook.com. -www.bluecoat.com. -a7.sphotos.ak.fbcdn.net. -37.250.24.75.in-addr.arpa. -61.68.33.190.in-addr.arpa. -echo.edge.messenger.live.com. -www.vendorportal.ecms.va.gov. -www.facebook.com. -www.candiceaccolaweb.com. -eagleaircraft.com. -www.culosadictos.com. -a.root-servers.net. -inbound.gasworks.com.netsolmail.net. -dns.msftncsi.com. -rtmlwise.com. -92.174.174.189.in-addr.arpa. -246.165.72.190.in-addr.arpa. -netdizain.ru. -www.juegospm.com. -static.ak.fbcdn.net. -www.menoboys.fr. -werewolf.solarcinc.com. -baymsg1030111.gateway.messenger.live.com. -193.31.108.76.in-addr.arpa. -a.root-servers.net. -safebrowsing-cache.google.com. -static.ak.fbcdn.net. -www.clr.net. -a5.sphotos.ak.fbcdn.net. -insurancefirstinc.com.s9a1.psmtp.com. -tags.bluekai.com. -www.promocionesweb.com. -platform.ak.fbcdn.net. -123.60.26.190.in-addr.arpa. -a.root-servers.net. -r._dns-sd._udp.0.0.168.192.in-addr.arpa. -smtp.gallerycafe.ru. -photos-b.ak.fbcdn.net. -video.dainutekstai.lt. -www.kayture.com. -www.freevintagegames.com. -135.229.97.174.in-addr.arpa. -www.salazitarrosa.com.uy. -www.facebook.com. -data.flurry.com. -s.youtube.com. -photos-e.ak.fbcdn.net. -i1.ytimg.com. -mail.sktemp.ru. -www9.effectivemeasure.net. -194.243.4.181.in-addr.arpa. -my.ebay.com. -ez5zaky97.85hj. -n2.panthercdn.com. -api.facebook.com. -35.3.61.186.in-addr.arpa. -docs.google.com. -a995.mm1.akamai.net. -apis.google.com. -us.perf.glbdns.microsoft.com. -i1.ytimg.com. -_800_02_2. -us.headlines.vivanews.com. -1.pool.ntp.org. -184.93.89.186.in-addr.arpa. -www.mcpvirtualbusinesscard.com. -videoiline.ru. -fbcdn-profile-a.akamaihd.net. -bestworkathomechoices.com. -cr7nimy7c.78bi. -www.facebook.com. -a.root-servers.net. -7.165.69.161.in-addr.arpa. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -spam2.smarsh.com. -ftp.relline.ru. -io9.com. -b.static-cdn.playfish.com. -apps.facebook.com. -1cfl.rr.com. -yahoo.com. -static.iminent.com. -162.144.79.200.in-addr.arpa. -i4.ytimg.com. -lonestar.co.nz. -reg.usps.com. -www.cytotecblog.com.mx. -rube.at. -www.youtube.com. -img5.pengfu.com. -pantyhoseladies.net. -rewards.ebay.com. -zh-cn.facebook.com. -oplin.org. -tap-cdn.rubiconproject.com. -s0.2mdn.net. -t.co. -static.ak.fbcdn.net. -a8.sphotos.ak.fbcdn.net. -80.54.5.187.in-addr.arpa. -pokerface.com. -photos-c.ak.fbcdn.net. -mx1.hausnet.ru. -www.5t.by. -32.76.231.76.in-addr.arpa. -141.67.133.115.in-addr.arpa. -175.202.5.187.in-addr.arpa. -www.soontobemums.com. -www.erictradings.com. -pl.wikipedia.org. -samuelalonso.blogspot.com. -www.uniteasy.com. -www.pokerroom.com. -static.ak.fbcdn.net. -photos-g.ak.fbcdn.net. -xcfoundations.com.lan. -69.10.175.190.in-addr.arpa. -macromedia-fireworks.en.softonic.com. -13.219.153.201.in-addr.arpa. -adpgr1-bond0-24.jagex.com. -a1811.g.akamai.net. -www.akbotong.com. -mail.broadstarwindsystems.com. -pagead2.googlesyndication.com. -smtp.dcminc.com. -www.google-analytics.com. -news.cis.dfn.de. -yanndex.ru. -masterconn11.qq.com. -www.isg-apple.com.akadns.net. -distilleryimage10.instagram.com. -www.facebook.com. -cendes.com. -avto.omsk.ru. -itunes.apple.com. -www.youtube.com. -www.mums.org. -www.googleadservices.com. -photos-f.ak.fbcdn.net. -mail.grinn-corp.ru. -mailhost00.cfi.co.ug. -developers.facebook.com. -www.google.com. -34344mailermailer.com. -a3.sphotos.ak.fbcdn.net. -154.74.53.83.in-addr.arpa. -ns2.dnsstreet.ru. -redirector.audiogalaxy.com. -www.facebook.com. -steri-flow.com. -159.39.213.49.in-addr.arpa. -akcontent.ebuddy.com. -web.hurriyetdailynews.com. -_293_74_0. -btfans.3322.org. -abto4.ru. -241.180.72.200.in-addr.arpa. -angelaseeangelablog.files.wordpress.com. -www.technorati.com. -proscada.ru. -www.julienlecomte.net. -youtube.com. -minerkennedy.com.s9b1.psmtp.com. -lb._dns-sd._udp.lan. -130.20.132.190.in-addr.arpa. -sp.cwfservice.net. -qrgen.mobile.yahoo.co.jp. -iprep3.elitec.ctmail.com. -a.root-servers.net. -225.144.168.88.zz.countries.nerd.dk. -101.65.21.201.in-addr.arpa. -support.google.com. -99.17.238.189.in-addr.arpa. -www.facebook.com. -i.xanga.com. -pt-br.facebook.com. -messer-mg.com. -static.ak.fbcdn.net. -billing.sharo4ka.ru. -17.132.217.190.in-addr.arpa. -. -aspirin-m.ru. -cabovillasresort.com. -www.datingbridgelp.info. -helios.gamerdna.com. -5cbbb1399.06zy. -thumbs1.billclips.com. -i4c.eu. -190.195.42.190.in-addr.arpa. -photos-e.ak.fbcdn.net. -bmigaming.com. -www.davidbelbin.com. -ubumedia.wordpress.com. -tragicodrama.blogspot.com. -a.root-servers.net. -explain-and-send-screenshots.softonic.com. -teredo.ipv6.microsoft.com. -www.argentinawarez.com. -photos-h.ak.fbcdn.net. -252.243.2.201.in-addr.arpa. -dalfetco.khv.ru. -www.comptoir.fr. -statweb.dreamx.com. -ssl.gstatic.com. -sarobcoq8.62mt. -descargas.juegos.com. -developers.facebook.com. -www.bayersanidadanimal.com.mx. -www.minijuegos.com. -www.google.com. -mscrl.microsoft.com. -a5.sphotos.ak.fbcdn.net. -195.174.94.201.in-addr.arpa. -norwegian.ruvr.ru. -65.71.241.201.in-addr.arpa. -plus.google.com. -dns.msftncsi.com. -202.204.157.186.in-addr.arpa. -www.avideode.com. -a1505.l.akamai.net. -nlp.fi.muni.cz. -26.75.220.85.in-addr.arpa. -view.atdmt.com. -17.22.159.189.in-addr.arpa. -ads.bluelithium.com. -ads.lfstmedia.com. -mail.acadental.com. -www.christianrock.net. -7.135.166.189.in-addr.arpa. -aol.com. -docs.google.com. -254.188.110.189.in-addr.arpa. -239.14.222.189.in-addr.arpa. -rcp.na.blackberry.com. -7y2xr1wlp.83do. -photos-g.ak.fbcdn.net. -86.203.14.186.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -mco.com. -20.202.75.190.in-addr.arpa. -meteo.ieec.uned.es. -aligrant.spb.ru. -164.89.87.85.in-addr.arpa. -arkansasonline.112.2o7.net. -www.bestweb.net. -galeriasgay.biengay.com. -176.30.152.190.in-addr.arpa. -feeds.delicious.com. -www.bottledwaterweb.com. -attanticbb.net. -sn1msg3020410.gateway.messenger.live.com. -101.1.168.192.in-addr.arpa. -hotmail.com. -s-static.ak.facebook.com. -stratexllc.com. -a.root-servers.net. -cnfg.montiera.com. -resources.infolinks.com. -photos-g.ak.fbcdn.net. -a3.sphotos.ak.fbcdn.net. -mra.mail.ru. -44.228.171.69.in-addr.arpa. -pool.ntp.org. -go-gelendgik.ru. -quetzal.ru. -s-external.ak.fbcdn.net. -api.conduit.com. -s.youtube.com. -dentals.ru. -media.fastclick.net. -pagead2.googlesyndication.com. -pixel.facebook.com. -inbound.infoestrategica.com.netsolmail.net. -time.windows.com. -rats-images.rise.za.net. -photos-g.ak.fbcdn.net. -a.root-servers.net. -ajax.googleapis.com. -fbcdn-sphotos-a.akamaihd.net. -www.inamay.com. -tunnel.cfw.trustedsource.org. -www.google.com. -www.iecologia.com. -ssl.gstatic.com. -iamalreadyinuse.livejournal.com. -www.insurancebreakdown.com. -mx.udo.mx. -www.shareaholic.com. -media.officialplaystationmagazine.co.uk. -au.download.windowsupdate.com. -londeninc.com. -at.atwola.com. -pixel.facebook.com. -b._dns-sd._udp.0.1.168.192.in-addr.arpa. -meta.wikimedia.org. -www.cah.utexas.edu. -de-de.facebook.com. -wo.appwill.com. -moscow.com.ru. -www.stylezone.bg. -customers.imt.ru. -vanmark.com. -164.40.6.210.in-addr.arpa. -r.mzstatic.com. -www.blogger.com. -www.mylovedmoms.com. -mail. -6to4.ipv6.microsoft.com. -64.227.225.189.in-addr.arpa. -a.root-servers.net. -photos-c.ak.fbcdn.net. -29.media.tumblr.com. -securepics.ebaystatic.com. -157.254.223.95.in-addr.arpa. -a.root-servers.net. -a5.sphotos.ak.fbcdn.net. -c-0.19-210fd000.8020081.1518.19d4.3ea1.410.0.6lkbugnfdecm8p4jn9zbvz8p6j.avqs.mcafee.com. -www.eyebuydirect.com. -www.ad-serve.co.uk. -reboot-it.com. -149.53.191.190.in-addr.arpa. -www.cumfiesta.com. -juegosvestirmoda.blogspot.com. -oi708.photobucket.com. -www.epgonline.org. -a425.w11.akamai.net. -a8.sphotos.ak.fbcdn.net. -a.root-servers.net. -a8.sphotos.ak.fbcdn.net. -sm.mcafee.com. -mx1.csusb.edu. -a.root-servers.net. -188.254.53.85.in-addr.arpa. -spam.allardjohnson.com. -c-0.19-a30f8081.60081.1518.19cf.3ea1.410.0.8t3jdvna6tmcvzmdssun2j9q2q.avqs.mcafee.com. -health-worx.net. -js.dailypainters.com. -w-h.co.uk. -172.70.101.78.in-addr.arpa. -creative.ak.fbcdn.net. -www.mysteryteam-movie.com. -a.root-servers.net. -blog.zippyshare.com. -metcombank.msk.ru. -cshell.com. -mail.imagine-publishing.co.uk. -kcpoets.com. -www.ses-worldskies.com. -umziqe.com. -s.clicktale.net. -a.root-servers.net. -www.hotel-wellington.com. -assets.tumblr.com. -photos-h.ak.fbcdn.net. -gelosea.deviantart.com. -es-la.facebook.com. -cotgs.com. -mail.elasteks.com. -s46.chatango.com. -services.addons.mozilla.org. -static.ak.facebook.com. -dns.msftncsi.com. -mail.ncstu.ru. -www.delunaresynaranjas.com. -193.144.87.85.in-addr.arpa. -simpleforex.ru. -elizabethsmarts.blogspot.com. -0-jl-w.channel.facebook.com. -www.facebook.com. -img.youtube.com. -www.colegioscolombia.com. -dns.msftncsi.com. -s0.img.awempire.com. -74.76.140.201.in-addr.arpa. -49.149.220.66.in-addr.arpa. -a5.sphotos.ak.fbcdn.net. -16.241.19.190.in-addr.arpa. -apps.facebook.com. -sp.cwfservice.net. -s-static.ak.fbcdn.net. -b._dns-sd._udp.lan. -www.google.com. -www.fandemia.com. -android.clients.google.com. -www.xxxspacegirls.us. -ipyxxtb.cc. -p02-caldav.icloud.com. -i2.ytimg.com. -95.156.32.173.in-addr.arpa. -130.235.55.74.in-addr.arpa. -a2.sphotos.ak.fbcdn.net. -www.lelabofragrances.com. -234.190.150.79.in-addr.arpa. -appworld.blackberry.com. -126.250.168.192.in-addr.arpa. -68.196.22.177.in-addr.arpa. -s.meebocdn.net. -mail.valuehost.ru. -www.clocklink.com. -_791_96_0. -lb._dns-sd._udp.0.55.211.10.in-addr.arpa. -www.everardoherrera.com. -pre.nextworth.com. -txdps.state.tx.us. -a5.sphotos.ak.fbcdn.net. -jeanneillenye.blogspot.com. -62s1jicq1.49vj. -a6.sphotos.ak.fbcdn.net. -foodconsumer.org. -www.myownpublishing.com. -dansleplacarddemaxime.blogspot.com. -48.28.138.208.in-addr.arpa. -149.145.71.70.in-addr.arpa. -uniway.ru. -armchairgeneral1.blogspot.com. -www.secretease.com. -mx1.rosbank.ru. -profile.ak.fbcdn.net. -redirector.c.youtube.com. -ec.atdmt.com. -93.172.243.201.in-addr.arpa. -crl.microsoft.com. -dtboot.orbitdownloader.com. -download.surfcanyon.com. -3ymei12ii.60xw. -ice.friv4.info. -rs499l33.rapidshare.com. -www.adobe.com. -213.180.183.189.in-addr.arpa. -aprendercantandopersa.blogspot.com. -support.google.com. -241.100.136.190.in-addr.arpa. -a3.sphotos.ak.fbcdn.net. -a.root-servers.net. -ngc.tgc6.ru. -www.tumblr.com. -a.root-servers.net. -by146w.bay146.mail.live.com. -mtalk.google.com. -preujct.cl. -oebe.com. -dns-chj.sh.cncnet.net. -libya.visahq.com. -instagram.com. -119.48.173.90.in-addr.arpa. -www.creditrepairmagic.com. diff --git a/bench/meson.build b/bench/meson.build deleted file mode 100644 index b15dd0f7c..000000000 --- a/bench/meson.build +++ /dev/null @@ -1,24 +0,0 @@ -# bench -# SPDX-License-Identifier: GPL-3.0-or-later - -bench_lru_src = files([ - 'bench_lru.c', -]) - -cc = meson.get_compiler('c') -m_dep = cc.find_library('m', required : false) - -bench_lru = executable( - 'bench_lru', - bench_lru_src, - dependencies: [ - contrib_dep, - libkres_dep, - m_dep, - ], -) - -run_target( - 'bench', - command: '../scripts/bench.sh', -) diff --git a/ci/deckard_commit_check.sh b/ci/deckard_commit_check.sh deleted file mode 100755 index 5b4016d8e..000000000 --- a/ci/deckard_commit_check.sh +++ /dev/null @@ -1,13 +0,0 @@ -DECKARD_COMMIT=$(git ls-tree HEAD:tests/integration/ | grep commit | grep deckard | cut -f1 | cut -f3 '-d ') -DECKARD_PATH="tests/integration/deckard" -pushd $DECKARD_PATH > /dev/null -if git merge-base --is-ancestor $DECKARD_COMMIT origin/master; then - echo "Deckard submodule commit is on in its master branch. All good in the hood." - exit 0 -else - echo "Deckard submodule commit $DECKARD_COMMIT is not in Deckard's master branch." - echo "This WILL cause CI breakages so make sure your changes in Deckard are merged" - echo "or point the submodule to another commit." - exit 1 -fi - diff --git a/ci/fix-meson-junit.sh b/ci/fix-meson-junit.sh deleted file mode 100755 index 02cf4880b..000000000 --- a/ci/fix-meson-junit.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -sed 's||\n|g' -i "$@" -sed -e '//,/<\/testcase>/s/<\(\/\?\)system-\(out\|err\)>/<\1failure>/g' \ - -e 's///g' \ - -i "$@" diff --git a/ci/gh_actions.py b/ci/gh_actions.py deleted file mode 100755 index bbeb3b344..000000000 --- a/ci/gh_actions.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python3 -# SPDX-License-Identifier: GPL-3.0-or-later -import json -import time -import sys - -import requests - - -BRANCH_API_ENDPOINT = "https://api.github.com/repos/CZ-NIC/knot-resolver/actions/runs?branch={branch}" # noqa -TIMEOUT = 20*60 # 20 mins max -POLL_DELAY = 60 -SYNC_TIMEOUT = 10*60 - - -def exit(msg='', html_url='', code=1): - print(msg, file=sys.stderr) - print(html_url) - sys.exit(code) - - -end_time = time.time() + TIMEOUT -sync_timeout = time.time() + SYNC_TIMEOUT -while time.time() < end_time: - response = requests.get( - BRANCH_API_ENDPOINT.format(branch=sys.argv[1]), - headers={"Accept": "application/vnd.github.v3+json"}) - if response.status_code == 404: - pass # not created yet? - elif response.status_code == 200: - data = json.loads(response.content.decode('utf-8')) - try: - for i in range(0, 1): # two runs ATM - run = data['workflow_runs'][i] - conclusion = run['conclusion'] - html_url = run['html_url'] - commit_sha = run['head_sha'] - except (KeyError, IndexError): - time.sleep(POLL_DELAY) - continue - - if commit_sha != sys.argv[2]: - if time.time() < sync_timeout: - time.sleep(POLL_DELAY) - continue - exit("Fetched invalid GH Action: commit mismatch. Re-run or push again?") - - if conclusion is None: - pass - if conclusion == "success": - exit("SUCCESS!", html_url, code=0) - elif isinstance(conclusion, str): - # failure, neutral, cancelled, skipped, timed_out, or action_required - exit("GitHub Actions Conclusion: {}!".format(conclusion.upper()), html_url) - else: - exit("API Response Code: {}".format(response.status_code), code=2) - time.sleep(POLL_DELAY) - -exit("Timed out!") diff --git a/ci/images/README.md b/ci/images/README.md deleted file mode 100644 index 52e49fafe..000000000 --- a/ci/images/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# Container images for CI - -## Image purpose - -### debian-11 - -The main image used by shared runners to execute most CI builds and tests. - -### debian-11-coverity - -A stripped down version of `debian-11`. It only contains build (not test) -dependencies of `kresd`. It also contains the `cov-build` tool for generating -inputs for [Coverity Scan](https://scan.coverity.com/). - -It is used by the `coverity` CI job to generate and send data to Coverity Scan -for analysis. - -To build this image, you need to retrieve the Coverity Scan token from the -dashboard and pass it to the `build.sh` script using the `COVERITY_SCAN_TOKEN` -environment variable, e.g.: - -``` -$ COVERITY_SCAN_TOKEN=the_secret_token ./build.sh debian-11-coverity -``` - -Sometimes, the Coverity Scan binaries need to be updated in order to maintain -compatibility with the cloud service. Simply rebuild this image and push it to -the registry to achieve this, no other changes (e.g. to the `Dockerfile`) are -required. - -### debian-buster (10) - -Used to serve the same purpose as `debian-11`. As of 2022-03-09, it is still -used by some jobs (linters). - -## Maintenance - -The `ci/images/` directory contains utility scripts to build, push or update -the container images. - -``` -$ ./build.sh debian-11 # builds a debian-11 image locally -$ ./push.sh debian-11 # pushes the local image into target registry -$ ./update.sh debian-11 # utility wrapper that both builds and pushes the image -$ ./update.sh */ # use shell expansion of dirnames to update all images -``` - -By default, a branch of Knot DNS deemed to be stable is selected according to -the `vars.sh` file. To build an image for a different Knot DNS branch, set the -`KNOT_BRANCH` environment variable to the name of the branch, e.g.: - -``` -$ KNOT_BRANCH='3.2' ./update.sh debian-11 -``` diff --git a/ci/images/build.sh b/ci/images/build.sh deleted file mode 100755 index 1e9eabb5b..000000000 --- a/ci/images/build.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# build specified docker image - -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" -source "${CURRENT_DIR}"/vars.sh "$@" -set -ex - -if [ -n "$COVERITY_SCAN_TOKEN" ]; then - SECRETS="$SECRETS --secret id=coverity-token,env=COVERITY_SCAN_TOKEN" -fi - -DOCKERFILE="$(realpath "${IMAGE}")/Dockerfile" - -cd "$CURRENT_DIR/../.." -export DOCKER_BUILDKIT=1 # Enables using secrets in docker-build -docker build \ - --pull \ - --no-cache \ - --tag "${FULL_NAME}" \ - --file "${DOCKERFILE}" \ - . \ - --build-arg KNOT_BRANCH=${KNOT_BRANCH} \ - $SECRETS diff --git a/ci/images/debian-11-coverity/Dockerfile b/ci/images/debian-11-coverity/Dockerfile deleted file mode 100644 index 191561455..000000000 --- a/ci/images/debian-11-coverity/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -FROM debian:bullseye -MAINTAINER Knot Resolver -# >= 3.0 needed because of --enable-xdp=yes -ARG KNOT_BRANCH=3.1 -ARG COVERITY_SCAN_PROJECT_NAME=CZ-NIC/knot-resolver -ENV DEBIAN_FRONTEND=noninteractive - -WORKDIR /root -CMD ["/bin/bash"] - -# generic cleanup -RUN apt-get update -qq - -# Knot and Knot Resolver dependencies -RUN apt-get install -y -qqq git make cmake pkg-config meson \ - build-essential bsdmainutils libtool autoconf libcmocka-dev \ - liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev libcap-ng-dev libsystemd-dev \ - libelf-dev libmnl-dev libidn11-dev libuv1-dev \ - libluajit-5.1-dev lua-http libssl-dev libnghttp2-dev - -# LuaJIT binary for stand-alone scripting -RUN apt-get install -y -qqq luajit - -# build and install latest version of Knot DNS -RUN git clone --depth=1 --branch=$KNOT_BRANCH https://gitlab.nic.cz/knot/knot-dns.git /tmp/knot -WORKDIR /tmp/knot -RUN pwd -RUN autoreconf -if -RUN ./configure --prefix=/usr --enable-xdp=yes -RUN CFLAGS="-g" make -RUN make install -RUN ldconfig - -# curl and tar (for downloading Coverity tools and uploading logs) -RUN apt-get install -y curl tar - -RUN --mount=type=secret,id=coverity-token \ - curl -o /tmp/cov-analysis-linux64.tar.gz https://scan.coverity.com/download/cxx/linux64 \ - --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$(cat /run/secrets/coverity-token) -RUN tar xfz /tmp/cov-analysis-linux64.tar.gz -RUN mv cov-analysis-linux64-* /opt/cov-analysis diff --git a/ci/images/debian-11/Dockerfile b/ci/images/debian-11/Dockerfile deleted file mode 100644 index 0241a6d4a..000000000 --- a/ci/images/debian-11/Dockerfile +++ /dev/null @@ -1,146 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -FROM debian:bullseye -MAINTAINER Knot Resolver -# >= 3.0 needed because of --enable-xdp=yes -ARG KNOT_BRANCH=3.1 -ENV DEBIAN_FRONTEND=noninteractive - -WORKDIR /root -CMD ["/bin/bash"] - -# generic cleanup -RUN apt-get update -qq - -# Knot and Knot Resolver dependencies -RUN apt-get install -y -qqq git make cmake pkg-config meson \ - build-essential bsdmainutils libtool autoconf libcmocka-dev \ - liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev libcap-ng-dev libsystemd-dev \ - libelf-dev libmnl-dev libidn11-dev libuv1-dev libjemalloc-dev \ - libluajit-5.1-dev lua-http libssl-dev libnghttp2-dev - -# Build and testing deps for Resolver's dnstap module (go stuff is just for testing) -RUN apt-get install -y -qqq \ - protobuf-c-compiler libprotobuf-c-dev libfstrm-dev \ - golang-any -COPY ./tests/dnstap /root/tests/dnstap -WORKDIR /root/tests/dnstap/src/dnstap-test -RUN go get . -WORKDIR /root - -# documentation dependencies -RUN apt-get install -y -qqq doxygen python3-sphinx python3-breathe python3-sphinx-rtd-theme - -# Python packages required for Deckard CI -# Python: grab latest versions from PyPi -# (Augeas binding in Debian packages are slow and buggy) -RUN apt-get install -y -qqq python3-pip wget augeas-tools -RUN pip3 install --upgrade pip -RUN pip3 install pylint -RUN pip3 install pep8 -# FIXME replace with dnspython >= 2.2.0 once released -RUN pip3 install git+https://github.com/bwelling/dnspython.git@72348d4698a8f8b209fbdf9e72738904ad31b930 -# tests/pytest dependencies: skip over broken versions -RUN pip3 install jinja2 'pytest != 6.0.0' pytest-html pytest-xdist pytest-forked -# apkg for packaging -RUN pip3 install apkg - -# packet capture tools for Deckard -RUN apt-get install --no-install-suggests --no-install-recommends -y -qqq tcpdump wireshark-common - -# Faketime for Deckard -RUN apt-get install -y -qqq faketime - -# C dependencies for python-augeas -RUN apt-get install -y -qqq libaugeas-dev libffi-dev -# Python dependencies for Deckard -RUN wget https://gitlab.nic.cz/knot/deckard/raw/master/requirements.txt -O /tmp/deckard-req.txt -RUN pip3 install -r /tmp/deckard-req.txt - -# build and install latest version of Knot DNS -RUN git clone --depth=1 --branch=$KNOT_BRANCH https://gitlab.nic.cz/knot/knot-dns.git /tmp/knot -WORKDIR /tmp/knot -RUN pwd -RUN autoreconf -if -RUN ./configure --prefix=/usr --enable-xdp=yes -RUN CFLAGS="-g" make -RUN make install -RUN ldconfig - -# Valgrind for kresd CI -RUN apt-get install valgrind -y -qqq -RUN wget https://github.com/LuaJIT/LuaJIT/raw/v2.1.0-beta3/src/lj.supp -O /lj.supp -# TODO: rebuild LuaJIT with Valgrind support - -# Lua lint for kresd CI -RUN apt-get install luarocks -y -qqq -RUN luarocks --lua-version 5.1 install luacheck - -# respdiff for kresd CI -RUN apt-get install lmdb-utils -y -qqq -RUN git clone --depth=1 https://gitlab.nic.cz/knot/respdiff /var/opt/respdiff -RUN pip3 install -r /var/opt/respdiff/requirements.txt - -# Python static analysis for respdiff -RUN pip3 install mypy -RUN pip3 install flake8 - -# Python requests for CI scripts -RUN pip3 install requests - -# docker-py for packaging tests -RUN pip3 install docker - -# Unbound for respdiff -RUN apt-get install unbound unbound-anchor -y -qqq -RUN printf "server:\n interface: 127.0.0.1@53535\n use-syslog: yes\n do-ip6: no\nremote-control:\n control-enable: no\n" >> /etc/unbound/unbound.conf - -# BIND for respdiff -RUN apt-get install bind9 -y -qqq -RUN printf '\nOPTIONS="-4 $OPTIONS"' >> /etc/default/bind9 -RUN printf 'options {\n directory "/var/cache/bind";\n listen-on port 53533 { 127.0.0.1; };\n listen-on-v6 port 53533 { ::1; };\n};\n' > /etc/bind/named.conf.options - -# PowerDNS Recursor for Deckard CI -RUN apt-get install pdns-recursor -y -qqq - -# dnsdist for Deckard CI -RUN apt-get install dnsdist -y -qqq - -# code coverage -RUN apt-get install -y -qqq lcov -RUN luarocks --lua-version 5.1 install luacov - -# LuaJIT binary for stand-alone scripting -RUN apt-get install -y -qqq luajit - -# clang for kresd CI, version updated as debian updates it -RUN apt-get install -y -qqq clang clang-tools clang-tidy - -# OpenBuildService CLI tool -RUN apt-get install -y osc - -# curl (API) -RUN apt-get install -y curl - -# configure knot-resolver-testing OBS repo for dependencies missing in Debian -RUN echo 'deb http://download.opensuse.org/repositories/home:/CZ-NIC:/knot-resolver-testing/Debian_11/ /' > /etc/apt/sources.list.d/knot-resolver-testing.list -RUN wget -nv https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-testing/Debian_11/Release.key -O Release.key -RUN APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add Release.key -RUN rm Release.key -RUN apt-get update -qq - -# packages from our knot-resolver-testing repo -RUN apt-get update -RUN apt-get install -y -qqq lua-psl - -# en_US.UTF-8 locale for scripts.update-authors.sh -RUN apt-get install -y -qqq locales -RUN sed -i "/en_US.UTF-8/ s/^#\(.*\)/\1/" /etc/locale.gen -RUN locale-gen - -# SonarCloud scanner -RUN wget -O /var/opt/wrapper.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip -RUN wget -O /var/opt/scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip -RUN unzip -d /var/opt /var/opt/wrapper.zip -RUN unzip -d /var/opt /var/opt/scanner.zip -ENV PATH "$PATH:/var/opt/build-wrapper-linux-x86:/var/opt/sonar-scanner-5.0.1.3006-linux/bin" diff --git a/ci/images/debian-12/Dockerfile b/ci/images/debian-12/Dockerfile deleted file mode 100644 index 15b25add7..000000000 --- a/ci/images/debian-12/Dockerfile +++ /dev/null @@ -1,149 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -FROM debian:12 -MAINTAINER Knot Resolver -# >= 3.0 needed because of --enable-xdp=yes -ARG KNOT_BRANCH=3.2 -ENV DEBIAN_FRONTEND=noninteractive -ENV PYTHONUNBUFFERED=1 - -WORKDIR /root -CMD ["/bin/bash"] - -# generic cleanup -RUN apt-get update -qq - -# Knot and Knot Resolver dependencies -RUN apt-get install -y -qqq git make cmake pkg-config meson \ - build-essential bsdmainutils libtool autoconf libcmocka-dev \ - liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev libcap-ng-dev libsystemd-dev \ - libelf-dev libmnl-dev libidn11-dev libuv1-dev libjemalloc-dev \ - libluajit-5.1-dev lua-http libssl-dev libnghttp2-dev - -# Build and testing deps for Resolver's dnstap module (go stuff is just for testing) -RUN apt-get install -y -qqq \ - protobuf-c-compiler libprotobuf-c-dev libfstrm-dev \ - golang-any -COPY ./tests/dnstap /root/tests/dnstap -WORKDIR /root/tests/dnstap/src/dnstap-test -RUN go get . -WORKDIR /root - -# documentation dependencies -RUN apt-get install -y -qqq doxygen python3-sphinx python3-breathe python3-sphinx-rtd-theme - -# Python packages required for Deckard CI -# Python: grab latest versions from PyPi -# (Augeas binding in Debian packages are slow and buggy) -RUN apt-get install -y -qqq python3-pip python3-venv wget augeas-tools -RUN python3 -m venv /opt/venv -ENV PATH="/opt/venv/bin:$PATH" -RUN pip3 install --upgrade pip -RUN pip3 install pylint -RUN pip3 install pep8 -# FIXME replace with dnspython >= 2.2.0 once released -RUN pip3 install git+https://github.com/bwelling/dnspython.git@72348d4698a8f8b209fbdf9e72738904ad31b930 -# tests/pytest dependencies: skip over broken versions -RUN pip3 install jinja2 'pytest != 6.0.0' pytest-html pytest-xdist pytest-forked -# apkg for packaging -RUN pip3 install apkg - -# packet capture tools for Deckard -RUN apt-get install --no-install-suggests --no-install-recommends -y -qqq tcpdump wireshark-common - -# Faketime for Deckard -RUN apt-get install -y -qqq faketime - -# C dependencies for python-augeas -RUN apt-get install -y -qqq libaugeas-dev libffi-dev -# Python dependencies for Deckard -RUN wget https://gitlab.nic.cz/knot/deckard/raw/master/requirements.txt -O /tmp/deckard-req.txt -RUN pip3 install -r /tmp/deckard-req.txt - -# build and install latest version of Knot DNS -RUN git clone --depth=1 --branch=$KNOT_BRANCH https://gitlab.nic.cz/knot/knot-dns.git /tmp/knot -WORKDIR /tmp/knot -RUN pwd -RUN autoreconf -if -RUN ./configure --prefix=/usr --enable-xdp=yes -RUN CFLAGS="-g" make -RUN make install -RUN ldconfig - -# Valgrind for kresd CI -RUN apt-get install valgrind -y -qqq -RUN wget https://github.com/LuaJIT/LuaJIT/raw/v2.1.0-beta3/src/lj.supp -O /lj.supp -# TODO: rebuild LuaJIT with Valgrind support - -# Lua lint for kresd CI -RUN apt-get install luarocks -y -qqq -RUN luarocks --lua-version 5.1 install luacheck - -# respdiff for kresd CI -RUN apt-get install lmdb-utils -y -qqq -RUN git clone --depth=1 https://gitlab.nic.cz/knot/respdiff /var/opt/respdiff -RUN pip3 install -r /var/opt/respdiff/requirements.txt - -# Python static analysis for respdiff -RUN pip3 install mypy -RUN pip3 install flake8 - -# Python requests for CI scripts -RUN pip3 install requests - -# docker-py for packaging tests -RUN pip3 install docker - -# Unbound for respdiff -RUN apt-get install unbound unbound-anchor -y -qqq -RUN printf "server:\n interface: 127.0.0.1@53535\n use-syslog: yes\n do-ip6: no\nremote-control:\n control-enable: no\n" >> /etc/unbound/unbound.conf - -# BIND for respdiff -RUN apt-get install bind9 -y -qqq -RUN printf '\nOPTIONS="-4 $OPTIONS"' >> /etc/default/bind9 -RUN printf 'options {\n directory "/var/cache/bind";\n listen-on port 53533 { 127.0.0.1; };\n listen-on-v6 port 53533 { ::1; };\n};\n' > /etc/bind/named.conf.options - -# PowerDNS Recursor for Deckard CI -RUN apt-get install pdns-recursor -y -qqq - -# dnsdist for Deckard CI -RUN apt-get install dnsdist -y -qqq - -# code coverage -RUN apt-get install -y -qqq lcov -RUN luarocks --lua-version 5.1 install luacov - -# LuaJIT binary for stand-alone scripting -RUN apt-get install -y -qqq luajit - -# clang for kresd CI, version updated as debian updates it -RUN apt-get install -y -qqq clang clang-tools clang-tidy - -# OpenBuildService CLI tool -RUN apt-get install -y osc - -# curl (API) -RUN apt-get install -y curl - -# configure knot-resolver-testing OBS repo for dependencies missing in Debian -RUN echo 'deb http://download.opensuse.org/repositories/home:/CZ-NIC:/knot-resolver-testing/Debian_11/ /' > /etc/apt/sources.list.d/knot-resolver-testing.list -RUN wget -nv https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-testing/Debian_11/Release.key -O Release.key -RUN APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add Release.key -RUN rm Release.key -RUN apt-get update -qq - -# packages from our knot-resolver-testing repo -RUN apt-get update -RUN apt-get install -y -qqq lua-psl - -# en_US.UTF-8 locale for scripts.update-authors.sh -RUN apt-get install -y -qqq locales -RUN sed -i "/en_US.UTF-8/ s/^#\(.*\)/\1/" /etc/locale.gen -RUN locale-gen - -# SonarCloud scanner -RUN wget -O /var/opt/wrapper.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip -RUN wget -O /var/opt/scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.4.0.2170-linux.zip -RUN unzip -d /var/opt /var/opt/wrapper.zip -RUN unzip -d /var/opt /var/opt/scanner.zip -ENV PATH "$PATH:/var/opt/build-wrapper-linux-x86:/var/opt/sonar-scanner-4.4.0.2170-linux/bin" diff --git a/ci/images/debian-buster/Dockerfile b/ci/images/debian-buster/Dockerfile deleted file mode 100644 index 39f432774..000000000 --- a/ci/images/debian-buster/Dockerfile +++ /dev/null @@ -1,146 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -FROM debian:buster -MAINTAINER Knot Resolver -# >= 3.0 needed because of --enable-xdp=yes -ARG KNOT_BRANCH=3.0 -ENV DEBIAN_FRONTEND=noninteractive - -WORKDIR /root -CMD ["/bin/bash"] - -# generic cleanup -RUN apt-get update -qq -# TODO: run upgrade once buster reaches a stable release -# RUN apt-get upgrade -y -qqq - -# Knot and Knot Resolver dependencies -RUN apt-get install -y -qqq git make cmake pkg-config meson \ - build-essential bsdmainutils libtool autoconf libcmocka-dev \ - liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev libcap-ng-dev libsystemd-dev \ - libelf-dev libmnl-dev libidn11-dev libuv1-dev \ - libluajit-5.1-dev lua-http libssl-dev libnghttp2-dev - -# Build and testing deps for Resolver's dnstap module (go stuff is just for testing) -RUN apt-get install -y -qqq \ - protobuf-c-compiler libprotobuf-c-dev libfstrm-dev \ - golang-any -COPY ./tests/dnstap /root/tests/dnstap -WORKDIR /root/tests/dnstap/src/dnstap-test -RUN go get . -WORKDIR /root - -# documentation dependencies -RUN apt-get install -y -qqq doxygen python3-sphinx python3-breathe python3-sphinx-rtd-theme - -# Python packages required for Deckard CI -# Python: grab latest versions from PyPi -# (Augeas binding in Debian packages are slow and buggy) -RUN apt-get install -y -qqq python3-pip wget augeas-tools -RUN pip3 install --upgrade pip -RUN pip3 install pylint -RUN pip3 install pep8 -RUN pip3 install pytest-xdist -# tests/pytest dependencies: skip over broken versions -RUN pip3 install 'dnspython != 2.0.0' 'jinja2 == 2.11.3' 'pytest != 6.0.0' pytest-html pytest-xdist - -# packet capture tools for Deckard -RUN apt-get install --no-install-suggests --no-install-recommends -y -qqq tcpdump wireshark-common - -# Faketime for Deckard -RUN apt-get install -y -qqq faketime - -# C dependencies for python-augeas -RUN apt-get install -y -qqq libaugeas-dev libffi-dev -# Python dependencies for Deckard -RUN wget https://gitlab.nic.cz/knot/deckard/raw/master/requirements.txt -O /tmp/deckard-req.txt -RUN pip3 install -r /tmp/deckard-req.txt - -# build and install latest version of Knot DNS -RUN git clone --depth=1 --branch=$KNOT_BRANCH https://gitlab.nic.cz/knot/knot-dns.git /tmp/knot -WORKDIR /tmp/knot -RUN pwd -RUN autoreconf -if -RUN ./configure --prefix=/usr --enable-xdp=yes -RUN CFLAGS="-g" make -RUN make install -RUN ldconfig - -# Valgrind for kresd CI -RUN apt-get install valgrind -y -qqq -RUN wget https://github.com/LuaJIT/LuaJIT/raw/v2.1.0-beta3/src/lj.supp -O /lj.supp -# TODO: rebuild LuaJIT with Valgrind support - -# Lua lint for kresd CI -RUN apt-get install luarocks -y -qqq -RUN luarocks --lua-version 5.1 install luacheck - -# respdiff for kresd CI -RUN apt-get install lmdb-utils -y -qqq -RUN git clone --depth=1 https://gitlab.nic.cz/knot/respdiff /var/opt/respdiff -RUN pip3 install -r /var/opt/respdiff/requirements.txt - -# Python static analysis for respdiff -RUN pip3 install mypy -RUN pip3 install flake8 - -# Python requests for CI scripts -RUN pip3 install requests - -# docker-py for packaging tests -RUN pip3 install docker - -# Unbound for respdiff -RUN apt-get install unbound unbound-anchor -y -qqq -RUN printf "server:\n interface: 127.0.0.1@53535\n use-syslog: yes\n do-ip6: no\nremote-control:\n control-enable: no\n" >> /etc/unbound/unbound.conf - -# BIND for respdiff -RUN apt-get install bind9 -y -qqq -RUN printf '\nOPTIONS="-4 $OPTIONS"' >> /etc/default/bind9 -RUN printf 'options {\n directory "/var/cache/bind";\n listen-on port 53533 { 127.0.0.1; };\n listen-on-v6 port 53533 { ::1; };\n};\n' > /etc/bind/named.conf.options - -# PowerDNS Recursor for Deckard CI -RUN apt-get install pdns-recursor -y -qqq - -# code coverage -RUN apt-get install -y -qqq lcov -RUN luarocks --lua-version 5.1 install luacov - -# LuaJIT binary for stand-alone scripting -RUN apt-get install -y -qqq luajit - -# clang for kresd CI, version updated as debian updates it -RUN apt-get install -y -qqq clang clang-tools clang-tidy - -# OpenBuildService CLI tool -RUN apt-get install -y osc - -# curl (API) -RUN apt-get install -y curl - -# configure knot-resolver-testing OBS repo for dependencies missing in Debian -RUN echo 'deb http://download.opensuse.org/repositories/home:/CZ-NIC:/knot-resolver-testing/Debian_10/ /' > /etc/apt/sources.list.d/knot-resolver-testing.list -RUN wget -nv https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-testing/Debian_10/Release.key -O Release.key -RUN APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add Release.key -RUN rm Release.key -RUN apt-get update -qq - -# packages from our knot-resolver-testing repo -RUN apt-get install -y -qqq lua-http lua-psl - -# en_US.UTF-8 locale for scripts.update-authors.sh -RUN apt-get install -y -qqq locales -RUN sed -i "/en_US.UTF-8/ s/^#\(.*\)/\1/" /etc/locale.gen -RUN locale-gen - -# SonarCloud scanner -RUN wget -O /var/opt/wrapper.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip -RUN wget -O /var/opt/scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.4.0.2170-linux.zip -RUN unzip -d /var/opt /var/opt/wrapper.zip -RUN unzip -d /var/opt /var/opt/scanner.zip -ENV PATH "$PATH:/var/opt/build-wrapper-linux-x86:/var/opt/sonar-scanner-4.4.0.2170-linux/bin" - -# let's get newer meson from backports -RUN echo 'deb http://deb.debian.org/debian buster-backports main' > /etc/apt/sources.list.d/backports.list -RUN apt-get update -qq -RUN apt-get -t buster-backports install -y -qqq meson diff --git a/ci/images/manager/Dockerfile b/ci/images/manager/Dockerfile deleted file mode 100644 index 69ed251e8..000000000 --- a/ci/images/manager/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -FROM fedora:38 -LABEL Knot Resolver - -WORKDIR /root -CMD ["/bin/bash"] -ENV PATH="/root/.local/bin:${PATH}" - -# Install Python and deps -RUN dnf install -y\ - python3.8 python3.9 python3.10 python3.10-devel\ - python3.11 python3.11-devel python3.12 python3.12-devel\ - python3-gobject pipx git which diffutils gcc pkg-config\ - cairo-devel gobject-introspection-devel cairo-gobject-devel\ - && dnf clean all - -# Install poetry -RUN pipx install poetry==1.4.2\ - # not exactly required, but helpful - && pipx install poethepoet diff --git a/ci/images/push.sh b/ci/images/push.sh deleted file mode 100755 index 75f5f8782..000000000 --- a/ci/images/push.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -# upload docker image into registry - -CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" -source "${CURRENT_DIR}"/vars.sh "$@" -set -ex - -docker push "${FULL_NAME}" diff --git a/ci/images/update.sh b/ci/images/update.sh deleted file mode 100755 index 7be51727a..000000000 --- a/ci/images/update.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# build and upload docker image(s) into registry -# -# this is a simple wrapper around build.sh and update.sh -# -# to build & upload all images: ./update.sh */ - -if [[ $# -le 0 ]]; then - echo "usage: $0 IMAGE..." - exit 1 -fi -set -e - -for ARG in "$@" -do - IMAGE=${ARG%/} - echo "Building $IMAGE..." - ./build.sh $IMAGE - echo "Pushing $IMAGE..." - ./push.sh $IMAGE -done - diff --git a/ci/images/vars.sh b/ci/images/vars.sh deleted file mode 100755 index f2ea46555..000000000 --- a/ci/images/vars.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# define common variables for image build scripts - -KNOT_BRANCH="${KNOT_BRANCH:-3.1}" - -REGISTRY="registry.nic.cz/knot/knot-resolver/ci" -IMAGE=$1 -if [ -z "${IMAGE}" ]; then - echo "image name not provided" - exit 1 -fi -TAG="knot-${KNOT_BRANCH}" -FULL_NAME="${REGISTRY}/${IMAGE}:${TAG}" diff --git a/ci/no_assert_check.sh b/ci/no_assert_check.sh deleted file mode 100755 index a3f356323..000000000 --- a/ci/no_assert_check.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -grep '\' -- $(git ls-files | grep '\.[hc]$' | grep -vE '^(contrib|bench|tests)/') -test $? -eq 1 diff --git a/ci/pkgtest.yaml b/ci/pkgtest.yaml deleted file mode 100644 index b7b87c35d..000000000 --- a/ci/pkgtest.yaml +++ /dev/null @@ -1,240 +0,0 @@ -default: - interruptible: true - -stages: - - pkgbuild - - pkgtest - -# pkgbuild {{{ -.pkgbuild: &pkgbuild - stage: pkgbuild - tags: - - lxc - - amd64 - before_script: - - git config --global user.name CI - - git config --global user.email ci@nic - needs: # https://gitlab.nic.cz/help/ci/yaml/README.md#artifact-downloads-to-child-pipelines - - pipeline: $PARENT_PIPELINE_ID - job: archive - artifacts: - when: always - expire_in: '1 day' - paths: - - pkg/ - -.apkgbuild: &apkgbuild # new jinja2 breaks docs (sphinx/breathe) - - pip3 install -U apkg 'jinja2<3.1' - - apkg build-dep -y - - apkg build - -.pkgdebrepo: &pkgdebrepo - - apt-get update - - apt-get install -y curl gnupg2 - - echo "deb http://download.opensuse.org/repositories/home:/CZ-NIC:/$OBS_REPO/$DISTROTEST_REPO/ /" > /etc/apt/sources.list.d/obs.list - - curl -fsSL "https://download.opensuse.org/repositories/home:CZ-NIC:$OBS_REPO/$DISTROTEST_REPO/Release.key" | gpg --dearmor > /etc/apt/trusted.gpg.d/obs.gpg - - apt-get update - -.debpkgbuild: &debpkgbuild - - *pkgdebrepo - - apt-get install -y python3-pip devscripts - - *apkgbuild - -centos-7:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/centos-7 - before_script: - - export LC_ALL=en_US.UTF-8 - - git config --global user.name CI - - git config --global user.email ci@nic - script: - - yum install -y rpm-build python3-pip epel-release - - *apkgbuild - -debian-10:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-10 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_10 - script: - - *debpkgbuild - -debian-11:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-11 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_11 - script: - - *debpkgbuild - -fedora-34:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 - script: - - dnf install -y rpm-build python3-pip - - *apkgbuild - -fedora-35:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-35 - script: - - dnf install -y rpm-build python3-pip - - *apkgbuild - -rocky-8:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/rocky-8 - script: - - dnf install -y rpm-build python3-pip epel-release dnf-plugins-core - - dnf config-manager --set-enabled powertools - - *apkgbuild - -ubuntu-18.04:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-18.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_18.04 - script: - - *debpkgbuild - -ubuntu-20.04:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-20.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_20.04 - script: - - *debpkgbuild - -nixos-unstable:pkgbuild: - <<: *pkgbuild - # We do NOT use LXC, for now at least. - parallel: - matrix: - - PLATFORM: [ amd64, arm64 ] - tags: - - docker - - linux - - ${PLATFORM} - image: nixos/nix - - variables: - NIX_PATH: nixpkgs=https://github.com/nixos/nixpkgs/archive/nixos-unstable.tar.gz - before_script: - script: - - nix-build '' -QA apkg - # the image auto-detects as alpine distro - # If apkg version differs (too much), it will fail to reuse archive and fail. - - ./result/bin/apkg install -d nix - - kresd --version -# }}} - -# pkgtest {{{ -.pkgtest: &pkgtest - stage: pkgtest - tags: - - lxc - - amd64 - -.debpkgtest: &debpkgtest - - *pkgdebrepo - - apt-get install -y knot-dnsutils - - apt-get install -y $(find ./pkg/pkgs -name '*.deb' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - kdig @127.0.0.1 nic.cz | grep -qi NOERROR - -centos-7:pkgtest: - <<: *pkgtest - needs: - - centos-7:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/centos-7 - before_script: - - export LC_ALL=en_US.UTF-8 - script: - - yum install -y epel-release - - yum install -y knot-utils findutils - - yum install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - kdig @127.0.0.1 nic.cz | grep -qi NOERROR - -debian-10:pkgtest: - <<: *pkgtest - needs: - - debian-10:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-10 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_10 - script: - - *debpkgtest - -debian-11:pkgtest: - <<: *pkgtest - needs: - - debian-11:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-11 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_11 - script: - - *debpkgtest - -fedora-34:pkgtest: - <<: *pkgtest - needs: - - fedora-34:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 - script: - - dnf install -y knot-utils findutils - - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - kdig @127.0.0.1 nic.cz | grep -qi NOERROR - -fedora-35:pkgtest: - <<: *pkgtest - needs: - - fedora-35:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-35 - script: - - dnf install -y knot-utils findutils - - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - kdig @127.0.0.1 nic.cz | grep -qi NOERROR - -rocky-8:pkgtest: - <<: *pkgtest - needs: - - rocky-8:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/rocky-8 - script: - - dnf install -y epel-release - - dnf install -y knot-utils findutils - - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - kdig @127.0.0.1 nic.cz | grep -qi NOERROR - -ubuntu-18.04:pkgtest: - <<: *pkgtest - needs: - - ubuntu-18.04:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-18.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_18.04 - script: - - *debpkgtest - -ubuntu-20.04:pkgtest: - <<: *pkgtest - needs: - - ubuntu-20.04:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-20.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_20.04 - script: - - *debpkgtest -# }}} diff --git a/ci/respdiff/kresd.config b/ci/respdiff/kresd.config deleted file mode 100644 index 3d163d7e8..000000000 --- a/ci/respdiff/kresd.config +++ /dev/null @@ -1,26 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later --- Refer to manual: https://www.knot-resolver.cz/documentation/latest/ --- Listen on localhost and external interface -net.listen('127.0.0.1', 5353) -net.listen('127.0.0.1', 8853, { tls = true }) -net.ipv6=false - --- Auto-maintain root TA -trust_anchors.add_file('.local/etc/knot-resolver/root.keys') - -cache.size = 1024 * MB - --- Load Useful modules -modules = { - 'workarounds < iterate', - 'policy', -- Block queries to local zones/bad sites - 'view', -- Views for certain clients - 'hints > iterate', -- Allow loading /etc/hosts or custom root hints - 'stats', -- Track internal statistics -} - --- avoid TC flags returned to respdiff -local _, up_bs = net.bufsize() -net.bufsize(4096, up_bs) - -log_level('debug') diff --git a/ci/respdiff/respdiff-tcp.conf b/ci/respdiff/respdiff-tcp.conf deleted file mode 100644 index b2d40ff4b..000000000 --- a/ci/respdiff/respdiff-tcp.conf +++ /dev/null @@ -1,52 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -[sendrecv] -# in seconds -timeout = 11 -# number of queries to run simultaneously -jobs = 64 -# in seconds (float); delay each query by a random time (uniformly distributed) between min and max; set max to 0 to disable -time_delay_min = 0 -time_delay_max = 0 - -[servers] -names = kresd, bind, unbound -# symbolic names of DNS servers under test -# separate multiple values by , - -# each symbolic name in [servers] section refers to config section -# containing IP address and port of particular server -[kresd] -ip = 127.0.0.1 -port = 5353 -transport = tcp -graph_color = #00a2e2 -restart_script = ./ci/respdiff/restart-kresd.sh - -[bind] -ip = 127.0.0.1 -port = 53533 -transport = udp -graph_color = #e2a000 -restart_script = ./ci/respdiff/restart-bind.sh - -[unbound] -ip = 127.0.0.1 -port = 53535 -transport = udp -graph_color = #218669 -restart_script = ./ci/respdiff/restart-unbound.sh - -[diff] -# symbolic name of server under test -# other servers are used as reference when comparing answers from the target -target = kresd - -# fields and comparison methods used when comparing two DNS messages -criteria = opcode, rcode, flags, question, answertypes, answerrrsigs -# other supported criteria values: authority, additional, edns, nsid - -[report] -# diffsum reports mismatches in field values in this order -# if particular message has multiple mismatches, it is counted only once into category with highest weight -field_weights = timeout, malformed, opcode, question, rcode, flags, answertypes, answerrrsigs, answer, authority, additional, edns, nsid diff --git a/ci/respdiff/respdiff-tls.conf b/ci/respdiff/respdiff-tls.conf deleted file mode 100644 index 1a50eabf7..000000000 --- a/ci/respdiff/respdiff-tls.conf +++ /dev/null @@ -1,52 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -[sendrecv] -# in seconds -timeout = 11 -# number of queries to run simultaneously -jobs = 64 -# in seconds (float); delay each query by a random time (uniformly distributed) between min and max; set max to 0 to disable -time_delay_min = 0 -time_delay_max = 0 - -[servers] -names = kresd, bind, unbound -# symbolic names of DNS servers under test -# separate multiple values by , - -# each symbolic name in [servers] section refers to config section -# containing IP address and port of particular server -[kresd] -ip = 127.0.0.1 -port = 8853 -transport = tls -graph_color = #00a2e2 -restart_script = ./ci/respdiff/restart-kresd.sh - -[bind] -ip = 127.0.0.1 -port = 53533 -transport = udp -graph_color = #e2a000 -restart_script = ./ci/respdiff/restart-bind.sh - -[unbound] -ip = 127.0.0.1 -port = 53535 -transport = udp -graph_color = #218669 -restart_script = ./ci/respdiff/restart-unbound.sh - -[diff] -# symbolic name of server under test -# other servers are used as reference when comparing answers from the target -target = kresd - -# fields and comparison methods used when comparing two DNS messages -criteria = opcode, rcode, flags, question, answertypes, answerrrsigs -# other supported criteria values: authority, additional, edns, nsid - -[report] -# diffsum reports mismatches in field values in this order -# if particular message has multiple mismatches, it is counted only once into category with highest weight -field_weights = timeout, malformed, opcode, question, rcode, flags, answertypes, answerrrsigs, answer, authority, additional, edns, nsid diff --git a/ci/respdiff/respdiff-udp.conf b/ci/respdiff/respdiff-udp.conf deleted file mode 100644 index 35a69a9f9..000000000 --- a/ci/respdiff/respdiff-udp.conf +++ /dev/null @@ -1,52 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -[sendrecv] -# in seconds -timeout = 11 -# number of queries to run simultaneously -jobs = 64 -# in seconds (float); delay each query by a random time (uniformly distributed) between min and max; set max to 0 to disable -time_delay_min = 0 -time_delay_max = 0 - -[servers] -names = kresd, bind, unbound -# symbolic names of DNS servers under test -# separate multiple values by , - -# each symbolic name in [servers] section refers to config section -# containing IP address and port of particular server -[kresd] -ip = 127.0.0.1 -port = 5353 -transport = udp -graph_color = #00a2e2 -restart_script = ./ci/respdiff/restart-kresd.sh - -[bind] -ip = 127.0.0.1 -port = 53533 -transport = udp -graph_color = #e2a000 -restart_script = ./ci/respdiff/restart-bind.sh - -[unbound] -ip = 127.0.0.1 -port = 53535 -transport = udp -graph_color = #218669 -restart_script = ./ci/respdiff/restart-unbound.sh - -[diff] -# symbolic name of server under test -# other servers are used as reference when comparing answers from the target -target = kresd - -# fields and comparison methods used when comparing two DNS messages -criteria = opcode, rcode, flags, question, answertypes, answerrrsigs -# other supported criteria values: authority, additional, edns, nsid - -[report] -# diffsum reports mismatches in field values in this order -# if particular message has multiple mismatches, it is counted only once into category with highest weight -field_weights = timeout, malformed, opcode, question, rcode, flags, answertypes, answerrrsigs, answer, authority, additional, edns, nsid diff --git a/ci/respdiff/restart-bind.sh b/ci/respdiff/restart-bind.sh deleted file mode 100755 index 35838c752..000000000 --- a/ci/respdiff/restart-bind.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-3.0-or-later -service named restart diff --git a/ci/respdiff/restart-kresd.sh b/ci/respdiff/restart-kresd.sh deleted file mode 100755 index 4e9387cb0..000000000 --- a/ci/respdiff/restart-kresd.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-3.0-or-later - -exec > /dev/null -exec 2>&1 - -killall -w kresd -rm -f '*.mdb' -$PREFIX/sbin/kresd -n -q -c $(pwd)/ci/respdiff/kresd.config &>>kresd.log & - -# wait until socket is receiving connections -sleep 1 diff --git a/ci/respdiff/restart-unbound.sh b/ci/respdiff/restart-unbound.sh deleted file mode 100755 index add24c9a3..000000000 --- a/ci/respdiff/restart-unbound.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-3.0-or-later - -service unbound restart diff --git a/ci/respdiff/run-respdiff-tests.sh b/ci/respdiff/run-respdiff-tests.sh deleted file mode 100755 index 2bfc44d99..000000000 --- a/ci/respdiff/run-respdiff-tests.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: GPL-3.0-or-later - -# $1 == udp/tcp/tls, it selects configuration file to use -# respdiff scripts must be present in /var/opt/respdiff -set -o errexit -o nounset -o xtrace - -NDIFFREPRO=3 - -wget -qO- https://gitlab.nic.cz/knot/respdiff/snippets/238/raw?inline=false | head -n 5000 > /tmp/queries.txt -mkdir results -rm -rf respdiff.db - -CONFIG="$(pwd)/ci/respdiff/respdiff-${1}.conf" -/var/opt/respdiff/qprep.py respdiff.db < /tmp/queries.txt -time /var/opt/respdiff/orchestrator.py respdiff.db -c "${CONFIG}" -time /var/opt/respdiff/msgdiff.py respdiff.db -c "${CONFIG}" -for i in $(seq $NDIFFREPRO); do - time /var/opt/respdiff/diffrepro.py -c "${CONFIG}" respdiff.db -done -/var/opt/respdiff/diffsum.py respdiff.db -c "${CONFIG}" > results/respdiff.txt -/var/opt/respdiff/histogram.py respdiff.db -c "${CONFIG}" -o results/histogram.svg -: minimize LMDB and log size so they can be effectively archived -mkdir results/respdiff.db -mdb_copy -c respdiff.db results/respdiff.db -xz -9 results/respdiff.db/data.mdb -xz kresd.log diff --git a/ci/respdiff/start-resolvers.sh b/ci/respdiff/start-resolvers.sh deleted file mode 100755 index 87e98f306..000000000 --- a/ci/respdiff/start-resolvers.sh +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -#run unbound -service unbound start && service unbound status; -# dig @localhost -p 53535 - -#run bind -service named start && service named status; -# dig @localhost -p 53533 - -#run kresd -$PREFIX/sbin/kresd -n -q -c $(pwd)/ci/respdiff/kresd.config &>kresd.log & -# dig @localhost -p 5353 diff --git a/contrib/base32hex.c b/contrib/base32hex.c deleted file mode 100644 index b12718ec8..000000000 --- a/contrib/base32hex.c +++ /dev/null @@ -1,277 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "base32hex.h" - -#include -#include - -/*! \brief Maximal length of binary input to Base32hex encoding. */ -#define MAX_BIN_DATA_LEN ((INT32_MAX / 8) * 5) - -/*! \brief Base32hex padding character. */ -static const uint8_t base32hex_pad = '='; -/*! \brief Base32hex alphabet. Beware: original code was upper-case. */ -static const uint8_t base32hex_enc[] = "0123456789abcdefghijklmnopqrstuv"; - -/*! \brief Indicates bad Base32hex character. */ -#define KO 255 -/*! \brief Indicates Base32hex padding character. */ -#define PD 32 - -/*! \brief Transformation and validation table for decoding Base32hex. */ -static const uint8_t base32hex_dec[256] = { - [ 0] = KO, [ 43] = KO, ['V'] = 31, [129] = KO, [172] = KO, [215] = KO, - [ 1] = KO, [ 44] = KO, ['W'] = KO, [130] = KO, [173] = KO, [216] = KO, - [ 2] = KO, [ 45] = KO, ['X'] = KO, [131] = KO, [174] = KO, [217] = KO, - [ 3] = KO, [ 46] = KO, ['Y'] = KO, [132] = KO, [175] = KO, [218] = KO, - [ 4] = KO, [ 47] = KO, ['Z'] = KO, [133] = KO, [176] = KO, [219] = KO, - [ 5] = KO, ['0'] = 0, [ 91] = KO, [134] = KO, [177] = KO, [220] = KO, - [ 6] = KO, ['1'] = 1, [ 92] = KO, [135] = KO, [178] = KO, [221] = KO, - [ 7] = KO, ['2'] = 2, [ 93] = KO, [136] = KO, [179] = KO, [222] = KO, - [ 8] = KO, ['3'] = 3, [ 94] = KO, [137] = KO, [180] = KO, [223] = KO, - [ 9] = KO, ['4'] = 4, [ 95] = KO, [138] = KO, [181] = KO, [224] = KO, - [ 10] = KO, ['5'] = 5, [ 96] = KO, [139] = KO, [182] = KO, [225] = KO, - [ 11] = KO, ['6'] = 6, ['a'] = 10, [140] = KO, [183] = KO, [226] = KO, - [ 12] = KO, ['7'] = 7, ['b'] = 11, [141] = KO, [184] = KO, [227] = KO, - [ 13] = KO, ['8'] = 8, ['c'] = 12, [142] = KO, [185] = KO, [228] = KO, - [ 14] = KO, ['9'] = 9, ['d'] = 13, [143] = KO, [186] = KO, [229] = KO, - [ 15] = KO, [ 58] = KO, ['e'] = 14, [144] = KO, [187] = KO, [230] = KO, - [ 16] = KO, [ 59] = KO, ['f'] = 15, [145] = KO, [188] = KO, [231] = KO, - [ 17] = KO, [ 60] = KO, ['g'] = 16, [146] = KO, [189] = KO, [232] = KO, - [ 18] = KO, ['='] = PD, ['h'] = 17, [147] = KO, [190] = KO, [233] = KO, - [ 19] = KO, [ 62] = KO, ['i'] = 18, [148] = KO, [191] = KO, [234] = KO, - [ 20] = KO, [ 63] = KO, ['j'] = 19, [149] = KO, [192] = KO, [235] = KO, - [ 21] = KO, [ 64] = KO, ['k'] = 20, [150] = KO, [193] = KO, [236] = KO, - [ 22] = KO, ['A'] = 10, ['l'] = 21, [151] = KO, [194] = KO, [237] = KO, - [ 23] = KO, ['B'] = 11, ['m'] = 22, [152] = KO, [195] = KO, [238] = KO, - [ 24] = KO, ['C'] = 12, ['n'] = 23, [153] = KO, [196] = KO, [239] = KO, - [ 25] = KO, ['D'] = 13, ['o'] = 24, [154] = KO, [197] = KO, [240] = KO, - [ 26] = KO, ['E'] = 14, ['p'] = 25, [155] = KO, [198] = KO, [241] = KO, - [ 27] = KO, ['F'] = 15, ['q'] = 26, [156] = KO, [199] = KO, [242] = KO, - [ 28] = KO, ['G'] = 16, ['r'] = 27, [157] = KO, [200] = KO, [243] = KO, - [ 29] = KO, ['H'] = 17, ['s'] = 28, [158] = KO, [201] = KO, [244] = KO, - [ 30] = KO, ['I'] = 18, ['t'] = 29, [159] = KO, [202] = KO, [245] = KO, - [ 31] = KO, ['J'] = 19, ['u'] = 30, [160] = KO, [203] = KO, [246] = KO, - [ 32] = KO, ['K'] = 20, ['v'] = 31, [161] = KO, [204] = KO, [247] = KO, - [ 33] = KO, ['L'] = 21, ['w'] = KO, [162] = KO, [205] = KO, [248] = KO, - [ 34] = KO, ['M'] = 22, ['x'] = KO, [163] = KO, [206] = KO, [249] = KO, - [ 35] = KO, ['N'] = 23, ['y'] = KO, [164] = KO, [207] = KO, [250] = KO, - [ 36] = KO, ['O'] = 24, ['z'] = KO, [165] = KO, [208] = KO, [251] = KO, - [ 37] = KO, ['P'] = 25, [123] = KO, [166] = KO, [209] = KO, [252] = KO, - [ 38] = KO, ['Q'] = 26, [124] = KO, [167] = KO, [210] = KO, [253] = KO, - [ 39] = KO, ['R'] = 27, [125] = KO, [168] = KO, [211] = KO, [254] = KO, - [ 40] = KO, ['S'] = 28, [126] = KO, [169] = KO, [212] = KO, [255] = KO, - [ 41] = KO, ['T'] = 29, [127] = KO, [170] = KO, [213] = KO, - [ 42] = KO, ['U'] = 30, [128] = KO, [171] = KO, [214] = KO, -}; - -int32_t base32hex_decode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len) -{ - // Checking inputs. - if (in == NULL || out == NULL) { - return -1; - } - if (in_len > INT32_MAX || out_len < ((in_len + 7) / 8) * 5) { - return -1; - } - if ((in_len % 8) != 0) { - return -1; - } - - const uint8_t *stop = in + in_len; - uint8_t *bin = out; - uint8_t pad_len = 0; - uint8_t c1, c2, c3, c4, c5, c6, c7, c8; - - // Decoding loop takes 8 characters and creates 5 bytes. - while (in < stop) { - // Filling and transforming 8 Base32hex chars. - c1 = base32hex_dec[in[0]]; - c2 = base32hex_dec[in[1]]; - c3 = base32hex_dec[in[2]]; - c4 = base32hex_dec[in[3]]; - c5 = base32hex_dec[in[4]]; - c6 = base32hex_dec[in[5]]; - c7 = base32hex_dec[in[6]]; - c8 = base32hex_dec[in[7]]; - - // Check 8. char if is bad or padding. - if (c8 >= PD) { - if (c8 == PD && pad_len == 0) { - pad_len = 1; - } else { - return -1; - } - } - - // Check 7. char if is bad or padding (if so, 6. must be too). - if (c7 >= PD) { - if (c7 == PD && c6 == PD && pad_len == 1) { - pad_len = 3; - } else { - return -1; - } - } - - // Check 6. char if is bad or padding. - if (c6 >= PD) { - if (!(c6 == PD && pad_len == 3)) { - return -1; - } - } - - // Check 5. char if is bad or padding. - if (c5 >= PD) { - if (c5 == PD && pad_len == 3) { - pad_len = 4; - } else { - return -1; - } - } - - // Check 4. char if is bad or padding (if so, 3. must be too). - if (c4 >= PD) { - if (c4 == PD && c3 == PD && pad_len == 4) { - pad_len = 6; - } else { - return -1; - } - } - - // Check 3. char if is bad or padding. - if (c3 >= PD) { - if (!(c3 == PD && pad_len == 6)) { - return -1; - } - } - - // 1. and 2. chars must not be padding. - if (c2 >= PD || c1 >= PD) { - return -1; - } - - // Computing of output data based on padding length. - switch (pad_len) { - case 0: - bin[4] = (c7 << 5) + c8; - case 1: - bin[3] = (c5 << 7) + (c6 << 2) + (c7 >> 3); - case 3: - bin[2] = (c4 << 4) + (c5 >> 1); - case 4: - bin[1] = (c2 << 6) + (c3 << 1) + (c4 >> 4); - case 6: - bin[0] = (c1 << 3) + (c2 >> 2); - } - - // Update output end. - switch (pad_len) { - case 0: - bin += 5; - break; - case 1: - bin += 4; - break; - case 3: - bin += 3; - break; - case 4: - bin += 2; - break; - case 6: - bin += 1; - break; - } - - in += 8; - } - - return (bin - out); -} - -int32_t base32hex_encode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len) -{ - // Checking inputs. - if (in == NULL || out == NULL) { - return -1; - } - if (in_len > MAX_BIN_DATA_LEN || out_len < ((in_len + 4) / 5) * 8) { - return -1; - } - - uint8_t rest_len = in_len % 5; - const uint8_t *stop = in + in_len - rest_len; - uint8_t *text = out; - - // Encoding loop takes 5 bytes and creates 8 characters. - while (in < stop) { - text[0] = base32hex_enc[in[0] >> 3]; - text[1] = base32hex_enc[(in[0] & 0x07) << 2 | in[1] >> 6]; - text[2] = base32hex_enc[(in[1] & 0x3E) >> 1]; - text[3] = base32hex_enc[(in[1] & 0x01) << 4 | in[2] >> 4]; - text[4] = base32hex_enc[(in[2] & 0x0F) << 1 | in[3] >> 7]; - text[5] = base32hex_enc[(in[3] & 0x7C) >> 2]; - text[6] = base32hex_enc[(in[3] & 0x03) << 3 | in[4] >> 5]; - text[7] = base32hex_enc[in[4] & 0x1F]; - text += 8; - in += 5; - } - - // Processing of padding, if any. - switch (rest_len) { - case 4: - text[0] = base32hex_enc[in[0] >> 3]; - text[1] = base32hex_enc[(in[0] & 0x07) << 2 | in[1] >> 6]; - text[2] = base32hex_enc[(in[1] & 0x3E) >> 1]; - text[3] = base32hex_enc[(in[1] & 0x01) << 4 | in[2] >> 4]; - text[4] = base32hex_enc[(in[2] & 0x0F) << 1 | in[3] >> 7]; - text[5] = base32hex_enc[(in[3] & 0x7C) >> 2]; - text[6] = base32hex_enc[(in[3] & 0x03) << 3]; - text[7] = base32hex_pad; - text += 8; - break; - case 3: - text[0] = base32hex_enc[in[0] >> 3]; - text[1] = base32hex_enc[(in[0] & 0x07) << 2 | in[1] >> 6]; - text[2] = base32hex_enc[(in[1] & 0x3E) >> 1]; - text[3] = base32hex_enc[(in[1] & 0x01) << 4 | in[2] >> 4]; - text[4] = base32hex_enc[(in[2] & 0x0F) << 1]; - text[5] = base32hex_pad; - text[6] = base32hex_pad; - text[7] = base32hex_pad; - text += 8; - break; - case 2: - text[0] = base32hex_enc[in[0] >> 3]; - text[1] = base32hex_enc[(in[0] & 0x07) << 2 | in[1] >> 6]; - text[2] = base32hex_enc[(in[1] & 0x3E) >> 1]; - text[3] = base32hex_enc[(in[1] & 0x01) << 4]; - text[4] = base32hex_pad; - text[5] = base32hex_pad; - text[6] = base32hex_pad; - text[7] = base32hex_pad; - text += 8; - break; - case 1: - text[0] = base32hex_enc[in[0] >> 3]; - text[1] = base32hex_enc[(in[0] & 0x07) << 2]; - text[2] = base32hex_pad; - text[3] = base32hex_pad; - text[4] = base32hex_pad; - text[5] = base32hex_pad; - text[6] = base32hex_pad; - text[7] = base32hex_pad; - text += 8; - break; - } - - return (text - out); -} diff --git a/contrib/base32hex.h b/contrib/base32hex.h deleted file mode 100644 index 24167863c..000000000 --- a/contrib/base32hex.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ -/*! - * \file - * - * \brief Base32hex implementation (RFC 4648). - * - * \note Input Base32hex string can contain a-v characters. These characters - * are considered as A-V equivalent. - * - * \addtogroup contrib - * @{ - */ - -#pragma once - -#include - -/*! - * \brief Decodes text data using Base32hex. - * - * \note Input data needn't be terminated with '\0'. - * - * \note Input data must be continuous Base32hex string! - * - * \param in Input text data. - * \param in_len Length of input string. - * \param out Output data buffer. - * \param out_len Size of output buffer. - * - * \retval >=0 length of output data. - * \retval KNOT_E* if error. - */ -int32_t base32hex_decode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len); - - -/*! - * \brief Encodes binary data using Base32hex. Lower case is used! - * - * \note Output data buffer contains Base32hex text string which isn't - * terminated with '\0'! - * - * \param in Input binary data. - * \param in_len Length of input data. - * \param out Output data buffer. - * \param out_len Size of output buffer. - * - * \retval >=0 length of output string. - * \retval <0 if error. - */ -int32_t base32hex_encode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len); - -/*! @} */ diff --git a/contrib/base32hex.spdx b/contrib/base32hex.spdx deleted file mode 100644 index 713764563..000000000 --- a/contrib/base32hex.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: knotdns-base32hex -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-4f29f08d-5fbf-4793-934c-9a6a2e6d5517 - -PackageName: knotdns-base32hex -PackageDownloadLocation: git+https://gitlab.nic.cz/knot/knot-dns.git@2b3c828a4cb8d9595318552483d4947345426c30#src/libknot/internal/base32hex.c -PackageOriginator: Organization: Knot DNS contributors -PackageLicenseDeclared: GPL-3.0-or-later diff --git a/contrib/base64.c b/contrib/base64.c deleted file mode 100644 index e5c004e54..000000000 --- a/contrib/base64.c +++ /dev/null @@ -1,260 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "base64.h" -#include "libknot/errcode.h" - -#include -#include - -/*! \brief Maximal length of binary input to Base64 encoding. */ -#define MAX_BIN_DATA_LEN ((INT32_MAX / 4) * 3) - -/*! \brief Base64 padding character. */ -static const uint8_t base64_pad = '='; -/*! \brief Base64 alphabet. */ -static const uint8_t base64_enc[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -/*! \brief Indicates bad Base64 character. */ -#define KO 255 -/*! \brief Indicates Base64 padding character. */ -#define PD 64 - -/*! \brief Transformation and validation table for decoding Base64. */ -static const uint8_t base64_dec[256] = { - [ 0] = KO, ['+'] = 62, ['V'] = 21, [129] = KO, [172] = KO, [215] = KO, - [ 1] = KO, [ 44] = KO, ['W'] = 22, [130] = KO, [173] = KO, [216] = KO, - [ 2] = KO, [ 45] = KO, ['X'] = 23, [131] = KO, [174] = KO, [217] = KO, - [ 3] = KO, [ 46] = KO, ['Y'] = 24, [132] = KO, [175] = KO, [218] = KO, - [ 4] = KO, ['/'] = 63, ['Z'] = 25, [133] = KO, [176] = KO, [219] = KO, - [ 5] = KO, ['0'] = 52, [ 91] = KO, [134] = KO, [177] = KO, [220] = KO, - [ 6] = KO, ['1'] = 53, [ 92] = KO, [135] = KO, [178] = KO, [221] = KO, - [ 7] = KO, ['2'] = 54, [ 93] = KO, [136] = KO, [179] = KO, [222] = KO, - [ 8] = KO, ['3'] = 55, [ 94] = KO, [137] = KO, [180] = KO, [223] = KO, - [ 9] = KO, ['4'] = 56, [ 95] = KO, [138] = KO, [181] = KO, [224] = KO, - [ 10] = KO, ['5'] = 57, [ 96] = KO, [139] = KO, [182] = KO, [225] = KO, - [ 11] = KO, ['6'] = 58, ['a'] = 26, [140] = KO, [183] = KO, [226] = KO, - [ 12] = KO, ['7'] = 59, ['b'] = 27, [141] = KO, [184] = KO, [227] = KO, - [ 13] = KO, ['8'] = 60, ['c'] = 28, [142] = KO, [185] = KO, [228] = KO, - [ 14] = KO, ['9'] = 61, ['d'] = 29, [143] = KO, [186] = KO, [229] = KO, - [ 15] = KO, [ 58] = KO, ['e'] = 30, [144] = KO, [187] = KO, [230] = KO, - [ 16] = KO, [ 59] = KO, ['f'] = 31, [145] = KO, [188] = KO, [231] = KO, - [ 17] = KO, [ 60] = KO, ['g'] = 32, [146] = KO, [189] = KO, [232] = KO, - [ 18] = KO, ['='] = PD, ['h'] = 33, [147] = KO, [190] = KO, [233] = KO, - [ 19] = KO, [ 62] = KO, ['i'] = 34, [148] = KO, [191] = KO, [234] = KO, - [ 20] = KO, [ 63] = KO, ['j'] = 35, [149] = KO, [192] = KO, [235] = KO, - [ 21] = KO, [ 64] = KO, ['k'] = 36, [150] = KO, [193] = KO, [236] = KO, - [ 22] = KO, ['A'] = 0, ['l'] = 37, [151] = KO, [194] = KO, [237] = KO, - [ 23] = KO, ['B'] = 1, ['m'] = 38, [152] = KO, [195] = KO, [238] = KO, - [ 24] = KO, ['C'] = 2, ['n'] = 39, [153] = KO, [196] = KO, [239] = KO, - [ 25] = KO, ['D'] = 3, ['o'] = 40, [154] = KO, [197] = KO, [240] = KO, - [ 26] = KO, ['E'] = 4, ['p'] = 41, [155] = KO, [198] = KO, [241] = KO, - [ 27] = KO, ['F'] = 5, ['q'] = 42, [156] = KO, [199] = KO, [242] = KO, - [ 28] = KO, ['G'] = 6, ['r'] = 43, [157] = KO, [200] = KO, [243] = KO, - [ 29] = KO, ['H'] = 7, ['s'] = 44, [158] = KO, [201] = KO, [244] = KO, - [ 30] = KO, ['I'] = 8, ['t'] = 45, [159] = KO, [202] = KO, [245] = KO, - [ 31] = KO, ['J'] = 9, ['u'] = 46, [160] = KO, [203] = KO, [246] = KO, - [ 32] = KO, ['K'] = 10, ['v'] = 47, [161] = KO, [204] = KO, [247] = KO, - [ 33] = KO, ['L'] = 11, ['w'] = 48, [162] = KO, [205] = KO, [248] = KO, - [ 34] = KO, ['M'] = 12, ['x'] = 49, [163] = KO, [206] = KO, [249] = KO, - [ 35] = KO, ['N'] = 13, ['y'] = 50, [164] = KO, [207] = KO, [250] = KO, - [ 36] = KO, ['O'] = 14, ['z'] = 51, [165] = KO, [208] = KO, [251] = KO, - [ 37] = KO, ['P'] = 15, [123] = KO, [166] = KO, [209] = KO, [252] = KO, - [ 38] = KO, ['Q'] = 16, [124] = KO, [167] = KO, [210] = KO, [253] = KO, - [ 39] = KO, ['R'] = 17, [125] = KO, [168] = KO, [211] = KO, [254] = KO, - [ 40] = KO, ['S'] = 18, [126] = KO, [169] = KO, [212] = KO, [255] = KO, - [ 41] = KO, ['T'] = 19, [127] = KO, [170] = KO, [213] = KO, - [ 42] = KO, ['U'] = 20, [128] = KO, [171] = KO, [214] = KO, -}; - -int32_t kr_base64_encode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len) -{ - // Checking inputs. - if (in == NULL || out == NULL) { - return KNOT_EINVAL; - } - if (in_len > MAX_BIN_DATA_LEN || out_len < ((in_len + 2) / 3) * 4) { - return KNOT_ERANGE; - } - - uint8_t rest_len = in_len % 3; - const uint8_t *stop = in + in_len - rest_len; - uint8_t *text = out; - - // Encoding loop takes 3 bytes and creates 4 characters. - while (in < stop) { - text[0] = base64_enc[in[0] >> 2]; - text[1] = base64_enc[(in[0] & 0x03) << 4 | in[1] >> 4]; - text[2] = base64_enc[(in[1] & 0x0F) << 2 | in[2] >> 6]; - text[3] = base64_enc[in[2] & 0x3F]; - text += 4; - in += 3; - } - - // Processing of padding, if any. - switch (rest_len) { - case 2: - text[0] = base64_enc[in[0] >> 2]; - text[1] = base64_enc[(in[0] & 0x03) << 4 | in[1] >> 4]; - text[2] = base64_enc[(in[1] & 0x0F) << 2]; - text[3] = base64_pad; - text += 4; - break; - case 1: - text[0] = base64_enc[in[0] >> 2]; - text[1] = base64_enc[(in[0] & 0x03) << 4]; - text[2] = base64_pad; - text[3] = base64_pad; - text += 4; - break; - } - - return (text - out); -} - -int32_t kr_base64_encode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out) -{ - // Checking inputs. - if (out == NULL) { - return KNOT_EINVAL; - } - if (in_len > MAX_BIN_DATA_LEN) { - return KNOT_ERANGE; - } - - // Compute output buffer length. - uint32_t out_len = ((in_len + 2) / 3) * 4; - - // Allocate output buffer. - *out = malloc(out_len); - if (*out == NULL) { - return KNOT_ENOMEM; - } - - // Encode data. - int32_t ret = kr_base64_encode(in, in_len, *out, out_len); - if (ret < 0) { - free(*out); - *out = NULL; - } - - return ret; -} - -int32_t kr_base64_decode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len) -{ - // Checking inputs. - if (in == NULL || out == NULL) { - return KNOT_EINVAL; - } - if (in_len > INT32_MAX || out_len < ((in_len + 3) / 4) * 3) { - return KNOT_ERANGE; - } - if ((in_len % 4) != 0) { - return KNOT_BASE64_ESIZE; - } - - const uint8_t *stop = in + in_len; - uint8_t *bin = out; - uint8_t pad_len = 0; - uint8_t c1, c2, c3, c4; - - // Decoding loop takes 4 characters and creates 3 bytes. - while (in < stop) { - // Filling and transforming 4 Base64 chars. - c1 = base64_dec[in[0]]; - c2 = base64_dec[in[1]]; - c3 = base64_dec[in[2]]; - c4 = base64_dec[in[3]]; - - // Check 4. char if is bad or padding. - if (c4 >= PD) { - if (c4 == PD && pad_len == 0) { - pad_len = 1; - } else { - return KNOT_BASE64_ECHAR; - } - } - - // Check 3. char if is bad or padding. - if (c3 >= PD) { - if (c3 == PD && pad_len == 1) { - pad_len = 2; - } else { - return KNOT_BASE64_ECHAR; - } - } - - // Check 1. and 2. chars if are not padding. - if (c2 >= PD || c1 >= PD) { - return KNOT_BASE64_ECHAR; - } - - // Computing of output data based on padding length. - switch (pad_len) { - case 0: - bin[2] = (c3 << 6) + c4; - // FALLTHROUGH - case 1: - bin[1] = (c2 << 4) + (c3 >> 2); - // FALLTHROUGH - case 2: - bin[0] = (c1 << 2) + (c2 >> 4); - } - - // Update output end. - switch (pad_len) { - case 0: - bin += 3; - break; - case 1: - bin += 2; - break; - case 2: - bin += 1; - break; - } - - in += 4; - } - - return (bin - out); -} - -int32_t kr_base64_decode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out) -{ - // Checking inputs. - if (out == NULL) { - return KNOT_EINVAL; - } - - // Compute output buffer length. - uint32_t out_len = ((in_len + 3) / 4) * 3; - - // Allocate output buffer. - *out = malloc(out_len); - if (*out == NULL) { - return KNOT_ENOMEM; - } - - // Decode data. - int32_t ret = kr_base64_decode(in, in_len, *out, out_len); - if (ret < 0) { - free(*out); - *out = NULL; - } - - return ret; -} diff --git a/contrib/base64.h b/contrib/base64.h deleted file mode 100644 index 153aa7205..000000000 --- a/contrib/base64.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ -/*! - * \file - * - * \brief Base64 implementation (RFC 4648). - * - * \addtogroup contrib - * @{ - */ - -#pragma once - -#include - -/*! - * \brief Encodes binary data using Base64. - * - * \note Output data buffer contains Base64 text string which isn't - * terminated with '\0'! - * - * \param in Input binary data. - * \param in_len Length of input data. - * \param out Output data buffer. - * \param out_len Size of output buffer. - * - * \retval >=0 length of output string. - * \retval KNOT_E* if error. - */ -int32_t kr_base64_encode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len); - -/*! - * \brief Encodes binary data using Base64 and output stores to own buffer. - * - * \note Output data buffer contains Base64 text string which isn't - * terminated with '\0'! - * - * \note Output buffer should be deallocated after use. - * - * \param in Input binary data. - * \param in_len Length of input data. - * \param out Output data buffer. - * - * \retval >=0 length of output string. - * \retval KNOT_E* if error. - */ -int32_t kr_base64_encode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out); - -/*! - * \brief Decodes text data using Base64. - * - * \note Input data needn't be terminated with '\0'. - * - * \note Input data must be continuous Base64 string! - * - * \param in Input text data. - * \param in_len Length of input string. - * \param out Output data buffer. - * \param out_len Size of output buffer. - * - * \retval >=0 length of output data. - * \retval KNOT_E* if error. - */ -int32_t kr_base64_decode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len); - -/*! - * \brief Decodes text data using Base64 and output stores to own buffer. - * - * \note Input data needn't be terminated with '\0'. - * - * \note Input data must be continuous Base64 string! - * - * \note Output buffer should be deallocated after use. - * - * \param in Input text data. - * \param in_len Length of input string. - * \param out Output data buffer. - * - * \retval >=0 length of output data. - * \retval KNOT_E* if error. - */ -int32_t kr_base64_decode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out); - -/*! @} */ diff --git a/contrib/base64.spdx b/contrib/base64.spdx deleted file mode 100644 index 15ce10dfa..000000000 --- a/contrib/base64.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: knotdns-base64 -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-669dfa8c-3b50-425f-92fc-9b7ce18999f2 - -PackageName: knotdns-base64 -PackageDownloadLocation: git+https://gitlab.nic.cz/knot/knot-dns.git@2b3c828a4cb8d9595318552483d4947345426c30#src/libknot/internal/base64.c -PackageOriginator: Organization: Knot DNS contributors -PackageLicenseDeclared: GPL-3.0-or-later diff --git a/contrib/base64url.c b/contrib/base64url.c deleted file mode 100644 index b7c7d2b2e..000000000 --- a/contrib/base64url.c +++ /dev/null @@ -1,287 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - */ - -#include "contrib/base64url.h" -#include "libknot/errcode.h" - -#include -#include -#include - -/*! \brief Maximal length of binary input to Base64url encoding. */ -#define MAX_BIN_DATA_LEN ((INT32_MAX / 4) * 3) - -/*! \brief Base64url padding character. */ -static const uint8_t base64url_pad = '\0'; -/*! \brief Base64 alphabet. */ -static const uint8_t base64url_enc[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; - -/*! \brief Indicates bad Base64 character. */ -#define KO 255 -/*! \brief Indicates Base64 padding character. */ -#define PD 64 - -/*! \brief Transformation and validation table for decoding Base64. */ -static const uint8_t base64url_dec[256] = { - [ 0] = PD, [ 43] = KO, ['V'] = 21, [129] = KO, [172] = KO, [215] = KO, - [ 1] = KO, [ 44] = KO, ['W'] = 22, [130] = KO, [173] = KO, [216] = KO, - [ 2] = KO, ['-'] = 62, ['X'] = 23, [131] = KO, [174] = KO, [217] = KO, - [ 3] = KO, [ 46] = KO, ['Y'] = 24, [132] = KO, [175] = KO, [218] = KO, - [ 4] = KO, [ 47] = KO, ['Z'] = 25, [133] = KO, [176] = KO, [219] = KO, - [ 5] = KO, ['0'] = 52, [ 91] = KO, [134] = KO, [177] = KO, [220] = KO, - [ 6] = KO, ['1'] = 53, [ 92] = KO, [135] = KO, [178] = KO, [221] = KO, - [ 7] = KO, ['2'] = 54, [ 93] = KO, [136] = KO, [179] = KO, [222] = KO, - [ 8] = KO, ['3'] = 55, [ 94] = KO, [137] = KO, [180] = KO, [223] = KO, - [ 9] = KO, ['4'] = 56, ['_'] = 63, [138] = KO, [181] = KO, [224] = KO, - [ 10] = KO, ['5'] = 57, [ 96] = KO, [139] = KO, [182] = KO, [225] = KO, - [ 11] = KO, ['6'] = 58, ['a'] = 26, [140] = KO, [183] = KO, [226] = KO, - [ 12] = KO, ['7'] = 59, ['b'] = 27, [141] = KO, [184] = KO, [227] = KO, - [ 13] = KO, ['8'] = 60, ['c'] = 28, [142] = KO, [185] = KO, [228] = KO, - [ 14] = KO, ['9'] = 61, ['d'] = 29, [143] = KO, [186] = KO, [229] = KO, - [ 15] = KO, [ 58] = KO, ['e'] = 30, [144] = KO, [187] = KO, [230] = KO, - [ 16] = KO, [ 59] = KO, ['f'] = 31, [145] = KO, [188] = KO, [231] = KO, - [ 17] = KO, [ 60] = KO, ['g'] = 32, [146] = KO, [189] = KO, [232] = KO, - [ 18] = KO, [ 61] = KO, ['h'] = 33, [147] = KO, [190] = KO, [233] = KO, - [ 19] = KO, [ 62] = KO, ['i'] = 34, [148] = KO, [191] = KO, [234] = KO, - [ 20] = KO, [ 63] = KO, ['j'] = 35, [149] = KO, [192] = KO, [235] = KO, - [ 21] = KO, [ 64] = KO, ['k'] = 36, [150] = KO, [193] = KO, [236] = KO, - [ 22] = KO, ['A'] = 0, ['l'] = 37, [151] = KO, [194] = KO, [237] = KO, - [ 23] = KO, ['B'] = 1, ['m'] = 38, [152] = KO, [195] = KO, [238] = KO, - [ 24] = KO, ['C'] = 2, ['n'] = 39, [153] = KO, [196] = KO, [239] = KO, - [ 25] = KO, ['D'] = 3, ['o'] = 40, [154] = KO, [197] = KO, [240] = KO, - [ 26] = KO, ['E'] = 4, ['p'] = 41, [155] = KO, [198] = KO, [241] = KO, - [ 27] = KO, ['F'] = 5, ['q'] = 42, [156] = KO, [199] = KO, [242] = KO, - [ 28] = KO, ['G'] = 6, ['r'] = 43, [157] = KO, [200] = KO, [243] = KO, - [ 29] = KO, ['H'] = 7, ['s'] = 44, [158] = KO, [201] = KO, [244] = KO, - [ 30] = KO, ['I'] = 8, ['t'] = 45, [159] = KO, [202] = KO, [245] = KO, - [ 31] = KO, ['J'] = 9, ['u'] = 46, [160] = KO, [203] = KO, [246] = KO, - [ 32] = KO, ['K'] = 10, ['v'] = 47, [161] = KO, [204] = KO, [247] = KO, - [ 33] = KO, ['L'] = 11, ['w'] = 48, [162] = KO, [205] = KO, [248] = KO, - [ 34] = KO, ['M'] = 12, ['x'] = 49, [163] = KO, [206] = KO, [249] = KO, - [ 35] = KO, ['N'] = 13, ['y'] = 50, [164] = KO, [207] = KO, [250] = KO, - [ 36] = KO, ['O'] = 14, ['z'] = 51, [165] = KO, [208] = KO, [251] = KO, - ['%'] = KO, ['P'] = 15, [123] = KO, [166] = KO, [209] = KO, [252] = KO, - [ 38] = KO, ['Q'] = 16, [124] = KO, [167] = KO, [210] = KO, [253] = KO, - [ 39] = KO, ['R'] = 17, [125] = KO, [168] = KO, [211] = KO, [254] = KO, - [ 40] = KO, ['S'] = 18, [126] = KO, [169] = KO, [212] = KO, [255] = KO, - [ 41] = KO, ['T'] = 19, [127] = KO, [170] = KO, [213] = KO, - [ 42] = KO, ['U'] = 20, [128] = KO, [171] = KO, [214] = KO, -}; - -int32_t kr_base64url_encode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len) -{ - // Checking inputs. - if (in == NULL || out == NULL) { - return KNOT_EINVAL; - } - if (in_len > MAX_BIN_DATA_LEN || out_len < ((in_len + 2) / 3) * 4) { - return KNOT_ERANGE; - } - - uint8_t rest_len = in_len % 3; - const uint8_t *stop = in + in_len - rest_len; - uint8_t *text = out; - - // Encoding loop takes 3 bytes and creates 4 characters. - while (in < stop) { - text[0] = base64url_enc[in[0] >> 2]; - text[1] = base64url_enc[(in[0] & 0x03) << 4 | in[1] >> 4]; - text[2] = base64url_enc[(in[1] & 0x0F) << 2 | in[2] >> 6]; - text[3] = base64url_enc[in[2] & 0x3F]; - text += 4; - in += 3; - } - - // Processing of padding, if any. - switch (rest_len) { - case 2: - text[0] = base64url_enc[in[0] >> 2]; - text[1] = base64url_enc[(in[0] & 0x03) << 4 | in[1] >> 4]; - text[2] = base64url_enc[(in[1] & 0x0F) << 2]; - text[3] = base64url_pad; - text += 3; - break; - case 1: - text[0] = base64url_enc[in[0] >> 2]; - text[1] = base64url_enc[(in[0] & 0x03) << 4]; - text[2] = base64url_pad; - text[3] = base64url_pad; - text += 2; - break; - } - return (text - out); -} - -int32_t kr_base64url_encode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out) -{ - // Checking inputs. - if (out == NULL) { - return KNOT_EINVAL; - } - if (in_len > MAX_BIN_DATA_LEN) { - return KNOT_ERANGE; - } - - // Compute output buffer length. - uint32_t out_len = ((in_len + 2) / 3) * 4; - - // Allocate output buffer. - *out = malloc(out_len); - if (*out == NULL) { - return KNOT_ENOMEM; - } - - // Encode data. - int32_t ret = kr_base64url_encode(in, in_len, *out, out_len); - if (ret < 0) { - free(*out); - *out = NULL; - } - - return ret; -} - -int32_t kr_base64url_decode(const uint8_t *in, - uint32_t in_len, - uint8_t *out, - const uint32_t out_len) -{ - // Checking inputs. - if (in == NULL || out == NULL) { - return KNOT_EINVAL; - } - - // cut up to two "%3d" from the end of input - int pad3d = 0; - const uint8_t *end = in + in_len; - char *perc3d = "d3%d3%", *stop3d = perc3d + 6; - while (end != in && perc3d != stop3d && tolower(*--end) == *perc3d) { - if (*perc3d++ == '%') { - in_len -= 3; - pad3d++; - } - } - - if (in_len > INT32_MAX || out_len < ((in_len + 3) / 4) * 3) { - return KNOT_ERANGE; - } - - const uint8_t *stop = in + in_len; - uint8_t *bin = out; - uint8_t pad_len = 0; - uint8_t c1, c2, c3, c4; - - // Decoding loop takes 4 characters and creates 3 bytes. - while (in < stop) { - // Filling and transforming 4 Base64 chars. - c1 = base64url_dec[in[0]] ; - c2 = base64url_dec[in[1]] ; - c3 = (in + 2 < stop) ? base64url_dec[in[2]] : PD; - c4 = (in + 3 < stop) ? base64url_dec[in[3]] : PD; - - // Check 1. and 2. chars if are not padding - if (c1 >= PD || c2 >= PD) { - return KNOT_BASE64_ECHAR; - } - // Check 3. char if is bad or padding. - else if (c3 >= PD) { - if (c3 == PD) { - pad_len = 2; - } else { - return KNOT_BASE64_ECHAR; - } - } - // Check 3. char if is bad or padding. - else if (c4 >= PD) { - if (c4 == PD) { - pad_len = 1; - } else { - return KNOT_BASE64_ECHAR; - } - } - - if (pad_len > 0 && in <= stop - 4) { - return KNOT_BASE64_ECHAR; - } - - // Computing of output data based on padding length. - switch (pad_len) { - case 0: - bin[2] = (c3 << 6) + c4; - // FALLTHROUGH - case 1: - bin[1] = (c2 << 4) + (c3 >> 2); - // FALLTHROUGH - case 2: - bin[0] = (c1 << 2) + (c2 >> 4); - } - - // Update output end. - switch (pad_len) { - case 0: - bin += 3; - break; - case 1: - bin += 2; - goto end; - case 2: - bin += 1; - goto end; - } - - in += 4; - } - -end: - if (pad3d > pad_len) { - return KNOT_BASE64_ECHAR; - } - return (bin - out); -} - -int32_t kr_base64url_decode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out) -{ - // Checking inputs. - if (out == NULL) { - return KNOT_EINVAL; - } - - // Compute output buffer length. - uint32_t out_len = ((in_len + 3) / 4) * 3; - - // Allocate output buffer. - *out = malloc(out_len); - if (*out == NULL) { - return KNOT_ENOMEM; - } - - // Decode data. - int32_t ret = kr_base64url_decode(in, in_len, *out, out_len); - if (ret < 0) { - free(*out); - *out = NULL; - } - - return ret; -} diff --git a/contrib/base64url.h b/contrib/base64url.h deleted file mode 100644 index ad7c6e94a..000000000 --- a/contrib/base64url.h +++ /dev/null @@ -1,103 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - */ - -/*! - * \brief Base64url implementation (RFC 4648). - */ - -#pragma once - -#include - -/*! - * \brief Encodes binary data using Base64. - * - * \note Output data buffer contains Base64 text string which isn't - * terminated with '\0'! - * - * \param in Input binary data. - * \param in_len Length of input data. - * \param out Output data buffer. - * \param out_len Size of output buffer. - * - * \retval >=0 length of output string. - * \retval KNOT_E* if error. - */ -int32_t kr_base64url_encode(const uint8_t *in, - const uint32_t in_len, - uint8_t *out, - const uint32_t out_len); - -/*! - * \brief Encodes binary data using Base64 and output stores to own buffer. - * - * \note Output data buffer contains Base64 text string which isn't - * terminated with '\0'! - * - * \note Output buffer should be deallocated after use. - * - * \param in Input binary data. - * \param in_len Length of input data. - * \param out Output data buffer. - * - * \retval >=0 length of output string. - * \retval KNOT_E* if error. - */ -int32_t kr_base64url_encode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out); - -/*! - * \brief Decodes text data using Base64. - * - * \note Input data needn't be terminated with '\0'. - * - * \note Input data must be continuous Base64 string! - * - * \param in Input text data. - * \param in_len Length of input string. - * \param out Output data buffer. - * \param out_len Size of output buffer. - * - * \retval >=0 length of output data. - * \retval KNOT_E* if error. - */ -int32_t kr_base64url_decode(const uint8_t *in, - uint32_t in_len, - uint8_t *out, - const uint32_t out_len); - -/*! - * \brief Decodes text data using Base64 and output stores to own buffer. - * - * \note Input data needn't be terminated with '\0'. - * - * \note Input data must be continuous Base64 string! - * - * \note Output buffer should be deallocated after use. - * - * \param in Input text data. - * \param in_len Length of input string. - * \param out Output data buffer. - * - * \retval >=0 length of output data. - * \retval KNOT_E* if error. - */ -int32_t kr_base64url_decode_alloc(const uint8_t *in, - const uint32_t in_len, - uint8_t **out); - -/*! @} */ diff --git a/contrib/ccan/asprintf/LICENSE b/contrib/ccan/asprintf/LICENSE deleted file mode 120000 index 2354d1294..000000000 --- a/contrib/ccan/asprintf/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../../licenses/BSD-MIT \ No newline at end of file diff --git a/contrib/ccan/asprintf/asprintf.c b/contrib/ccan/asprintf/asprintf.c deleted file mode 100644 index 4077599f8..000000000 --- a/contrib/ccan/asprintf/asprintf.c +++ /dev/null @@ -1,57 +0,0 @@ -/* SPDX-License-Identifier: MIT - * Source: https://ccodearchive.net/info/asprintf.html */ -#include -#include -#include - -char *PRINTF_FMT(1, 2) afmt(const char *fmt, ...) -{ - va_list ap; - char *ptr; - - va_start(ap, fmt); - /* The BSD version apparently sets ptr to NULL on fail. GNU loses. */ - if (vasprintf(&ptr, fmt, ap) < 0) - ptr = NULL; - va_end(ap); - return ptr; -} - -#if !HAVE_ASPRINTF -#include -#include - -int vasprintf(char **strp, const char *fmt, va_list ap) -{ - int len; - va_list ap_copy; - - /* We need to make a copy of ap, since it's a use-once. */ - va_copy(ap_copy, ap); - len = vsnprintf(NULL, 0, fmt, ap_copy); - va_end(ap_copy); - - /* Until version 2.0.6 glibc would return -1 on truncated output. - * OTOH, they had asprintf. */ - if (len < 0) - return -1; - - *strp = malloc(len+1); - if (!*strp) - return -1; - - return vsprintf(*strp, fmt, ap); -} - -int asprintf(char **strp, const char *fmt, ...) -{ - va_list ap; - int len; - - va_start(ap, fmt); - len = vasprintf(strp, fmt, ap); - va_end(ap); - - return len; -} -#endif /* !HAVE_ASPRINTF */ diff --git a/contrib/ccan/asprintf/asprintf.h b/contrib/ccan/asprintf/asprintf.h deleted file mode 100644 index d4cc5ca2d..000000000 --- a/contrib/ccan/asprintf/asprintf.h +++ /dev/null @@ -1,51 +0,0 @@ -/* SPDX-License-Identifier: MIT - * Source: https://ccodearchive.net/info/asprintf.html */ -#ifndef CCAN_ASPRINTF_H -#define CCAN_ASPRINTF_H -#include "config.h" -#include - -/** - * afmt - allocate and populate a string with the given format. - * @fmt: printf-style format. - * - * This is a simplified asprintf interface. Returns NULL on error. - */ -char *PRINTF_FMT(1, 2) afmt(const char *fmt, ...); - -#if HAVE_ASPRINTF -#include -#else -#include -/** - * asprintf - printf to a dynamically-allocated string. - * @strp: pointer to the string to allocate. - * @fmt: printf-style format. - * - * Returns -1 (and leaves @strp undefined) on an error. Otherwise returns - * number of bytes printed into @strp. - * - * Example: - * static char *greeting(const char *name) - * { - * char *str; - * int len = asprintf(&str, "Hello %s", name); - * if (len < 0) - * return NULL; - * return str; - * } - */ -int PRINTF_FMT(2, 3) asprintf(char **strp, const char *fmt, ...); - -/** - * vasprintf - vprintf to a dynamically-allocated string. - * @strp: pointer to the string to allocate. - * @fmt: printf-style format. - * - * Returns -1 (and leaves @strp undefined) on an error. Otherwise returns - * number of bytes printed into @strp. - */ -int vasprintf(char **strp, const char *fmt, va_list ap); -#endif - -#endif /* CCAN_ASPRINTF_H */ diff --git a/contrib/ccan/asprintf/asprintf.spdx b/contrib/ccan/asprintf/asprintf.spdx deleted file mode 100644 index 175078a28..000000000 --- a/contrib/ccan/asprintf/asprintf.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: ccan-asprintf -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-40d4b71d-00e9-4e75-b6da-559203e6b815 - -PackageName: asprintf -PackageDownloadLocation: git+https://github.com/rustyrussell/ccan@fb1dfd092940905883ea6473162f5f6e36624da2#ccan/asprintf -PackageOriginator: Person: Rusty Russell (rusty@rustcorp.com.au) -PackageLicenseDeclared: MIT diff --git a/contrib/ccan/compiler/LICENSE b/contrib/ccan/compiler/LICENSE deleted file mode 120000 index b7951dabd..000000000 --- a/contrib/ccan/compiler/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../../licenses/CC0 \ No newline at end of file diff --git a/contrib/ccan/compiler/compiler.h b/contrib/ccan/compiler/compiler.h deleted file mode 100644 index 7c4f95505..000000000 --- a/contrib/ccan/compiler/compiler.h +++ /dev/null @@ -1,232 +0,0 @@ -/* SPDX-License-Identifier: CC0-1.0 - * Source: https://ccodearchive.net/info/compiler.html */ -#ifndef CCAN_COMPILER_H -#define CCAN_COMPILER_H -#include "config.h" - -#ifndef COLD -#if HAVE_ATTRIBUTE_COLD -/** - * COLD - a function is unlikely to be called. - * - * Used to mark an unlikely code path and optimize appropriately. - * It is usually used on logging or error routines. - * - * Example: - * static void COLD moan(const char *reason) - * { - * fprintf(stderr, "Error: %s (%s)\n", reason, strerror(errno)); - * } - */ -#define COLD __attribute__((__cold__)) -#else -#define COLD -#endif -#endif - -#ifndef NORETURN -#if HAVE_ATTRIBUTE_NORETURN -/** - * NORETURN - a function does not return - * - * Used to mark a function which exits; useful for suppressing warnings. - * - * Example: - * static void NORETURN fail(const char *reason) - * { - * fprintf(stderr, "Error: %s (%s)\n", reason, strerror(errno)); - * exit(1); - * } - */ -#define NORETURN __attribute__((__noreturn__)) -#else -#define NORETURN -#endif -#endif - -#ifndef PRINTF_FMT -#if HAVE_ATTRIBUTE_PRINTF -/** - * PRINTF_FMT - a function takes printf-style arguments - * @nfmt: the 1-based number of the function's format argument. - * @narg: the 1-based number of the function's first variable argument. - * - * This allows the compiler to check your parameters as it does for printf(). - * - * Example: - * void PRINTF_FMT(2,3) my_printf(const char *prefix, const char *fmt, ...); - */ -#define PRINTF_FMT(nfmt, narg) \ - __attribute__((format(__printf__, nfmt, narg))) -#else -#define PRINTF_FMT(nfmt, narg) -#endif -#endif - -#ifndef CONST_FUNCTION -#if HAVE_ATTRIBUTE_CONST -/** - * CONST_FUNCTION - a function's return depends only on its argument - * - * This allows the compiler to assume that the function will return the exact - * same value for the exact same arguments. This implies that the function - * must not use global variables, or dereference pointer arguments. - */ -#define CONST_FUNCTION __attribute__((__const__)) -#else -#define CONST_FUNCTION -#endif - -#ifndef PURE_FUNCTION -#if HAVE_ATTRIBUTE_PURE -/** - * PURE_FUNCTION - a function is pure - * - * A pure function is one that has no side effects other than it's return value - * and uses no inputs other than it's arguments and global variables. - */ -#define PURE_FUNCTION __attribute__((__pure__)) -#else -#define PURE_FUNCTION -#endif -#endif -#endif - -#if HAVE_ATTRIBUTE_UNUSED -#ifndef UNNEEDED -/** - * UNNEEDED - a variable/function may not be needed - * - * This suppresses warnings about unused variables or functions, but tells - * the compiler that if it is unused it need not emit it into the source code. - * - * Example: - * // With some preprocessor options, this is unnecessary. - * static UNNEEDED int counter; - * - * // With some preprocessor options, this is unnecessary. - * static UNNEEDED void add_to_counter(int add) - * { - * counter += add; - * } - */ -#define UNNEEDED __attribute__((__unused__)) -#endif - -#ifndef NEEDED -#if HAVE_ATTRIBUTE_USED -/** - * NEEDED - a variable/function is needed - * - * This suppresses warnings about unused variables or functions, but tells - * the compiler that it must exist even if it (seems) unused. - * - * Example: - * // Even if this is unused, these are vital for debugging. - * static NEEDED int counter; - * static NEEDED void dump_counter(void) - * { - * printf("Counter is %i\n", counter); - * } - */ -#define NEEDED __attribute__((__used__)) -#else -/* Before used, unused functions and vars were always emitted. */ -#define NEEDED __attribute__((__unused__)) -#endif -#endif - -#ifndef UNUSED -/** - * UNUSED - a parameter is unused - * - * Some compilers (eg. gcc with -W or -Wunused) warn about unused - * function parameters. This suppresses such warnings and indicates - * to the reader that it's deliberate. - * - * Example: - * // This is used as a callback, so needs to have this prototype. - * static int some_callback(void *unused UNUSED) - * { - * return 0; - * } - */ -#define UNUSED __attribute__((__unused__)) -#endif -#else -#ifndef UNNEEDED -#define UNNEEDED -#endif -#ifndef NEEDED -#define NEEDED -#endif -#ifndef UNUSED -#define UNUSED -#endif -#endif - -#ifndef IS_COMPILE_CONSTANT -#if HAVE_BUILTIN_CONSTANT_P -/** - * IS_COMPILE_CONSTANT - does the compiler know the value of this expression? - * @expr: the expression to evaluate - * - * When an expression manipulation is complicated, it is usually better to - * implement it in a function. However, if the expression being manipulated is - * known at compile time, it is better to have the compiler see the entire - * expression so it can simply substitute the result. - * - * This can be done using the IS_COMPILE_CONSTANT() macro. - * - * Example: - * enum greek { ALPHA, BETA, GAMMA, DELTA, EPSILON }; - * - * // Out-of-line version. - * const char *greek_name(enum greek greek); - * - * // Inline version. - * static inline const char *_greek_name(enum greek greek) - * { - * switch (greek) { - * case ALPHA: return "alpha"; - * case BETA: return "beta"; - * case GAMMA: return "gamma"; - * case DELTA: return "delta"; - * case EPSILON: return "epsilon"; - * default: return "**INVALID**"; - * } - * } - * - * // Use inline if compiler knows answer. Otherwise call function - * // to avoid copies of the same code everywhere. - * #define greek_name(g) \ - * (IS_COMPILE_CONSTANT(greek) ? _greek_name(g) : greek_name(g)) - */ -#define IS_COMPILE_CONSTANT(expr) __builtin_constant_p(expr) -#else -/* If we don't know, assume it's not. */ -#define IS_COMPILE_CONSTANT(expr) 0 -#endif -#endif - -#ifndef WARN_UNUSED_RESULT -#if HAVE_WARN_UNUSED_RESULT -/** - * WARN_UNUSED_RESULT - warn if a function return value is unused. - * - * Used to mark a function where it is extremely unlikely that the caller - * can ignore the result, eg realloc(). - * - * Example: - * // buf param may be freed by this; need return value! - * static char *WARN_UNUSED_RESULT enlarge(char *buf, unsigned *size) - * { - * return realloc(buf, (*size) *= 2); - * } - */ -#define WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) -#else -#define WARN_UNUSED_RESULT -#endif -#endif -#endif /* CCAN_COMPILER_H */ diff --git a/contrib/ccan/compiler/compiler.spdx b/contrib/ccan/compiler/compiler.spdx deleted file mode 100644 index 45f19f4fe..000000000 --- a/contrib/ccan/compiler/compiler.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: ccan-compiler -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-1569e849-880d-4ce7-ba3e-f4aaec8fce52 - -PackageName: compiler -PackageDownloadLocation: git+https://github.com/rustyrussell/ccan@23e96f89d54b8d5c4675284bbcd44fba68d8f826#ccan/compiler -PackageOriginator: Person: Rusty Russell (rusty@rustcorp.com.au) -PackageLicenseDeclared: CC0-1.0 diff --git a/contrib/ccan/json/LICENSE b/contrib/ccan/json/LICENSE deleted file mode 120000 index 2354d1294..000000000 --- a/contrib/ccan/json/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../../licenses/BSD-MIT \ No newline at end of file diff --git a/contrib/ccan/json/json.c b/contrib/ccan/json/json.c deleted file mode 100644 index a86c4db08..000000000 --- a/contrib/ccan/json/json.c +++ /dev/null @@ -1,1362 +0,0 @@ -/* SPDX-License-Identifier: MIT - * Source: https://ccodearchive.net/info/json.html - * Copyright (C) 2011 Joseph A. Adams (joeyadams3.14159@gmail.com) */ - -#include "json.h" - -#include -#include -#include -#include -#include - -#define out_of_memory() do { \ - fprintf(stderr, "Out of memory.\n"); \ - exit(EXIT_FAILURE); \ - } while (0) - -/* Sadly, strdup is not portable. */ -static char *json_strdup(const char *str) -{ - char *ret = (char*) malloc(strlen(str) + 1); - if (ret == NULL) - out_of_memory(); - strcpy(ret, str); - return ret; -} - -/* String buffer */ - -typedef struct -{ - char *cur; - char *end; - char *start; -} SB; - -static void sb_init(SB *sb) -{ - sb->start = (char*) malloc(17); - if (sb->start == NULL) - out_of_memory(); - sb->cur = sb->start; - sb->end = sb->start + 16; -} - -/* sb and need may be evaluated multiple times. */ -#define sb_need(sb, need) do { \ - if ((sb)->end - (sb)->cur < (need)) \ - sb_grow(sb, need); \ - } while (0) - -static void sb_grow(SB *sb, int need) -{ - size_t length = sb->cur - sb->start; - size_t alloc = sb->end - sb->start; - - do { - alloc *= 2; - } while (alloc < length + need); - - sb->start = (char*) realloc(sb->start, alloc + 1); - if (sb->start == NULL) - out_of_memory(); - sb->cur = sb->start + length; - sb->end = sb->start + alloc; -} - -static void sb_put(SB *sb, const char *bytes, int count) -{ - sb_need(sb, count); - memcpy(sb->cur, bytes, count); - sb->cur += count; -} - -#define sb_putc(sb, c) do { \ - if ((sb)->cur >= (sb)->end) \ - sb_grow(sb, 1); \ - *(sb)->cur++ = (c); \ - } while (0) - -static void sb_puts(SB *sb, const char *str) -{ - sb_put(sb, str, strlen(str)); -} - -static char *sb_finish(SB *sb) -{ - *sb->cur = 0; - assert(sb->start <= sb->cur && strlen(sb->start) == (size_t)(sb->cur - sb->start)); - return sb->start; -} - -static void sb_free(SB *sb) -{ - free(sb->start); -} - -/* - * Unicode helper functions - * - * These are taken from the ccan/charset module and customized a bit. - * Putting them here means the compiler can (choose to) inline them, - * and it keeps ccan/json from having a dependency. - */ - -/* - * Type for Unicode codepoints. - * We need our own because wchar_t might be 16 bits. - */ -typedef uint32_t uchar_t; - -/* - * Validate a single UTF-8 character starting at @s. - * The string must be null-terminated. - * - * If it's valid, return its length (1 thru 4). - * If it's invalid or clipped, return 0. - * - * This function implements the syntax given in RFC3629, which is - * the same as that given in The Unicode Standard, Version 6.0. - * - * It has the following properties: - * - * * All codepoints U+0000..U+10FFFF may be encoded, - * except for U+D800..U+DFFF, which are reserved - * for UTF-16 surrogate pair encoding. - * * UTF-8 byte sequences longer than 4 bytes are not permitted, - * as they exceed the range of Unicode. - * * The sixty-six Unicode "non-characters" are permitted - * (namely, U+FDD0..U+FDEF, U+xxFFFE, and U+xxFFFF). - */ -static int utf8_validate_cz(const char *s) -{ - unsigned char c = *s++; - - if (c <= 0x7F) { /* 00..7F */ - return 1; - } else if (c <= 0xC1) { /* 80..C1 */ - /* Disallow overlong 2-byte sequence. */ - return 0; - } else if (c <= 0xDF) { /* C2..DF */ - /* Make sure subsequent byte is in the range 0x80..0xBF. */ - if (((unsigned char)*s++ & 0xC0) != 0x80) - return 0; - - return 2; - } else if (c <= 0xEF) { /* E0..EF */ - /* Disallow overlong 3-byte sequence. */ - if (c == 0xE0 && (unsigned char)*s < 0xA0) - return 0; - - /* Disallow U+D800..U+DFFF. */ - if (c == 0xED && (unsigned char)*s > 0x9F) - return 0; - - /* Make sure subsequent bytes are in the range 0x80..0xBF. */ - if (((unsigned char)*s++ & 0xC0) != 0x80) - return 0; - if (((unsigned char)*s++ & 0xC0) != 0x80) - return 0; - - return 3; - } else if (c <= 0xF4) { /* F0..F4 */ - /* Disallow overlong 4-byte sequence. */ - if (c == 0xF0 && (unsigned char)*s < 0x90) - return 0; - - /* Disallow codepoints beyond U+10FFFF. */ - if (c == 0xF4 && (unsigned char)*s > 0x8F) - return 0; - - /* Make sure subsequent bytes are in the range 0x80..0xBF. */ - if (((unsigned char)*s++ & 0xC0) != 0x80) - return 0; - if (((unsigned char)*s++ & 0xC0) != 0x80) - return 0; - if (((unsigned char)*s++ & 0xC0) != 0x80) - return 0; - - return 4; - } else { /* F5..FF */ - return 0; - } -} - -/* Validate a null-terminated UTF-8 string. */ -static bool utf8_validate(const char *s) -{ - int len; - - for (; *s != 0; s += len) { - len = utf8_validate_cz(s); - if (len == 0) - return false; - } - - return true; -} - -/* - * Read a single UTF-8 character starting at @s, - * returning the length, in bytes, of the character read. - * - * This function assumes input is valid UTF-8, - * and that there are enough characters in front of @s. - */ -static int utf8_read_char(const char *s, uchar_t *out) -{ - const unsigned char *c = (const unsigned char*) s; - - assert(utf8_validate_cz(s)); - - if (c[0] <= 0x7F) { - /* 00..7F */ - *out = c[0]; - return 1; - } else if (c[0] <= 0xDF) { - /* C2..DF (unless input is invalid) */ - *out = ((uchar_t)c[0] & 0x1F) << 6 | - ((uchar_t)c[1] & 0x3F); - return 2; - } else if (c[0] <= 0xEF) { - /* E0..EF */ - *out = ((uchar_t)c[0] & 0xF) << 12 | - ((uchar_t)c[1] & 0x3F) << 6 | - ((uchar_t)c[2] & 0x3F); - return 3; - } else { - /* F0..F4 (unless input is invalid) */ - *out = ((uchar_t)c[0] & 0x7) << 18 | - ((uchar_t)c[1] & 0x3F) << 12 | - ((uchar_t)c[2] & 0x3F) << 6 | - ((uchar_t)c[3] & 0x3F); - return 4; - } -} - -/* - * Write a single UTF-8 character to @s, - * returning the length, in bytes, of the character written. - * - * @unicode must be U+0000..U+10FFFF, but not U+D800..U+DFFF. - * - * This function will write up to 4 bytes to @out. - */ -static int utf8_write_char(uchar_t unicode, char *out) -{ - unsigned char *o = (unsigned char*) out; - - assert(unicode <= 0x10FFFF && !(unicode >= 0xD800 && unicode <= 0xDFFF)); - - if (unicode <= 0x7F) { - /* U+0000..U+007F */ - *o++ = unicode; - return 1; - } else if (unicode <= 0x7FF) { - /* U+0080..U+07FF */ - *o++ = 0xC0 | unicode >> 6; - *o++ = 0x80 | (unicode & 0x3F); - return 2; - } else if (unicode <= 0xFFFF) { - /* U+0800..U+FFFF */ - *o++ = 0xE0 | unicode >> 12; - *o++ = 0x80 | (unicode >> 6 & 0x3F); - *o++ = 0x80 | (unicode & 0x3F); - return 3; - } else { - /* U+10000..U+10FFFF */ - *o++ = 0xF0 | unicode >> 18; - *o++ = 0x80 | (unicode >> 12 & 0x3F); - *o++ = 0x80 | (unicode >> 6 & 0x3F); - *o++ = 0x80 | (unicode & 0x3F); - return 4; - } -} - -/* - * Compute the Unicode codepoint of a UTF-16 surrogate pair. - * - * @uc should be 0xD800..0xDBFF, and @lc should be 0xDC00..0xDFFF. - * If they aren't, this function returns false. - */ -static bool from_surrogate_pair(uint16_t uc, uint16_t lc, uchar_t *unicode) -{ - if (uc >= 0xD800 && uc <= 0xDBFF && lc >= 0xDC00 && lc <= 0xDFFF) { - *unicode = 0x10000 + ((((uchar_t)uc & 0x3FF) << 10) | (lc & 0x3FF)); - return true; - } else { - return false; - } -} - -/* - * Construct a UTF-16 surrogate pair given a Unicode codepoint. - * - * @unicode must be U+10000..U+10FFFF. - */ -static void to_surrogate_pair(uchar_t unicode, uint16_t *uc, uint16_t *lc) -{ - uchar_t n; - - assert(unicode >= 0x10000 && unicode <= 0x10FFFF); - - n = unicode - 0x10000; - *uc = ((n >> 10) & 0x3FF) | 0xD800; - *lc = (n & 0x3FF) | 0xDC00; -} - -#define is_space(c) ((c) == '\t' || (c) == '\n' || (c) == '\r' || (c) == ' ') -#define is_digit(c) ((c) >= '0' && (c) <= '9') - -static bool parse_value (const char **sp, JsonNode **out); -static bool parse_string (const char **sp, char **out); -static bool parse_number (const char **sp, double *out); -static bool parse_array (const char **sp, JsonNode **out); -static bool parse_object (const char **sp, JsonNode **out); -static bool parse_hex16 (const char **sp, uint16_t *out); - -static bool expect_literal (const char **sp, const char *str); -static void skip_space (const char **sp); - -static void emit_value (SB *out, const JsonNode *node); -static void emit_value_indented (SB *out, const JsonNode *node, const char *space, int indent_level); -static void emit_string (SB *out, const char *str); -static void emit_number (SB *out, double num); -static void emit_array (SB *out, const JsonNode *array); -static void emit_array_indented (SB *out, const JsonNode *array, const char *space, int indent_level); -static void emit_object (SB *out, const JsonNode *object); -static void emit_object_indented (SB *out, const JsonNode *object, const char *space, int indent_level); - -static int write_hex16(char *out, uint16_t val); - -static JsonNode *mknode(JsonTag tag); -static void append_node(JsonNode *parent, JsonNode *child); -static void prepend_node(JsonNode *parent, JsonNode *child); -static void append_member(JsonNode *object, char *key, JsonNode *value); - -/* Assertion-friendly validity checks */ -static bool tag_is_valid(unsigned int tag); -static bool number_is_valid(const char *num); - -JsonNode *json_decode(const char *json) -{ - const char *s = json; - JsonNode *ret; - - skip_space(&s); - if (!parse_value(&s, &ret)) - return NULL; - - skip_space(&s); - if (*s != 0) { - json_delete(ret); - return NULL; - } - - return ret; -} - -char *json_encode(const JsonNode *node) -{ - return json_stringify(node, NULL); -} - -char *json_encode_string(const char *str) -{ - SB sb; - sb_init(&sb); - - emit_string(&sb, str); - - return sb_finish(&sb); -} - -char *json_stringify(const JsonNode *node, const char *space) -{ - SB sb; - sb_init(&sb); - - if (space != NULL) - emit_value_indented(&sb, node, space, 0); - else - emit_value(&sb, node); - - return sb_finish(&sb); -} - -void json_delete(JsonNode *node) -{ - if (node != NULL) { - json_remove_from_parent(node); - - switch (node->tag) { - case JSON_STRING: - free(node->string_); - break; - case JSON_ARRAY: - case JSON_OBJECT: - { - JsonNode *child, *next; - for (child = node->children.head; child != NULL; child = next) { - next = child->next; - json_delete(child); - } - break; - } - default:; - } - - free(node); - } -} - -bool json_validate(const char *json) -{ - const char *s = json; - - skip_space(&s); - if (!parse_value(&s, NULL)) - return false; - - skip_space(&s); - if (*s != 0) - return false; - - return true; -} - -JsonNode *json_find_element(JsonNode *array, int index) -{ - JsonNode *element; - int i = 0; - - if (array == NULL || array->tag != JSON_ARRAY) - return NULL; - - json_foreach(element, array) { - if (i == index) - return element; - i++; - } - - return NULL; -} - -JsonNode *json_find_member(JsonNode *object, const char *name) -{ - JsonNode *member; - - if (object == NULL || object->tag != JSON_OBJECT) - return NULL; - - json_foreach(member, object) - if (strcmp(member->key, name) == 0) - return member; - - return NULL; -} - -JsonNode *json_first_child(const JsonNode *node) -{ - if (node != NULL && (node->tag == JSON_ARRAY || node->tag == JSON_OBJECT)) - return node->children.head; - return NULL; -} - -static JsonNode *mknode(JsonTag tag) -{ - JsonNode *ret = (JsonNode*) calloc(1, sizeof(JsonNode)); - if (ret == NULL) - out_of_memory(); - ret->tag = tag; - return ret; -} - -JsonNode *json_mknull(void) -{ - return mknode(JSON_NULL); -} - -JsonNode *json_mkbool(bool b) -{ - JsonNode *ret = mknode(JSON_BOOL); - ret->bool_ = b; - return ret; -} - -static JsonNode *mkstring(char *s) -{ - JsonNode *ret = mknode(JSON_STRING); - ret->string_ = s; - return ret; -} - -JsonNode *json_mkstring(const char *s) -{ - return mkstring(json_strdup(s)); -} - -JsonNode *json_mknumber(double n) -{ - JsonNode *node = mknode(JSON_NUMBER); - node->number_ = n; - return node; -} - -JsonNode *json_mkarray(void) -{ - return mknode(JSON_ARRAY); -} - -JsonNode *json_mkobject(void) -{ - return mknode(JSON_OBJECT); -} - -static void append_node(JsonNode *parent, JsonNode *child) -{ - child->parent = parent; - child->prev = parent->children.tail; - child->next = NULL; - - if (parent->children.tail != NULL) - parent->children.tail->next = child; - else - parent->children.head = child; - parent->children.tail = child; -} - -static void prepend_node(JsonNode *parent, JsonNode *child) -{ - child->parent = parent; - child->prev = NULL; - child->next = parent->children.head; - - if (parent->children.head != NULL) - parent->children.head->prev = child; - else - parent->children.tail = child; - parent->children.head = child; -} - -static void append_member(JsonNode *object, char *key, JsonNode *value) -{ - value->key = key; - append_node(object, value); -} - -void json_append_element(JsonNode *array, JsonNode *element) -{ - assert(array->tag == JSON_ARRAY); - assert(element->parent == NULL); - - append_node(array, element); -} - -void json_prepend_element(JsonNode *array, JsonNode *element) -{ - assert(array->tag == JSON_ARRAY); - assert(element->parent == NULL); - - prepend_node(array, element); -} - -void json_append_member(JsonNode *object, const char *key, JsonNode *value) -{ - assert(object->tag == JSON_OBJECT); - assert(value->parent == NULL); - - append_member(object, json_strdup(key), value); -} - -void json_prepend_member(JsonNode *object, const char *key, JsonNode *value) -{ - assert(object->tag == JSON_OBJECT); - assert(value->parent == NULL); - - value->key = json_strdup(key); - prepend_node(object, value); -} - -void json_remove_from_parent(JsonNode *node) -{ - JsonNode *parent = node->parent; - - if (parent != NULL) { - if (node->prev != NULL) - node->prev->next = node->next; - else - parent->children.head = node->next; - if (node->next != NULL) - node->next->prev = node->prev; - else - parent->children.tail = node->prev; - - free(node->key); - - node->parent = NULL; - node->prev = node->next = NULL; - node->key = NULL; - } -} - -static bool parse_value(const char **sp, JsonNode **out) -{ - const char *s = *sp; - - switch (*s) { - case 'n': - if (expect_literal(&s, "null")) { - if (out) - *out = json_mknull(); - *sp = s; - return true; - } - return false; - - case 'f': - if (expect_literal(&s, "false")) { - if (out) - *out = json_mkbool(false); - *sp = s; - return true; - } - return false; - - case 't': - if (expect_literal(&s, "true")) { - if (out) - *out = json_mkbool(true); - *sp = s; - return true; - } - return false; - - case '"': { - char *str; - if (parse_string(&s, out ? &str : NULL)) { - if (out) - *out = mkstring(str); - *sp = s; - return true; - } - return false; - } - - case '[': - if (parse_array(&s, out)) { - *sp = s; - return true; - } - return false; - - case '{': - if (parse_object(&s, out)) { - *sp = s; - return true; - } - return false; - - default: { - double num; - if (parse_number(&s, out ? &num : NULL)) { - if (out) - *out = json_mknumber(num); - *sp = s; - return true; - } - return false; - } - } -} - -static bool parse_array(const char **sp, JsonNode **out) -{ - const char *s = *sp; - JsonNode *ret = out ? json_mkarray() : NULL; - JsonNode *element; - - if (*s++ != '[') - goto failure; - skip_space(&s); - - if (*s == ']') { - s++; - goto success; - } - - for (;;) { - if (!parse_value(&s, out ? &element : NULL)) - goto failure; - skip_space(&s); - - if (out) - json_append_element(ret, element); - - if (*s == ']') { - s++; - goto success; - } - - if (*s++ != ',') - goto failure; - skip_space(&s); - } - -success: - *sp = s; - if (out) - *out = ret; - return true; - -failure: - json_delete(ret); - return false; -} - -static bool parse_object(const char **sp, JsonNode **out) -{ - const char *s = *sp; - JsonNode *ret = out ? json_mkobject() : NULL; - char *key; - JsonNode *value; - - if (*s++ != '{') - goto failure; - skip_space(&s); - - if (*s == '}') { - s++; - goto success; - } - - for (;;) { - if (!parse_string(&s, out ? &key : NULL)) - goto failure; - skip_space(&s); - - if (*s++ != ':') - goto failure_free_key; - skip_space(&s); - - if (!parse_value(&s, out ? &value : NULL)) - goto failure_free_key; - skip_space(&s); - - if (out) - append_member(ret, key, value); - - if (*s == '}') { - s++; - goto success; - } - - if (*s++ != ',') - goto failure; - skip_space(&s); - } - -success: - *sp = s; - if (out) - *out = ret; - return true; - -failure_free_key: - if (out) - free(key); -failure: - json_delete(ret); - return false; -} - -bool parse_string(const char **sp, char **out) -{ - const char *s = *sp; - SB sb = { NULL, NULL, NULL }; - char throwaway_buffer[4]; - /* enough space for a UTF-8 character */ - char *b; - - if (*s++ != '"') - return false; - - if (out) { - sb_init(&sb); - sb_need(&sb, 4); - b = sb.cur; - } else { - b = throwaway_buffer; - } - - while (*s != '"') { - unsigned char c = *s++; - - /* Parse next character, and write it to b. */ - if (c == '\\') { - c = *s++; - switch (c) { - case '"': - case '\\': - case '/': - *b++ = c; - break; - case 'b': - *b++ = '\b'; - break; - case 'f': - *b++ = '\f'; - break; - case 'n': - *b++ = '\n'; - break; - case 'r': - *b++ = '\r'; - break; - case 't': - *b++ = '\t'; - break; - case 'u': - { - uint16_t uc, lc; - uchar_t unicode; - - if (!parse_hex16(&s, &uc)) - goto failed; - - if (uc >= 0xD800 && uc <= 0xDFFF) { - /* Handle UTF-16 surrogate pair. */ - if (*s++ != '\\' || *s++ != 'u' || !parse_hex16(&s, &lc)) - goto failed; /* Incomplete surrogate pair. */ - if (!from_surrogate_pair(uc, lc, &unicode)) - goto failed; /* Invalid surrogate pair. */ - } else if (uc == 0) { - /* Disallow "\u0000". */ - goto failed; - } else { - unicode = uc; - } - - b += utf8_write_char(unicode, b); - break; - } - default: - /* Invalid escape */ - goto failed; - } - } else if (c <= 0x1F) { - /* Control characters are not allowed in string literals. */ - goto failed; - } else { - /* Validate and echo a UTF-8 character. */ - int len; - - s--; - len = utf8_validate_cz(s); - if (len == 0) - goto failed; /* Invalid UTF-8 character. */ - - while (len--) - *b++ = *s++; - } - - /* - * Update sb to know about the new bytes, - * and set up b to write another character. - */ - if (out) { - sb.cur = b; - sb_need(&sb, 4); - b = sb.cur; - } else { - b = throwaway_buffer; - } - } - s++; - - if (out) - *out = sb_finish(&sb); - *sp = s; - return true; - -failed: - if (out) - sb_free(&sb); - return false; -} - -/* - * The JSON spec says that a number shall follow this precise pattern - * (spaces and quotes added for readability): - * '-'? (0 | [1-9][0-9]*) ('.' [0-9]+)? ([Ee] [+-]? [0-9]+)? - * - * However, some JSON parsers are more liberal. For instance, PHP accepts - * '.5' and '1.'. JSON.parse accepts '+3'. - * - * This function takes the strict approach. - */ -bool parse_number(const char **sp, double *out) -{ - const char *s = *sp; - - /* '-'? */ - if (*s == '-') - s++; - - /* (0 | [1-9][0-9]*) */ - if (*s == '0') { - s++; - } else { - if (!is_digit(*s)) - return false; - do { - s++; - } while (is_digit(*s)); - } - - /* ('.' [0-9]+)? */ - if (*s == '.') { - s++; - if (!is_digit(*s)) - return false; - do { - s++; - } while (is_digit(*s)); - } - - /* ([Ee] [+-]? [0-9]+)? */ - if (*s == 'E' || *s == 'e') { - s++; - if (*s == '+' || *s == '-') - s++; - if (!is_digit(*s)) - return false; - do { - s++; - } while (is_digit(*s)); - } - - if (out) - *out = strtod(*sp, NULL); - - *sp = s; - return true; -} - -static void skip_space(const char **sp) -{ - const char *s = *sp; - while (is_space(*s)) - s++; - *sp = s; -} - -static void emit_value(SB *out, const JsonNode *node) -{ - assert(tag_is_valid(node->tag)); - switch (node->tag) { - case JSON_NULL: - sb_puts(out, "null"); - break; - case JSON_BOOL: - sb_puts(out, node->bool_ ? "true" : "false"); - break; - case JSON_STRING: - emit_string(out, node->string_); - break; - case JSON_NUMBER: - emit_number(out, node->number_); - break; - case JSON_ARRAY: - emit_array(out, node); - break; - case JSON_OBJECT: - emit_object(out, node); - break; - default: - assert(false); - } -} - -void emit_value_indented(SB *out, const JsonNode *node, const char *space, int indent_level) -{ - assert(tag_is_valid(node->tag)); - switch (node->tag) { - case JSON_NULL: - sb_puts(out, "null"); - break; - case JSON_BOOL: - sb_puts(out, node->bool_ ? "true" : "false"); - break; - case JSON_STRING: - emit_string(out, node->string_); - break; - case JSON_NUMBER: - emit_number(out, node->number_); - break; - case JSON_ARRAY: - emit_array_indented(out, node, space, indent_level); - break; - case JSON_OBJECT: - emit_object_indented(out, node, space, indent_level); - break; - default: - assert(false); - } -} - -static void emit_array(SB *out, const JsonNode *array) -{ - const JsonNode *element; - - sb_putc(out, '['); - json_foreach(element, array) { - emit_value(out, element); - if (element->next != NULL) - sb_putc(out, ','); - } - sb_putc(out, ']'); -} - -static void emit_array_indented(SB *out, const JsonNode *array, const char *space, int indent_level) -{ - const JsonNode *element = array->children.head; - int i; - - if (element == NULL) { - sb_puts(out, "[]"); - return; - } - - sb_puts(out, "[\n"); - while (element != NULL) { - for (i = 0; i < indent_level + 1; i++) - sb_puts(out, space); - emit_value_indented(out, element, space, indent_level + 1); - - element = element->next; - sb_puts(out, element != NULL ? ",\n" : "\n"); - } - for (i = 0; i < indent_level; i++) - sb_puts(out, space); - sb_putc(out, ']'); -} - -static void emit_object(SB *out, const JsonNode *object) -{ - const JsonNode *member; - - sb_putc(out, '{'); - json_foreach(member, object) { - emit_string(out, member->key); - sb_putc(out, ':'); - emit_value(out, member); - if (member->next != NULL) - sb_putc(out, ','); - } - sb_putc(out, '}'); -} - -static void emit_object_indented(SB *out, const JsonNode *object, const char *space, int indent_level) -{ - const JsonNode *member = object->children.head; - int i; - - if (member == NULL) { - sb_puts(out, "{}"); - return; - } - - sb_puts(out, "{\n"); - while (member != NULL) { - for (i = 0; i < indent_level + 1; i++) - sb_puts(out, space); - emit_string(out, member->key); - sb_puts(out, ": "); - emit_value_indented(out, member, space, indent_level + 1); - - member = member->next; - sb_puts(out, member != NULL ? ",\n" : "\n"); - } - for (i = 0; i < indent_level; i++) - sb_puts(out, space); - sb_putc(out, '}'); -} - -void emit_string(SB *out, const char *str) -{ - bool escape_unicode = false; - const char *s = str; - char *b; - - assert(utf8_validate(str)); - - /* - * 14 bytes is enough space to write up to two - * \uXXXX escapes and two quotation marks. - */ - sb_need(out, 14); - b = out->cur; - - *b++ = '"'; - while (*s != 0) { - unsigned char c = *s++; - - /* Encode the next character, and write it to b. */ - switch (c) { - case '"': - *b++ = '\\'; - *b++ = '"'; - break; - case '\\': - *b++ = '\\'; - *b++ = '\\'; - break; - case '\b': - *b++ = '\\'; - *b++ = 'b'; - break; - case '\f': - *b++ = '\\'; - *b++ = 'f'; - break; - case '\n': - *b++ = '\\'; - *b++ = 'n'; - break; - case '\r': - *b++ = '\\'; - *b++ = 'r'; - break; - case '\t': - *b++ = '\\'; - *b++ = 't'; - break; - default: { - int len; - - s--; - len = utf8_validate_cz(s); - - if (len == 0) { - /* - * Handle invalid UTF-8 character gracefully in production - * by writing a replacement character (U+FFFD) - * and skipping a single byte. - * - * This should never happen when assertions are enabled - * due to the assertion at the beginning of this function. - */ - assert(false); - if (escape_unicode) { - strcpy(b, "\\uFFFD"); - b += 6; - } else { - *b++ = (char)0xEF; - *b++ = (char)0xBF; - *b++ = (char)0xBD; - } - s++; - } else if (c < 0x1F || (c >= 0x80 && escape_unicode)) { - /* Encode using \u.... */ - uint32_t unicode; - - s += utf8_read_char(s, &unicode); - - if (unicode <= 0xFFFF) { - *b++ = '\\'; - *b++ = 'u'; - b += write_hex16(b, unicode); - } else { - /* Produce a surrogate pair. */ - uint16_t uc, lc; - assert(unicode <= 0x10FFFF); - to_surrogate_pair(unicode, &uc, &lc); - *b++ = '\\'; - *b++ = 'u'; - b += write_hex16(b, uc); - *b++ = '\\'; - *b++ = 'u'; - b += write_hex16(b, lc); - } - } else { - /* Write the character directly. */ - while (len--) - *b++ = *s++; - } - - break; - } - } - - /* - * Update *out to know about the new bytes, - * and set up b to write another encoded character. - */ - out->cur = b; - sb_need(out, 14); - b = out->cur; - } - *b++ = '"'; - - out->cur = b; -} - -static void emit_number(SB *out, double num) -{ - /* - * This isn't exactly how JavaScript renders numbers, - * but it should produce valid JSON for reasonable numbers - * preserve precision well enough, and avoid some oddities - * like 0.3 -> 0.299999999999999988898 . - */ - char buf[64]; - sprintf(buf, "%.16g", num); - - if (number_is_valid(buf)) - sb_puts(out, buf); - else - sb_puts(out, "null"); -} - -static bool tag_is_valid(unsigned int tag) -{ - return (/* tag >= JSON_NULL && */ tag <= JSON_OBJECT); -} - -static bool number_is_valid(const char *num) -{ - return (parse_number(&num, NULL) && *num == '\0'); -} - -static bool expect_literal(const char **sp, const char *str) -{ - const char *s = *sp; - - while (*str != '\0') - if (*s++ != *str++) - return false; - - *sp = s; - return true; -} - -/* - * Parses exactly 4 hex characters (capital or lowercase). - * Fails if any input chars are not [0-9A-Fa-f]. - */ -static bool parse_hex16(const char **sp, uint16_t *out) -{ - const char *s = *sp; - uint16_t ret = 0; - uint16_t i; - uint16_t tmp; - char c; - - for (i = 0; i < 4; i++) { - c = *s++; - if (c >= '0' && c <= '9') - tmp = c - '0'; - else if (c >= 'A' && c <= 'F') - tmp = c - 'A' + 10; - else if (c >= 'a' && c <= 'f') - tmp = c - 'a' + 10; - else - return false; - - ret <<= 4; - ret += tmp; - } - - if (out) - *out = ret; - *sp = s; - return true; -} - -/* - * Encodes a 16-bit number into hexadecimal, - * writing exactly 4 hex chars. - */ -static int write_hex16(char *out, uint16_t val) -{ - const char *hex = "0123456789ABCDEF"; - - *out++ = hex[(val >> 12) & 0xF]; - *out++ = hex[(val >> 8) & 0xF]; - *out++ = hex[(val >> 4) & 0xF]; - *out++ = hex[ val & 0xF]; - - return 4; -} - -bool json_check(const JsonNode *node, char errmsg[256]) -{ - #define problem(...) do { \ - if (errmsg != NULL) \ - snprintf(errmsg, 256, __VA_ARGS__); \ - return false; \ - } while (0) - - if (node->key != NULL && !utf8_validate(node->key)) - problem("key contains invalid UTF-8"); - - if (!tag_is_valid(node->tag)) - problem("tag is invalid (%u)", node->tag); - - if (node->tag == JSON_BOOL) { - if (node->bool_ != false && node->bool_ != true) - problem("bool_ is neither false (%d) nor true (%d)", (int)false, (int)true); - } else if (node->tag == JSON_STRING) { - if (node->string_ == NULL) - problem("string_ is NULL"); - if (!utf8_validate(node->string_)) - problem("string_ contains invalid UTF-8"); - } else if (node->tag == JSON_ARRAY || node->tag == JSON_OBJECT) { - JsonNode *head = node->children.head; - JsonNode *tail = node->children.tail; - - if (head == NULL || tail == NULL) { - if (head != NULL) - problem("tail is NULL, but head is not"); - if (tail != NULL) - problem("head is NULL, but tail is not"); - } else { - JsonNode *child; - JsonNode *last = NULL; - - if (head->prev != NULL) - problem("First child's prev pointer is not NULL"); - - for (child = head; child != NULL; last = child, child = child->next) { - if (child == node) - problem("node is its own child"); - if (child->next == child) - problem("child->next == child (cycle)"); - if (child->next == head) - problem("child->next == head (cycle)"); - - if (child->parent != node) - problem("child does not point back to parent"); - if (child->next != NULL && child->next->prev != child) - problem("child->next does not point back to child"); - - if (node->tag == JSON_ARRAY && child->key != NULL) - problem("Array element's key is not NULL"); - if (node->tag == JSON_OBJECT && child->key == NULL) - problem("Object member's key is NULL"); - - if (!json_check(child, errmsg)) - return false; - } - - if (last != tail) - problem("tail does not match pointer found by starting at head and following next links"); - } - } - - return true; - - #undef problem -} diff --git a/contrib/ccan/json/json.h b/contrib/ccan/json/json.h deleted file mode 100644 index 6eef48a6f..000000000 --- a/contrib/ccan/json/json.h +++ /dev/null @@ -1,99 +0,0 @@ -/* SPDX-License-Identifier: MIT - * Source: https://ccodearchive.net/info/json.html - * Copyright (C) 2011 Joseph A. Adams (joeyadams3.14159@gmail.com) */ - -#ifndef CCAN_JSON_H -#define CCAN_JSON_H - -#include -#include -#include - -typedef enum { - JSON_NULL, - JSON_BOOL, - JSON_STRING, - JSON_NUMBER, - JSON_ARRAY, - JSON_OBJECT, -} JsonTag; - -typedef struct JsonNode JsonNode; - -struct JsonNode -{ - /* only if parent is an object or array (NULL otherwise) */ - JsonNode *parent; - JsonNode *prev, *next; - - /* only if parent is an object (NULL otherwise) */ - char *key; /* Must be valid UTF-8. */ - - JsonTag tag; - union { - /* JSON_BOOL */ - bool bool_; - - /* JSON_STRING */ - char *string_; /* Must be valid UTF-8. */ - - /* JSON_NUMBER */ - double number_; - - /* JSON_ARRAY */ - /* JSON_OBJECT */ - struct { - JsonNode *head, *tail; - } children; - }; -}; - -/*** Encoding, decoding, and validation ***/ - -KR_EXPORT JsonNode *json_decode (const char *json); -KR_EXPORT char *json_encode (const JsonNode *node); -KR_EXPORT char *json_encode_string (const char *str); -KR_EXPORT char *json_stringify (const JsonNode *node, const char *space); -KR_EXPORT void json_delete (JsonNode *node); - -KR_EXPORT bool json_validate (const char *json); - -/*** Lookup and traversal ***/ - -KR_EXPORT JsonNode *json_find_element (JsonNode *array, int index); -KR_EXPORT JsonNode *json_find_member (JsonNode *object, const char *key); - -KR_EXPORT JsonNode *json_first_child (const JsonNode *node); - -#define json_foreach(i, object_or_array) \ - for ((i) = json_first_child(object_or_array); \ - (i) != NULL; \ - (i) = (i)->next) - -/*** Construction and manipulation ***/ - -KR_EXPORT JsonNode *json_mknull(void); -KR_EXPORT JsonNode *json_mkbool(bool b); -KR_EXPORT JsonNode *json_mkstring(const char *s); -KR_EXPORT JsonNode *json_mknumber(double n); -KR_EXPORT JsonNode *json_mkarray(void); -KR_EXPORT JsonNode *json_mkobject(void); - -KR_EXPORT void json_append_element(JsonNode *array, JsonNode *element); -KR_EXPORT void json_prepend_element(JsonNode *array, JsonNode *element); -KR_EXPORT void json_append_member(JsonNode *object, const char *key, JsonNode *value); -KR_EXPORT void json_prepend_member(JsonNode *object, const char *key, JsonNode *value); - -KR_EXPORT void json_remove_from_parent(JsonNode *node); - -/*** Debugging ***/ - -/* - * Look for structure and encoding problems in a JsonNode or its descendents. - * - * If a problem is detected, return false, writing a description of the problem - * to errmsg (unless errmsg is NULL). - */ -KR_EXPORT bool json_check(const JsonNode *node, char errmsg[256]); - -#endif diff --git a/contrib/ccan/json/json.spdx b/contrib/ccan/json/json.spdx deleted file mode 100644 index 994358323..000000000 --- a/contrib/ccan/json/json.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: ccan-json -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-d9b4db4c-062f-4add-89b6-f603224f5a2c - -PackageName: json -PackageDownloadLocation: git+https://github.com/rustyrussell/ccan@f4eb3a18caf946ee6cc2cb57e2a0c6a6f115157f#ccan/json -PackageOriginator: Person: Joseph A. Adams (joeyadams3.14159@gmail.com) -PackageLicenseDeclared: MIT diff --git a/contrib/cleanup.h b/contrib/cleanup.h deleted file mode 100644 index c9d170a55..000000000 --- a/contrib/cleanup.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later -*/ -/** - * Cleanup attributes. - * @cond internal - */ -#pragma once -#include -#include -#include - -#define auto_free __attribute__((cleanup(_cleanup_free))) -static inline void _cleanup_free(const void *p) { - free(*(char **)p); -} -#define auto_close __attribute__((cleanup(_cleanup_close))) -static inline void _cleanup_close(int *p) { - if (*p != -1) close(*p); -} -#define auto_fclose __attribute__((cleanup(_cleanup_fclose))) -static inline void _cleanup_fclose(FILE **p) { - if (*p) fclose(*p); -} -/* @endcond */ diff --git a/contrib/config.h b/contrib/config.h deleted file mode 100644 index 336511fba..000000000 --- a/contrib/config.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Dummy file, no real configuration here - * SPDX-License-Identifier: GPL-3.0-or-later */ -#define HAVE_ATTRIBUTE_COLD 1 -#define HAVE_ATTRIBUTE_NORETURN 1 -#define HAVE_ATTRIBUTE_PURE 1 -#define HAVE_ATTRIBUTE_UNUSED 1 -#define HAVE_ATTRIBUTE_NONNULL 1 diff --git a/contrib/dynarray.h b/contrib/dynarray.h deleted file mode 100644 index 7cbb686b9..000000000 --- a/contrib/dynarray.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -/*! - * \brief Simple write-once allocation-optimal dynamic array. - * - * Include it into your .c file - * - * prefix - identifier prefix, e.g. ptr -> struct ptr_dynarray, ptr_dynarray_add(), ... - * ntype - data type to be stored. Let it be a number, pointer or small struct - * initial_capacity - how many data items will be allocated on stack and copied with assignment - * - * prefix_dynarray_add() - add a data item - * prefix_dynarray_fix() - call EVERYTIME the array is copied from some already invalid stack - * prefix_dynarray_free() - call EVERYTIME you dismiss all copies of the array - * - */ - -#include -#include - -#pragma once - -#define DYNARRAY_VISIBILITY_STATIC static -#define DYNARRAY_VISIBILITY_PUBLIC -#define DYNARRAY_VISIBILITY_LIBRARY __public__ - -#define dynarray_declare(prefix, ntype, visibility, initial_capacity) \ - typedef struct prefix ## _dynarray { \ - ssize_t capacity; \ - ssize_t size; \ - ntype *(*arr)(struct prefix ## _dynarray *dynarray); \ - ntype init[initial_capacity]; \ - ntype *_arr; \ - } prefix ## _dynarray_t; \ - \ - visibility ntype *prefix ## _dynarray_arr(prefix ## _dynarray_t *dynarray); \ - visibility void prefix ## _dynarray_add(prefix ## _dynarray_t *dynarray, \ - ntype const *to_add); \ - visibility void prefix ## _dynarray_free(prefix ## _dynarray_t *dynarray); - -#define dynarray_foreach(prefix, ntype, ptr, array) \ - for (ntype *ptr = prefix ## _dynarray_arr(&(array)); \ - ptr < prefix ## _dynarray_arr(&(array)) + (array).size; ptr++) - -#define dynarray_define(prefix, ntype, visibility) \ - \ - static void prefix ## _dynarray_free__(struct prefix ## _dynarray *dynarray) \ - { \ - if (dynarray->capacity > sizeof(dynarray->init) / sizeof(*dynarray->init)) { \ - free(dynarray->_arr); \ - } \ - } \ - \ - __attribute__((unused)) \ - visibility ntype *prefix ## _dynarray_arr(struct prefix ## _dynarray *dynarray) \ - { \ - assert(dynarray->size <= dynarray->capacity); \ - return (dynarray->capacity <= sizeof(dynarray->init) / sizeof(*dynarray->init) ? \ - dynarray->init : dynarray->_arr); \ - } \ - \ - static ntype *prefix ## _dynarray_arr_init__(struct prefix ## _dynarray *dynarray) \ - { \ - assert(dynarray->capacity == sizeof(dynarray->init) / sizeof(*dynarray->init)); \ - return dynarray->init; \ - } \ - \ - static ntype *prefix ## _dynarray_arr_arr__(struct prefix ## _dynarray *dynarray) \ - { \ - assert(dynarray->capacity > sizeof(dynarray->init) / sizeof(*dynarray->init)); \ - return dynarray->_arr; \ - } \ - \ - __attribute__((unused)) \ - visibility void prefix ## _dynarray_add(struct prefix ## _dynarray *dynarray, \ - ntype const *to_add) \ - { \ - if (dynarray->capacity < 0) { \ - return; \ - } \ - if (dynarray->capacity == 0) { \ - dynarray->capacity = sizeof(dynarray->init) / sizeof(*dynarray->init); \ - dynarray->arr = prefix ## _dynarray_arr_init__; \ - } \ - if (dynarray->size >= dynarray->capacity) { \ - ssize_t new_capacity = dynarray->capacity * 2 + 1; \ - ntype *new_arr = calloc(new_capacity, sizeof(ntype)); \ - if (new_arr == NULL) { \ - prefix ## _dynarray_free__(dynarray); \ - dynarray->capacity = dynarray->size = -1; \ - return; \ - } \ - if (dynarray->capacity > 0) { \ - memcpy(new_arr, prefix ## _dynarray_arr(dynarray), \ - dynarray->capacity * sizeof(ntype)); \ - } \ - prefix ## _dynarray_free__(dynarray); \ - dynarray->_arr = new_arr; \ - dynarray->capacity = new_capacity; \ - dynarray->arr = prefix ## _dynarray_arr_arr__; \ - } \ - prefix ## _dynarray_arr(dynarray)[dynarray->size++] = *to_add; \ - } \ - \ - __attribute__((unused)) \ - visibility void prefix ## _dynarray_free(struct prefix ## _dynarray *dynarray) \ - { \ - prefix ## _dynarray_free__(dynarray); \ - memset(dynarray, 0, sizeof(*dynarray)); \ - } diff --git a/contrib/dynarray.spdx b/contrib/dynarray.spdx deleted file mode 100644 index 02911c9cb..000000000 --- a/contrib/dynarray.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: knotdns-dynarray -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-ce6423dd-ac6a-4e78-90c3-5cbdef1e252c - -PackageName: knotdns-dynarray -PackageDownloadLocation: git+https://gitlab.nic.cz/knot/knot-dns.git@48c8b4f38cf5f7bf505c79b56adf7580688f6d3d#src/contrib/dynarray.h -PackageOriginator: Organization: Knot DNS contributors -PackageLicenseDeclared: GPL-3.0-or-later diff --git a/contrib/licenses/BSD-MIT b/contrib/licenses/BSD-MIT deleted file mode 100644 index 6e50b0046..000000000 --- a/contrib/licenses/BSD-MIT +++ /dev/null @@ -1,21 +0,0 @@ -SPDX-License-Identifier: MIT -SPDX-URL: https://spdx.org/licenses/MIT.html -License-Text: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/contrib/licenses/CC0 b/contrib/licenses/CC0 deleted file mode 100644 index 937f712f7..000000000 --- a/contrib/licenses/CC0 +++ /dev/null @@ -1,32 +0,0 @@ -SPDX-License-Identifier: CC0-1.0 -SPDX-URL: https://spdx.org/licenses/CC0-1.0.html -License-Text: - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: - - the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; - moral rights retained by the original author(s) and/or performer(s); - publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; - rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; - rights protecting the extraction, dissemination, use and reuse of data in a Work; - database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and - other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. - Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. - Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. - Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/contrib/licenses/LGPL2 b/contrib/licenses/LGPL2 deleted file mode 100644 index 682170d0a..000000000 --- a/contrib/licenses/LGPL2 +++ /dev/null @@ -1,506 +0,0 @@ -SPDX-License-Identifier: LGPL-2.1-or-later -SPDX-URL: http://spdx.org/licenses/LGPL-2.1 -License-Text: - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/contrib/mempattern.c b/contrib/mempattern.c deleted file mode 100644 index 6c237eac7..000000000 --- a/contrib/mempattern.c +++ /dev/null @@ -1,151 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - */ - -#include - -#include "contrib/mempattern.h" -#include "contrib/ucw/mempool.h" - -static void mm_nofree(void *p) -{ - /* nop */ -} - -static void *mm_malloc(void *ctx, size_t n) -{ - (void)ctx; - return malloc(n); -} - -void *mm_alloc(knot_mm_t *mm, size_t size) -{ - if (mm) { - return mm->alloc(mm->ctx, size); - } else { - return malloc(size); - } -} - -void *mm_calloc(knot_mm_t *mm, size_t nmemb, size_t size) -{ - if (nmemb == 0 || size == 0) { - return NULL; - } - if (mm) { - size_t total_size = nmemb * size; - if (total_size / nmemb != size) { // Overflow check - return NULL; - } - void *mem = mm_alloc(mm, total_size); - if (mem == NULL) { - return NULL; - } - return memset(mem, 0, total_size); - } else { - return calloc(nmemb, size); - } -} - -void *mm_realloc(knot_mm_t *mm, void *what, size_t size, size_t prev_size) -{ - if (mm) { - void *p = mm->alloc(mm->ctx, size); - if (p == NULL) { - return NULL; - } else { - if (what) { - memcpy(p, what, - prev_size < size ? prev_size : size); - } - mm_free(mm, what); - return p; - } - } else { - return realloc(what, size); - } -} - -char *mm_strdup(knot_mm_t *mm, const char *s) -{ - if (s == NULL) { - return NULL; - } - if (mm) { - size_t len = strlen(s) + 1; - void *mem = mm_alloc(mm, len); - if (mem == NULL) { - return NULL; - } - return memcpy(mem, s, len); - } else { - return strdup(s); - } -} - -void mm_free(knot_mm_t *mm, void *what) -{ - if (mm) { - if (mm->free) { - mm->free(what); - } - } else { - free(what); - } -} - -void mm_ctx_init(knot_mm_t *mm) -{ - mm->ctx = NULL; - mm->alloc = mm_malloc; - mm->free = free; -} - -void mm_ctx_mempool(knot_mm_t *mm, size_t chunk_size) -{ - mm->ctx = mp_new(chunk_size); - mm->alloc = (knot_mm_alloc_t)mp_alloc; - mm->free = mm_nofree; -} - - -/* Code in addition to Knot's mempattern. */ - -void *mm_malloc_aligned(void *ctx, size_t n) -{ - size_t alignment = (size_t)ctx; - void *res; - int err = posix_memalign(&res, alignment, n); - if (err == 0) { - return res; - } else { - assert(err == -1 && errno == ENOMEM); - return NULL; - } -} - -knot_mm_t * mm_ctx_mempool2(size_t chunk_size) -{ - knot_mm_t pool_tmp; - mm_ctx_mempool(&pool_tmp, chunk_size); - knot_mm_t *pool = mm_alloc(&pool_tmp, sizeof(*pool)); - if (!pool) { - mp_delete(pool_tmp.ctx); - return NULL; - } - memcpy(pool, &pool_tmp, sizeof(*pool)); - return pool; -} - diff --git a/contrib/mempattern.h b/contrib/mempattern.h deleted file mode 100644 index 4db147ae5..000000000 --- a/contrib/mempattern.h +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - */ - -/*! - * \brief Memory allocation related functions. - */ - -#pragma once - -#include -#include "contrib/ucw/mempool.h" -#include "lib/defines.h" -#include -#include - -/*! \brief Default memory block size. */ -#define MM_DEFAULT_BLKSIZE 4096 - -/*! \brief Allocs using 'mm' if any, uses system malloc() otherwise. */ -KR_EXPORT -void *mm_alloc(knot_mm_t *mm, size_t size); - -/*! \brief Callocs using 'mm' if any, uses system calloc() otherwise. */ -void *mm_calloc(knot_mm_t *mm, size_t nmemb, size_t size); - -/*! \brief Reallocs using 'mm' if any, uses system realloc() otherwise. */ -KR_EXPORT -void *mm_realloc(knot_mm_t *mm, void *what, size_t size, size_t prev_size); - -/*! \brief Strdups using 'mm' if any, uses system strdup() otherwise. */ -char *mm_strdup(knot_mm_t *mm, const char *s); - -/*! \brief Free using 'mm' if any, uses system free() otherwise. */ -KR_EXPORT -void mm_free(knot_mm_t *mm, void *what); - -/*! \brief Initialize default memory allocation context. */ -void mm_ctx_init(knot_mm_t *mm); - -/*! \brief Memory pool context. */ -void mm_ctx_mempool(knot_mm_t *mm, size_t chunk_size); - - -/* API in addition to Knot's mempattern. */ - -/*! \brief New memory pool context, allocated on itself. */ -KR_EXPORT knot_mm_t * mm_ctx_mempool2(size_t chunk_size); - -/*! \brief Delete a memory pool. OK to call on a non-pool. */ -static inline void mm_ctx_delete(knot_mm_t *mm) -{ - /* The mp_alloc comparison bears a risk of missing the private symbol from knot. */ - if (mm && mm->ctx && mm->alloc == (knot_mm_alloc_t)mp_alloc) - mp_delete(mm->ctx); -} - -/*! \brief Readability: avoid const-casts in code. */ -static inline void free_const(const void *what) -{ - free((void *)what); -} - -/*! \brief posix_memalign() wrapper. */ -void *mm_malloc_aligned(void *ctx, size_t n); - -/*! \brief Initialize mm with malloc+free with specified alignment (a power of two). */ -static inline void mm_ctx_init_aligned(knot_mm_t *mm, size_t alignment) -{ - assert(__builtin_popcount(alignment) == 1); - mm_ctx_init(mm); - mm->ctx = (uint8_t *)NULL + alignment; /*< roundabout to satisfy linters */ - /* posix_memalign() doesn't allow alignment < sizeof(void*), - * and there's no point in using it for small values anyway, - * as plain malloc() guarantees at least max_align_t. */ - if (alignment > sizeof(max_align_t)) { - mm->alloc = mm_malloc_aligned; - } -} - diff --git a/contrib/meson.build b/contrib/meson.build deleted file mode 100644 index 5d97e8891..000000000 --- a/contrib/meson.build +++ /dev/null @@ -1,28 +0,0 @@ -# contrib -# SPDX-License-Identifier: GPL-3.0-or-later - -contrib_src = files([ - 'ccan/asprintf/asprintf.c', - 'ccan/json/json.c', - 'ucw/mempool.c', - 'ucw/mempool-fmt.c', - 'mempattern.c', - 'murmurhash3/murmurhash3.c', - 'base32hex.c', - 'base64.c', - 'base64url.c' -]) - -contrib_inc = include_directories('.', '..') - -contrib_lib = static_library( - 'contrib', - contrib_src, - include_directories: contrib_inc, - dependencies: libknot, -) - -contrib_dep = declare_dependency( - include_directories: contrib_inc, - link_with: contrib_lib, -) diff --git a/contrib/murmurhash3/LICENSE b/contrib/murmurhash3/LICENSE deleted file mode 120000 index fe25b0138..000000000 --- a/contrib/murmurhash3/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../licenses/CC0 \ No newline at end of file diff --git a/contrib/murmurhash3/murmurhash3.c b/contrib/murmurhash3/murmurhash3.c deleted file mode 100644 index 373c6cedc..000000000 --- a/contrib/murmurhash3/murmurhash3.c +++ /dev/null @@ -1,76 +0,0 @@ -/* This is MurmurHash3. The original C++ code was placed in the public domain - * by its author, Austin Appleby. - * - * SPDX-License-Identifier: CC0-1.0 - * Source: https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp */ - -#include "murmurhash3.h" -#include "string.h" - -static inline uint32_t fmix(uint32_t h) -{ - h ^= h >> 16; - h *= 0x85ebca6b; - h ^= h >> 13; - h *= 0xc2b2ae35; - h ^= h >> 16; - - return h; -} - -static inline uint32_t rotl32(uint32_t x, int8_t r) -{ - return (x << r) | (x >> (32 - r)); -} - -uint32_t hash(const char* data, size_t len_) -{ - const int len = (int) len_; - const int nblocks = len / 4; - - uint32_t h1 = 0xc062fb4a; - - uint32_t c1 = 0xcc9e2d51; - uint32_t c2 = 0x1b873593; - - //---------- - // body - - for(int i = 0; i < nblocks; ++i) - { - uint32_t k1; - memcpy(&k1, data + i * sizeof(k1), sizeof(k1)); - - k1 *= c1; - k1 = rotl32(k1, 15); - k1 *= c2; - - h1 ^= k1; - h1 = rotl32(h1, 13); - h1 = h1*5+0xe6546b64; - } - - //---------- - // tail - - const uint8_t * tail = (const uint8_t*)(data + nblocks*4); - - uint32_t k1 = 0; - - switch(len & 3) - { - case 3: k1 ^= tail[2] << 16; - case 2: k1 ^= tail[1] << 8; - case 1: k1 ^= tail[0]; - k1 *= c1; k1 = rotl32(k1,15); k1 *= c2; h1 ^= k1; - } - - //---------- - // finalization - - h1 ^= len; - - h1 = fmix(h1); - - return h1; -} diff --git a/contrib/murmurhash3/murmurhash3.h b/contrib/murmurhash3/murmurhash3.h deleted file mode 100644 index d849961eb..000000000 --- a/contrib/murmurhash3/murmurhash3.h +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: CC0-1.0 - * Source: https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp */ - -#pragma once - -#include -#include - -uint32_t hash(const char* data, size_t len); diff --git a/contrib/murmurhash3/murmurhash3.spdx b/contrib/murmurhash3/murmurhash3.spdx deleted file mode 100644 index 7ce5a54b0..000000000 --- a/contrib/murmurhash3/murmurhash3.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: ccan-json -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-d9b4db4c-062f-4add-89b6-f603224f5a2c - -PackageName: json -PackageDownloadLocation: git+https://github.com/aappleby/smhasher.git@73e075b203d9c76cd1e20d6c8907c2983d653f33#MurmurHash3.cpp -PackageOriginator: Person: Austin Appleby (aappleby@gmail.com) -PackageLicenseDeclared: CC0-1.0 diff --git a/contrib/ucw/LICENSE b/contrib/ucw/LICENSE deleted file mode 120000 index 0cb7f47a4..000000000 --- a/contrib/ucw/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../licenses/LGPL2 \ No newline at end of file diff --git a/contrib/ucw/alloc.h b/contrib/ucw/alloc.h deleted file mode 100644 index a6feadc73..000000000 --- a/contrib/ucw/alloc.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * UCW Library -- Generic allocators - * - * (c) 2014 Martin Mares - * SPDX-License-Identifier: LGPL-2.1-or-later - * Source: https://www.ucw.cz/libucw/ - */ - -#ifndef _UCW_ALLOC_H -#define _UCW_ALLOC_H - -/** - * This structure describes a generic allocator. It provides pointers - * to three functions, which handle the actual (re)allocations. - **/ -struct ucw_allocator { - void * (*alloc)(struct ucw_allocator *alloc, size_t size); - void * (*realloc)(struct ucw_allocator *alloc, void *ptr, size_t old_size, size_t new_size); - void (*free)(struct ucw_allocator *alloc, void *ptr); -}; - -/* alloc-std.c */ - -/** - * [[std]] - * This allocator uses <>, <> and <>. The memory - * it allocates is left uninitialized. - **/ -extern struct ucw_allocator ucw_allocator_std; - -/** - * [[zeroing]] - * This allocator uses <>, <> and <>. All memory - * is zeroed upon allocation. - **/ -extern struct ucw_allocator ucw_allocator_zeroed; - -#endif diff --git a/contrib/ucw/config.h b/contrib/ucw/config.h deleted file mode 100644 index 3c9410427..000000000 --- a/contrib/ucw/config.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * UCW Library -- Configuration-Dependent Definitions - * - * (c) 1997--2012 Martin Mares - * (c) 2006 Robert Spalek - * - * SPDX-License-Identifier: LGPL-2.1-or-later - * Source: https://www.ucw.cz/libucw/ - */ - -#ifndef _UCW_CONFIG_H -#define _UCW_CONFIG_H - -/* Default page size and pointer alignment */ -#ifndef CPU_PAGE_SIZE -#define CPU_PAGE_SIZE 4096 -#endif -#define CPU_STRUCT_ALIGN sizeof(void *) - -/* Tell libc we're going to use all extensions available */ - -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif - -/* Types (based on standard C99 integers) */ - -#include -#include - -typedef uint8_t byte; /** Exactly 8 bits, unsigned **/ -typedef uint8_t u8; /** Exactly 8 bits, unsigned **/ -typedef int8_t s8; /** Exactly 8 bits, signed **/ -typedef uint16_t u16; /** Exactly 16 bits, unsigned **/ -typedef int16_t s16; /** Exactly 16 bits, signed **/ -typedef uint32_t u32; /** Exactly 32 bits, unsigned **/ -typedef int32_t s32; /** Exactly 32 bits, signed **/ -typedef uint64_t u64; /** Exactly 64 bits, unsigned **/ -typedef int64_t s64; /** Exactly 64 bits, signed **/ - - -#ifndef uint /* Redefining typedef is a C11 feature. */ -typedef unsigned int uint; /** A better pronounceable alias for `unsigned int` **/ -#define uint uint -#endif - -typedef s64 timestamp_t; /** Milliseconds since an unknown epoch **/ - -// FIXME: This should be removed soon -typedef uint uns; /** Backwards compatible alias for `uint' ***/ - -#ifdef CONFIG_UCW_LARGE_FILES -typedef s64 ucw_off_t; /** File position (either 32- or 64-bit, depending on `CONFIG_UCW_LARGE_FILES`). **/ -#else -typedef s32 ucw_off_t; -#endif - -#endif diff --git a/contrib/ucw/lib.h b/contrib/ucw/lib.h deleted file mode 100644 index 89b3a207b..000000000 --- a/contrib/ucw/lib.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * The UCW Library -- Miscellaneous Functions - * - * (c) 1997--2014 Martin Mares - * (c) 2005--2014 Tomas Valla - * (c) 2006 Robert Spalek - * (c) 2007 Pavel Charvat - * - * SPDX-License-Identifier: LGPL-2.1-or-later - * Source: https://www.ucw.cz/libucw/ - */ - -#ifndef _UCW_LIB_H -#define _UCW_LIB_H - -#include -#include -#include - -#ifdef CONFIG_UCW_CLEAN_ABI -#define assert_failed ucw_assert_failed -#define assert_failed_msg ucw_assert_failed_msg -#define assert_failed_noinfo ucw_assert_failed_noinfo -#define big_alloc ucw_big_alloc -#define big_alloc_zero ucw_big_alloc_zero -#define big_free ucw_big_free -#define die ucw_die -#define log_die_hook ucw_log_die_hook -#define log_file ucw_log_file -#define log_fork ucw_log_fork -#define log_init ucw_log_init -#define log_pid ucw_log_pid -#define log_title ucw_log_title -#define msg ucw_msg -#define page_alloc ucw_page_alloc -#define page_alloc_zero ucw_page_alloc_zero -#define page_free ucw_page_free -#define page_realloc ucw_page_realloc -#define random_max ucw_random_max -#define random_max_u64 ucw_random_max_u64 -#define random_u32 ucw_random_u32 -#define random_u64 ucw_random_u64 -#define vdie ucw_vdie -#define vmsg ucw_vmsg -#define xfree ucw_xfree -#define xmalloc ucw_xmalloc -#define xmalloc_zero ucw_xmalloc_zero -#define xrealloc ucw_xrealloc -#define xstrdup ucw_xstrdup -#endif - -/*** === Macros for handling structures, offsets and alignment ***/ - -#define CHECK_PTR_TYPE(x, type) ((x)-(type)(x) + (type)(x)) /** Check that a pointer @x is of type @type. Fail compilation if not. **/ -#define PTR_TO(s, i) &((s*)0)->i /** Return OFFSETOF() in form of a pointer. **/ -#define OFFSETOF(s, i) ((uint)offsetof(s, i)) /** Offset of item @i from the start of structure @s **/ -#define SKIP_BACK(s, i, p) ((s *)((char *)p - OFFSETOF(s, i))) /** Given a pointer @p to item @i of structure @s, return a pointer to the start of the struct. **/ - -/** Align an integer @s to the nearest higher multiple of @a (which should be a power of two) **/ -#define ALIGN_TO(s, a) (((s)+a-1)&~(a-1)) - -/** Align a pointer @p to the nearest higher multiple of @s. **/ -#define ALIGN_PTR(p, s) ((uintptr_t)(p) % (s) ? (typeof(p))((uintptr_t)(p) + (s) - (uintptr_t)(p) % (s)) : (p)) - -#define UNALIGNED_PART(ptr, type) (((uintptr_t) (ptr)) % sizeof(type)) - -/*** === Other utility macros ***/ - -#define MIN(a,b) (((a)<(b))?(a):(b)) /** Minimum of two numbers **/ -#define MAX(a,b) (((a)>(b))?(a):(b)) /** Maximum of two numbers **/ -#define CLAMP(x,min,max) ({ typeof(x) _t=x; (_t < min) ? min : (_t > max) ? max : _t; }) /** Clip a number @x to interval [@min,@max] **/ -#define ABS(x) ((x) < 0 ? -(x) : (x)) /** Absolute value **/ -#define ARRAY_SIZE(a) (sizeof(a)/sizeof(*(a))) /** The number of elements of an array **/ -#define STRINGIFY(x) #x /** Convert macro parameter to a string **/ -#define STRINGIFY_EXPANDED(x) STRINGIFY(x) /** Convert an expanded macro parameter to a string **/ -#define GLUE(x,y) x##y /** Glue two tokens together **/ -#define GLUE_(x,y) x##_##y /** Glue two tokens together, separating them by an underscore **/ - -#define COMPARE(x,y) do { if ((x)<(y)) return -1; if ((x)>(y)) return 1; } while(0) /** Numeric comparison function for qsort() **/ -#define REV_COMPARE(x,y) COMPARE(y,x) /** Reverse numeric comparison **/ -#define COMPARE_LT(x,y) do { if ((x)<(y)) return 1; if ((x)>(y)) return 0; } while(0) -#define COMPARE_GT(x,y) COMPARE_LT(y,x) - -#define ROL(x, bits) (((x) << (bits)) | ((uint)(x) >> (sizeof(uint)*8 - (bits)))) /** Bitwise rotation of an unsigned int to the left **/ -#define ROR(x, bits) (((uint)(x) >> (bits)) | ((x) << (sizeof(uint)*8 - (bits)))) /** Bitwise rotation of an unsigned int to the right **/ - -/*** === Shortcuts for GCC Extensions ***/ - -#ifdef __GNUC__ - -#include "ccan/compiler/compiler.h" -#define FORMAT_CHECK(x,y,z) __attribute__((format(x,y,z))) /** Checking of printf-like format strings **/ -#define likely(x) __builtin_expect((x),1) /** Use `if (likely(@x))` if @x is almost always true **/ -#define unlikely(x) __builtin_expect((x),0) /** Use `if (unlikely(@x))` to hint that @x is almost always false **/ - -#if __GNUC__ >= 4 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3 -#define ALWAYS_INLINE inline __attribute__((always_inline)) /** Forcibly inline **/ -#define NO_INLINE __attribute__((noinline)) /** Forcibly uninline **/ -#else -#define ALWAYS_INLINE inline -#endif - -#if __GNUC__ >= 4 -#define LIKE_MALLOC __attribute__((malloc)) /** Function returns a "new" pointer **/ -#define SENTINEL_CHECK __attribute__((sentinel)) /** The last argument must be NULL **/ -#else -#define LIKE_MALLOC -#define SENTINEL_CHECK -#endif - -#else -#error This program requires the GNU C compiler. -#endif - -/*** - * [[logging]] - * - * === Basic logging functions (see <> and for more) - ***/ - -#define DBG(x, ...) do { } while(0) -#define DBG_SPOT do { } while(0) -#define ASSERT(x) - -#endif diff --git a/contrib/ucw/libucw.spdx b/contrib/ucw/libucw.spdx deleted file mode 100644 index e18b2eaba..000000000 --- a/contrib/ucw/libucw.spdx +++ /dev/null @@ -1,10 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -SPDXID: SPDXRef-DOCUMENT -DocumentName: libucw -DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-c3d39e26-6b71-46d4-88ea-e52750932ff3 - -PackageName: libucw -PackageDownloadLocation: git://git.ucw.cz/libucw.git@f1bde7104b04d5254d1d1d7dcc8de790a43a416f#ucw/ -PackageOriginator: Organization: United Computer Wizards -PackageLicenseDeclared: LGPL-2.1-or-later diff --git a/contrib/ucw/mempool-fmt.c b/contrib/ucw/mempool-fmt.c deleted file mode 100644 index 22f3a50e3..000000000 --- a/contrib/ucw/mempool-fmt.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * UCW Library -- Memory Pools (Formatting) - * - * (c) 2005 Martin Mares - * (c) 2007 Pavel Charvat - * SPDX-License-Identifier: LGPL-2.1-or-later - * Source: https://www.ucw.cz/libucw/ - */ - -#include -#include - -#include -#include - -/* FIXME: migrate to Knot DNS version of mempools. */ -#pragma GCC diagnostic ignored "-Wpointer-arith" - -static char * -mp_vprintf_at(struct mempool *mp, size_t ofs, const char *fmt, va_list args) -{ - char *ret = mp_grow(mp, ofs + 1) + ofs; - va_list args2; - va_copy(args2, args); - int cnt = vsnprintf(ret, mp_avail(mp) - ofs, fmt, args2); - va_end(args2); - if (cnt < 0) - { - /* Our C library doesn't support C99 return value of vsnprintf, so we need to iterate */ - do - { - ret = mp_expand(mp) + ofs; - va_copy(args2, args); - cnt = vsnprintf(ret, mp_avail(mp) - ofs, fmt, args2); - va_end(args2); - } - while (cnt < 0); - } - else if ((uint)cnt >= mp_avail(mp) - ofs) - { - ret = mp_grow(mp, ofs + cnt + 1) + ofs; - va_copy(args2, args); - vsnprintf(ret, cnt + 1, fmt, args2); - va_end(args2); - } - mp_end(mp, ret + cnt + 1); - return ret - ofs; -} - -char * -mp_vprintf(struct mempool *mp, const char *fmt, va_list args) -{ - mp_start(mp, 1); - return mp_vprintf_at(mp, 0, fmt, args); -} - -char * -mp_printf(struct mempool *p, const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - char *res = mp_vprintf(p, fmt, args); - va_end(args); - return res; -} - -char * -mp_vprintf_append(struct mempool *mp, char *ptr, const char *fmt, va_list args) -{ - size_t ofs = mp_open(mp, ptr); - ASSERT(ofs && !ptr[ofs - 1]); - return mp_vprintf_at(mp, ofs - 1, fmt, args); -} - -char * -mp_printf_append(struct mempool *mp, char *ptr, const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - char *res = mp_vprintf_append(mp, ptr, fmt, args); - va_end(args); - return res; -} - -#ifdef TEST - -int main(void) -{ - struct mempool *mp = mp_new(64); - char *x = mp_printf(mp, "", "World"); - fputs(x, stdout); - x = mp_printf_append(mp, x, ""); - fputs(x, stdout); - x = mp_printf(mp, "\n", "World"); - fputs(x, stdout); - return 0; -} - -#endif diff --git a/contrib/ucw/mempool.c b/contrib/ucw/mempool.c deleted file mode 100644 index 314b58ef6..000000000 --- a/contrib/ucw/mempool.c +++ /dev/null @@ -1,601 +0,0 @@ -/* - * UCW Library -- Memory Pools (One-Time Allocation) - * - * (c) 1997--2014 Martin Mares - * (c) 2007--2015 Pavel Charvat - * - * SPDX-License-Identifier: LGPL-2.1-or-later - * Source: https://www.ucw.cz/libucw/ - */ - -#undef LOCAL_DEBUG - -#include -#include -#include -#include - -#include -#include - -/* FIXME: migrate to Knot DNS version of mempools. */ -#pragma GCC diagnostic ignored "-Wpointer-arith" - -#define MP_CHUNK_TAIL ALIGN_TO(sizeof(struct mempool_chunk), CPU_STRUCT_ALIGN) -#define MP_SIZE_MAX (SIZE_MAX - MP_CHUNK_TAIL - CPU_PAGE_SIZE) - -struct mempool_chunk { -#ifdef CONFIG_DEBUG - struct mempool *pool; // Can be useful when analysing coredump for memory leaks -#endif - struct mempool_chunk *next; - size_t size; -}; - -static size_t -mp_align_size(size_t size) -{ -#ifdef CONFIG_UCW_POOL_IS_MMAP - size = MAX(size, 64 + MP_CHUNK_TAIL); - return ALIGN_TO(size, CPU_PAGE_SIZE) - MP_CHUNK_TAIL; -#else - return ALIGN_TO(size, CPU_STRUCT_ALIGN); -#endif -} - -static void *mp_allocator_alloc(struct ucw_allocator *a, size_t size) -{ - struct mempool *mp = (struct mempool *) a; - return mp_alloc_fast(mp, size); -} - -static void *mp_allocator_realloc(struct ucw_allocator *a, void *ptr, size_t old_size, size_t new_size) -{ - if (new_size <= old_size) - return ptr; - - /* - * In the future, we might want to do something like mp_realloc(), - * but we have to check that it is indeed the last block in the pool. - */ - struct mempool *mp = (struct mempool *) a; - void *new = mp_alloc_fast(mp, new_size); - memcpy(new, ptr, old_size); - return new; -} - -static void mp_allocator_free(struct ucw_allocator *a UNUSED, void *ptr UNUSED) -{ - // Does nothing -} - -void -mp_init(struct mempool *pool, size_t chunk_size) -{ - chunk_size = mp_align_size(MAX(sizeof(struct mempool), chunk_size)); - *pool = (struct mempool) { - .allocator = { - .alloc = mp_allocator_alloc, - .realloc = mp_allocator_realloc, - .free = mp_allocator_free, - }, - .chunk_size = chunk_size, - .threshold = chunk_size >> 1, - .last_big = &pool->last_big - }; -} - -static void * -mp_new_big_chunk(struct mempool *pool, size_t size) -{ - struct mempool_chunk *chunk; - chunk = malloc(size + MP_CHUNK_TAIL); - if (!chunk) - return NULL; - chunk = (struct mempool_chunk *)((char *)chunk + size); - chunk->size = size; - if (pool) - pool->total_size += size + MP_CHUNK_TAIL; - return chunk; -} - -static void -mp_free_big_chunk(struct mempool *pool, struct mempool_chunk *chunk) -{ - pool->total_size -= chunk->size + MP_CHUNK_TAIL; - free((void *)chunk - chunk->size); -} - -static void * -mp_new_chunk(struct mempool *pool, size_t size) -{ -#ifdef CONFIG_UCW_POOL_IS_MMAP - struct mempool_chunk *chunk; - chunk = page_alloc(size + MP_CHUNK_TAIL) + size; - chunk->size = size; - if (pool) - pool->total_size += size + MP_CHUNK_TAIL; - return chunk; -#else - return mp_new_big_chunk(pool, size); -#endif -} - -static void -mp_free_chunk(struct mempool *pool, struct mempool_chunk *chunk) -{ -#ifdef CONFIG_UCW_POOL_IS_MMAP - pool->total_size -= chunk->size + MP_CHUNK_TAIL; - page_free((void *)chunk - chunk->size, chunk->size + MP_CHUNK_TAIL); -#else - mp_free_big_chunk(pool, chunk); -#endif -} - -struct mempool * -mp_new(size_t chunk_size) -{ - chunk_size = mp_align_size(MAX(sizeof(struct mempool), chunk_size)); - struct mempool_chunk *chunk = mp_new_chunk(NULL, chunk_size); - struct mempool *pool = (void *)chunk - chunk_size; - DBG("Creating mempool %p with %u bytes long chunks", pool, chunk_size); - chunk->next = NULL; -#ifdef CONFIG_DEBUG - chunk->pool = pool; -#endif - *pool = (struct mempool) { - .allocator = { - .alloc = mp_allocator_alloc, - .realloc = mp_allocator_realloc, - .free = mp_allocator_free, - }, - .state = { .free = { chunk_size - sizeof(*pool) }, .last = { chunk } }, - .chunk_size = chunk_size, - .threshold = chunk_size >> 1, - .last_big = &pool->last_big, - .total_size = chunk->size + MP_CHUNK_TAIL, - }; - return pool; -} - -static void -mp_free_chain(struct mempool *pool, struct mempool_chunk *chunk) -{ - while (chunk) - { - struct mempool_chunk *next = chunk->next; - mp_free_chunk(pool, chunk); - chunk = next; - } -} - -static void -mp_free_big_chain(struct mempool *pool, struct mempool_chunk *chunk) -{ - while (chunk) - { - struct mempool_chunk *next = chunk->next; - mp_free_big_chunk(pool, chunk); - chunk = next; - } -} - -void -mp_delete(struct mempool *pool) -{ - DBG("Deleting mempool %p", pool); - mp_free_big_chain(pool, pool->state.last[1]); - mp_free_chain(pool, pool->unused); - mp_free_chain(pool, pool->state.last[0]); // can contain the mempool structure -} - -void -mp_flush(struct mempool *pool) -{ - mp_free_big_chain(pool, pool->state.last[1]); - struct mempool_chunk *chunk, *next; - for (chunk = pool->state.last[0]; chunk && (void *)chunk - chunk->size != pool; chunk = next) - { - next = chunk->next; - chunk->next = pool->unused; - pool->unused = chunk; - } - pool->state.last[0] = chunk; - pool->state.free[0] = chunk ? chunk->size - sizeof(*pool) : 0; - pool->state.last[1] = NULL; - pool->state.free[1] = 0; - pool->state.next = NULL; - pool->last_big = &pool->last_big; -} - -static void -mp_stats_chain(struct mempool *pool, struct mempool_chunk *chunk, struct mempool_stats *stats, uint idx) -{ - while (chunk) - { - stats->chain_size[idx] += chunk->size + MP_CHUNK_TAIL; - stats->chain_count[idx]++; - if (idx < 2) - { - stats->used_size += chunk->size; - if ((byte *)pool == (byte *)chunk - chunk->size) - stats->used_size -= sizeof(*pool); - } - chunk = chunk->next; - } - stats->total_size += stats->chain_size[idx]; -} - -void -mp_stats(struct mempool *pool, struct mempool_stats *stats) -{ - bzero(stats, sizeof(*stats)); - mp_stats_chain(pool, pool->state.last[0], stats, 0); - mp_stats_chain(pool, pool->state.last[1], stats, 1); - mp_stats_chain(pool, pool->unused, stats, 2); - stats->used_size -= pool->state.free[0] + pool->state.free[1]; - ASSERT(stats->total_size == pool->total_size); - ASSERT(stats->used_size <= stats->total_size); -} - -u64 -mp_total_size(struct mempool *pool) -{ - return pool->total_size; -} - -void -mp_shrink(struct mempool *pool, u64 min_total_size) -{ - while (1) - { - struct mempool_chunk *chunk = pool->unused; - if (!chunk || pool->total_size - (chunk->size + MP_CHUNK_TAIL) < min_total_size) - break; - pool->unused = chunk->next; - mp_free_chunk(pool, chunk); - } -} - -void * -mp_alloc_internal(struct mempool *pool, size_t size) -{ - struct mempool_chunk *chunk; - if (size <= pool->threshold) - { - pool->idx = 0; - if (pool->unused) - { - chunk = pool->unused; - pool->unused = chunk->next; - } - else - { - chunk = mp_new_chunk(pool, pool->chunk_size); -#ifdef CONFIG_DEBUG - chunk->pool = pool; -#endif - } - chunk->next = pool->state.last[0]; - pool->state.last[0] = chunk; - pool->state.free[0] = pool->chunk_size - size; - return (void *)chunk - pool->chunk_size; - } - else if (likely(size <= MP_SIZE_MAX)) - { - pool->idx = 1; - size_t aligned = ALIGN_TO(size, CPU_STRUCT_ALIGN); - chunk = mp_new_big_chunk(pool, aligned); - chunk->next = pool->state.last[1]; -#ifdef CONFIG_DEBUG - chunk->pool = pool; -#endif - pool->state.last[1] = chunk; - pool->state.free[1] = aligned - size; - return pool->last_big = (void *)chunk - aligned; - } - else - return NULL; -} - -void * -mp_alloc(struct mempool *pool, size_t size) -{ - return mp_alloc_fast(pool, size); -} - -void * -mp_alloc_noalign(struct mempool *pool, size_t size) -{ - return mp_alloc_fast_noalign(pool, size); -} - -void * -mp_alloc_zero(struct mempool *pool, size_t size) -{ - void *ptr = mp_alloc_fast(pool, size); - bzero(ptr, size); - return ptr; -} - -void * -mp_start_internal(struct mempool *pool, size_t size) -{ - void *ptr = mp_alloc_internal(pool, size); - if (!ptr) - return NULL; - pool->state.free[pool->idx] += size; - return ptr; -} - -void * -mp_start(struct mempool *pool, size_t size) -{ - return mp_start_fast(pool, size); -} - -void * -mp_start_noalign(struct mempool *pool, size_t size) -{ - return mp_start_fast_noalign(pool, size); -} - -void * -mp_grow_internal(struct mempool *pool, size_t size) -{ - if (unlikely(size > MP_SIZE_MAX)) - return NULL; - size_t avail = mp_avail(pool); - void *ptr = mp_ptr(pool); - if (pool->idx) - { - size_t amortized = likely(avail <= MP_SIZE_MAX / 2) ? avail * 2 : MP_SIZE_MAX; - amortized = MAX(amortized, size); - amortized = ALIGN_TO(amortized, CPU_STRUCT_ALIGN); - struct mempool_chunk *chunk = pool->state.last[1], *next = chunk->next; - pool->total_size = pool->total_size - chunk->size + amortized; - void *nptr = realloc(ptr, amortized + MP_CHUNK_TAIL); - if (!nptr) - return NULL; - ptr = nptr; - chunk = ptr + amortized; - chunk->next = next; - chunk->size = amortized; - pool->state.last[1] = chunk; - pool->state.free[1] = amortized; - pool->last_big = ptr; - return ptr; - } - else - { - void *p = mp_start_internal(pool, size); - memcpy(p, ptr, avail); - return p; - } -} - -size_t -mp_open(struct mempool *pool, void *ptr) -{ - return mp_open_fast(pool, ptr); -} - -void * -mp_realloc(struct mempool *pool, void *ptr, size_t size) -{ - return mp_realloc_fast(pool, ptr, size); -} - -void * -mp_realloc_zero(struct mempool *pool, void *ptr, size_t size) -{ - size_t old_size = mp_open_fast(pool, ptr); - ptr = mp_grow(pool, size); - if (size > old_size) - bzero(ptr + old_size, size - old_size); - mp_end(pool, ptr + size); - return ptr; -} - -void * -mp_spread_internal(struct mempool *pool, void *p, size_t size) -{ - void *old = mp_ptr(pool); - void *new = mp_grow_internal(pool, p-old+size); - if (!new) { - return NULL; - } - return p-old+new; -} - -void -mp_restore(struct mempool *pool, struct mempool_state *state) -{ - struct mempool_chunk *chunk, *next; - struct mempool_state s = *state; - for (chunk = pool->state.last[0]; chunk != s.last[0]; chunk = next) - { - next = chunk->next; - chunk->next = pool->unused; - pool->unused = chunk; - } - for (chunk = pool->state.last[1]; chunk != s.last[1]; chunk = next) - { - next = chunk->next; - mp_free_big_chunk(pool, chunk); - } - pool->state = s; - pool->last_big = &pool->last_big; -} - -struct mempool_state * -mp_push(struct mempool *pool) -{ - struct mempool_state state = pool->state; - struct mempool_state *p = mp_alloc_fast(pool, sizeof(*p)); - *p = state; - pool->state.next = p; - return p; -} - -void -mp_pop(struct mempool *pool) -{ - ASSERT(pool->state.next); - mp_restore(pool, pool->state.next); -} - -#ifdef TEST - -#include -#include -#include -#include - -static void -fill(byte *ptr, uint len, uint magic) -{ - while (len--) - *ptr++ = (magic++ & 255); -} - -static void -check(byte *ptr, uint len, uint magic, uint align) -{ - ASSERT(!((uintptr_t)ptr & (align - 1))); - while (len--) - if (*ptr++ != (magic++ & 255)) - ASSERT(0); -} - -int main(int argc, char **argv) -{ - srand(time(NULL)); - log_init(argv[0]); - cf_def_file = NULL; - if (cf_getopt(argc, argv, CF_SHORT_OPTS, CF_NO_LONG_OPTS, NULL) >= 0 || argc != optind) - die("Invalid usage"); - - uint max = 1000, n = 0, m = 0, can_realloc = 0; - void *ptr[max]; - struct mempool_state *state[max]; - uint len[max], num[max], align[max]; - struct mempool *mp = mp_new(128), mp_static; - - for (uint i = 0; i < 5000; i++) - { - for (uint j = 0; j < n; j++) - check(ptr[j], len[j], j, align[j]); -#if 0 - DBG("free_small=%u free_big=%u idx=%u chunk_size=%u last_big=%p", mp->state.free[0], mp->state.free[1], mp->idx, mp->chunk_size, mp->last_big); - for (struct mempool_chunk *ch = mp->state.last[0]; ch; ch = ch->next) - DBG("small %p %p %p %d", (byte *)ch - ch->size, ch, ch + 1, ch->size); - for (struct mempool_chunk *ch = mp->state.last[1]; ch; ch = ch->next) - DBG("big %p %p %p %d", (byte *)ch - ch->size, ch, ch + 1, ch->size); -#endif - int r = random_max(100); - if ((r -= 1) < 0) - { - DBG("flush"); - mp_flush(mp); - n = m = 0; - } - else if ((r -= 1) < 0) - { - DBG("delete & new"); - mp_delete(mp); - if (random_max(2)) - mp = mp_new(random_max(0x1000) + 1); - else - mp = &mp_static, mp_init(mp, random_max(512) + 1); - n = m = 0; - } - else if (n < max && (r -= 30) < 0) - { - len[n] = random_max(0x2000); - DBG("alloc(%u)", len[n]); - align[n] = random_max(2) ? CPU_STRUCT_ALIGN : 1; - ptr[n] = (align[n] == 1) ? mp_alloc_fast_noalign(mp, len[n]) : mp_alloc_fast(mp, len[n]); - DBG(" -> (%p)", ptr[n]); - fill(ptr[n], len[n], n); - n++; - can_realloc = 1; - } - else if (n < max && (r -= 20) < 0) - { - len[n] = random_max(0x2000); - DBG("start(%u)", len[n]); - align[n] = random_max(2) ? CPU_STRUCT_ALIGN : 1; - ptr[n] = (align[n] == 1) ? mp_start_fast_noalign(mp, len[n]) : mp_start_fast(mp, len[n]); - DBG(" -> (%p)", ptr[n]); - fill(ptr[n], len[n], n); - n++; - can_realloc = 1; - goto grow; - } - else if (can_realloc && n && (r -= 10) < 0) - { - if (mp_open(mp, ptr[n - 1]) != len[n - 1]) - ASSERT(0); -grow: - { - uint k = n - 1; - for (uint i = random_max(4); i--; ) - { - uint l = len[k]; - len[k] = random_max(0x2000); - DBG("grow(%u)", len[k]); - ptr[k] = mp_grow(mp, len[k]); - DBG(" -> (%p)", ptr[k]); - check(ptr[k], MIN(l, len[k]), k, align[k]); - fill(ptr[k], len[k], k); - } - mp_end(mp, ptr[k] + len[k]); - } - } - else if (can_realloc && n && (r -= 20) < 0) - { - uint i = n - 1, l = len[i]; - DBG("realloc(%p, %u)", ptr[i], len[i]); - ptr[i] = mp_realloc(mp, ptr[i], len[i] = random_max(0x2000)); - DBG(" -> (%p, %u)", ptr[i], len[i]); - check(ptr[i], MIN(len[i], l), i, align[i]); - fill(ptr[i], len[i], i); - } - else if (m < max && (r -= 5) < 0) - { - DBG("push(%u)", m); - num[m] = n; - state[m++] = mp_push(mp); - can_realloc = 0; - } - else if (m && (r -= 2) < 0) - { - m--; - DBG("pop(%u)", m); - mp_pop(mp); - n = num[m]; - can_realloc = 0; - } - else if (m && (r -= 1) < 0) - { - uint i = random_max(m); - DBG("restore(%u)", i); - mp_restore(mp, state[i]); - n = num[m = i]; - can_realloc = 0; - } - else if (can_realloc && n && (r -= 5) < 0) - ASSERT(mp_size(mp, ptr[n - 1]) == len[n - 1]); - else - { - struct mempool_stats stats; - mp_stats(mp, &stats); - } - } - - mp_delete(mp); - return 0; -} - -#endif diff --git a/contrib/ucw/mempool.h b/contrib/ucw/mempool.h deleted file mode 100644 index 031513814..000000000 --- a/contrib/ucw/mempool.h +++ /dev/null @@ -1,572 +0,0 @@ -/* - * UCW Library -- Memory Pools - * - * (c) 1997--2015 Martin Mares - * (c) 2007 Pavel Charvat - * SPDX-License-Identifier: LGPL-2.1-or-later - * Source: https://www.ucw.cz/libucw/ - */ - -#ifndef _UCW_POOLS_H -#define _UCW_POOLS_H - -#include "lib/defines.h" -#include -#include -#include -#include - -#ifdef CONFIG_UCW_CLEAN_ABI -#define mp_alloc ucw_mp_alloc -#define mp_alloc_internal ucw_mp_alloc_internal -#define mp_alloc_noalign ucw_mp_alloc_noalign -#define mp_alloc_zero ucw_mp_alloc_zero -#define mp_delete ucw_mp_delete -#define mp_flush ucw_mp_flush -#define mp_grow_internal ucw_mp_grow_internal -#define mp_init ucw_mp_init -#define mp_memdup ucw_mp_memdup -#define mp_multicat ucw_mp_multicat -#define mp_new ucw_mp_new -#define mp_open ucw_mp_open -#define mp_pop ucw_mp_pop -#define mp_printf ucw_mp_printf -#define mp_printf_append ucw_mp_printf_append -#define mp_push ucw_mp_push -#define mp_realloc ucw_mp_realloc -#define mp_realloc_zero ucw_mp_realloc_zero -#define mp_restore ucw_mp_restore -#define mp_shrink ucw_mp_shrink -#define mp_spread_internal ucw_mp_spread_internal -#define mp_start ucw_mp_start -#define mp_start_internal ucw_mp_start_internal -#define mp_start_noalign ucw_mp_start_noalign -#define mp_stats ucw_mp_stats -#define mp_str_from_mem ucw_mp_str_from_mem -#define mp_strdup ucw_mp_strdup -#define mp_strjoin ucw_mp_strjoin -#define mp_total_size ucw_mp_total_size -#define mp_vprintf ucw_mp_vprintf -#define mp_vprintf_append ucw_mp_vprintf_append -#endif - -/*** - * [[defs]] - * Definitions - * ----------- - ***/ - -/** - * Memory pool state (see @mp_push(), ...). - * You should use this one as an opaque handle only, the insides are internal. - **/ -struct mempool_state { - size_t free[2]; - void *last[2]; - struct mempool_state *next; -}; - -/** - * Memory pool. - * You should use this one as an opaque handle only, the insides are internal. - **/ -struct mempool { - struct ucw_allocator allocator; // This must be the first element - struct mempool_state state; - void *unused, *last_big; - size_t chunk_size, threshold; - uint idx; - u64 total_size; -}; - -struct mempool_stats { /** Mempool statistics. See @mp_stats(). **/ - u64 total_size; /* Real allocated size in bytes */ - u64 used_size; /* Estimated size allocated from mempool to application */ - uint chain_count[3]; /* Number of allocated chunks in small/big/unused chains */ - u64 chain_size[3]; /* Size of allocated chunks in small/big/unused chains */ -}; - -/*** - * [[basic]] - * Basic manipulation - * ------------------ - ***/ - -/** - * Initialize a given mempool structure. - * @chunk_size must be in the interval `[1, SIZE_MAX / 2]`. - * It will allocate memory by this large chunks and take - * memory to satisfy requests from them. - * - * Memory pools can be treated as <>, see <>. - **/ -KR_EXPORT -void mp_init(struct mempool *pool, size_t chunk_size); - -/** - * Allocate and initialize a new memory pool. - * See @mp_init() for @chunk_size limitations. - * - * The new mempool structure is allocated on the new mempool. - * - * Memory pools can be treated as <>, see <>. - **/ -KR_EXPORT -struct mempool *mp_new(size_t chunk_size); - -/** - * Cleanup mempool initialized by mp_init or mp_new. - * Frees all the memory allocated by this mempool and, - * if created by @mp_new(), the @pool itself. - **/ -KR_EXPORT -void mp_delete(struct mempool *pool); - -/** - * Frees all data on a memory pool, but leaves it working. - * It can keep some of the chunks allocated to serve - * further allocation requests. Leaves the @pool alive, - * even if it was created with @mp_new(). - **/ -KR_EXPORT -void mp_flush(struct mempool *pool); - -/** - * Compute some statistics for debug purposes. - * See the definition of the <>. - * This function scans the chunk list, so it can be slow. If you are interested - * in total memory consumption only, mp_total_size() is faster. - **/ -void mp_stats(struct mempool *pool, struct mempool_stats *stats); - -/** - * Return how many bytes were allocated by the pool, including unused parts - * of chunks. This function runs in constant time. - **/ -u64 mp_total_size(struct mempool *pool); - -/** - * Release unused chunks of memory reserved for further allocation - * requests, but stop if mp_total_size() would drop below @min_total_size. - **/ -void mp_shrink(struct mempool *pool, u64 min_total_size); - -/*** - * [[alloc]] - * Allocation routines - * ------------------- - ***/ - -/* For internal use only, do not call directly */ -void *mp_alloc_internal(struct mempool *pool, size_t size) LIKE_MALLOC; - -/** - * The function allocates new @size bytes on a given memory pool. - * If the @size is zero, the resulting pointer is undefined, - * but it may be safely reallocated or used as the parameter - * to other functions below. - * - * The resulting pointer is always aligned to a multiple of - * `CPU_STRUCT_ALIGN` bytes and this condition remains true also - * after future reallocations. - **/ -KR_EXPORT -void *mp_alloc(struct mempool *pool, size_t size); - -/** - * The same as @mp_alloc(), but the result may be unaligned. - **/ -void *mp_alloc_noalign(struct mempool *pool, size_t size); - -/** - * The same as @mp_alloc(), but fills the newly allocated memory with zeroes. - **/ -void *mp_alloc_zero(struct mempool *pool, size_t size); - -/** - * Inlined version of @mp_alloc(). - **/ -static inline void *mp_alloc_fast(struct mempool *pool, size_t size) -{ - size_t avail = pool->state.free[0] & ~(size_t)(CPU_STRUCT_ALIGN - 1); - if (size <= avail) - { - pool->state.free[0] = avail - size; - return (byte *)pool->state.last[0] - avail; - } - else - return mp_alloc_internal(pool, size); -} - -/** - * Inlined version of @mp_alloc_noalign(). - **/ -static inline void *mp_alloc_fast_noalign(struct mempool *pool, size_t size) -{ - if (size <= pool->state.free[0]) - { - void *ptr = (byte *)pool->state.last[0] - pool->state.free[0]; - pool->state.free[0] -= size; - return ptr; - } - else - return mp_alloc_internal(pool, size); -} - -/** - * Return a generic allocator representing the given mempool. - **/ -static inline struct ucw_allocator *mp_get_allocator(struct mempool *mp) -{ - return &mp->allocator; -} - -/*** - * [[gbuf]] - * Growing buffers - * --------------- - * - * You do not need to know, how a buffer will need to be large, - * you can grow it incrementally to needed size. You can grow only - * one buffer at a time on a given mempool. - * - * Similar functionality is provided by <> module. - ***/ - -/* For internal use only, do not call directly */ -void *mp_start_internal(struct mempool *pool, size_t size) LIKE_MALLOC; -void *mp_grow_internal(struct mempool *pool, size_t size); -void *mp_spread_internal(struct mempool *pool, void *p, size_t size); - -static inline uint mp_idx(struct mempool *pool, void *ptr) -{ - return ptr == pool->last_big; -} - -/** - * Open a new growing buffer (at least @size bytes long). - * If the @size is zero, the resulting pointer is undefined, - * but it may be safely reallocated or used as the parameter - * to other functions below. - * - * The resulting pointer is always aligned to a multiple of - * `CPU_STRUCT_ALIGN` bytes and this condition remains true also - * after future reallocations. There is an unaligned version as well. - * - * Keep in mind that you can't make any other pool allocations - * before you "close" the growing buffer with @mp_end(). - */ -void *mp_start(struct mempool *pool, size_t size); -void *mp_start_noalign(struct mempool *pool, size_t size); - -/** - * Inlined version of @mp_start(). - **/ -static inline void *mp_start_fast(struct mempool *pool, size_t size) -{ - size_t avail = pool->state.free[0] & ~(size_t)(CPU_STRUCT_ALIGN - 1); - if (size <= avail) - { - pool->idx = 0; - pool->state.free[0] = avail; - return (byte *)pool->state.last[0] - avail; - } - else - return mp_start_internal(pool, size); -} - -/** - * Inlined version of @mp_start_noalign(). - **/ -static inline void *mp_start_fast_noalign(struct mempool *pool, size_t size) -{ - if (size <= pool->state.free[0]) - { - pool->idx = 0; - return (byte *)pool->state.last[0] - pool->state.free[0]; - } - else - return mp_start_internal(pool, size); -} - -/** - * Return start pointer of the growing buffer allocated by latest @mp_start() or a similar function. - **/ -static inline void *mp_ptr(struct mempool *pool) -{ - return (byte *)pool->state.last[pool->idx] - pool->state.free[pool->idx]; -} - -/** - * Return the number of bytes available for extending the growing buffer. - * (Before a reallocation will be needed). - **/ -static inline size_t mp_avail(struct mempool *pool) -{ - return pool->state.free[pool->idx]; -} - -/** - * Grow the buffer allocated by @mp_start() to be at least @size bytes long - * (@size may be less than @mp_avail(), even zero). Reallocated buffer may - * change its starting position. The content will be unchanged to the minimum - * of the old and new sizes; newly allocated memory will be uninitialized. - * Multiple calls to mp_grow() have amortized linear cost wrt. the maximum value of @size. */ -static inline void *mp_grow(struct mempool *pool, size_t size) -{ - return (size <= mp_avail(pool)) ? mp_ptr(pool) : mp_grow_internal(pool, size); -} - -/** - * Grow the buffer by at least one byte -- equivalent to <>`(@pool, @mp_avail(pool) + 1)`. - **/ -static inline void *mp_expand(struct mempool *pool) -{ - return mp_grow_internal(pool, mp_avail(pool) + 1); -} - -/** - * Ensure that there is at least @size bytes free after @p, - * if not, reallocate and adjust @p. - **/ -static inline void *mp_spread(struct mempool *pool, void *p, size_t size) -{ - return (((size_t)((byte *)pool->state.last[pool->idx] - (byte *)p) >= size) ? p : mp_spread_internal(pool, p, size)); -} - -/** - * Append a character to the growing buffer. Called with @p pointing after - * the last byte in the buffer, returns a pointer after the last byte - * of the new (possibly reallocated) buffer. - **/ -static inline char *mp_append_char(struct mempool *pool, char *p, uint c) -{ - p = mp_spread(pool, p, 1); - *p++ = c; - return p; -} - -/** - * Append a memory block to the growing buffer. Called with @p pointing after - * the last byte in the buffer, returns a pointer after the last byte - * of the new (possibly reallocated) buffer. - **/ -static inline void *mp_append_block(struct mempool *pool, void *p, const void *block, size_t size) -{ - char *q = mp_spread(pool, p, size); - memcpy(q, block, size); - return q + size; -} - -/** - * Append a string to the growing buffer. Called with @p pointing after - * the last byte in the buffer, returns a pointer after the last byte - * of the new (possibly reallocated) buffer. - **/ -static inline void *mp_append_string(struct mempool *pool, void *p, const char *str) -{ - return mp_append_block(pool, p, str, strlen(str)); -} - -/** - * Close the growing buffer. The @end must point just behind the data, you want to keep - * allocated (so it can be in the interval `[@mp_ptr(@pool), @mp_ptr(@pool) + @mp_avail(@pool)]`). - * Returns a pointer to the beginning of the just closed block. - **/ -static inline void *mp_end(struct mempool *pool, void *end) -{ - void *p = mp_ptr(pool); - pool->state.free[pool->idx] = (byte *)pool->state.last[pool->idx] - (byte *)end; - return p; -} - -/** - * Close the growing buffer as a string. That is, append a zero byte and call mp_end(). - **/ -static inline char *mp_end_string(struct mempool *pool, void *end) -{ - end = mp_append_char(pool, end, 0); - return mp_end(pool, end); -} - -/** - * Return size in bytes of the last allocated memory block (with @mp_alloc() or @mp_end()). - **/ -static inline size_t mp_size(struct mempool *pool, void *ptr) -{ - uint idx = mp_idx(pool, ptr); - return ((byte *)pool->state.last[idx] - (byte *)ptr) - pool->state.free[idx]; -} - -/** - * Open the last memory block (allocated with @mp_alloc() or @mp_end()) - * for growing and return its size in bytes. The contents and the start pointer - * remain unchanged. Do not forget to call @mp_end() to close it. - **/ -size_t mp_open(struct mempool *pool, void *ptr); - -/** - * Inlined version of @mp_open(). - **/ -static inline size_t mp_open_fast(struct mempool *pool, void *ptr) -{ - pool->idx = mp_idx(pool, ptr); - size_t size = ((byte *)pool->state.last[pool->idx] - (byte *)ptr) - pool->state.free[pool->idx]; - pool->state.free[pool->idx] += size; - return size; -} - -/** - * Reallocate the last memory block (allocated with @mp_alloc() or @mp_end()) - * to the new @size. Behavior is similar to @mp_grow(), but the resulting - * block is closed. - **/ -void *mp_realloc(struct mempool *pool, void *ptr, size_t size); - -/** - * The same as @mp_realloc(), but fills the additional bytes (if any) with zeroes. - **/ -void *mp_realloc_zero(struct mempool *pool, void *ptr, size_t size); - -/** - * Inlined version of @mp_realloc(). - **/ -static inline void *mp_realloc_fast(struct mempool *pool, void *ptr, size_t size) -{ - mp_open_fast(pool, ptr); - ptr = mp_grow(pool, size); - mp_end(pool, (byte *)ptr + size); - return ptr; -} - -/*** - * [[store]] - * Storing and restoring state - * --------------------------- - * - * Mempools can remember history of what was allocated and return back - * in time. - ***/ - -/** - * Save the current state of a memory pool. - * Do not call this function with an opened growing buffer. - **/ -static inline void mp_save(struct mempool *pool, struct mempool_state *state) -{ - *state = pool->state; - pool->state.next = state; -} - -/** - * Save the current state to a newly allocated mempool_state structure. - * Do not call this function with an opened growing buffer. - **/ -struct mempool_state *mp_push(struct mempool *pool); - -/** - * Restore the state saved by @mp_save() or @mp_push() and free all - * data allocated after that point (including the state structure itself). - * You can't reallocate the last memory block from the saved state. - **/ -void mp_restore(struct mempool *pool, struct mempool_state *state); - -/** - * Inlined version of @mp_restore(). - **/ -static inline void mp_restore_fast(struct mempool *pool, struct mempool_state *state) -{ - if (pool->state.last[0] != state->last[0] || pool->state.last[1] != state->last[1]) - mp_restore(pool, state); - else - { - pool->state = *state; - pool->last_big = &pool->last_big; - } -} - -/** - * Restore the state saved by the last call to @mp_push(). - * @mp_pop() and @mp_push() works as a stack so you can push more states safely. - **/ -void mp_pop(struct mempool *pool); - - -/*** - * [[string]] - * String operations - * ----------------- - ***/ - -char *mp_strdup(struct mempool *, const char *) LIKE_MALLOC; /** Makes a copy of a string on a mempool. Returns NULL for NULL string. **/ -void *mp_memdup(struct mempool *, const void *, size_t) LIKE_MALLOC; /** Makes a copy of a memory block on a mempool. **/ -/** - * Concatenates all passed strings. The last parameter must be NULL. - * This will concatenate two strings: - * - * char *message = mp_multicat(pool, "hello ", "world", NULL); - **/ -char *mp_multicat(struct mempool *, ...) LIKE_MALLOC SENTINEL_CHECK; -/** - * Concatenates two strings and stores result on @mp. - */ -static inline char *LIKE_MALLOC mp_strcat(struct mempool *mp, const char *x, const char *y) -{ - return mp_multicat(mp, x, y, NULL); -} -/** - * Join strings and place @sep between each two neighboring. - * @p is the mempool to provide memory, @a is array of strings and @n - * tells how many there is of them. - **/ -char *mp_strjoin(struct mempool *p, char **a, uint n, uint sep) LIKE_MALLOC; -/** - * Convert memory block to a string. Makes a copy of the given memory block - * in the mempool @p, adding an extra terminating zero byte at the end. - **/ -char *mp_str_from_mem(struct mempool *p, const void *mem, size_t len) LIKE_MALLOC; - - -/*** - * [[format]] - * Formatted output - * --------------- - ***/ - -/** - * printf() into a in-memory string, allocated on the memory pool. - **/ -KR_EXPORT -char *mp_printf(struct mempool *mp, const char *fmt, ...) FORMAT_CHECK(printf,2,3) LIKE_MALLOC; -/** - * Like @mp_printf(), but uses `va_list` for parameters. - **/ -char *mp_vprintf(struct mempool *mp, const char *fmt, va_list args) LIKE_MALLOC; -/** - * Like @mp_printf(), but it appends the data at the end of string - * pointed to by @ptr. The string is @mp_open()ed, so you have to - * provide something that can be. - * - * Returns pointer to the beginning of the string (the pointer may have - * changed due to reallocation). - * - * In some versions of LibUCW, this function was called mp_append_printf(). However, - * this name turned out to be confusing -- unlike other appending functions, this one is - * not called on an opened growing buffer. The old name will be preserved for backward - * compatibility for the time being. - **/ -KR_EXPORT -char *mp_printf_append(struct mempool *mp, char *ptr, const char *fmt, ...) FORMAT_CHECK(printf,3,4); -#define mp_append_printf mp_printf_append -/** - * Like @mp_printf_append(), but uses `va_list` for parameters. - * - * In some versions of LibUCW, this function was called mp_append_vprintf(). However, - * this name turned out to be confusing -- unlike other appending functions, this one is - * not called on an opened growing buffer. The old name will be preserved for backward - * compatibility for the time being. - **/ -char *mp_vprintf_append(struct mempool *mp, char *ptr, const char *fmt, va_list args); -#define mp_append_vprintf mp_vprintf_append - -#endif diff --git a/daemon/bindings/api.h b/daemon/bindings/api.h deleted file mode 100644 index 2b4338510..000000000 --- a/daemon/bindings/api.h +++ /dev/null @@ -1,12 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include - -/** Make all the bindings accessible from the lua state, - * .i.e. define those lua tables. */ -void kr_bindings_register(lua_State *L); - diff --git a/daemon/bindings/cache.c b/daemon/bindings/cache.c deleted file mode 100644 index 602974b4c..000000000 --- a/daemon/bindings/cache.c +++ /dev/null @@ -1,376 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/bindings/impl.h" - -/** @internal return cache, or throw lua error if not open */ -static struct kr_cache * cache_assert_open(lua_State *L) -{ - struct kr_cache *cache = &the_resolver->cache; - if (kr_fails_assert(cache) || !kr_cache_is_open(cache)) - lua_error_p(L, "no cache is open yet, use cache.open() or cache.size, etc."); - return cache; -} - -/** Return available cached backends. */ -static int cache_backends(lua_State *L) -{ - lua_newtable(L); - for (unsigned i = 0; i < the_engine->backends.len; ++i) { - const struct kr_cdb_api *api = the_engine->backends.at[i]; - lua_pushboolean(L, api == the_resolver->cache.api); - lua_setfield(L, -2, api->name); - } - return 1; -} - -/** Return number of cached records. */ -static int cache_count(lua_State *L) -{ - struct kr_cache *cache = cache_assert_open(L); - - int count = cache->api->count(cache->db, &cache->stats); - if (count >= 0) { - /* First key is a version counter, omit it if nonempty. */ - lua_pushinteger(L, count ? count - 1 : 0); - return 1; - } - return 0; -} - -/** Return time of last checkpoint, or re-set it if passed `true`. */ -static int cache_checkpoint(lua_State *L) -{ - struct kr_cache *cache = cache_assert_open(L); - - if (lua_gettop(L) == 0) { /* Return the current value. */ - lua_newtable(L); - lua_pushnumber(L, cache->checkpoint_monotime); - lua_setfield(L, -2, "monotime"); - lua_newtable(L); - lua_pushnumber(L, cache->checkpoint_walltime.tv_sec); - lua_setfield(L, -2, "sec"); - lua_pushnumber(L, cache->checkpoint_walltime.tv_usec); - lua_setfield(L, -2, "usec"); - lua_setfield(L, -2, "walltime"); - return 1; - } - - if (lua_gettop(L) != 1 || !lua_isboolean(L, 1) || !lua_toboolean(L, 1)) - lua_error_p(L, "cache.checkpoint() takes no parameters or a true value"); - - kr_cache_make_checkpoint(cache); - return 1; -} - -/** Return cache statistics. */ -static int cache_stats(lua_State *L) -{ - struct kr_cache *cache = cache_assert_open(L); - lua_newtable(L); -#define add_stat(name) \ - lua_pushinteger(L, (cache->stats.name)); \ - lua_setfield(L, -2, #name) - add_stat(open); - add_stat(close); - add_stat(count); - cache->stats.count_entries = cache->api->count(cache->db, &cache->stats); - add_stat(count_entries); - add_stat(clear); - add_stat(commit); - add_stat(read); - add_stat(read_miss); - add_stat(write); - add_stat(remove); - add_stat(remove_miss); - add_stat(match); - add_stat(match_miss); - add_stat(read_leq); - add_stat(read_leq_miss); - /* usage_percent statistics special case - double */ - cache->stats.usage_percent = cache->api->usage_percent(cache->db); - lua_pushnumber(L, cache->stats.usage_percent); - lua_setfield(L, -2, "usage_percent"); -#undef add_stat - - return 1; -} - -static const struct kr_cdb_api *cache_select(const char **conf) -{ - /* Return default backend */ - if (*conf == NULL || !strstr(*conf, "://")) { - return the_engine->backends.at[0]; - } - - /* Find storage backend from config prefix */ - for (unsigned i = 0; i < the_engine->backends.len; ++i) { - const struct kr_cdb_api *api = the_engine->backends.at[i]; - if (strncmp(*conf, api->name, strlen(api->name)) == 0) { - *conf += strlen(api->name) + strlen("://"); - return api; - } - } - - return NULL; -} - -static int cache_max_ttl(lua_State *L) -{ - struct kr_cache *cache = cache_assert_open(L); - - int n = lua_gettop(L); - if (n > 0) { - if (!lua_isnumber(L, 1) || n > 1) - lua_error_p(L, "expected 'max_ttl(number ttl)'"); - uint32_t min = cache->ttl_min; - int64_t ttl = lua_tointeger(L, 1); - if (ttl < 1 || ttl < min || ttl > TTL_MAX_MAX) { - lua_error_p(L, - "max_ttl must be larger than minimum TTL, and in range <1, " - STR(TTL_MAX_MAX) ">'"); - } - cache->ttl_max = ttl; - } - lua_pushinteger(L, cache->ttl_max); - return 1; -} - - -static int cache_min_ttl(lua_State *L) -{ - struct kr_cache *cache = cache_assert_open(L); - - int n = lua_gettop(L); - if (n > 0) { - if (!lua_isnumber(L, 1)) - lua_error_p(L, "expected 'min_ttl(number ttl)'"); - uint32_t max = cache->ttl_max; - int64_t ttl = lua_tointeger(L, 1); - if (ttl < 0 || ttl > max || ttl > TTL_MAX_MAX) { - lua_error_p(L, - "min_ttl must be smaller than maximum TTL, and in range <0, " - STR(TTL_MAX_MAX) ">'"); - } - cache->ttl_min = ttl; - } - lua_pushinteger(L, cache->ttl_min); - return 1; -} - -/** Open cache */ -static int cache_open(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n < 1 || !lua_isnumber(L, 1)) - lua_error_p(L, "expected 'open(number max_size, string config = \"\")'"); - - /* Select cache storage backend */ - lua_Integer csize_lua = lua_tointeger(L, 1); - if (!(csize_lua >= 8192 && csize_lua < SIZE_MAX)) { /* min. is basically arbitrary */ - lua_error_p(L, "invalid cache size specified, it must be in range <8192, " - STR(SIZE_MAX) ">"); - } - size_t cache_size = csize_lua; - - const char *conf = n > 1 ? lua_tostring(L, 2) : NULL; - const char *uri = conf; - const struct kr_cdb_api *api = cache_select(&conf); - if (!api) - lua_error_p(L, "unsupported cache backend"); - - /* Close if already open */ - kr_cache_close(&the_resolver->cache); - - /* Reopen cache */ - struct kr_cdb_opts opts = { - .is_cache = true, - .path = (conf && strlen(conf)) ? conf : ".", - .maxsize = cache_size, - }; - int ret = kr_cache_open(&the_resolver->cache, api, &opts, &the_engine->pool); - if (ret != 0) { - char cwd[PATH_MAX]; - get_workdir(cwd, sizeof(cwd)); - return luaL_error(L, "can't open cache path '%s'; working directory '%s'; %s", - opts.path, cwd, kr_strerror(ret)); - } - /* Let's check_health() every five seconds to avoid keeping old cache alive - * even in case of not having any work to do. */ - ret = kr_cache_check_health(&the_resolver->cache, 5000); - if (ret != 0) { - kr_log_error(CACHE, "periodic health check failed (ignored): %s\n", - kr_strerror(ret)); - } - - /* Store current configuration */ - lua_getglobal(L, "cache"); - lua_pushstring(L, "current_size"); - lua_pushnumber(L, cache_size); - lua_rawset(L, -3); - lua_pushstring(L, "current_storage"); - lua_pushstring(L, uri); - lua_rawset(L, -3); - lua_pop(L, 1); - - lua_pushboolean(L, 1); - return 1; -} - -static int cache_close(lua_State *L) -{ - struct kr_cache *cache = &the_resolver->cache; - if (!kr_cache_is_open(cache)) { - return 0; - } - - kr_cache_close(cache); - lua_getglobal(L, "cache"); - lua_pushstring(L, "current_size"); - lua_pushnumber(L, 0); - lua_rawset(L, -3); - lua_pop(L, 1); - lua_pushboolean(L, 1); - return 1; -} - -#if 0 -/** @internal Prefix walk. */ -static int cache_prefixed(struct kr_cache *cache, const char *prefix, bool exact_name, - knot_db_val_t keyval[][2], int maxcount) -{ - /* Convert to domain name */ - uint8_t buf[KNOT_DNAME_MAXLEN]; - if (!knot_dname_from_str(buf, prefix, sizeof(buf))) { - return kr_error(EINVAL); - } - /* Start prefix search */ - return kr_cache_match(cache, buf, exact_name, keyval, maxcount); -} -#endif - -/** Clear everything. */ -static int cache_clear_everything(lua_State *L) -{ - struct kr_cache *cache = cache_assert_open(L); - - /* Clear records and packets. */ - int ret = kr_cache_clear(cache); - lua_error_maybe(L, ret); - - /* Clear reputation tables */ - lru_reset(the_resolver->cache_cookie); - lua_pushboolean(L, true); - return 1; -} - -#if 0 -/** @internal Dump cache key into table on Lua stack. */ -static void cache_dump(lua_State *L, knot_db_val_t keyval[]) -{ - knot_dname_t dname[KNOT_DNAME_MAXLEN]; - char name[KNOT_DNAME_TXT_MAXLEN]; - uint16_t type; - - int ret = kr_unpack_cache_key(keyval[0], dname, &type); - if (ret < 0) { - return; - } - - ret = !knot_dname_to_str(name, dname, sizeof(name)); - if (kr_fails_assert(!ret)) return; - - /* If name typemap doesn't exist yet, create it */ - lua_getfield(L, -1, name); - if (lua_isnil(L, -1)) { - lua_pop(L, 1); - lua_newtable(L); - } - /* Append to typemap */ - char type_buf[KR_RRTYPE_STR_MAXLEN] = { '\0' }; - knot_rrtype_to_string(type, type_buf, sizeof(type_buf)); - lua_pushboolean(L, true); - lua_setfield(L, -2, type_buf); - /* Set name typemap */ - lua_setfield(L, -2, name); -} - -/** Query cached records. TODO: fix caveats in ./README.rst documentation? */ -static int cache_get(lua_State *L) -{ - //struct kr_cache *cache = cache_assert_open(L); // to be fixed soon - - /* Check parameters */ - int n = lua_gettop(L); - if (n < 1 || !lua_isstring(L, 1)) - lua_error_p(L, "expected 'cache.get(string key)'"); - - /* Retrieve set of keys */ - const char *prefix = lua_tostring(L, 1); - knot_db_val_t keyval[100][2]; - int ret = cache_prefixed(cache, prefix, false/*FIXME*/, keyval, 100); - lua_error_maybe(L, ret); - /* Format output */ - lua_newtable(L); - for (int i = 0; i < ret; ++i) { - cache_dump(L, keyval[i]); - } - return 1; -} -#endif -static int cache_get(lua_State *L) -{ - lua_error_maybe(L, ENOSYS); - return kr_error(ENOSYS); /* doesn't happen */ -} - -/** Set time interval for cleaning rtt cache. - * Servers with score >= KR_NS_TIMEOUT will be cleaned after - * this interval ended up, so that they will be able to participate - * in NS elections again. */ -static int cache_ns_tout(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n < 1) { - lua_pushinteger(L, the_resolver->cache_rtt_tout_retry_interval); - return 1; - } - - if (!lua_isnumber(L, 1)) - lua_error_p(L, "expected 'cache.ns_tout(interval in ms)'"); - - lua_Integer interval_lua = lua_tointeger(L, 1); - if (!(interval_lua > 0 && interval_lua < UINT_MAX)) { - lua_error_p(L, "invalid interval specified, it must be in range > 0, < " - STR(UINT_MAX)); - } - - the_resolver->cache_rtt_tout_retry_interval = interval_lua; - lua_pushinteger(L, the_resolver->cache_rtt_tout_retry_interval); - return 1; -} - -int kr_bindings_cache(lua_State *L) -{ - static const luaL_Reg lib[] = { - { "backends", cache_backends }, - { "count", cache_count }, - { "stats", cache_stats }, - { "checkpoint", cache_checkpoint }, - { "open", cache_open }, - { "close", cache_close }, - { "clear_everything", cache_clear_everything }, - { "get", cache_get }, - { "max_ttl", cache_max_ttl }, - { "min_ttl", cache_min_ttl }, - { "ns_tout", cache_ns_tout }, - { NULL, NULL } - }; - - luaL_register(L, "cache", lib); - return 1; -} - diff --git a/daemon/bindings/cache.rst b/daemon/bindings/cache.rst deleted file mode 100644 index 879bc6e32..000000000 --- a/daemon/bindings/cache.rst +++ /dev/null @@ -1,338 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Cache -===== - -Cache in Knot Resolver is stored on disk and also shared between -:ref:`systemd-multiple-instances` so resolver doesn't lose the cached data on -restart or crash. - -To improve performance even further the resolver implements so-called aggressive caching -for DNSSEC-validated data (:rfc:`8198`), which improves performance and also protects -against some types of Random Subdomain Attacks. - - -.. _`cache_sizing`: - -Sizing ------- - -For personal and small office use-cases cache size around 100 MB is more than enough. - -For large deployments we recommend to run Knot Resolver on a dedicated machine, -and to allocate 90% of machine's free memory for resolver's cache. - -.. note:: Choosing a cache size that can fit into RAM is important even if the - cache is stored on disk (default). Otherwise, the extra I/O caused by disk - access for missing pages can cause performance issues. - -For example, imagine you have a machine with 16 GB of memory. -After machine restart you use command ``free -m`` to determine -amount of free memory (without swap): - -.. code-block:: bash - - $ free -m - total used free - Mem: 15907 979 14928 - -Now you can configure cache size to be 90% of the free memory 14 928 MB, i.e. 13 453 MB: - -.. code-block:: lua - - -- 90 % of free memory after machine restart - cache.size = 13453 * MB - -It is also possible to set the cache size based on the file system size. This is useful -if you use a dedicated partition for cache (e.g. non-persistent tmpfs). It is recommended -to leave some free space for special files, such as locks.: - -.. code-block:: lua - - cache.size = cache.fssize() - 10*MB - -.. note:: The `cache garbage collector <../deployment-advanced-no-systemd-processes.html#garbage-collector>`_ - can be used to periodically trim the cache. It is enabled and configured by - default when running kresd with systemd integration. - -.. _`cache_persistence`: - -Persistence ------------ -.. tip:: Using tmpfs for cache improves performance and reduces disk I/O. - -By default the cache is saved on a persistent storage device -so the content of the cache is persisted during system reboot. -This usually leads to smaller latency after restart etc., -however in certain situations a non-persistent cache storage might be preferred, e.g.: - - - Resolver handles high volume of queries and I/O performance to disk is too low. - - Threat model includes attacker getting access to disk content in power-off state. - - Disk has limited number of writes (e.g. flash memory in routers). - -If non-persistent cache is desired configure cache directory to be on -tmpfs_ filesystem, a temporary in-memory file storage. -The cache content will be saved in memory, and thus have faster access -and will be lost on power-off or reboot. - - -.. note:: In most of the Unix-like systems ``/tmp`` and ``/var/run`` are - commonly mounted as tmpfs. While it is technically possible to move the - cache to an existing tmpfs filesystem, it is *not recommended*, since the - path to cache is configured in multiple places. - -Mounting the cache directory as tmpfs_ is the recommended approach. Make sure -to use appropriate ``size=`` option and don't forget to adjust the size in the -config file as well. - -.. code-block:: none - - # /etc/fstab - tmpfs /var/cache/knot-resolver tmpfs rw,size=2G,uid=knot-resolver,gid=knot-resolver,nosuid,nodev,noexec,mode=0700 0 0 - -.. code-block:: lua - - -- /etc/knot-resolver/kresd.conf - cache.size = cache.fssize() - 10*MB - -.. _tmpfs: https://en.wikipedia.org/wiki/Tmpfs - -Configuration reference ------------------------ - -.. function:: cache.open(max_size[, config_uri]) - - :param number max_size: Maximum cache size in bytes. - :return: ``true`` if cache was opened - - Open cache with a size limit. The cache will be reopened if already open. - Note that the max_size cannot be lowered, only increased due to how cache is implemented. - - .. tip:: Use ``kB, MB, GB`` constants as a multiplier, e.g. ``100*MB``. - - The URI ``lmdb://path`` allows you to change the cache directory. - - Example: - - .. code-block:: lua - - cache.open(100 * MB, 'lmdb:///var/cache/knot-resolver') - -.. envvar:: cache.size - - Set the cache maximum size in bytes. Note that this is only a hint to the backend, - which may or may not respect it. See :func:`cache.open()`. - - .. code-block:: lua - - cache.size = 100 * MB -- equivalent to `cache.open(100 * MB)` - -.. envvar:: cache.current_size - - Get the maximum size in bytes. - - .. code-block:: lua - - print(cache.current_size) - -.. envvar:: cache.storage - - Set the cache storage backend configuration, see :func:`cache.backends()` for - more information. If the new storage configuration is invalid, it is not set. - - .. code-block:: lua - - cache.storage = 'lmdb://.' - -.. envvar:: cache.current_storage - - Get the storage backend configuration. - - .. code-block:: lua - - print(cache.current_storage) - -.. function:: cache.backends() - - :return: map of backends - - .. note:: For now there is only one backend implementation, even though the APIs are ready for different (synchronous) backends. - - The cache supports runtime-changeable backends, using the optional :rfc:`3986` URI, where the scheme - represents backend protocol and the rest of the URI backend-specific configuration. By default, it - is a ``lmdb`` backend in working directory, i.e. ``lmdb://``. - - Example output: - - .. code-block:: lua - - [lmdb://] => true - -.. function:: cache.count() - - :return: Number of entries in the cache. Meaning of the number is an implementation detail and is subject of change. - -.. function:: cache.close() - - :return: ``true`` if cache was closed - - Close the cache. - - .. note:: This may or may not clear the cache, depending on the cache backend. - -.. function:: cache.fssize() - - :return: Partition size of cache storage. - -.. function:: cache.stats() - - Return table with low-level statistics for internal cache operation and storage. - This counts each access to cache and does not directly map to individual - DNS queries or resource records. - For query-level statistics see :ref:`stats module `. - - Example: - - .. code-block:: lua - - > cache.stats() - [clear] => 0 - [close] => 0 - [commit] => 117 - [count] => 2 - [count_entries] => 6187 - [match] => 21 - [match_miss] => 2 - [open] => 0 - [read] => 4313 - [read_leq] => 9 - [read_leq_miss] => 4 - [read_miss] => 1143 - [remove] => 17 - [remove_miss] => 0 - [usage_percent] => 15.625 - [write] => 189 - - - Cache operation `read_leq` (*read less or equal*, i.e. range search) was requested 9 times, - and 4 out of 9 operations were finished with *cache miss*. - Cache contains 6187 internal entries which occupy 15.625 % cache size. - - -.. function:: cache.max_ttl([ttl]) - - :param number ttl: maximum TTL in seconds (default: 1 day) - - .. KR_CACHE_DEFAULT_TTL_MAX ^^ - - :return: current maximum TTL - - Get or set upper TTL bound applied to all received records. - - .. note:: The `ttl` value must be in range `(min_ttl, 2147483647)`. - - .. code-block:: lua - - -- Get maximum TTL - cache.max_ttl() - 518400 - -- Set maximum TTL - cache.max_ttl(172800) - 172800 - -.. function:: cache.min_ttl([ttl]) - - :param number ttl: minimum TTL in seconds (default: 5 seconds) - - .. KR_CACHE_DEFAULT_TTL_MIN ^^ - - :return: current minimum TTL - - Get or set lower TTL bound applied to all received records. - Forcing TTL higher than specified violates DNS standards, so use higher values with care. - TTL still won't be extended beyond expiration of the corresponding DNSSEC signature. - - .. note:: The `ttl` value must be in range `<0, max_ttl)`. - - .. code-block:: lua - - -- Get minimum TTL - cache.min_ttl() - 0 - -- Set minimum TTL - cache.min_ttl(5) - 5 - -.. function:: cache.ns_tout([timeout]) - - :param number timeout: NS retry interval in milliseconds (default: :c:macro:`KR_NS_TIMEOUT_RETRY_INTERVAL`) - :return: current timeout - - Get or set time interval for which a nameserver address will be ignored after determining that it doesn't return (useful) answers. - The intention is to avoid waiting if there's little hope; instead, kresd can immediately SERVFAIL or immediately use stale records (with :ref:`serve_stale ` module). - - .. warning:: This settings applies only to the current kresd process. - -.. function:: cache.get([domain]) - - This function is not implemented at this moment. - We plan to re-introduce it soon, probably with a slightly different API. - -.. function:: cache.clear([name], [exact_name], [rr_type], [chunk_size], [callback], [prev_state]) - - Purge cache records matching specified criteria. There are two specifics: - - * To reliably remove **negative** cache entries you need to clear subtree with the whole zone. E.g. to clear negative cache entries for (formerly non-existing) record `www.example.com. A` you need to flush whole subtree starting at zone apex, e.g. `example.com.` [#]_. - * This operation is asynchronous and might not be yet finished when call to ``cache.clear()`` function returns. Return value indicates if clearing continues asynchronously or not. - - :param string name: subtree to purge; if the name isn't provided, whole cache is purged - (and any other parameters are disregarded). - :param bool exact_name: if set to ``true``, only records with *the same* name are removed; - default: false. - :param kres.type rr_type: you may additionally specify the type to remove, - but that is only supported with ``exact_name == true``; default: nil. - :param integer chunk_size: the number of records to remove in one round; default: 100. - The purpose is not to block the resolver for long. - The default ``callback`` repeats the command after one millisecond - until all matching data are cleared. - :param function callback: a custom code to handle result of the underlying C call. - Its parameters are copies of those passed to `cache.clear()` with one additional - parameter ``rettable`` containing table with return value from current call. - ``count`` field contains a return code from :func:`kr_cache_remove_subtree()`. - :param table prev_state: return value from previous run (can be used by callback) - - :rtype: table - :return: ``count`` key is always present. Other keys are optional and their presence indicate special conditions. - - * **count** *(integer)* - number of items removed from cache by this call (can be 0 if no entry matched criteria) - * **not_apex** - cleared subtree is not cached as zone apex; proofs of non-existence were probably not removed - * **subtree** *(string)* - hint where zone apex lies (this is estimation from cache content and might not be accurate) - * **chunk_limit** - more than ``chunk_size`` items needs to be cleared, clearing will continue asynchronously - - - Examples: - - .. code-block:: lua - - -- Clear whole cache - > cache.clear() - [count] => 76 - - -- Clear records at and below 'com.' - > cache.clear('com.') - [chunk_limit] => chunk size limit reached; the default callback will continue asynchronously - [not_apex] => to clear proofs of non-existence call cache.clear('com.') - [count] => 100 - [round] => 1 - [subtree] => com. - > worker.sleep(0.1) - [cache] asynchronous cache.clear('com', false) finished - - -- Clear only 'www.example.com.' - > cache.clear('www.example.com.', true) - [round] => 1 - [count] => 1 - [not_apex] => to clear proofs of non-existence call cache.clear('example.com.') - [subtree] => example.com. - -.. [#] This is a consequence of DNSSEC negative cache which relies on proofs of non-existence on various owner nodes. It is impossible to efficiently flush part of DNS zones signed with NSEC3. diff --git a/daemon/bindings/event.c b/daemon/bindings/event.c deleted file mode 100644 index 686e33e9d..000000000 --- a/daemon/bindings/event.c +++ /dev/null @@ -1,209 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/bindings/impl.h" - -#include -#include - -static void event_free(uv_timer_t *timer) -{ - lua_State *L = the_engine->L; - int ref = (intptr_t) timer->data; - luaL_unref(L, LUA_REGISTRYINDEX, ref); - free(timer); -} - -static void event_callback(uv_timer_t *timer) -{ - lua_State *L = the_engine->L; - - /* Retrieve callback and execute */ - lua_rawgeti(L, LUA_REGISTRYINDEX, (intptr_t) timer->data); - lua_rawgeti(L, -1, 1); - lua_pushinteger(L, (intptr_t) timer->data); - int ret = execute_callback(L, 1); - /* Free callback if not recurrent or an error */ - if (ret != 0 || (uv_timer_get_repeat(timer) == 0 && uv_is_active((uv_handle_t *)timer) == 0)) { - if (!uv_is_closing((uv_handle_t *)timer)) { - uv_close((uv_handle_t *)timer, (uv_close_cb) event_free); - } - } -} - -static void event_fdcallback(uv_poll_t* handle, int status, int events) -{ - lua_State *L = the_engine->L; - - /* Retrieve callback and execute */ - lua_rawgeti(L, LUA_REGISTRYINDEX, (intptr_t) handle->data); - lua_rawgeti(L, -1, 1); - lua_pushinteger(L, (intptr_t) handle->data); - lua_pushinteger(L, status); - lua_pushinteger(L, events); - int ret = execute_callback(L, 3); - /* Free callback if not recurrent or an error */ - if (ret != 0) { - if (!uv_is_closing((uv_handle_t *)handle)) { - uv_close((uv_handle_t *)handle, (uv_close_cb) event_free); - } - } -} - -static int event_sched(lua_State *L, unsigned timeout, unsigned repeat) -{ - uv_timer_t *timer = malloc(sizeof(*timer)); - if (!timer) - lua_error_p(L, "out of memory"); - - /* Start timer with the reference */ - uv_loop_t *loop = uv_default_loop(); - uv_timer_init(loop, timer); - int ret = uv_timer_start(timer, event_callback, timeout, repeat); - if (ret != 0) { - free(timer); - lua_error_p(L, "couldn't start the event"); - } - - /* Save callback and timer in registry */ - lua_newtable(L); - lua_pushvalue(L, 2); - lua_rawseti(L, -2, 1); - lua_pushpointer(L, timer); - lua_rawseti(L, -2, 2); - int ref = luaL_ref(L, LUA_REGISTRYINDEX); - - /* Save reference to the timer */ - timer->data = (void *) (intptr_t)ref; - lua_pushinteger(L, ref); - return 1; -} - -static int event_after(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n < 2 || !lua_isnumber(L, 1) || !lua_isfunction(L, 2)) - lua_error_p(L, "expected 'after(number timeout, function)'"); - - return event_sched(L, lua_tointeger(L, 1), 0); -} - -static int event_recurrent(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n < 2 || !lua_isnumber(L, 1) || lua_tointeger(L, 1) == 0 - || !lua_isfunction(L, 2)) - lua_error_p(L, "expected 'recurrent(number interval, function)'"); - - return event_sched(L, 0, lua_tointeger(L, 1)); -} - -static int event_cancel(lua_State *L) -{ - int n = lua_gettop(L); - if (n < 1 || !lua_isnumber(L, 1)) - lua_error_p(L, "expected 'cancel(number event)'"); - - /* Fetch event if it exists */ - lua_rawgeti(L, LUA_REGISTRYINDEX, lua_tointeger(L, 1)); - bool ok = lua_istable(L, -1); - - /* Close the timer */ - uv_handle_t **timer_pp = NULL; - if (ok) { - lua_rawgeti(L, -1, 2); - timer_pp = lua_touserdata(L, -1); - ok = timer_pp && *timer_pp; - /* That have been sufficient safety checks, hopefully. */ - } - if (ok && !uv_is_closing(*timer_pp)) { - uv_close(*timer_pp, (uv_close_cb)event_free); - } - lua_pushboolean(L, ok); - return 1; -} - -static int event_reschedule(lua_State *L) -{ - int n = lua_gettop(L); - if (n < 2 || !lua_isnumber(L, 1) || !lua_isnumber(L, 2)) - lua_error_p(L, "expected 'reschedule(number event, number timeout)'"); - - /* Fetch event if it exists */ - lua_rawgeti(L, LUA_REGISTRYINDEX, lua_tointeger(L, 1)); - bool ok = lua_istable(L, -1); - - /* Reschedule the timer */ - uv_handle_t **timer_pp = NULL; - if (ok) { - lua_rawgeti(L, -1, 2); - timer_pp = lua_touserdata(L, -1); - ok = timer_pp && *timer_pp; - /* That have been sufficient safety checks, hopefully. */ - } - if (ok && !uv_is_closing(*timer_pp)) { - int ret = uv_timer_start((uv_timer_t *)*timer_pp, - event_callback, lua_tointeger(L, 2), 0); - if (ret != 0) { - uv_close(*timer_pp, (uv_close_cb)event_free); - ok = false; - } - } - lua_pushboolean(L, ok); - return 1; -} - -static int event_fdwatch(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n < 2 || !lua_isnumber(L, 1) || !lua_isfunction(L, 2)) - lua_error_p(L, "expected 'socket(number fd, function)'"); - - uv_poll_t *handle = malloc(sizeof(*handle)); - if (!handle) - lua_error_p(L, "out of memory"); - - /* Start timer with the reference */ - int sock = lua_tointeger(L, 1); - uv_loop_t *loop = uv_default_loop(); - int ret = uv_poll_init(loop, handle, sock); - if (ret == 0) - ret = uv_poll_start(handle, UV_READABLE, event_fdcallback); - if (ret != 0) { - free(handle); - lua_error_p(L, "couldn't start event poller"); - } - - /* Save callback and timer in registry */ - lua_newtable(L); - lua_pushvalue(L, 2); - lua_rawseti(L, -2, 1); - lua_pushpointer(L, handle); - lua_rawseti(L, -2, 2); - int ref = luaL_ref(L, LUA_REGISTRYINDEX); - - /* Save reference to the timer */ - handle->data = (void *) (intptr_t)ref; - lua_pushinteger(L, ref); - return 1; -} - -int kr_bindings_event(lua_State *L) -{ - static const luaL_Reg lib[] = { - { "after", event_after }, - { "recurrent", event_recurrent }, - { "cancel", event_cancel }, - { "socket", event_fdwatch }, - { "reschedule", event_reschedule }, - { NULL, NULL } - }; - - luaL_register(L, "event", lib); - return 1; -} - diff --git a/daemon/bindings/event.rst b/daemon/bindings/event.rst deleted file mode 100644 index a96f299ba..000000000 --- a/daemon/bindings/event.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Timers and events reference -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The timer represents exactly the thing described in the examples - it allows you to execute closures_ -after specified time, or event recurrent events. Time is always described in milliseconds, -but there are convenient variables that you can use - ``sec, minute, hour``. -For example, ``5 * hour`` represents five hours, or 5*60*60*100 milliseconds. - -.. function:: event.after(time, function) - - :return: event id - - Execute function after the specified time has passed. - The first parameter of the callback is the event itself. - - Example: - - .. code-block:: lua - - event.after(1 * minute, function() print('Hi!') end) - -.. function:: event.recurrent(interval, function) - - :return: event id - - Execute function immediately and then periodically after each ``interval``. - - Example: - - .. code-block:: lua - - msg_count = 0 - event.recurrent(5 * sec, function(e) - msg_count = msg_count + 1 - print('Hi #'..msg_count) - end) - -.. function:: event.reschedule(event_id, timeout) - - Reschedule a running event, it has no effect on canceled events. - New events may reuse the event_id, so the behaviour is undefined if the function - is called after another event is started. - - Example: - - .. code-block:: lua - - local interval = 1 * minute - event.after(1 * minute, function (ev) - print('Good morning!') - -- Halve the interval for each iteration - interval = interval / 2 - event.reschedule(ev, interval) - end) - -.. function:: event.cancel(event_id) - - Cancel running event, it has no effect on already canceled events. - New events may reuse the event_id, so the behaviour is undefined if the function - is called after another event is started. - - Example: - - .. code-block:: lua - - e = event.after(1 * minute, function() print('Hi!') end) - event.cancel(e) - -Watch for file descriptor activity. This allows embedding other event loops or simply -firing events when a pipe endpoint becomes active. In another words, asynchronous -notifications for daemon. - -.. function:: event.socket(fd, cb) - - :param number fd: file descriptor to watch - :param cb: closure or callback to execute when fd becomes active - :return: event id - - Execute function when there is activity on the file descriptor and calls a closure - with event id as the first parameter, status as second and number of events as third. - - Example: - - .. code-block:: lua - - e = event.socket(0, function(e, status, nevents) - print('activity detected') - end) - e.cancel(e) - -Asynchronous function execution -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The `event` package provides a very basic mean for non-blocking execution - it allows running code when activity on a file descriptor is detected, and when a certain amount of time passes. It doesn't however provide an easy to use abstraction for non-blocking I/O. This is instead exposed through the `worker` package (if `cqueues` Lua package is installed in the system). - -.. function:: worker.coroutine(function) - - Start a new coroutine with given function (closure). The function can do I/O or run timers without blocking the main thread. See cqueues_ for documentation of possible operations and synchronization primitives. The main limitation is that you can't wait for a finish of a coroutine from processing layers, because it's not currently possible to suspend and resume execution of processing layers. - - Example: - - .. code-block:: lua - - worker.coroutine(function () - for i = 0, 10 do - print('executing', i) - worker.sleep(1) - end - end) - -.. function:: worker.sleep(seconds) - - Pause execution of current function (asynchronously if running inside a worker coroutine). - -Example: - -.. code-block:: lua - - function async_print(testname, sleep) - log(testname .. ': system time before sleep' .. tostring(os.time()) - worker.sleep(sleep) -- other coroutines continue execution now - log(testname .. ': system time AFTER sleep' .. tostring(os.time()) - end - - worker.coroutine(function() async_print('call #1', 5) end) - worker.coroutine(function() async_print('call #2', 3) end) - -Output from this example demonstrates that both calls to function ``async_print`` were executed asynchronously: - - -.. code-block:: none - - call #2: system time before sleep 1578065073 - call #1: system time before sleep 1578065073 - call #2: system time AFTER sleep 1578065076 - call #1: system time AFTER sleep 1578065078 - diff --git a/daemon/bindings/impl.c b/daemon/bindings/impl.c deleted file mode 100644 index 8c48df8e3..000000000 --- a/daemon/bindings/impl.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include -#include -#include -#include - - -const char * lua_table_checkindices(lua_State *L, const char *keys[]) -{ - /* Iterate over table at the top of the stack. - * http://www.lua.org/manual/5.1/manual.html#lua_next */ - for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) { - lua_pop(L, 1); /* we don't need the value */ - /* We need to copy the key, as _tostring() confuses _next(). - * https://www.lua.org/manual/5.1/manual.html#lua_tolstring */ - lua_pushvalue(L, -1); - const char *key = lua_tostring(L, -1); - if (!key) - return ""; - for (const char **k = keys; ; ++k) { - if (*k == NULL) - return key; - if (strcmp(*k, key) == 0) - break; - } - } - return NULL; -} - -/** Return table listing filenames in a given directory (ls -A). */ -static int kluautil_list_dir(lua_State *L) -{ - lua_newtable(L); // empty table even on errors - - const char *path = lua_tolstring(L, 1, NULL); - if (!path) return 1; - DIR *dir = opendir(path); - if (!dir) return 1; - - struct dirent *entry; - int lua_i = 1; - while ((entry = readdir(dir)) != NULL) { - if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) { - lua_pushstring(L, entry->d_name); - lua_rawseti(L, -2, lua_i++); - } - } - - closedir(dir); - return 1; -} - - -/* Each of these just creates the correspondingly named lua table of functions. */ -int kr_bindings_cache (lua_State *L); /* ./cache.c */ -int kr_bindings_event (lua_State *L); /* ./event.c */ -int kr_bindings_modules (lua_State *L); /* ./modules.c */ -int kr_bindings_net (lua_State *L); /* ./net.c */ -int kr_bindings_worker (lua_State *L); /* ./worker.c */ - -void kr_bindings_register(lua_State *L) -{ - kr_bindings_cache(L); - kr_bindings_event(L); - kr_bindings_modules(L); - kr_bindings_net(L); - kr_bindings_worker(L); - - /* Finally some lua utils *written in C*, not really a binding. */ - lua_register(L, "kluautil_list_dir", kluautil_list_dir); -} - -void lua_error_p(lua_State *L, const char *fmt, ...) -{ - /* Add a stack trace and throw the result as a lua error. */ - luaL_traceback(L, L, "error occurred here (config filename:lineno is at the bottom, if config is involved):", 0); - /* Push formatted custom message, prepended with "ERROR: ". */ - lua_pushliteral(L, "\nERROR: "); - { - va_list args; - va_start(args, fmt); - lua_pushvfstring(L, fmt, args); - va_end(args); - } - lua_concat(L, 3); - lua_error(L); - /* TODO: we might construct a little more friendly trace by using luaL_where(). - * In particular, in case the error happens in a function that was called - * directly from a config file (the most common case), there isn't much need - * to format the trace in this heavy way. */ -} - diff --git a/daemon/bindings/impl.h b/daemon/bindings/impl.h deleted file mode 100644 index d52275617..000000000 --- a/daemon/bindings/impl.h +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include "daemon/engine.h" -#include "daemon/worker.h" /* the_worker is often useful */ - -#include -#include -/* It may happen that include files are messed up and we're hitting a header - * e.g. from vanilla Lua. Even 5.1 won't work due to missing luaL_traceback() in . */ -#if (LUA_VERSION_NUM) != 501 || !defined(LUA_LJDIR) - #error "Incorrect Lua version in #include - LuaJIT compatible with Lua 5.1 is required" -#endif - - -/** Useful to stringify macros into error strings. */ -#define STR(s) STRINGIFY_TOKEN(s) -#define STRINGIFY_TOKEN(s) #s - - -/** Check lua table at the top of the stack for allowed keys. - * \param keys NULL-terminated array of 0-terminated strings - * \return NULL if passed or the offending string (pushed on top of lua stack) - * \note Future work: if non-NULL is returned, there's extra stuff on the lua stack. - * \note Brute-force complexity: table length * summed length of keys. - */ -const char * lua_table_checkindices(lua_State *L, const char *keys[]); - -/** If the value at the top of the stack isn't a table, make it a single-element list. */ -static inline void lua_listify(lua_State *L) -{ - if (lua_istable(L, -1)) - return; - lua_createtable(L, 1, 0); - lua_insert(L, lua_gettop(L) - 1); /* swap the top two stack elements */ - lua_pushinteger(L, 1); - lua_insert(L, lua_gettop(L) - 1); /* swap the top two stack elements */ - lua_settable(L, -3); -} - - -/** Throw a formatted lua error. - * - * The message will get prefixed by "ERROR: " and supplemented by stack trace. - * \return never! It calls lua_error(). - * - * Example: - ERROR: not a valid pin_sha256: 'a1Z/3ek=', raw length 5 instead of 32 - stack traceback: - [C]: in function 'tls_client' - /PathToPREFIX/lib/kdns_modules/policy.lua:175: in function 'TLS_FORWARD' - /PathToConfig.lua:46: in main chunk - */ -KR_PRINTF(2) KR_NORETURN KR_COLD -void lua_error_p(lua_State *L, const char *fmt, ...); -/** @internal Annotate for static checkers. */ -KR_NORETURN int lua_error(lua_State *L); - -/** Shortcut for common case. */ -static inline void lua_error_maybe(lua_State *L, int err) -{ - if (err) lua_error_p(L, "%s", kr_strerror(err)); -} - -static inline int execute_callback(lua_State *L, int argc) -{ - int ret = engine_pcall(L, argc); - if (ret != 0) { - kr_log_error(SYSTEM, "error: %s\n", lua_tostring(L, -1)); - } - /* Clear the stack, there may be event a/o anything returned */ - lua_settop(L, 0); - return ret; -} - -/** Push a pointer as heavy/full userdata. - * - * It's useful as a replacement of lua_pushlightuserdata(), - * but note that it behaves differently in lua (converts to pointer-to-pointer). - */ -static inline void lua_pushpointer(lua_State *L, void *p) -{ - void **addr = lua_newuserdata(L, sizeof(void *)); - kr_require(addr); - memcpy(addr, &p, sizeof(void *)); -} - diff --git a/daemon/bindings/modules.c b/daemon/bindings/modules.c deleted file mode 100644 index 28709e420..000000000 --- a/daemon/bindings/modules.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/bindings/impl.h" - - -/** List loaded modules */ -static int mod_list(lua_State *L) -{ - const module_array_t * const modules = engine_modules(); - lua_newtable(L); - for (unsigned i = 0; i < modules->len; ++i) { - struct kr_module *module = modules->at[i]; - lua_pushstring(L, module->name); - lua_rawseti(L, -2, i + 1); - } - return 1; -} - -/** Load module. */ -static int mod_load(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n != 1 || !lua_isstring(L, 1)) - lua_error_p(L, "expected 'load(string name)'"); - /* Parse precedence declaration */ - char *declaration = strdup(lua_tostring(L, 1)); - if (!declaration) - return kr_error(ENOMEM); - const char *name = strtok(declaration, " "); - const char *precedence = strtok(NULL, " "); - const char *ref = strtok(NULL, " "); - /* Load engine module */ - int ret = engine_register(name, precedence, ref); - free(declaration); - if (ret != 0) { - if (ret == kr_error(EIDRM)) { - lua_error_p(L, "referenced module not found"); - } else { - lua_error_maybe(L, ret); - } - } - - lua_pushboolean(L, 1); - return 1; -} - -/** Unload module. */ -static int mod_unload(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n != 1 || !lua_isstring(L, 1)) - lua_error_p(L, "expected 'unload(string name)'"); - /* Unload engine module */ - int ret = engine_unregister(lua_tostring(L, 1)); - lua_error_maybe(L, ret); - - lua_pushboolean(L, 1); - return 1; -} - -int kr_bindings_modules(lua_State *L) -{ - static const luaL_Reg lib[] = { - { "list", mod_list }, - { "load", mod_load }, - { "unload", mod_unload }, - { NULL, NULL } - }; - - luaL_register(L, "modules", lib); - return 1; -} - diff --git a/daemon/bindings/modules.rst b/daemon/bindings/modules.rst deleted file mode 100644 index 09df6ff14..000000000 --- a/daemon/bindings/modules.rst +++ /dev/null @@ -1,43 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Modules -======= - -Knot Resolver functionality consists of separate modules, which allow you -to mix-and-match features you need without slowing down operation -by features you do not use. - -This practically means that you need to load module before using features contained in it, for example: - -.. code-block:: lua - - -- load module and make dnstap features available - modules.load('dnstap') - -- configure dnstap features - dnstap.config({ - socket_path = "/tmp/dnstap.sock" - }) - -Obviously ordering matters, so you have to load module first and configure it after it is loaded. - -Here is full reference manual for module configuration: - - -.. function:: modules.list() - - :return: List of loaded modules. - -.. function:: modules.load(name) - - :param string name: Module name, e.g. "hints" - :return: ``true`` if modules was (or already is) loaded, error otherwise. - - Load a module by name. - -.. function:: modules.unload(name) - - :param string name: Module name, e.g. "detect_time_jump" - :return: ``true`` if modules was unloaded, error otherwise. - - Unload a module by name. This is useful for unloading modules loaded by default, mainly for debugging purposes. - diff --git a/daemon/bindings/net.c b/daemon/bindings/net.c deleted file mode 100644 index d278ed175..000000000 --- a/daemon/bindings/net.c +++ /dev/null @@ -1,1244 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/bindings/impl.h" - -#include "contrib/base64.h" -#include "contrib/cleanup.h" -#include "daemon/network.h" -#include "daemon/tls.h" -#include "lib/utils.h" - -#include - -#define PROXY_DATA_STRLEN (INET6_ADDRSTRLEN + 1 + 3 + 1) - -/** Table and next index on top of stack -> append entries for given endpoint_array_t. */ -static int net_list_add(const char *b_key, uint32_t key_len, trie_val_t *val, void *ext) -{ - endpoint_array_t *ep_array = *val; - lua_State *L = (lua_State *)ext; - lua_Integer i = lua_tointeger(L, -1); - for (int j = 0; j < ep_array->len; ++j) { - struct endpoint *ep = &ep_array->at[j]; - lua_newtable(L); // connection tuple - - if (ep->flags.kind) { - lua_pushstring(L, ep->flags.kind); - } else if (ep->flags.http && ep->flags.tls) { - lua_pushliteral(L, "doh2"); - } else if (ep->flags.tls) { - lua_pushliteral(L, "tls"); - } else if (ep->flags.xdp) { - lua_pushliteral(L, "xdp"); - } else { - lua_pushliteral(L, "dns"); - } - lua_setfield(L, -2, "kind"); - - lua_newtable(L); // "transport" table - - switch (ep->family) { - case AF_INET: - lua_pushliteral(L, "inet4"); - break; - case AF_INET6: - lua_pushliteral(L, "inet6"); - break; - case AF_XDP: - lua_pushliteral(L, "inet4+inet6"); // both UDP ports at once - break; - case AF_UNIX: - lua_pushliteral(L, "unix"); - break; - default: - kr_assert(false); - lua_pushliteral(L, "invalid"); - } - lua_setfield(L, -2, "family"); - - const char *ip_str_const = network_endpoint_key_str((struct endpoint_key *) b_key); - kr_require(ip_str_const); - auto_free char *ip_str = strdup(ip_str_const); - kr_require(ip_str); - char *hm = strchr(ip_str, '#'); - if (hm) /* Omit port */ - *hm = '\0'; - lua_pushstring(L, ip_str); - - if (ep->family == AF_INET || ep->family == AF_INET6) { - lua_setfield(L, -2, "ip"); - lua_pushboolean(L, ep->flags.freebind); - lua_setfield(L, -2, "freebind"); - } else if (ep->family == AF_UNIX) { - lua_setfield(L, -2, "path"); - } else if (ep->family == AF_XDP) { - lua_setfield(L, -2, "interface"); - lua_pushinteger(L, ep->nic_queue); - lua_setfield(L, -2, "nic_queue"); - } - - if (ep->family != AF_UNIX) { - lua_pushinteger(L, ep->port); - lua_setfield(L, -2, "port"); - } - - if (ep->family == AF_UNIX) { - lua_pushliteral(L, "stream"); - } else if (ep->flags.sock_type == SOCK_STREAM) { - lua_pushliteral(L, "tcp"); - } else if (ep->flags.sock_type == SOCK_DGRAM) { - lua_pushliteral(L, "udp"); - } else { - kr_assert(false); - lua_pushliteral(L, "invalid"); - } - lua_setfield(L, -2, "protocol"); - - lua_setfield(L, -2, "transport"); - - lua_settable(L, -3); - i++; - lua_pushinteger(L, i); - } - return kr_ok(); -} - -/** List active endpoints. */ -static int net_list(lua_State *L) -{ - lua_newtable(L); - lua_pushinteger(L, 1); - trie_apply_with_key(the_network->endpoints, net_list_add, L); - lua_pop(L, 1); - return 1; -} - -/** Listen on an address list represented by the top of lua stack. - * \note flags.kind ownership is not transferred, and flags.sock_type doesn't make sense - * \return success */ -static bool net_listen_addrs(lua_State *L, int port, endpoint_flags_t flags, int16_t nic_queue) -{ - if (kr_fails_assert(flags.xdp || nic_queue == -1)) - return false; - - /* Case: table with 'addr' field; only follow that field directly. */ - lua_getfield(L, -1, "addr"); - if (!lua_isnil(L, -1)) { - lua_replace(L, -2); - } else { - lua_pop(L, 1); - } - - /* Case: string, representing a single address. */ - const char *str = lua_tostring(L, -1); - if (str != NULL) { - const bool is_unix = str[0] == '/'; - int ret = 0; - if (!flags.kind && !flags.tls) { /* normal UDP or XDP */ - flags.sock_type = SOCK_DGRAM; - ret = network_listen(str, port, nic_queue, flags); - } - if (!flags.kind && !flags.xdp && ret == 0) { /* common for TCP, DoT and DoH (v2) */ - flags.sock_type = SOCK_STREAM; - ret = network_listen(str, port, nic_queue, flags); - } - if (flags.kind) { - flags.kind = strdup(flags.kind); - flags.sock_type = SOCK_STREAM; /* TODO: allow to override this? */ - ret = network_listen(str, (is_unix ? 0 : port), nic_queue, flags); - } - if (ret == 0) return true; /* success */ - - if (is_unix) { - kr_log_error(NETWORK, "bind to '%s' (UNIX): %s\n", - str, kr_strerror(ret)); - } else if (flags.xdp) { - const char *err_str = knot_strerror(ret); - if (ret == KNOT_ELIMIT) { - if ((strcmp(str, "::") == 0 || strcmp(str, "0.0.0.0") == 0)) { - err_str = "wildcard addresses not supported with XDP"; - } else { - err_str = "address matched multiple network interfaces"; - } - } else if (ret == kr_error(ENODEV)) { - err_str = "invalid address or interface name"; - } - /* Notable OK strerror: KNOT_EPERM Operation not permitted */ - - if (nic_queue == -1) { - kr_log_error(NETWORK, "failed to initialize XDP for '%s@%d'" - " (nic_queue = ): %s\n", - str, port, err_str); - } else { - kr_log_error(NETWORK, "failed to initialize XDP for '%s@%d'" - " (nic_queue = %d): %s\n", - str, port, nic_queue, err_str); - } - - } else { - const char *stype = flags.sock_type == SOCK_DGRAM ? "UDP" : "TCP"; - kr_log_error(NETWORK, "bind to '%s@%d' (%s): %s\n", - str, port, stype, kr_strerror(ret)); - } - return false; /* failure */ - } - - /* Last case: table where all entries are added recursively. */ - if (!lua_istable(L, -1)) - lua_error_p(L, "bad type for address"); - lua_pushnil(L); - while (lua_next(L, -2)) { - if (!net_listen_addrs(L, port, flags, nic_queue)) - return false; - lua_pop(L, 1); - } - return true; -} - -static bool table_get_flag(lua_State *L, int index, const char *key, bool def) -{ - bool result = def; - lua_getfield(L, index, key); - if (lua_isboolean(L, -1)) { - result = lua_toboolean(L, -1); - } - lua_pop(L, 1); - return result; -} - -/** Listen on endpoint. */ -static int net_listen(lua_State *L) -{ - /* Check parameters */ - int n = lua_gettop(L); - if (n < 1 || n > 3) { - lua_error_p(L, "expected one to three arguments; usage:\n" - "net.listen(addresses, [port = " STR(KR_DNS_PORT) - ", flags = {tls = (port == " STR(KR_DNS_TLS_PORT) ")}])\n"); - } - - int port = KR_DNS_PORT; - if (n > 1) { - if (lua_isnumber(L, 2)) { - port = lua_tointeger(L, 2); - } else - if (!lua_isnil(L, 2)) { - lua_error_p(L, "wrong type of second parameter (port number)"); - } - } - - endpoint_flags_t flags = { 0 }; - if (port == KR_DNS_TLS_PORT) { - flags.tls = true; - } else if (port == KR_DNS_DOH_PORT) { - flags.http = flags.tls = true; - } - - int16_t nic_queue = -1; - if (n > 2 && !lua_isnil(L, 3)) { - if (!lua_istable(L, 3)) - lua_error_p(L, "wrong type of third parameter (table expected)"); - flags.tls = table_get_flag(L, 3, "tls", flags.tls); - flags.freebind = table_get_flag(L, 3, "freebind", false); - - lua_getfield(L, 3, "kind"); - const char *k = lua_tostring(L, -1); - if (k && strcasecmp(k, "dns") == 0) { - flags.tls = flags.http = false; - } else if (k && strcasecmp(k, "xdp") == 0) { - flags.tls = flags.http = false; - flags.xdp = true; - } else if (k && strcasecmp(k, "tls") == 0) { - flags.tls = true; - flags.http = false; - } else if (k && strcasecmp(k, "doh2") == 0) { - flags.tls = flags.http = true; - } else if (k) { - flags.kind = k; - if (strcasecmp(k, "doh") == 0) { - lua_error_p(L, "kind=\"doh\" was renamed to kind=\"doh_legacy\", switch to the new implementation with kind=\"doh2\" or update your config"); - } - } - - lua_getfield(L, 3, "nic_queue"); - if (lua_isnumber(L, -1)) { - if (flags.xdp) { - nic_queue = lua_tointeger(L, -1); - } else { - lua_error_p(L, "nic_queue only supported with kind = 'xdp'"); - } - } else if (!lua_isnil(L, -1)) { - lua_error_p(L, "wrong value of nic_queue (integer expected)"); - } - } - - /* Memory management of `kind` string is difficult due to longjmp etc. - * Pop will unreference the lua value, so we store it on C stack instead (!) */ - const int kind_alen = flags.kind ? strlen(flags.kind) + 1 : 1 /* 0 length isn't C standard */; - char kind_buf[kind_alen]; - if (flags.kind) { - memcpy(kind_buf, flags.kind, kind_alen); - flags.kind = kind_buf; - } - - /* Now focus on the first argument. */ - lua_settop(L, 1); - if (!net_listen_addrs(L, port, flags, nic_queue)) - lua_error_p(L, "net.listen() failed to bind"); - lua_pushboolean(L, true); - return 1; -} - -/** Prints the specified `data` into the specified `dst` buffer. */ -static char *proxy_data_to_string(int af, const struct net_proxy_data *data, - char *dst, size_t size) -{ - kr_assert(size >= PROXY_DATA_STRLEN); - const void *in_addr = (af == AF_INET) - ? (void *) &data->addr.ip4 - : (void *) &data->addr.ip6; - char *cur = dst; - - const char *ret = inet_ntop(af, in_addr, cur, size); - if (!ret) - return NULL; - - cur += strlen(cur); /*< advance cursor to after the address */ - *(cur++) = '/'; - int masklen = snprintf(cur, 3 + 1, "%u", data->netmask); - cur[masklen] = '\0'; - return dst; -} - -/** Put all IP addresses from `trie` into the table at the top of the Lua stack. - * For each address, increment the integer at `i`. All addresses in `trie` must - * be from the specified `family`. */ -static void net_proxy_addr_put(lua_State *L, int family, trie_t *trie, int *i) -{ - char addrbuf[PROXY_DATA_STRLEN]; - const char *addr; - trie_it_t *it; - for (it = trie_it_begin(trie); !trie_it_finished(it); trie_it_next(it)) { - lua_pushinteger(L, *i); - struct net_proxy_data *data = *trie_it_val(it); - addr = proxy_data_to_string(family, data, - addrbuf, sizeof(addrbuf)); - lua_pushstring(L, addr); - lua_settable(L, -3); - *i += 1; - } - trie_it_free(it); -} - -/** Allow PROXYv2 headers for IP address. */ -static int net_proxy_allowed(lua_State *L) -{ - int n = lua_gettop(L); - int i = 1; - const char *addr; - - /* Return current state */ - if (n == 0) { - lua_newtable(L); - i = 1; - - if (the_network->proxy_all4) { - lua_pushinteger(L, i); - lua_pushstring(L, "0.0.0.0/0"); - lua_settable(L, -3); - i += 1; - } else { - net_proxy_addr_put(L, AF_INET, the_network->proxy_addrs4, &i); - } - - if (the_network->proxy_all6) { - lua_pushinteger(L, i); - lua_pushstring(L, "::/0"); - lua_settable(L, -3); - i += 1; - } else { - net_proxy_addr_put(L, AF_INET6, the_network->proxy_addrs6, &i); - } - - return 1; - } - - if (n != 1) - lua_error_p(L, "net.proxy_allowed() takes one parameter (string or table)"); - - if (!lua_istable(L, 1) && !lua_isstring(L, 1)) - lua_error_p(L, "net.proxy_allowed() argument must be string or table"); - - /* Reset allowed proxy addresses */ - network_proxy_reset(); - - /* Add new proxy addresses */ - if (lua_istable(L, 1)) { - for (i = 1; !lua_isnil(L, -1); i++) { - lua_pushinteger(L, i); - lua_gettable(L, 1); - if (lua_isnil(L, -1)) /* missing value - end iteration */ - break; - if (!lua_isstring(L, -1)) - lua_error_p(L, "net.proxy_allowed() argument may only contain strings"); - addr = lua_tostring(L, -1); - int ret = network_proxy_allow(addr); - if (ret) - lua_error_p(L, "invalid argument"); - } - } else if (lua_isstring(L, 1)) { - addr = lua_tostring(L, 1); - int ret = network_proxy_allow(addr); - if (ret) - lua_error_p(L, "invalid argument"); - } - - return 0; -} - -/** Close endpoint. */ -static int net_close(lua_State *L) -{ - /* Check parameters */ - const int n = lua_gettop(L); - bool ok = (n == 1 || n == 2) && lua_isstring(L, 1); - const char *addr = lua_tostring(L, 1); - int port; - if (ok && (n < 2 || lua_isnil(L, 2))) { - port = -1; - } else if (ok) { - ok = lua_isnumber(L, 2); - port = lua_tointeger(L, 2); - ok = ok && port >= 0 && port <= 65535; - } - if (!ok) - lua_error_p(L, "expected 'close(string addr, [number port])'"); - - int ret = network_close(addr, port); - lua_pushboolean(L, ret == 0); - return 1; -} - -/** List available interfaces. */ -static int net_interfaces(lua_State *L) -{ - /* Retrieve interface list */ - int count = 0; - char buf[INET6_ADDRSTRLEN]; /* https://tools.ietf.org/html/rfc4291 */ - uv_interface_address_t *info = NULL; - uv_interface_addresses(&info, &count); - lua_newtable(L); - for (int i = 0; i < count; ++i) { - uv_interface_address_t iface = info[i]; - lua_getfield(L, -1, iface.name); - if (lua_isnil(L, -1)) { - lua_pop(L, 1); - lua_newtable(L); - } - - /* Address */ - lua_getfield(L, -1, "addr"); - if (lua_isnil(L, -1)) { - lua_pop(L, 1); - lua_newtable(L); - } - if (iface.address.address4.sin_family == AF_INET) { - uv_ip4_name(&iface.address.address4, buf, sizeof(buf)); - } else if (iface.address.address4.sin_family == AF_INET6) { - uv_ip6_name(&iface.address.address6, buf, sizeof(buf)); - } else { - buf[0] = '\0'; - } - - if (kr_sockaddr_link_local((struct sockaddr *) &iface.address)) { - /* Link-local IPv6: add %interface prefix */ - auto_free char *str = NULL; - int ret = asprintf(&str, "%s%%%s", buf, iface.name); - kr_assert(ret > 0); - lua_pushstring(L, str); - } else { - lua_pushstring(L, buf); - } - - lua_rawseti(L, -2, lua_objlen(L, -2) + 1); - lua_setfield(L, -2, "addr"); - - /* Hardware address. */ - char *p = buf; - for (int k = 0; k < sizeof(iface.phys_addr); ++k) { - sprintf(p, "%.2x:", (uint8_t)iface.phys_addr[k]); - p += 3; - } - p[-1] = '\0'; - lua_pushstring(L, buf); - lua_setfield(L, -2, "mac"); - - /* Push table */ - lua_setfield(L, -2, iface.name); - } - uv_free_interface_addresses(info, count); - - return 1; -} - -/** Set UDP maximum payload size. */ -static int net_bufsize(lua_State *L) -{ - const int argc = lua_gettop(L); - if (argc == 0) { - lua_pushinteger(L, knot_edns_get_payload(the_resolver->downstream_opt_rr)); - lua_pushinteger(L, knot_edns_get_payload(the_resolver->upstream_opt_rr)); - return 2; - } - - if (argc == 1) { - int bufsize = lua_tointeger(L, 1); - if (bufsize < 512 || bufsize > UINT16_MAX) - lua_error_p(L, "bufsize must be within <512, " STR(UINT16_MAX) ">"); - knot_edns_set_payload(the_resolver->downstream_opt_rr, (uint16_t)bufsize); - knot_edns_set_payload(the_resolver->upstream_opt_rr, (uint16_t)bufsize); - } else if (argc == 2) { - int bufsize_downstream = lua_tointeger(L, 1); - int bufsize_upstream = lua_tointeger(L, 2); - if (bufsize_downstream < 512 || bufsize_upstream < 512 - || bufsize_downstream > UINT16_MAX || bufsize_upstream > UINT16_MAX) { - lua_error_p(L, "bufsize must be within <512, " STR(UINT16_MAX) ">"); - } - knot_edns_set_payload(the_resolver->downstream_opt_rr, (uint16_t)bufsize_downstream); - knot_edns_set_payload(the_resolver->upstream_opt_rr, (uint16_t)bufsize_upstream); - } - return 0; -} - -/** Set TCP pipelining size. */ -static int net_pipeline(lua_State *L) -{ - if (!the_worker) { - return 0; - } - if (!lua_isnumber(L, 1)) { - lua_pushinteger(L, the_worker->tcp_pipeline_max); - return 1; - } - int len = lua_tointeger(L, 1); - if (len < 0 || len > UINT16_MAX) - lua_error_p(L, "tcp_pipeline must be within <0, " STR(UINT16_MAX) ">"); - the_worker->tcp_pipeline_max = len; - lua_pushinteger(L, len); - return 1; -} - -static int net_tls(lua_State *L) -{ - if (kr_fails_assert(the_network)) { - return 0; - } - - /* Only return current credentials. */ - if (lua_gettop(L) == 0) { - /* No credentials configured yet. */ - if (!the_network->tls_credentials) { - return 0; - } - lua_newtable(L); - lua_pushstring(L, the_network->tls_credentials->tls_cert); - lua_setfield(L, -2, "cert_file"); - lua_pushstring(L, the_network->tls_credentials->tls_key); - lua_setfield(L, -2, "key_file"); - return 1; - } - - if ((lua_gettop(L) != 2) || !lua_isstring(L, 1) || !lua_isstring(L, 2)) - lua_error_p(L, "net.tls takes two parameters: (\"cert_file\", \"key_file\")"); - - int r = tls_certificate_set(lua_tostring(L, 1), lua_tostring(L, 2)); - lua_error_maybe(L, r); - - lua_pushboolean(L, true); - return 1; -} - -/** Configure HTTP headers for DoH requests. */ -static int net_doh_headers(lua_State *L) -{ - doh_headerlist_t *headers = &the_worker->doh_qry_headers; - int i; - const char *name; - - /* Only return current configuration. */ - if (lua_gettop(L) == 0) { - lua_newtable(L); - for (i = 0; i < headers->len; i++) { - lua_pushinteger(L, i + 1); - name = headers->at[i]; - lua_pushlstring(L, name, strlen(name)); - lua_settable(L, -3); - } - return 1; - } - - if (lua_gettop(L) != 1) - lua_error_p(L, "net.doh_headers() takes one parameter (string or table)"); - - if (!lua_istable(L, 1) && !lua_isstring(L, 1)) - lua_error_p(L, "net.doh_headers() argument must be string or table"); - - /* Clear existing headers. */ - for (i = 0; i < headers->len; i++) - free((void *)headers->at[i]); - array_clear(*headers); - - if (lua_istable(L, 1)) { - for (i = 1; !lua_isnil(L, -1); i++) { - lua_pushinteger(L, i); - lua_gettable(L, 1); - if (lua_isnil(L, -1)) /* missing value - end iteration */ - break; - if (!lua_isstring(L, -1)) - lua_error_p(L, "net.doh_headers() argument table can only contain strings"); - name = lua_tostring(L, -1); - array_push(*headers, strdup(name)); - } - } else if (lua_isstring(L, 1)) { - name = lua_tostring(L, 1); - array_push(*headers, strdup(name)); - } - - return 0; -} - -/** Return a lua table with TLS authentication parameters. - * The format is the same as passed to policy.TLS_FORWARD(); - * more precisely, it's in a compatible canonical form. */ -static int tls_params2lua(lua_State *L, trie_t *params) -{ - lua_newtable(L); - if (!params) /* Allowed special case. */ - return 1; - trie_it_t *it; - size_t list_index = 0; - for (it = trie_it_begin(params); !trie_it_finished(it); trie_it_next(it)) { - /* Prepare table for the current address - * and its index in the returned list. */ - lua_pushinteger(L, ++list_index); - lua_createtable(L, 0, 2); - - /* Get the "addr#port" string... */ - size_t ia_len; - const char *key = trie_it_key(it, &ia_len); - int af = AF_UNSPEC; - if (ia_len == 2 + sizeof(struct in_addr)) { - af = AF_INET; - } else if (ia_len == 2 + sizeof(struct in6_addr)) { - af = AF_INET6; - } - if (kr_fails_assert(key && af != AF_UNSPEC)) - lua_error_p(L, "internal error: bad IP address"); - uint16_t port; - memcpy(&port, key, sizeof(port)); - port = ntohs(port); - const char *ia = key + sizeof(port); - char str[INET6_ADDRSTRLEN + 1 + 5 + 1]; - size_t len = sizeof(str); - if (kr_fails_assert(kr_ntop_str(af, ia, port, str, &len) == kr_ok())) - lua_error_p(L, "internal error: bad IP address conversion"); - /* ...and push it as [1]. */ - lua_pushinteger(L, 1); - lua_pushlstring(L, str, len - 1 /* len includes '\0' */); - lua_settable(L, -3); - - const tls_client_param_t *e = *trie_it_val(it); - if (kr_fails_assert(e)) - lua_error_p(L, "internal problem - NULL entry for %s", str); - - /* .hostname = */ - if (e->hostname) { - lua_pushstring(L, e->hostname); - lua_setfield(L, -2, "hostname"); - } - - /* .ca_files = */ - if (e->ca_files.len) { - lua_createtable(L, e->ca_files.len, 0); - for (size_t i = 0; i < e->ca_files.len; ++i) { - lua_pushinteger(L, i + 1); - lua_pushstring(L, e->ca_files.at[i]); - lua_settable(L, -3); - } - lua_setfield(L, -2, "ca_files"); - } - - /* .pin_sha256 = ... ; keep sane indentation via goto. */ - if (!e->pins.len) goto no_pins; - lua_createtable(L, e->pins.len, 0); - for (size_t i = 0; i < e->pins.len; ++i) { - uint8_t pin_base64[TLS_SHA256_BASE64_BUFLEN]; - int err = kr_base64_encode(e->pins.at[i], TLS_SHA256_RAW_LEN, - pin_base64, sizeof(pin_base64)); - if (kr_fails_assert(err >= 0)) - lua_error_p(L, - "internal problem when converting pin_sha256: %s", - kr_strerror(err)); - lua_pushinteger(L, i + 1); - lua_pushlstring(L, (const char *)pin_base64, err); - /* pin_base64 isn't 0-terminated ^^^ */ - lua_settable(L, -3); - } - lua_setfield(L, -2, "pin_sha256"); - - no_pins:/* .insecure = */ - if (e->insecure) { - lua_pushboolean(L, true); - lua_setfield(L, -2, "insecure"); - } - /* Now the whole table is pushed atop the returned list. */ - lua_settable(L, -3); - } - trie_it_free(it); - return 1; -} - -static inline int cmp_sha256(const void *p1, const void *p2) -{ - return memcmp(*(char * const *)p1, *(char * const *)p2, TLS_SHA256_RAW_LEN); -} -static int net_tls_client(lua_State *L) -{ - /* TODO idea: allow starting the lua table with *multiple* IP targets, - * meaning the authentication config should be applied to each. - */ - if (lua_gettop(L) == 0) - return tls_params2lua(L, the_network->tls_client_params); - /* Various basic sanity-checking. */ - if (lua_gettop(L) != 1 || !lua_istable(L, 1)) - lua_error_maybe(L, EINVAL); - /* check that only allowed keys are present */ - { - const char *bad_key = lua_table_checkindices(L, (const char *[]) - { "1", "hostname", "ca_file", "pin_sha256", "insecure", "tls", NULL }); - if (bad_key) - lua_error_p(L, "found unexpected key '%s'", bad_key); - } - - /**** Phase 1: get the parameter into a C struct, incl. parse of CA files, - * regardless of the address-pair having an entry already. */ - - tls_client_param_t *newcfg = tls_client_param_new(); - if (!newcfg) - lua_error_p(L, "out of memory or something like that :-/"); - /* Shortcut for cleanup actions needed from now on. */ - #define ERROR(...) do { \ - free(newcfg); \ - lua_error_p(L, __VA_ARGS__); \ - } while (false) - - /* .hostname - always accepted. */ - lua_getfield(L, 1, "hostname"); - if (!lua_isnil(L, -1)) { - const char *hn_str = lua_tostring(L, -1); - /* Convert to lower-case dname and back, for checking etc. */ - knot_dname_t dname[KNOT_DNAME_MAXLEN]; - if (!hn_str || !knot_dname_from_str(dname, hn_str, sizeof(dname))) - ERROR("invalid hostname"); - knot_dname_to_lower(dname); - char *h = knot_dname_to_str_alloc(dname); - if (!h) - ERROR("%s", kr_strerror(ENOMEM)); - /* Strip the final dot produced by knot_dname_*() */ - h[strlen(h) - 1] = '\0'; - newcfg->hostname = h; - } - lua_pop(L, 1); - - /* .ca_file - it can be a list of paths, contrary to the name. */ - bool has_ca_file = false; - lua_getfield(L, 1, "ca_file"); - if (!lua_isnil(L, -1)) { - if (!newcfg->hostname) - ERROR("missing hostname but specifying ca_file"); - lua_listify(L); - array_init(newcfg->ca_files); /*< placate apparently confused scan-build */ - if (array_reserve(newcfg->ca_files, lua_objlen(L, -1)) != 0) /*< optim. */ - ERROR("%s", kr_strerror(ENOMEM)); - /* Iterate over table at the top of the stack. - * http://www.lua.org/manual/5.1/manual.html#lua_next */ - for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) { - has_ca_file = true; /* deferred here so that {} -> false */ - const char *ca_file = lua_tostring(L, -1); - if (!ca_file) - ERROR("ca_file contains a non-string"); - /* Let gnutls process it immediately, so garbage gets detected. */ - int ret = gnutls_certificate_set_x509_trust_file( - newcfg->credentials, ca_file, GNUTLS_X509_FMT_PEM); - if (ret < 0) { - ERROR("failed to import certificate file '%s': %s - %s\n", - ca_file, gnutls_strerror_name(ret), - gnutls_strerror(ret)); - } else { - kr_log_debug(TLSCLIENT, "imported %d certs from file '%s'\n", - ret, ca_file); - } - - ca_file = strdup(ca_file); - if (!ca_file || array_push(newcfg->ca_files, ca_file) < 0) - ERROR("%s", kr_strerror(ENOMEM)); - } - /* Sort the strings for easier comparison later. */ - if (newcfg->ca_files.len) { - qsort(&newcfg->ca_files.at[0], newcfg->ca_files.len, - sizeof(newcfg->ca_files.at[0]), strcmp_p); - } - } - lua_pop(L, 1); - - /* .pin_sha256 */ - lua_getfield(L, 1, "pin_sha256"); - if (!lua_isnil(L, -1)) { - if (has_ca_file) - ERROR("mixing pin_sha256 with ca_file is not supported"); - lua_listify(L); - array_init(newcfg->pins); /*< placate apparently confused scan-build */ - if (array_reserve(newcfg->pins, lua_objlen(L, -1)) != 0) /*< optim. */ - ERROR("%s", kr_strerror(ENOMEM)); - /* Iterate over table at the top of the stack. */ - for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) { - const char *pin = lua_tostring(L, -1); - if (!pin) - ERROR("pin_sha256 is not a string"); - uint8_t *pin_raw = malloc(TLS_SHA256_RAW_LEN); - /* Push the string early to simplify error processing. */ - if (kr_fails_assert(pin_raw && array_push(newcfg->pins, pin_raw) >= 0)) { - free(pin_raw); - ERROR("%s", kr_strerror(ENOMEM)); - } - int ret = kr_base64_decode((const uint8_t *)pin, strlen(pin), - pin_raw, TLS_SHA256_RAW_LEN + 8); - if (ret < 0) { - ERROR("not a valid pin_sha256: '%s' (length %d), %s\n", - pin, (int)strlen(pin), knot_strerror(ret)); - } else if (ret != TLS_SHA256_RAW_LEN) { - ERROR("not a valid pin_sha256: '%s', " - "raw length %d instead of " - STR(TLS_SHA256_RAW_LEN)"\n", - pin, ret); - } - } - /* Sort the raw strings for easier comparison later. */ - if (newcfg->pins.len) { - qsort(&newcfg->pins.at[0], newcfg->pins.len, - sizeof(newcfg->pins.at[0]), cmp_sha256); - } - } - lua_pop(L, 1); - - /* .insecure */ - lua_getfield(L, 1, "insecure"); - if (lua_isnil(L, -1)) { - if (!newcfg->hostname && !newcfg->pins.len) - ERROR("no way to authenticate and not set as insecure"); - } else if (lua_isboolean(L, -1) && lua_toboolean(L, -1)) { - newcfg->insecure = true; - if (has_ca_file || newcfg->pins.len) - ERROR("set as insecure but provided authentication config"); - } else { - ERROR("incorrect value in the 'insecure' field"); - } - lua_pop(L, 1); - - /* Init CAs from system trust store, if needed. */ - if (!newcfg->insecure && !newcfg->pins.len && !has_ca_file) { - int ret = gnutls_certificate_set_x509_system_trust(newcfg->credentials); - if (ret <= 0) { - ERROR("failed to use system CA certificate store: %s", - ret ? gnutls_strerror(ret) : kr_strerror(ENOENT)); - } else { - kr_log_debug(TLSCLIENT, "imported %d certs from system store\n", - ret); - } - } - #undef ERROR - - /**** Phase 2: deal with the C authentication "table". */ - /* Parse address and port. */ - lua_pushinteger(L, 1); - lua_gettable(L, 1); - const char *addr_str = lua_tostring(L, -1); - if (!addr_str) - lua_error_p(L, "address is not a string"); - char buf[INET6_ADDRSTRLEN + 1]; - uint16_t port = 853; - const struct sockaddr *addr = NULL; - if (kr_straddr_split(addr_str, buf, &port) == kr_ok()) - addr = kr_straddr_socket(buf, port, NULL); - /* Add newcfg into the C map, saving the original into oldcfg. */ - if (!addr) - lua_error_p(L, "address '%s' could not be converted", addr_str); - tls_client_param_t **oldcfgp = tls_client_param_getptr( - &the_network->tls_client_params, addr, true); - free_const(addr); - if (!oldcfgp) - lua_error_p(L, "internal error when extending tls_client_params map"); - tls_client_param_t *oldcfg = *oldcfgp; - *oldcfgp = newcfg; /* replace old config in trie with the new one */ - /* If there was no original entry, it's easy! */ - if (!oldcfg) - return 0; - - /* Check for equality (newcfg vs. oldcfg), and print a warning if not equal.*/ - const bool ok_h = (!newcfg->hostname && !oldcfg->hostname) - || (newcfg->hostname && oldcfg->hostname && strcmp(newcfg->hostname, oldcfg->hostname) == 0); - bool ok_ca = newcfg->ca_files.len == oldcfg->ca_files.len; - for (int i = 0; ok_ca && i < newcfg->ca_files.len; ++i) - ok_ca = strcmp(newcfg->ca_files.at[i], oldcfg->ca_files.at[i]) == 0; - bool ok_pins = newcfg->pins.len == oldcfg->pins.len; - for (int i = 0; ok_pins && i < newcfg->pins.len; ++i) - ok_ca = memcmp(newcfg->pins.at[i], oldcfg->pins.at[i], TLS_SHA256_RAW_LEN) == 0; - const bool ok_insecure = newcfg->insecure == oldcfg->insecure; - if (!(ok_h && ok_ca && ok_pins && ok_insecure)) { - kr_log_warning(TLSCLIENT, - "warning: re-defining TLS authentication parameters for %s\n", - addr_str); - } - tls_client_param_unref(oldcfg); - return 0; -} - -int net_tls_client_clear(lua_State *L) -{ - /* One parameter: address -> convert it to a struct sockaddr. */ - if (lua_gettop(L) != 1 || !lua_isstring(L, 1)) - lua_error_p(L, "net.tls_client_clear() requires one parameter (\"address\")"); - const char *addr_str = lua_tostring(L, 1); - char buf[INET6_ADDRSTRLEN + 1]; - uint16_t port = 853; - const struct sockaddr *addr = NULL; - if (kr_straddr_split(addr_str, buf, &port) == kr_ok()) - addr = kr_straddr_socket(buf, port, NULL); - if (!addr) - lua_error_p(L, "invalid IP address"); - /* Do the actual removal. */ - int r = tls_client_param_remove(the_network->tls_client_params, addr); - free_const(addr); - lua_error_maybe(L, r); - lua_pushboolean(L, true); - return 1; -} - -static int net_tls_padding(lua_State *L) -{ - /* Only return current padding. */ - if (lua_gettop(L) == 0) { - if (the_resolver->tls_padding < 0) { - lua_pushboolean(L, true); - return 1; - } else if (the_resolver->tls_padding == 0) { - lua_pushboolean(L, false); - return 1; - } - lua_pushinteger(L, the_resolver->tls_padding); - return 1; - } - - const char *errstr = "net.tls_padding parameter has to be true, false," - " or a number between <0, " STR(MAX_TLS_PADDING) ">"; - if (lua_gettop(L) != 1) - lua_error_p(L, "%s", errstr); - if (lua_isboolean(L, 1)) { - bool x = lua_toboolean(L, 1); - if (x) { - the_resolver->tls_padding = -1; - } else { - the_resolver->tls_padding = 0; - } - } else if (lua_isnumber(L, 1)) { - int padding = lua_tointeger(L, 1); - if ((padding < 0) || (padding > MAX_TLS_PADDING)) - lua_error_p(L, "%s", errstr); - the_resolver->tls_padding = padding; - } else { - lua_error_p(L, "%s", errstr); - } - lua_pushboolean(L, true); - return 1; -} - -/** Shorter salt can't contain much entropy. */ -#define net_tls_sticket_MIN_SECRET_LEN 32 - -static int net_tls_sticket_secret_string(lua_State *L) -{ - size_t secret_len; - const char *secret; - - if (lua_gettop(L) == 0) { - /* Zero-length secret, implying random key. */ - secret_len = 0; - secret = NULL; - } else { - if (lua_gettop(L) != 1 || !lua_isstring(L, 1)) { - lua_error_p(L, - "net.tls_sticket_secret takes one parameter: (\"secret string\")"); - } - secret = lua_tolstring(L, 1, &secret_len); - if (secret_len < net_tls_sticket_MIN_SECRET_LEN || !secret) { - lua_error_p(L, "net.tls_sticket_secret - the secret is shorter than " - STR(net_tls_sticket_MIN_SECRET_LEN) " bytes"); - } - } - - tls_session_ticket_ctx_destroy(the_network->tls_session_ticket_ctx); - the_network->tls_session_ticket_ctx = - tls_session_ticket_ctx_create(the_network->loop, secret, secret_len); - if (the_network->tls_session_ticket_ctx == NULL) { - lua_error_p(L, - "net.tls_sticket_secret_string - can't create session ticket context"); - } - - lua_pushboolean(L, true); - return 1; -} - -static int net_tls_sticket_secret_file(lua_State *L) -{ - if (lua_gettop(L) != 1 || !lua_isstring(L, 1)) { - lua_error_p(L, - "net.tls_sticket_secret_file takes one parameter: (\"file name\")"); - } - - const char *file_name = lua_tostring(L, 1); - if (strlen(file_name) == 0) - lua_error_p(L, "net.tls_sticket_secret_file - empty file name"); - - FILE *fp = fopen(file_name, "r"); - if (fp == NULL) { - lua_error_p(L, "net.tls_sticket_secret_file - can't open file '%s': %s", - file_name, strerror(errno)); - } - - char secret_buf[TLS_SESSION_TICKET_SECRET_MAX_LEN]; - const size_t secret_len = fread(secret_buf, 1, sizeof(secret_buf), fp); - int err = ferror(fp); - if (err) { - lua_error_p(L, - "net.tls_sticket_secret_file - error reading from file '%s': %s", - file_name, strerror(err)); - } - if (secret_len < net_tls_sticket_MIN_SECRET_LEN) { - lua_error_p(L, - "net.tls_sticket_secret_file - file '%s' is shorter than " - STR(net_tls_sticket_MIN_SECRET_LEN) " bytes", - file_name); - } - fclose(fp); - - tls_session_ticket_ctx_destroy(the_network->tls_session_ticket_ctx); - the_network->tls_session_ticket_ctx = - tls_session_ticket_ctx_create(the_network->loop, secret_buf, secret_len); - if (the_network->tls_session_ticket_ctx == NULL) { - lua_error_p(L, - "net.tls_sticket_secret_file - can't create session ticket context"); - } - lua_pushboolean(L, true); - return 1; -} - -static int net_outgoing(lua_State *L, int family) -{ - union kr_sockaddr *addr; - if (family == AF_INET) - addr = (union kr_sockaddr*)&the_worker->out_addr4; - else - addr = (union kr_sockaddr*)&the_worker->out_addr6; - - if (lua_gettop(L) == 0) { /* Return the current value. */ - if (addr->ip.sa_family == AF_UNSPEC) { - lua_pushnil(L); - return 1; - } - if (kr_fails_assert(addr->ip.sa_family == family)) - lua_error_p(L, "bad address family"); - char addr_buf[INET6_ADDRSTRLEN]; - int err; - if (family == AF_INET) - err = uv_ip4_name(&addr->ip4, addr_buf, sizeof(addr_buf)); - else - err = uv_ip6_name(&addr->ip6, addr_buf, sizeof(addr_buf)); - lua_error_maybe(L, err); - lua_pushstring(L, addr_buf); - return 1; - } - - if ((lua_gettop(L) != 1) || (!lua_isstring(L, 1) && !lua_isnil(L, 1))) - lua_error_p(L, "net.outgoing_vX takes one address string parameter or nil"); - - if (lua_isnil(L, 1)) { - addr->ip.sa_family = AF_UNSPEC; - return 1; - } - - const char *addr_str = lua_tostring(L, 1); - int err; - if (family == AF_INET) - err = uv_ip4_addr(addr_str, 0, &addr->ip4); - else - err = uv_ip6_addr(addr_str, 0, &addr->ip6); - if (err) - lua_error_p(L, "net.outgoing_vX: failed to parse the address"); - lua_pushboolean(L, true); - return 1; -} - -static int net_outgoing_v4(lua_State *L) { return net_outgoing(L, AF_INET); } -static int net_outgoing_v6(lua_State *L) { return net_outgoing(L, AF_INET6); } - -static int net_update_timeout(lua_State *L, uint64_t *timeout, const char *name) -{ - /* Only return current idle timeout. */ - if (lua_gettop(L) == 0) { - lua_pushinteger(L, *timeout); - return 1; - } - - if ((lua_gettop(L) != 1)) - lua_error_p(L, "%s takes one parameter: (\"idle timeout\")", name); - - if (lua_isnumber(L, 1)) { - int idle_timeout = lua_tointeger(L, 1); - if (idle_timeout <= 0) - lua_error_p(L, "%s parameter has to be positive number", name); - *timeout = idle_timeout; - } else { - lua_error_p(L, "%s parameter has to be positive number", name); - } - lua_pushboolean(L, true); - return 1; -} - -static int net_tcp_in_idle(lua_State *L) -{ - return net_update_timeout(L, &the_network->tcp.in_idle_timeout, "net.tcp_in_idle"); -} - -static int net_tls_handshake_timeout(lua_State *L) -{ - return net_update_timeout(L, &the_network->tcp.tls_handshake_timeout, "net.tls_handshake_timeout"); -} - -static int net_bpf_set(lua_State *L) -{ - if (lua_gettop(L) != 1 || !lua_isnumber(L, 1)) { - lua_error_p(L, "net.bpf_set(fd) takes one parameter:" - " the open file descriptor of a loaded BPF program"); - } - -#if __linux__ - - int progfd = lua_tointeger(L, 1); - if (progfd == 0) { - /* conversion error despite that fact - * that lua_isnumber(L, 1) has returned true. - * Real or stdin? */ - lua_error_p(L, "failed to convert parameter"); - } - lua_pop(L, 1); - - if (network_set_bpf(progfd) == 0) { - lua_error_p(L, "failed to attach BPF program to some networks: %s", - kr_strerror(errno)); - } - - lua_pushboolean(L, 1); - return 1; - -#endif - lua_error_p(L, "BPF is not supported on this operating system"); -} - -static int net_bpf_clear(lua_State *L) -{ - if (lua_gettop(L) != 0) - lua_error_p(L, "net.bpf_clear() does not take any parameters"); - -#if __linux__ - - network_clear_bpf(); - - lua_pushboolean(L, 1); - return 1; - -#endif - lua_error_p(L, "BPF is not supported on this operating system"); -} - -static int net_register_endpoint_kind(lua_State *L) -{ - const int param_count = lua_gettop(L); - if (param_count != 1 && param_count != 2) - lua_error_p(L, "expected one or two parameters"); - if (!lua_isstring(L, 1)) { - lua_error_p(L, "incorrect kind '%s'", lua_tostring(L, 1)); - } - size_t kind_len; - const char *kind = lua_tolstring(L, 1, &kind_len); - - /* Unregistering */ - if (param_count == 1) { - void *val; - if (trie_del(the_network->endpoint_kinds, kind, kind_len, &val) == KNOT_EOK) { - const int fun_id = (char *)val - (char *)NULL; - luaL_unref(L, LUA_REGISTRYINDEX, fun_id); - return 0; - } - lua_error_p(L, "attempt to unregister unknown kind '%s'\n", kind); - } /* else -> param_count == 2 */ - - /* Registering */ - if (!lua_isfunction(L, 2)) { - lua_error_p(L, "second parameter: expected function but got %s\n", - lua_typename(L, lua_type(L, 2))); - } - const int fun_id = luaL_ref(L, LUA_REGISTRYINDEX); - /* ^^ The function is on top of the stack, incidentally. */ - void **pp = trie_get_ins(the_network->endpoint_kinds, kind, kind_len); - if (!pp) lua_error_maybe(L, kr_error(ENOMEM)); - if (*pp != NULL || !strcasecmp(kind, "dns") || !strcasecmp(kind, "tls")) - lua_error_p(L, "attempt to register known kind '%s'\n", kind); - *pp = (char *)NULL + fun_id; - /* We don't attempt to engage corresponding endpoints now. - * That's the job for network_engage_endpoints() later. */ - return 0; -} - -int kr_bindings_net(lua_State *L) -{ - static const luaL_Reg lib[] = { - { "list", net_list }, - { "listen", net_listen }, - { "proxy_allowed", net_proxy_allowed }, - { "close", net_close }, - { "interfaces", net_interfaces }, - { "bufsize", net_bufsize }, - { "tcp_pipeline", net_pipeline }, - { "tls", net_tls }, - { "tls_server", net_tls }, - { "tls_client", net_tls_client }, - { "tls_client_clear", net_tls_client_clear }, - { "tls_padding", net_tls_padding }, - { "tls_sticket_secret", net_tls_sticket_secret_string }, - { "tls_sticket_secret_file", net_tls_sticket_secret_file }, - { "outgoing_v4", net_outgoing_v4 }, - { "outgoing_v6", net_outgoing_v6 }, - { "tcp_in_idle", net_tcp_in_idle }, - { "tls_handshake_timeout", net_tls_handshake_timeout }, - { "bpf_set", net_bpf_set }, - { "bpf_clear", net_bpf_clear }, - { "register_endpoint_kind", net_register_endpoint_kind }, - { "doh_headers", net_doh_headers }, - { NULL, NULL } - }; - luaL_register(L, "net", lib); - return 1; -} - diff --git a/daemon/bindings/net_client.rst b/daemon/bindings/net_client.rst deleted file mode 100644 index 34e6236d4..000000000 --- a/daemon/bindings/net_client.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -IPv4 and IPv6 usage -------------------- - -Following settings affect client part of the resolver, -i.e. communication between the resolver itself and other DNS servers. - -IPv4 and IPv6 protocols are used by default. For performance reasons it is -recommended to explicitly disable protocols which are not available -on your system, though the impact of IPv6 outage is lowered since release 5.3.0. - -.. envvar:: net.ipv4 = true|false - - :return: boolean (default: true) - - Enable/disable using IPv4 for contacting upstream nameservers. - -.. envvar:: net.ipv6 = true|false - - :return: boolean (default: true) - - Enable/disable using IPv6 for contacting upstream nameservers. - -.. function:: net.outgoing_v4([string address]) - - Get/set the IPv4 address used to perform queries. - The default is ``nil``, which lets the OS choose any address. - -.. function:: net.outgoing_v6([string address]) - - Get/set the IPv6 address used to perform queries. - The default is ``nil``, which lets the OS choose any address. - diff --git a/daemon/bindings/net_dns_tweaks.rst b/daemon/bindings/net_dns_tweaks.rst deleted file mode 100644 index b1f67139f..000000000 --- a/daemon/bindings/net_dns_tweaks.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -DNS protocol tweaks -------------------- - -Following settings change low-level details of DNS protocol implementation. -Default values should not be changed except for very special cases. - -.. function:: net.bufsize([udp_downstream_bufsize][, udp_upstream_bufsize]) - - Get/set maximum EDNS payload size advertised in DNS packets. Different values can be configured for communication downstream (towards clients) and upstream (towards other DNS servers). Set and also get operations use values in this order. - - Default is 1232 bytes which was chosen to minimize risk of `issues caused by IP fragmentation `_. Further details can be found at `DNS Flag Day 2020 `_ web site. - - Minimal value allowed by standard :rfc:`6891` is 512 bytes, which is equal to DNS packet size without Extension Mechanisms for DNS. Value 1220 bytes is minimum size required by DNSSEC standard :rfc:`4035`. - - Example output: - - .. code-block:: lua - - -- set downstream and upstream bufsize to value 4096 - > net.bufsize(4096) - -- get configured downstream and upstream bufsizes, respectively - > net.bufsize() - 4096 -- result # 1 - 4096 -- result # 2 - - -- set downstream bufsize to 4096 and upstream bufsize to 1232 - > net.bufsize(4096, 1232) - -- get configured downstream and upstream bufsizes, respectively - > net.bufsize() - 4096 -- result # 1 - 1232 -- result # 2 - -.. include:: ../../modules/workarounds/README.rst diff --git a/daemon/bindings/net_server.rst b/daemon/bindings/net_server.rst deleted file mode 100644 index f346aeb92..000000000 --- a/daemon/bindings/net_server.rst +++ /dev/null @@ -1,225 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Addresses and services ----------------------- - -Addresses, ports, protocols, and API calls available for clients communicating -with resolver are configured using :func:`net.listen`. - -First you need to decide what service should be available on given IP address -+ port combination. - -.. csv-table:: - :header: "Protocol/service", "net.listen *kind*" - - "DNS (unencrypted UDP+TCP, :rfc:`1034`)","``dns``" - "DNS (unencrypted UDP, :ref:`using XDP Linux API `)","``xdp``" - ":ref:`dns-over-tls`","``tls``" - ":ref:`dns-over-https`","``doh2``" - ":ref:`Web management `","``webmgmt``" - ":ref:`Control socket `","``control``" - ":ref:`mod-http-doh`","``doh_legacy``" - -.. note:: By default, **unencrypted DNS and DNS-over-TLS** are configured to **listen - on localhost**. - - Control sockets are created either in - ``/run/knot-resolver/control/`` (when using systemd) or ``$PWD/control/``. - -.. function:: net.listen(addresses, [port = 53, { kind = 'dns', freebind = false }]) - - :return: ``true`` if port is bound, an error otherwise - - Listen on addresses; port and flags are optional. - The addresses can be specified as a string or device. - Port 853 implies ``kind = 'tls'`` but it is always better to be explicit. - Freebind allows binding to a non-local or not yet available address. - -.. csv-table:: - :header: "**Network protocol**", "**Configuration command**" - - "DNS (UDP+TCP, :rfc:`1034`)","``net.listen('192.0.2.123', 53)``" - "DNS (UDP, :ref:`using XDP `)","``net.listen('192.0.2.123', 53, { kind = 'xdp' })``" - ":ref:`dns-over-tls`","``net.listen('192.0.2.123', 853, { kind = 'tls' })``" - ":ref:`dns-over-https`","``net.listen('192.0.2.123', 443, { kind = 'doh2' })``" - ":ref:`Web management `","``net.listen('192.0.2.123', 8453, { kind = 'webmgmt' })``" - ":ref:`Control socket `","``net.listen('/tmp/kres.control', nil, { kind = 'control' })``" - - -Examples: - - .. code-block:: lua - - net.listen('::1') - net.listen(net.lo, 53) - net.listen(net.eth0, 853, { kind = 'tls' }) - net.listen('192.0.2.1', 53, { freebind = true }) - net.listen({'127.0.0.1', '::1'}, 53, { kind = 'dns' }) - net.listen('::', 443, { kind = 'doh2' }) - net.listen('::', 8453, { kind = 'webmgmt' }) -- see http module - net.listen('/tmp/kresd-socket', nil, { kind = 'webmgmt' }) -- http module supports AF_UNIX - net.listen('eth0', 53, { kind = 'xdp' }) - net.listen('192.0.2.123', 53, { kind = 'xdp', nic_queue = 0 }) - -.. warning:: On machines with multiple IP addresses avoid listening on wildcards - ``0.0.0.0`` or ``::``. Knot Resolver could answer from different IP - addresses if the network address ranges overlap, - and clients would probably refuse such a response. - -.. _proxyv2: - -PROXYv2 protocol -^^^^^^^^^^^^^^^^ - -Knot Resolver supports proxies that utilize the `PROXYv2 protocol `_ -to identify clients. - -A PROXY header contains the IP address of the original client who sent a query. -This allows the resolver to treat queries as if they actually came from -the client's IP address rather than the address of the proxy they came through. -For example, :ref:`Views and ACLs ` are able to work properly when -PROXYv2 is in use. - -Since allowing usage of the PROXYv2 protocol for all clients would be a security -vulnerability, because clients would then be able to spoof their IP addresses via -the PROXYv2 header, the resolver requires you to specify explicitly which clients -are allowed to send PROXYv2 headers via the :func:`net.proxy_allowed` function. - -PROXYv2 queries from clients who are not explicitly allowed to use this protocol -will be discarded. - -.. function:: net.proxy_allowed([addresses]) - - Allow usage of the PROXYv2 protocol headers by clients on the specified - ``addresses``. It is possible to permit whole networks to send PROXYv2 headers - by specifying the network mask using the CIDR notation - (e.g. ``172.22.0.0/16``). IPv4 as well as IPv6 addresses are supported. - - If you wish to allow all clients to use PROXYv2 (e.g. because you have this - kind of security handled on another layer of your network infrastructure), - you can specify a netmask of ``/0``. Please note that this setting is - address-family-specific, so this needs to be applied to both IPv4 and IPv6 - separately. - - Subsequent calls to the function overwrite the effects of all previous calls. - Providing a table of strings as the function parameter allows multiple - distinct addresses to use the PROXYv2 protocol. - - When called without arguments, ``net.proxy_allowed`` returns a table of all - addresses currently allowed to use the PROXYv2 protocol and does not change - the configuration. - -Examples: - - .. code-block:: lua - - net.proxy_allowed('172.22.0.1') -- allows '172.22.0.1' specifically - net.proxy_allowed('172.18.1.0/24') -- allows everyone at '172.18.1.*' - net.proxy_allowed({ - '172.22.0.1', '172.18.1.0/24' - }) -- allows both of the above at once - net.proxy_allowed({ 'fe80::/10' } -- allows everyone at IPv6 link-local - net.proxy_allowed({ - '::/0', '0.0.0.0/0' - }) -- allows everyone - net.proxy_allowed('::/0') -- allows all IPv6 (but no IPv4) - net.proxy_allowed({}) -- prevents everyone from using PROXYv2 - net.proxy_allowed() -- returns a list of all currently allowed addresses - -Features for scripting -^^^^^^^^^^^^^^^^^^^^^^ -Following configuration functions are useful mainly for scripting or :ref:`runtime-cfg`. - -.. function:: net.close(address, [port]) - - :return: boolean (at least one endpoint closed) - - Close all endpoints listening on the specified address, optionally restricted by port as well. - - -.. function:: net.list() - - :return: Table of bound interfaces. - - Example output: - - .. code-block:: none - - [1] => { - [kind] => tls - [transport] => { - [family] => inet4 - [ip] => 127.0.0.1 - [port] => 853 - [protocol] => tcp - } - } - [2] => { - [kind] => dns - [transport] => { - [family] => inet6 - [ip] => ::1 - [port] => 53 - [protocol] => udp - } - } - [3] => { - [kind] => dns - [transport] => { - [family] => inet6 - [ip] => ::1 - [port] => 53 - [protocol] => tcp - } - } - [4] => { - [kind] => xdp - [transport] => { - [family] => inet4+inet6 - [interface] => eth2 - [nic_queue] => 0 - [port] => 53 - [protocol] => udp - } - } - -.. function:: net.interfaces() - - :return: Table of available interfaces and their addresses. - - Example output: - - .. code-block:: none - - [lo0] => { - [addr] => { - [1] => ::1 - [2] => 127.0.0.1 - } - [mac] => 00:00:00:00:00:00 - } - [eth0] => { - [addr] => { - [1] => 192.168.0.1 - } - [mac] => de:ad:be:ef:aa:bb - } - - .. tip:: You can use ``net.`` as a shortcut for specific interface, e.g. ``net.eth0`` - -.. function:: net.tcp_pipeline([len]) - - Get/set per-client TCP pipeline limit, i.e. the number of outstanding queries that a single client connection can make in parallel. Default is 100. - - .. code-block:: lua - - > net.tcp_pipeline() - 100 - > net.tcp_pipeline(50) - 50 - - .. warning:: Please note that too large limit may have negative impact on performance and can lead to increased number of SERVFAIL answers. - -.. _`dnsproxy module`: https://www.knot-dns.cz/docs/2.7/html/modules.html#dnsproxy-tiny-dns-proxy - - diff --git a/daemon/bindings/net_tlssrv.rst b/daemon/bindings/net_tlssrv.rst deleted file mode 100644 index 96391e232..000000000 --- a/daemon/bindings/net_tlssrv.rst +++ /dev/null @@ -1,188 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _tls-server-config: - -DoT and DoH (encrypted DNS) ---------------------------- - -.. warning:: - - It is important to understand **limits of encrypting only DNS traffic**. - Relevant security analysis can be found in article - *Simran Patil and Nikita Borisov. 2019. What can you learn from an IP?* - See `slides `_ - or `the article itself `_. - -DoT and DoH encrypt DNS traffic with Transport Layer Security (TLS) protocol -and thus protects DNS traffic from certain types of attacks. - -You can learn more about DoT and DoH and their implementation in Knot Resolver -in `this article -`_. - -.. _dns-over-tls: - -DNS-over-TLS (DoT) -^^^^^^^^^^^^^^^^^^ - -DNS-over-TLS server (:rfc:`7858`) can be configured using ``tls`` kind in -:func:`net.listen()`. It is enabled on localhost by default. - -For certificate configuration, refer to :ref:`dot-doh-config-options`. - -.. _dns-over-https: - -DNS-over-HTTPS (DoH) -^^^^^^^^^^^^^^^^^^^^ - -.. note:: Knot Resolver currently offers two DoH implementations. It is - recommended to use this new implementation, which is more reliable, scalable - and has fewer dependencies. Make sure to use ``doh2`` kind in - :func:`net.listen()` to select this implementation. - -.. tip:: Independent information about political controversies around the - DoH deployment by default can be found in blog posts `DNS Privacy at IETF - 104 `_ and `More DOH - `_ by Geoff Huston and - `Centralised DoH is bad for Privacy, in 2019 and beyond - `_ - by Bert Hubert. - -DNS-over-HTTPS server (:rfc:`8484`) can be configured using ``doh2`` kind in -:func:`net.listen()`. - -This implementation supports HTTP/2 (:rfc:`7540`). Queries can be sent to the -``/dns-query`` endpoint, e.g.: - -.. code-block:: bash - - $ kdig @127.0.0.1 +https www.knot-resolver.cz AAAA - -**Only TLS version 1.3 (or higher) is supported with DNS-over-HTTPS.** The -additional considerations for TLS 1.2 required by HTTP/2 are not implemented -(:rfc:`7540#section-9.2`). - -.. warning:: Take care when configuring your server to listen on well known - HTTPS port. If an unrelated HTTPS service is running on the same port with - REUSEPORT enabled, you will end up with both services malfunctioning. - -.. _dot-doh-config-options: - -HTTP status codes -""""""""""""""""" - -As specified by :rfc:`8484`, the resolver responds with status **200 OK** whenever -it can produce a valid DNS reply for a given query, even in cases where the DNS -``rcode`` indicates an error (like ``NXDOMAIN``, ``SERVFAIL``, etc.). - -For DoH queries malformed at the HTTP level, the resolver may respond with -the following status codes: - - * **400 Bad Request** for a generally malformed query, like one not containing - a valid DNS packet - * **404 Not Found** when an incorrect HTTP endpoint is queried - the only - supported ones are ``/dns-query`` and ``/doh`` - * **413 Payload Too Large** when the DNS query exceeds its maximum size - * **415 Unsupported Media Type** when the query's ``Content-Type`` header - is not ``application/dns-message`` - * **431 Request Header Fields Too Large** when a header in the query is too - large to process - * **501 Not Implemented** when the query uses a method other than - ``GET``, ``POST``, or ``HEAD`` - -Configuration options for DoT and DoH -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. note:: These settings affect both DNS-over-TLS and DNS-over-HTTPS (except - the legacy implementation). - -A self-signed certificate is generated by default. For serious deployments -it is strongly recommended to configure your own TLS certificates signed -by a trusted CA. This is done using function :c:func:`net.tls()`. - -.. function:: net.tls([cert_path], [key_path]) - - When called with path arguments, the function loads the server TLS - certificate and private key for DoT and DoH. - - When called without arguments, the command returns the currently configured paths. - - Example output: - - .. code-block:: lua - - > net.tls("/etc/knot-resolver/server-cert.pem", "/etc/knot-resolver/server-key.pem") - > net.tls() -- print configured paths - [cert_file] => '/etc/knot-resolver/server-cert.pem' - [key_file] => '/etc/knot-resolver/server-key.pem' - - .. tip:: The certificate files aren't automatically reloaded on change. If - you update the certificate files, e.g. using ACME, you have to either - restart the service(s) or call this function again using - :ref:`control-sockets`. - -.. function:: net.tls_sticket_secret([string with pre-shared secret]) - - Set secret for TLS session resumption via tickets, by :rfc:`5077`. - - The server-side key is rotated roughly once per hour. - By default or if called without secret, the key is random. - That is good for long-term forward secrecy, but multiple kresd instances - won't be able to resume each other's sessions. - - If you provide the same secret to multiple instances, they will be able to resume - each other's sessions *without* any further communication between them. - This synchronization works only among instances having the same endianness - and time_t structure and size (`sizeof(time_t)`). - -.. _pfs: https://en.wikipedia.org/wiki/Forward_secrecy - - **For good security** the secret must have enough entropy to be hard to guess, - and it should still be occasionally rotated manually and securely forgotten, - to reduce the scope of privacy leak in case the - `secret leaks eventually `_. - - .. warning:: **Setting the secret is probably too risky with TLS <= 1.2 and - GnuTLS < 3.7.5**. GnuTLS 3.7.5 adds an option to disable resumption via - tickets for TLS <= 1.2, enabling them only for protocols that do guarantee - `PFS `_. Knot Resolver makes use of this new option when linked - against GnuTLS >= 3.7.5. - -.. function:: net.tls_sticket_secret_file([string with path to a file containing pre-shared secret]) - - The same as :func:`net.tls_sticket_secret`, - except the secret is read from a (binary) file. - -.. function:: net.tls_padding([true | false]) - - Get/set EDNS(0) padding of queries and answers sent over an encrypted - channel. If set to `true` (the default), it will use a sensible - default padding scheme, as implemented by libknot if available at - compile time. If set to a numeric value >= 2 it will pad the - answers to nearest *padding* boundary, e.g. if set to `64`, the - answer will have size of a multiple of 64 (64, 128, 192, ...). If - set to `false` (or a number < 2), it will disable padding entirely. - -Configuration options for DoH -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. function:: net.doh_headers([string or table of strings]) - - Selects the headers to be exposed. These headers and their values are - available in ``request.qsource.headers``. Comparison - is case-insensitive and pseudo-headers are supported as well. - - The following snippet can be used in the lua module to access headers - ``:method`` and ``user-agent``: - - .. code-block:: lua - - net.doh_headers({':method', 'user-agent'}) - - ... - - for i = 1, tonumber(req.qsource.headers.len) do - local name = ffi.string(req.qsource.headers.at[i - 1].name) - local value = ffi.string(req.qsource.headers.at[i - 1].value) - print(name, value) - end diff --git a/daemon/bindings/net_xdpsrv.rst b/daemon/bindings/net_xdpsrv.rst deleted file mode 100644 index e3014feca..000000000 --- a/daemon/bindings/net_xdpsrv.rst +++ /dev/null @@ -1,140 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _dns-over-xdp: - -XDP for higher UDP performance ------------------------------- - -.. warning:: - As of version 5.2.0, XDP support in Knot Resolver is considered - experimental. The impact on overall throughput and performance may not - always be beneficial. - -Using XDP allows significant speedup of UDP packet processing in recent Linux kernels, -especially with some network drivers that implement good support. -The basic idea is that for selected packets the Linux networking stack is bypassed, -and some drivers can even directly use the user-space buffers for reading and writing. - -.. TODO perhaps some hint/link about how significant speedup one might get? (link to some talk video?) - -Prerequisites -^^^^^^^^^^^^^ -.. this is mostly copied from knot-dns doc/operations.rst - -.. warning:: - Bypassing the network stack has significant implications, such as bypassing the firewall - and monitoring solutions. - Make sure you're familiar with the trade-offs before using this feature. - Read more in :ref:`dns-over-xdp_limitations`. - -* Linux kernel 4.18+ (5.x+ is recommended for optimal performance) compiled with - the `CONFIG_XDP_SOCKETS=y` option. XDP isn't supported in other operating systems. -* libknot compiled with XDP support -* **A multiqueue network card with native XDP support is highly recommended**, - otherwise the performance gain will be much lower and you may encounter - issues due to XDP emulation. - Successfully tested cards: - - * Intel series 700 (driver `i40e`), maximum number of queues per interface is 64. - * Intel series 500 (driver `ixgbe`), maximum number of queues per interface is 64. - The number of CPUs available has to be at most 64! - - -Set up -^^^^^^ -.. first parts are mostly copied from knot-dns doc/operations.rst - -The server instances need additional Linux **capabilities** during startup. -(Or you could start them as `root`.) -Execute command - -.. code-block:: bash - - systemctl edit kresd@.service - -And insert these lines: - -.. code-block:: ini - - [Service] - CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN CAP_SYS_ADMIN CAP_IPC_LOCK CAP_SYS_RESOURCE - AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN CAP_SYS_ADMIN CAP_IPC_LOCK CAP_SYS_RESOURCE - -The ``CAP_SYS_RESOURCE`` is only needed on Linux < 5.11. - -.. TODO suggest some way for ethtool -L? Perhaps via systemd units? - -You want the same number of kresd instances and network **queues** on your card; -you can use ``ethtool -L`` before the services start. -With XDP this is more important than with vanilla UDP, as we only support one instance -per queue and unclaimed queues will fall back to vanilla UDP. -Ideally you can set these numbers as high as the number of CPUs that you want kresd to use. - -Modification of ``/etc/knot-resolver/kresd.conf`` may often be quite simple, for example: - -.. code-block:: lua - - net.listen('eth2', 53, { kind = 'xdp' }) - net.listen('203.0.113.53', 53, { kind = 'dns' }) - -Note that you want to also keep the vanilla DNS line to service TCP -and possibly any fallback UDP (e.g. from unclaimed queues). -XDP listening is in principle done on queues of whole network interfaces -and the target addresses of incoming packets aren't checked in any way, -but you are still allowed to specify interface by an address -(if it's unambiguous at that moment): - -.. code-block:: lua - - net.listen('203.0.113.53', 53, { kind = 'xdp' }) - net.listen('203.0.113.53', 53, { kind = 'dns' }) - -The default selection of queues is tailored for the usual naming convention: -``kresd@1.service``, ``kresd@2.service``, ... -but you can still specify them explicitly, e.g. the default is effectively the same as: - -.. code-block:: lua - - net.listen('eth2', 53, { kind = 'xdp', nic_queue = env.SYSTEMD_INSTANCE - 1 }) - - -Optimizations -^^^^^^^^^^^^^ -.. this is basically copied from knot-dns doc/operations.rst - -Some helpful commands: - -.. code-block:: text - - ethtool -N rx-flow-hash udp4 sdfn - ethtool -N rx-flow-hash udp6 sdfn - ethtool -L combined - ethtool -G rx tx - renice -n 19 -p $(pgrep '^ksoftirqd/[0-9]*$') - -.. TODO CPU affinities? `CPUAffinity=%i` in systemd unit sounds good. - - -.. _dns-over-xdp_limitations: - -Limitations -^^^^^^^^^^^ -.. this is basically copied from knot-dns doc/operations.rst - -* VLAN segmentation is not supported. -* MTU higher than 1792 bytes is not supported. -* Multiple BPF filters per one network device are not supported. -* Symmetrical routing is required (query source MAC/IP addresses and - reply destination MAC/IP addresses are the same). -* Systems with big-endian byte ordering require special recompilation of libknot. -* IPv4 header and UDP checksums are not verified on received DNS messages. -* DNS over XDP traffic is not visible to common system tools (e.g. firewall, tcpdump etc.). -* BPF filter is not automatically unloaded from the network device. Manual filter unload:: - - ip link set dev xdp off - -* Knot Resolver only supports using XDP towards clients currently (not towards upstreams). -* When starting up an XDP socket you may get a harmless warning:: - - libbpf: Kernel error message: XDP program already attached - diff --git a/daemon/bindings/worker.c b/daemon/bindings/worker.c deleted file mode 100644 index eec494647..000000000 --- a/daemon/bindings/worker.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/bindings/impl.h" - - -static inline double getseconds(uv_timeval_t *tv) -{ - return (double)tv->tv_sec + 0.000001*((double)tv->tv_usec); -} - -/** Return worker statistics. */ -static int wrk_stats(lua_State *L) -{ - if (kr_fails_assert(the_worker)) { - return 0; - } - lua_newtable(L); - lua_pushnumber(L, the_worker->stats.queries); - lua_setfield(L, -2, "queries"); - lua_pushnumber(L, the_worker->stats.concurrent); - lua_setfield(L, -2, "concurrent"); - lua_pushnumber(L, the_worker->stats.dropped); - lua_setfield(L, -2, "dropped"); - - lua_pushnumber(L, the_worker->stats.timeout); - lua_setfield(L, -2, "timeout"); - lua_pushnumber(L, the_worker->stats.udp); - lua_setfield(L, -2, "udp"); - lua_pushnumber(L, the_worker->stats.tcp); - lua_setfield(L, -2, "tcp"); - lua_pushnumber(L, the_worker->stats.tls); - lua_setfield(L, -2, "tls"); - lua_pushnumber(L, the_worker->stats.ipv4); - lua_setfield(L, -2, "ipv4"); - lua_pushnumber(L, the_worker->stats.ipv6); - lua_setfield(L, -2, "ipv6"); - lua_pushnumber(L, the_worker->stats.err_udp); - lua_setfield(L, -2, "err_udp"); - lua_pushnumber(L, the_worker->stats.err_tcp); - lua_setfield(L, -2, "err_tcp"); - lua_pushnumber(L, the_worker->stats.err_tls); - lua_setfield(L, -2, "err_tls"); - lua_pushnumber(L, the_worker->stats.err_http); - lua_setfield(L, -2, "err_http"); - - /* Add subset of rusage that represents counters. */ - uv_rusage_t rusage; - if (uv_getrusage(&rusage) == 0) { - lua_pushnumber(L, getseconds(&rusage.ru_utime)); - lua_setfield(L, -2, "usertime"); - lua_pushnumber(L, getseconds(&rusage.ru_stime)); - lua_setfield(L, -2, "systime"); - lua_pushnumber(L, rusage.ru_majflt); - lua_setfield(L, -2, "pagefaults"); - lua_pushnumber(L, rusage.ru_nswap); - lua_setfield(L, -2, "swaps"); - lua_pushnumber(L, rusage.ru_nvcsw + rusage.ru_nivcsw); - lua_setfield(L, -2, "csw"); - } - /* Get RSS */ - size_t rss = 0; - if (uv_resident_set_memory(&rss) == 0) { - lua_pushnumber(L, rss); - lua_setfield(L, -2, "rss"); - } - return 1; -} - -int kr_bindings_worker(lua_State *L) -{ - static const luaL_Reg lib[] = { - { "stats", wrk_stats }, - { NULL, NULL } - }; - luaL_register(L, "worker", lib); - return 1; -} - diff --git a/daemon/bindings/worker.rst b/daemon/bindings/worker.rst deleted file mode 100644 index 9dfcbe83a..000000000 --- a/daemon/bindings/worker.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Scripting worker -^^^^^^^^^^^^^^^^ - -Worker is a service over event loop that tracks and schedules outstanding queries, -you can see the statistics or schedule new queries. It also contains information about -specified worker count and process rank. - -.. envvar:: worker.id - - Value from environment variable ``SYSTEMD_INSTANCE``, - or if it is not set, :envvar:`PID ` (string). - -.. envvar:: worker.pid - - Current worker process PID (number). - -.. function:: worker.stats() - - Return table of statistics. See member descriptions in :c:type:`worker_stats`. - A few fields are added, mainly from POSIX ``getrusage()``: - - * ``usertime`` and ``systime`` -- CPU time used, in seconds - * ``pagefaults`` -- the number of hard page faults, i.e. those that required I/O activity - * ``swaps`` -- the number of times the process was “swapped” out of main memory; unused on Linux - * ``csw`` -- the number of context switches, both voluntary and involuntary - * ``rss`` -- current memory usage in bytes, including whole cache (resident set size) - - Example: - - .. code-block:: lua - - print(worker.stats().concurrent) - diff --git a/daemon/cache.test/clear.test.lua b/daemon/cache.test/clear.test.lua deleted file mode 100644 index e1f691496..000000000 --- a/daemon/cache.test/clear.test.lua +++ /dev/null @@ -1,215 +0,0 @@ --- unload modules which are not related to this test --- SPDX-License-Identifier: GPL-3.0-or-later - -if ta_signal_query then - modules.unload('ta_signal_query') -end -if priming then - modules.unload('priming') -end -if detect_time_skew then - modules.unload('detect_time_skew') -end - --- test. domain is used by some tests, allow it -policy.add(policy.suffix(policy.PASS, {todname('test.')})) - -cache.size = 2*MB --- log_level('debug') - --- Self-checks on globals -assert(help() ~= nil) -assert(worker.id ~= nil) --- Self-checks on facilities -assert(cache.stats() ~= nil) -assert(cache.backends() ~= nil) -assert(worker.stats() ~= nil) -assert(net.interfaces() ~= nil) --- Self-checks on loaded stuff -assert(#modules.list() > 0) --- Self-check timers -ev = event.recurrent(1 * sec, function () return 1 end) -event.cancel(ev) -ev = event.after(0, function () return 1 end) - - --- Import fake root zone; avoid interference with configured keyfile_default. -trust_anchors.remove('.') -trust_anchors.add('. IN DS 48409 8 2 3D63A0C25BCE86621DE63636F11B35B908EFE8E9381E0E3E9DEFD89EA952C27D') - -local check_answer = require('test_utils').check_answer - --- do not attempt to contact outside world, operate only on cache -net.ipv4 = false -net.ipv6 = false --- do not listen, test is driven by config code -env.KRESD_NO_LISTEN = true - - -local function import_zone() - local import_res = require('ffi').C.zi_zone_import({ zone_file = 'testroot.zone' }) - assert(import_res == 0) - -- beware that import takes at least 100 ms - worker.sleep(0.2) -- zimport is delayed by 100 ms from function call - -- sanity checks - cache must be filled in - ok(cache.count() > 0, 'cache is not empty after import') - check_answer('root apex is in cache', - '.', kres.type.NS, kres.rcode.NOERROR) - check_answer('deep subdomain is in cache', - 'a.b.subtree1.', kres.type.AAAA, kres.rcode.NOERROR) - -end - -local function test_exact_match_qtype() - nok(cache.clear('a.b.subtree1.', true, kres.type.A)['chunk_limit'], - 'single qname+qtype can be cleared at once') - check_answer('exact match on qname+qtype must flush RR from cache', - 'a.b.subtree1.', kres.type.A, kres.rcode.SERVFAIL) - check_answer('exact match on qname+qtype must not affect other RRs on the same node', - 'a.b.subtree1.', kres.type.AAAA, kres.rcode.NOERROR) - check_answer('exact match on qname must not affect parent', - 'b.subtree1.', kres.type.A, kres.rcode.NOERROR) -end - -local function test_exact_match_qname() - res = cache.clear('a.b.SubTree1.') - is(res.count, 2, 'single qname can be cleared at once') - check_answer('exact match on qname must flush all RRs with the same owner from cache', - 'a.b.subtree1.', kres.type.AAAA, kres.rcode.SERVFAIL) - check_answer('exact match on qname must flush all RRs with the same owner from cache', - 'a.b.subtree1.', kres.type.A, kres.rcode.SERVFAIL) - check_answer('exact match on qname must flush all RRs with the same owner from cache', - 'a.b.subtree1.', kres.type.TXT, kres.rcode.SERVFAIL) - -- exact match for negative proofs is not implemented yet - --check_answer('exact match on qname must flush negative proofs for owner from cache', - -- 'a.b.subtree1.', kres.type.NULL, kres.rcode.SERVFAIL) - --check_answer('exact match on qname must not affect parent', - -- 'b.subtree1.', kres.type.A, kres.rcode.NOERROR) - -- same(cache.clear(), 0, 'full cache clear can be performed') - --check_answer('.', kres.type.NS, false) - -end - -local function test_subtree() - res = cache.clear('subtree1.') - nok(res.chunk_limit, - 'whole positive subtree must be flushed (does not include neg. proofs)') - ok(res.not_apex, - 'subtree clear below apex must be detected') - same(res.subtree, '.', 'detected apex must be returned') - check_answer('subtree variant must flush all RRs in subdomains from cache', - 'b.subtree1.', kres.type.A, kres.rcode.SERVFAIL) - check_answer('subtree variant must flush all RRs in subdomains from cache', - 'b.subtree1.', kres.type.TXT, kres.rcode.SERVFAIL) - check_answer('subtree variant must flush all RRs in subdomains from cache', - 'subtree1.', kres.type.TXT, kres.rcode.SERVFAIL) - check_answer('subtree variant must not affect parent', - '.', kres.type.NS, kres.rcode.NOERROR) - -- same(cache.clear(), 0, 'full cache clear can be performed') - --check_answer('.', kres.type.NS, false) - -end - -local function test_callback() - local test_name = '20r.subtree2.' - local test_exactname = true - local test_rrtype = nil - local test_chunksize = 1 - local test_prev_state = { works = true } - local function check_callback(name, exact_name, rr_type, chunk_size, callback, prev_state, errors) - is(errors.count, 1, 'callback received correct # of removed records') - is(test_name, name, 'callback received subtree name') - is(test_exactname, exact_name, 'callback received exact_name') - is(test_rrtype, rr_type, 'callback received rr_type') - is(test_chunksize, chunk_size, 'callback received chunk_size') - is(check_callback, callback, 'callback received reference to itself') - is(type(errors), 'table', 'callback received table of errors') - same(test_prev_state, prev_state, 'callback received previous state') - return 666 - end - same(cache.clear(test_name, test_exactname, test_rrtype, test_chunksize, check_callback, test_prev_state), - 666, 'first callback return value is passed to cache.clear() caller') - local cnt_before_wait = cache.count() - worker.sleep(0.2) - is(cnt_before_wait, cache.count(), 'custom callback can stop clearing') -end - -local function test_subtree_limit() -- default limit = 100 - res = cache.clear('subtree2.', false, nil) - ok(res.chunk_limit, - 'chunk_size limit must be respected') - is(res.count, 100, - 'chunk_size limit must match returned count') - - -- callbacks are running in background so we can now wait - -- and later verify that everything was removed - -- 200 RRs, 100 was removed in first call - -- so the rest should be removed in single invocation of callback - -- hopefully the machine is not too slow ... - worker.sleep(0.1) - res = cache.clear('subtree2.', false, nil) - is(res.count, 0, - 'previous calls + callbacks must have removed everything') -end - -local function test_apex() - check_answer('a negative proof is still present in cache', - 'aaaaa.b.subtree1.', kres.type.TXT, kres.rcode.NXDOMAIN) - - local prev_count = cache.count() - ok(prev_count > 0, 'previous subtree clearing did not remove everything') - res = cache.clear('.', false, nil, 10000) - is(res.count, prev_count, 'clear on root removed everything including proofs') - check_answer('exact match on qname must flush negative proofs for owner from cache', - 'a.b.subtree1.', kres.type.NULL, kres.rcode.SERVFAIL) -end - -local function test_root() - check_answer('root apex is still in cache', - '.', kres.type.NS, kres.rcode.NOERROR) - res = cache.clear('.', true) - check_answer('root apex is in no longer cache', - '.', kres.type.NS, kres.rcode.SERVFAIL) - check_answer('some other item is still in cache', - '16r.subtree2.', kres.type.A, kres.rcode.NOERROR) - - local prev_count = cache.count() - res = cache.clear('.') - is(res.count, prev_count, 'full clear reports correct number of entries') - is(cache.count(), 0, 'clearing root clears everything') -end - -local function test_complete_flush() - local prev_count = cache.count() - res = cache.clear() - is(res.count, prev_count, 'full clear reports correct number of entries') - is(cache.count(), 0, 'cache is empty after full clear') -end - -local function test_cache_used(lower, upper) - return function() - local usage = cache.stats().usage_percent - ok(usage >= lower and usage <= upper, - string.format('cache percentage usage %.1f is between <%d, %d>', usage, lower, upper)) - end -end - -return { - test_cache_used(0, 1), - import_zone, - test_cache_used(9, 11), - test_exact_match_qtype, - test_exact_match_qname, - test_callback, - import_zone, - test_subtree, - test_cache_used(9, 11), - test_subtree_limit, - test_cache_used(5, 8), - test_apex, - import_zone, - test_root, - import_zone, - test_complete_flush, - test_cache_used(0, 1), -} diff --git a/daemon/cache.test/insert_ns.test.integr/deckard.yaml b/daemon/cache.test/insert_ns.test.integr/deckard.yaml deleted file mode 100644 index 7f99679f1..000000000 --- a/daemon/cache.test/insert_ns.test.integr/deckard.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -programs: -- name: kresd - binary: kresd - additional: - - --noninteractive - templates: - - daemon/cache.test/insert_ns.test.integr/kresd_config.j2 - - tests/integration/hints_zone.j2 - configs: - - config - - hints -noclean: True diff --git a/daemon/cache.test/insert_ns.test.integr/kresd_config.j2 b/daemon/cache.test/insert_ns.test.integr/kresd_config.j2 deleted file mode 100644 index bf2165b81..000000000 --- a/daemon/cache.test/insert_ns.test.integr/kresd_config.j2 +++ /dev/null @@ -1,89 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -{% for TAF in TRUST_ANCHOR_FILES %} -trust_anchors.add_file('{{TAF}}') -{% endfor %} - -{% raw %} --- insert NS record pointing to a non-delegated DNS server -cache.open(1*MB) -cache.clear() -trust_anchors.remove('.') - -local ffi = require('ffi') -local c = kres.context().cache -ns_name = todname('ns.example.com') -local ns_addr = '\1\2\3\4' -local rr = kres.rrset(ns_name, kres.type.A, kres.class.IN, 2147483647) -assert(rr:add_rdata(ns_addr, #ns_addr)) -assert(c:insert(rr, nil, ffi.C.KR_RANK_SECURE)) - -rr_ns = kres.rrset(todname('example.com'), kres.type.NS, kres.class.IN, 3600) -assert(rr_ns:add_rdata(ns_name, #ns_name)) -assert(c:insert(rr_ns, nil, bit.bor(ffi.C.KR_RANK_AUTH, ffi.C.KR_RANK_INSECURE))) - -c:commit() -assert(cache.count() > 0) - --- from now on queries for domain example.com should go directly to IP addr 1.2.3.4 - --- Disable RFC5011 TA update -if ta_update then - modules.unload('ta_update') -end - --- Disable RFC8145 signaling, scenario doesn't provide expected answers -if ta_signal_query then - modules.unload('ta_signal_query') -end - --- Disable RFC8109 priming, scenario doesn't provide expected answers -if priming then - modules.unload('priming') -end - --- Disable this module because it makes one priming query -if detect_time_skew then - modules.unload('detect_time_skew') -end - -_hint_root_file('hints') -log_level('debug') -{% endraw %} - -net = { '{{SELF_ADDR}}' } - -{% if DO_IP6 == "true" %} -net.ipv6 = true -{% else %} -net.ipv6 = false -{% endif %} - -{% if DO_IP4 == "true" %} -net.ipv4 = true -{% else %} -net.ipv4 = false -{% endif %} - -{% if QMIN == "false" %} -option('NO_MINIMIZE', true) -{% else %} -option('NO_MINIMIZE', false) -{% endif %} - - --- Self-checks on globals -assert(help() ~= nil) -assert(worker.id ~= nil) --- Self-checks on facilities -assert(cache.stats() ~= nil) -assert(cache.backends() ~= nil) -assert(worker.stats() ~= nil) -assert(net.interfaces() ~= nil) --- Self-checks on loaded stuff -assert(net.list()[1].transport.ip == '{{SELF_ADDR}}') -assert(#modules.list() > 0) --- Self-check timers -ev = event.recurrent(1 * sec, function (ev) return 1 end) -event.cancel(ev) -ev = event.after(0, function (ev) return 1 end) diff --git a/daemon/cache.test/insert_ns.test.integr/nondelegated_auth.rpl b/daemon/cache.test/insert_ns.test.integr/nondelegated_auth.rpl deleted file mode 100644 index 6a0a32a86..000000000 --- a/daemon/cache.test/insert_ns.test.integr/nondelegated_auth.rpl +++ /dev/null @@ -1,59 +0,0 @@ -; SPDX-License-Identifier: GPL-3.0-or-later -; config options -; target-fetch-policy: "0 0 0 0 0" -; name: "." - stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. - do-ip6: no -CONFIG_END - -SCENARIO_BEGIN Delegation explicitly added into cache must be followed - -; ns.example.com. -RANGE_BEGIN 0 100 - ADDRESS 1.2.3.4 -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -example.com. IN NS -SECTION ANSWER -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -SECTION AUTHORITY -example.com. IN NS ns.example.com. -SECTION ADDITIONAL -ns.example.com. IN A 1.2.3.4 -ENTRY_END -RANGE_END - -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -www.example.com. IN A -ENTRY_END - -; recursion happens here. -STEP 10 CHECK_ANSWER -ENTRY_BEGIN -MATCH flags rcode question -REPLY QR RD RA NOERROR -SECTION QUESTION -www.example.com. IN A -SECTION ANSWER -www.example.com. IN A 10.20.30.40 -ENTRY_END - -SCENARIO_END diff --git a/daemon/cache.test/testroot.zone b/daemon/cache.test/testroot.zone deleted file mode 100644 index 2799d332b..000000000 --- a/daemon/cache.test/testroot.zone +++ /dev/null @@ -1,1257 +0,0 @@ -; SPDX-License-Identifier: GPL-3.0-or-later -; File written on Wed Aug 15 09:23:14 2018 -; dnssec_signzone version 9.13.0-dev -. 86400 IN SOA rootns. you.test. 2017071101 1800 900 604800 86400 -. 86400 IN RRSIG SOA 8 0 86400 20460416024207 20180815062314 48409 . r3pIfvAMPJ8eHGU/OLKUCCRU2+u+1ah7fably80gtRVEgLeb207jQEAW MbNlTFJhUIomov3+ERdPAOZ9Kw0+k4d856sfMUUtgdX7BL9Zo0fIcpTu 7/ek7EELfKXb/vYfFlIP1lEOUvo7MB/YDo1zljPJ1Qh1BDsp5zyNaTgq O0PQg/nN1UmFXwjEVGmsn6uid6cJfxdO7UaluZ5c/alvOIx3tBAoDJ2j a4He6Rjlc63pEsKBYmAHz2Rdxq5d/+kqVFJUTyVVvMJ35apczpZ4S4gl BPJQZz15hB3OcpPt7GY1TwI83FjGXFaGiuTUqhvSIRoFimRPVOIGSkJX edKPBQ== -; resign=20460416024207 -. 86400 IN NS rootns. -. 86400 IN RRSIG NS 8 0 86400 20460416024207 20180815062314 48409 . lAwwTOgQuFowdXma1vVrHKz7qi4vaighh104/2vl6DlEpAFEEOz8y5Y3 9bjWfaNp+UDq0AyqnZ3ow7VN9/Hm8uUbicu2BrNSDhGQ/F66rvw8wZff eE5+w3Ihgm4/vK8zmxUnxRz5mwcbbuCyyTP13WQJ8N89wFgsgezkM2E8 s0qKw5ZyriPopd9X2uLFS1vapezFSSo6AN0khBdrUYWzgCRbE1zLHmKV AW1nWMcgV5zJNX1/9dxgC+yEM1nYhcN1Nhl7neO23pRk/vZ26SruzPdY s5j+fn7WyV0cQqAb7BJ7aTFYuD3kG1s3QUxjQolcCUjK7fCCJeYPINdK m2dLtw== -; resign=20460416024207 -. 86400 IN NSEC rootns. NS SOA RRSIG NSEC DNSKEY -. 86400 IN RRSIG NSEC 8 0 86400 20460416024207 20180815062314 48409 . aLdes4mtohdcKA7/kyOdDrCUA72c7DRuK86yxOl3p+5mDarjzBw2Q02b nXEgWoY2RdMJ+KlkxcU87Ojl/p3sIF9RwHlzvW09iXznPyLVTPwD/mnq /5onoMPW4dLbwVIIrFgjhuF/YfN+XCyKoKIJQgB2Qdoo4ppWqeUZXOgU byoPWpzuBupMmrwjownmJLO3bUFUHDaNkIXFi3KwdvhdYj28bP4Z9P4A 1RAKdmU4C24f0auTJDIVDFj4v0ENXzpvDKJyX/VOyLR5+EXwp4YtO1vl TjWueCrTREYDZzXYJgtYHvMDVNQ1uZ+6YCLE7wrgCTQYne9uNp6eAZH3 oFIPTw== -; resign=20460416024207 -. 1814400 IN DNSKEY 257 3 8 AwEAAcliJP8Jh/RjL3c8eaUj8dzVdEksENKubqVA5FdrDJ2rC0O/bGG/ MVZt+WacE1o1mRVwTT/TrhhZUAzZ+qOcpB+IWxURsR4vVqVwakHMny7D 2aLXKoVXwTo/VhAQtHDw5G9bxGgwybPUtd5Vz6EIenUsmNYZ+Spde4l8 vpw7UISVL6q0C1mwHMN18P/1yfHmbkS19b6B1S9Y2aputccF1lso3yiF Ig7UNqqD4PNxSo4jByDnajQSP3qg/LSJSOnzBIumb8wc6svxgugy/pxr BFKgGGk4/JdJCKufdfU5jFX4fJ3HM37G/RccrtGhIf2Z1utoOyaILoa9 wT3O1WaYG/U= -. 1814400 IN RRSIG DNSKEY 8 0 1814400 20460416024207 20180815062314 48409 . MiiRlBAgMnadkm6Y/IDLGiE9Y9xvGU0u9IYD1cAddUMpYAwGe5584lfj 1L/Pdg+OeJiGDfFSD7m3ppX18wIeo5eWHmdCO1/nEAdPl0u/XDB/avtj o3Q34szjOV/sA3s5a3Kc+DFrBiZiTA5BwMIHZX4vvITf2cEq2K4K39Iv Cg1blSathklWkpgYIPttpZIcIt5vxoe9e0aqar6FLOCWJ68noreCIenR XmzhMW+l7kOBoKOvkyv1lcDM0zWXI9r5lqAqJB0mWsCiR+VloxSbFii7 kjUDju8BqXu2G8YzM7y0vMytMafjfLsj7bHvQ1HefOht6Xzi1jRHblEh GGQ8UA== -; resign=20460416024207 -100r.subtree2. 86400 IN A 192.0.2.1 -100r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . QMB4uw2u+kJ4Iic6G6fJ1B+LL5Jp0y/tPHwb9iW8mfAfZoaHuNxUFMdW nncNjZcjIXpeWiWcD3fzKr6DwJ20oWMpt9fxGthYyXp5DWhmeb6Pq6sS cWy5xhGEP6Cv1gBx4oZs0xmdmLsi/eK8x0E6DScwGeLu9v/lUGxnD7ug b4gl/9ABXhFVXW0qALF48dTpc5mMDsAIkPJevarbLDrg3CyOTrCcZtc1 v9DYSN2KGG7l3H7jAY9WNpwhTGXVNthSGHLvSUmzJ418ya8bU9L0Baoj +WBmdERcmFyx4KS+mwDcJxORwLPtEpRN1Kdg/X/z41cw/ViakoZ62ikq r2j8YA== -; resign=20460416024207 -100r.subtree2. 86400 IN NSEC 101r.subtree2. A RRSIG NSEC -100r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . EK+71G5XMyRg37UmfcnMxVl6RbkzUL5YLi+kL8LXYXrq5AEXCof2K26i EPVZlQqjaSSyCHDV1PGpUAbxmGu5JFJ17wksgJ5q+vkPMTJhU9gVQUGf 1Ymj8hOa+eYs1Of0/3O2mf5V5KOpQ/R/cONQelziCLQeJJvJ70AHJUx/ 3+guSkXehkZszxuVozy7AmguyRjAWtNOLmVR74HFaP5+PyosZhie7LZS rsGq0p+VzHc1Xl9BXLBg/WrBXEpcuEtvg1wc/gVkNAlC4NLr1zbWcmIw Hdf3/NFgfFkJ0gFRX7P3+zXCipUHjdpb/kxtFCopYlZpP5km0cOmrbq5 rPwwcw== -; resign=20460416024207 -rootns. 86400 IN A 198.41.0.4 -rootns. 86400 IN RRSIG A 8 1 86400 20460416024207 20180815062314 48409 . wvg4r9R9qeCwgxxb+Hrit/Ag63lSAzB8SPyKAz61GHojJbES8sz1dvnN fpaFX6bd+8oYfLKK2m+xyNITXm7mzZU2lEg6eHih4E/PCQzEfi12VaQq Esyg46LKIYCMcazou0I3ot/BbXHokSlAnfyAA+2+7EKSFK6SZDVQwK5Q Y0w3ps+gevcrnSHSQuymyjkOUgAxGtGTEA/QvmfzS7f7Dc0vrTRHRmOU 0lJ6Epi8kajwMjtEkRWN0TUnwD2z1eNyaCaa+C9TTwIKGoQkZlMFoc/m 4hBCPDEA1/Z5qDVFnFdWNOE3CLon/P14ONTznSJr8lfqdPmRb4iXqIn3 yNRLaQ== -; resign=20460416024207 -rootns. 86400 IN NSEC subtree1. A RRSIG NSEC -rootns. 86400 IN RRSIG NSEC 8 1 86400 20460416024207 20180815062314 48409 . Kv4r9Utt5+TrzUuzXedmlJlJsjai7Ebs8Ldj2TfV7uktkOx1GTCTMIFs jmWBJDi/tm2CRP8VvNL6tSmxOQ2sNRXbyNmbgY+WujCuIA1hTiYC8cR5 p17K0MuR6LDu7UfcHVUAIiiucqQ+FHgnDN6DPyeGPMEqiRUG6KFtmQdz VcVHN9EeVwvru6l7M0NSg4onNGDUAd3Lzb4OVSdjcfCC5/TRxN/A04pm xIbag7nBTmx5T7/RRhywKycnbaPCmljmGtwd0+ikdNtIkQZa2/S82rOb 579vgx2cliVQszNmqei3PVRSHDoqTv26lHM27fTAkwdCGX2rBMDRLjQ3 Dk/etQ== -; resign=20460416024207 -102r.subtree2. 86400 IN A 192.0.2.1 -102r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . AJoiUtB4aQsllEPMM4jYB8B5ZSJA3nAZnICi0lxmpJzhYUVnOKdj6B50 1U2TADwJ1SHs9tciZAuJvILJMwu1LapISmZ9692u7CR2gcTfifnY8iny +cZwEsFFbwdv/pHMIZhox+h2+H18ltSpa8Sad8vvnqtaePtUgnJdR3kp 2b5q77VrSxEwizLq6OkjCYiCPh7YrbfNfTesZwIbuKH80TSaJF9kTVar hh5yW23vEwq0tGyrYn4bYJR2OzZqukLHz+aSMIQ7BpQPHY0hMWPndb5p HLvaDHbmp7Mc/1bnhCVmqqECKouV/Y8omUUHOljyjZ8WlCol0pYWQm6L O/U4SQ== -; resign=20460416024207 -102r.subtree2. 86400 IN NSEC 103r.subtree2. A RRSIG NSEC -102r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . PE/1zyqvetDmu+d7yFhICfmNWl1AmSZ1K5tKtb04wz+I1aihwWkozCuC hLskRAIrhogNSFDjVqhM2F1HFYm3ACkr3vvWxsTAk4hnvIIw1TVj+iqU ZTpXNKnS7UarPxM8a5fctME2mgPSQnsAzJRlkInpT450Ls7qhTpqEREx wMAY7fQx+Y5zdg90rEINJBdKJgw7K8ES3bm1JwEIpkjw4I5NZhyAS026 2fW6x5UaTGWhV1Qa7YVwdXrEDxcsyb/FR/N0AofcP0JrQ8/UfPJNoO3U rtUigRA8tDapiQuSTFaYb1thtqMgGtrJqxjDRU82I75HBZnhhFilOGUD fcVq9g== -; resign=20460416024207 -104r.subtree2. 86400 IN A 192.0.2.1 -104r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . lNhsi5Dvb6lFrzp8+A3j5DDY+sK8p+CbB9jRtxRoCh9TJsWs3V8tWfcJ qLN7PKgCchmLTfQryKsIERDBNgEvaFbygk9UO/YX4z0J5xVtXQ6lRz12 rcgR0EJ098ZoOtmHa25+YILXwwO9WqoBzx5VItYduOaRXqDJA6QcUUyx cnd14DkfJcD/MXKMkWS95SIIOg5KuOga0N6H7ATIxkrTCbqRfLwoj0Ne 52Mp4LSyVY9BN51s/jHmYOYiubLMtGYKVVffkmH1LtqUnY/kNK0YixT8 4zs1REuk6e3PAiyBOANvMqVm76FiBapaZgFnGJu/2S7foTC0yHfmLh5J NFTq8Q== -; resign=20460416024207 -104r.subtree2. 86400 IN NSEC 105r.subtree2. A RRSIG NSEC -104r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . BrGAn5NmHS74Ru+CcjBzjUamO6en8GaTg+fOuSaECpFNCx/rnFQziS/a gZs44Mlc3IdXLEeo3GI21Uqf/mNeGqfl+TCnUfnevy+1Gl2093dtma4/ LNHMd9BxDmXe94WQVp4xJOLbICv4aaKIhGD7w4ck9cMk1r8p4ngvsvoV kn9uLl1lx14yddufdS8B/NGvzeqRlJNdyfZJg47pQfghgg+qLbmmzqHr Rt+ke0Vge4Nur3PsNs/daYb02OWqWA5YLbljRaKqatEn95ohkrfl/CMe rZ3b3gcR6dowj9+dIkGODCQhrzqtk3v1QAEkYq5LJDPPnhXYduNWqsz/ 5F/m/g== -; resign=20460416024207 -a.b.subtree1. 86400 IN A 192.0.2.3 -a.b.subtree1. 86400 IN RRSIG A 8 3 86400 20460416024207 20180815062314 48409 . BTJSG6mn5eRo2GDyw8lT3S7POU6BBrB2w3ULx8+BY8aoEHzak8Ul/abD fqneEji+subHFGpMwQXFtzKfnwTTRHyHS2P7FZQO3l7b+T2oDRZn9B0d mrmGQRmv5XrTDlO0WRYlRsWSMalkbUEul6L9q3koCCtXd4GCxDh20tk7 o27pKtuO0ALptDLIMXoVdhRhTBd+qARVJrg2u/XyUzlwqfgZTsY6SkyN mEYvK4UCM1RkhqCqo3NBNmR7islmWVPM3Ax8uTssCf5T+MUN+gNT6Co+ zRXX71qGw6hpQFxWe1dA9PCna4ZoWPIfx6A666blMrciwbYTQL8xUEPS 5RmRtw== -; resign=20460416024207 -a.b.subtree1. 86400 IN TXT "txt exists" -a.b.subtree1. 86400 IN RRSIG TXT 8 3 86400 20460416024207 20180815062314 48409 . gN77jXi+ntj3SeXk2WprymZGcwPEXY/0w1svtsP2RXijvXwOlWlpmsSK +SnZFtkSRKwJXEY1nSDW3UORaDzzZrraMxCtjtt2Vi77Uqi97PdaRmk+ +IRcJBNQ3PywGRdqw1MZuPlyKbmGe8B4PE96d6ya4fXtvL8tuMU4L7uP h2Wn4sB1eSFpH5rGrytPMyv6W4T7JubL6+R1YdmQBAARJXnIqN8WlOYM JiZtQl7kdnPOxxhHZCzlFOP1Ci934u9jh93ynJPbF9dJG75f74+sWw2k RHZUu7SkphoPsVR7nhulAHcPB805yxWPtmMC2Rsq+RGbLpfgFENPsnxv VZa5Wg== -; resign=20460416024207 -a.b.subtree1. 86400 IN AAAA 2001:db8:: -a.b.subtree1. 86400 IN RRSIG AAAA 8 3 86400 20460416024207 20180815062314 48409 . cLipbUelm96/75NoXOJR3atJKr9fjYaz4lu4CQBREmQ7eUwkGfDGW7jj ar60VA2OSVT1Q3SxsvKjZ9OjSDLtPbhVeIabBKhDQWULy3c0rBgblMfc xIa++QItLiuxyfj3EiwGfwkIlwuM0jg4sByisvWBeUwsIv9+nHJYZERf p96DhsZXC4OTba5Tai2sJ8CmYINWQBu8GRb9wrtrEBGg2LyZifXRirTB RoTuXPOSScURU4VmzyJrVLuNipsd9V6Dnq6J4Yuc21ws9ZrB7nF1TYqr zmW1x86umJHM1Evw6NWrHX4rMgiTiwJR0ju4uc7FDZ8irdtmcPGr0C9F 3hycmg== -; resign=20460416024207 -a.b.subtree1. 86400 IN NSEC 100r.subtree2. A TXT AAAA RRSIG NSEC -a.b.subtree1. 86400 IN RRSIG NSEC 8 3 86400 20460416024207 20180815062314 48409 . ipRQluXZcAsYQqTMnV6VDykJym1bh4VujIFvWnM+oQxZEpsreqwl3hFM INUapADed66F8p7goYlC9oKdbOfqLAJSBvPyL2MJIPEifnTeFI5SiQe7 u2NxsNn1glotVBHGL37EOf55xvbO9N/y8fnIjtOD4g8kJBthaeyOCsc+ KbcOcBce9y9f/meoibQc9plyQSeGhXYtc/9jliNmnJehG+y4WUZpmeOc sy0NB3VDHMwNigxUJl4+ezSGlR7TLReeGXX7BGBSdtDigz8uDpi5vmXk Ebmxjr1gSVh++5cZV2l6IhA6l6/ZNWh8EnYWnydHZR/FdMZ/xnJP9fdK bN5Kcg== -; resign=20460416024207 -105r.subtree2. 86400 IN A 192.0.2.1 -105r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . FBlsr7zNihecaykcv61PL0Huh8SECrXoZ/unuWxmT+ZqDKjmfFGxoG/v MgmmJ9r/sfZ29e9mMnfBtXj/xJLW1dbHYwFZSt4ZeGZ+W/ohgCKVW0Fb XJTZacoWJtXhgObs6gjoab5IPqle3dgqUsP6xNvzonReL1IW7+45QRh2 nWU+4j5OTL/eO1mNXU841PtvmmotwDamR6aSoNr3X99Hwd3/3yJtRIIW JYVAr5G49m+YickDVH2gvJ+JZkswzGfbQgXqThUiSMBfHw23LQk7A1ZH aStSqsRcJt/w1pTl5cEDpnq2yFelQdmCE1DqnUIOkSTRdemk4ObnXFOW FArXZw== -; resign=20460416024207 -105r.subtree2. 86400 IN NSEC 106r.subtree2. A RRSIG NSEC -105r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . uSMqXmIDnP/m7EW1gMGI7N8Wp6x142d8xTtJTFJ4mOPbyrKBRDDdzEEQ iiistwQThYUZkM6gWpiE0yfTvUI1pP4Aa6zASUExJoO0P+CEmHTmRJ9c 2sCqottCOirXivxfC2PoxXlIZ1nQketizjzMXErjKogU4/HaaaxiDLXh P56bAeFkIqGKujbdRhVMArugKvbbkjVjE1iXznG/bzKqOXldi7JNQbxx cc6+fZTs4Ahg2H+FtQLH+WFbD+JBLQzvc2WnjqvNq5MGTSKxcuGDA80O CLEFs/7zhEBSZYhBGoVXqywvDR4j4Lox02g5wUpWlXK10pnU0ppr6Asx bM4wLA== -; resign=20460416024207 -106r.subtree2. 86400 IN A 192.0.2.1 -106r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . kIpw+6J1f7ByzuP9ynrP4bmQTZaXCF5CjRgDLWoIcU+mnqidsWwjZRHb 1q8OtXcUUEfwTNc6mqvUnWHXQHARTIjZ/xtQeAwfpq8ZGjmplXykmlDX Fl3p4cleG3QM+uhHnZRncbVSEXnOA8H9PFHpDSi9bBVLmqEHOot0evxA 4wfUkGQLGpa2MxzAXymWO6A1RdntuL+gBbRYgGlR0RnZycMMLtRNv+ou QhFEuPw/apF+fqmV82dX+XL8kEWPflDhOBbZqMO53sKFj5MG+gXBiPid G5VFgyFqsc4atV/PMk5RvQ+jRE8PgC2lWmdmnOL9D/RT0O4FjrXbq+4/ LEuBWg== -; resign=20460416024207 -106r.subtree2. 86400 IN NSEC 107r.subtree2. A RRSIG NSEC -106r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . OnRo2W1aBYVqzLQsgUF2zisHiaGnlbp1DIC3bcReDq3hKe1EqPtqffho 3UcvnzVOIp31qTjr1ntoWhNt8mOJMDzn2/UUSPQkAj8Laj1lOtSnLzm/ b8c1eFb45LTsZHic4DZoEwlhtwV3EmwKJWXMkDQZdV5x+g2RGGZ2W30t tCZllImuJbHLyCB7Mwy0ipGrVQ9iO2uCITURICTiDGKwyIox0Dr/0la6 7ZtknDiqG27PC4me5AASkGj3DaLo8ZmlBudYDG4sh/B+tryvdrhizgcK XoIrLqNjB18d9+CgKKVmRLZr6yY9aw7XSlP8euPJmQZv20CyCxhG5S+e dpCdAw== -; resign=20460416024207 -107r.subtree2. 86400 IN A 192.0.2.1 -107r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . UyerZwNc/ZaXNSvYbxxB4CpWkGVntXXrSwtyqIeBY7LUSW1738rmg1Bj V66avt0M2HrlhDJioLvHCjI0xwKxaoLEzDcC3g6sqvvDW/42KKzMVAwy 3ARu0Fm4HNlbjuaqsC1h0WqvIjJBMHc+pK5etjSRJ1WqAq4YK7fh+DE+ Bb5NMXyqWTFe0aW2nia8v2oZQ5QlRICXBQ8pvvyiOUmiv+CuNHYOTJ5N kcvekf05R6QVjTAR7cIUn3/87V8psWcHuuV+qgTJ3eaQ1EWvuO+B6rOH eYLsvHfCi0EoE2+uNtloBTL1H8URJ8E5+XMMSoGEXFdq9A4M0JvhMfcZ EuCshw== -; resign=20460416024207 -107r.subtree2. 86400 IN NSEC 108r.subtree2. A RRSIG NSEC -107r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . B0lyCGkGFKCwmYXdbTUyanhQP1qlQltuiF8fcMyPVtlUcGdML69XWZ5s PqBiuEZ13avpCL8HTQckuTcR274hxGBsP0vcMGIwHJ8O5BqhN1Rp+0SQ aC+MFTsH4Q3DenHv5hkaS3FmdbEN0hQU3PSTvjTc6X1HSz311Qcc0EVc +dcnxa0F6nCwpuNU/cuVQ1Vo7iA/4iXiGDFnek4udqGAbxK3MuAYNqe4 YtQlnA2hOTrJ7nDe+n2Id1jPcRf0SRT08YM2hUrkMjiFi+eW3kD3jSIR 6O/Rmz8QpruQBsf3xPfv5zFeam6el6rca12lcSoFFWXq0WakDF3Lkqgr LF9WSg== -; resign=20460416024207 -108r.subtree2. 86400 IN A 192.0.2.1 -108r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Odwq4YxK4F2S2jUo8vMOFVoHOCsC2CdHRhdR2Z6WiGpk3CY4qD4uIAzy JW6vpL6fKgHavZHfg/YA1vyxvJ96lMx4RiHkoQhoeugyQ4nllh8Hrp4S IJEyjNq0OqtO9QjLBSMHvrEIwVVfN/sQHainyoLquY7bMQdJvm99fN5l W+pmxMlLVG0n6M2UA/o006q7AXorgUsVMot5lyZ6TCq/YFZyAkIYZdJC zaVS+WYcUOMRQqfOmWhameS4VjOSfBjPjdO7tIgZ/0N3YsSm2mwaDFYD rua6BIoriiXUurzPZIfaI2eo7JGPB+NM3cOZDDf9NIFY8xt5SDBUz5Mz ye/veg== -; resign=20460416024207 -108r.subtree2. 86400 IN NSEC 109r.subtree2. A RRSIG NSEC -108r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . mHx6mvjFhd/o6RvTuRmobVp6p8PC21Byq/Bah8RJnZ89E3uzgnw75PK1 Kv3UfGw33xK53ujjq2A3R5ik6ozJQTIF7CRQ3g8va3yKrCttyff+dckT qBtXpaDkZlm1JkgH/H1AQ6z+4l9GlLOIcrbfwv6ypAgxRME3lcOpHM/o xyIuIdHh1GntYzeyNWhsB7SOzpqAePNh0RVLyPslPGhm7BFGTv2MJbBp BayfaWNCgn6VISbj/9K33GCZMbbh0Usj7K3HIKHoVtyoNP/izDnNCXDJ 8cNXN1SrRl/9jIOw2Z7mIt0dzxvC4Ts3SNQBdgHd4JuZV+aasHt49+MS 0JdlTw== -; resign=20460416024207 -109r.subtree2. 86400 IN A 192.0.2.1 -109r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . eI2rg6VV++ck7Ei4g/K4XH7CEKliDx4+a9xyYPDHpGZJ1FhKjI5wcJNf li4IQXP84I15EKHSyiA4CVn0oZ6GTGuJtEZWkOXndPzVTmRW0vyk1tm0 oVaYcBNfVvYd45qLYMJLTwWD0cooq/qHoFTofqKsqgW8Jxe+ziZnhqDH otRi/B6OZMmqG9ZPkAKWmC6eHyBSzHzBRZ4U5fSExkdzeqcMA9+sNkNO c1koeZKUFpbzIFNyFu0erZWaZuxgBlpkyCX5TvCNu5gxKHOMy9GsKymJ OCpg73ltfjAh057odKJd+5cZBt2sqgHTipPdK8OySn4l4H4ZiWt69SmG uoVlZw== -; resign=20460416024207 -109r.subtree2. 86400 IN NSEC 10r.subtree2. A RRSIG NSEC -109r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Y3Dz809IO18mcCEk73sQJdCJteOpR+bH77aRQfSD9pXz6xwCmlcdnqe3 zvLJeBdRrN+wbn8TKleUIoPLQZcX+/K8eVrcrHtn+Myit3ojby3WBkqK GwMEy95fxFA+yB8EWqsVPyEFgcYLiawf5Y+d4CRp1YBF5C1iA2SYDEfT lzDQ24IeI2hKsUJSxBGzhzn334ghrwySQ/8XMqVBa0Az4VCcJL9Or/ZN a7+lw9v4afZtbMlaYNQ8V65u2oLaRXPfiY4gC8j0MiUxgdpmbFmB6x9P URY/jLmhclShe2VzRiHyir2Whcf2lRjs/o8Sp2HOqCC2K3XeG4B/6+X9 oTAYYQ== -; resign=20460416024207 -10r.subtree2. 86400 IN A 192.0.2.1 -10r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . iAfz6tNv3K8iEbFfVH2M+Oj+tWLA0JK/yBWB4mERkTZaJW4Z5I5vBCYo 1TW5wj9b7QcDvMYGtgHwQ4UVZ2QZB4liQnazhqyV7OYr48yif5q6INFy NP6l9ZVh1axfw8dUmorOA9cEZQgI7PJkRckspp4uLg6NmQaaY9Z5NvvQ cRW+2zFITLKrZbtwHGYqHIpB+kdakBvPXemZfWBrMQ3VcOO//cXX/O3Z B4w1AsX3odnHQbLMGjs3tJc/cs5ClFoZxtOS9rNPJHvMs5YFyZz8O2cF jfIQwZcmIA+iuEkNP3N4zLJkzqRBnHXSWmSAIagvCrdfK7c0MBZa4jpr kVZ+9g== -; resign=20460416024207 -10r.subtree2. 86400 IN NSEC 110r.subtree2. A RRSIG NSEC -10r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . QEFhA6SbI156Bv/lxec5Og9S7gwCeTKzlToFV7UThfHykz3FA6GjemA6 3tsgTi0OzEWtEzK03a0ATPiwuleqcO4iY1m5jwh0gReKT0iDiCdVEMHL WQzL5eKXOu69G7qPxust4p51PlDqH51HhqTHWSiBIoIn5Keus7xdFxMQ IwGiyBIrAyIUZtO48FvZJLI3hNn3ChZJjVRZUmiK28Z1vkn3vYPbPalg VmMWgb+vGiHJPj/RuAfeMZ00keids2ICoV5YgYokzyO3hhr9kfF/sYQj Osnp9b3B4EC3Qm9bzTzt9CBcIAuvqQUb1+vrGssNDuAtVX68WBH/iL6C dPUpMg== -; resign=20460416024207 -110r.subtree2. 86400 IN A 192.0.2.1 -110r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Ou9f5KbvjA77eB+iAQ3OPRHwcUQrNfmR+H0RF6zInwO6fQbSP9q2jWMU 0l8Zt7GZN3rgoUpchhZBBbgGckw5qpLa+IiRBGphxeXmfeLOFMeUOTy+ Ge2yRz6Z+LhTWKUVk/vgEBxklx/OEmsM7/y+Bkiyt74+s17KLM70uKb7 AA/URH5lYCS638z7AZgAbxqblAlWqqz0WH4IB2yINUZxG3C9tZS+xByN Rc0+jL1owXuJkrNMjONcMRrPAfjTKYlZFIFoGs0BwahwTRNWlPSw/HsN X8FCtpkvL1w+3geku7eMUwokfHvJvvKBFE7c4WkL8dCxaBCbHXYDquNy AWrVSA== -; resign=20460416024207 -110r.subtree2. 86400 IN NSEC 111r.subtree2. A RRSIG NSEC -110r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . wtaj215QzpzCt3LTtSZaXxUo8wJmWo8tcjhsB5/f6VkZnxGJDZnqCAbt r4xsIMT/RUfwMX28v5qNonI2QHNoBmgOpsdiV6ZWuwpgLYrBpRkOpLDM XO3XH/5kdbQJXaRHKBRdHoHo7J1suISafFwxBgm6I+cTEIeJA5aZ6JOq r06Jb8GcqzW0MgqxRVuHcgv1n4/ZqCmJlJW9ZzCoC96lbXCmWpAs0zFz UM0IYUdyl0w/VqRIHetQlB/hf7tof4deq/rPyatxcYWPkiYEK6qmDEzA hHRWB4oFYegcQOYYuhj/gWGN1bF9UEVsPSQhHrFJpsMSQkhxd6lV/t5J oXBFNQ== -; resign=20460416024207 -111r.subtree2. 86400 IN A 192.0.2.1 -111r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Kvj8eksZMrSLThU8yas0K/Ep+k0LEZygkg9Nw/cvTpK3gKlDV0wXGtMM xEa6y+VnVmELbZg5205/haxo+diQ1+NDpNYD6GY/zgBQkIUT3MeHGdMG L4WHwZhqg6vHVz6XtQvNOkwq5IIvwZkOTnMmUwx1H3kZOO7HyazxmkY4 0ak9ggXRDBTvydarg27CX1UvAh3AI67/Jsy3LchaD0TUPtKIEK66MkkK ja8HXxAY2qiI4pc97ZvZOOjAh2Kj29AS58ben+pdY6B7d2Ea+04jeyCQ SbFP1YQGGzpI2/m39y+pcBJQIDa9aTtcL9/W7sn+pa8NTettHcpGfGzT Hww0Fw== -; resign=20460416024207 -111r.subtree2. 86400 IN NSEC 112r.subtree2. A RRSIG NSEC -111r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . w9XbWXOIjG9K+uiCTpq04S5a0ZXPK5eAQ9wZ9HWhBlNwLD9k0P+4Uami R3NoHd/ns/SqCdhQpbrR1SYnzhT/hezRzC/ahtipvsc20OCoqn5Cpmcx Kmh30VW6mxUVtV9KNumoM80FQq3jIu/q3r9I8oDG23TAXOPDc9K97Qxf 0Kt2RQgh0wYYCXfL/rlv9zUn/H73Ldj4N0gioOFwvU0SXbJVUfPG8UiO HV+BtY382maAOGMR9gRLHVX0TIKD07QIKcnkUugLRhLlgyJ1Knzetrbk O119Ti2FBOqVhvjEcm8v28bvo9XKuBTR2Guk9AzsXJQGC0juE6JJqiH2 XtXlLg== -; resign=20460416024207 -112r.subtree2. 86400 IN A 192.0.2.1 -112r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . FvJNCOO1H1K0KHlXwdwyaFSQNPdUG0D76yZkyQMhOm7wxjC84dq6X5yi g1vNXp/vvovpRgLeJPuQqg+7O2MekQUTwNQSbzehtOnY2JoPXbGmllio +hqqk2gpqcj7bnIZpN9PkjcqM/EOL+TpmizPi1LRcVl9EHfsfQdIRUBj cMdfveDjOuyV8iWtNLwPUG0bP/gqoOPwkEJIoas7yMbQTiSjAZtV701Y 0gAoM6Kc9tINYlmydqvallSow3K9DE0otRVwaR0IFF0o7uSjWo76sYsf L6UyqK1/WDMkh6gS//IT4ZvwfcXbKi/WrFS4/AurH3XyTY2D1rvxZi/B K2UbGw== -; resign=20460416024207 -112r.subtree2. 86400 IN NSEC 113r.subtree2. A RRSIG NSEC -112r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . UDQGBNS8u+0VJLat16g21VS795ucpkMD/GucIPErSyF5zTiSke8jThPA TllPS+Ynx6hcljlUnye1ARb5pqcp1gV9DN2L6AFgQfSJ/gCtUe8Aanwd ajuQtENFgMPy94nkjEYteLvUJNP0x9mmnt0Y+Keyaehwz7ppI+1eJUfs qZvZMD+i/o2lKEb4KRo52ju8MGcMXOWmgcgDqwPf5EOH3tG89fVOE90J gMS+CQbB0f97fDGWea7lAou+V9HmIqxtQkUHguxwcxYot2rx3GKw+ACr dNY4hm04vseoULJm8MVoy4cEh19DGWmxOgCMW59B8EQd1+h81FDfszbx k2NdqQ== -; resign=20460416024207 -113r.subtree2. 86400 IN A 192.0.2.1 -113r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . lMLx5WcSLY887gnXvV7zwS5GzmPas9qF7q6GI+9KOdJFcQnbRsmMZlXP 24p6Fz3qcXpH6aMKg7y5HuGxwcWfIMY5WBbdl7rJ8r4nu7UzqOXVQDIC z9Q0EVL7ZYUynzUCGlg1Twb+IUbNcCktySwbIXyt60yX87D0JX0xa0UG P4vlUz602aymQi2J2OCt9jDMjGoopvdy6D2dpr2rygeajpgPrn2XKbqO sdG4GLEnjwSFRWVgnajRM6D7ARaVp8HNElOwdQz4x97AoqtlmrE9XB1b CV8m45n17X4xXAlS8ibPPrs63Q8WLBAXPGiq4xjAubqCkWRJOaKsud7O Ovl6fg== -; resign=20460416024207 -113r.subtree2. 86400 IN NSEC 114r.subtree2. A RRSIG NSEC -113r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . XSQUXBwDasTlUvwGR7qmtItAd8IN2t5PEkp5WwyoakU2UerAOAlvWew5 jajLTb4P5g6hyqqeub+undk84ZgG5hrGK8qK8rf8EhjkPaQl/svow3eh x1tM5sL+CpKnG2CgEKmHdVEjSS5sJVOTE7qUJ1HG2+HYxaMkuNdANNuQ cAuLz/y0YPZ41c1ii10cH80+K/zP8NipEz8EJvDzU+r0NNghiFJI1leX wUeUNQ90svZjZ5XujNk2Q9lvoTI0xV0gIIdpTooTC3pDmAp7JbxXLAnV /IRHHgfX5/6SDpqtQUcRcIIAsDgEut4lktzYHmarfHVHZqeuNIardgt+ f9N09w== -; resign=20460416024207 -114r.subtree2. 86400 IN A 192.0.2.1 -114r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . kmW55IQ6ZIl8D0E+Jh/ANLu3YzE0MgZPy51DVXHSjQBbNRZc9pGAUjA7 5yAZyPlySl3WOZaMDmVSquqBt6TG3mNo3nyweUKGupcNU/AaAZlKfR4T aloJ5oB60sDPPoMZtyet9dnrncNmfUJSiWackRcNPbgzySDmxbc55XWu 3du14PY6EaG6cgxmebFmOneffmKH26HyyA22Bum1qogLQVUGzidYgxQB 3M2GgGty/mHWp+dZpRoqh9gijN7w2dKbdW2fJgaxzrBTyL7bBYOaUFL8 pAs5bQtNE9kP3Ks3yQrVbn89hV+AC6RUNOcG7qp/YsiAFPHRi/RH0rwv cuWInw== -; resign=20460416024207 -114r.subtree2. 86400 IN NSEC 115r.subtree2. A RRSIG NSEC -114r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . qYqJCfeflaJz7SH9/hax1OVxNmdD4IlPeqyj6RcZDbZcoLea1YwCILCJ yKJiQhWJA2KbF/wgVrJPSZeNNFNgtsh24Rm/errWQVaGZs/eJOQATbxG FZhVHxlx2BguyWZkLfbrFdjkI4vONi5/LDF8ooYF1hC4go0EH3+MUWmr wfKJUFHZZ4iahun+RiYvLFtg2zlQEzAInLgMzngDOaVZ46XrFitcIo6O Wy4W6Hks96RdGAdOlmbsMmCmwhf5JFPDEu3xKgVC40IuU2Qd6oQSOtks hoGmOu0tW5by7tQXRhBB9g5t6DhMUplvwXxYF7noSCotVBAm0Gt7q8S7 YZpKeg== -; resign=20460416024207 -115r.subtree2. 86400 IN A 192.0.2.1 -115r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ozrkRqfwxLgosoEbVRsyZuuxUU4XmxY2CKPQMeqwEJmOfNxVyDmJgG4y wGTO+hRQTrwRFSem5918Up1MO4Vt3vLr+i/n5aXbl4rq2jvyQidKpQCV nXxF7BWOhyHO/v8ns/5hr57ciDbz5kPjfM/JI1W03XnhdHd7opEEiu6J zlb9i653+dod9pd3gvuy9gzlhVh05uSOgpVJxjIyvRrOW/DqYg1iOsHR Ew+1q7bZlFGDaUL/3bmFxP6G2C7WxSuB4a8Wmu/KC44yb1LwFe/bhARS J9NnKpTX3SBP5A0pK4e957YqtjXRCMA5gXjmQuadgzIx5wFF7WRm+Ga/ HtojnQ== -; resign=20460416024207 -115r.subtree2. 86400 IN NSEC 116r.subtree2. A RRSIG NSEC -115r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . MvMYm8VkU6wGeUYsGTXft4vmyuz7KK/0cQcw8il3uobixnhEwtwdr+6y 5BGDV6MLNaBKWptnfUn7s5gN1t75H+tlxOrQSn34i6LacDaWZQEdHHxb A7089FsPBL3SgWeKf1Dn80YllFlpdH4xWDI9dHQgO3CuUi2lEvZ61NjT 9J7pBZvqQbb8yTzxUwXgSKRfmgjYEIRsdk8Pg8AwVmeNxmbH1oQSo2RL gpTpNKigdnA569l+2D1THUSZsMxnIk2G5IBFFDoPzpnp8UOfPl6O4j/g nExRVrGcSsZRLTwHavYrmsbMGPKFYlub0VbM/jfPjXe36fW4sMbeoyvQ eUu7uA== -; resign=20460416024207 -117r.subtree2. 86400 IN A 192.0.2.1 -117r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . FrC5ZQG8KQIopup7Ndzgh1LJCVYIUutqsK6+EeQDTBPZWEJYksRfjUMy iuaI3AzGKQEE+gBMwqXbPSYFDqj01ac6IXq3juiQXGpi5iGTgYTiict0 ggAt7UbKswuguW9w5WxL/+tHoqxtoVzojwT5L+NjgPtHKxdWjYcIoZDy Nm2YsJW+KNcEA2smFetqwdWc1bvlioE+FXAZInPrJ7dI8/5aKWiCCVqu jpOGiaTlAHGyl1Kn6psrsrptyaZbr4CseqDh3opLuTrLClA624lfbcr1 gnKvMDFFpkEIRtHDRt9h4/wJlcS8skVEUzrZna6K61U/H3ItL8rFPtnL 18L2aw== -; resign=20460416024207 -117r.subtree2. 86400 IN NSEC 118r.subtree2. A RRSIG NSEC -117r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . X4NPBF0M2VXoAw7t5OeWCIKig/KITQdBW6BxgFsidlrNacGLRYSXOlmT uFfslTO6h192MVUCjP7Nw5qXHII8vQ/joZUSO8diArhNI4rWZh5gO7De l9qpuy+Su2GzcCJ6/GltrpZDFSJo0PlCEcIiBQqZ9Tys6nHwwc7GYaGj l/biIrFJJDCv5UzYTob5Rb2zbHw3mHq0qh2FvmiYMZHo+vfCT48GRGjk Am5j8tQERyBGJ3HPOuXTif4wnQVYSHNrkMlCAfcsHQ/7FwPSyJMNQxMu EOlM+kjhmDYpiajVpcvZZ05oqw6iTwJM69N+zzuqvgcA2gQkhhg+VyP8 az9bfw== -; resign=20460416024207 -118r.subtree2. 86400 IN A 192.0.2.1 -118r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . hIP4D5QN9rCph/6IgxToHbNJAssjLJuMq1zUZswcxRxUTHvShbPxNRon vCJwZscL0FbvYErydUK93+qrD7yU8Gohk7h0CDbDmRzgLbiZBWm/vkHu 1rYV+4ICCwAhlMlK/KyR1yZ5gvy0NKnd3pwapJD0EGVQ9V7AxAG1IHk6 N/8lQXbRkf/WGLCA5d3+nkBhoKZV6P6WTtI4OJt+XJjzJD9V9pFp3GUf VxHV17wKueFszQRblAn8vjYJwDihQGlyTcrJerZ62zm3yHRSW0m98T6N yHvNKNKvVHOoQQYtvm27/GC17GcQKjG8eQMJ3qGfzht1OEGtTSeaFLa2 lj2h6Q== -; resign=20460416024207 -118r.subtree2. 86400 IN NSEC 119r.subtree2. A RRSIG NSEC -118r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ZubXMLN67Fh758fSx4K3nSLMgGsxOl6kBkJG+7aZImIXyw0W4GGSI63s VIG1DT1VvSShWiO04M7FES4J/1/OhCSANMnivntKq2nZtbEEkiBp9kXf WJ9L1cvEsD8C0ca/rYN6rjP2XUxMj1iO/8QfJSyF1iGoAofuVdlLeHoE DTFCd+MxHdslbGawtAdycxjTFF3aWDwnTbP7ID2v7wiJqySwsBYcqefd iTQh+XdrHI1bObZNIOiQB+C+wKCOLmwzhhqGuvOzGbmCq+ELaQMs1wse VEGqV7DTVDu++rMo/QZhTVsiBWy67YPP4UMtOm191i9aU7MWMIqgIt+i 2e96Mg== -; resign=20460416024207 -119r.subtree2. 86400 IN A 192.0.2.1 -119r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . IU9wuoC0CDxaBfN1HGIAZh3pC6ld8UPeHGkVrUhe+PJbPw2ELLvYue+1 kw5ObQ1/sijjWZoD/N0xOt621jCSZfRYNDXutYY1QxffTAYwR2K4/8gl m2qFiq+GHyLTFhFej7m2ZW2wXSjmLtcDi/AEOg0ED3llb/IOzgXjn5ja eMhb3HA9likWIv6aK1lOq+7dwDApJNRmo+7haRLeBecV5HOP/0Y2EGrn POHfogNJyVPTGazoinlEmeOSRQ70u6GD1foOk7j3P21RjT2MM4G6NCYu JKwI3YjWhtnJt1W07bATknoYoBGgT7Q281waUZ30nDuM4nLaOCG/Ry7a BUbrqA== -; resign=20460416024207 -119r.subtree2. 86400 IN NSEC 11r.subtree2. A RRSIG NSEC -119r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . rcdQ1ziRoRpysd8OMNH0Fn4nmDBUcPHSpe5gltLYYZblPRFU7oQrsvmi OWhl4OrIiyXvzkIWmUwt4V+THLI1UJfoAQQB7L3MK6m+81jTgLQYXK/E tgLaZynLBZN12M+24PV4PKrNqNH5qfEXolxQBcbNsYrOwdapEUalg1Nu Ge0MECjpNbtVYAwZNAtuzR+MIVmDASohxKX0aL2IYERvf3oi/m+bUv8Z VImvX6QdTw2ROFiuh5Q/r13ZbrdYG6gclt/xv+OzErbvnZH9m4dpFjXk H6/3A24Z04GBMaS32y1u7TO6Vdr3OsMiMweEXXKG1WFq7a4re663DhE4 Z/VGlw== -; resign=20460416024207 -11r.subtree2. 86400 IN A 192.0.2.1 -11r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . eFgY0mGVLLbLvDn9QvJ6Nnxp+zL1sggZhbFlIisWv75nY/5YI3TZGq4O gRwD/1TpUr1/VI99rUuKYTb30C/pFmOo79tUxuvREp5NlWzuv7sE6tWe rxmtIpSH1vQMbZkP28it4C1JW3vC4MrqhoIQnHeIDkutet9rCh/1xoa8 22c7Uhj2MsuAesVhQRJxRj/fi8moNVOS8f0d5dgqnJ2MikshkyoziJgo udYxlnQMurbqFYi4isFGujwZnOdgQNJ/ccf81JRCRKLoCGj3uTgCNI8Z MxcweQsWD/mwk83VmiyQpT2PCSwKHfSoppNi9cuRC868OfKOTOc3DllE uHHShw== -; resign=20460416024207 -11r.subtree2. 86400 IN NSEC 120r.subtree2. A RRSIG NSEC -11r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . OaQS/m+fnOUyNf7JUfUFaGBQJ30+qX+g/jZc5mN/Zm5RSmyobvpZepbw dWttsrQnaEA4glDvgde+au1hf5I4zXOeav+sFZa3JE6JqEUNpkrhTjEo bvYoS2myywt6987D3IZpmDysdCWs/kQZyS4hR+TG5zVagFa7ojXUuRtz 2y1Z925/7EPLWi3W5gKwlyQLRoA3M/OaGOFBDOEY/qlGT15HaVo/gB8X K4dvzpsIWZfgS517U2eHQWEoPs7+xnU1ifii2HsEc5XuAjdodWT5gCuR 4l2iS9JzKt9snfrps0oSI3feDLDrXpJywFZQWMwu6cHh5YrcmnuNc2KN dkvtKQ== -; resign=20460416024207 -120r.subtree2. 86400 IN A 192.0.2.1 -120r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . sh22Z4R/Ui5KsGXDxWZmwaxBarP5topizqVI68KtI0WqWu/jerkmPiI/ SQ9AKpoERv/sALeoS7uO4eJBWAW7zgPh9XiuD2NtDG3rKW2zWcw2XKvu GHWduKuy/aB6G6eUUFwXsY62sXQTV5rLHhEQ9U39x9+M4FY10RLjMGkm qIKJXyc3IV4T4GsO9BDtnK5nfd0llyOYrHyV2prGrJy2e20u00XK7jMD KxAt4ET1vlcdgvCmNXLkuRVJgA3oIAHj2l0R+H4Z46NZFsAEtNS6eejy i4SAAEXHeX9p4ZQYVwAADMOrJI9xl/iYy+Arsn/ZGsfPa9Y5g2hgQ6Ic z4DyGw== -; resign=20460416024207 -120r.subtree2. 86400 IN NSEC 121r.subtree2. A RRSIG NSEC -120r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . HfhZ5uCo72oXqj4Gr6jsTLPR9ZnXoYvLwmDPCBb5+ILw1jWzhaJdSPvg 2Q+3C9DGvQhj1UykKzjYuoLU0Oglfn22RB9zcJ3SkuBRORO/PDzociwu TbSFzdMYQW/F7bBaImHQ/hBrZ+g515pYUF048KgO1SySr0Gcu/d3JXnU A7wTdOi8b7LqSHjHBBLxjKfR9QCE/Bqk5XHO89AiS2AsALGSBB4JPNfc nZxtDzX7KAqNf5ttPdrp4j7Mo752nj56wf/q4LWmOZOE4MMDHdLaOFiT jo/Syo192MH3jiTp7gd1w//MXwd6UQ5I/4pQ8X0Lmt9fxyqyN8Vrue5d jBIhFg== -; resign=20460416024207 -116r.subtree2. 86400 IN A 192.0.2.1 -116r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . O0oUTgppI/Cs1Yy28L0iThbZ+kKNbD3k5m8Y+VFb76tJLMAGe8zxMgCE Qta2kIAGWfTX3GW9/POApn7R2N1JYl19TGWGHw8YU1HJnn25VwRs9kNf B6rujBxFY8erychMRuxX55I3KR6JGyKlYdXNKbECaPS2nG+ctIa1oGfD HxYbivqoTsJIUnB0LapVJYfdR30/UOABIq+S2VSncdnXCUzMdf6zBwOM ohXLwZtuBtQg+ZResG0ELYu5VLFlCzJ/z7D8KlV0S1wRkyvR8t5+lEs2 LD2OKlC+ap6n1aK3AhIAmNeVXTooCR+9rG7XqJ05kuo3j3S/Z7G32oi4 tLNJOA== -; resign=20460416024207 -116r.subtree2. 86400 IN NSEC 117r.subtree2. A RRSIG NSEC -116r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . CbWdqSUtXErQ00EU6Xr13vgGvgD5iZBsj2cwNYuPfMmsCkNMJJAgVMDg cjtHMD0qbDy+ETew1BRFjHc7SOFSuaHT8oq0rGkHxfXu9vRhZUfD//Ea qKCUDjoUPpPWeLoo1z6Dr/iJs5ZZxs2vfo5Bog8nxsPUdzAFfvU5jS9S PylFAYVpjpBhNfXvMVcPLnIhFSskuvc2O29HuI9QPCkrGiTx0S5h7jP/ O9noYtKNT7NOY6jf0FRSjIsqyraoMa+H4/kbPZR/bDpDG3/XdIBEgagp a8ezUQ9PYsS/HoB5+lZBZz+UROezw9eZ+OmMjBAUb1kWjEkvPcHXnVRF 8TzpfA== -; resign=20460416024207 -122r.subtree2. 86400 IN A 192.0.2.1 -122r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . NB5NXBp0OPis8JwfJq6jZL8A5c4OrObjj5UhXHmfu3QnRNG77B8FWwe8 v8pm9bRUgpbEGeQNLf6CFx5LbRNSQBoLl32Sp4ydaNtVNikU8Ob/B7ek rvX4NTl5kh/rEbbX1BINXmKW7WKAE4Qjbl9ydjrJ1FmsVZHnnnpSG+Tq 40ABYF9hKp4uH2ngc9wAuAFMXCpwODcm3ZvDgMGxGRESEbZp0ydJnoY+ SpRNnlY25oKkBDP4KNOU8Z5mRlEtjch0l9tDgUXsuB/OTRGf2wGwGbSJ iC22Mafk1BPRih8Dtybp1wwHdLEf3Uh6G9maHspDGHL0SoCoC20pDH0p 4VPfXw== -; resign=20460416024207 -122r.subtree2. 86400 IN NSEC 123r.subtree2. A RRSIG NSEC -122r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Q+RYhLVqKtiZG2gfNA5JJWs6UQHRD67thOVMP8kfXptrzCJ3zLDo4Ffw IFlkPM6BtBUI51fqnEL2Qjb5nXA1bX2p6IWOrINpPkSrhLXB4p66rNyw HyZXum6tKt6/4NMpyRPx4V0sU/2Z098s28bHo8AA7V4goC0m3NUr+JUn P47LYmK/cQ8xO0QFSTlfWOE2TC4kCY5vQju+OdfgRXPGFp2IMNUZs4jG 3snRf+xDjEGz4D2LyEHBu6YfEaaNvZGIR19uwGe8ATcINKD6hhHDZj4Q pIYzkvi3OocsZcu+dKhRE0Uq48S4mwq//YAfIBRRoiEXeYhqG6/KSIba DFR7+w== -; resign=20460416024207 -123r.subtree2. 86400 IN A 192.0.2.1 -123r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . GndMmZXvK5RaihISXg8hCnuN+mkkP+YBlvZYTkB1L75ThSdhOzry+DcW Q2YiB5y2vfQceJ/7SiCCpYyOdhtlmm4kBBzEZNHkq5SHzFydYJ+RxU84 rbG6Zoa+QHNiL3W2EqsvtRdZSYmO6I3xTtpmfn0zGiWsXRpgRv+u+6Dr yhQ16FUHTKAYrh2/PReH/Mf13QnIPPMaguJ4HGM3YfOikrDPIEwx5Lmm JgAsHpSNGvgLgLrc8rew9C1DymzsXY7aa8rAMXXBOtvp5bqPOblxSQ9d 3JUXDRZPQYr0DXXNg9j5+FLX/JcPoCiFLr7OKVO/XxgIRZMYPI9pbZbX ZXdPog== -; resign=20460416024207 -123r.subtree2. 86400 IN NSEC 124r.subtree2. A RRSIG NSEC -123r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ixCP9RE3d7Ha9aOp5SYR4JZGtUe5cm9w1NWDZWhjXuvMLFnbKzICYgbK +eEAK3HFzpcNraSUUQnZ9zrUa5tZJedqRE53JCht05gDWqOwV33qbg5q Owp9xfXhJRG7bQxxwHV8AwMBDsPe6+Ann8jDUzXKlGZUEMTRdnemd9bI JavE4R22mmUZalElWTUtOki9VdLlg+8WM+38/rE4IG+q4LP/rv8+8lrR AdUTPwHH09e4sRe24zowxIQUmdOkSMP+pXH6H6huIXwnQHjMInO557JQ sxu1jLgJa9sngEpV66d8LJ4R4HVI8WpXNoCr+YX6vf6Uru570idlTnNS QkUzkQ== -; resign=20460416024207 -124r.subtree2. 86400 IN A 192.0.2.1 -124r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . XolYJ3fJxqmokb/kRF8S8moO3lo7bV8qA24kqaB/B2jXGlvuPYAhIYNJ sifNdJIW1Vet9LmRnb4H3LmojrtiWT4NkFfSoiZVISpCQw0yUXt/Etm7 7zS7HyFp1Hn8Oedhr1wQOeqHl0sRKGoTiZXXHcR3+b9LaDyivVt1T+On JCP7OV3uctr/FXqB8LFNsCNLyNTk99fz26qQTgGGXu2EiYrApUfoG2pu ERE/sMDZO6pd4Y8I58mu7wVihEFiSqQGa3uS+VJwnCgQWArvcAF6vcbv 7T4EIhFZ7b/8JQhRw/R6UlDP5JxQhhZezTw/ERMUMJv8KhL02VlsCFGr bvTDFQ== -; resign=20460416024207 -124r.subtree2. 86400 IN NSEC 125r.subtree2. A RRSIG NSEC -124r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . tO74Eo4FdyD/rOtjVjrfVxEe85sHbjlA0sKbvD8iLBs4J5lN61JtnZcy LR8K+/QXx8mTlVdIPT+AYzDUhzhdCtZp+4gNH7sM6WhfglOK1IHr4Hqn Bij6d4HoDvzqpgcczekMiPHl1CCztvzzdt/GujwtHOVmyTTQJTAL0lta vxEbQ5tsVkHjM8zVioEm8tH6H2CSZJSGtBCyHVhp40Bzi+D2hwAtwNGk Iql31PYVaeJj7KXM2oKYuSQHFmkvshwUk3EYstIVEc0ykBKHc922T9Qu I7a6//m3u+Y4k3VyoKlYNSVfNiih1V6pBT4VqUHpa0EYfmsJVR29iByd KuwJ8g== -; resign=20460416024207 -subtree1. 86400 IN A 192.0.2.1 -subtree1. 86400 IN RRSIG A 8 1 86400 20460416024207 20180815062314 48409 . SPHvBQOqg5nWHvEkJvt5jcV3/glfVA/b6wI2gkPNgcXkoMAzBfzCa95a fG3PCJS/9sAQAgr6W7k5FiQq/PaCt1jMZBS3z+2zWsNdGOAGdKz//Sdy y8YHxI20Uroqntvm0+Cu1p4HMRZd7QyBOxJJKA82mCLkwmRrSmwP/tVf qFE8HU+kkloSbidPwmp8nmYXYjByANHQCRBY6xkV6sMK71X+/eYzBlFT uxPS4aLHVoOTS5cwdxI7LXHxlW22J7Oe98vom2Bf6kWHd1MGLYvdp1fP D3bRMU5HCdktc+4Tl+nRo/RivUhYdcQQXOZWEx1CY4fCWssR683IlcOM nLwV+g== -; resign=20460416024207 -subtree1. 86400 IN TXT "txt exists" -subtree1. 86400 IN RRSIG TXT 8 1 86400 20460416024207 20180815062314 48409 . Eq+g8WC5BonimGjapGkBlLxjpXeRI20dDx6l3e3iyL5WEzZF2jP5ERps IFD9q4h4SPizF8iu/5Rwkfvm4IxJ5aT+8Mrarsk0c1HdtNJOo0AHT2k2 KllWe8T7e4QD+nZ0nx6Qwml+AaPj7PdcAKtEKLXCJxnubQrPjLfn/cYf +lTep5kgOUfEcHK/8kxor5Z6OfOCnE3jBrfsiDXPHnoO6JBbonNTnRft VWRTnyV+kSnq3UmwU6diuhiPJpezZJhYcn3ycwTgr+1WY5na/hOYOBTD gDrf/slbSnGyzkEoedln14DROa+EsNUyNKMfkXzBgx52w4rop2hR9UOm 3Nfuiw== -; resign=20460416024207 -subtree1. 86400 IN NSEC b.subtree1. A TXT RRSIG NSEC -subtree1. 86400 IN RRSIG NSEC 8 1 86400 20460416024207 20180815062314 48409 . KONcjoRpLJQHvahE4t0Q5UlkxkQv3DT62MbAbR8xIDigv9x7K8LqrpxT 3vC6aoHLn2ERJAQAG6sWj2vizmHdo0ND5flI1GbFAJQAzELlxHnbl7aS siQRIdwxpAnkCV48jjhcPkNpOWDHmUl8U+OVChTOWaRgChTMsDxWZvOC zbO4xzvHECjfw6iZGESSCLnQz7/FVQEG9B78nigXkx3QutFlvHKjAr7G tbse6i6CfQQWD3HUxlXOpYR5ZyUNXNwEQQXvKvv8o3B9b1dXhVgNpP3s Qulk3xxuKcbeZlvfOr2vawfY97VQ43mJZ8DVs/IXYDj1xQIDvUaZ1eFm mAi9Pg== -; resign=20460416024207 -b.subtree1. 86400 IN A 192.0.2.2 -b.subtree1. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . iZZnfKUQIy6LbOBnjzbnKgpbAuolfWnhyiVKRDC+u6iNMsX/g/YQ6eDp sfaORTwV9yvVwYAXfHk1T+cFcguF/uM+jsVeXKWJTiMb8UDpNGzM0h4L 3ZAZv7v5FyMf/JNpg87JwyWwO3HU0BHfiCS5S5X6yCdEdbKyXrUcUgi3 X2DA6jm2GhPFsycNQndc6uwEgTZOKE7cxfVd/rlYhC1gYMafyu6g+NZY WmFQ5IHGFSwGJiweVQoIsQfB410WH4OpqtQUhwTbnh4qCnHqwnUZDaYA bjL3jJbOlieakQ6XW6h8ehr2+on7fozcdAuUee8OKutiDn4eBhZiRC5o aIdkFw== -; resign=20460416024207 -b.subtree1. 86400 IN TXT "txt exists" -b.subtree1. 86400 IN RRSIG TXT 8 2 86400 20460416024207 20180815062314 48409 . XdoE/QvnjQ8FEwSKG9CuqQ2TdxGdcMjWLGOfIgOoHOEPoGZD+TAfITw6 NYICtiujV4/9XRTQ8h63nVwhUjVdsGO5D8JLPqca/7fOdLyQ42hNnAmf t2KawvzqC1Y9Z7yMrcW+QC4rT1GEEkQMu59F35tJAsWODMZAZXDL28z/ HVXcxTDU+bcP95OYEGhnknFqYjzdk11zWT3PaA2RPt0GlDh2WATCtEc7 nr2ZhsbYyyzlY1glQhXPpjnpBcZXFP01wMhKcNH/vcXZF0AIi6N6nIXJ TO6u/fsG2RflsdpiBym98ASuZXA1nGZzMQ6nO4IuWafaLRUQ1feBAJLH lst32w== -; resign=20460416024207 -b.subtree1. 86400 IN NSEC a.b.subtree1. A TXT RRSIG NSEC -b.subtree1. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . axjtB8r8jja6iKQfdd4Qt6aaobdM8kpXLYAeJg+R8BXv7D+2Q5ZeCikc gaYaomzhSTqA7cdyv3ov0W6T8yZZ3rkPLkN6rwVNHf7Lu/cbF7q8UuaP O7pyXJDxp953/T+i+hJ6Lq7HV+Be6K0Vgq0+w0xe5BoTNVcBRQFu3QN1 Nu2m8ZsVhouM0aD9QDs/PqrCPktLL57xLVMoU3SaVhbQdV8VYZy+t646 zkDMQU7ZgvnFxFA+qyvVM2n8TRYImr4xzrIcOncz/td+HCni/EbCS2by KpE/xHQWthuSbiiUMXC6Go0yN5WKvOO3Ef4c6Jejw04XCg7XxlMmIDTa /KcznQ== -; resign=20460416024207 -126r.subtree2. 86400 IN A 192.0.2.1 -126r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Y+oDiMv6emPFsvhyVOFd5w5OdHxWAcR7b8P6fHZEKWrgLspEBlkJJbCT Jg/0D0JgM2tSVw2G8qS8MdMEOrgrWukfy2H4gQn2GXd9oX+Q/SaYCxVZ AnnbX5duHLYKRUJ7aQ5S0BLUdqsQNzfjluNmAJAmrmqB/4qq3LqiOt4w rPe2NgsCDVx83d7lHEeLc9WY2iRHN6XEBVo0JuCH+n0qMItmnXAW2yRF 53tw9E3xzV7Ql8mZ8HfYkRxvs7LUnIBnWm4WTPxNFgW6sAuaovEHrCj+ S9edUSrKtFexYoj5NdYccEz2mVEnUgVkHbBGXBdplx3eiOAuH06S3+pn LAk2WQ== -; resign=20460416024207 -126r.subtree2. 86400 IN NSEC 127r.subtree2. A RRSIG NSEC -126r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . B4/GyQfnLIrgknDrWgMrRO++hKv8z1pFd5SovWqOXgfu3/pQ9F06vfL/ oo/w7OyQes22whJqZ5YHt7vj/ZcRQdzFyVUcIpAxCXV5vgFHhQtX4ctw XhW/HZFNeVEeJGjzVhOaSI92mACBdzMuywuqmFtRW6Flf7YyUZMchZOv KtR+SlKtXXjxtc4bIABPO7pf0jFBup42X6pv8KORhDSEq1gptuX7MrCE ZAT/6n2yk+2ilK+Gz5dKgxkwqKLg297jB1G3br/ja0dM5KPxXQxH6joH GmfgRn0YKOzKV97PklDjO36+eRSOXw+voQmSnAS0eOXCb3zvqevYdAg6 bXv+ug== -; resign=20460416024207 -127r.subtree2. 86400 IN A 192.0.2.1 -127r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . bZQ3ozEF0PcebMQWveJURSLH/8S8Abntn84pBAuG1kCzElCGrNPXQg+m l5Oh0dM0cMoZUYOgpECLR3mKE0MOvZfgGEgRFHHJEb4M0PipuLn1GfWD jGaAKQ3pMAOptg85aRleMgcHKWaAmTxV2C9TftEpul5o1T37Pumybe8t F+LS+5KlSBxOmNpQzXDz6Ladd8FIzqeUpA/ARQK/adt/+L3fIbuQ40M/ RGIRBrjQ4kz2YJuVqcvhNcdQitJNhXdRILNYjGKvuj4ZHFp6KXWoRTzL x6S+PYH7shrIkTqVeCziDy3LVtAaKgto59Kbw8cq0m5Yldyl+z4WQIq0 t1guyQ== -; resign=20460416024207 -127r.subtree2. 86400 IN NSEC 128r.subtree2. A RRSIG NSEC -127r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . uKm1r0A0BuyTRsYGjGoDDGcNld1VXSck076HxHJ7mQNusuKQZ5lfNtRE b2/FjlXukHQyXEkfsQc5BJvUjL5WnnPUSDBTnPercSCf6lkB9PPWOeJT EuOHGjCZC+wCYSsuz3JIaEhHwsA8JE3Ufj4Ld1S5FLyt+Y/smxpKg+Ca Nj2Um+sX5H6OkgXJPHnQ1s7rF+fTuYbkz/iiRU0CnDc6sfyJJjoDF2/9 ahCnNTqdxUjSK00Mg1flt3+sJCJ6tHjYdYgyANUKc65ZusPUKdGPJM17 +oxSrzE5+biVZllfYRnDYopeayciU5CuyUNl7Swr6x0EI9TA5t/KVD4m F/wEtg== -; resign=20460416024207 -128r.subtree2. 86400 IN A 192.0.2.1 -128r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . b7G4uESmTYUIboJyhjzJUIGJyzfwOMgtQRdhk3+hGC6p0lE9QIAHoTta bUk5VGHvhg1FTE/RaNelXK3z2WmsaHtZEtEM6IE3j/9w2d1OCX/K6esG N0dLxynR7w8ZWTTC+5HZTgNURHD25Z0gMWBkiFv28Qwr1zGPhURUG5JA s8dZhsSpA21I3bkNaz5AJDMFxTyUTtdXG5jc9SRFX3jgPUCzsyNjf5W4 H2c+4opkhGcydcUPcsc6tbocUGzXhQU83Im/8Updz0f7GY7uzdaDZoeW Fz6AveZ4EbTmzWRXSKm/EEJqEOyy0xxKAY+CHocz5J3QZfbNjbEN27aC xhzsIg== -; resign=20460416024207 -128r.subtree2. 86400 IN NSEC 129r.subtree2. A RRSIG NSEC -128r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . eJikYm6Eb+bJpCxqIgiOA66w+mJNtd0MeA+oXNgl5JZVHuBLx88g6UhL 6nxC1RFY86sujHTdWnXR8KeHUFASsyYVzY/KQbEeOik7oTLcXZp75s6X /22WIxq2ahvRAXm/PCB7UEiZb6HJNhdU0vTafcUznYahO7FbE0Nw9fDD 0MPgOdRl1wtApItW1ZG6hUq/UYUKCTQHS8jJY5cidOg359mQB+Ik/L2M HKpk3j8bTxbHE2NVBIoScDQT5xqd8rsQAbBrtAVBBvIVcqgrd1fabr0s HKWT3+21ucs+DLdsFiidV48rRuGAJIrYPsteDLOgtZRchZxoUGOpHWPJ YVGs9w== -; resign=20460416024207 -129r.subtree2. 86400 IN A 192.0.2.1 -129r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . xvPIWkuZ/zQGallRWH2I0V4qyV2cN0a/A9j/IGhnrflC58PKTsjkDu8x 6qemDbBM9Xo2nkdI3G7YZZjB+fZ9SSr5SuSMtCvmoUQOWjx36x8ZBa3S Z97oOOptOJPQLWYK957QuwgEtS1/SiRMZPrXFoMWpPIBINTcHPrXTYNg 1jgoIxPsXjinZTuO7VXPyRjlhhK0Cf27yomKku3zBkrwDqBH8FpKajD7 zq0uFztSY1MkpVgvfmT+6mxuVPiuIB39h/A7k6/sV+5G6Yw0qaL/hzER 6TYIs9cFw2C9qgLHeLcPGEnFhCwgEuk3wCYtXJtzCBqq4nXRm6OKTypP E9kBVw== -; resign=20460416024207 -129r.subtree2. 86400 IN NSEC 12r.subtree2. A RRSIG NSEC -129r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . g8Ym8RVSbxNVY8D4c4iNmHRgm58PPUE0JBaapvJTrAtt9Zj4ho/QYgnH iJGvNzIdEySGYD86aGvWlWgXKdsubnRCihSd88CuRDK2CXuYE2Jw3sGN SFRBkY9hOH4BZ0Bms95ZZCmjCxzI+6jMfkwuKGhI7K23vIg3oVpE/yHV 5HKVs5WJr6K1gMQOF8XrwlsJbawHYNsOOMuG5Y3NZWUUW+3L0zwxMMK2 d03f1AJpS1K6lqfw08FvhYgAhFoVVx8unB18UqEW+L8x0a716o27kACG 4fqdWR8TKhSG+/i/HVMFulBaWqGKwi1g4UnM825aEQtVtoOUnMYHOvmQ u86UcA== -; resign=20460416024207 -12r.subtree2. 86400 IN A 192.0.2.1 -12r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . RQTtb1xIPxf3rvjpYYw0q9RcPiRPlx+uXg/1O0SNrgL8sxb+QZuBjEjz mLgOioX+g1zheFDbftKswUTb3F1vyKukW/Y62jiClb85lezH8EjTcHAQ n47ZSUnNGA7jFRMkrOc9i2hRo3H8DkMTFa/d5RFA4ZvFe3/jj4zWJ3YI aXWW7qUgDutPnrJtcPixOAD//KK4uGRxKwgeo1j1E6wkjyht3A09klN/ hZtT7qN3xruTu0mF3WmX/9HEOQhU4wswVHKHTGOMwh9h11qQsEu6UBgZ PDbAIZytU4m5ZStKg2QqjruNlS0lU3g6VBpOQ0RlZpzssPkxyRdQTCCq c3FEBw== -; resign=20460416024207 -12r.subtree2. 86400 IN NSEC 130r.subtree2. A RRSIG NSEC -12r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . KZEpHmob+s8a7FK1vLvmKWB3SWcmUP+tWmMP2QxeeLjHY+hZKU01F4tV FlXAUqLpmjuM2hQPfhPFqhw+Dpgvh4VUHmwO867t2OE82TNGTb63PDAm Ri0zsb+IObCIG5n+pd0mhV1gn77KSA72Qf++5SD1TqQ4b3zu554nzsig 3uqkpXbzYGe65GY6yVOW5nRsdo6qOMfcZIRFyPCSb5xUg7u/OaoOTV0C BaYx1o0dpbz5/pfriBPHPHkL6SXnOdzI70nj5m0ZfRQpKMgLOP+UW9bf +pPD9NHjD+UEs5LBQgWjXwymgLy+GvoCWURlWaHfDvgHT9fmeh2PlTUP 2ExVyA== -; resign=20460416024207 -130r.subtree2. 86400 IN A 192.0.2.1 -130r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ZYhlWkQY1P62dVBDxos+9jRishojmYY/0wNvx4Zj2bHJIpuxAe6xvIrt YWlj58GQYlfB85sLp8K4/zwd+fahEjy1aZrmmfJJKVPLnQrUcYQBt9i1 RbTjR1smcSVoiIXu4FdDanbJc7sIuUpQOp3C27PImyfZa5qUMCnAxcLL SGhdvFLbii/ALAC5OKVxEqjAYtlJ7NuYZlxa/ZhruHnDRYBhh2QXSatx M19Mi9QboBMEd79U5ym2nK6HX6AcaFdimpK5Q6F4BWskUY+Qls5Y0PQH 5TPG2LiY998Pi5Pol+nnsfKMLJ+yX6bELy6AHeRHm92m19iu5Cbzg9SY wfRUTg== -; resign=20460416024207 -130r.subtree2. 86400 IN NSEC 131r.subtree2. A RRSIG NSEC -130r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . J+/kpBOiixw9TPfTRZXv8lkVS75TRukn57NKGPmp85uA6uGTsmAr+uMG gtAAqkxmkz4IeF++sjjaKxfK3afX+DrA+9ROUXqLeRBaut/abMocM5IK hJlMSweF6JLDSVkqFZ2lu/1yvTRTnIkL0XACrNfvbYfCDFAD8Rn3vXBB MkpsbfQ4mJVruag+OgP3lOyKDZPjMbjPR3l+rD5ywerfqfda744sWtRW A6xGpluhgUcJJzPvHGxrdpaDxKyJjWCN+JcP4yjfNrXX1YYJ8XZjErHr 5UHUMRZqEOxxNt8N7JdzHMieCRVrcQlB/oFMWZIoeiVVDe206seaV5cX 6hur1A== -; resign=20460416024207 -131r.subtree2. 86400 IN A 192.0.2.1 -131r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . yDl5kzqQVeOBQANC2Hsb6WmN2W+Qul8r1L8LzquzWwYsjzYQOMeEKl7S ftHZSmLeVmEmARugRJxABJdwjzqfbOwHs0wAzKMrjp6W5naY3PH2Hehl vsi9nx7SHb2Q1bBMH4+OLfHfhG+E3tN5pJ/djdN2ksng+O0gSTAkYa1+ ym31BmIrtEBLUwLUUUvq6JWeU3Tw04JKeI0YXDL+Ve4Qjjwgrl/WhiId VGXRKgpGHy+GcB4pI/lJBpkQUWhjmd5IFkGbEImb1LDmAxsEmpLxTSEr dOlY57azlHqOfSVdSZVSiaYV/iCEvHW2a0+6hia3cFkcXBPzi16GiMEh CdbeNA== -; resign=20460416024207 -131r.subtree2. 86400 IN NSEC 132r.subtree2. A RRSIG NSEC -131r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . h9PV1OZUSaDHg6esVRA1903+gvl1LjuL9uqnmwfBwno/AeyGlG3H/UvD mGP0ktjftNcNdxLXOsKQ/bgoFT6771AtwpTqdBwcO0BPZwabh2tgUhLY UoMY/LufRyLs/3niI0rhBLURVvkG34aUJ9SIYa2vvxPZuaZevR8LrSrY etbkXWKiiCMeFb8y26xFjo/nYsbOoVs4RZr+24q8zSfEXEzeCPqe2uj4 NZtKOuSD14zP1qiWczlK3xOOFA9lU3MhOpyxXBv5mgVq72Q5CluugN48 9Jkp1bwZj3FPBRDdBJWkvJQhc3X1cdE1YQ1uLcvHyizdH0Cn3YqsRKh3 RlkIMw== -; resign=20460416024207 -132r.subtree2. 86400 IN A 192.0.2.1 -132r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . bSSIZRLnCDmGki3LVPFKkSG7FMHn7NUEbIObjHsKYRoBDMu6Enjrd+1z Qrt3mGkQg9vFVsFrcVTKPn+7Sq8Bjuur9knI9XX33tOszxWUFBk+pdAl tVtFLGQ9arB+JB8sISnEZZzD3/LID3XnUwURuemjLjYdzKZ8YZYvUoq9 DQJMZdScCBs3NghCJRcJ+Z+faYaQDepnsznmXfFklVE2ZMFjkejJpJPb qCO2bsPppOI9scQ894SefP72sehSVER/Fq1C6eUZ59sTB68Dd65yS1aJ Ft6WTTqp3pwysKpTpNXpxHCLdarQP28T9aBp8tHUyQu59S0Ir32tosXi iafxpA== -; resign=20460416024207 -132r.subtree2. 86400 IN NSEC 133r.subtree2. A RRSIG NSEC -132r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . qY8oCvoTEvFhDw/i0KCNZJvrlj2d39i637X69WOZ9pAHcsgs/BWSoxcR Fg+wjMZ5T/rqVuBmlOZywtwt8W1RZGpqmBzZq6PgkE+QJ3HuI3L8nxgS gkmeNMLqDDOH/Yq64u6F/hsV4GMlqrLdPTSVApkCjAQCeYtbv/vX+LIS X8hKaUjzbjRjKRfV18VwXgHdN8k7CE1TG6c4MN61rDuG50/Bzj4FquSG XhKsznV0qd2MuE/O/Rk0Iezo6QFrqukb9remAz78HfseDp7UxZ3gvCOr 5ZgN4LnXqEW9NbMznyEFqZQi9C2UzcVOHX2WXVWuvphhhcMPor0QfEuy NC6/JQ== -; resign=20460416024207 -133r.subtree2. 86400 IN A 192.0.2.1 -133r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . k8zlvNtimuoghUWTrivzYIHg2y5nj3zErrgjIza67br+wy6k3SfHCLUm eDBFoMptjFyasoN9lYYDaKFziT/xOK4YaQKlfZrj3RP1AyKHcVBlIeea ZgF5LFHZiX1RtaMs0mnIkRk2B4DbxuljX8fADLsJsmSozR++Fr+nv2wt xXHbtodiyT2lQUJ4A/rx/TMJjHxBmNPGeXOA42KoAV+fbQx5fcYtySsz WBy9KMNylpWl85zqrXAi93shwDVJc7AsOozXNPNQAtw9ivRiVKzJp/Ya AQanbB+t0GbuwJUsL+Iz1wdze1BdLzo9yi5DUqAb2FEhyRfcgHywpdXA 4NNT0g== -; resign=20460416024207 -133r.subtree2. 86400 IN NSEC 134r.subtree2. A RRSIG NSEC -133r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . r8Eu/Q4l9RjfZ7R9vBJ9h048xdZS+P7Bs5hrY/++5bmE6+nCBkGXiK6f M+iBCzMOAIjgCkNReix7a78+MpRoQkUJ+UiMB3KIuOfsRWUqAEQwm6Ss 3XuGvDLPG01iBPL3nY38XfORJT3e9TRXml0WsmoFOWLcJGmgaOYC9m+z 8RERNtyA4S6YhUGyVdTGZWcIDF9uQXzHaEV3rnYLJ4keayYr1Wz/8y+g TKHPqO4vpaj/ta6umfaFlsBh+ij+73mdnwPLORbNfjoelqTvac9ysSIE MittrRdOtebOa1bSnuMixp/M9JKDcVon7ng9YQ96koKyQAulMOZVukoH So9Eag== -; resign=20460416024207 -134r.subtree2. 86400 IN A 192.0.2.1 -134r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . s7kYOZs5grqw/3bmKBJn53eCs5IfIwXHS2LAjRcZEt2NpfrFZstYLOR5 dGJaRAFBHgh0n+7d/Tk/iEhvHo7eA6AJflqhGAYaoe8jcGA+bheI/lXH nFA/2Ct7pE4LPF4kgxrg8GdOnAq/lA7mG4BU7PDxNHFCbBjJRrZAtbZt rPszgHcRty0i2FOmL3LsUlRJYJZaNLxw297zXEouQ4S9URMsqiFL4QBD ALDOUtEA5t30+0DfSIxbxgIv5ELZ1y8FN0DW7o0AXOlmVj7vcWQ+65/F w1UsIbAYmoMxd3GovKTjAl2VT4uZ8pSWn21YZSm+mxwEhj/KlXi3vyZP 5F4kJw== -; resign=20460416024207 -134r.subtree2. 86400 IN NSEC 135r.subtree2. A RRSIG NSEC -134r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . nn23Ag8vjOKtaGMdeng/lUWZgtPNjQh52KoiIKOHNjcwRPcg/ABw4766 x/DYK5A1VzCAHRiXHxjAQDCdESbrZDURPiVWJUsAVKYHegkuET8ehmSp v7o+l7YhJzLqnwvbKHNMnXq78j98FGt7PTroughRV3FY0OJswKuxM0eW QnUAWn/126Z4m38hw8Ec2PtTCxS5Q4g4RefL7QEN+7wrZBMaYKMYL+wW 78RLqWMhGomI94QUNG4bhLSZhl5M3amVnljugdNOT4WA5Lvy15fQ5yfM Y1Dhj1l6vR0WN1S97mCPb0vEJYnNkW2XQZ+edR46FzV5dlIzhZLBKx06 18aLmg== -; resign=20460416024207 -135r.subtree2. 86400 IN A 192.0.2.1 -135r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . mEUP8TKOZC+6X3NmaRFiczENU9+KKIalrmRD3fgkAIvogcDUiNkwo/Ii +PiHdJ5fJubznQyo/dbMep44pPWe7ONAv3+dW50ibI63UNRzcJ8T8d5W FsZQ7FeNNS5QPQe4TMacttc5sj+09IMgCADDa+TP1hgEMfFOVcICacbS /ZcZ1zol82sbJIf6qVW7oKSGP9WGs38gaNH/DP+i9qKGycMFUK5L4oa/ lKXO2xgiOaBsC6s1VpyNbAkkk3xFEfqR4XOYMdyKSUApqGFubuLdocn+ KiMg3FonJt2oH2rZPEeubyanbKK3+gHvPjHAzH+FpTl4SJoBNKg7oqon DTwgUw== -; resign=20460416024207 -135r.subtree2. 86400 IN NSEC 136r.subtree2. A RRSIG NSEC -135r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . FEoC0LiOaR55lIqMML0Hb+Q5vkqLdpJTAFK2zKbOntA0uSNPDyF1+iO6 8c+Si9E1QeteSUa15I6tnxE06g3uUEkGp0+uxHlruYKaK/6UdI6cJBBC UPxBqMqJydDcPKPJdWsmiOp3rRjPdwbEcLPtUqclLWr7FgDxpvor+3lV b8Cmogud5PmTN7IAMdo0hXljS/+GU9K2VERd/6z55Yk1jcQI5ZDSooa1 oY0HtssSg95QKn0VFw6PfZisDAgMsXTd1qGaomI48q4M1Nozp3XIHhaD YYGu49N26jkG+WfQXzC9ND0r0YpR8/FKhDo5VHryUJoDxG5F3CyN6f32 S7PSlQ== -; resign=20460416024207 -136r.subtree2. 86400 IN A 192.0.2.1 -136r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . UVkngBEk4LZEtH7qI6nNxKJUoiWD7maltLy8h78nxEndS6mWqW7xq4GP E2w1I0PEaZV8Lzss2y2Hnl36uJKLgx3iqL/r1ycRBZgniEbfMxe3K56b i2qsViHKDBqKxmaOWsAEd0YoYJyiXYQhGZGbJFrDav6kCMrz7TMgCx5r t7Ng5XCsW4XfEqT2AbPTQdaccc/mYoJoNQypAnm0KYLvMtI3K1GJQlJ6 b9pL4ctktvW5+l1qdKUEdQDYgzx6kIb7YrQcB+/Hq6EA+oQMCWclwKos byloRSKgAIJcZNiHiIFHvilqgi+LfCGtvd/VU+M5if/57Ad5IdzIqcBL BmytXA== -; resign=20460416024207 -136r.subtree2. 86400 IN NSEC 137r.subtree2. A RRSIG NSEC -136r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . N/CSs1q/X5rVNErYAvM+nB4xBEeS6D/muzFOfp8wT0iooCVL5B4AlasB eu95iD+Yqvj/2UPpTODjDqCwq0GNJMkin0/PakrLPvGVjqaGUTibwa3/ 0uffENpVohWee1G/AmN90qfYMrHdd1LMFmbV1zAlr7/i6TpgGeYgLnyJ kFQN9PvWpHJzgRf6w5Kfy9rAkb+VolLOtaGysjota+FhL+vZdbZExTKf YeoajRvALe+7mdTSJl+fq0CvJmHIMHLZQ53OBrLaSH4ArT5L43Qb0td1 9GFIcRbnMPQxRDGacqTayUtDl707LhoN3Zycn6PCFvgbuBfJZgpnEdfT kwzu8w== -; resign=20460416024207 -138r.subtree2. 86400 IN A 192.0.2.1 -138r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . dd5AaIiOxGjLALDsWlu35xdOGnzmaqfT7dfUfV7swQEJJCI72xUttN3O bU66tRDNlGyPO9NF5FhGpqtlYde+cmkDsq9VicpbcRFGPzd7/iax9xkG NmRcss1SSqoShfTAobS9bmQNY769p9a29RxogqyW0ENHCuMyNrmnfDCq 2Ps28Mi7h8HhZkaweBq2E+K5jfvvdMpV5S0wGnXRItgsSulMltW0rAys 27cHbxeZruRKWwiF6TvXIRnFKmcDdJaB0wyHmGcbCp8yPP3cs1ucyL8T Jog8I9OODr9bkiNqR8hYe6Yb0Gjos9Jz+8sdg2j4GPTC799E7DQhDmTu P/IwbA== -; resign=20460416024207 -138r.subtree2. 86400 IN NSEC 139r.subtree2. A RRSIG NSEC -138r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . sYHaUjamI6bt1N7W4vexUPdzHO5kDj2xuG0E/3ASwpqwkMFdkPNLTKh5 368WZ9Jc7inXp96GY5UroJz+BvRuJQGW48R0XL3IZ6mxX7KIeS9srvxM +tjyc+ub6wrTXtmQLcv61+m0T5CNMmQ7LvwMmxOgtMgGOmBtTZ2sw5S5 3mvkZmtXihMDBnEH1/lJDgu67LtD72ULQLqMofHSjazdNWkxIjRkUQDi UWqQ1RHMf37UK/PA9U/y6x/VXR0IPHNDcEme2gsc8gS3nwbZee+eDyij cIl4l6+4E7ypn5s+PSUaaulzJ5r4SlQvsljyeoHd56X4fDld2X4NSYdJ Vqmt2w== -; resign=20460416024207 -139r.subtree2. 86400 IN A 192.0.2.1 -139r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . daQs19zKjNtGzUILqvBev3gNBsGYSGPix4XW3KjPjJZRChxJ35FtZJD3 3J7zFUyGmvSMdqeu3SGUZPJQsjPfudn90nBQoixB7P1miaCP29VxUmw5 jhM4AeefB1N16Lu+e+XPWqjCjPmfwiUHvWLq4LSPG8h3vQwMwJqnAMCZ 5503rUtno791CZGGXAxAdJoJrYFoEgaDcdqk++0ls+xJLWgJkK49NW8b si/7eerweQHe6ugYU7jcpy+ZDOabHlmHD4/pg0oL9Iw5H8Ar+CYUhUgN uLjDgQlaw7lWco9vFLr2Aea26J+jOhKSRqLovm8hOl9yFv+M42QbUaHC TmHzGg== -; resign=20460416024207 -139r.subtree2. 86400 IN NSEC 13r.subtree2. A RRSIG NSEC -139r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Dcf7I9Uh4Tbiwhz5s+8VlC1O32GhHbSxDqeiwDrrnxghi3luXUerBWg1 hdb0zNRWDxnKWSryWVf5z2ixnO1DVQqqkI9u822xc0Cg7MhdEKtIHO5o xNDSg538jIbcrpI3yOyyfPoS74n5Rxv4bpbltWTuZIzYm/lbN78t9PKM twTHlVykbw0teKLEIkkRMHrVziwqZ3OO5OYeWsxkaR5gaNgUnCAgg+gS tFAb6I4X6cB+yh1opulG+hEZga81CmgwS0iDBor+vD8kTFqeAnQsHU6C 7mmaqP/gNS+l9plTYs76yR2yCdsDhKulK4BWFTjrCfPVtacJs6mooSg8 hIwgVw== -; resign=20460416024207 -101r.subtree2. 86400 IN A 192.0.2.1 -101r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . naTWHH2lrB8zSUEbz6CGNZty1Ugf9dIFewyFcZzC305e6XtCPW0JlUPZ 0jInSEJg8dVeVZmWB2/9IaKlCtTCdUw9PL2b6lBNKenQFbb5dtTgZHvL nscMdS5VhTiu82hUNnGOAgvvrPbL6sq48r4kYqon2aE4w6C1S7hiOjGZ Ba4j3lhwLIBVYm2dmn1h3rrr2n9ZJWMDQIjyApx6CrcawFLA9qfyCosC spm2qXEMa6ErnCNjwl/GXsGxW4Q74Kk/xxYEq/xQaudGsHdJfXZ5+7N0 CXcuzfVpXYDkRd+M53g/T/K0ZWhIm3r/wSBj8zkpsJ4k8wUDz0sMG97u iFZ6gg== -; resign=20460416024207 -101r.subtree2. 86400 IN NSEC 102r.subtree2. A RRSIG NSEC -101r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . V5zFg8xsuFrlbt67SRtfgtw0twyy+kSd9oLuyRikZ1gIzNwI6Arg9MmN pE29waWsmKEx/JLve2iV906CGdansOw/of71SZilPXH9L+q4w2zCJRkl 8fh3YjAv3B7fulp5UYc075f2vcxqHtqP11b+a7MS1ZaCGA7hfeMqzJez B8zPcxQ5qU35DUYHEfx6ixe91a5sf8t0kOZmliZ0LrXu7JF75x9mfI1Y y1+WWRh4MPBER/4y/CVvQF0Yf75xKdDVRu7nM7OqLzwiZZdFiGIEr6g6 2JCEYhZMdLJ+QIuaEpKF+gz8zfOqgZ4ziXen5o/Ob8OjmxAOI9/A/vGE Dm7sXg== -; resign=20460416024207 -103r.subtree2. 86400 IN A 192.0.2.1 -103r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . pR8d/NmAtcsBFWTXaqsR5LMSiYHHYlFg7YrMef27Sms3rDDf4xVrFUpp jhBMaz7f7ZRmQ9s9QxMY+Kcgz3/cB6Ic3ku8avkYS1eRhWY0ouY6d+Wr AfK5dplkPq2rZG0q+2TwutSEYC8YbXsEBw0PUgrkJb+TX9PALgN88dXi fOvF4dLw+fP3rdltnWU8ha8EMcz95OtiuiMXD5LKJEs/55e/wdBh3L4U En1F+iBTlewF1a+/1SJ8Bf67HWH2vZUd0YHDNKoLaCfVDa0dFAXZjR/o suYLrC30Asnqvnn30tzoT6HRql9FX4y9a8npbAVGgHcFsnGbm7QGRlfr yPXE9g== -; resign=20460416024207 -103r.subtree2. 86400 IN NSEC 104r.subtree2. A RRSIG NSEC -103r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . li/pzRyR5qYV92PvcXGMraDHPpfS0aSwzjZb4b8TykvnDLj1ho0Sc3GP MQi6M7NZ1aqyxwDXlJFGBYOEOybSC/yH8tIqpOZG7cXQm6OOJ8rWVCHX sU0+h1Hxs0oban3jnbflJnqW7OCtOFBxLApqS1AI/Wbu9qStqCUGCyZ1 18j4sewPatQ4fQUcw+nXaiPNV45lKgR35fOfoq6CSKWjecboY9BvAn+w 7PXywU9g6mEfgDw4tIlB9LGtl7MSYagHJnQX8+NWidZyzLHCdhePDYYl 4PfspQ7TCZvsLcerU95ETtp1iLyOYgQNgbobY3i4Ner3yuf7gtrMxHcf 7GbW7g== -; resign=20460416024207 -125r.subtree2. 86400 IN A 192.0.2.1 -125r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . h5fOzVZEq+smgW8etkQddwgA6/TmQ3CTPHkLng1xY9V0hJai/n58ORk7 nDgpuy1A09tvtRuMolQmQIDUmazniagyWYxvTg+VF/lQXmMASjLWchQH tlKAhmuu1JN1b+exsJn/vn6dZ5E1c13yd6c6GB/emtRyF5fbeHOedInT EbPJxBkhGDo3CQXHDN7Hx/4I2giTQz4jXduj3vt8LcN/JOX2uG2acPgE RRgP2UBb2sjVeOKcHkRQyh8YsUMIMgvfZZOYTJycEm9YlLZpafg/ICJX U6aiAYqp7IYKjU52bGs/vGG1kOMgG73YDDZOkjCV1TVQYOVBz70dYl5y CzXfTQ== -; resign=20460416024207 -125r.subtree2. 86400 IN NSEC 126r.subtree2. A RRSIG NSEC -125r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . xk3GwzP9UACMuUs/0waDDlPfeJ7dZyoRHCfVl9EH3FP2ff8H9ttXjZhK HA9uqRPKf9nQZ5SsSIH093JsdKOHTax1E1U0HaN8aUsZ6wffWXED1Sk3 nZ2jKrfFhOvsz0e8BbemHl+Sn4B60O+ie0IEvNX4qKypc4zbZjUXKq4C WDU7+LJilB4OoFOtic81ZRVA6rWVSLIxbehJ7mbaEA0risRAbF5mT6HW 4OPmOZ/NxDG+5JKPuYpos9lnSjNmeUFuBE4i8nfm79Eq9KTak+clNJSZ iXlCY3/OkGSx7Je+fMa+rXxIiULKEopAFVTPCb7TKw2UqVclAAAOwf8L v0Z72g== -; resign=20460416024207 -140r.subtree2. 86400 IN A 192.0.2.1 -140r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . vPLnzmORrcydMv7m5Qs+8ppHJZSPRHjLMOYISRo7UAsEfCszaaVv4AVo H4hTLrq2H7YbklEI/WsCSCZI+cm1bD83siNoTRgTXorWj7srLKIZ1UAw 32ArfkG9RpWVAt7wmEYirWgIRFejrZSpHdIa9t7sFa75buxueNEhnGi2 gPDBeFJDlfLI+YqZsUmjJWGgM7C/JLhGVzcQCEHppjtLRmjwRVZ7Fwbq v8S+ESjoQCTw9DEYglqYPw8VrXbp5yFlMkq8O3sxC7S1+OP/bn6ipXkx P3L1gKaTfakSM+sc+FwyiNFKI4Cqxu8oIerJxBk+IiOhdi4+drf5PPPD KjH46Q== -; resign=20460416024207 -140r.subtree2. 86400 IN NSEC 141r.subtree2. A RRSIG NSEC -140r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . pxg9E6E+3OteP4DSEUmH3dJJIXp0kdLG20xEP35PH9TA3bLgLZs0Y4ny zFDFUiRoesKOmjVithOpbjbYu8Jm0jOK1MXWN/AItzqxpgC5it6ut3xH 9briU8VTGS4IW0XfLwl5jofHnZzeUCR++7vkK89BI8VG9nPzsjORKCzl MRJ1Skjq0KeNxTl/4k+uc1RhXSToL2EPW/7AgdqsOOQI/1+bZ+8ZmsdN xkq6kZTOsnLbvx4GM8IFKz+zfQVZWgptsbDf/RiprljqUOdPbeYl9cRt JElK6hvBcXvp6KFjodMk6YwzezbjyI+pmUy5BQFn317H36UGief0Rd7T t9lbxw== -; resign=20460416024207 -141r.subtree2. 86400 IN A 192.0.2.1 -141r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . s0M9Sv/nxCRcj/+QW0pi0RbTpTdN19RejnoYY8KYiLJzzdThRyLmwGRg FOsEIS2IbA+zAYdiXejrGxqiGP8F6Djr9jULjVdrH9bfCnpqBv1HDB2n U+ma5apsAocchcyYJjkmP4QsDAoP0vUu+jhLh+fokPzG0lnAV0qOXZSD l8DJpzKtH0F+0vTEliF/21usW9DmOmvPKPFWjB2PvBq0lsoUjSc3v8/U oLiRuFlRnruUUgAMN5m1Oo847CJ5FV4S7b304PHHQicjlOxahhBbhBGJ nKv/wvCjnqyT2l5rkgZVHg1GIDDBt6riY9+oxoYiOkjIed8oRUySJqgg /VvARg== -; resign=20460416024207 -141r.subtree2. 86400 IN NSEC 142r.subtree2. A RRSIG NSEC -141r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . VCDQxwBmXbc3Xg0Dx7w/+Icjl9zLziJi68YVgJC9GqynePbBGv7Y8c9l JMETd133deacHm/KO/CTE385PKkg3hxV7icsZUi+9mYxuKMSebUcq0v5 fa+BoiwMGDHq1ypx+U8/T69dM0nB8WIVXXUY7h4EojABv+nceg2ctgdB E6Q8iFXZhQtRl7KkTYOSGYXwBgaiokx8xza90SgVInEk9RjsLrfEaQN8 yRuMD5QTOF6vx59rzd55ig88tgXO0lULDbUFwwTVfM/P/wro9t1EpN6Y lEIKzB2AG34M3d1Ff+oE1xmaKGfiM3OXaDJ9biWuHNKdmcqcVVN/QfQ8 kSBgyw== -; resign=20460416024207 -121r.subtree2. 86400 IN A 192.0.2.1 -121r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . T49hjXWYhZI/lr9ElgAbuBilAsfDoautCeXeOEcD0lq95BqhW1IL7/Ma r7jxVviyQ8q0HjDVpbwlMTGDav/CG0Xsxh1I3fN2gRBEPauO7N6CQ6ym BEF+004dH1Zmk8NgjsggapWcitlzwmiXCxDIuVFSVTCiLQ73p/uFjBDC ML0qIy14B7RQLnMwGQN/7wFMqJTYZ8hnFnzJepzFw72ykQYqV9NhuYd9 iF74bU4q3KXb/ZxU517uRQ7Nz4k8ffuNOOankIFKjjjUu327rlycziR3 Jwy9TH9uShXbvEef2mhgisiAaNVFlYh7+i/AgDSBw22Fv0a95qyMlchs kTevBw== -; resign=20460416024207 -121r.subtree2. 86400 IN NSEC 122r.subtree2. A RRSIG NSEC -121r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . PB03mEoq3UU1YaNTWTv2WwJeV240u76occSIJ4ydGzmTQB5Y/K7GFlck O4vk444DRKXkq5JNLNGt26y481aXteR0g2FhWZIcR4G6ryNwio6XioO9 wB3FGZNe5w1D586Y5mSqNpAITV/kbTVB9HHM6BHNjrW58OUyT90Xyfkn uGU1EmwAIu1QXMwDpUbjqRa5hAbEhHYrLjYL7bvu8wQ1OiSQ0kbQK7B7 3/l4IcMywykDmPcXwV8gm+G3DOZ+Tr9j3vgmNs8w3K9EcRMENGo9zVEQ qlnt7w2e+P8W+avwdemx/2D1DiF48QYRnfFwvCWzVpB/Gl/JdsfDZzkC ry+bCg== -; resign=20460416024207 -142r.subtree2. 86400 IN A 192.0.2.1 -142r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . M2+OjdCI8RU/X4ziIxBR/2aUAAXP1im94Zgp9e6clzNHs+3v5213RRsb Y3QTqGsB8O9+5B+yV1vGlit4N9Zu1Pksncx9Un5fa7pC0Cw7qmmLtFgf Uaue1NnHZPB+1ImCGJfnwHRksfA4SLaOkRKYcy4MlQDZ+kGWP9pT+PQZ onPrtYHluaoZgYSQMSItld25jomaWcjNtrAeU7SdzAWXcfwneX6sf6I/ igelmxGD+k1IfrJ2fAUcQuTR/JqDEQLWVaBLsB1D3WBC8BQif3MFY53Z 7/TizcH3ScG/qn6KMYjoyLW5k+02SA90Bfds7sbR0uD+sBHAu7Yp/L/D +J7Lww== -; resign=20460416024207 -142r.subtree2. 86400 IN NSEC 143r.subtree2. A RRSIG NSEC -142r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . dDa7tarIl6gdQtX/uOz66itjuyZtJ/GwxEXSUuxlqWvlI1PC8lYjlHsZ 0ss7xZRUfMv740xDDXY21r3n4inlm8OjTmMczfi/j3bbQmwENPoJKFeG 5JhQQOPuFS3PVjQnaiaVSyusmpJqCBuwPMOgmqKqoN4QWWKymrxYWWft SO0qEsb+K9UYIrhjvjmTUPUA9uerNZ8v6UW3lD+AkyzP3eH8pHP8KzUT EhH2lO4sVfX1aQpgGd6Gfeu4R12yzPqqH6epfS6N0DwGYGH6Je/b46jn bUf/tP9/3BAJw3xO+LKEg25sNJdQ4TzrdMY2gvyXYNkMTFxmO8bCeKGq I9ZoxQ== -; resign=20460416024207 -144r.subtree2. 86400 IN A 192.0.2.1 -144r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . vouYlS0l2NOkfSjVK4qj62oRQprrUvs6Vh9oXGmlEqoN7qEyj06GAwz2 tQsR/Yuz1c1AKthS5mbbLYNVIRSvHcXwz+pPx6nrcnlcMqPLZxsq8XnZ GQfTiVOyIdxLDRqppaAflpz8NwxNcNiNrVkTc+mZnTZBhZlniebZxUPz UBexrWxUBTQShUu8G5q79PH1XK+4+ZBsT1zBXRTyekUHbIF/vkxvmE++ iBft5YCnNXyJG1aXOvVvFmpOXYMj6Q0i0Z2nghVvlBw7zU9Ms8nEwS2D GBNlux7k8bA8fyPb0x7Ktw611EZNoj9IUbnnYOcGzli9FdZRkQROrUU7 7gYw/Q== -; resign=20460416024207 -144r.subtree2. 86400 IN NSEC 145r.subtree2. A RRSIG NSEC -144r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . LXKaIEqlhXpgW3s2wCOozeOcuZZzd6EPP5ntrD/ZF0Ef28US1RsrOAm9 ffXeIrv7zZe3elJC3ZsMvrsGe7ue2CfdXRMHYp7X/DaZfo2BsDqxNn8j yUfvawyVfByQRzoBUa+sWx8YWZBPEwsYPj5cvg14lXi8KbMTWeT5Xtgp uacp/KfXAJo150QiCv6vJRJPuV4+OgfvG3MieJKqsykOrd1zpixwvvPd OKQ2WWcURPH8p5ozimacxdVdvxabCemQ33ksiDRWFlAHxMePkDLNP48w Nb1/Kf3Xfn6lQXAe7Sf63v1bjGPmHqNMLjiq9si9AOt6SN9/kPKFh+H0 OaGzkQ== -; resign=20460416024207 -146r.subtree2. 86400 IN A 192.0.2.1 -146r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . FIf5murAK7JG32Aiquf9v1kti6C8uTHzO/zYOI+CPI5XlwD44OtViTgC FyQUu9ZGdyg7FFYKtmLXDD+irw8Rz1g86C7bBrFPHN2KntKLK6q2K7qH stsryYKqGbSyktkUU/owA5C34zzJ5ubX1kTJ6NY7GbFv6mlOTBb2vfaI xyiguxFl1Ic1XCvlkCrKE2oSesBtjAWGEAoPFYf+1oZgZbk0OB7tNpXL MreaemYoWvICTTVSPggiWOcmWyfwjzHCrtycFxK39b0s9bafKxzlwv44 GRx2sl1KvBhB5JO/Gz+KVuDyMpb9nhG6X5oOSqoNqQ4B+M/3dA7lcuDQ 8xCjOg== -; resign=20460416024207 -146r.subtree2. 86400 IN NSEC 147r.subtree2. A RRSIG NSEC -146r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . SrHI4fdyyLPVIbhzkzz5um2wT4eQXAEWCq13XnZcUQsn64lH+IYDQgcU wXt5PlKQBpB315hyAd6V6O7ZKBy+NWI6l+SSSIrSX1LXsgE2OfBocmlw f9hJqsD0Pt0KDODjeQ00mJF3uWz6VSASAWPeStKy1IYe4FuYWfD8vLZ4 1ZR6T8jAgP+O0TYZaTv3C2fCNiRc6PWJn5swmJydl0VYkX4nFmEdztlO yUNkmyAXDf5yjG3rd2qoX2di7x8Kk6eg1ANlPYmWhd8NpPmbTngb3tv/ c1bYg7Vo/w8EPOUmaAy1CW1GoPwXSqdXXmAPq2rXh8a7KCG/tOrz8Euv t3DDGg== -; resign=20460416024207 -147r.subtree2. 86400 IN A 192.0.2.1 -147r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . itMxfwAPvB99xBemNGQ4wTq6q6hshfxjC4amZmFtNdOLXOVZhkwMlhMq IG2Wg36SYpEBmNSfagYxFj3ZTz9GdULbRgb4I7sMVM06lCVfumNcllUR nrvwOc6vsms3RWxntFkW19hG2x2kE4We5P5ztUitMwmVsy4ChprDyqls VRGEmqdEFv6xgmOxCeYhBsptwt5Tr3yCIvjYb4wO7F9ACmO1RUH6j//W eqm3DDZS/QGq/DjxhepWyIgbP4/CLUUPH33+NGbCTMxtwnP7V5/afLWX DSKr7hskDKDz++VLxmchw3OMzBRAHoRkRSJ26i3i711WHKOGs/kcMhIY T9xAqA== -; resign=20460416024207 -147r.subtree2. 86400 IN NSEC 148r.subtree2. A RRSIG NSEC -147r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Qp5LV8mmTH/nad5/DRQ3Eja/JdZbBT7d7htQBL6DizIhdXw35fa4x+Lh eRRXtRh/HgmqRLKgyQvaLKqdwC7SeuCk8dezeJmvtFirrAcgXZlacOT+ b/3yS3xgStmfDlnpwxzuhuxoIADwyxonb0BDxZYKGjGZAiAihKVZJah+ ApVZkP0ikLvWfSRwUeMGtiC8HvpL4W4c45dNz1G0SubfktzPWaBDM+bD q151REswVl7b/TpqMNG/YjAgE09zCLoFtrt40XbDTrQLOCM70r2n46s5 JQBhoj23HUh2QidQdcwHdUvO+QZOom+pxhrBx5A876AGPr/on8r0Mi8H OYoLwg== -; resign=20460416024207 -148r.subtree2. 86400 IN A 192.0.2.1 -148r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . f3UZIkgKRmT8OO71vS1xILRITsURjmYu7Ivf8fRv0EgTY6oM7DnpxP3b wizevoLNiopyD8+ZbpeaqcA/nvW5ue45oShQsCrhDXmzjz9JlK/4/o6p kBud56M3IDRFrEXIuaaY3WCDs7/RCs8USBMarUiB0F5QLSVz5HbPcFvE WPt8FKws95CkGXhEa5FiLW9PVpmEIcvMb82vcOMLg5WeMQtXH6aay3Ve 5gauH9e9xQD4zlW31VdyzTEoegmR4shKM+N1Jj/H/O3S3iioYbp42VWh XY7L4Dhq0O9K4h9RPk2YBsv9yXYl0ea6ONouQq6GBpvL4UtkCk5WxC/p f55mfQ== -; resign=20460416024207 -148r.subtree2. 86400 IN NSEC 149r.subtree2. A RRSIG NSEC -148r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . A/RNTWjoB4beOyWVfe5KIeF358CXU7QSDFSlq9NkQgM/hdOoWBoP7BfD 5i7shmE8HkH73YmlacF5dXEGXds/AoBFWxloxjwuF96+XPgeATgna+Ce fcpyfHJoSptoCUB3nlu8TE3GzUBFnHYNyRa2vOPTGAI+uaDrAbbw5vb3 ID0+ezMr2m3hHlFQ6MXfz+UwlEoURz2K0T1WlGdO+WDPXZys3yIRa+IG cYQE/iM6yPW1yorjPUCP48Bg2M49Q4L+H3HrJe+mGRxQnheZG1VENFZI D6P4PCeRTQxkeo8d5L9Lik0QmHD2/PHw58/ZVQO8tUkibo/wonIDwFRY kWFSEw== -; resign=20460416024207 -149r.subtree2. 86400 IN A 192.0.2.1 -149r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ALwPUCoxbaiFK7OZr0/LTavFs34CjElZw1KABbHPjlYcMJQ5N6bi0kdM TQxfw33vm2rCBR1hbMzYnsQqG9I5AWDnb687d9azCpN1+0jX84o4Ku2n YqRI5o/KO6MV0vhI9BZj7WFwBSXV1AMME244vDseoG957wJ0yyjTOyH9 SJZlmGewXdr6Ugy80/2/Z+S4s7sBMSe+dkLkh7ctzJuoGMHIJIDr6mrV TTGvhEV3C/Csl20SY/qzqNQMHCBui9CqPE3Hqs5ExdgNcQVH+VIcSrW0 tqaXUx9Ci4OwKZMDUuUWktKlSl058+qdfileGbSLINvIrewwZJyunPqi Kz+0Gw== -; resign=20460416024207 -149r.subtree2. 86400 IN NSEC 14r.subtree2. A RRSIG NSEC -149r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . xhBfQabVy2KIGOr1RLN0IT+GU3vhDaQr7fabs+VQJfLG6Z0xYzS5U5Ti 4BrhcRsIQzWQOPKnzUe08o/pNVCqkoP4djCziCx0eo3UOZd6GggXhqP7 U2EGA2YvbVuCXEScq6mEMBZNgTjEUVjWJ00zF4IJiChrfHCmK4H5Eijz h8wGd/hxMn2ZFpYGAGZ1nkrdzoJjsEF6xtUrptTUD2MT+tWKZtvDyl4A MNyj/rHOkOTpSTHotgWDXwdnmlRK7AC9LJPVwO7gebmMFZd7RAGVoLNR PJvpJY08exrpYwNnG1ub146zIS5HQuJDH128JGYaeksuJWczatJJ9OWa mrJemA== -; resign=20460416024207 -14r.subtree2. 86400 IN A 192.0.2.1 -14r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . wAVrmJPhxufbdd1jzJXHSnYpQVYY4Wu3vlVNwqzRhi4dTEJcsWWO8SnA k9MXqNCnZKMB4KHMdr1XMqHc4swsSrzKyqOLSPlYBWR4YW5igEtgtNV+ VGkWNHBQsDGxA645mRVrOyFAFSL2GMK87IQ7TGXjFjssxUlYt7zoxt25 Mw4bwZi8oCi8ybd1q7IertVelqvWbhohKbKza9suVxArSFjayrThIedL HHd7yWncsKCwLLuK5+ZrFJ4LtETTbdPC5hybUGsJ+S5migqr7t4xyupe m2ZLmHOEVSlzexa5YuwK6UQDgCfUpBWeBT45gEjU5ULJ5H7YjFooaHZG 1Ao7AA== -; resign=20460416024207 -14r.subtree2. 86400 IN NSEC 150r.subtree2. A RRSIG NSEC -14r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . iClXhruzeEz+KZrnHBbaDf9Au0x/txCi2DbSSU7Kt6E8gFsrTg5mZdHW WPdJOC+vOGqoSusDlp6VAr4aZitRLXtFaNOBflAMogsgLz30hdzz4CXY jklN4ZYGYWAudbB5YHJtnSqqyjeuqeEL3yQTfX9LkFgz7tPVlQzbnMfZ mz1qQ3ZWFV75h0CTs5XlZgs+n4i+OqoiTTdf95kcwqxhDG27eo2WxJiX jVXWOPe/vSermIgYzTvgW3EiTS8H1sFgPL1kH0u4qSwk32oEQuYky8wV dLwlMvywvFK06hDWDJ3k7s986IOWenYxyKtusSnsnCAwknXlnoyc6AU6 EDpAlA== -; resign=20460416024207 -150r.subtree2. 86400 IN A 192.0.2.1 -150r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . pML15hMe0UtCSkZozDf3GPKnCkEc1ZshVtv4K6xuxdf68H9ND/Wm8Nlz xKwJeuzOJKuesMGOP8iB4+JBuRNzP4ONCNbUqGdAoCZiznW7l1LwFjXG yzxg/JkrzAIMf+FrvGycU3m/hzQe7w3VzVrxfs2r5GbTwAnrvz8iJAp8 pqwHwsLtLb57ufLA/bQprhaEC9HmlRniBBIZBp2Sz8hWkTNySIgv4CuV tM+XDvI1l8wC7599BWdKa8aZ9N4kVUiJHb2vTuSKrgWJ5yxb6iGhhaAP J06+1IiBjF2JxyzrdDU5xUJjAIYREk6NCOsVTB7j3QApZTFRPc4lGrRe KzYLtw== -; resign=20460416024207 -150r.subtree2. 86400 IN NSEC 151r.subtree2. A RRSIG NSEC -150r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . t/yZAbAAQQ10vbM3j38zn8lNH0/hcFQ7cByPn1EoVu5SV5oLy0k1SRtO JdF23wXfENum3Y2S8lWKURLNPJBF3HFS0CQhhSLpQaLZgFR9L4iugiUD SssxUhKZEQNxCcRl8JXQyeVCqGhoKEJig7CoVmw8/V5zZgg6ifpLdfVD 1r5fbYg2VV7PQbcpK7QYEnfu++38XErQMOrN2vO6XUdPAVxQ3P52Bnf3 ICuklnSznX1cVWK+clEjMez5/GdI2DXmiLKOL4lcxm+RYx8JBroLgE7A tL6sk+DNlxi4DlfT80+QIBrIHRptJN/IKMolju37H7P/1kC3LL8LHF+v 10XgDg== -; resign=20460416024207 -151r.subtree2. 86400 IN A 192.0.2.1 -151r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . D7loEcCxYOJXNKryeIFn4CwBWMRQ+n7z97b9Q2uBhhmWJm4jhjL/sDr1 eNLRRdIjWzHyZFt/iXEsN+CNsPw0iDvUQkeRPSeCpwXoY20twh4Ogb9z A6HyItif07zVVM5DAv0XjznRfC/VEQ40MvRWV7UvnFdpnRnl+6w8p+dg O+nBNCx2TlUEG4tFMxGitU8M8rD5P6G7HLRui1WeY72B3E0GfBR9DnxV 0kI0cdHp/hbQOviLYXmGsMB1GGVpN+ZNtn9sZhBjiXNLkelEgTX2f9Yx QcTy0ELv5BrtTut/L4DxCNhsu9lO6EwYc7G6pcBIwyWpZne5gYVePNKg ANfHBw== -; resign=20460416024207 -151r.subtree2. 86400 IN NSEC 152r.subtree2. A RRSIG NSEC -151r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . S2nBDfiRUi60h1AIMQEtzdQ3K6iCewWCSRByQVG3E37GqTXL5jt/rcyP tLYRr8pSpN5L8q2WTi3mtL+Wf9OIlaJmNpasyEscfeSGHvAoUionGMsE OK9WqFn+9JGfRLwkxUNa2SoqbZsegvUzxgFabreFncgQL4tSHaX1sI6L +bL4l25bc8vHXiyCQa6d4aSCBa/5fdlZUW4U95U6mKl17h7eLWJ73Mv1 07vZfOGXOxtA4yuz+YXTt6nRcZm6qj55j6bh2PUFiUTKFI7sGAiqzik3 MJ24wOLOHza8uydnkICFHsqBptAnlL5Y19N7IumoPzsR7OeK9DvHb1a5 lNl5Wg== -; resign=20460416024207 -152r.subtree2. 86400 IN A 192.0.2.1 -152r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . m0jKSX1mH2X3H0FBaXx2Nm5JCiwEimWXKyxqDTagax69EdxLmpV03k47 CvDNu9TULfhzkcAn/aNRJ+0XiL29Y8DMhRuZW8AkegbR3HV2cSN/5Fgl QfOg4DDVAztIOij0PlKSQ4/nilPFgSsNTXM4AuDsW359t4iH93FeUvOj tNSVOdXh4JeVPQH7NYuhOSUXuFNMP2ScX34D6Bp1W4p2yWTRVLhSWsXE RJGtLXAjnFldVYaagXDse9Da7rSm9GjmY86skEv/kkzKtLK4px39U7bZ wYiQJ5ZnBQCbZNLpefWusnotjjF8C1xl2+MLtwUkI6hTe8+4VWZuf5+J ABrCmw== -; resign=20460416024207 -152r.subtree2. 86400 IN NSEC 153r.subtree2. A RRSIG NSEC -152r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . LZY2vg0maCCC4Fmm3kvxMl5gRyWkVwmtWeFfvnLwZy75QJyGZSxT+Rj9 aDU20CeOzsW9jlAUM3iB6Pcmn/smjgqaV/RJ1kcoIUh/f89UWFn4ZXjv XZKSqHaI06GABJXtnarsfiIli1W/bCsQIPng1LLqtl+mV4SEz0ZSMWIc WBsXfmnFWOj7oO59UQb+CYldaZNS/WfpdX75OA00u7sQbIvN4ASKa1iI /UZX4eyDZ8Z9dwQ8Rq8XRFFUb3wklURHA2jF8nCklcbjpcFOiq7cV9ka 9BD4fOrVnkYTqY4Aj7vR05iV+llc7dk5g0SXMC37OqHIrY1uxh5toDb/ cthv4Q== -; resign=20460416024207 -153r.subtree2. 86400 IN A 192.0.2.1 -153r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . S0fTs2ZCGiI/bMHo9YzZgYIi8MDGOcr/844OdRhuFcxvoU0VcxU6Bhez AMjV8nbD6xH1iKx/4jhoUA6VJms+HxO0DHDjudNpZhLQWhS0UJPF2X3y vUG1XyAZC3T9g9FnOVNbEi6ORSSZ77ZYFQivlwYoIfr5PGJ6MkeOUvNb F8jSi/c+j1rAFXkPheXKFLJbHJ2PT2p3xqiwSOWX1lYfYTCzRlDrpnqb pjN1t726smKfUL+/snXV5r047AGqqvefqBIq8XmUda8Yewu978Ocs1OW ZrNrBDu0x8k3iQshitgSW7ivk/SDSw6mEJHLQhIBb/vyAt2czsHC6jfy wRAYbQ== -; resign=20460416024207 -153r.subtree2. 86400 IN NSEC 154r.subtree2. A RRSIG NSEC -153r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . gKkuOJf15J1G0qDffUAjjoSmp3ychacQyJw4YihvCfjZOWtvNJ44GGmw 69Z+dVjmFNlpARRVDRvMANZbZ8jQQ17OfH0ZYA7O3c9FdiCqibppR6Ai f2221EEOGjejgXxVpum2ERPPnlo5XD4OxM0mn7Kyi9gjsNVvYBvF1oo+ DmxRxuKvz/sjwhhYjE9sJU3yIR6EXj5uDEsaX0Vv9G1D9IfkKPqS2jxw tEIWPIxRQsssfZQd43qZxtIY9If+CnFVqvWmWOsmmpNdHLeMB9UmLWpd TFV5DuMiWQNWytdyEa/d4k/QaPcy1d7gDU3w7qXcsTru6+4mI3niq9FO JIlw4A== -; resign=20460416024207 -154r.subtree2. 86400 IN A 192.0.2.1 -154r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . C1RSEI9k9LlntVROIpuZn9p4T7uMLcZtNQFacghr1qw4VeJFmziMCsww QYazrqkbIbwDufP8d+jHIajMtcYhXm+bz5GSGPSYFk41PzQbhnAmTk7k R79uIjGtdNg6tc3pzKC5+Op0TBLQPjGOzUkvGO8Z1VheCHdEumYBXw3H WmNxMvIICdmsfpN+CWfFk8INHhhw0AKSjW4mLYH4w6SY32D5km9SYXYQ 1q80fHtm4v6iNBUZlsYF2QmiIMXjgAnSbCwSYRv+9yt9gp7ADxpA4zmN gGLw7AG8xC01wYcDiziEkUQJKdPpiEcsTds3Kvc9UqjTYObEbXQelxCW DY1xew== -; resign=20460416024207 -154r.subtree2. 86400 IN NSEC 155r.subtree2. A RRSIG NSEC -154r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . GuFnrQeKviEGN7YtsNURisuq04tauVEnnOgAaAyAFX96WAH+pkAHeyPG 7hu1jbPkdEm9kA6j6uZEQXe9WolSlwuCfwsyhsnaXCNesrlRntlnBsRr 99wglXg1eerks4/uDub3DgZ2rtBg76hA6MVu3afBJ6xopvCDbCJjk7Kg PXX37PcCgOcKuj32dDn6GCNIhf1ZD80LB4kIZCS76r7KSj6Arq9ijWYp 7bqe+6rmfD8AgdICMYn3E5e+0C2hqSQLulrLNfQzY3zXkrLXXN94qbYf QiWW0EUcf/IHb8kZerQAYE+6o+hh/IuD1T9mWJ42ueEigd6kCdK40gBL 7ytzAg== -; resign=20460416024207 -155r.subtree2. 86400 IN A 192.0.2.1 -155r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . gG82211egHdWycQMwsz6FtX2DrYeuaQ8mS0VCek7UIaARUhhdTfA0eQI LlF7aTFfT6kzn9VuRvhRFkeA4rVrGH4BWu6f9TfEBiq2C/VnV7j4eyD/ IOo0lLvOlBJtOooQiQ7INEhTF3vCbboZQJntm/i609vZXQFlSljnBoia uTJkeGn+B5wqVjwuKPCGrInUGy1L441B3ZV/eA3sxbNQXC+5PMf333zU N3puDUfMl6BAF307t9tBcv3LeDB063dER5uZkYHvmQilddssX5yL4jRd KR1VJ8Gb2NAQ+js0KsZ9M5/7yfIEQCmG2qHmsx/bz3niuHC8YCKSJPdn K0lAcA== -; resign=20460416024207 -155r.subtree2. 86400 IN NSEC 156r.subtree2. A RRSIG NSEC -155r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . UhDOIagmyaTiFRApGFkIYoKtM9/GDCRDVu4bAjbQqfuayyFE8y49piro zN0Of62liFjV8DQl4iCQ4uh7ENCe+bCefnnwKzTHgu0noDJz06AZ03vG A8USwN/NDKPuvdplGTjTxDc+07obzc6jHfwgdIIrmLdJwYk+fEMY/1qu JY4sdh+MklPZmSKQeaW52Re0cqX06/ChupapJzqTTIxS7j102vBi5Xmu yEz7YQ+j6FL0zsmdzq3t/wW6alNBRzW0HHs05PdhmUClK/PMj4NhFUyG Le2VvtAipHfjw+LLWvAWaR/BJn5WslGTZ2mHfCDegAG7/K3f0Fs9onc3 o3jsdg== -; resign=20460416024207 -156r.subtree2. 86400 IN A 192.0.2.1 -156r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . exFzVr+RoPKSjpAmZAm1ANj8d0Aiu34YGyKvQ5j/IBUYzE3Zlx/fl8mN ABwh6JXp5nQMoRanVwNBP0JY1GzTxsWXLAfwW5LjJq+t7m0o8jXQp/0M dI4uA+6r29dAqHM7VpWPVNQGDFv6hicM249LU7VhPfd0UODvSEQFqPD+ vLj51gT8ch/gw6B5OlfY+eOLQ7OedWRnmwSJQP5gDCKPxutpmapm/MKY YjcONphDXIX+OINVGfewkq+fqSrjbqE0HTlaQMpwCvjFzk54MzI8J41u 5VCWFwVcEWAzU2Q8tDPOqNen9vVph8ltTSznqAsNDR2Ifzn113uS+jUZ jwuZfA== -; resign=20460416024207 -156r.subtree2. 86400 IN NSEC 157r.subtree2. A RRSIG NSEC -156r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . FHLCW/aHphFiJgzIrRrox8/5Y6jsYrhCtc0S91UAI4XXLwnNx/fOhiuB K6+z5GAF2GQiXR5O1EusZrtr5Wprp1vYOYaAZ8bzR58fgvvWAqie2FrU iinDTzDiS2dg5UDlJGts2P4kGc3XJq745EbpQSsicsELD0+XCHREv7vD 4AfohzG+RhZ2iGl+kBbsEaOPUY+3FmSShvmyjy1jq3dAcN0ygS/vHFmD ZHomYG6E7eFnWYB08cHOI2BFheyiDwTHoA7hXmxvMeK6yw9e7XoCGIf4 rliOKjRHabC/Q47kkegKUJYJvVWelvcCjTjF1BIEYQlcFQcmt1RMF41t iA4s6A== -; resign=20460416024207 -157r.subtree2. 86400 IN A 192.0.2.1 -157r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . LqqdNvo9e+TrHcQFlW+GBbCcheSlWqNwfOhNH158MwhitwaFAdnVOTT5 N6KKCOGX/KzFmYWLBtI24agapHop0lei/wE+5UZkGTRM2OmDHm3rx8JR kHrhhmlPaNfvPl4xPKy+G/o3ddOaKAEsqW6FMTO6F/8AAKvQ6qmxBvBa lJFtz1YQMXnxIgzqfColBenWKroKlxOGW4WvdUTsfrGHCAl7daegoBuO LHp8b/3Okwz1Khm1USCp/G29H/bA4TFZ2AYJHFSsdZdrUSJGycQh+tdL DEx5Maw5pVRBP0sO4gha9VTL3+tEvCMVMeiojM3YuTuUhBUvQXwchbgE q/UoRw== -; resign=20460416024207 -157r.subtree2. 86400 IN NSEC 158r.subtree2. A RRSIG NSEC -157r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . fNbdH5MpGI4J7hSnqnNAVKG5WSCvRXQHZotkNbEQwShjwjgXkt9xx8OU fob5B8NKwpG3/+QADxCZRN4krLNCb13idukKvJ5I5w2GofTU/4gRz9fn kX7U6Af80+k1Uxo0APhaXD7d8HOagTg/vIXNmaEcgkNQpw7W0Ve82e3+ +y7g1Z/Z5Q62aHCHi+P4kTO9fCYmmeQ+usGeKdTu4S3LSwNb4xd77stl 4Kl8H4KnRaMZwpJqBBeZx8QDGh+yu0YfV4RTt5GG5MimOyO1hDkaO8QX bGwUYPEL7otH0HKv6EAKSZrX93UArwljjWKSOeK2pbaGJmlaVffwRpGY 10yZjg== -; resign=20460416024207 -158r.subtree2. 86400 IN A 192.0.2.1 -158r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . GXms668xIDKeVeM6+2Fm/8TaRDcrZivaDUQvTtDjlbhB05fABVPpwUCV MSc27hvyxnVvAro8KgZuXrDUCvIVySR34c1hZRXeOt2U3BTLTHDlUdtg 9FBYobe0Rv4jrdueQXeTGgN1JrtAE3ujQwrFscebgckWC7ZqIOIH7OKw gCuvPZUdJFsy206TNEUjiTbZbNx6uHkvH8EfPI6qQektSTDvzDgBmaMD 33a7xIOAANmImj9KOKx00XeG8iokTKmEr3/B04UA2ToPf4BK+HVNjTwD TY06VSpfe1rA2eYLSX1dD6x4vjomrb7O5fmCQRM53OnvEyP2rRWYAdgt U5gFgg== -; resign=20460416024207 -158r.subtree2. 86400 IN NSEC 159r.subtree2. A RRSIG NSEC -158r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Y8OI/fj5Ld8cr0vH5iv7l+0nX2faZoWoUBb+M0MMPorCJ8mX5K9MAxSg Pr2pPThIIbvX8oEvJl/1TwkEKxZXcdBXNje0vMoNjEJpgnRvKPgbuvrV aTw9gxh+M0Mde+nWnMZBvhwVmDPrtfIc7Pkbj2LhzENNzaLbOckQFT3D 4uK1Pv0ikgdMiA5m8Pi3kD+vF9wd4HaDio5Vfjggt0jrBHQ9Iw2s5bdQ dloEmcumOAD+r1c5ut690r9TrK1nAbgqNykg9QtxIU/rWQa2CQy/UrcA s9khzM0pxu0QbFNJ4Z3XCqpoS1X7Hctb8iaPYMhzdwmsrUg1PQ7Ay85O hHVTrw== -; resign=20460416024207 -159r.subtree2. 86400 IN A 192.0.2.1 -159r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . HegookV2cV09h+mzSBG9UJZ0LbH/MtVnYfnHFKmSgebBi9K6ZZ3/926o sBYj9LrBRJgcsGh1l6h11uXN91cJfSFGfhQs2M7Ak4PYlz4LiV9GTIfa fJTz3kNWs4bu0ljx+heIwo6+2XF39y1rrMLPrrNDB6FYmbs6QKVZxPc+ MUEsorETFz0g++XsunkrtyV8YzNZPrfN8OYa3gmh1oxoBdoHDKe2/+g3 dR+GRHOHDHkqCeleuLUXQ+VN6lxN+CwZwuFqpG1dCDaBIMd0Y3dm0S57 D7txrPaO0qLZjXoe68r8AlgCEJX0+j+R+VEt2SmtLSj9zvxAWU3vxXXi ah73xw== -; resign=20460416024207 -159r.subtree2. 86400 IN NSEC 15r.subtree2. A RRSIG NSEC -159r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . bCW3CfR3gNTSI7PV1vTJZEqklFffX7Sd8SBaPVtdadTnD+G/hvpKz0qC na+aljGCxHX8qCrs5l9i+RJ5ppC+rTdf4gWS8D2Z0FK9xFvXELvjou2Z hfFmyOXwhsSejVLpPGhbbQe7Hc2zBrShIWRjNRfBbMC7DfpBVY6c26l3 7DpzSltrzJ+hs0wNlCa7fd1Mp2dMuAIf4zIVPNID89+LWNdOSPAmyev9 eeLvhvl+bCbV+JKsEFY+mBhH88iLnj0NX85+s9kUK0vnXbf7sSIolq4u 6m725ur/k3nNFTqg7F7pxd15Pa1LLwooDVgFGfCNRUvY0ScdhdklbTzT fBUL3Q== -; resign=20460416024207 -15r.subtree2. 86400 IN A 192.0.2.1 -15r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . IVVUyvogfv20mvIHVFB4Qh2sRM/R4AGiJWllTZDYa3hvF5iFfzOTzNpN GilwUSnQ2pg/iHhJhAFdOtz6usAvOrfQGlWCnqyKbKpDX2IVNTz04CBQ VpK/nShPRTyAbmuoqGmxcyx9BU0gXsUBJMDqTNxllv7ngVgiRAr29uf7 xzGQA/3Xf9d2g1cqoZx6yzoc/OGyu0WCd0RuhxYE4Z4qh5WPfJ3Lf2xf uDg8RGQ52+H3TZPlbbEIt7zr0HBxNzfsOjK3oVZB7ep4qfeH7QMtlBLJ HEpvY82aoVyq2pXCG0hRiCZyvUPPgXvGdrxoARAA2dLk6fkHzXnhn1kD SsKtPw== -; resign=20460416024207 -15r.subtree2. 86400 IN NSEC 160r.subtree2. A RRSIG NSEC -15r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . NfFA7jC6LmcZFCe7r0lggnG3N4GQhOgfreE4KBeqjzEaubmJm5iDJh/5 lDoFrQvrXzIO9XCjBpBiTKh4/TymmiApdJs5yEtFo70SwB9aDwwlBznj 9aNtwPYRfr20jfqScBRS5dn5IyLv19jOsFZJ1ke9utWeVh8zJenOMNC3 vWcZuoYwKPJx5uvTIkECABNtNac9ruA82+Uyeq8s3EoUCY8rcc7I3MRI ePRmvxP3ftF+kNZAmuw+2/5V3IKTLAo3BZ1KhlJ7WZw8eeI/AmpZD91J +LT91MzlYJ8XOu3xmBmBhtnRZnWkTgIGqihSrVo8jFQj/qhoYUl6WBDc PJdoEw== -; resign=20460416024207 -143r.subtree2. 86400 IN A 192.0.2.1 -143r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . KXET0omXBGMO+1GiBQdhTrTZx2rExg2l1uNCNOlKbo0XxZLdBNKmG0iy VEtRDM4AhUfLQ+kDSNWJIQkBIhLESjOSp+2+oe+xBlWvgmXaYxWmZmjj jPYxdPtJoxGFI8xH4QGp8hjR9al+gGeM25Fsk3RvAzwQTVGnIP2aAv0o Zn5Qt7533ahGBuFITJxu6UCATY96EuSIiColKcmrcQ/JBF3eOcBSWyW0 Jr9TM+SYJNtLsbVP0ixjvfDv8jKPh66BkPo6GwyJQ/rb0AzSR7balPNR GVaYWHPcgkx4g6S4h/PvYspYiSulfJ1JywTSDTXptzpOJgH/SVwwRz0o PIqGVg== -; resign=20460416024207 -143r.subtree2. 86400 IN NSEC 144r.subtree2. A RRSIG NSEC -143r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . t2j1ZAGhbldo2YnHOWPGBQR/xp3KjRqQtt683GTB0R1DePWatP4m0fyc HnwCk+1gqp7toWFip1s6M8df627pZJTAEehzjBY0KFsoFhfIYxUIO3ut jhbsoYr5N6CBRSDfpBCfHCQNc+Tv3IUQApP/4vbfxGVUIUf2r7rBQrnk WYOv5vEpU0TCm30bQBZVEoG8VUNY8mghazonDTHaqzc13ga6LSuv4Qib cpoJb90xj6QmOfxj/QB0KNaJ58BbM4JcJWOGDdwF8n8yRKFJbpr83EYL 28bgBI3yMp38ZkKjcUb9JDRj7YijWG+LF/nGT9VB9RvMFMz6Jt3D9GhR ISD5Qg== -; resign=20460416024207 -161r.subtree2. 86400 IN A 192.0.2.1 -161r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . vlhrynsX4HUZcUpaYIUJEHnbofrhvlr6yAIa43KctslqB97zpfrZO+RO wg/z3HCXeylyUixDpXmYr8CMfKmARFbQtuBPJlDBhRpEi3V0QsqUjCFK FlK8VHfwwn6bF9eCPi9LRVdBRXSJj0ouT0mWrfg+yySBHZ/OBXtGIgA9 aCYvaBZPBVBG44TkuoDaJkRDP9asgc5CBOHX6V2FE6/iHYAe3VIE3bBQ cWBWH5IiBakzhJ9qRLIshEBNiGnXF8FEZLTZqc71FneY0+oL2gQ0cvyH RAoHeAMTJlqxDGd6jqyrHiC1yFTq8t8x0Q7Xyq11sV+QJu9TXZPoJv1S wlLUEA== -; resign=20460416024207 -161r.subtree2. 86400 IN NSEC 162r.subtree2. A RRSIG NSEC -161r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . EmhrDUGPlpEcrclo+ijJp8/ge5Em4gKy/5MmI7OcflL3ai/H5iSZdqGU n7+3eaM9gkFDQk6bDy5YnfvRZ+Z4LnhM3OYsDc/CjtpU5O7IaAjCneLV HuDuyqtWo6PZkBXRiE5013G30OZXNXOee+75aP+OBvHZxYUmQO5i61bu qhQ5bR4KOQ3/EALyBqTClbJHaYtrCZLL3D1CMK25zV6Oiybqaf85uUzU JpoEl11poqNhpbGvR5oWQUQl32GgtO5E9aMADkqM9vFPjTuG40wysV7s k1ehSfFajlN7sIibEIJaHSeYklMA4MdnoxZa25AErhlBqYfA5xsOMXj9 0ggkMg== -; resign=20460416024207 -162r.subtree2. 86400 IN A 192.0.2.1 -162r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . KF/Dz/lWJfd94GoA9l7dI39358OyKmbPh5AU2FnmQah5UPIvMFzGer3E Is4KuzGgrpJ9mRnq6zb+OU1WWT/9uLVGks5F0nMldd0B+dIiA8jg6M8T vLz0RePiK0DloAvYb+4DKNGJXVfpgR5Hp4mKGRHaU/WifbG2m+LEN5k8 Bl4zw6a45IYygqBkFrXijamNjzuDgXQn8hl/D0Qmvp4GjqEQedjVVTu6 oFkYS1dClas6dgH4Pva2Q4bD6hoG5imtFnOBiDUc4PmhUQ2tIT+bunFM XzcnLocyOoJL8lFlp+qd7cM+bWO6ZgECTYQZTKVt4duvUZFF6PZ2a/uD q8vbDQ== -; resign=20460416024207 -162r.subtree2. 86400 IN NSEC 163r.subtree2. A RRSIG NSEC -162r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . S+jFQ8fn0f0qm7MQNk6YG3ySVgaFWO4syGDeGQ1DB2JwP5VwiCXu4yyd 0yDAH/L9DMIB4+cRenqaXAxk/XPLJvUaozJFhoD9TrhwQLLnvucOP8zU JKch0Ue0AqkVg9LhUbxSCU54ggB+nSnx/Ys+io17WDtksclnC7mum1LB y1ZC/k7OHToVSvyDfByGn2r3H1Q/7FInUM475v32BzjGq0wfHcScf0tS xZAfgGbYch/VbE624LpCXKHuS3J6L0RY4H0EgVI8nblmGPWRIDDWvBrS S0IQIWX7lxbL0PivCtoeNRE01WFum3GJ6bYD//aPKdJUkqzlhZ8c7Rfm skWoew== -; resign=20460416024207 -163r.subtree2. 86400 IN A 192.0.2.1 -163r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ryyFupS/F9mcMBwD1aJjXDGjREl0TzemgsTAipvPW5lY3o7Mt3k6Jmxe MGsKtrSMXWoDtFzJFEjkiNG6gMGMaJ0RSgZUotJdGZru/wK/W8uk2oKk 5mYBlSgGjt175B9zSYBcn9rot6M+7UKCY+bT02r6xhH2ckBw3HFjs3Ht ZEhj4kawEp1EaynuKHHH20ZklVAQwUBuqbSmoS9/HTwU1nS3f6b6OMGN BesHOKn6jQlSmjDvJ+a6cj74Waql9RLEEKA6HaZzfCm/vUo2NyxWROQh IleeFtokoFEkX8vWoliQ+6xfx2yfVEJaajcW5JLyBc6VI+GUiRuy54VK E2jFOw== -; resign=20460416024207 -163r.subtree2. 86400 IN NSEC 164r.subtree2. A RRSIG NSEC -163r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . lBd/dCiwqanWqm2GC3Jc2C3b4r6gsydAabLOjgrkZE2MyxhJofsxKl4b 2TBN4094x+OdNV7TvYmE3i+/rWJKMbGdPFyZNfn4naJBKvCyqgqT+z3p 7XdOzVfpQ7xWCG3RKRymbGWZuarPvaEHLLscOh5WVG3l2hJ24zfYmTQi 3sOtL7S8Y9BbmdziWHcclEKB3CFrrhiC9AhPLPzcuiP69kNZ/G41Zgl4 c8CRNck6S2OqQr/sysZVBVkfygfw6epX6KLfOrXh79Ouwp6IrpG90Sam a3g9OjHEduivMnQ7GjKPZo4xTmwtF8WqWlOo21tEW08BZG3Gb+hHlVS4 6K5JAw== -; resign=20460416024207 -164r.subtree2. 86400 IN A 192.0.2.1 -164r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . TllI/FXJAkY746MaD3p6Zk+iJg6U05nR1USTnI4Gb/IcIJuP+W9X/ng8 e59kvV/wwH5qBBa637HBOWIsop2aneKobs3Dlg1rFuCVwgFIpjF3Lm7W jADJvNKmp+sds3kk9tCCsQ515lxtQKCr17+FhPV/qtsZHG1A/h6apCoF jYCGgyr/00b/cIPpn7SYLOfjKYx3LW1UZE+Ap1izUYzYkmXRcSY7EEbs C4Dok8Nxu2d+5rnV95mbMJ568RWyFpPiaGYLgf81mOLXQKy7zf4LERh3 /gTzA+RxxBgIV8xAj5OWoCxUe3fdApDFkHisAWc+7ybqskXTyvDHeW/V /npJRg== -; resign=20460416024207 -164r.subtree2. 86400 IN NSEC 165r.subtree2. A RRSIG NSEC -164r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . jl4i1uRBqCLOuG+nVhWrEVdqO2COoP4+1IwxGeYuwUogG6qaJfF1iPZQ DZx1cfl5OcyfCKSB4mvQcueU/9vpkHzHKAHmhQ1Qeu9/yKI8du/fizi+ xRsMljgrKWcAjCSrUwIlwghni1fMI8hUQeyQSEGpAl2X3KGQlNik2ijz q+yEIz56/kSNk9vb7gwT2MrFMCA5IRvHZbMXnmAQ9dSwvsdvMtFfWxv5 JKadYIgEw2LD8Wh6kmmR67l9wdzvh42ry+alKsjjsDD00v4wcDDasII2 HkVguKEFYhFQYiS4/Ww1H65cLcfk5jiyepLyzBUIcp/BesXJbcDq9A49 qfjFdw== -; resign=20460416024207 -165r.subtree2. 86400 IN A 192.0.2.1 -165r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . XJq6gK7VZWwLlks73ujiv54rlxPRSavX6v8vI8BzE+DjgJKcnxmvMkuU thYSazPEq0awGUjDFthHXpRCzpn2KhKaOS/G5HfQmQ/IJpfv68usCpdF UQ2I0MXOb8vbawlG+v+F3BhKBH7eEK3M4tS+TLYK371n/v+PUfC8kmYj cR8LIH3TuHpUlIZenSv5gHJNs04ds+U0wpguOWi+Av2PZSuKMBD401s+ BaRSRe9B7l/eW7ZejuDB3NtIaxZuo4K3rlzBhI+FDKvLkTqUcYlnuKQ7 SANBCV3Bns9tb3vdze5gymVDpxjgbe+18JrZsznknNesmB3bmRpgEjrK fm011A== -; resign=20460416024207 -165r.subtree2. 86400 IN NSEC 166r.subtree2. A RRSIG NSEC -165r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . jLZzn94eAVa0f8gv+Vc13Q6qfYVnZIX6fU4YO7EtazZblPBbxT+zbdGn xNwlgMP57ulAgC4sPt5UwbDO25ulI+oUghsjDwUpvLyPtNF4KBqkj/Pt M1B37i387C/jrlMW/RLdW51E/qV60yHqmJdi/3rW46ybieYohFy7ql76 DTh2qfuOJGxTem/cBhtX5HlpRGDc/5+W+B7DtoxGyMFAX14qmjv9qjfG VzNXS5dCrxOo3JwfrKyIoI75oFTQhAj3gvUgpIAlNr1l0D5/+v/0XvA7 0ljGjLEgKTxR0yinJDwC4YM3PFT22ErsgE8lQw+jmEuGS4LNk8vs9O5G dmv4MA== -; resign=20460416024207 -166r.subtree2. 86400 IN A 192.0.2.1 -166r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . gajJKxjgPg8BynOCkYsDhGTUZgXw58UR2cmtf2poKlsQcZEuCmznQIIX Y2lYKrggKMfljx6QUCfUh7y9G8RP0G5pE+//U9VuGdhoN3K0eaGhS1ti yTrFN1eO9ZHPpCBfAR6F4r8d5AsEFqDtXqJjvc2BsqaO5wHyF9pcUWWQ d3hdCgXYU7jGtGydEipIjDLmwMk00ab+it0N7fJOehkcfY0GzPyOGhP/ Ix1WhV+7PsMMevKoUYCMTo4k3ligZf5v9dOZ83OKJwRaJGpODSJhv7bP 6/KBHZf/iM8OWONfbynh8AsARuXQ1jJmy7tvwBXqGCs5EeCugDvXgupV 5GKBuA== -; resign=20460416024207 -166r.subtree2. 86400 IN NSEC 167r.subtree2. A RRSIG NSEC -166r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . oGhGxYrHGq0KwOvD0GJ39nK3n349p5PJwh1nc74njLxdSIK8dU9ohOqA +0MebFwkUgEI7gmv5YGsN6QQVFh/Cp/hxFR9sNcS65csNann4sH82Tto uXVEsNWgX7da+64CUvBYDeVPN5isUFoyApQMMohKWJPvDeR2Bs7ZEEY+ MJHbsFICYv2vh69a7yYXdQsVTRsVisWYkXQpyip8uhus5K3pLt1YsfPE 72lWzWHN+bQKEtOysHPCb3ioXDBSJMmS8G07n8bRcbCWB3qfe6LwAwzv HkhQP5rU7KLNPgVOHkHnLE1qTzhi6m4JtivDPvHhC8FMIFYjmXFnd0GL jW+Kyw== -; resign=20460416024207 -167r.subtree2. 86400 IN A 192.0.2.1 -167r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . wclhILl4EoyJtbRXmxS31p52DjE8pzCVUyJS5TVcCSb6otcVJfabgonj A1YIPPE12usQoHq2yomquQEBB4t7pY1m3WMrp5zW88d0nwq7orbb5FgO iz9vgqsDsxnFbqnLNidDZTiWEhUiHVhvAfBhosdQwggnGM5f4J6b14eg 1QMbca/DOieXPRyHs7wUBza7RsYZWhMUqlRRjvVPxBlgFqck9lziz1j3 hOi8aZUfsiO8GGeOhj2smgR9hOBxqHxJscEYGD3t3oTSl1fP9gVuDKFc myOKmWJM3c6UrREEyzLWz+7SuNh/CbhCKLTh9I0H178nkiQk9EJa4ywI QugAKw== -; resign=20460416024207 -167r.subtree2. 86400 IN NSEC 168r.subtree2. A RRSIG NSEC -167r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . tFwQlrO7Nqpu3vU8jn9WXP5NdG6wC3IXY2tfLxRQELqpjRAXEBm/drRH s1MS+dNyF0F0lLucmtl9j2+Iu6h0hkXIIJIKWE3zbCAmYeQ3dQ8JJH/J Hg7gHBv7uqagkTFVrV94LJvaYcFkZBLHrPe0/2vOePO55q/AIvoXkegV A3gHXfOlktFEGRtXw1W4aN48jw8qZ5dLleaRS2k3S1ePInlyAwgNbpSf VDhIKbhucFodupo9MFWJ5NKfSI9NvwH9yl9G9pMeEPJTw/wIZ0oCW5EH LmTysBH1EMxkGW/FVPpD4BEkYn6ImEfdVj+z+b5aLU74N/GbB/qn9Q+T S56g3Q== -; resign=20460416024207 -137r.subtree2. 86400 IN A 192.0.2.1 -137r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . am8+/B8ro58VTybls4aXEJuIZOJRkorAVvNIAAnoYsHJj0hrIYrZ2VmV hypJR3AOc1AXVEoEPCsTcCaDGGWI+7dnr10QTT2lq877DovzXc2WefJi 3kB90YlmMnz8t+k0GOg0iNby3iGlUT27+RSJXZ/vTjkMho92sVL6sZiq yb8nTkpC7ioZ2+so57bWch54MeX6QxN1Is9sCRqrbAFFNnW/pCFq/cYM 4qVFius3WxlURI5NXyLmfWI2ed8CwE/qUIg/GnBGb9mOFbQyYrDLc58z lIpxXvPHXyJqd4JxdG6aVfdz262ZduFlrjhhvwNo+pO160uo5qEHSWwD ZCDtjQ== -; resign=20460416024207 -137r.subtree2. 86400 IN NSEC 138r.subtree2. A RRSIG NSEC -137r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Jbck/tyncGC0gkLR5c+N9WcR89t9ac9/xqqPdEQAdVHWDG4VItrikPI2 l3eGysPahtWA1+f7D94yJOng7sSbNWtEUdy6b4EZeOnQFh3YAKyntbIV 6grW/iZcrOP9mvX2cSlSokp+p+1tpv904mAlQ7+X7IM+4+ty22qWYgOR FYy6SeL5v8El8H1AU/ZFNCg+4zd7S4u4LOrxZqzDaQasKI/TDhbFSqNN vdc04thKMDGPhlp55MIBr8xWiG8TCpfExNMuge2VyJJwAAMHmczBB58C 2gB5VTgSgF5IEfZlhIOAyVcuN/UIQ/3s0NXWHDuCdoXUuli+jj6PcUVg sykt7g== -; resign=20460416024207 -168r.subtree2. 86400 IN A 192.0.2.1 -168r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . XKYTQRQKJOYcN6HxS2q7mfUafsa9CPbT9Gfiw9iIL+a2ITwsSys+btaV xcvZzA5Nz+WH/rH7oO0od4NsBVz4pbdDlYwWNBQFmCwF8C9bK/A6LKH8 IGM94cIhp+h0z59pQASHDLckP0d2VCCNf78dCeXkd8X2cSWBoy+9liav l6KUfkxUrQermCyFw0HGRyFYD30/qPFM7AL2fAcWcWO55/YHz9CCkK+W 6kFY8c1vCg6YRnsJ4s1af4YtkgPuQpc4KeMVvERYdzoeQKe07JOQ93KK Z5uthbXXwBvIbTY4cX7I3P4aMJUWiivlvdqkva8AiykfrmEyzayX1swu OQDQYg== -; resign=20460416024207 -168r.subtree2. 86400 IN NSEC 169r.subtree2. A RRSIG NSEC -168r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . a4ct19ypRywi4oy0h4lxjgOV8ITjyKBSOOyx9DJXYDfE8Ncs1yp6xzRi vI+/2oyMim94OarZ2Wn21GC920//ZtYKWTvVjl/7EWLjhCSPE1DqfQuC SrWnx+OMUbvRwdk7RLIO67gVbDG0CHS0BWW2uPbflKO1oZacb5l9C+9q wyg660XowU8QN8MPXjvg/tEJgJ8quWetSPmvl/sGS0PnK8D+IQZtavwr H5r2n7cvPjrHyIQlkCrr3outwr8LoDs3tZrRKaI1P6Gxv762z1Uzbmlu X0bpbe+plnneMY8vaKSOkSHrI03fSKgpFoxqfdS16DrX3S8S92R7Q3Tr Ec/KKQ== -; resign=20460416024207 -145r.subtree2. 86400 IN A 192.0.2.1 -145r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Md3iiSliQq/6iYPsTtnWxvD6fnvDE668mCKL7aV490Ni3sqD9WSkXLC3 ph6zvb2QqZP8ekVoYQOHVnl0IwsDc9DPdWp5evjU4c2HnS9gIQ89keEL QcjP6aoUxL1N0VGyBBSdD1W0/jrcX3L/B9LykoVNyUfVLq3l9UMTGC0X d2LUwsDEPOwKRFt9pb8or/RXT3TieRAyaIGzE0boPqT5oHZ5o41ycsJD qPEhvFaz/Uo4QxYHAQ4/aobB4jn5N9mOGzopVf5EGv6EAt5UxR9PRY9d 5M7wngfrQQd627Kep5BOW32/zMmYuaT6TGkK9s5SdxHVP9SwgNx/xVWq tpcp6g== -; resign=20460416024207 -145r.subtree2. 86400 IN NSEC 146r.subtree2. A RRSIG NSEC -145r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . A7MVtDlGXMJG/qZa41htXBV3f7Nd5Dm7VNnuHi8R3rB06wUOddv/vNxL ZayYNiBe/yEiRfyQoY3sTP4YGfEvn8rr64q8+qIhVNQOzyxreQi5j07e lbjn4Pxd7Yj8BlQA4Pq9Kh/Gf3N85yaSXQEz52laU8DPS8t/LyEZFSRp Iq82toLyt+owNCGREyzfN4tpz+XYNqC4gNYOGYYWeGg/1OZCqcc/dp3o KEj6RHzkUFXsL9K5/SBXRlwjLYV1sti/HvKi5ydcqEC+9/CMva/xzo+Z MfMCjuSaoMKpkLMIa6gsQ32+wuqzo93+yL29ERIXm12MqXTeUxWPr4UF bLhGig== -; resign=20460416024207 -16r.subtree2. 86400 IN A 192.0.2.1 -16r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . G4AP9+de7xsMvRzowfWmGOaCekdxocWnfuG/VJTEnC0/JB5zXwYGWG1f asn03gvGoVatG9lL5XAvHuML/ceZA7nx7/6A15maAXBsaNhgk8XFav2O h+s2XX0KoQtPliODw0VmwkwWweni/KNTNRCTr0P23dYp6w4jMv6BEIgi PB61Brz0jncB+HTri6VOLMQ3iFPXkEqDscsxjzTKoGxP5NBYoCnb/WJx RzZerXTUyNGS7hHCAqCU5GdJvZ23ZK9flyeDfguOr+1CtiPGaCguEeyY 3irZOasoidv0Nzh8EWEZBHyaqE5ungmOnXFpZ1OIsBcmpvEJK7C6gHUR Kbgqxg== -; resign=20460416024207 -16r.subtree2. 86400 IN NSEC 170r.subtree2. A RRSIG NSEC -16r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Dxz4qBOcfOFrkjBahDF6DRVp/ZVBRs3PhONIr1abspr4oO1Mw5qsoTlO XB6T/S0W00xNqYS+hkbw/NbrXs+Wdxt3EyDDaPBj9UQmaVKpLVarAOPb uVPU3Bh903HjVNokRew1FQokt21MQNvf+3TA7oJhJO+r2jNYW6JPQ2DA lPzuVo7PLvF6aKyR0R1Q4IiCeG9u2r/TwE4cijzCF1Ks4nNDQQgRnf0z dKL+afAkZ3IGZaktGsVvhQbfYS4QK9HSq+O9rwC9KWHcmOptETlaWE4N mlgdf2PaEvdvkXh5P0P6X9lTsJ5v7jt7dRyY5JulCTf+3qxq2GQTiZKV lSJvVw== -; resign=20460416024207 -170r.subtree2. 86400 IN A 192.0.2.1 -170r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . tWZDCsmC7lCG9c69zyDtiK253sdW5uB8sUg4ZAhCwqzXeOnja7fHd1Hw 6LXdF/BZAr+1TfWF1G2zlCZt2HgO2/ulc00ae7r9Gg0Lmc9xHwvrYUjW KkxCvlzB28xUytRHGLBjagYdIdQe4+O6GFUdpWm9UmfLhlZYySV9Q5Zk 7iJfNhRHEqALJxC/TB/mYBVapc8mODZUwvRVzxWJGoxzPYhdEQ/SsISj MrP91NojvPBeh3MnzPfTFwFIqmbTG1iNje6oY2JM4uFVchufF3jBRvBx HNkMb4IkdE4xCZdLKSZgtyG5drb/FuFi8u0GpaaJX9/PiojPbpFsoIXN Z5vbpg== -; resign=20460416024207 -170r.subtree2. 86400 IN NSEC 171r.subtree2. A RRSIG NSEC -170r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . B1GDYFzFdnB8bsoPCM16C3A4ij4kL7Ohc8AUXmgUnoPdowdAxU7+LiI6 lJqc75i9v/1Q3VfNMT9ztnk0S+XoopsjdGmU0+uj7pMGw9jroF8k6Q+7 Icjh5J5zlU7Z61N/P1qsgr3nLYI9ehaY35BBxPPYmHD6+tikAyUVTliO bk13vLSVM6h/hJKZo9WZ+lIiWtvonXcgST0nr20cahGjPw0t3xk7N7H0 yxwVqDTW6ZWREhQhXQmRJeaRieF0YSXs3TWpRjaNDOmA6/R5tIasCSPo ka1TAvAQsJLS1zGhyCBbtfTy+RzpZX5AFXA84JMx8sztR1KABJmyr5yL wjXPHQ== -; resign=20460416024207 -171r.subtree2. 86400 IN A 192.0.2.1 -171r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Px653LHulvqO8jOFEtBfBo7HOueJqdazMo0RyrGcGcJkeg/n+jfjisHK q1gQbBmbHSA6haP9kQ1vnNFrUgOfnpapB3IBHD07XxVE5arDlKzq4ibV 8+6FONagFSljXPBpLDS8e7b12IN54LhtJW53D8dnyGiyvIbnHMz8QkLj zfhG2kTVIsRPGTAiBHZ0tlH9P4y2HEcUba/Zjr15cnXwMWMY6IUur8Nr QrfwS/LFwoTFEa5NRJCAZB4Iqf+dzL1id2wlWWei7aRXUvqBEtWD8l3u ILQB+UZYUJaStVLgYd+ygvDhLukhRpQFryj5QcAnAXVf9vDQrze5ZXV8 myUJ8g== -; resign=20460416024207 -171r.subtree2. 86400 IN NSEC 172r.subtree2. A RRSIG NSEC -171r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . vW2qpOg6NUTT+BrwaXYqbtvgpY74qo1RWHkC0yN7eRILMu60O9cAowxP aenIu7c+7O4xtRumUOhH0P5K2XWdUtNvaA/jlKcwo8WoecaW7lagRj1P 0jz27/rtW7Mlr1lk5srSWFm1UopvGdAFw+3W4u0mvq6zukArkvDPvCVu UvGuFcHaXj7YLGxfWY7PNgs6gccQSapbmAgKkzc5EaJSzeY1kKzh1zXe tE1RFORiuiKNrDUBlaVm3UDABR6Q6566m7SrutnvhSDgOsbdMP6YKR9a oZtKwgcaSDdH9pJZSGttyR/Tdav9emt1hfh9Ty10VXEciKAJYUux/Uer EvVDxg== -; resign=20460416024207 -172r.subtree2. 86400 IN A 192.0.2.1 -172r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . hbRpeJkC2TvCOHEBZsddt+NkbOjrzvKuUCD9u5n0wpXl6JhwMVXYkGuj CXIMEk6ytNNJRDCGtkrEtWdr4Ou2XROX3LY6t2R1vl2828n0hLpfSJk2 aJgyLb/9UO3LFb6l7BNHFWluQW/Ap2OgqQjY49BsoFS/ltYWqwRmyU44 bVyFyUUBuMGSXP4xtMw5sCCAHZz4ReCaJ7is0BH/vlLVwv70CYyXddAO Ak4ibfjX7drnWfZQ0D7ysHkAkFbeg7ryEWhAimQlykn7TTK5wsv/O72j 3r0xO/oI4LBupMgORamWuewuaNxk9zYoeMsfb2px5GZoUNwKhJPCnCta BYgsIQ== -; resign=20460416024207 -172r.subtree2. 86400 IN NSEC 173r.subtree2. A RRSIG NSEC -172r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . v/sTxRVW2njY0M0JGbSnnDQAW/o2G0z3YkdSKHFUJbsBGwC5eFzdbmE3 uLnQCfu9nXNv/DS1OZGcxjgNwcpZgrZ42MHn/QjcazQHlUEjvFUg1vEe nubJVc091esJ9NUS9+RPdYtGCHUXAwT0PerfCrW2l7JDSJuL2PIVrnvT DhNBKGH9hBlYtd0tRwYHGCSjk8G5ptAWjfQCwS1lrcVrF4EPAfxRya++ CXwivLvmPVoAMM946F0dPh0BSq2iF5BTEUNhNFroDg2XPsMUDm0eCoZD H4ByK01fNR0FiUUPuNYyC3aaFi8HQ3uhKjTQuA5p5F0VT50TTfFiBQas cUzswA== -; resign=20460416024207 -173r.subtree2. 86400 IN A 192.0.2.1 -173r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . guKL6dmbL2dBabs2B/mMtO5qZ0LNyZbzdZ3i2zM/2AA3ipz9LhIPnhwb KiO5LY04IUboeV6d1q/QYJJvVWpZGVmosS8N232HK8+2/LYD0NoGZTlI QhYOC948qMmfnBbEaXfWQ9pyAvkmLgJAwQRi/Ei7x7DC8xx66R/ibF8t xcp45wcH4PMJNCxE1lNSmHLu5ZWzf+hKHo4H3w7Gof8LiuVZOEBXVs4/ j5yeExAILi+vXAnvOuNB2+6TbiLgVUOrj7ixoEaK9rvmhcAv6HeipPoW TbUjt4oGmeE7Zmro9rCPblHeEp07HAXdKyDfkRj0M9NRHedW1tLTamLi Yd/yxg== -; resign=20460416024207 -173r.subtree2. 86400 IN NSEC 174r.subtree2. A RRSIG NSEC -173r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . qgYaLUdwBspbKvhBBLxy7ieuMvegHlw3eYH250W+pmMyJHs9UGQq/Yv8 Ic13KxjYjkDai1fxwJjbZIvNQbFfXg+Fb0ZapVG6O0FtksnN6arKMfgh oXkhwSlp/xUBFHiVUAoSgPQHGhv+OmuNOQvomIuvWq0kBEFYnr2pYT3Y NTnEtf16t5Cw38t1T/WfepZeeqG9uNCJxXy6L6ALIQvoHy8nNjq+1n+/ nc1oee7Hf/zlKeirFMZKV5CuVlkjwC/n++JZN/LA77vew8uXk7jfDUpm taFXNclFyZHdWs3Wle3OTp9DMfIYx9AwiZGGjEW55VzyB2r7Kf5E9n5z Gz/UMQ== -; resign=20460416024207 -174r.subtree2. 86400 IN A 192.0.2.1 -174r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . mpdvu0jUL9Zw2Na2Mm2Rh/D7elKhYU70IEwJokldQG1MjGz+uWA40EyE cfgrPF6NUQWIaOn8s0/zwwpXZ7tUZgUMpsaYTt8mHLgthPa4KoH4GuM2 bEZvtivUkmrMAEHk+hKt135f4COXeYynKYNnqs2tSoKQKcPVtWEqTnzo 66HG2B52C4xEQCkt/ZcmHpblUPyvz1WPx91oCOs6DNdUBKe5Txwp0Oks 2qTlEmXUPuPRI6vxG3HvxspkiVhEmOPSV+mds/A+hWSj8Vjg6rMSgloa 6d2hpDccnh4z9wifIcI/BtDV8hyV6cCu2eBw6asUzHDaVFHA21iTmT4S U+8Pbg== -; resign=20460416024207 -174r.subtree2. 86400 IN NSEC 175r.subtree2. A RRSIG NSEC -174r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . jM8a2D3Vs2ov8hKGWdijThYZx1fTS+0NGNUQP8Qp1+gSQ5GOJh6jvqGf 5RA0VDkg4wPozglhkJlnxcP/OrMU6A1Q4pC5VxBbYjWhZW7QjqW/E5AP coCpR72TbJh83DKNnSf+nYcA+Bp+FNjxFppVwwSaFIvEQi+NJqAqyn55 pjq/OXlZJ0IfxYlHxtSYeNeYAWfKRj5o70GNCJDSkrfVC6WgZatX/UlU EcuhzQ50GV+O37tTOTWf6JMhxlU3yGhMpXMkhVK2sO0p8H32ZXiDPD8Z ufaMrAORHbmGdRaZA3tQe1eyHAJxidKONX74/YfIJlB46mKPUKS2QHi3 w8xANw== -; resign=20460416024207 -175r.subtree2. 86400 IN A 192.0.2.1 -175r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . utjEa8lBcuP5lS+jGFix4ZzVposyVZLmUFeeQsZwtwqMI32KQ0affOl9 fvid2qo8FlSmOwwB9RhZaAH/q3LD95clwvOrkROxGmOPuMeoCGo5d1jH S59+314ROpaiNyA/CC+Gt60wc+v8n9tZmhVAKKAhlE96PARCRG274bBh s7wc/W7Ip2V2aolDHUQst+rTlE7VfsC5OgzRBYe68ChrUu8F1ahpxytu EkBvfClukGDGWxpckG434mEfPVHcJL5QsorB8tDkWcSo41igSLDl6UMo 55/tXqQKS/KyNZ6+OE42tunoQSpVFXH2hUKpEra7cv8teuWmGTYHJn4p Dp7qhg== -; resign=20460416024207 -175r.subtree2. 86400 IN NSEC 176r.subtree2. A RRSIG NSEC -175r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . u/JMoUNzUyurSpl/q2TgTl/enDjpWoL2AqkCaKePgxaBNbyyokLUPxTR O2LRjFWEAo4gQtX2UAM+wfAKOmKioTjlSg/y0J3FAWnJUwguhjVZTSUY /vtUmI/xrBEG7eIezzIB7ibJqTwDQf+AV6Z5PPsl9yuT0t4hz1biraGM o/axt4o7nkoo53drcP5CnZ60RVkrJi2X32DDizzw3C0aCrMM1egggE5d /H26v8wUiFU1OVrNY+oW2OWB6UNNl0J/vwoRY9++uKzSE2janv2eRr68 Auz/RWlBgicvvjqKJX5dYR9C2j01IYdPzwGksLHFdMguWWFBDdyHlYbW u/FH/g== -; resign=20460416024207 -176r.subtree2. 86400 IN A 192.0.2.1 -176r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . uaZHB8CPM6Qj8LeU0Uze9bf2AReNgfwt1MmkZ3u7i7HGrztentHGQrmY ONo6zKAUiL8ZCejno4aIPD1ma+PqFoeUWxh0QNA7hPQbQ9yjlBxUfhh2 3OkRfN1AKx7NWsCZ/F4nVro/VjF03GZFg89FqEt8cRHZvzE8EvlU7xVb YZu0f6CRL2/SIz3MWODZhJYpurQpuGi62G8LhCCmeaTYJb3EdXo3Rsmg SnhTGK1atKuawNAtwuTQgUD7Z0iUnUCEkaTtUGLuhs5qmhF37erjJWlj vuWCwEDWpftzXTQijxj7Rg30WE6iI/VB174xd6NpyxG7DZ/2HdOx9CM6 73Lwbw== -; resign=20460416024207 -176r.subtree2. 86400 IN NSEC 177r.subtree2. A RRSIG NSEC -176r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . AUDXf4nZuDxYVZHFkcegqpTtb0KfqdtlWBDu1i1IGwi5HID+7tSuPgzU 1mnKSMjT7CfgMzEDWL7R9i/aF5+f8OjwLo1J9EVxBvLyl8zXoojy7SvS ix7HHuoJIr4hkCLSA4YAdkVq1OeIEiH3cZMEsPSBopi55jcc+Ixbln+h XowJok5Q/cV0mT5PD95XScGLhFUKqV6B9DR+5ptltU63sgPkdEhXp31h +ywApZcqxRCWIaJ5bSUNeycLpNTmBmupDwNzFvgPmI2tufRQPKkwNeC5 7AVtfd9Y2uKKSgSakhdiIJ+lcOPNfoF+53V4i/u5CKvn/VylJp9mXNJu hIebEg== -; resign=20460416024207 -177r.subtree2. 86400 IN A 192.0.2.1 -177r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . UxCDSPBVRcEDyJMsTe1B5Wj3i0B4ppCNpIutplRGK1TcWlCoaoZYKb7n 78C3wXFiICE1lbj4cnHTeqSKLnUTxI5XEL832lRZmu5qUR9W8nhcSxfs YzdmtMx1VOwcZAo25NM+0883J2hXkveuV3GjtkSvaZ2W1zqMARVi0dDQ z9RT83gHjwLEmL9zPbpSdmj0OOddw15qOQNmXEUJJzZzaIPMaWpkpQIZ pU5peA6EBti4LI/902HEzJeydwZdrMa89FCL6J/UIoxUYHrXIugsZkcE ptptgPQaW5WNizfKYqanNhN9JX/t+/u8JMM1mIk1zIejiwuKtpZpj3mQ WPeNFw== -; resign=20460416024207 -177r.subtree2. 86400 IN NSEC 178r.subtree2. A RRSIG NSEC -177r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . gZTPyJ00JsyjTV3HsyTnB5279LPKJIibVKXDdEwU5148kvBte/nxxN3F Df5x0mPXbuERbWv+DJ/9/7vZNFkXt6EDkU7Ec8JAdGtj2/HImn3TfNvh 131hgK2h0ynNlsLnLRncJqe3gs8CXXQur181y5gQs5fAKrWsVQByLINb tTUDtLOffOvP5520CmE2Aw2u4JBkxAXQOqX0wAHcEXKS9XhhJv0IqVJS 4UxYM7TefGTFq3uvYKdIR4FTGcRE+liwpl4yOIITQ+24ik9bQcyMikVc lCy5ukMUciKP525XqEAgfSpTCefmiFaf49yg/FJuft4GA6vDbnYkFOCa S947Ww== -; resign=20460416024207 -178r.subtree2. 86400 IN A 192.0.2.1 -178r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . PqlL+UptlSvJyT0dD+Uwu6nKTXGPpX9lhRrAp4H49OhSMI5CU39Wa7TF wjRYe9TtjYKjWtu8vEqzYPg2jTY/ic76nv3l8BalRIPKvwtQULuLmZYl LBL8h9JheqSWi5MPbgwt6fm7RJ1rcrHNYe0oHmuPt6JPfTLGywQFh9U6 nWoCa8y3xuOFgu3n8uJ+aDCl+VwJp4MmJvXygP3rHevpC27AqBIQdFc7 x02xrkWClVlfXC3PLrRvWRAnrVYjNYzFyT8TIe5ABt5oJ0I3xI0d7wgh Ha9IZd81bhNPm1wLtcBcK/X+ioxpaprQgD4/1QWdnUywRORfgwXpAyRA H9DilQ== -; resign=20460416024207 -178r.subtree2. 86400 IN NSEC 179r.subtree2. A RRSIG NSEC -178r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . bMQIhE436QXSvlMOTipK1JC2iIZFmX9G53UkCiJtlSgsxSsdJNslyXy0 Ejv/MaJ7Ljh10OtZ6EKy/kv32WuQB3jvtbpVbrfcJAbzTF+rMI9O69Fp KZSZXBGKwX2hy6IyfCVXZS9dOQS9BXyfQH0RevNr0+rf+c8tBwJyqgiR xyj89eCBf7odNHzjVGGPuhgT4MDXGnrgqoM3y8AIy75CpX18PJK7FkS5 22KCVh0Cdp2eFowltyaJm5K6qIOnkYYGwXRK90pTgZmt+VYgEx214/Ge mZx7zaS3a6+/UWgcuAiLs84iT2kWmGERjeyWwURJZT13IK08EZ3/mzLy d2zl9w== -; resign=20460416024207 -13r.subtree2. 86400 IN A 192.0.2.1 -13r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . sXsgdidETamVj3hMGclONQ3xs/5wp/1272MujPM3+3/gKvVNa5VEggXS r2pA5t+Mk4PWuUXLog2ihyAi9Us4UVNSbBMxvXnq3fAeISGPm2QonTsT O312FEmqWcWyVv12sv3BVt/AEUl3O1YlPICr5XXLHRmrj6KF7ITZPy+g DZd7bseKOArxNqqsU/Gkixz146yV/IkmYxD2fQmErDqN9CEYkZ966f6I NMhTyDACGAu7sYZObCw6ruBGHik6Y8R6S/R0viMq4yC4B9TZEAsjyj7O FS84crAXdKYj+zywq2BUllrMVup+m1TJOfioxtXT7O9MptZ/CZM1qErr +nAwTg== -; resign=20460416024207 -13r.subtree2. 86400 IN NSEC 140r.subtree2. A RRSIG NSEC -13r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . f0UIocyE7wUpGKh6HM0renbqeQXha9E0ILL8OU+9wW7Kc+we6u+GI8M9 y7FQAlGIhm4ThMWxZE06TgwudtU7deAhEfryJdsmWjW/gBLmnfkSkaLU 6XNQVrVpCwR+DcFXvH1zasDrYZaxGc14BOZVuh4/HP5RYm1cQBA/cYX4 VJDBI1IYP7iqJEJyeYCmPDvgUZLtoqw1i7rey0qv+0C2yJ0clqFHScBU 4S/A397GkHzge8i2gfn6L/5r3PEe12AoBLk/FUQH12jjqP6VljOQFSa5 1Nsz/nj3SvoSqNIWO3uQ/tT7WwKxcYGEwOSB4pXJUBGp7jsoWPHn8kWC yW33bg== -; resign=20460416024207 -17r.subtree2. 86400 IN A 192.0.2.1 -17r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . qqay8a9aVj9bppnXSWbAAFQRl7FgyL1Pc5BQBktPBi9XV7W0eqee2kOR jL8/vmYe/EkXkc1xIgb3gonQV7mojtkHT2pDckw9T0cY1htyYxJ/nyZK 3Ny1/SvJHTe1WAPxTwd1ZkVZ/vkz5FXl/uTeJ+nCq4JAlPnPviKPk44q FTeRdSOdEF0An9H75DruvlQ6cGA831gEUoe2oXiDEQeQW5wM2wfSdmNa FG8tshu0EGp7Ss+FvJ+x61rg+Qv/B9V93Bc8g7YSl2ugalOZu7Mu+sw7 wGMAsnuw4IMWxX8L9dlpQQo+9/BvXmGsw8715njG1mw+EZL5hywUXG4B CILSSQ== -; resign=20460416024207 -17r.subtree2. 86400 IN NSEC 180r.subtree2. A RRSIG NSEC -17r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . AMLTNqKTOztHdQJE0gthIMmfuNJJNrbWyt6xUiY/1Q+SABIizXRCF6vA 9hbDuQ0uAHybELbw+ge7ebkYVubbucSU31ukzw+F/E3s1TeXcSr+V9R0 lft1YlBgoAwE8tqj8ZqM/4T0OdF7GoXFx/yi9blme/1o6dnRzLCy4uX8 qQ7G34k7c97H/a8BJPNFzuIZ1xhuiBpaC7qf0VS5ZklQJF9J5nczMtNC R7FI8OCKeq/+XAW+43vETW3p808VFwjVs7qBSCEYG/zCfUFINDe2SOVd LyvoI8cRpJ1pEuQsQkJT519FIlkBLXULpB/xjivT34vdGU4VsMOs9e8w IeMXuA== -; resign=20460416024207 -180r.subtree2. 86400 IN A 192.0.2.1 -180r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . xq1SIKwFhr2vnPWv4roDf9O3ghr4e4zAc18fVMUqx9shSuP/a9WPFNGD OwVLzVC0/VZ3hsOBy5rAsI6aIplAKdhGL6PFMv2k44SSweu+dv7KsqfH qNm8ZeZY5prxBEe0V2/blXpvk1zfV4AP/ZBvYNtVf/tacbqa8UqfIUET 5vtj0LhwPQL9R6OeOlkBhekX1/4w8Ow9lDvsdcphPHwuQwLubRWdmdKN AdCAOsrjeI76BNfuRn4wB0tuIUWSCP1yTmc0vwvfAn1gCCXNyLzZwgR8 Aeff9SGrOpSHC6k3S1HP127J4F08R86As19PYX5q85EzO5J9X2lzVPdZ mXFxwg== -; resign=20460416024207 -180r.subtree2. 86400 IN NSEC 181r.subtree2. A RRSIG NSEC -180r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ItEKZ07Ib/R69g7gIconfMxnTDiEkaPCnuJ+Ii6a4u6hJEckeRGeTkJk 59KtkxpBQvtWydPIJBOhPkahRa9Ru4dNb2cTeBCPeuAEXu0hLOOon+h2 uJSXdku6q0JBF3dNvV342F+9pZzWlYdKXzNPXy3YTJI3KPm7fGCNqDpR hsNLdjNfaTHZE/Y7x41bCw9ClETa0l+H7ToSNs5gJS4X3a7crxOAbPJo 3cFKbgwGJ6bbzvEWMlmurRlzzhLqbq/60wFM2dRjhY2Ras+c1klh1rG1 MuQTUsbNm7VRw6W+RsYudQURzJ4jvt3b5dYyePtmz17ClO9Aql3k16zO LaiSlw== -; resign=20460416024207 -181r.subtree2. 86400 IN A 192.0.2.1 -181r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . QyvJ2cXDj9HwoqYzIB2Uy/ohHfRkbQEF7f+X1FPiVF5WUVNOi7PWuNNP c0ehr21bZXAp6ZdROatrkKdO++Ut8U8O0DfqYdlCBJNFNvuivf94W2AZ 6JnGDOHcOtvZq+vilxmdwXOxi5DMr6FstNS+qlUfgy8Y/PLnm2GKnZj4 n4cYCk9/KQNY6V7xB6remD4oqqJwDX+Q99VPjz7Pg1EW/GMu0Re5ri8Q AAhymV2j2ZgtmkxDZi7JMdIblR6Fv3sD3Sn4lmnV+8w+cH0oAX3Zw+U3 cr/SjGWyfzYpiAGs8XTO94GXpPSRHOwoU4bs052c8zrYSRrAfblejv5J gWZA2w== -; resign=20460416024207 -181r.subtree2. 86400 IN NSEC 182r.subtree2. A RRSIG NSEC -181r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . P7SN5d7c0OgaJ17/MVKultmuH02Y121rwRoJ3hqDo01Xv3T2JmiNhDid Ij8XiZb3Q/z9lvOjDY2WvrDsNMyLi06YfbQ1wYkibobkiz6qY7qPfI8P KB0LgEI19XFcTT7T3Swz407URR7nHipGfBeAoeWUiHThAdRD26xZzhJA IB9EbTs7a2kNyVMovaXxJPq+HA2lDxB8fo+buSdzwq+bFXhzZqpzY10G 785jT9iRz2jZY5vFApisqt2OAh9HefOfxcYOhicLvf2JxcGdPHt8YZhY i2Yjd3sekq/0hXOej+Up+sJ/1Tdkkxgbb2egVaFRgK3rN2XYSybJsXSB yvhgkg== -; resign=20460416024207 -182r.subtree2. 86400 IN A 192.0.2.1 -182r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . SwcpMSUFgXG1DPNHv5BBBrxviDsdjj3P4ee2pDUNeKbLpsvbydpLari+ 2baprXJa35WreaHmz5lKbip0g7wlCePvmsfPe2Voa6Tc9ZGKi0Xtp91R gug3QL/PrFd1rjClMCyOdXyrrN5jRXVvEs4uY7CNS9qZVj+JzVJ0W0ap PYO50lYbAW+qNtYSSXhOJ3qlNqCCyYUMXaCmMvSI2JOC5pmxBUrhaqpW jAjt7NWi2GVVexj5+OUCCU01mdvLX6GwxWwAUJHq8cJzrjRag3p14Fj4 Lim0zf5fj+zBJavEN5TeW+2O4D/Wo2EcHP2XUbC4xrVzL2POSliPMbgk +QXSVA== -; resign=20460416024207 -182r.subtree2. 86400 IN NSEC 183r.subtree2. A RRSIG NSEC -182r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . pFiBdRGB6jTW4IvDdn/kM5mYzDQVKpCtk9X/zinOe8JHN2jdFV7voDfe dOu7jNE0Nh7VYlcIyJDp0SggthbNIcKZrkbeXTHiJz7svKMq0LMkGuCM p3QyKmyC0vBOgGrcTMpMEwP5dJJmk54WXMMXodekt2LiUpdo2R1p/Q83 z25wbZ0+UuoZ4EgaFPF5evLjX3TgNJqavhNwO+u5ldX7mUBOHTpG/O0F 8OKv8AoM+el69X+9irqklleF0LCuAlfac5yM8Ns82bZS1c8qnercNqUI CavjgGJAOtBpexVi0eH5Q6nLXf1OMXmc9lqtYkQ+CH75h7Hitbsfs4ja bMPkCA== -; resign=20460416024207 -183r.subtree2. 86400 IN A 192.0.2.1 -183r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . wf0jrowwDmc4nXD+HHbB7zEnmSZrcJexZgD6pVG++RHkXx+LiEFwJr99 Y6x9D98pNC/o9+UpaZ/Os0oncS5RuXf0O6s+CqHIfAI3aKbFJfI5AoqG wV7YAPaSoW34IxPvDk/RRU0sJDxuT4W+6T3j/awaA753VxlgLKfvTmir S4XBaYPmwxk8EQlFpDOZFijwoP7/MdgKDc+w+0uOI3ASs8AY0Yd6Wh7E oT7iAn2y+iKeMzm0g/YIxPk9psgl048bKCnVFOtJq8T2BEMq8yhkr7/p F6RAF4d/VxTEUWFVbKWSK/6GSMaO52zp/pEgnf7ff3tifTokHBCq8xHb c+Ckfw== -; resign=20460416024207 -183r.subtree2. 86400 IN NSEC 184r.subtree2. A RRSIG NSEC -183r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . kSxsEXVu92hNUo16LnQ8x7Z0GgejAEgZtujfYXDBusVRxChY/QGAvzfa qCY87MGehyXc0dVGHJgKnOFEPS4knYQfoyAlyW90h/c0UMMD0za+VWZU 145m158hgCsqNiWoCWl2GKZZuA0ObNX0JcIT/7CsxrP+nlCdWuYCVgqq JCsX/WLcuzZu5mrPklK8dyYjZj3rZHqvFGkInJo/M1Ey7QB46KD58jHA kxw6YiK3tezmf92RTyHTv/kXM0dpgyBWZPM5D7ICc8MhOrv3B7V1T9ir q++8Z7/0jNhnjPkoH6zweCdRqI62PbKkqdnqfh8Mbe7xz4iIEAE33w/f ELq+mQ== -; resign=20460416024207 -185r.subtree2. 86400 IN A 192.0.2.1 -185r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . fo8NvlBCCWNX5TQ2kfgtfnwS5HMDvww56htGU81xFLaRe5Vwh/8mqfQU Wy16sbwRGfqL+0OawZcKtuQvS2vSkeM7UI5LZkp8mYNeBozlPNO8sSI8 zVNegW07ykZtlftPnnnpjjMlmPnqBtFDxMKvjqBYJpiw00YD3qYPDbDt udI6j1cLhygruBDs0I0QPtZqUqlMxFES+jRtMF+pEK9XRF3N4Ibn1R9J 5ITbheM6zfLn3dU24raZQ/Q+sKM3ezr05qJMXewMDj2E9CV9ov166QLH v3cAH7o/dRJueMO+iUZ6YLGe8RsNCb5fhgdgp9ey5Rj1M0UbtVQOsbrg MYOXFQ== -; resign=20460416024207 -185r.subtree2. 86400 IN NSEC 186r.subtree2. A RRSIG NSEC -185r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . eWHh0SzUo4fWaYotGJ62oN1/on4/2os2nV6/EdEN2TMHcVI3JYT7Q66d /JjWJbyGB3UcfJXO02nyYcHDzS65DTdXOwcx+G4QJaXvsf1+3frSnqD3 RMm3PGrOxNe06dmPZOAWir1LJho4VjzV3aJQTmC10TE2vN0QcZryAeKe 5aFHva/DoclqvuMA4V7n3XOL/tnfZ+hK6LD38NetFwSUGAspJ/WSxQMC aqEDoP9XrmOJE1wgsIe0IFn7CRg5a84AJ56YIy0TXGgN/GFNSkembXDl latpUOlQw7XkdaxpXFfAAz1bmV6VTWMU4GtrspJSIlSIsYrcXVYgkFwj vKUIBg== -; resign=20460416024207 -186r.subtree2. 86400 IN A 192.0.2.1 -186r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . w8I8vrnUjIPhi21ByPsk2oZ7ozJsrJoXDKSdsYj6+pq7bqrahW22IzR0 CmIxw8Kl+woQ+I6wui0lSJIqaPf4yr/eXL6fVHde3Clu7+1MPHAJZ2ss FxZxUuxuBXMTp2JzBYuGfZV3sE10Tg/DEISwC+ZM4GqALc9LlGPU0AUb EXcWBHpi2NeA6WKVR9ayZPZnG+mjWu2Lb8bcFtwilHadmooTDsEJX70e HmFZoixX54yjvkixWtNSmJcIveXYyevWTrXsF7orzi/WcsGsdCJbwLzc bALgvwxx7MuySed/M4AuN2L10su+jTeJfo5AX6tCoIdA03q9ATSDCES0 udG/zQ== -; resign=20460416024207 -186r.subtree2. 86400 IN NSEC 187r.subtree2. A RRSIG NSEC -186r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . OLNBPWMExsjmLeTQco5tvaZdupvyZhR9mT5O+6X9FRXz8srWXc0y7Vsl vk2B2YwzyJyXF3Lp5nUveE3XS7bPi5wxZi9dPa0MO5lVpmGfR9ju7Bzr R2NPMnEqdk0jk6plCqzTJBpT0Tx6g8RiR4Xp3O9UN3o/5zs7eiQtDjf4 npy6fAJihRP7xNd5qk5PwIv/cjx9j04L3HUXAh18oc143mplXBjUR8nw Zkmpk2hsZm6vYmGhz3GIGM9jXc+wzRkAVUj5NoMTa8hDIOEoe44E6+zd hboz+s5VPpjkTN5PymlCiAMqYN2vUfHmRhO+iGj+dwyLUzM+BCKTDWUa 9Zx57A== -; resign=20460416024207 -187r.subtree2. 86400 IN A 192.0.2.1 -187r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . dIDIozfz1Bgm+ZML/5AzrX05Clt4mebu7ymZ+D+LHR4NOOhJ22gBnuwN LhVhUBi2zSopTmq8UxrL3CJzpbGBQFN60lFMLXt4RGTag7QCZZnTHXD5 3oK7VU67uGtjVp4EYAcrlIHh5NzHHyrZkydVvJogYMyG/KMsh+Gqi6hu +6RvtHInlxdzD0Rc1mq7bzd5iYMBB8dVFC3eFTEf3SBKIpFmLcJ2AnF+ 6AZEIzKg7D3zUi67A6Js2jJ1pIEX56KBmW0hHDfjSIkHLxECV9lRbx8+ p8qqhKFNqwk10TYj7QWcjWHfh3hi7UAQc3A7hnTFun44DHTybjojQ3ac 8Plu2g== -; resign=20460416024207 -187r.subtree2. 86400 IN NSEC 188r.subtree2. A RRSIG NSEC -187r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . WbioNojsR2o+n8tc+LYffEJFEmyq9W1uxT4R7pKwFH/ZJI7pqj06F4DA 4oRElc6NPKbwY95Au4d0Ys1Pt9zpeWIB5gzepDT300n6vne01CTtV/zn VA128Mywb0XsGkoKQpyOAXfApuNMwr+ehjsp8/oEITV0XyPtCOmsW+Rw ykopYhd0BbwwNBgiCsDrvWOvJCrRG1CNAOigKeMpln8SDCUwsA2XEXG0 YaSrnPGjJJqJzvPpJ3Ou13PRNGcyMCofqn9cNgxyKwwzthHoY+KBjrkz bz09228nhuICKDszvot9zI1HgWnVFAucdkfeCYLnQ2/gAbybsDIOOJqO rDOybQ== -; resign=20460416024207 -188r.subtree2. 86400 IN A 192.0.2.1 -188r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . tbpdzGbYXHTgyeCDpJrZWppotY99N45bXmBtCPgcLLjdPcnpGlmyzEsG Ff1AIJpl7beUHJlforTD6aYPLVKNuFLIKnPti7lKHtd2sY5aRUIOfHrf 689gPeobI6fylrYlojmp1EO6W0aSy+AJrZf2vvmi4dmqc7WWn2qVSuQ5 1yw8fVa6C3GVvvVmia6wHyHIvTCqNjPANARSove1y5hVcU05c8/SOcwI rifwaYiarQ4PGYQwDJCGAfR6D9/VNmEoVH5RYlpeghHUOVphR9OEprR+ GxVaAi7xSuVzh+qsFvDaU2zsVMHC4WTIImxrsFufax0dAjYwCGTF0OVq LybCjQ== -; resign=20460416024207 -188r.subtree2. 86400 IN NSEC 189r.subtree2. A RRSIG NSEC -188r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . WtfODvpf3qTum3G8VHl+Cxtuhl8/oJ3g8HeUJwCF1FhDnKegjCjJV6qY rbP9N+mjqwi/CE1BvKAT1hsrWiEGk3TTWX2ss2D3GKjyH8p8Fvls0GzV X4+T3IwdPhFshoMCtOLb8DhxYp4l/tc91HgosTF+mJP5LHJcFbYcQEtn Qbwzs1HA4t4+8OHN6jVSDwbydSt8DbQidI99p3i2YM/Kg4PUPpMhuJD5 tEuUhxqDlk3tKGMh81WAk3XU9Aoz+AOu541Ko6agbUEs4d3Y2SddtAEK qOt6m1/vUPvDn3Q6BKn8X8oB+S9Msz430/vIPQoxqMZogc1hnZu7Rank tB/ceA== -; resign=20460416024207 -189r.subtree2. 86400 IN A 192.0.2.1 -189r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . UL14E2kx6xvEAI55fX5qi4vnpfvk0XJ82EWo8hhs3hp25zNt5sd85jzg TlNr0x5dxbqFnxtdCT534ao/8Gw+zPvHxDmDWu7ygFpDTDQYub+zLVqQ PkUp/vZlpLkZ7OVjY/84x9tiQr8q5/5zGwEL+/LhUfn4ZbZo7YM5BnDu VhG0pjuSv1vbpwVIht5t9HVB/1mBsgI7Hy5AewNno8WytUzcfm3pt+Zp ns1bI7GDRvranS4y/cvcO3onmsshLmOmrWJjAMyZVHxHIUNt9RIlUJQC s0zJCcOu0yQxQnR6Za1KQBG8n7ZuWSvyRPLBZvd0OAWOJjKCBqtCof5D nqcRoA== -; resign=20460416024207 -189r.subtree2. 86400 IN NSEC 18r.subtree2. A RRSIG NSEC -189r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . cKcDMQGJXcf3v3RfLJF1zH1zleaK2ILfHWSb7+hB/Nm+mcLKm43KxWNZ rVJZu7EOUj8M2cHzm5NwEtmZm1SBvxa0NHASwavhNT6VfNswOxkbZy5P XanQBQ0TGc6PecbG2l8oeqhr8/9fDjyYmbN79Y73gZ2iIAIW/CFmLf2v GQ53Ct9L144s8KvxfsUnpDnob7pDnMBkM5GaMrbpgMXcdBgUnwRKoJJB uXxyE5yP5VFuWLGH8rOEIHWKdDRos5qlu/eM/ZZIf47nYy8G3rJqTjNj eCZumTPPOOdMI0jmXBJyGSkVaKQgcHjsnrfVTJqlOOy8dT/Yls6H8lV6 CBCXYQ== -; resign=20460416024207 -18r.subtree2. 86400 IN A 192.0.2.1 -18r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Bd3k5r5o8uJIV88DwRHdF1nLGzEQ59pHGw+1ieisxP9BG7yxyxZIJmJf ZLD/crYRWeFrVZmqIHtCRJDaR8C9Wz81qNbTC610Y7yKdBAT3aFLR9OE 7ooBv+oDBeIgaGGjcWLxEaoFKA1QdrbtH3uv++KRpcCQaD6sEi5wHn38 J9DQDVRnTot6CqJykLwUA7DKt/Jemr6hXhwAeMyHwfRZtcFrYbvC+To9 m4moJLnEvyRBu6cJ/VxjIRfagLlzaUlbzy2aMkcUYcWP11BCykigd9Q6 qC7eQoDO/Ydbg2QRrYOP/3fBjNzmiSTudV3uuMOjWAkMELoPikcP/WRB W+fEcQ== -; resign=20460416024207 -18r.subtree2. 86400 IN NSEC 190r.subtree2. A RRSIG NSEC -18r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . LyKx01F3d/M8i1Y+hZ9AbwPKJ8jonETPnZN7PzY9GflfmyUlizrkxK1D mO9FAFbEbCAFu6ZuAScQfU7kGeYqFCDgfiEe7JRQVJTIUXloyZ2a6LGv sJWk60omdN2BZrEEeeQllh4jUquLzsMKcei3NIYmpG4BpeLbNr9jfzhC y64lwOeYjvbqw4MhRrBEWjelLdk4AwvcbDrsk3QgMhtEqOul5jQZ4SOH 86RQOy+2bVQWv10J7F8jV9OzFQwgrctLB4fkcD85KL5Phd5naqLiaiYH Lig01cudq0HVr+nlpoaNvMUzAMcaNQ8tYv3R0wmUF+pATNHsYzjHTggW 8VLbNg== -; resign=20460416024207 -190r.subtree2. 86400 IN A 192.0.2.1 -190r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . q6SCWjzJDoMY2aeYf1unyQQAtRNwqmMJp5inkrs/4kOydKi/tOBhQkCQ +f/hqn5xx0llx7HhAzfFp8GO0L3eGH9A1kCLidcPZ21BkcGWhJ9gmEpW I89vhCBR3GFz3dtnpenQOaLYgidEiRdeXZ9qKSWlGi6zTxy1QE/XSt4C EoD2DBcPHnLJxcKi7ZaWz9+HckvyDtkfOIiX8uiZe3TVXAyAX2z9n2nS 6xQ/dqclFwI/xnUV0roQ5xL7REpVXkCQmB4RY5cOXC84mq437ksPDrAE 9m8Mzy8UGg4pgBmH9zvTLHM9aP/lSa5jD5RXi2BFiKwMm3FZ0vKCLffh VGmYzA== -; resign=20460416024207 -190r.subtree2. 86400 IN NSEC 191r.subtree2. A RRSIG NSEC -190r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . jvrQXPmILWkgzAqmNBvUAfUaMOLhBBJnHHR1vwgt3i1y/ng9w5NeDny9 aqpcfH0rOD8EqjjE31DgetAldcmwv9QIAtCHj8kLQT4z8RUluXSanvTA Vc8Ql074dsIUUBAqBJdAKcCTyjBNkZ7SzXtNXE8+wAInXG3yvvoHRbN1 DjDjJVSTLxikgZtLBcmE3wOylSWFII4VOXXJglzA5BNxH1dCrD5hGDZu d3SZ4d9u8rkLvNbh2ltwWbeYb9l9PJvJYVtPP6BEIEcd9viFO9zY0ibx 1Te5jZFjiWj2XDQHpTAdIob3AHJy58wDO0eSh2yZSMzJy/N6Je6sF8Rx optODw== -; resign=20460416024207 -191r.subtree2. 86400 IN A 192.0.2.1 -191r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . coAWozM2Sbwb9a+o3pnwXDoOjmsSQKehpw9mqmcsao2389X87OrlHor8 Sdu7H+Y1Dp+5WzTH4ZAaa3CzggEGqJMrTfyaeR7ClTJm+8a2fBlXQn3D etFXVBehookIDHiphRmHazWos4ztoHcUky9ck8l2TaoK7VD7woms2HKS K6PaeWZx0KXratCJNrwfQKbqOVayWOqTVfyr1V1mRC/e2omjVh5eeag2 V0H61uq3MW8/dhFAY6BvAxaZ0coGEHipJuafphpfy8d02pOGLjmwRM2b nVWLsc+DgxSkKzgWEtoGMu6B9f/X8IZANkMlf5FNR+gurAxH028BaRRs Be5cSw== -; resign=20460416024207 -191r.subtree2. 86400 IN NSEC 192r.subtree2. A RRSIG NSEC -191r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Dltwr32CEvj1XDBLBckhHfu4uqW5V6+wWud6u7gJshlpaipvAnw0JFWO 0k+4a6N9aH9pWUjqXGHhnGXa+IDQtluAhljKfYNNngJ6yuPVnhDDN2yA ov34eFbGPlIw3yTxQ6ktZdyuMUyRB9nIS3+kmHcMWdOrVFc6QUDkbOa3 3HMGw4ow971BTpbqB16PHi8qPaEhDXVHUBxTIjJA0ekD0pFD8MYCKZxs /8eWWAzyjy0yVaXgMw7uecWPjARkvqq49CK7on8e537tkCT26faP5jD5 y/xWaDm+4dQpQVJCBjStO5cjCB9SNtFQlma3ZLqFLsrmRaHo6zJBQN8C ZLYFlw== -; resign=20460416024207 -192r.subtree2. 86400 IN A 192.0.2.1 -192r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . bkaQetd2sGz+FIva3mtmf61a9UGb8EJF4Eyo9Ta9ahkxqDdG6RwI/ccT cd1pjd70uvxA74N5K5g15f3V2jJmJo/mSTiF3BJLT+mJffYGiWsX3rMB GGW/UmQMq/bL2uaijBKO5Z3WcOsE6E3rTL2X8haO3EmsM9y6MMwZ3R1p 6pq0jI+FsU6rSIhijYON3plaYhjOt68KidVHovRPYJzEpV3vVj9WGQBw APWTiX3QW8AHlDV/NJsMdQMUQhKGfdCPEIEYbW+JBoxylFygoPG+f+lP 2D310QFgOTPp5hzQ/QgcjvBfJLdVPmuB0rskxg5JPkJeSrbjW5fvu+Bn YJcM6g== -; resign=20460416024207 -192r.subtree2. 86400 IN NSEC 193r.subtree2. A RRSIG NSEC -192r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . XCkTY6jyHmhfZmlPhHlYopBPHUMI9u+PkLgF2iGChfVTheAGSc8vK+wr Ja2B/e6w0V2naN0BNu3aXPnZ/YvhaJymWnHDyFMK3fzMAHuD+qtsAmIr kmVwpM95vP2ZLXnoWKSoiJyCCszgKxnB//zMQAfHOuOyZ0c3KCkbIkLW DlHovVBEBYQZSA/LphEdzKDlOiVCfZ088KfUXgJnIf5Yz2B21he0G53B e2s32BF+z4wp0A9n4Oo9vMUozS2t12yg3pQtDh355oZF1f2l3gEWbyWo rjCqwGGPVwKmulbpkCfQDUaeNPl7TymYwKOiDoi8lARmpvRzVmwMemcb GeW5Lg== -; resign=20460416024207 -193r.subtree2. 86400 IN A 192.0.2.1 -193r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . tUIiI0iSpJ8g9yeENn0D/ojKe4mqkc50dv3CESzrAD704LMx9JvhOHJg wX7Yw88Y1/6hquq44H0sJRHHKDPVBHpJ0P8tYW+pydJMbwDN3hs8intL oNJgJuH7G1p5rGanBfbXXEn2wZvnY/zZZr6a98JE21Lq6xEfO3XrRU82 BdQVJLjUpIQqW39gyXXGFNJqD72kfnHa94GlCYshKzygPTvN5dUoHih5 k6MRRZpYpHCPyxRwDKdjx4Z9rkCWcoGgV8+uvq8VhIKTv5C7WsCK6jAA 0zxsEd891ABw53m0+spPnXun7BfWqMg7IsIN60cfhuy31mu4obyw4KQj 4iF3rQ== -; resign=20460416024207 -193r.subtree2. 86400 IN NSEC 194r.subtree2. A RRSIG NSEC -193r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . IWMCS26Ec8KWZKOM3HQMPuW9gEEu9wSwQhIPK5zB/8P8jrS2RlCUyAzz cvYExkTzqMSs6PnwA9JNDcd+z2EDr90uCtvihrBA0i4wtIn6MYkTae0X Qwse+XoWYHHG7OFVX/iu5EBVUgO3Hu93rcSox9OUL/eAoGMBjGVoUutG xj55h2ntAfo+55oE3VoqmUswnThm4uECXgRD3uynjuTgJWPK6Kbvm7Od y+iWXpqleLDzXcFHqw7R6dzI2KB4I43DDhhDCUBoL4kccVLIkmqzuP1G kP6gH2vSGLqAO+LWbboA+c2hJpCN+dJgaX+qNF7QH0pkGYlaZz1Q4nW/ kKJeSw== -; resign=20460416024207 -169r.subtree2. 86400 IN A 192.0.2.1 -169r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . si6aWmRP77c5v3LOogMFuTO9UwJ+tiiLWOAFT682h9kBLEp2mAnYXPUK I5GOLoxFV9R79alTP/k9QYATgttTnKYQt8FWq/o+dlPNqZh2fs48SBk/ yWlHeGW1trsDoAJS7m0aLtr/A3SaB7uLz0jmHHbdlui+h4ZaeNj8KAOW yDjiCqaOM7VEY4B8+iFCGS5Q9aXesMiKpky0aVQm4jh6r5Xvb4BNEy+O R/Tjv/X5j1UkQKwwe4mDe3wVP3UbFurPy7IUYpXvfx/S6LLrahhY3P3y tuhS4/G7y8QINVzS8ojAyuN6xxr4Y0ZCbSqe64QapDcsk68PcaaigJqh RXMG9g== -; resign=20460416024207 -169r.subtree2. 86400 IN NSEC 16r.subtree2. A RRSIG NSEC -169r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . bGKebx2uDgCnZArPh3h5Yk0FDylJOn1t4n5nxCXeD9kyIpOkPP6z/bka W7sRDSNa3ekqwg4ZHwtdnY7nMRbw83msh1CBcePQF8AIv6iHmoMBc+3p ++XgjyHVwQ3TbZ0sIRKmZwuKty2oSteOPZQSsDxQcgG0cmep90KWGE5h +xQJM92kah9uPJWCR/KF0wDRbwJgy4c/hSEaa5OiO2A9eRrXSy4TmyIF YNNVXl7uCDnRCUnH5M7ZNHpNVpUZzBxavmQgOOEPvaqxs+6/gpP2V+ys UKOOrDKz/7lsnr2zrq2XrCOoYs6tZ9n/wLTarYmL0gyg5mc1KjEYBYag vsLt6w== -; resign=20460416024207 -194r.subtree2. 86400 IN A 192.0.2.1 -194r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . kJlB9dWd6vWbnvUV6uB+f8Oe5WnY9RUES9yQMdnYhZOQmWkc75KVpy9v sEEau+gisX5U2rpC6nNdWERMFhPMoCR0Wmc8xMWQKdNL0dpdFap4HI9a FqDswqAqjUlzSslZn6DKm/IErMzI4vIZPFe5lSooJDJtl+MM0qhhKmdk jww1Fb3x+VLKfLb+ry4+gAb3XXOhiBNdfKKaccpu11mfJsQ/GkqEszHW e84I7wFFwG1xj+O859GX8K50QD4EPzQCT1Y5N55m7iX31jogCxLmO1zi dN3l+Ul1FBxa9+rJXgjXp4DYCJ3G8Spgp+cpN6WLs00Q/E7WQ+RExD6j A4Thcw== -; resign=20460416024207 -194r.subtree2. 86400 IN NSEC 195r.subtree2. A RRSIG NSEC -194r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . q14OdHwGJ6MGHiL0xrXY68tPGX6HFIomOvKTYngIXz5LqlIqZJ6Ff+0S H+ONTRFR3Jt9Rl6N109MswOYWv3xLFUyqFJOGHyrGpKUpn5I1+CXEBcp Z2CG5ABHh2G2M08QjPYibrMhVX0ydt9U33LYVCukbrOyH2xkPnITmJ2T EHe4fCPACVEtPkBH8nAceaOLfajbpyBgHnXgeQqrujLoTPonTo0rRqr2 t7dp/48CxA3VQqvrsMajn39CH0xFJfcjHD5kAOn4L16XWkvyYVfn0BiA V3drHDaErhTeRoFkDlwWNxECrfkHqccqY/AWwcz3cSnISMAXWUVYd8ZQ GsU4oA== -; resign=20460416024207 -160r.subtree2. 86400 IN A 192.0.2.1 -160r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . jb72zIgxTA12OlCMJwQuMC/YsMJGNqM8kTQB3QftDma03gPTFy8SbSkn Ewc4Suy6bC076FbaV5TBuX9mmxa2wQL1+Km+fJ9yiKw+FqrhFWmOcB8H Q1PZm83c+at5Yg7u8jvNF1O6QxF13dz6FbURpo7coH1Y8OBKHu+GwDfS +8yiHGsPqdrczCifDmYb3nDc8cslVYNP2AmytY5vbQdkPW6EumLrnTgd HR/vrDe2SLTNwuh+MNMSfS20oKzjYT4SPF8AHelhGqci096tRGJjKboz SpBmKUHQWyOWDiL+cSGGBlz6dMzD3P1iHAPprd+zaRREkVlmAwwvXx4N XscCxg== -; resign=20460416024207 -160r.subtree2. 86400 IN NSEC 161r.subtree2. A RRSIG NSEC -160r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . G0iabi6n6Lxce7Q8i6zYd20At1R9I2rybt7dkh0cx14cXIoq1mt4bqvw HaT5Mv3eqazO+/RNIaJ6urOsFxDr+g1uk4HCVwEA8JBs7jr8Gll6sFuj HF8Ig+kdjjIiIc4cjnygpW/vEd71TOqKeMj3zWtx7SEyLYHl9JaUKqHX ZKPJFA/25KdLvK/TImUgGWs5wTdsqWXgzYH0bGZZjWutToNbpL8a6r5Z smStITjxAxLbmqBdO01qVHufzlsGn5AnteSNie1lRsERhGgm7/QBDz0t 2nk/wsdBVyVJc24lgngL3fwypw0w1qJf25slT73wXayCiOIqRxGkzBg0 m4V89A== -; resign=20460416024207 -196r.subtree2. 86400 IN A 192.0.2.1 -196r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Uv46WzWSPSF7dUoIG5MEXEkf0DSXGDISkm3V+3Gv53VpzWb2nZ5UhLp/ jVSbCrBl3lST6UV5XyNphtkYBHRFq0/ACUtBSTWGFipOGFHVn9OUWMPg NkzKrEGrvWmACRAkea9qVKAFwcSLEvudQM5LeeKKPRonUGlUN3UAHr1K WA87BbQPJ7cvpkHUqvuKnkdS0HkUXAD3g5xH4lHY217wN5SPX936QdWd cyWKEvC4x+grc6hGvHniOk8/8AswsHF6bFJJdF+5tvvIN54Nn3wGdWh4 HxwAG32NW2u+BhP2KBPAHZr5PXtROXfk3x1aOIGuOwI4jQKLO3eH62Aq HlCKow== -; resign=20460416024207 -196r.subtree2. 86400 IN NSEC 197r.subtree2. A RRSIG NSEC -196r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Vhyr8UxBBVv2bGlmO7vt9az5doR4DqsNL74WJU2vFDI3YF0oTOdJhl08 BaYUYQ0Fnq9YTaRAmTiwdmMKvbJWWw2e38tZwUUPmUmU8luVSBXcqGKd wtGr/Ys8zhj2SAY6yZL3K5XkpEFf4x+lJG6PQxGJpHPXmVxcfVdD+yiH IzUmPUTj4hOTwuqL/dJuggbED160MrzhsIcRInt2MM2z2rqkVVo//LS+ kKfTfYCjQSa57CwUrmiokBsiMqbZX8v0f3qfGW7TD03OrEGQNWrfNxkO OEgQp9bj89SeJ15xjog31LkVPILEnPA9Xb5eAjKs/GJP8Ltal8LWCXLe DrQfqw== -; resign=20460416024207 -198r.subtree2. 86400 IN A 192.0.2.1 -198r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Cffyp1+C01GAOk47wKdsqcqrOhXarX2w/VUS9NKTrCFv3E6CVyGKwqxO ddRx4jEE7XcZG3p849CDmnDBDaimzG5i7PbGAt/GGoH/2IGRtKRm2N9p reag4cFOELL1OgRRAZ/Qrvhp+jSiNJc5/uT15lEK5/2KQm7CP4AS5LM/ Do4VjCMQQ/rsXrqepw0fiBGoVU4fyGAzzsIH8mLxdiWMymOYWsF2fHfr fomzr3mPeRwIRDzVd/LLrZPqHjStcOkihua+c5KV4SA44criNpV3b3OD BIgEXumqakOb6J7Gld23peqd0I4h6m3KIY8pRT1BA61g7JfzR7s6XN98 qm3Sfg== -; resign=20460416024207 -198r.subtree2. 86400 IN NSEC 199r.subtree2. A RRSIG NSEC -198r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . riY9qitfYMNPsFQue3GSigjgNjIoJb5pu0SNRP66FH6FEJeIQlVKNBiJ 5psuMDKxJdC4KbvPJ+A4hcojeuAh4oKU1HcXArpo27OlTU2gA7aSYHc2 OJkIQUnl+yH1YUdXnzHV9W67bEGW6qh3DwdahfRBQoB+lZW+xdQomdp7 HlswZ0yn7ldfaJhc78JIcHGgZvZAI+Y0tnWFlQpxxeHyQOJa98IlD5CV 4XTnPgr/tAwypuWlKxhYRuOdLszqodpul1MqE6++x+4GnZ6cil+3cWy5 Z35lxQQkwEmvdxRmWqsL0wpTaEnQK5xpTHSjS3CkjeR3pYH06q1nGdI4 5ci5Aw== -; resign=20460416024207 -199r.subtree2. 86400 IN A 192.0.2.1 -199r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . TBgjH7aBcIMs1KVULSMbahd5I1ltCHL7P1p/Oos4jxMsVrVmQ9edWty5 SFqDyUhgyMk4map0ssQWk/8NBSnv3WpPBIaQM8un1/S0vWZgnRXVY6EL aivSXchFMYOD7pE3wx3cce03aKlFOkORZ9yfGhyHL+8J/aQmfisx2ucS 7wm3qV8K5EFY+Faf5JZhyV2tnQhRJgrISiz/hVH29q7nGOMelhAIkVLe 7da8uVGaUrG9Us6AFmNkpI6+Q9tbF68h/zuk+4fAB014rpBCJAaREYMr Wh/4pk03BRtEIFJeknjhiVTBapmL6Ok2/4ztvYvy55l8ZAqxNSa8o5Rs 7Q7MFA== -; resign=20460416024207 -199r.subtree2. 86400 IN NSEC 19r.subtree2. A RRSIG NSEC -199r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Iv/ytTUdTY8VWsqkOz7qvfKExoAky1y3HXaFCqSzwLY1fHHVnQPSoeBX o9TN19xMA9EyzV8rado66UKjAiOh5i+cG1pGBUatKQfpAOfeleGkY66M M0FfOu1RfO7kbyEcQaAwqx8/nyVoHfZskhrU1Ztpj4AzwqbO5WkH0CHI 7xQIcG+pNPjpQjOV88UpHlCYp4xaTzBZoMgKKwbS/abtGWw7Tg+bgi1g B0ItHaynIXDv45hbguEw/T+yio+4nIaGyEO9V/H+TjDxp3nbS+E7benA kZWjAK6m7BqAu6HSIRitwPR0JcCEdjT0LwUgDbj4komp11ZLl7FJlKoL Dmp+Sw== -; resign=20460416024207 -19r.subtree2. 86400 IN A 192.0.2.1 -19r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . I90j4OdKnWqA+ogjg54CDQGIqisKOTQqEMrknuNreiCPOJTYubGFkTcm lFwWNy4ciQWpYdRBT8bZoV+KELLqWvD+ZMRnWo1kQ0/ewGdABuYVgB9n 3qSh+IkfnSla2zeqyYpVly1vYjFs1umXNVoIfHvHhB9w5+PnE65cQrnt 5Peci0x0iVS46TYH+jlrsy/6nicQV1JQ2cqKKo4EzVkgYw6w5hBZb/xl AurUO4v4NvffNV1fDjiGvDsrq5lWM72wwsZYG5Sn98afpTjfMiFqFzaM U4C/awi4sSKrvZ9mwQHDrs7mer6WLlj75OyuLRwuK49aKwDDWelNY1RJ BjUAqw== -; resign=20460416024207 -19r.subtree2. 86400 IN NSEC 1r.subtree2. A RRSIG NSEC -19r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . P3aASMLhQQIb7UGT/uKDap1pTt9RmqoleePeWFVYeLUZ2K9nnYxGaJE8 WS1W8tTzcVGkWqc4+P3LI5yDR8Dg3QtpAqGqvDt4qogXtTaopIdFdWub xIzxXqjT2SXRtpXlUu+KOldTQRFrQq8ttibDBcWQf9oQN3hNiyYy6nlL FGQ+Xa8+CAq8dI9nw5qd+AUxsDBqwi4qxb4SUM6RIOiDUZU2t2v+jX38 O8Ps5yZOs0DocS2PirrPwP1m/kZ1NR8RSw+vursZsbs8H/jkrQ9waCxv S/9yj5CC+Y6hTzE4jf8Q5Fbsv0wIFJTQ70lhjNhaSEQerO8C5l3y9crI Yn7sxA== -; resign=20460416024207 -1r.subtree2. 86400 IN AAAA 2001:db8:: -1r.subtree2. 86400 IN RRSIG AAAA 8 2 86400 20460416024207 20180815062314 48409 . QPdm6umQ6hgZ12897PAoWH0w+doWTmMWyy6rehLtYI6aosZmdYba/IKf USQchPvSbbpRjZl3SyNc2DJXkmZIr6DBg/4UpTsZJgCKsregVJzo1vi4 iv2NeQ4IAoXFqkGqkOMVzZI7jrBtXQe3BCXtGMh5ydSyV5vkQPFO6VKg yfObVC2g8qpMzF4hGu/KOe41dmkuUKg6OMKkaxrxg6ppscYIa+8MZS+6 8TdNJZFKBk69PmKRsmSBwxAWyLg9gzN68vyiccKJxAYeIA3cZPPZTM+Y MYPwoBLBRxDJ2IvKpVkyYHqjljDjI/SUtBMlYrUHZcxa9JlzaNlaZT1Y P9WkzA== -; resign=20460416024207 -1r.subtree2. 86400 IN NSEC 200r.subtree2. AAAA RRSIG NSEC -1r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . bmKqaR1EKjjdKty7b+HJS9ZckeQaD6X6CV60Ly0zoWsWR+buhfO51Fm8 p4j7YuLohXqREy354p+gUq5bbSL1UXMtw0ABJkFlmP4fAvuWvIfhW3Mr ZIKDaDF0LilZyyGHa9HAQBMA/mO0xoKsMEtLwN/3zRpHm0A27Le7kQzl Tt4qjLfdhDnW47g+ISxVNceHHKgJXXmFxJGrnLUOzh85kUTYq9OECJQL luE7/+n2uDTcsHUnoDxcTupMU32nXMMSR1k/KFSGN+XGM0rkdD8gdLZS 8px8nU1PkH5UlwJem/08S5Wf3VJakKFeUBbFOYhHyCAZrP7oZwzZBcOR 7Hqr7A== -; resign=20460416024207 -200r.subtree2. 86400 IN A 192.0.2.1 -200r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . AdCcd+Um++YcFuEPv4aM5EjXQMa9EEM8JfJzUSbtnNgbc2dkAuhtU9/y v+Fspg0RhVw/GZeqLvikGrkvIQliZv4CETszTJt6521PTrveFkQjJRjt XztatkTf0GtwvJepxitodztMAZK3aOyXQkYSjfQgybG5c6sCSAU+crqp IJxBhV1eKIJ91ZVMq6rvlhUmkKQg2nCrgLq+V8lbaZHANar0k7O3st3U ESLyCRJ88rYhlvITZzKtawgIFpZxl8ilF6dPIqZuz1JDnI7u1N8Yk8ec OHHJReEDhK3XhupK9Xqr//laHHWiy2CyEivZpZFnP9d5ePt2Fe1/xm5U WYZtdg== -; resign=20460416024207 -200r.subtree2. 86400 IN NSEC 201r.subtree2. A RRSIG NSEC -200r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . arMHmTLOYus38Fu2zrYqWz7IDdR1K+tkbUbUkQT0kUhD+9o2f2JOBKSF UHWGl/sLof7v9ZDNiO2YDRNqZqqfrbzVkZ5TkViJ25BbdpLyzHQmTWkD 0jA0Vc5bASOoNBArxKGLctrdG2xTlOzr4r8larjWmAdF82rSum2VQEzg RQW+32E+fi9P4/n9N0lL7LTgGax04Fk/rT41T/00A1FY7y0WYlex0KPk 6SG3366RsA/D+ci+rYcV+o1gowZWZ2EfcIY/dqjaaYKsPlkTdWKXMFKn e5tlur46qyl0ds2Sl8nzxWrym6MBtVEfGTONQiPymhxtvfy3+x8QxCP2 BxiZxA== -; resign=20460416024207 -201r.subtree2. 86400 IN A 192.0.2.1 -201r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . WKRZCWCyCWWUcXSdPXGuiqNJr9fp2TBt5T2Gwd6gK4D8kzyr7fzyfkex QoR2lb6i5PC7DwxP2JdMz8DeT4x8TQmsNhlgRk5W1yEWie0SXdgtIGMm CrjZqktI8qtdqoRTXTf7wk+8E9QOcOnZIErQZOcs8GWkqU7PTteyHRFx FwPv/b+ynLks/GnzmiwIuKO/5ITbFByQgpT6cuIR6r+Xl/f1PZ0yThnO +FC8jBJQVZDYAmMgPt9wa8vQeLANdVgOqrEBi5dc8xHRVESw7Yo9aHOg MN7R1/HN/1wXe1U/IGXnAfIBQxZbdICy7Ht/GBMUW5d4EuIHHSIOwzv3 Xn12/g== -; resign=20460416024207 -201r.subtree2. 86400 IN NSEC 20r.subtree2. A RRSIG NSEC -201r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ZDr+YoExEf+b009kZrDByKSO+NsyPNNizYUiEY6rr3+LTWvqQxghtU+N Udt9OjzETSWQxOKxTjpPr9PAcaPimpxztob4UxSdyyvhBey48AaMEHGI sYoFPaftUX4lwXDaaZRyzEaqe4nv55VJQUdg6JqTN5wvlSXWocKrKhGm gAxhfXbo6IYUp9AH41FRM6zv+AT+hqy2y+2rMpPXDy7SUafR/0hulVJ4 0JTxPIXVrhJGV7JxxWUfO4x3t0w/B3z0bCXgEro5ixke1iXz53+zGeKh RcIIwVUFx14XVgllzWkD8RaIdRLHiTOH9N4mxrw3bKje4iF+FC8XR1M2 Ao0uaQ== -; resign=20460416024207 -20r.subtree2. 86400 IN A 192.0.2.1 -20r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . VElsKz86WloMD8ddFst3ZmP7o7rv85lui0GuD/cqc/HDHxNKlkegTzi+ RRdSCJw/XoGoLv0Gsc3oMffvX+YMombqctFWS58tK7msoKJAAxLNc4Eb IqSNI/shXP9IWLSqLMR6fCZSgNd85Q5DlvjY3ql4tRyn42299s3YCkXc PCurh+/LaePwqfj95nKD+gAj/c89stTFA8bfQza7mYEZPRXbnjKhKHoV KcWQmYVZIeJbydPLQ/dcUMbbYsRIQvzPmVGULcpCngTJQlsFG9E+nDto h9DOz4/DeMjN/1DRZP8FVVSx4b6QXJaw+lsEL3cRpA+FXzXOxFSyVxRi 0QeviQ== -; resign=20460416024207 -20r.subtree2. 86400 IN NSEC 21r.subtree2. A RRSIG NSEC -20r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . HKndM6ggvOdNXfO7/v20k3RwWsAKWxFGLM0o+EL1gvkw9vi1BSpGSH/6 OvRHlECyZ2zD5UZXquNy6pjP2sMtnSdNPDARm4MYAYDJQWool14QRSFF JHbEdXPBQB4Erq/NqdByq0RuEOykROi8tdiyW5o7pCWjpgm6YSmFvNFI 3jaLLYAZygTuonnJX9gXAalKo/QtAGw5blFA6X1GTDuhdMIK+ojOBDr1 QeZA2tNJAGKtkta9L/NrwZlPX+Ij+WPlPvCgzGonnYHfLGC4j0X82Ctm 5pNpzjal/ilPYBnhu+wOuNkjdrbPnjbA4q/o3zHAcTw1RHh561geSOfZ Htkbig== -; resign=20460416024207 -21r.subtree2. 86400 IN A 192.0.2.1 -21r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Ddwfe587CQAQmgV6aWxYN6fp6gBQu7ydmCThrOYl5yHcmH46RKLjP5e2 QBHtj3EJEGSh+H0ZRaYgmuX2QNR4nSfAPs3kI4cAr/cP4lyfASm1890f 03nc8NGeLcl1t9tJR6Nu2hy979252mREBWt0hKkAtnDhu3u/CCopMkFy qQzwcusRXU6cnf2GVMOOgSXJvC9hkK/LCAlTPR1SyIViXTIyMrrvR+0z O4s+SihfAt/0LzYGEFCB8UOTj8r8U1QWrAuVxZCVPYM70b0q2IzB5aRH QmU4fQ77HaNdDD976qFOFm0MSAA864S69yBmn048yRO18wc9T4xJbfzM Ua2O1w== -; resign=20460416024207 -21r.subtree2. 86400 IN NSEC 22r.subtree2. A RRSIG NSEC -21r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . V5B9ljXa86R+eOEozvkkKYRzr6WmwAYblhCZtfYoH+nEcuImDLOcKppv fgpmzY6LG8yzMt8V4Cbk41D1kIvCD+balhp35hpBsvCZdzuAEBqSB//y 7/4n5CUNaCa2ThJP/rVH6ktwja4Y1YE8dKgJ/BMDVMNx1sB9M+J+xiyv +jmDM6Cnc4ihRgt5+dHFG/AkGekG4LHSEYquAhc+0ZypNoY8stC4dDpP 9HTRusbvJR5Be7a7shOkfGgUP7CdZhZPTXGhC/etGAXzrVMpIg5+vQA7 cRzH8czwgpp11hQcMpbjHRiDggC0bkAhC8Se3MyrEL0l2wwWt3r+VVWP BTL4+g== -; resign=20460416024207 -22r.subtree2. 86400 IN A 192.0.2.1 -22r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . tBL2RsmxH4sQBpS+lGED4ig0o/jHn1kEo7ctXl4F90EZrY9PE2VOY/8+ LCq0B+O9tRZaOwZ0H9/P1AdssmdaZDX1PajDuP8+WC9zjjA21sPpOW4l eOPXoE1200W3cX0maOp+/uA6vHy6FoC1d1/WeObc8NpN7J8mNXU/tzH+ xOlyeccMsxapQ4hXJFIpWeTGFfogB0eaNOxSMHinoLWEdAXYcF26B3Jj Xxagc9YQFn0hUuOK7CIc6OYuGXnEeteegZI94dKPUF0jfqLfJomibQlr d6vsz5EFvAbJw83Va93QT4+SHcPDzEgsraVYBFd56WHoXbPZ4NZiPL7o BsgOwA== -; resign=20460416024207 -22r.subtree2. 86400 IN NSEC 23r.subtree2. A RRSIG NSEC -22r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . mQ+h1nOcLbnohGMzdSxudqhZ5AJoV2l2i4wkAL+syqDiHnuGVG0Znxwe Uy0Qjf0Uza+XP81Y+q4MJonVYpfriJv0QJCY9D8/r7fBrmOTnz3pdptD 9ABo0FIDtIsNzMBdMTsVqNVHESmXRs3DaJcGza+SrRl5TChGU+jkTth4 i1yl0VO2wAfox9z39BKnkZ8+bXwU3LJeBKN4EasQV91X2SJDYLzvRB4J v9cYER1xX/+HLG9pBN8I2iVy5O7UBCb94KgYtwB22V2t+8i2RwcJ1a3x FdZCEyk9fTGow8NCmjCJSMTLCqLZgoCpWhReXTB7mlJ62eYyxD39gPFz FvuhAw== -; resign=20460416024207 -23r.subtree2. 86400 IN A 192.0.2.1 -23r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . vt9Cxd3Qaaz2ioC4luCCwsjE2cD3ySiqfJEC4WySIs/ONMlWC3ZjKW5c yS9/R9FsXMQfqQ9tpqNpLDg09UDU7BRJPW0Ouf1NlS4sPc8yfC49v9pO 7sN+gcwIjehQuPLCweXFjuckZke92b3DTgEZJ1BxnvzIEfH9gQYmDk1K 1Ul1bmK20Q/sKA4TgJSIq7rQF5JaZ5L2xR/+hZTNDhT/ApX+0By6MPSa uEKvH2/SkPS46VfeeR4iUyJqCpzZzm4rruUq7pGItL28PPPefchebCUo +85TDv5eRVP2rRHDixhqYcBNG7HVu+G+2wmX9caZ5pEGwGYdOdhzebJQ p6ECKg== -; resign=20460416024207 -23r.subtree2. 86400 IN NSEC 24r.subtree2. A RRSIG NSEC -23r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . DAJWX9VaLiASU85yHGBARIl9kcBXWozpt5yQSxy6kYVY/AvG0j9SSEcY 7ThX/eC6hPgHj3MOpFfJBWfYGAIKxejnzr3ATtevOYC6xugBRoc95Uyb dYo5S17O6yzI1OU6d/ll5KDW+gX4e/1+10P6FmJLlS9AzhAjbzXXIdZQ 74dcDIQ8y/cSl7VoqlwUg3LwC4hYtXOaFsrkwId/a2Ly3k8qXNIIYw63 Phu17IuoKZBceXBDNyuQkeo0CX7EfU60M0SRtaF7vohv1vy35BVA/SW5 UPEbBDHGdy4ygJv8cCwFhcdqXm8O7aYjS3xGscKdRa+HfCl0rBAdBLdo UZ56OA== -; resign=20460416024207 -24r.subtree2. 86400 IN A 192.0.2.1 -24r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . oREQ6/5Gy5CkKpd0m/7Nfu8dGqXe3PdR1wUrLjfmsbcx6I54VQ0l0L1l G1GjHM3ci/ngmAak+4Iy3NUiDEtUxPxXFfJHDac0QunCscGpwwDxDhRM VoyB+DnQ0DZcAPUcIiBSyS56ujIZkRvfAY2PnXH5WYR8V4CfgI7Lnq82 R431Lqz1TqkwX9XYTLcloD1D6uPez3xV/fdJ5jGoOQbQYPV+mjjDrMPm d0mqRw42ubDqrjf1wZ/s7sSKV8T2e7rnpjreoGcD/TBaGQ6JYNx6NZCG eOTGBLf2NdCkN5BacbZrXMUVCk9qmgPZJ/zlcbEwB4X4VgLjHfU6l83q p2dShA== -; resign=20460416024207 -24r.subtree2. 86400 IN NSEC 25r.subtree2. A RRSIG NSEC -24r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . w4jw5BOrRRbRs1yvVoAZDiW6AzBNZ9czQSIx0zbPEzOytGplgWurm7iG UyHCKSnOzB4TQ6hjh1OuuQXYm5x5iJifHpLD+o8aGRoae3hnpHBkGDn1 7zlPCmNpzPrRDCNKMwwMnvzaqsXu3bBfh718dVN1o/kiFF+AWEdDZaWE 3TkAHpDIa+UUQr+dA2IEdNMzTMnH/iezAQyejxHdQLw1/eYiWOmvjzvZ 5lRiihRfTCumJXtTeUko/FbqB3mdt6ioZm/RYbONw2ouZ8OTys4BOsqe Y4pE0QSxWHqKAU4pynCI3unZdE3ckTAiu1GxlcTwujge7ifjKu+JuBdJ ynGItA== -; resign=20460416024207 -25r.subtree2. 86400 IN A 192.0.2.1 -25r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . R4hAmO+OLOqxjHBlu5r+I95+zNrbT5deDE4C7hoStCut873rs7GXs1Ti ICmud+4oWP6w22TD+Vc+cnt9GwtRY2oZFAomfaZVPyqiUrxDI5Abd57R Nc3C6la5u86Vh/rU4dTaVhOxCe0g5365DJba3x1TCJBh9MIlLXdZC2K5 jmxEgrYatyo7tDQv4EFPxXB+J4j1IK29llcEmCkdHosaNo81bEDeH/kZ l68+SG03Fq3mHkgd1EWPs6M1IYOXVxBKhoRQZ4e8K89TAUAsyscsOVje HEg7BhfOsWtuuyMPNqDq4NhYVEQR3VQIMzMDRhJQ1njIrJgVzrW9AyQO YPVKOQ== -; resign=20460416024207 -25r.subtree2. 86400 IN NSEC 26r.subtree2. A RRSIG NSEC -25r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Tt14ZNNTv3ACWX5Qs41v7fB58iGZvKt4r8gDgQWSHYk0eefMrQOV7Qob LWZ+MQZXqcuNwmpbW+c0i3gsHywsU7wZTyXIJXhEHo3AKYURDf6FIjlQ VXTmLmaNvvA+51MuKzv9zyg64V58xIl44IClvNde+vEgOukzgH1UNkjL DdZKT3JpZfThPtPR5TPsuKwqKqtKsod9/D9JGNswow0ebFXLEA8X4qZG +4OfDIU0OoiGmN/5QXfor2p0RTeHHkhan2Nb365qEg+wdigmVTPjLFSv 8p2b/Mhkf9HYFv9M8/8PaXNhtAZ5whjySb+iRvTwcA5MyrXugI0nKqpH jDyBQw== -; resign=20460416024207 -26r.subtree2. 86400 IN A 192.0.2.1 -26r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . aVWoA576Nhf/V7aCHPru31D675EVJHxtBqMA1jAutDOWtQIRnuz9CoS+ 6zG5mfywi+MPxMYHpcGYM+wxQkQjVMijBBkD6QBPE2Pf49VmYfD01AUZ R1CM/CdVZi81w7tjMDbKJT2XQs3EozsdsjyeUrWWqmtv4xnWgwPwSBcP NADFeuXyWhyJPeVIbR/S0lqPkS1e3XPZaUWn7ipe01e+dhHvMbZU1hZS y3h+EwHdeeTzG/0prP0EROMbRZflfUEdS94FAMehBDnG/2feQiKRJsTL rnrZ7y66yWvUvjHnfgW4XqAsDPq3LzEGApbvEOksdVTb87o3VBFmFpRy OZqQYQ== -; resign=20460416024207 -26r.subtree2. 86400 IN NSEC 27r.subtree2. A RRSIG NSEC -26r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . yBNyvINpDip6j5Pe8i2lmYd3MNeHXQrW4tfOgqzPgd3fIpc06kYSG264 FchLrX89Bsm4q6/ZlfZN5XpYHXYCwFzNWaC+CJJQh6Wj52S0UKfAsTRA 86jxe1Y8Ld6kFdjE94UW/j/l3VO3j6oZw96kpTj1RH6dqPtPxGOqhbWi BgdoMBmKV+TCGHXEhEK/MQ/InLrBD4nE40Ryr1kYhGmqvFq6OBrYwSX3 JN5R3NJQVqqkE1/cQxaUKhJlw515hucNar37ZaI3IF1G9xs5cny8HVdo mo/CSBBumcR/1ByIy3S8ZYqJGwtkTGj3E07JXVgvRo+04gxUS9aEBBD4 cLPf2A== -; resign=20460416024207 -27r.subtree2. 86400 IN A 192.0.2.1 -27r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . xrpHpVUJTEBYfeJgoVXr3JDlXNT+v6G/S2sKYlYwpQO0w5/gloxDJFL4 0X9tEoUF0tvV5+zsqRxbZD8J5PWJlWMiee4CxzyfZtwOYRgq5Pq4hUQX T9n6jfNlL4xSKkvIFz5+upIzqfopZwFo0nd7LxUPLDakBdMMJHX+6xA1 ITBktxiCrm/smFzcIUCekMXDMBXrScntqdutctOYYmoAnLIerJLP5lcv yp+NSjZKaDCV77kV7jOf4yJr0LNpV9+TlVCQMFOUSlQiT+QtoydPoZ16 vLSKrs3jUkFNS5WgzIam2EG8KYAutFxD/f1p4mCcYtlD/axOi5lALldo UdAZAw== -; resign=20460416024207 -27r.subtree2. 86400 IN NSEC 28r.subtree2. A RRSIG NSEC -27r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Sn1ACKuYHZBNOuLZVaKGDJKqcEQCcVBYjyNYdXez4uPCwD4YipOAjVk5 fNbse4YUxwokWGUMA2+vo6FPCNtL4aAUdbBlbdN+wso4C2vo38AljMRp Vta+yY1QNQwQ8iocX5njYJ3PNqCqzLaRvV1DPZLNgzwjHGD/5aUlQzPl nOUwspcOA5QRT1s2yx1WkDIqJjkYhNXFsp3Yy6FZR7CW2QFvBwlGVjGs nq0K82oZJfU2TAlnWU34hz+NvRYG00irQVdsd7M3OhVgbtaAykdse+pr PSYHbWTXFrrXwTY8RamnxUDPjGEBc92403m3r90OxNY1JPlbecKuGQti uSjiRA== -; resign=20460416024207 -28r.subtree2. 86400 IN A 192.0.2.1 -28r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . U/xbcFOZhpchMwPGJFmpAJZkMVU+RkyUIlwrfRpDFBASPEFd4tron+eU 9lOWuwre3SwQk2Ul0q9rCZr78dj9Dg6Hh5OgwaP9pmebsg512O+4j2rO z+oj7b9sI2YVwDX62nTxv0v4buhPzFuDjY+L0z7EdKTaUrb0N+kYehze RXXUMeu8+xVg8vD6nBOClI2KjcjUaivCJsQ4KHtBrXN0T1CoQG1KT2uB SFT/YohxC+9sTmiS6wPplxolxg5vZBBgDV0l9ppV9y2dE1fQsC7N30ch 2mSSgPm4/nZSmEX7We3TnvLaiyEoi7gSTy9txaBRRyUhQNsPTT7TJ/pK UA/o1A== -; resign=20460416024207 -28r.subtree2. 86400 IN NSEC 29r.subtree2. A RRSIG NSEC -28r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . A0707dBFvfAGDrHniS9iR6Z4znuSifFb9yvIUQBEcT+1+u6gbtyAhABC w+tNCEgOnkkl5fB651d9znwAzp889bVZiAjQF828v77vcMS992OZ3bvy 9XseZbdzedr4TRo1HgcdBPmxXR7a1PezrhZS5NgZxeBj4nEPfXW/MzT7 I8W9KcnQoltu0woOrWHyiHCQGqBKQysUHnpz26XVnhJ/LpyEhYbHa9WV uksBUDDXkONgBdGSfiby+Kl32sW/PgjdqTdy4+GZHk+LWK3C/D98UPMg wzoz+Um6k7M+ZrkZHwHwQde+l83nNgn7WYDPUe2KU5MlVCoGbyWKSaIc s4PKrg== -; resign=20460416024207 -29r.subtree2. 86400 IN A 192.0.2.1 -29r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ilPHZ6aax0asJooMVb4cjhHUxgPo22Pn2Z6sXM3gEopb8Wy0K8Yds78P A0BUbioKG73l1PAXx5wM60Tx5Kvm88OiTKDhqUw55S2eUZ1h0X3W3Bgv +8+PKAWhp572gSbWlLcgDkwvXrl/evTapxgg0tvNGpXug8SYPUcxUmd0 6QqYDJIlUfAt2dMPT5WR0bdbNNGbsl4hz+G7KsBHTJxiHD+poQoxu/zK M90ZF+wJUPj6F+PZbPOxuP/bAnCA2oNHDQPNyUJr3SE51Iyp264vpgLx wtKV9nMNdSq8kyG84l4jf9EPGJsO3ZnNLe8kT2G8UE8TsS+cWmqHrw0t nTjrrw== -; resign=20460416024207 -29r.subtree2. 86400 IN NSEC 2r.subtree2. A RRSIG NSEC -29r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ZfXwUkPRWGLLhYU9Sgnx/JeybjuPWlT0bptlRsFijYQyxik3q2JyO7Zj AKpc8z3L0dTMyQDHqmROsbYRI+F34Sck96waEV2XZj/IxnISHuxvlBL4 uGXtVuVaMlzaCPMJemhMY4Bw3uliaDpudR2cWB5Yrq8BAsp2fUnbfI4i zKJ1RMpzG73ot3ps0MxUNs9bpIKm/Bce27rMFZ3dYfVOwQAJC+Qqq4DY h4izq2abPYrJZ3QBV5AyMP6b2j763IfgO3IVVEnMqe6l3lDadfG3vX8M 87Ow9NEnGhYQYJu/egivp0N6Vkgcz/h03rRvcvj/ZEv9dj5zpfPbM0yh uMN81w== -; resign=20460416024207 -2r.subtree2. 86400 IN AAAA 2001:db8:: -2r.subtree2. 86400 IN RRSIG AAAA 8 2 86400 20460416024207 20180815062314 48409 . Hprna6yPTc4fP0vehuoaUXSrarTYKQCWXuVR+qkmpziqh53a9hmM5R7p CtTYOGGJuAhdHxBoUimhyAeyBn9WgjdikDrH/UvtXzi66jur0CpCdP/M wD4w3agcjtkLebjqR7iUJxZOYshqnu9YZpr34Te893c3Glv1fShnqi6H uT+TyEs6a/mDb6b6t7+ezHaE+gM716oPArNN1k/8A3BA56huUBDqBZWi Fj8ootIjauKf06HpOCEYHOH2DT9juLH8Z5naaWj5vjXeUFhuk/X3EfGB clnZVm/rqLyYRdro3T9Kv11KjI8vUvQbOrEyYkkqIAsBSsfQAKUjOHXp IIF9bw== -; resign=20460416024207 -2r.subtree2. 86400 IN NSEC 30r.subtree2. AAAA RRSIG NSEC -2r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . AqoSPZuchYPArsyXg8tr1Et4yhuBpSO44EpMxMRDNDbkLkNKrr+OMGKD OClSp5vW4npgYykJ3gxs6TAvmoywYT442Hw/SDhbVEZ1qIeH6eZ1BU1L TAVdldT53PyPfxek7HjC0gZyHN78J555pJRzif48u7aqsTfVT4Q2N9i3 GIsozjrhUqsB1Y3ovhXFqmcR0bTKpZncWC3yByjgwhlLFrxhPWpGx0t5 wJza8ncTpWab0DzkAiVxd/ErBzqNe2oGrZPcCm9kZ4dI6RRPfk7ZY8nN ekp5YKa1LCWP2uE5Qr0IOhig/IUFr9ovOuM7j5gcF44JR8YuPmV7Naaq Vt4z7g== -; resign=20460416024207 -30r.subtree2. 86400 IN A 192.0.2.1 -30r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . TAQ4R6EVK2GqE3WKZbkV7vCpq9LyUWNWhEMZAt9732aRhTdrCa7T6tIc cqKOeBk3NP0Nu2HqoXMSjiFTu7Sqt9bWheRWPQpa+tuuhT4FOYDOMQOR GHAGyg0vWllJioJnwAUbF25PAxSrT7pyU1j5EZ+svmbbUSp2LFzDNPno exbe3f6C8MobjlJnYq8dkS5x2IfnsZHrG+IBpCAaTCeBFL2lX0XgbkoW CIjSgU7akg+J1vbZZm/W03mY46U3A9KVepnxPX5koIHtlWrFzywdPpwm 3dJHQXz7azK3/ObzW7zBkF6q7qy6fwxQ4tnrOo9q8+owHBVIJkeoeSib jS/tfQ== -; resign=20460416024207 -30r.subtree2. 86400 IN NSEC 31r.subtree2. A RRSIG NSEC -30r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . wS4eVreFN8KNi72+TIjrs6mnNPKyetFgZa+XOXTBYomcpB/FfJTfwTxu sSNbWXPCPfB/ebMQy3hEU9dSmEfUjsjj8+walUzihYdB1zFD1Uu+JwqE /xJO9YIbnzw8yg80bzomeijhHQ84avfEsJR2Arekxl/OcPBJE087bKxH JYtM+atz6gyoYFF6HjwEOetotnIWjKGfD2cjFKjGpIWpcQQBSBb6jnh2 /aHxtZoZQy84xnh+eH1ATFnqo2Tg8803CSDIewbj0wmnKGBBpiEvjJF2 O4jVfcmO3NQuLvFCOe+UjGdwV6w3yrSOXsBV9r/YLyYEvpY/1D4ISruW SE9Gww== -; resign=20460416024207 -32r.subtree2. 86400 IN A 192.0.2.1 -32r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . lqk6YrQbBT8MuA/E1BYoeyQz+FHQTLDtEVPCqCaZJv+wLfUMbEUAMP6/ kZrGfqjKSzVx1yGt1JiznUAmrR56TvGqt+f3XLVum/o19P3wgHgvMjF4 /l+68dbeFV0Voq5ZyYvjJJEXm52lYmJXMFIVnG9ReNWU2u5NHa3rq7F9 5jyXOkL4nf41DH+TYgMaInugLn2ILiv+xFdluunl32JQ+CRY6dJ9gGh1 2Ji2Z8exyiDTw0yzMy2d4Wx8CFVgq4bODj9HOvUaOrhkqdFWx6Oa6wSd U4ilIpiSo1jJtpXmkydJfJW2ktr6hXWYKrimR21N8Qx/x+AnfbuRDvLA ZtPSDQ== -; resign=20460416024207 -32r.subtree2. 86400 IN NSEC 33r.subtree2. A RRSIG NSEC -32r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . nlM0hf5RT5YJpc6bSoTlpxtdnDcEA8tn8zJdfqscAW1ryvgvromem+6t 6xqT3S6gsfc4VTyWDsQovcfo06pqJ6/MYGgIoxG2pz8KXwahAnCvpGvg FKb7tw6iTRH80Y5AI+05X+tRP84szyPora1Mslx+2hs3yU0Ksjxb4DWC GGxCREuhl1gcoVaoCwFLym/fo2dc05Aot3qWwQ73SlzkC9rLYIqSIr6o X1LTNhQhM88HnV05tMyqAFOwI3QBMwqAadUjFH0sTTKk/7rdxBp1r7KA Ovj3I5zA6kGvzEj8QEJ24QNy2de+muOgOyiBc2irKJiR6Hcs4WOq8S92 5bMyug== -; resign=20460416024207 -179r.subtree2. 86400 IN A 192.0.2.1 -179r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . LrFGFdv8SxFduIWMEtdjxDERVMMcMOS9VBgCc8C9yytjbzMnOJMk87OE pDOAmeeQNPKrVWRm2hmj1+m2fJ1yYeIweC37OQsODBIlfNVGjGr1QjBL srhOzgO7944hDMcn+9ieyTsAVc2DN0wnMqMceYwc/gMUSmFZvLq2cWJ7 J9d7pcvPKuFB7pG7j3J5OC6qyLM1f84eCsJ4ACHHwq9yDOIDR0U4mPuw ENlaV7hYWbv8Z6ToDzSOUAaUWDU/ux+nJ5F9jyK4gpu4gBQDbPhpTU4N AfPUBDoX+bVOqfMvXezMtLlGAH6N+bJqqqhE+dnnPTa1cJdU6tRekdGG xTlKhA== -; resign=20460416024207 -179r.subtree2. 86400 IN NSEC 17r.subtree2. A RRSIG NSEC -179r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . RfqIuAFqyazXWw2CBSNtbcPHzXPGCx07mw9lZUYFupendhDzQvM66C79 60qWJZY9wZ6CK28Z2j9ga2mfqkR8yFFnYkEIuDNs+J/RCcPYT/CGYFXE COv6Khoi+EjNTWKMACXU7noHW/zPHrR97M0UnakDf/dv5TAhqbXrRZgz N7bxpEofHDAM65DbqcrLqUArGWVPz1Kv+qtFW0y7XvuR9hgvcf0iAV3w bnnuRmkntHXAY8sauP5VgM68pw2AVvD2Nv8ISSC5a9amSHaJ88IRjz8Y zM9vA7cfCdYEFSWl0+RFjI9SN9H2TOaWKx6eThr2+oZ31L8kg6+WvtZL MB6Avw== -; resign=20460416024207 -33r.subtree2. 86400 IN A 192.0.2.1 -33r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . rT6kqQOhR1sFb7OBZj7I8waE84EkXeUERjRoqS2zaPmo2xcji3DzsykK Hn92fZGLnx0xqWKM7a2eaLZgd3UJqu0OMp9BqyqD6L2eHsr3RzP8I7fq 0Pg2R1eTmILdITobl49Ef2NB3e3pS8MQPFS1zBbPoOz4koltU0JedGLm TJcq8R7WAS4sVDzqBB10N5EkZw9f7qwZnYMCdwc+Kc5gbF3b8RDyuG2X /7cKUamFjOxa2vT6aZkciY2LlIjIo2Sov2q3GCKaZXO5gAjTZjx2zn6D /YVGwrQ2+2kXgodu4Jmz1DP0CPbntI9AS7MEU+pcwlsQsZeqBrIvshj6 ACU/hw== -; resign=20460416024207 -33r.subtree2. 86400 IN NSEC 34r.subtree2. A RRSIG NSEC -33r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . YWg57hOL7GY6L335NC6/SAKzYEN43au0NwkUbFaUqTlYtCFf2eOFjBvV tqkU+Ft9zXV4ATqoFm5dTLRHsye5Ahx+ie/Afm/XThUKtPwJ5KTJuPei eDH19gj63Jt9T1e2BnbBNlWTWWicRBbsc+18qnPYZjdxc7KKv9RMEWmE sGp4KdmSbPAXFSC97924oltJFQeQzSwrVj+NxbvwwKjLtSJziyF16wTR sCt2XGmun5dI6hwaFAydTSgGpjeSvuCJs8KwOmRJg+ofCOluXgPbFaaf 292CyrT1QhZG5/N7PHrsgsixc7YcUHQzmCpgWFCcW449MMPwPP/IteAX AK/r8A== -; resign=20460416024207 -34r.subtree2. 86400 IN A 192.0.2.1 -34r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . qcimjAuT269n/yygTYNnWHtjvZHyXfBabyB3AWDCnW2v4Sku0tXD0Mzf Ps02oZFoE7lglN8TYoqDlucvghXTUCpdw/Xrf2ijSM+/ulsOWzq5Q5Kv P99kO+8cbaYyXPbwLIHTLiZrxxI91yfvThyDylw1bENWcU1RQIjLkIE2 5dMkVpi6OWIvjFVyOSR2/bFn3E5pe/qJsoKlQ1H9S09vEo/TD7zRI/zl hNBdp8HFpY+qkEOMCfGyG8+nbEXprxKbrH8mMBTM0e6HI95jBWbfM3yJ B+Z0TXRISYQN1my2RH/2W7PxJnaV97Z/+bT+tsb5p/Z1ihwDq/h1EamS gBPxtg== -; resign=20460416024207 -34r.subtree2. 86400 IN NSEC 35r.subtree2. A RRSIG NSEC -34r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . BK0DNEGbK/AHsdgiLxzm8JVE5PdwwyIwn5z3lLtZ3YrR2OTFmxYSEpdU DEPur+1XiIMxT+Sb2yoNTXxK+gwb6HGIQRdTh3o8k1v4QLh9RbaARvO0 i+/TzVnGBmE3K1mXq/PYaV9m66vkAJq2dIs8DV1fCbQNNowsrjYso1nT PvRL5grVwt2bYq3qxeHByYWJ/XSNqz7b+ze2ZLa/y3FYDCeLoEF/zaT3 AVnoRvFqo0nvl4mTpY4Lh5IDg5XbJRyqyYjg9Y4lHJXvXiGJaTN1yCOW K02dM14Yva4eGp0HQLiceaEzlNOzEbFnNrehZTme4TIfONYLVR7/xuVC X+vEVQ== -; resign=20460416024207 -197r.subtree2. 86400 IN A 192.0.2.1 -197r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . TLip/k1giQhyMSwC1uCfuRILSHacd+aUA+0XhbEsh8qs39mgZv/DdY5E 4xJaoZ4MzjmkMHYPofxwh/hXo07b3KXyzbGZq7ujMSsuNUlZ+gjZbzUY 6aV3zYhG5ucsTAZmBX4qQdc3ENVkz/oVDA5SV6BXgK2+b401gwy3sV+3 uZu/g6TheRyt56xRZI4Kc8NRxyjqXFBsZLJ6qTz6+WLuE/c+toy6t825 yPZKW+ZVQJ+qz8SThKZ3Y7KSRUTE/F0DWb6flkenVrt8Nw92Jps2wTn3 tnzmkGjkYcw7pB+ZZPs07zLl5euy8XSsfaSbEgfAGEg49JRwtdEPfwkU m7/xuw== -; resign=20460416024207 -197r.subtree2. 86400 IN NSEC 198r.subtree2. A RRSIG NSEC -197r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ACb3fWFqMV5squYz2Tscj7wvkUgL/T6OTb0dwFEBOqSqW765Dvu6qYEH fW0kZ3bbHgPNXwiEHBEa9R3QwBW7uBQtflGYy2OvuCMzh40KSE9L63rj uSpEzN/TkzncNO6U1UaGnYhc2BkfUCgWNZOLAZ9EzoFxb5aOaLMygrYI W27zzx0tG21v7WFlo1aSEpHHbIYTcq+JzhuFGDPSkeJarCif5ZzcEuJK 8OtqxTPj475hKBAv4WuC49wX9+n54koePs9KAyAI3qrkUksK4+JgSmB1 lJgW259pQahZTUrnZUC/HK8reOe+jlsYqKyynZ6lSI2VUUdbqvezz3Vq ZjiRBg== -; resign=20460416024207 -35r.subtree2. 86400 IN A 192.0.2.1 -35r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . bi5mS4szw8tn/sWCtOn0l7C36ckESCPGT9F9ONJocCnFHLpLM4TRStGX I2tKmsj0n9uKcF4zrIGGdfGSnjiHSMwUFC6S2HIS1vwEStNUtB9M6M07 gHr9uzSYJ/3IqDAtbMUgvmzdPq3ZieuKLD9HqohgVbxJHll9wp8AKm82 M/5kVgj6z6igfL6WJh8b7kXaOjAodcLu2CO3yV0A75UxXejJhFEarGDE gOcz/WXC5EugWfo3tC4jWzUGTAUtZXmSblGRlwQlDxF8xMhNguTnmKi5 KdBOVK1Det/MmrevbIH+xPkM3jSj980VBgug51VjjYqffgfqNJa85PWA nmaGmw== -; resign=20460416024207 -35r.subtree2. 86400 IN NSEC 36r.subtree2. A RRSIG NSEC -35r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . DgvxjQQHnA3sEgn3bwFwS0AZchch1WLPt9p/HHEFj2ZPhV5lvHkLUGog 5Kwy1MIQBg13FA4ksthXrmrfHFKVbY/6hoJQZl17QD5Fcss/5BSmffrK NNFYoWSWZBnS1fIT5GZht1PJOJaW2Tgr6Znre5qvMTzuBmdjSg7XEw7J t11xkSVGMcjDeirVuSV6f/rGE5F6sOQFm+JjIUK/eHfJnhoiyV7xfDXz C5wO11z8zOYdtUiQL0swEG9gX8agnFifILSJhiJDKvCqweS5/dQbWw7i NA8kjolnA4/d2CXSwjMNgD0dtRcECrRVZlZPWpPIYqpnOY6yTsDoSc/V GG2q5w== -; resign=20460416024207 -195r.subtree2. 86400 IN A 192.0.2.1 -195r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . RWYPW616aK8DqdJYrm2mwQPT7pbx6/XgT4CYEHnhHh0RZNidjGY5YV67 K2+PzglmTWR2Uzedd7p84lbyPO//1XNaJRqeOLd1omwtYqEiCjUEPbIe MH0Z18BR0GKPbzzy9DSRAAJZnOGvsrumu0XDUGg2Ea4FM+qAkFCZR+z7 cp0H0mhZZLQIGanjRC5q0qix6ZKSxfiwD2H5Y2XGTcqbcRcrd3vny5Of HYymaLjznirsznf303S0itFM4tulV4CqU5HUHWoLsVm7qYv1WdMisrUo M5UB/AVxOt8I1UCx1BJQth68oVYABV2aHbyohA19hv7QYKeZA0EJrejp tks0aw== -; resign=20460416024207 -195r.subtree2. 86400 IN NSEC 196r.subtree2. A RRSIG NSEC -195r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . D0VbTS60UMRR9Ty6w2HgDmIp643V3JjSt/MI+CrJwwPFYIfjDA+8v6T7 BIo9m2QZS1hPJdwQEz/PV5lrkU0l09WD73VjskWPr2hiAQmQGVylPENW 38v+BNya4V+6aEckU/ldwC7V0y8zoN51b1gBnDYb2Yj5Kd/KpcpTcHhI na/S7oeOsSl9UufRAh9lUkjaYw8Y3m8ino6SVbDS7ANF7CYCwlGlyyBp bf2cSZ3TeXSf/Y7GfzBr7PTTUOUMW9AH5cIcbnbG056/kzSNXvNl4K0b 0CEGBZt3FTuT1fX3zKOEfhxegDHSaaerHvF+/PkdexK4SZNODoRRTnaw 0IKjLA== -; resign=20460416024207 -37r.subtree2. 86400 IN A 192.0.2.1 -37r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . WA9J4U4AzItlWmFpWAfw3oRmA8pLslxmkE+L3bOTkF6kYty2ofFU/zYs D4YwPNotnRFcKYsTbfaoW9RNztVwykFAS4ibQz9FFgg4pnXoE67DgTLL d+VCU/hQOOcDKmg3Huzmf9a94GY96e0fb51hcLcSZlPNgay+7KyeNMWD 8qhUDhbum9BuYccVf97GhnxFN/0n4DI6hBPjeU0POeTstCSafVayBQiq pWX8cr3TcjoX8HEdFDdBtTs4qdS8Pz0oBZY4zEkZO5NhuhFXRoFnbRQ2 z5NJwhVNrcfOvGsUkJlh4offEmFjTVEgq+ofZocRr3yl/jkQkwXdN4B6 Iesi/Q== -; resign=20460416024207 -37r.subtree2. 86400 IN NSEC 38r.subtree2. A RRSIG NSEC -37r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . dRmtxyE/pd3HrfPLz4z76U2BLf7nJaGrzQXHI5h6Sbsh/t9eaAImp8OU jQmBpzOvzg+8rvZ+TFuQZ0mYMaL6bN1t3+txBcSA65pueyJK8e5i20sl DzhVmEvEjqkOVTu2P2iiUGUf9TNbAMVELk9W8I77iK+utruxgTUrMqnV Z+U+Mxa67i+NEK3H8PQ78mrLReXici1TjJMwnZpm+BuZU50WY5vMH3Rw 4FTwTZWzgpTnz+Vu/8Qih4VT2MmzoUsZ5npCxfPxOnOYv54RLX0v7otk JhYbUBIfkVq68mParT9bJsQwSRr0pY4Gwq+4oZ5LGzfeX6JBqyx1k3l4 laI+jw== -; resign=20460416024207 -38r.subtree2. 86400 IN A 192.0.2.1 -38r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . pblieozsh+O0C6VPPENu2oJ+lGA18ZeEC+jYDhklIgLltx5W+RcUgbjq eWj7gjecaZMrI9aJ76J2JGoairSj8UmIzZ737pSwWghRypW/pyins5fJ lcnTMzRmx2vxfwJLS93HcCu5/kHZS0NWtGzhOZmDVy1I1yCgsXF0jbVP YGSk19tfpYS/4VVRhVBB2waiS3pLFAxqe4svVDoTuoFQU3fNRhr2bJCe Maz4J9d8P76aZklq6ayJSbBkOMRUVYPJzCb+tXiNam4jbHQX5PXN32eC soG7hSvUMLkWHv5lh6qlL6UkbH6TvBIfWFWP1249JRCzVauyydy8w0oD cVd3bQ== -; resign=20460416024207 -38r.subtree2. 86400 IN NSEC 39r.subtree2. A RRSIG NSEC -38r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . fdUgsF+Ooo37b/16LwnzUT/siY3r2sYOZbmw8AzAY7pUGoOkBTtiS18N tFxfg1FLVEJVEI5RgFio+UVHCXqo4QHi7+pPVX1rJUE3l3W6jWXgorek du7ltSs+0lI7eNLsVK3QOr+tnrGDraYEPDMSdFSHP6ut7l50nhA0z011 T5cDlTBbZ0YoDmTzRJG6mfcBJImot2fjnaXfLj7dnTcTepPYymaD2DzI 5ehDBcIEfbDitLesT66hkfPZgEiFpBgesVuXWH0Gw6UKtzVzWWy+OjPO sdOjIQSCQOCmTjleyqNOYwyjPf5Gk9G63fp5gv5u8M2P0Zz2YsbYpaNy RudjMA== -; resign=20460416024207 -39r.subtree2. 86400 IN A 192.0.2.1 -39r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . P2mN37IFjmvQJS8FOFI9YmH9A1Fya7Pssvowi8aqe/6/vxLh++kIgQwb Qpi0qZ+q7hQPXHNL4sW9nnnSUL5EtTNIw0W3XWG8Z2iHbO0fQiK7rid6 kBuexJGDg7nwm0URucUQAeF4kDTeLa+4KVzGd+YMph7QQ0quUvWNFhZD sW3dtWs6Nyq/5KNgcUHnMX+AEMwHDKl5bKjdXdO+oVWlClx30bTjw4Y5 PAuDcyZ1qIJ6U5C+9FF88paUF9pJBKBIJHuxD8FT1yxibw2tjy7cceH5 +aeEAzgCKBPlyaqa01i/V6OvjuiVHmWkbe5NaCi4MG5tbcPBmFz2BpYL 0ndKDw== -; resign=20460416024207 -39r.subtree2. 86400 IN NSEC 3r.subtree2. A RRSIG NSEC -39r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . fewCkslhKIV8nmOAHl+4sSZfpEtN/wMQv1J60LylOq9eTDO7P6UkgWrb Uhp0Kmy3rTkSMUASSf9rBF5Kvp0gy7tSyzB/63AmXLowfc6DqXrudUXA yY6SlmsRoMCnHh4ZOLi9QeDnkPJ+sR0Hy88IA2OOoFmwVPxInXUT44m5 xONo+R7vBJbJqChf3tZQ7DYreGstYtIsC+wa3Y6rJB1SVISgOrOF2Thu PfoFhOQSySS4fZWTcB8VNA/vh739FQfEgA6T8wrHco+GeIUPQ+VrQ7pM GuhjU22bwpMIUbJBPzVPPhsQX4U2qkBQBfoMaaiE8+hR2DM1+lmea4EX RW/e2Q== -; resign=20460416024207 -3r.subtree2. 86400 IN AAAA 2001:db8:: -3r.subtree2. 86400 IN RRSIG AAAA 8 2 86400 20460416024207 20180815062314 48409 . sU3DOOce80mR6N3WVfsaf2Xg0Qo6QnGLeahMzLs4YjwYS9XBxUd61VH2 mIvtoGFTfhoC6gy8I4zP5gIWNe5NjiS0BPemHH12i8Lkb+1oCo7KnWsH JsN3fSB6eVnDxV/LxzTCWh6gbB6Bm8q8TlcfvWXJtU5hCAsy8HgWf0jr CgVWTzFt51+wNpIARB3FvZyLr726l1wS7KswNywDUe1MH6wa5w5nFiE+ l5X2K3T4T0JA7nwkl/are+vHOEG2t7vAr1BIdMeshVKctmlwhd5liAp0 hYchVGlSI6OPItTZmNyPRfeV3THnDGmnyQG5b0AFqoj7Te0l2zWjtY2l PG3iAA== -; resign=20460416024207 -3r.subtree2. 86400 IN NSEC 40r.subtree2. AAAA RRSIG NSEC -3r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . xKHuiecej9QlBaMSRUrJ6v/Ypf4uoW9QoHwOegu8smoNff72DEqPJqae D39SxdHR2ScYSMC//s7MJWYersa3kNnlYf3SBwptmJ2ujbRtE8wnhQCK 8FYKm7GlhI/GQucUQ2wdepnvK5pgb3kCBXjhdOU37qVm6n4qZlF8dhdM dOk+lQVYOPQO3Y9B8mjRg3mZQlMElalsy1po5SQ3zl61hXNnIBPnx9jA 0S60PGW4ld5U4x5iB1FEPPA8D+Sj4Ws9bFrqg1dCb3XIOd/YjqVLancF DfqM284ADkrafTJ5UPV50ZfwrQZFGBLHEoQKPOmrWOyDOxpy9vYHRG8m Yf3XfQ== -; resign=20460416024207 -40r.subtree2. 86400 IN A 192.0.2.1 -40r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . A7xKECnu9zOgb4F2UURLoOyUheOxxKcktttx79i1yQUSurRNYk6Ysjkb Q0gT51XiNlSUff3wmFoouSfhLf4VZiss86KceBEhFMjjQBguGCYk1/S+ xqYJv0UJTyFWOM4or7seTziJc8TmD48m5kkwl6//mTBzocKrzx9TDQuT /we45WxJ6zuuXqr0ZuvPpmCL9KzkNb0HDyPVqkZxhhiIqWFTyUupJP2g bMKZTg8sFw8DZpW1K/u78Q6d4tYT/GgwSI9qa4O5wh0XQiTbjF3n15k+ ZmvIxf1GeWByPPtKwNEyC/aDqWKO5ItidUEot++m7eiOd9zEzaz7Je96 4wA8tw== -; resign=20460416024207 -40r.subtree2. 86400 IN NSEC 41r.subtree2. A RRSIG NSEC -40r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . MIaDOwIBq4PYeIy9D1ylPnQ5HxzEf4VanIQA/gMOPh7Z1fzL8GeQEtSY +EvdfhdoepD/uWdlYufsDI+LCJcPFi2FCn5yh75IzDUrQrZwIkjbu7rP 2gc5BLldsVXeyWYzE6bzIZLQMjrtzRNrabm8j8S7dugK1K4XEaypnZy+ mW0ChqV9+GjiO50cadKsDvVTl559vxnHwJ7bqPJUPFjU2c+frvnjIeb0 zIhcY04c3moujdA2n6s/7dJrw4OrzeolRCINFXw2t/tmErIiY/cmjj2R CXwAs1VVJJ9k8wInh2sUqIYMGHHw5gZw926waaf6VMSaOgDqGfbYrhLB ROhzlw== -; resign=20460416024207 -41r.subtree2. 86400 IN A 192.0.2.1 -41r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . bsi86MRk/KpA19c6ZJzuyn45MfDYEASbGe7VST5/BBofJ8IbRyl0r801 vlQN9fR3dGhceYK8A/9TVctwQEJL3D2cOA5PC26GAQffdMhAWa0ymcKQ DjjIGc11IXrvHTD+m+WCpFoCEMXXjLXq7qizZMZgMH2cERe3gv5xKITn tFjGk54f0rPtz7D61Or1t+O3OK598ykTHerIuPtoBKl8jktGvuv4N0ef SLF3aGa/sVigDFX4BdMnoJ6JlLSISoEe2uPM3ErzF3emcK8cl922NrF6 HKpZN8DGaPrHHFrTST4/S7lrLshI9PI3WhAhZz4CaqgMD8rNM9CM19sv dbORgQ== -; resign=20460416024207 -41r.subtree2. 86400 IN NSEC 42r.subtree2. A RRSIG NSEC -41r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . LYwfi7/RPz55u29u6/IV1kcKwJ5kL7HLq5a6fy3jWyx5xgIEjNuiHbyT 6HnmsCqEEc5P5NJKd/LlOqRi5gFXdzj1oyXp1fzIjNCnG9Kwc/8PxusM eJ1COjg4FHxd9+ztUo6/PDaIrFC71pjPctc0GE3ZYO0q04mFd5XspZ5Z kEgmA0/BgeCGgOPfdoXQcgiSDUHxxVm++8zXwGBiPxoMHLFjZbSFWZUB GYyEF+v5L2bVIbUj1Bg0bCoNB6NjwRLC2i5uYp9UNIphsmL6cn84Mn4b 6rP2rZA3h6VYmthSyt9Ky9V25214UnSsjavwqwNGtye+Z70Jx+I9sG9k 5M6ZVA== -; resign=20460416024207 -42r.subtree2. 86400 IN A 192.0.2.1 -42r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . qRnF+bZGZ00XSgjQKU4lCgVDrSJhVqGbS1Ol/V9qn8hvzCB4YfHWcA4C 56sQuaQ/KGIC+WmJyPNpvh9wgcBduHkS1hUlqPij0Da4dDGLMEMrUTFU RKK/2qzdUilH9Ults69x31CYWE/ezqcjevRqPbjn3cdManj97nJKhR5w EXB8ysIsctl2f33lp0RE/JPKUpazIZ4R0sWt4vv+CbR+KNiv5EPU0eWf 8CO89fy3elQNBVmPwERRkBwRunWpQpzbS014LeNg0xPn9nDAJf2Qe3i7 6ZO2zr4pHipvu5IGlxHXllgtj2XlWa4OTnzZlVeHk+28zHedGTaUFWR0 E3zolQ== -; resign=20460416024207 -42r.subtree2. 86400 IN NSEC 43r.subtree2. A RRSIG NSEC -42r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . UYhqKt3G81IiJlxhFCqv9bU40d5YJBIolLXs7LOF+nHQq+9gIIX6Bfff wbxMsKlSzJ9fJ1Y1+IxAXdh8Y/YlhrXR7UtoseUyq5VM6x0ocSkaWOOx N0+cRtQKZ6YhKJccGtkoNHHrri1uSoZ51J9j+LXxycJQ9HfRj/fDJNMo ymgX93WHDJSGh0avAWrr8Mb9MgGjXyFDsLR4cZNtTAUga6TGkajEyiuZ c6m1j9xP6K/KOolkcQ6kz4YK44PS8kOwmQs4/SXGPu+3MFEbRW4FxHMq p490lAFBaZJuVT5DcnOep1VRMjROIu0nsTYqp51ewyV2zkMJoUvCSnnn sM21eA== -; resign=20460416024207 -43r.subtree2. 86400 IN A 192.0.2.1 -43r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Kvr544ICf8eFbn71gsp1sXzvkI0Ex0iJdgwsOWol2RpMZQMy0uuDCgJ3 EqsMrOs2ur4X/iQGdl7KEzy4gb+geMX+PiSI/KRKL+5/FNRUSsWWlSGl LE9ZibQOCG0JBatP2pr2tWhCtafPg0FYi3YoM5/o8j3FpwARAE4WoLp2 44sIXy+gr43SxGO3t7tqM9et0R2ZXcIxm/DXDeA0HvmXTHNht2blIwMM al/hKWBnnv7nFL/tdcj3ObBQ7acQvLHG5UQEs0KDa2qgEg7uhC5X9XfO x1QRaHcWsRUVdg27nSbimjdkmQ3EeUos2m51bKWYofyunxzKsghz/tD3 o4Zrpg== -; resign=20460416024207 -43r.subtree2. 86400 IN NSEC 44r.subtree2. A RRSIG NSEC -43r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Fn6k1x9T8zEmERcMIoy2xSkEAtktFQKwxssGawlCbMx3n6crJrP55izf MCX4XimmDGQhRo0m4qBJ7KHqwiD1+/WvAC/XTobA6MIaOXlufoX8pv5n 68DmKY51PeBVbXSNHUh8WYuH+6tJ30zGJvm6hjtq0+HuoG7ftfKOo2u/ 4CtdeJUHJZFHFe5fcWuG0Kw/myPHxOjnsG16u4Fi7VdVVBEPSsIjhrms fhOVNc7tmxboVqovy/pbWGF0OlkR8eWWSau2vfWObjz0tBCnvGpm23y8 qFiO4aE2C1U4Ih7NGTFuZTqjDqinXHDGUXqvJ7DV7GM61uR1da4Zcq05 qhXMfA== -; resign=20460416024207 -184r.subtree2. 86400 IN A 192.0.2.1 -184r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . AoAoqS2lHHYIULSHCvxh8Ug4hHZH9jLaqQT7jp+xEo3U63ZZS/EU4oYn vafgLQVPT5mFOI5bqxewmLRJwypAom+B2dte17UwScQV/xdFRO4rEPyb p6evXP+LezVz7GxuOC4itvgqjv8l6nNGSNtelA/BmreFs4wMKk0+DHqC mOtutq8DU1wcBpqmY4DuRKoqtpa2qu51hQ2kEx0HaQvAb1UgI2Zw+uY/ nXER8wLzo+WKYhTGWjLDg6ESn8HpeJlkU16Pbs8A5kAv/sca5nj9TFw5 h+a9bSbQbD1aCWWEFjU72KynjkLMD1fZpw2PyqdviEaylyhf2AXgYhfm 2lH1Vg== -; resign=20460416024207 -184r.subtree2. 86400 IN NSEC 185r.subtree2. A RRSIG NSEC -184r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . OWD/nVsmu/buNCdLxqtVTdf3pMHPIed7KNxMYZR1rhMFeR4Bc0mEVmaz UXg5GY/eUhaQjehddrSCxkytGkwi4d1kwaaIrpoXvEIGAWBicYMmg/dM ZzYMfzayK+L1q49hjaitJy9k+sOQpqPY2dkKijHpjPf/hEE00SXVZxeH 93s7/CD8W6Eg4TvSGcVNaaugVqLkuOyeQ+tWK0Xln7nJvjv04OaQKKaP TaEWP+3aN+X7mHVQtL7HMA9+WrSS5XD/CZDiuhPozegtu9uHLhvdKtSV 1UcIuMTSwSwK5FjHbC9IYQ7OEq18g1xfp4eztDZgcB5Ol98WC6CqFesg Xkg/uw== -; resign=20460416024207 -46r.subtree2. 86400 IN A 192.0.2.1 -46r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . VKFVihKX3Q+MWR6GdmeAUnl5GMsh3KB+fBEyvEEw19M7ynjMfZYzVbjH V+AG19Bv9yuh43xL8fHmEAQENB9Q9WBzjZtYEonjVgSw69S2v1R6+NYW PLtMpDaH2oOwiGZzLi2Qia2VmBt3Ahc+dGagb73ex1IOS6ufo5ypY6vO 8x1ASGTVbWXv5ohumDLHu0iS7D8Fy1uiufzozz1bacOurw7pujk9TD9l 64ez6AFWHC+nSP0XdojhZ8Ce90ovVKe/GCMTpx5OoSAMcjQtvX4Bg6J6 ujAmHyGyzm5hiDeiAvb8WVhazs2t06e2ydDpNCsI+X89HYYMcNqzFnuN QcDDtA== -; resign=20460416024207 -46r.subtree2. 86400 IN NSEC 47r.subtree2. A RRSIG NSEC -46r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . tx5Hn5ZIx9soDDoHxWHwU1jDu4gkXQAXTFA007LazLVO4n/egQY+dejh yA0zh6Y1G2f+sTlmlv8h9lh9ErNwjLmbAkkBDZabRRYzuypu3+94alFp MVyDHPOSycmJeqrJ60iMINk6rSMjK8W8YoPU08Nb6kuZzi961RXrUbh8 GmAQ1dkb956i4y0o/ziiJKqjytdxH1eioDRiM4Twq/Wf87kK/FeSq1XF S7naoPim1ByXoT5+/6iJU9eaCfGGKAnlvLo4KKpD1xoyGxkuB6qED5yM XhxYJC6XwyD+LG7DAAMW3om6pXIdyzvaJ9XAgzLTSBGa7FhjIA1IoUf7 3m71jA== -; resign=20460416024207 -47r.subtree2. 86400 IN A 192.0.2.1 -47r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . A2e7UIuCTt7O/bwgjHxQRM+5g1QIqlSOGYUzIiEi1xrfvMS7Ap70D9PI uU/tRQJosxE8E6Hc07wesaBAAdXLuWKX2dXTJ6cjAMsZY//phpvn7u4y 18sRFci9QYkre5z4nYFL6Zgwxi1MM7NLM/J8lsTVzgoeOK2V3Ey6tpcc qH1BxUCBFgE0IWz1Xg5P/ZjIBdv0VMK/nGipatg2mj1b3szoT8h+fPO7 RqBAFU1PwBlzuc6bDi+KYqo6JIMF23qVR1ePTTXSkzgY67J7O5+/CO+G SXM3uoHBgQV13L8HUgcp2+KRYtwoAHupBCL2Y5UWoa6sB0i1fojPBdlK taE9Fg== -; resign=20460416024207 -47r.subtree2. 86400 IN NSEC 48r.subtree2. A RRSIG NSEC -47r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . VDLbZl5v/FtlQvH1xGkQBkx9eh98GJmAMBVCUx5x/tcesCBE68TJveyD AMS1uq8McnCk0x66Qlftp1bw1e1rK5HtMfXQEGENCBGEoXwCes8vpjpy uo85nAMUUsGvDnAsALGqe4DCuablB60Lt5OEn1pAMOun+DsBwFFlyw1G zbo06EHp0hzdaqNc0qcsjIpZDhUqen18KRUDoKfBNKpMe2IU+X3r108L G5kGMpWd3OlEFY5veK4t7V775oBdCE4CDfbSCpa+o2LZZDM4H0EEaDMt vFIYqnLoGO7wohqibFsbxYUOkeoPEod4CWZqPyHf/1Dgkx8J7yzLxiU8 1uCK6w== -; resign=20460416024207 -48r.subtree2. 86400 IN A 192.0.2.1 -48r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Ykkc/1flKPWBnPKjhiRWy4wz/LAh8Tt3yNRhGnOGuDBwOHO/9Tq89xDT CNeDVQTf/+pLL5r6R+MVT9nhHQqgKdaIGHAy/d9WBswp3Pcm7ByqgNgL gnYwtGpbLrc8yOEkHCWHSfwhonB24itU7+glSdb/y4mYnkNAxV9ueaXv RCHIXugid+yLFUTrhdhB96qQbtlxzRxQ/enxj2b5O5YHyJ2Rv2FlKatS RqFamOUdG7IDLkCMFi17CrxdxWJZ5DTrHlLcke/AegTK1Yc3l0Gxa/aO xUN7CBYuFsB22Q00pGEISNAmD7+pm5Dc5TYrEGyoraFtPD1MNMHoQNI5 9N7vLQ== -; resign=20460416024207 -48r.subtree2. 86400 IN NSEC 49r.subtree2. A RRSIG NSEC -48r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . QymfCKG4unijOqKrhyvBanMddtMkStDiIBh6CvK3Nhf8hhk4OSBkytpp 3M2Ttx+jgKSAgSTqznWIneoNDP5vVcbyIYmgXDEkYtfAPc1DptzbfpQq +vszKECAEmyVVWeqSZyypp57TrIYErFlnEWor4w/E/EtyErisCI2i+TK Sc8yXLp5PHfvT7EFh55IW4vtFABm/8naMNPcjFAmcH7fb8WG9IvfmXtf pZ6XpxDXDK8qpmmI3R+3A406Q+odh1i2H2ThhHqdqN6CHvdHDGsPgsSO 91dJXzO8vk8JKnV8Aqv0BeOS8ibDr4Qn82HfnRzVCDJo6LD0zNSxZQRa iIfUYg== -; resign=20460416024207 -49r.subtree2. 86400 IN A 192.0.2.1 -49r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ezm24FUxsSADHw205OzxUPFqiVQqmqU/ulXC8Zp0t3WyH6loCR7Zvkg8 J+qY+6UjHAsLsntIVsgbgdrz3hJyyMPNOv/S+xuxSVXsQtisEbLv36Pn JD9G8Bb9bKS/1jwHKG80/AHeEOWNMHp81XKw3Ed5rgygvtpN3qHsWU+2 eyEHgY0izOthVLETkAEbPXdz87+32GRunaNPExsd/yJuEB+y+55bXzzV zvABwWFPqujHtRiruqheAe/eb60YJigIESp4C8PKBgWoD+JEt1wyqssM VLG+M4itKZJamxhOkhcq13R517e1ojVBahJVN+ebGXPYu84KhThDqu4c FtHXNw== -; resign=20460416024207 -49r.subtree2. 86400 IN NSEC 4r.subtree2. A RRSIG NSEC -49r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . hdzkIuLtYPu/vNfcHDQKqNfpEZiya6TzbBl+TpkHVU3B6VhD56Vlu6rg j36ZBdTVBk8X6hB6rFjfBN0zFBz1IELsfrKIM0tQbceyZcvAtal07nCE bmDOjYBwKhgJAJpIm9FGHJp1NXj/QtKDaLgjjG0pDSieSb1GVBqVRurg D4F1Uu50O0BkvFSrtaNkPpvfnVoDl6jcXW7SxM+9AzNZVN8WXxGP5qkf 5zrAhV1AdpadSJRkCG/K2QE8s1ieNKnHunrbwZJddQmpI45GKqx6Y16m sujnAFuMhQVpbJu96ZJC+bAcDwZJq0k2yRRhouP7fGG8U59jDtdLrExp ombApQ== -; resign=20460416024207 -4r.subtree2. 86400 IN A 192.0.2.1 -4r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . F9q3QcjC09ypEBWW24dfyAK7ir/MwOwPBmn+mJTDOV3yucmdddGJPIj1 VbkasV4bOfbAAZo995tpqOzajtv9GQXRJVnFPOXMhlsH0ivTTOpXNJUG uLIGE8LQ5bc9tBBFtsyKjmNzfi8wez7gD218BLsFcHjbvUtd9s4BKA8M bUQ8bmGWx/GXKQ4Y9M19kPq601BXdZsYgEgVSIR4BXnp6eN3Q0nI8SS0 7V38fkflVmkJ9bpNyd9RJ7n5uWLabp9zjYzeAKyEtYV9HEcwnfK6e4Rc zh6iCQwFzL1pGWj5JSf4kj7zmgFXDXtAl11cYQbN1dwFraA/omdhqCLF KuENQw== -; resign=20460416024207 -4r.subtree2. 86400 IN NSEC 50r.subtree2. A RRSIG NSEC -4r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . lWmq+K8ctJH9sOBT55z1Eezl4nH8cOiqOT/1NqOYueq37sasHFcaQjUF gQyI7y0yXjD28cV/qHp25Q628ykNdCI05QkFeZIRUTEp+VGtvsw4yz5j DdH8gju9y0eLgAbHz9KshK5mSAj/TkCkVs+nZIWlPNiphSS1v3o9bB+p iMW380SYckAzzcxMstgc6sjXnx7zyXyXOm5edpSbAKgg6l6x7/gjtriY VhwhVorMgUFCtVYlmaPMmTaLhVoZIBArnjAvJmjjCIgNqz7yCLxZjKKC k6HHFB00yEBM2I9AxoR28fIYuAfnjiAnzbjJPm55/ZMHdvHw7s+2vnbw pGOq6w== -; resign=20460416024207 -50r.subtree2. 86400 IN A 192.0.2.1 -50r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . lLNbG28vWwUBWSYedEh/fKMmV8/Us4R8x9VI1mq3+I452myBhHOsJ3bl p+qOHv+cZEqo+xzpYDAUeUnNaobLBN/4j8kmfxNFuB1z/HkbRDXvJNr0 nbA6d6fTt7fJvnMql4fU3r5D6OitXeICpLCcbvQiwbneEohqtnHrwR+3 Q9WMazvhOw1a/2ByTejfZpc5sLON124g6FfVdMxC0XaRIEqYNM0nMAxF n26TYRn/IEuURr2eep1Tq7fptk5GzLyjKi6TayaTY0UEtcE0XNTAel+4 lv1F88cexbNZxjL2SHCknlMgqHHN9AS8z9A2gSBvsBm4jzRe7XkWuaKL FJA8tg== -; resign=20460416024207 -50r.subtree2. 86400 IN NSEC 51r.subtree2. A RRSIG NSEC -50r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . H3cmRJXJ4X45iOimYZCErjCfKfbHduVSaGI3YMtHJSogv8/Z1yFzmJ5I pn1GxWLz4vpi8QUCAZm9owO9yyTaswo/WW0gw8VLccV9GDLaKWFvycZ/ uHDXldXu3fc/Cm7PN3vfLMl+Uol4bfYFqeVZek9QfI6Ircx8yYzUGcpT LvnCHZybdEojzcrrvG0yk1LlZtRJNuGRw94hvDGLwnZ+a7bmLdcKUqEr MLN/TwNSnVql7gs5rbXVraf2aCoM63INfPn91lm2SpzwWmNac3nsBlaI r/5Hg/OsNoWGig+Rot7TgJjxtIv+VLY1+YN/hyHujzYpwyfQuIxigB8B TFQ1VA== -; resign=20460416024207 -51r.subtree2. 86400 IN A 192.0.2.1 -51r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . gBNGIHyXcyLQ+ZU/0R3kRf3H2O8kb80etRU2/+5288n1fVE+nEXlM+Ya Oc2a9tl+XMRye0ZkATzgC1638pgnV0z5CSzFL9LyCMx7xe6W4gXeilG9 Aesrf02goUqc6UJ68OdplU5dcfdTT3Ij7Hl9uw+UQN1gD2D9CLSntQaK ME00tDN4Gyls3HdUOp/TlpqsD4ctntH1G/9L0Nls9YXVfFD3WMQNG4+M fmurYbS0pDBMKEqq9K61Yu8m0urSbg1PFueapf3873GefLT+4qzwGjta 9LOSfIuVKlQnWtWKRP96OLgTLOQABw1jP/p+DSH9AdNoN7BhHtJuQVBF D/fOJg== -; resign=20460416024207 -51r.subtree2. 86400 IN NSEC 52r.subtree2. A RRSIG NSEC -51r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . UEPbjqGh7XaADbhF0OL7V045Dzp5EpX2uqeEsXI9D/FO/yHaO0QJDVNP C7DqGiJN3MJtlFurpc83hrGf1SiTI6CADAGz+osDktqYVotn6hvXRKd3 0m3KUocCfbBucsL3sNQNGu0fBgEoVxvA0i02k5E00T+ltdWHLPsdSWMm SzdbjKpyE48Y2n2gfEtoaFKPonf5EmjjT3YdG+qW6CwhvhsfgDizXmWe y2vjBB5r8Ectcfk9RRYu4Ru7xRBioH3zQaG93RspAHfvcSACgastkBQy AP7fdnKq1LWCE4Kc/1zVnaS5CMPOw9vbVy2hr3geonnsRx3/+NXb7Q1G MSdvqg== -; resign=20460416024207 -52r.subtree2. 86400 IN A 192.0.2.1 -52r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ewHkfBF/8w9XGYELtXG6Fp+d7WeqJTTcd4zMIpYKBsYKxB4XBi/YQvnK 3uYzsBV0sK3OlSZf1jDqUQ34lrLfQ8nGBD+ljyyvy5OgXgQS6MBN0u5o 5kD1wnSLFQPcrAzKjwVhxOK/DbfxoVdtSFII7gh0PXrXfx5jKTMd7HDc BipWsAZIz2twp4QeFvaEI54iwds9rotagYWmPYOoc5QlKYlxu81siI1g m3EmMxtPJ09BcGhsQvBU+djGqeF7oVzrN/juUGeQ/JWlRQYOrlrdUvon VQgwgjnV1rpFNqzhZ6L4md/SGOE6Izg+rdyp2Q+tU627CJTz1scKFAzR M21J3g== -; resign=20460416024207 -52r.subtree2. 86400 IN NSEC 53r.subtree2. A RRSIG NSEC -52r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . BRSvHeJ6gloEmQhGqk2jSenQ6x2lfeJm9KT3rDuA9z2kAdoTAQ+Wg9eU DJ3ntqXBL8sBBcnHc7U8MHblkt/jGbSsvDJ/9T0AWNMuBpflemuCimT0 lNnmNcIzUbOaiwubIolpP1FhG2OSA8vbbgt35Ne45GYw247YDEbOTjvT hB8nnh8gQ5G72qjl+InXtCXoP5aGfEDAOQlenvFrYF7HI7PIykQThodW 5KjEnKo7pPA4feI7FwlTghtHBZzFzOaAfHVdxzrLwgh70WQPmyV9AxBS o9LXuCcrPRtNfCOvxK/j7LpWUP4R70t6T0zR/IZTlzCtERxPqwtzDuxn ivNLgw== -; resign=20460416024207 -53r.subtree2. 86400 IN A 192.0.2.1 -53r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . FFU7L1h4L6Lioi1W8cu3Cp1/K1EJFvkv0zAZz5gykSQuqeOs1RY6eOQw qXndjRzl02Kel7QZK4j/Qy0rEaJ6ydwA3+c0YFOznWMngWiZiVmSlyRr m4PROgaZ22tMdYp7z0mdyquSD+CljiCf2k4PXqsD+C/NpKP2gUXe7agp rsuW3wP39QkqgbtBgbkezFWQDX3TOLeRcg8beXasRB3vsVIDW4VGWaKi lFJRBsLkZ64CC0yk6DXDQMSIeYmbOHVMneL2CIPDKFVJ67IMXg6IJnGC N+ADMuT3B7fpBZ4A59tl3tWDCYWniFxXsWkKVKDy3eZ1HXeJhMc2TpUd NXbwWg== -; resign=20460416024207 -53r.subtree2. 86400 IN NSEC 54r.subtree2. A RRSIG NSEC -53r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . PjP6fMBsBnPv9W/U21JDOZbPc+ZYfsmQPv1yhoS9mvIdJ9dvQ+fC+94o 1FHUp20e6LhIvtw59Yev7cqE7T+k2YLVS+7/WXDPbZbi8q5WILZWdFnR +D1pJL8c1AypOYPGEEcxi5tdyGJLPkenbLp2ItHY5qS/P7Wqq4GZYUp4 Hun+2aL53pb22DSbKYaB67as+MO65th+UM+RfR1yfcWJy2npxxrpq501 FAxFUKYBEpmav+nqb0EguHbrcIr1vuP8RN6P5h10ztS33Dm9z6QWSevU QRJKH0pibyjlx5/JUZW5dzJiB4KqwW3r7hW+VaimU+lgEX77WHCp9DiT tqsGhQ== -; resign=20460416024207 -54r.subtree2. 86400 IN A 192.0.2.1 -54r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . BuAtQSYX7m9/L+aQNy+fGFjXRJXJneIsiDYy7pdQtzxzVGr3soBBZHjN fpjCCc6UhFWuTBnY6FAabq7foiZAMeEACFLG0vpSPyvIudRs0muhdFwG mh/BCddf4SKZO8tcdMmgqa+zsRDqGFiPf7HMcQtVVoNxZndRxP4/1Edw IPwk9KNFQH+N/QJkrrniEN1vGK3Zw0b9VRY9oUcItIhVmzeinA9a+60G Tt8MEZ+HQE/3yvuV4BtdHghwLW2w7Y7C8XRd3MZNdA0n4V9J+pQAFuaD 7JWPNC90jgrzIPqRVBCVLT3UtZcArGtrUsROQnL5OMdXFH+74OH5yCBj ioOZaQ== -; resign=20460416024207 -54r.subtree2. 86400 IN NSEC 55r.subtree2. A RRSIG NSEC -54r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ND4W1IR/Lbxy7T5te9P4gAj67ils/qnhHvJDZ409BLe0/Mh+cdJNZaF+ zERJElLqu6e0IiJI4R26AYoWNFgccDzLIEQLJRbHU8I9i+GoA0iGxevn /gW1hoFiWFNLONkjL7948n3n0qcrcNtfXwDmqjWB2IsblMpy5lBqAXu/ SinsqHuwqD18ApZlWMrQHwRKd5qyE/nOGv4Jc8/+WqAII4ViI0CuGrGG LEnx9rpZ9JOBg02SolW5xZiZ8SmGggm3BwWNti3XLjBun12leVWdBjB0 0z2gbPXapoP8luwm88eSZa+h0MHJCVB/980yCZW0YXMP7dYpshqMcCy2 ROJqeQ== -; resign=20460416024207 -55r.subtree2. 86400 IN A 192.0.2.1 -55r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . MxQe6tBY2obbRhjbQS29CMBTrdxeHthfPokgR/NVaS5oWQWw7QiLh8dG dZKMAYul5kLUx62vL/Alke7O0yX+T8ccpWW7adiU4P7WFBTJ+rsfNsDM 3pne/vQmjqvwwAAnhHkj7BjC0gvWo7JeVzl32IMu4Q1MLRJ1wCY3kGRS hZi7WZCT2U6+3Hm0JNAAOY6Ikr8m/daWE4i2g4xWiixCNCcWN+bT/vxM 9mRBGWMqipLS0jTufklwFcJtp9/4NbaEa6v7D6EhCOgRddzSyCrWaxlL y8DVjGCi5c6suEKnBuC3Re3EvQVuf7xgQ+UHe/9AZ6Wxbjcwr4vqQkwI i7XKbA== -; resign=20460416024207 -55r.subtree2. 86400 IN NSEC 56r.subtree2. A RRSIG NSEC -55r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . u3Bl5V2fXDU+BYUu3Qgj15EqHUGFQho3sH1QM0wIK4xEQEA0uV7jRHQi tet74jndvgk9oUbWNr7+9nFkgXzP1ZY2A/VS2anLRQNnvcvAX8KUFS4e C3v/0Mgyz/2B9Fu9/5Ak7Aa7SPZDyrOn8X7U7Y8WWdCzBuuS+5JIAgxR GSN7AWD9I/niNSfRej3YGWYRWk2JrHOgyKrzKivBn19y3fZagc6nRv7I 4fDWVHIXj+zzHZi4JQV0gLB6kqYbWhylAoamA7lIGw6PJbLgm3FYZoe1 CY/YNiTB5mGfnIxQBNB6Lp7FgU2DbiKyVLna3Ba8QGSkiZqN/61XRQX0 qlUriw== -; resign=20460416024207 -56r.subtree2. 86400 IN A 192.0.2.1 -56r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . JiBnpUpcjruH0PMTIpYIqqjT1ICqbDzEVTcJqtvrh5mGJKefbNCe8NGX ISiEphy9ZC1XFXgOBBdzdXikndfppENnRCcIwubE5ovpF82iVkoibyOZ KGuUaexu4n6iD0W/Sj1E13q3fmsncaES1C1dKlQg4GVeSSteJJg22L2d qIgzd0E8PaszRRlKL+978P3x7CpXl0v88/32L4p7oNfGzBRnyGScke6r +2jMIKJrWOLj+XLDUb4L0FzdaJiX1ty1B3uLDy5PZY37ggzwLerXgGQR Pn23fz19xmnD8mi+9+hZarFGEwCXeId1TkZN8sBe2Fpnx/mYavdzV8n3 OIVe+A== -; resign=20460416024207 -56r.subtree2. 86400 IN NSEC 57r.subtree2. A RRSIG NSEC -56r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . pMB3cAyTKGdteiNe1aPMT7fVDy9u45vKPP5vYLzomve7cnwKg+tQsaFi zEm2ANNhPCjHdDWmVah6Iq2Y6U08gB5dGeKWb82l5p7aEMIVTNRHYrGy sCJOYC2ByzY/opPw931B09HA3h6Ir0t2wxCVYWORnZ+CmLeh6AI33v8x /vUxvw4UZTTgDUrIPcfiHnSSs5lhwJxe/xWPtzZpJWx8I6UFwX47L3Xf LY85ddZjetCtu219uMiXIKwtJ4YPm09tVSnoJbGgiDrA+KT+n3npiEuL 761Ijp7HSx4krixhAW4QXbSNQ3C+OFRkgda5lVw1Bsaynvw/rcExT5ZY R+cg0w== -; resign=20460416024207 -57r.subtree2. 86400 IN A 192.0.2.1 -57r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . mH91kJhf7yPY2QEGu1ypSJU/gbNAB0xTEBDCC9KuW8LC0zs2anMU95vZ j4v4ul5/9AwPIGH9yrB204vUFK3Z9UZMNZxejhORKlV+0/rJa2CFxu6Y rJMmkbrZNvqgIjqFybdpH4ZrMq7WrFlYtZ8rl84pNRvboN0O8DdoSAzy KdneNy4GdpYYsbIaHsByOnVG0XC+2MbpokznzmjHAw5A9BADJL0nT3VP 6wsWEdHbHMuq0qcBWGcSj826XqHqXDgv54YJReG00lA4Kbz3x6j/7I71 fA5pZrSH7y5uU1v4Hgs59sY1hFO6xXMA6JMwUEKxNFvik2W8xoUfmvCY i6UcsQ== -; resign=20460416024207 -57r.subtree2. 86400 IN NSEC 58r.subtree2. A RRSIG NSEC -57r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . TMfDYSO6BPtor14f85ZOdKLZ9hMsi2H5HA0x89CqYxUDyKU+fiZeAATB TzibP8ssGduHQaUs9OFkAyW8Jgi7xUu2QnagqYsC2INgYBm9J8hM2zrW J4TC9IhBSTu6i9YNShT3rUozgiHmSJwZNtcBeNOXeXhJBSsItpDHztQj dAjEW806vgusYpK6//s+lgAIMQPsMZfbPk2z2SxBdUA63l71rGjp1fPN XkHkPP/PYCqGh/iwN+FpLRNxcgI4QxfHfQSrto9U7sMgD7ltLhuKhsqo 3nGyRyrxscqapciJkx4huPRZqfr/j/cbCPlAg2TPROiWVuAy3/OAnduF jWvrEA== -; resign=20460416024207 -58r.subtree2. 86400 IN A 192.0.2.1 -58r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . lmJT/mzPmeQho/b6Fqr+A1QZYYlEIsblZbrfmeVPzSWjPMHzaA3SXfAm qjXgFaLmQ7TtwOQycPYgisJn5lHefqVTE2X6XjploIGOZvT23m5Vdn1i vTSio7L3Z107E17gVXE+CMGwOjYoCOTJGV7QLKS2glj5nKi+v3nSxTbG uNucWG1bBtzoYB7kAXxwokFoJCSJN4CssAKeIoxuqXggut6DifuLlhjI 38huZRDzOnU/1RA5GwqkhF2gYHU3bVLBByp9qjK66azRaqJK3QRTfWMD rpNri+seVFLSsCWQmIiGa+1urma+6oHLq4HF+Xw4CdxeHR6rEJSNEQV/ PPeCkA== -; resign=20460416024207 -58r.subtree2. 86400 IN NSEC 59r.subtree2. A RRSIG NSEC -58r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . aJzQ4RCaukrSPm4TzZfw9VYqlt2qOeJMBhZOdTwz+CkkQwCnXK2wo1Nf TPgyL+dP7pIN8v7Yjo/oL6l3bZaH59u5AIm9W8ycT5IPRXwAMeQJcReb 0wpV1SbBzCJTTDGzLMIZdPXD3s3dHjwbe6rzfbThPiUlVYGiJcmwaU7/ DjCcf+7xlw9R1n6z+wvMpu/FCCWqz6XCWIvrGv9BH2aAH+XdoBJ4zWdU EfrB17VYFydyXBmDyN+jqepiUNxvDzLDPRWXENid0ODq2iUGguVK3avZ O8jM5F6jCYCWnDwo6n9yfMzPWrAqrx0p26Me9a7obj8yLqB8fhKJ0I/k B9b6Dw== -; resign=20460416024207 -59r.subtree2. 86400 IN A 192.0.2.1 -59r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . I96IVUAMZG2YTYz5RUx9wQdMbxWi1F3j/FAR1Zen3JjJiia2UNf+pUx1 +cR+Tpxzw8gBCB5hzP7CWaHi6DSTAtiiB3G9VbGpXNR8Peg5aZpdTuEv 6qwq2MkOcjq/e8mo9uEb6cFvz5QGWqVLGhw0FYnsInZrVSYNccCMo/5L As9fKgnTOblgzluR1mLj4COnoJrzQd6zsPgq0Y9XXvCjmH8QOqcBNpI6 5rRt2jH9Y5triFXc6ai0r6DJHLEG64ZoRwgX/gnMwk3/GPSR+/OP+VoQ 2uzzopnPFc6wPhMBy0PilNVk8NaNwKL+1Ib4kDokel83lWnRSQ1x6Kz6 XWS+xA== -; resign=20460416024207 -59r.subtree2. 86400 IN NSEC 5r.subtree2. A RRSIG NSEC -59r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . OAkAaJYQNOsjiPjZ2OKi0fHojtz7FsSb3kGCtRs54ALIhQGN+wvIP3ec PlxRB7cycfmfCueFuCOVkmIlg31zcHPoJgnFmOJ/tKcjn5WfEFu36wxu e13Zu3zKRAqqkRaghFvfn8IIP0OtxHToUGlDV4Y8BmqXv7roCHowaAkl KNTTjm+x6BGHyHfMwZGA7QS1rHhvqmKOBqIDUdSxJm/t90tRs7t9HHBl +XAMVfl5tub8VY32QVhb/eWXXgZyDeFevbcmAAi/bBXi/5AeLsUwjGfA QQBnw3MC99Te6XBoTxUgIgFzYZ/UdKKz+OVPrhV9OWHD5fTeaYRWl0Wy PFFk8w== -; resign=20460416024207 -5r.subtree2. 86400 IN A 192.0.2.1 -5r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . egV6Vshc7lVwL6tKACT8y0f0N+Z4kTiImRmwJFddB+ykfYfR6Q6Lbec9 DkaFz4RZEaMekxZw7VSID4/UAojGDiOjJfMqZ9nPIYjDEcFLE1k9Shmm ZuIxyed1VpUM2dh1v+62dX/6Wg99Sx06ZUcePA90+fTKyWK9lGCEluCg CMe/7GaPsUkxne561YGoS6rlKRnlhOqsh+shzLYhr9Udk4sMHvdf0G3H S3UVitbkfTHj7XmV5h/zF2Eaxh2512jyNBPduNFdyyVDnkQ6gmyzq8Q2 br1TslWD0u6s8rVL/sojaVqNbnCGxpt1GWbN3EPRyV7BUdad+zkUYqPp 8eD3mQ== -; resign=20460416024207 -5r.subtree2. 86400 IN NSEC 60r.subtree2. A RRSIG NSEC -5r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . JJ2BbHVqRR5P15+oc6/RgTEjYkaTj3mjETcBuMqI6ivYQa7ygDxyBayU S+a7CiYPrX+J/GH24GDShf+WmvT9HJoFNj7tHrJrP7jpWqkzU/v8Z9Y7 NgKLENUDc9IeSk+1Zs9Bhsce/MPIiTCYZrOX/kbUqKeXZqlZVjdcC7r9 aPdOGzmXy2PsWMGh30N16nJJ1ZWzpC9ln7onxGzf3XTphncnkWsccAVq yt4U3RWVqnq1Xey37h40E/aADjleyDI1S33UO0UR9DKR0kt3N+I+FBUq SoTK9bomhqrnEggo1jDQk7EP0uk9ZOP/C4hEdB9eBzXCPCGs8Iao/2vi eBA/Fg== -; resign=20460416024207 -60r.subtree2. 86400 IN A 192.0.2.1 -60r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ZIoajgpZHkY1FbYMvAGK2dq0XRHaR6/PZuBM6Gz6gpF/1HxlcawMSdXx eyOf2+4v93XdalmCVWx0EFu9nW2o2cHymCyHmDuj56Sl8N5yC+a8JFoL US7CfweDgjHFs+4tc8V4IPo4Nwm4CjNI6D6ysfgIu6VI4rbul02YEFRT zdppfu5xxUuPunD4TtditBKA63+TVRU4W3I4ssPDgjBdFyPBqf31z5v0 itqVYFGpS9Rk/DEIqqQz+Gm+8sbvgGetWMbNUrVY4YS75cjdjqPu6B8v jVyAj52DtRIUHCYPKyC4MEKP8ZzCd1+2ke1yYdWQ9C35JV16SqkjLR8i QumDJQ== -; resign=20460416024207 -60r.subtree2. 86400 IN NSEC 61r.subtree2. A RRSIG NSEC -60r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . cefA/9TxZqQrYqdigonYLptj6AoACehR0l7LrglA/R+SYCDFIsEyRPfD igNgfaMetvxhfSK++eJGu3BAEgxOrSBMbgGkbNL7Pkebm4kF3YuRMcWi /aRTHpNNWuFwosI4gACavC7F/GnzhVk5JGRPW0kJ1sx6VJVejsIjnq1+ frCadVNUseK81rXuuVKfiT9X7Ol4Kplc/4soFLdB8HHAEWndmb2Y4INP w/FjXbvIDohkH7FlQc6VDCATHMki1IHIzt++wwa3J1K4A9eQxnzBXlQm GSZh2rGXXxSxk6ND5rXRQCNUoRPtiJd+1N39eo4xjzNfaVo7uqv3NTKx DWYPuQ== -; resign=20460416024207 -61r.subtree2. 86400 IN A 192.0.2.1 -61r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . bHuRkXOHEvh4eGGHdXXzPYKjnLUG8eDGua0cGq7KU36z7GuaC2BKlSfM d6fRgrYFVA7p8nV+cGWzv6qFEc0wofoLhmaqWx5FsuxJZhPHfhERQ3zr PRqjeUrrpREHzEhb0NXF0jO2FKhtjILms1BRZJxtxhfffzB4tkl6yyGH MUVYAD3WaQO4Xt6NFR8M3J7VnTZn1CSk98grL6NvkFBJNifw8FEZaexw QSkApB1IZC0ZPl3mZNHQWhE3OKPdhrj1XT+OdBrKk8ogJUcRlw9YxbwR BhxB7r0m1LNxrjMSaL6AM89lsW6lVo1WUP0a2sldZA9QyDA5pK+qAkpw GqU3lQ== -; resign=20460416024207 -61r.subtree2. 86400 IN NSEC 62r.subtree2. A RRSIG NSEC -61r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . mnnAcqIn6fCsxbB7ZvqqNr59KzVVW+CA5FW3ZDZYCW94EZGw/2lUmQOv pgQk/XGkGWHWUvADK4yrSBo9AyklTfZMErsatVVgAkireKIYgigc/kvr MpMgYfu97LJgKJMJV9DQPKWW6E5/y6I8PL2KwnrTq7lCxPe2/SUe9ZIW pqyibjL+HFzLKLWlNm1FLEk+7gMTGWWYu+AmUQmBeTeKJeEizQ10yWdJ zdMMGjIRZv6eJy+g2K3pTuacpAZRECLQi1uqGvDhFi+Q9HVUDRLnkq0M wX//4OwUoUQR704UgyBqd5+88piLo4vk/V+O7ZgjN8eGs/YBWOYZRd8C tQXA/w== -; resign=20460416024207 -62r.subtree2. 86400 IN A 192.0.2.1 -62r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . k/Oal0kT94HTQvOgFAcIgRt32IUiRqq0fxlHd8IWbx3f5IB5I/LM9Q9S eeIFFb4R4c2lhSTndjPmz0a/34bQkboNSdfRixHRLygN1ZRobTb8KOWH MZ1CKyq8KKZ0qWU5YfTq+ZrYRkXrcK4Z5V+yKyCppxi40vObZivcaN8r TRIYEBC0Ta6EuhHINZMvfGgxuls9K0tHdUUn90vPce5DQxVVp0CbPD5C 5Typj77qova2FQlJEw42C6D9TcFDHTeG7/3X99LOkij2CKqpbdmjqsCU 1RWXsmjTu6P/fdZLqMs34UgwQvEIuMfQcon7NyyydEj9vV5IX8hCTVw7 Oa/PMw== -; resign=20460416024207 -62r.subtree2. 86400 IN NSEC 63r.subtree2. A RRSIG NSEC -62r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . hZwtS+mGS0gICbQES7yt48A8h1eSbGTtfz3vj0HYUnnT732vPSjYjAqI FbKNlOdaP2thAhEE9twezzwaTJioYx1NJnBHuELBOFQsjWCQwt1hS/df SwAXkBk3Hfmy4oN4hr7UraXNQjGtrFoPUJjPypD2dfrF4CBiELY0joWp yTZM+aEkDRaotwgeIgEF3df5g46liP2V+GKIfdXpb5PuadG6XlAKyktv hi2jCZ2SSmrcirtjV4u2nZSLycRClgOj5MbXNVxKgMKvtfcVbsaaODcJ Y7pWKIkf0bUivmCy0nkY+ZeT0mnIp11PyaZoIYPSmCDSMWFh5mbibJV6 WKlviw== -; resign=20460416024207 -63r.subtree2. 86400 IN A 192.0.2.1 -63r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . plZHoXjk91BPxauhgzc90PTZcJHKeIkZwB5PM2DcKDv6nnArJ29oMqek TExb13XrVtx44Ss/jHs9PdSlWIDy8NgLxfOnL2xYTj3/FRJ+/QAbCisD xINtFoFD4ozO+TJrbVAJ5lL1gTGFS/Gu/PBG0iN6TNkjCQ0tcjA7qAMp OVreYmVZSzbSE1W/oGQ50KnEm7ARPr/p0HqFxZNnV18MXbAkhcLA0tmt zush+sXq+d7RbhB4wXtrxbKntYH/WV/d7iIwprRoqE9LXGjZZMlN8hs4 CvgTdiPkP1cs0Aoucyv2SWYsS8HAwJx2pxhgFchOdoWwIeOch/ZHypL1 gULPqA== -; resign=20460416024207 -63r.subtree2. 86400 IN NSEC 64r.subtree2. A RRSIG NSEC -63r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . IlmuIR96rM8hkRBdmhMCTpVOkLz4Q6BAmlmWeY6AkFFnrfry4HjrpYXN nj+62rKC+l+micWTtCPzHVm3fshRKUG4klDtcMeNN2WJcMhApYoLCa1S HhmDut/Py7iGrkSYJbkJtUfVH5PobpcWjLvNBueBSped3RPFQcp+YHAF 1OgH4AKJNc/U8lO1xAHBp17IZsCOYzoUCpVH1VPQFA9eH821gBhIyScA l8tKLcb//OutsLlsG4cbC4unldVNj2EWllh4hz+KYXa038NsUhs3FoAk 626GPzzqE68+JCTl6kKvUAaz4OSSE7LLGEY9IUn4QvFFw8OeGV+luQ7f fvip5A== -; resign=20460416024207 -64r.subtree2. 86400 IN A 192.0.2.1 -64r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . Z5DJ50ICaKG42eq93NThIuvUx6DmnQKuxxv8q9RxlNjqmoP+T9Bt15t8 QQHJFOacyxkhoPgsqIHFHyoB73Fl/9txgkyCTAeSTqB1YzoPzeZoMhrr PbLvCu0Z1Vj8r0Zytkz2V/QHxROfUV5gZzXqcgl18UNgb9WB0E82HBcy M1n6Z2ruawDuK6eBMf4K7t+ZsbdhCcOMx6D9foOzudWXR4Mn6FgNliQ2 JzhpY9t4X8rGU4HiRJuKDo6Rhk2WNLbyLDC2Jisb/FaK4q9gsao7bxYx VhYpvXNxaJeBDCa+WrnZ0QiPlKKWvPS3HYTyhX4KFl3gkWAumRelvNZA wWLfUw== -; resign=20460416024207 -64r.subtree2. 86400 IN NSEC 65r.subtree2. A RRSIG NSEC -64r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ZfAJzw5oh8Z3bbkLC8yfBHa02Fd9T2xEnbejczgGFT/rmOqSDtXifrfh HG+/8vRjhCD5IFIp4RpRQ79GY4vkyQnlFfxPFhaWe3zvmiVwWELutyKN yTNoxeiIeWjdLAMe6pSTcnhlB0vADYTN6edEoTZuQZHsJX+VuiU4nbgf SvPFocHH2KNiZx+Bk5+MmL/ProrfurhRKxD9mQQ4+2NZxwmgtJQQS2hK hKXivLssOkNS23NmPAtiID/iZQpBM7RtYjMm7CgCFigubIRuB8MYav1G cxLw3KqbegoDAStgCXsuvXQ4uQOtHxs4gI32N8GVaxPOUh/STxaMYsdz 0sA50w== -; resign=20460416024207 -65r.subtree2. 86400 IN A 192.0.2.1 -65r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . JsGyJzO9z96GwXyROW5ZuSHeAfgqPWonnJU7Fm+4kOagLkGHeliGc8R0 UbN+kERWF1uC7zyQr357oyY8tVcTXCsnFQ9lEJcPQz1SqcCD2AtVQBb4 MRMHDa51mpMUJNdzpGBKbgsuOoQGQm8/xmzQncu7IicGl66yuamENzZF vIcsZMrom5pEnqI0FICjvSUoKNdMvVZ4NIbSuX7PR4ttt3eJ5ZhSrRU3 24h/sFh3ThNT5LcGnAF34UO9+Kd5YN+n65koVkBbfkkiN2M6JRczWZTa 5ldsygCg67x9ac1+5FZ3PrCjkOXBzY5GihT4ZW08+WX9uBF8MEzdSJSY lnjD3g== -; resign=20460416024207 -65r.subtree2. 86400 IN NSEC 66r.subtree2. A RRSIG NSEC -65r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . FUXNUkNiHFjR2SghJr+q7OniASnAoQ7XQP641A+PDXJY85ehtQb1B8N2 ukt5TPp1K2YHaYfa5aLOHSyUVTVGaR0p+QPODoiwWtOnwIO6mA/W2CYQ lN+eRBFQaUzHnjrUqEUb1sn9ZHCN6acQKKCAeG0dSaJECzVtndDcAb36 JvAydLEnu9fPgLyDlbTsBJG9sg+Yssfqa57dmTc8UWGMTOlZbQMuehnl 3pgWPxxgOLwnNu/OBNV95OJaxR1QEK5GH8ZLy5A21w/V8guIrwop7Zxz j22Qfhno3KqUU8DwKmZOOVuyz8NZU6dJk21xR9LOGiR+hRBaFvvZd/m5 gGfowA== -; resign=20460416024207 -66r.subtree2. 86400 IN A 192.0.2.1 -66r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . dH+wUC3mViU6hwRUsvRCawDXwb1qwxmsW3pTVi37882NXx5P05OehWdU chwiVN9tpOg3hibUiVa/xw2FwfO5gNVVinTAy53zbfmw3CUDx/njvMMr WaslVmRj6GLsZDaFZJW7lZHi6RKlzrDeKF9YiWPivbe5k5JqmWmEamVs YlxZCijW8TkCH6CX2x5xgqngLG4J9KsbHOasVj/MDWr5dV2HSAdsXoY5 oz12xzKAVdPBXD41Y3CfPW5Oje+G8KGUfcXDdit9Cofh0DnYS4WsGOCO ZwgTRZZ43JwkY2hk//N7ziNtcsefKV2NRbu9TtOAaUxg4AbOW2qS5YIB foLswg== -; resign=20460416024207 -66r.subtree2. 86400 IN NSEC 67r.subtree2. A RRSIG NSEC -66r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . FHLMEHAlqjdwmV2LFNE8V1zIQYPHTnMYsJyBBDg/x2V9USEK4wU61Hax dGXkgu3VoBhakpo959qpjr0tt9kGxCrifPbzpaE1UlABFyX3CaiPXQlO 3jIKgsnPUncvQXMgXV+Iz3T17PIVdv8HwYqeyc0aedH2wHXMkKJngbuI Tndi4n/flkoRsbK0F4U/DDtu9UK3EsxOz90yaELJryj5sxiIeDX6l5Z0 IJSjZLafZuhU5nunGdzmL/9GcKGT4sAN2PrYuK6S3Ipoq/QKSYPQNise ZTxcP58dTMX7qy+ylF8Lr8nxdJch2CuakEkudQsiVX0SEeuqwU8O8nkC M71ipA== -; resign=20460416024207 -67r.subtree2. 86400 IN A 192.0.2.1 -67r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . dw6mT5uSGLyaGRn6Oks18wYldst+JVfz9T8/d0f8jSz84d18Wy1POhQ6 +dVL24qYWh/PAzepU29SU7IbWmidOk6/zPXQnxub04/tIwDbUyNFEU56 IwnCTS98Uvbfkceb8+bnZvJWezuNYEg1kzUWmxxZ5Ye6sUPiNutTRIkn 0kSfUZbjpymAs10qocTnBmKduktn27FbQyVMcJuQF19DK52VVNrQ88OC WV0cB6T1XAyzElVzzpHdtNR0H83EZlZ4xDjeJ+RsOMpAoEJvd7AKMnSr Cqar59tIBHyH/5tV+3IFdrs8HI86OS8WcTrqJZFbaGjnDwCHKAOOq72c kXATww== -; resign=20460416024207 -67r.subtree2. 86400 IN NSEC 68r.subtree2. A RRSIG NSEC -67r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . kMqkEJCyfCgq43uNAsv6evzEdAcNt9PTSRklcVm60lDRnyu9+bSfeGVy x0SKa5Wn+agDBxGX997L6kUh8748VFojBIVso+maRkXEONXwWBLdgWCm avRPmTL43nOX6xIKvW7U5fftK+mAFooqIdYbuuWSnfbuYQS+uyrTwmp3 CfHeFryjYtDwzJOovOZuYGyU/Ca3Gx6+GvQn8CHxERlXAqdw0JcKQM6M tRg3FRt/LvqnHQwS5KUncAtGZPriM0xGMvi47ofkHqAwKc4mzsbJbFtM 2Fwemo6x3RQedMkBj1d/YbPxvtxEyfJfl4lug5PrvIMRGxUjUbKW5nRd KsKwxQ== -; resign=20460416024207 -68r.subtree2. 86400 IN A 192.0.2.1 -68r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . qcyNaFw7+PzaNI/3KRPc6SMT628TgH/hsC17lgRaCO1SbqC3y3WRDHu6 ZrH4CcK9EzG63tU89Vg5N8USl+V5wVYnrqWveZXTG6Kr78bSW9HKXoW1 Jjeb9BVgQtTaRKt9MlpuLVLr2TEHD8irJFGR4GQmsfpk4R+LEssjp/8Y 8ofOuWiUECvajXZnct0UkYrxHTFVhtxvDtaFA8+gzVHU5s7dGfdY52pO sEN7z8Dmgrb8V6JuYi0fVWRcFaMxSLiuIiy5+T6PwLFS6lyRVaicV/qb Fd+ZAspcRvOjFZMr2tagang6sU3LJhCO+QC8Ojj345QFFEMtv3dt91wJ 5m5tIQ== -; resign=20460416024207 -68r.subtree2. 86400 IN NSEC 69r.subtree2. A RRSIG NSEC -68r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Px6K2z0p8+vmVihpeEomljipxs082D62eaX6iZ1UKWN301wf3C/OKJJW oURhL4BPoJzOGsjpo+//c+88b97uNAzmoFyHJAbc30tfkOHpgnR8Wsmb qfdkGXDiQMP4RVtTWwu1+PaUI+aHxiG9Ax4ldKi0ONTNzJXrqaYrgPJC EgYamDXS/kzx5C7vWTqUA9mE4zCW3R0MPm2P6pdU4AE6olcMAe56eKzo Z0TzF0l5VpXA1zSBKXuAdw5gNcAiNKA8oktpc/52xLbj2gB1pdJZvrSf /RqEdthnElT4HSwqgDH7Rp14fmzzpeEZ7SWpaWXUgk9LDV1MiEkt0TmA pWfezw== -; resign=20460416024207 -31r.subtree2. 86400 IN A 192.0.2.1 -31r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . xASfmo7eeAQlDcnqUC2871BhPrLZo1RttsCBprJuqyzqI/U7IUwOLubB 9GUQBFC2h336R7goYUOvfkxItQdrKMHhtsE/5W/fkLIKfGQgKcWZ+o5M 0z94Oa+0dll+1B072+6qLTPJquFUGQcFTpc3To47tNvGCZrXw7rgIDv/ vpYPi8Di/djm/5nLKKgJjg9U42GnEG9sUyzGB4GOYlgixCAa/rGKKIpm AFYtLLBR4mjVzNywJ6EYVcAS9idC8hN1Dta4oni0t+3KMT5enk0ISmou xL8RqBQW01jc7WulRZEtMeoxedS4Dpnne4uiMkLxwE9KzNRgRewHMe9K MrzPZQ== -; resign=20460416024207 -31r.subtree2. 86400 IN NSEC 32r.subtree2. A RRSIG NSEC -31r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . f+5sionbddem8iXvDtoIt7I9805BerL/9diWmg2iqzoSgPFyhhtfXDps ++M+Y0iRvP6LRkF+zAA5OIOy+pSJbhj74ILZC3tvnnQuRk4jfT2mNqmt HmZJ5RcLCH17ifYj0bzfyp1+fUQ2yk1FEhT+zbOoVmNFyaAxzVOD8TpY kbW85FL4+Bic8w5o+j96Yf7sxqe2TLddzmEinKqE4JHNEEWdCfhZdq/7 nIm5b3pkRV+spJyRLMwRn5GVLQuMtJijljX3qzzgdCVXgs0WQAALoOzL AC6837pes52KTWOIoH3zKLKiiluZR9zBQLXMHacVapN9uUgmBWN6z+YB lMAMcg== -; resign=20460416024207 -6r.subtree2. 86400 IN A 192.0.2.1 -6r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . DaE9dYZ9HhGJv/Sfw87tTCmdnWqfug3U/JEj/Q/7impFY6OPX3OYbwxu ga90xmO3xws75gGLMLUmlZSUWZeawsLQBmwlxSAD1GCsRgFEu/7GlCwD 23mHWYuHWtZ+8WyQrSKHmwpyjqaaFixIl+D0jzZ5sZYe2Wxpy3/IDDeo uWv3Du2W4ItR3PF5TV11sJTdta7Tl+5uS2iBxl5ohwtxM0t7Hk8tKr8x Gkfp4keCSNhs6j3KYh3Pjl5rObq4kt20icrm35nHyH6hElynADB+ZOxN Ei1XP1mj/WlH0GRejURI5/CmmdRT5oXYDY5R7k9Vwf0jz7+FJ5YxAdQm 75MQKw== -; resign=20460416024207 -6r.subtree2. 86400 IN NSEC 70r.subtree2. A RRSIG NSEC -6r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . L8pFJzoT7VeRfRgptXm62L1G7SGV0Kqrg6Ajx8j7HyN8EJia8hra/Xxe IqetVbiP6i65IdTciTeeKTcFQXJ+ZFYM1YmGFx9/7z5Y3Nu9KYHaNaBy nDJIuHrQAokLeqGetQmsZJWpLcTzNJjFMvXJ3gPxFpR9/NMi/Jd+XhXr xsVPiS5hlBw0lLtQ21kDWE84uthPXx4kFMbbnw337Cl5js2+tkSKV0bV NwySaZrR/cJdXvTY/xUlYm0MltX5j1BWL2x/2k44VUhcVxi6IJu6Byu1 AjD6kJaCtV6vGEbqmTk1GIfmrSsUgRhEt4mxc6jaP14ojBNI/Q1lcRRt ZkpvCg== -; resign=20460416024207 -44r.subtree2. 86400 IN A 192.0.2.1 -44r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . qZMpq6KZ0gtpfR4vLChBPhzwwCJSCGNXkxKCrfdY/3ntM13NmxTL3pZd Eb2zyTPtqiE7EntPAXkRzr/Pg1+sFxSiPuF5rJhsh5AdT609Th3s0hf/ HFq0YfgoqWdfugIpox9HS85PfaHBouBGoV1kS9Mamch2D66CGMKCi/nE BlS/hnjaKeLHw+mKGuXLgUvwwZ7fCdVo/Rpq2UL/eNkN1wkslKU7LvgE sRRQMehCS6pjksYMSZBDm9nsjSuS9s3Sqn4XE47K4rS21Q1FHoiX7YHf lkAv3LS9Isip5HNFWw2QHXPNVNB6z7WUsdD+EHoV7lQjun0V290dC8JW nxDgsw== -; resign=20460416024207 -44r.subtree2. 86400 IN NSEC 45r.subtree2. A RRSIG NSEC -44r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . AztM2Ln9mLK2VNSlJbNxd2YUb9JzTDCj4uvJf9nf5HygpuJWd6tRvanr 9n0NAWeAP8ZIXLCerxYEBhtzDkz+WMinWE/vq4T4I9+9XtRXeqmKiNBe DAM8e4hMkZpZNb5CiLBHohm+rzDSg8wWKOxFB3bEgdomYtF0ajlkxKEf LIr5hccs04V2MT7IH04+mIw1I/a9PpOEz508Pn17KfKPyRxdCfirL/wk otbvIR2R0sLxgmN8FcooLQe5Afr7kviQDCHhTP/JCqxgRX/mZmXLkpUB 0T23BsrD+DclKwNEsMIX2wY9NXSHv0VKyn4/gMs9g/F3Kv25wOznk36E lGooww== -; resign=20460416024207 -71r.subtree2. 86400 IN A 192.0.2.1 -71r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . xhl5CzYNam2ntB7v+jVddKUM3mgmZiuLR8M0cKHFt47F1bN/geVwDBXj F8VZisvz5YR0QeaG/EZGAW5wQYgCXbkNosRKnnamb4HSLlLn1vNkhJhk 8W+ZprTET/8mOimRW1K/VDPMSaRk2pObPGHt//wvvCp51xc60euq8zO0 olDmOrVnEV4LNTYS0IqQ/Zb4FKfcj2217laks4y8jpIA2RqsaMI9w+0O X3Umpw9KEKjWRz10UEW4gqv9uEm5E78e4ymClA/94y1tybxN6mymhrRv kMmDXpgTmVVRCU3UoqGTzNShXuWOY6j1GdZSav/ovIHrFmma+ijx0qnR GJHzKQ== -; resign=20460416024207 -71r.subtree2. 86400 IN NSEC 72r.subtree2. A RRSIG NSEC -71r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ZdQ6w2ryMuWp7iTgw2JNo4ZCCVW0tYCNz90B7wJzU1Ncr/rU13TmS7Up b44C8q89ExonsWOhUkcokaSFbrt45R41O6k3X3Ic9sQhwvyj2vpD2os6 w3rBiI9EEiGW1DdVEl7CmiRcWlzMeoAq1NyphkhUQCUytU7FGVM7I+ex GTTUNUmcB4wkT6z1T0mJXkmHk4nLfiEfe0aPLu3QS+UxLl4SriymzVms yYXn57+KFnpTS6ElCYIOPhJOAfSxEbipg5rPNLjG1nc3V7XuuE8PvvZX xTObbcBmhdK5U2OGc6G6RuKgQ2po2IGSA20O1bEbT1k2fbciKBuGLkZZ /iSC9A== -; resign=20460416024207 -72r.subtree2. 86400 IN A 192.0.2.1 -72r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . weoG03ur8jEy+A8T8jx4Z3gqrrTc6TEd+uoqmL1rRC2pYBrnz29T/Q7X PL9XxXXpFIhoRdqnaLfaNaqZ8lGP5iSpEzWyvRSDtMcFtzKMzBcLRll5 IzjuiRHAGF1D2rPOR1oxJ8UbhlthyNGO3nXqc5JZ+tIFmf2Uda0KWtB5 rR/Qog5l5EgSxSgEshzN70D8sZFbS2IuelXjXW2aLR3eMIaH2zxuqkxP iIVuTh9CobtBzPewz7ZW9zImW6W6CgI8u7AkHHwfJkxPVUVAIZSUuux3 wdkjxDx3c/a/7OqjKBnlOPu0JNSpRLiKRQUKrjs2YyUPyWQC72XiG4e0 YZpYtg== -; resign=20460416024207 -72r.subtree2. 86400 IN NSEC 73r.subtree2. A RRSIG NSEC -72r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . sZWRAR4iaXT01LPWoixa3v/X02/ABRcP74eqs/4Pd9RiQdPYJPZxQR54 fA3pTBlaiG9r/Q7tkO7aHW4Ll+Ei08Ry/A9l/+JrJKJePdANItCsLoTu juGr1UCLKS5uTAef//sh5tY0o7tZIh8xqlH304ypIiAFPsXEATZu8opG a03DA78/e0hjr8jHar9VZEms6Rd8P4ietnFm4bot54E5toeSLXWVa/tV v69xQD6JmpBeNIf0A9/x8tqnnG0v3cEvbka74xWNwXQ53NbNbV39Lt6q Uwx9I3/2qlaDCwpxQMRosI4emPnF+xQSQRoPvIwU+2o0uo6kqMtzj4mG nL07zw== -; resign=20460416024207 -73r.subtree2. 86400 IN A 192.0.2.1 -73r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ilUC40xFRAoBBb75GrehoJ9wqHjkwURrXN1RcqhoDE2/cVQPvvryXdK7 CUHTgTFznp14vLyqp055fNZgpDcXZJZ3ZhteIe/OZITv4p8yP1uxfjQ/ OCcP/0E8Qv3QF2p4BW8VeZ7ICjpB1LPtHpjsaVHex4KCYiVCpTPR0D9M 9/1TuerGWnS4AdOJA/MA7ZVxoulfTehHZ8Wkn8lhu0yMSU/UvkYDhDK6 jnYARY88vA+bw5FY4MOdK216/JWFZ064+qHnXw7BjxyTMWc20fCu0Y5a z9vo0mE46SHJ0zkS2IL4Ou8hzqDxf6O8UIGXASZh4gnZcUFM8WaxHIMj cznDJw== -; resign=20460416024207 -73r.subtree2. 86400 IN NSEC 74r.subtree2. A RRSIG NSEC -73r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . SKF5jm8SM52pUZ3i/U3U4ms8jLMWBbBLBAagxGcsFWZd5LGj0tRMO8P+ ZE7R9YSSgfYsNq4r9mJHqd1xwqzVin28OMuEw5USEfT8rSVm2sWnvk3a oDleBSjcL1V04JU0Rd/5fs2gwASqsAXZoP0ddzR8Fw+nKOw4wK4ah7D2 V/8hBzFoO8MTieiCE4iXB1Vr3+VZvduJdyoM1N1357axaQIIDg0G7PbA KUaiySfvkXNEHq8YNI6vNnVV/JUzZkKrjAsxyBtzHu7QiyO2q9y39qd3 l3BAyB4WZh2fsAo9KTqPLGoExS5JaPZ9LpHfzDlG7V+QxzbBRBLELr+Q Ipcnaw== -; resign=20460416024207 -74r.subtree2. 86400 IN A 192.0.2.1 -74r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . hzCzNeHbVBD1gmpdxG1P2nVGK3YyoALpaoQ+az6+JRQBbal2E6cgwpgD Mw4jMTnBryhktpViSxcSjl8FXHovonJJFlQORxVEFAjhW40shnNHU4Ew ofPjNaeNn8Sxkpevncyv+/tRLqHJY9007GmVUyzPkW9nsFtmESNKiWVD 2IBZ3DEX9G++ExvxgC4pPxgeZY7vhj12sKaOuL+k3skcv+HOFBevfB2j dVfJMzQfHyYg+zoANGKnj7Eb0puXGL/lUIKvDES1voXhMMp+1zABItx/ vIRfMGAKd3fY6VO7/9XTq8uLNuSDCoBu+QvtbxB/sh0q9N7VWBhz/wQr jCGl7w== -; resign=20460416024207 -74r.subtree2. 86400 IN NSEC 75r.subtree2. A RRSIG NSEC -74r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . pSqVYdU0CflPEDRj0Mv6chdpOyxRdou1R0ltTBGAwH/HhkxUyH9bsVjT H3Pl93bDAQUU67PFMYcOHLzESUBgULyNnTH/ZIQhyanVCWxJdQXhumsQ bwaBjAbVvrVVLI3RwkcU1KOu5o7VCsX2pzJv/hbNiD9ZbSElpVUuKpWT rgr08bKQSSqgFEkWt7nlXBx94ufa2ryIiUd346q+U3FbGRcwW/YFaPsH nYykgmak+GJBWd5BouXIatxaDMXNUYpSY+z6X3fCItVO8JqoktmMeHK/ lXysyW56N5JgKtBqLUB/xIeGXC8kQj/K+YX48ZGCjlF2Wnuo6ZcnQd98 5qfaTQ== -; resign=20460416024207 -75r.subtree2. 86400 IN A 192.0.2.1 -75r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ungkHYJHjOJnWwKjnx1qYF6FBcwyGqaVUPUiJcwYXb+VT2pQsjcKzAVJ wka4Ur4uAT2JJycfAYgsYhLU8TWXerh2H+KPUDOVjtGBtfcyJ+V3/GAA 56dGGnisckMgJGzOKbDln70wRHVea65RAv3RHQEgnXe0pMtw3PzZiwEZ n1kEAF5HYgV1CkNefcSv2eA91OZxRS/o14Tode6/xvzroa+C10dPqjXM m2mFyvfJyQxBaVxuXGc4BrJOtDd3pgXJIVE9ka9oLczx9NoyfVKRFfHU gCUnSSb+e/XWrJsHnJe9NKO0KunDbmdpGvQ8T3qK5qunboIp1unl795p LyrDxA== -; resign=20460416024207 -75r.subtree2. 86400 IN NSEC 76r.subtree2. A RRSIG NSEC -75r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . MQ+mzRMD/whzQsiJFOZnyW7O96lhum/QQ5/7xKJKNGpktBX7jNvgdSzK swAA6tgI7umIV2u1l+tI5wpyn0GzCRlw/MxVv0BY8TQU/befsN4u17tp QZNqhnzSsauhvxpypW5QeG/Nnm8nqMGcNzRDfQ3adDnG0hiYZYdvtBCG 0Ygk7LbuG2Ra04betRCerxKcSs7sCYC5EE3daJWf8bR43hWoJaC9Fa6n NtsCL2bc4Z5UQlzjZgH14V6RdkmhIKsNG0f9tbza19A2nE7YgDr1GvMM F/DUTONHV42taRDfXizCEJDax4h+ZcJ4wO7/DBEtrpSqeja3bJ9DbSA9 3udeCQ== -; resign=20460416024207 -76r.subtree2. 86400 IN A 192.0.2.1 -76r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ifVnLFh/AL7XQnKzcxulNoe/CZgMEKm2UW8tb7JR89U8gUtuu45HKlOd SWFGE3VGylwEfSlt2VWL0dyAilSUZVcKXRqFRrDOrIjEIFkvdwgaTOGd u2foSS7ZdWGjRoNEo42kQnvis8eZ2CkHh2Oa53SYjD1GfX6Y0C+OCgwk zEyLleAhzUwdJbDpCfgKB8gKjXFjfLYltrHJkHlBStRt8Ec2+iX5oS6z FOccZSd1wb+Ch3EiYVxUAISyxv+riGh7U828SvgndU3B6xhthrdwiv2i W58xKvo0UQ/5hZSO5FFKzeWbruSE3BVYHsNb+uu8Rksa43FelX7R2Vzv vIGz2Q== -; resign=20460416024207 -76r.subtree2. 86400 IN NSEC 77r.subtree2. A RRSIG NSEC -76r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ingv1Z39NH7Glaak5WrMae8DZAw5SOqHtz8ugsdTlLWgfNAMYFCkJyAu m1tEPPek3Dn6Mj8UUSscFdUHXZ6ykompfaCMZj0msfw8CIJxQWakzP73 kYzufEJH7+KjiUQf2nE1SKlmeP2Ul1NaYB+bvYUttvXZvr9LTy0iH8Ij YdDrwhc3CslU6cL2S+uoL/qvyiXvLIqj/OAnCjylRzlvkLYWf+ISRnPk dv0f18ATAFt8ZavXCfP5Epyc7+OpToLByGu1yXO8/SqVcy+KvtCqPg+k uST0RpolF1INiI8GdS9eet4DdtekUYheoerQS4yVWV2Zv49gna1hulCO yHx13w== -; resign=20460416024207 -36r.subtree2. 86400 IN A 192.0.2.1 -36r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . fEpn/LasYKUd8XzHc/ZM7/89uBNlhB8sncsnT8sGohJQQ/JFDNFqiIag rRvs4QQQNcyFa2fe5LHFBderzEybjn38GNMCnQYm7z4RkATEZussmPQA ha8rETZxLa12iZvILktns9Z7wnMwIX9WsfrsK/NLmAL/Z2+2st+Cszb5 CVr0ZfKBfRod3Srl/1FsnA/Ku8M/u1d3t+b5Z9ZY9m+2/VAhoLIyEc7C zK+0asVM36vN+LiOV1TnNQfAcmDnBT8s3+nepf+6j1S5LCNhm8+gfLAR 8iHb4LrdhCeBxfR1cs6pT1DzcwLTCs4PXLdmElsSxuqyiCas3pyXKoGk Kuns8Q== -; resign=20460416024207 -36r.subtree2. 86400 IN NSEC 37r.subtree2. A RRSIG NSEC -36r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . r+J2IoJGE1EUUQ/xifkSKsK49QyQifBfeXX8L140XxpRw1PwiaPSc82g stB1h4lgb9UoNomh9ISjEYkKmVKFdNxYmgXZRUOX+3gRvTNIQgX+VNyr xeELj2I9unlYar9JUKvRMgoWi7KuuLeu9YtT91Pd/WgUcFO0ZaVawIbJ 6BrnvHq0cth/ADQIncTm0F7DUSJdjRBlnXqEhE7rWAcYBfiDnUt4/BCP bIVaNKkzHuvzGubzjk1NPuNHKoFwoXNtYtT3z2GOuPmPr7ux0rVtE8Dp x1AmjzxaNGPBrsJhAS+dwREXGHA7QrtmxAojKmw0rJXZ46HPsd/e6BBv JvL7OA== -; resign=20460416024207 -78r.subtree2. 86400 IN A 192.0.2.1 -78r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . OrFFiWwbBW147VMD+1Azi9/2dDFdww1gAwef4WECpBZx4lB29o2XoSnf jW2BDFz6U9jScXuSUhyAb6E+5dfITo4Qhnpx4PT6cNqyaqhRbSGbQT89 BpBPzFnnNvu0k6R2eGr0RSqZjKalFi7Lvzr7utZiThvh3FqNJoA7C6fd WyOcBnF8HahJYdnigYP5lwfN0aj3/LbiVHmXvqq0l7BUVDRZ6gLUhGMa pr92um8V7mquo4/0ilniteNLFx5/66lu0AqU+71SXB6MFpxjkqgdsX45 a5dcODTv65oLvW5AbAXqRl3TP9MbCgTfEkVVBlDVLmHwNP3LGI7e46pR xa0nbw== -; resign=20460416024207 -78r.subtree2. 86400 IN NSEC 79r.subtree2. A RRSIG NSEC -78r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . va/PGpGKLsXut42f7ZlV+nRB1xkwno589u+AmiKY5Du9CYP/G/M29GUn TnY2MGdgcu0GifwTQb0x7EyqBdkdm///9zfPvt1iI1mc2V+1CbiZoR3+ Jpft0+FKTDffHBkCnSeebEbEblvLPKnGr5nZ1ZMTZV044gYL5LhUzLvW AwSyZix+dVAYJkIS/suBWjuez3q+DbNdnayKR8rnz4nXSD0hKkvB8dT2 9/MrJGHxoiE944u4U47lUxAuEim1ab/qgKGZ0mc0hGCQQDvM6/QufbX8 YEh9BEDVui8puMru2UqST+ADGM0QcfRXmF6rNmlLjCoBXMi/RXLOcYaP KLSVUQ== -; resign=20460416024207 -79r.subtree2. 86400 IN A 192.0.2.1 -79r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . JDBZnOKR5vFA9Zj6h9wIKhM5/cmOAcHDhYeG2upJGRhuz2grB3OZAaaH fp395ebYHAatSV/Fyov1y1EhShVeIcnuhUqm70CMgXZu3cjBn5n5pvjd 6dKxMbLMiAmngcX6497JYCMisSBqoyEzqq6jfe5Wsz8GSFEoSTVXpM4W JPg2Qy80k4okw6IAlHHxap4wVZPgcTZ7nT1DDwCB3nSY4oUXG26UYbRy vM6feasqo217jAtz2SXiH5Z/XroSGdb/V81QN+g91uZeUI9nl879lYE2 aqGrSV8oC6C3Ww5HpPXk3iBWR/ngBbsPEgMI2nGWOKsyu0kf5lmrSvqv zdJbsA== -; resign=20460416024207 -79r.subtree2. 86400 IN NSEC 7r.subtree2. A RRSIG NSEC -79r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . XAPiDw+8tcohl5AAzbSvQxLi3IiLkmAOjlDrbuGEtdCBo5+JCUSSQP/l tHF+skvmVdk1j1h0G08i4J//FwkCNlUfhYxfeX3132hv3Q3Nv9iHTK8U Hrp86DG5cKG3Z8H1j0cQCXLaE0qk2FzCgt0H6MCnl9ClTWtWQyEjCCZA 2bZ6HKLHxAUMUMnhAVoH9QoBjJoDi4N1deYz3FDbTAN/IH0K1vSgmGoP ztbNyz3WI/3KuJ4AIyISfk8nS/RRYL/WRE6w/WnxCH0/Mu3xDup3RYgX 9EQZuJQAhw+IcN7xgcxfb7kbTXym5xrzp21WUGZL5XobXU6mVGmsxYnL EutNVA== -; resign=20460416024207 -7r.subtree2. 86400 IN A 192.0.2.1 -7r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . gvDi/djf1jvbm4oPF4vZvf6mOVOC1bnhH9rLA7s7Zyr+m6iq9DN1cUVv 6aHZ1U8tqYVkZTVu1Pt4iIAZ3x719yKSpe3FY5yBMjNWKqxXXO2P21tz X9Fiwb38WDsSgICZ3VHt33BFOhAXQYFTIZ/7pwsnZupnQgzagSqpos+K s4MsG44CbVRmUvVEoBYUe9TuYV+vJRLQcI80UTUxAIlki13rw18ZoWb+ CEBPoxV2D2Al9vFeq28Cdopi3hsN1D+0+imdx7Gz5kKtib1gnkb+xciZ TIVoIBnhDnOWm/y/rfuvXbq2G3JSGIPl5o73KMq+F/Q7hF/WQSnfnzXS KcP+Mw== -; resign=20460416024207 -7r.subtree2. 86400 IN NSEC 80r.subtree2. A RRSIG NSEC -7r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . ve8kD8ZLjqZM0Ke1iTOLQ1GSrNPCXcfRwD1dkZjXYT/SXV8fLVeiyBXN fi1hqjlUD+Mhi5elUkduTKzfcrLPQ2BnDQexSc3wuFgGSZtir/vfODDN FrfKdo7c5alC8vIkHz7IEVpd5I0aiSSgrBIC8ooWNRod/sRIBV8Fc774 o9b/Ef0KbvI40aIRANVNihrT0aPhA2/RHtZLbTUUbWIRXOp9+yWqJYu6 z7ox44cEfHWGkSNRb2IPRm+l8QN2HMA949b7FlxY2Pn5i6mTaWD6Kil7 RotIOwm1fkR7Jgsii6Ra8OBGpAo4Pg0Fkx76wTZh/DF+CoqcPjoA0w3K 9bc24Q== -; resign=20460416024207 -80r.subtree2. 86400 IN A 192.0.2.1 -80r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . biJy4joHJcSotexQhJB7Mb7u5fevXebKBeDlrMsj2d7VdBRzSExwmO9i c+yM5Ou1P2i/3EkBKT3mCwRT7OjdHrwObXizdRutel87JwXDkk1xlti9 wTp4OJBEQqBPbx8wuY/ykmU40qkhY0vtluldOtTU5ytTr5gBRR00vEws 0FhhSuW5Mlsr5DeX6o8MDHaEcQm4s1vLsmI9XV+kDLuwuSHSuhTELJA3 v02uGCJswKj+r/LZ5m43sTKm9f2/IimBjhpdDqq9yv+9910aUUaW3hft xqWkWkPzKfpwmRhyu0K9VhQjgdvHwHe2jJ4UHt9Pja1dblLZm/qtLzz5 mTd9+Q== -; resign=20460416024207 -80r.subtree2. 86400 IN NSEC 81r.subtree2. A RRSIG NSEC -80r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . inmrH5256TzB5VtNY3N+E9K2wmIWbW+9fNaR7wXgTzSQD067JHMgUqLz 5d/QY9IjZFjlRMtv4Cup4tZ9KEGcg84l2pXNUcDr7LX31Ak0RsVkKvNx FVFY5tXMMbW2XWNbZZDsnLHp6VOQD16lcO8/gYb0tkwRGm8fPpMJ4Njk S4lWiAQNUj4RAhmAJkMSaZWTSjI4GXfC8k4oOynt0pGB2P65ASbU3ZnH 6cZFEH+lbDIrS184PBuvtucjMdYXw1q0p5giKKoxiIhJ4lwGiA7JlY5z 0UfS77lpnqv2lECMrOtXZDMirgLrPHMP9eVUP2quVkVlQCjW3ixJWgR+ eZvdwA== -; resign=20460416024207 -81r.subtree2. 86400 IN A 192.0.2.1 -81r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . eZ4kaFChRslI+Biw9JbT75zlO/1sxWMtjNZl+fbV6lK6pl4PtoqqejnL ig4m0aQscpUMPzgIHO6kRhAeUmOBeEymvYquQyWk95X9XmUjWHyvUanT PFrpX9fPuPCKpWDRvodO3G9Y/77rexa9QYi2ocNjpHmlKtSO0zqmzoc6 nKice7Vpt/Caw9d3LNR6pUelveEtGNPgUgWMO6lWkx/uFTg1KPoHbCa1 KmVOPpAywEH4hKKH2vhvaocwxs3VfOV+x3/L/aGVQvPbB3vlsNDxkP53 tVMwq432ypK3effOvHvmiXobMErRqrz2fxLMB2fluwFXGn5TDAEtV5X9 3VO9jQ== -; resign=20460416024207 -81r.subtree2. 86400 IN NSEC 82r.subtree2. A RRSIG NSEC -81r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Tw3m1/C/lkX3o7qMo3jVb0NqBl9T3eISc3pRa5qZT47r/bG5UaUIj41u ZdVSFf1583ecSjAQCRhQFj+Obum3jkM9ZSqPQri8v4blXW4QNr3n6EVt rXNI2sYUPFdRT+lQw0L+LU9EWOCDVtXU3jjpujj2wKzD9FWbLXgi9S4a Zqi2UD7IwPVFmm/oGpqAEbhANJfH9pcxd6IQNsoELWw7f568BbR6qYsa EY5HWY135vtLBmALeDGhYYgxXa85J2jXqzOdsbSVexvVTuP4XiCTO+4w 8RN89br4vsHhkKXGompQ7Z7HQ07V05gLdxdj99TFbz4ILsshB01y2qWx Jr2zNg== -; resign=20460416024207 -82r.subtree2. 86400 IN A 192.0.2.1 -82r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . U73fXbsssOg2Du/DqzXEL3GWHU79ZQ2RuWMuI5q9Dr1ymdN/8ZfI/M+H mgzet0FwhdwOtYPybBpzklJwUj1vduj7/lq3eSiApVTKbyURNX9FD70J QLb0tIujmQLAzewJHnXZTu0+gcTzw4BwPZv3od2Bfdv9LjdWtqFKzO5C 0ZlVkiM94X9rmLOlR7tZBvts9+AuC5M6LA9FCFBWfgUZk6f9sS6q9fuL /ApF9xG11D5z/zQ/UvQBO/rcFrkYNW8iery2MQbdqkh32iDSlMQe/N85 uUnHS59iLIzIHGLryWuPTNW4CPIJX7UyZ7OznP+NY+xZFXfE+BoAb+n7 KjgC7A== -; resign=20460416024207 -82r.subtree2. 86400 IN NSEC 83r.subtree2. A RRSIG NSEC -82r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . q+82SmeIWsbPXp34ti37GrX6R2ALUmf5LPwb7xtYuD3RtxtNnlXq5BAg LCIqW6lCsaIIu+mafCPj2unp7+sivYvn3Ts75oG+FMxHWL53S0zGKcnm p+m6uir8FvtsUrs3hBldo7NDJ3bJ8s/FzBXMVNgMHbvpqn5joNq8f33o 9nuOQ8yGH1+/m4oQDJMCnOmo/3ueS/PpfPdcnB0k3PFslkrQ6y3WflFH 2GXxbsF7ZugWrS/VVlxl3FLIiMbdxvkpLkVvzCefmuIhrQ48k6eG7713 dTWh24GetY96qacyLkZGtKd2ht9xDX2LM12kMGoytBs7F0dBuqcnIm5N PbnTkQ== -; resign=20460416024207 -83r.subtree2. 86400 IN A 192.0.2.1 -83r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . V1hihHtRb0zh4uCzifwDQ9j9TfnG0RUuD8LU1VzRm4qBXri+aHMuMycH sT74f1xfClAAsfY4ws1NA+rkcoExm4yIrgfiOVBhoZNekG96JJRJRkQr Zid5VDAF2xUWFJhLImA5MDOmdYsaTfAMnvXqHX5LgHJT5D28fHZ8fFPy PfWgiBCf88dOgbjlx5JKs1Ou9GYsWQCqKbnwp2nFvAwpnCqK4Waa/n/E wJanXLd14GlyGvnRYh5ITkJTFf69FerBSS7zTTQ638jicwAo17hhdzol Q2642gt9iNpo4cr3IcQ4GBBXCFKv97/+YImANV7ahwOy+uVsqFiACt3N mYyVZQ== -; resign=20460416024207 -83r.subtree2. 86400 IN NSEC 84r.subtree2. A RRSIG NSEC -83r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . MSS+aIIC3ZvkhSN7PhPvDmLgXUMuViCgyXxkhW9KUkSkkpx4Eby38thp ZwhktiNXapsUO0URG2qZGs0S0lW3dTJdn2GauvXNkfzGKY1iWgZsVQvZ xnKU6Id5CSMgjXAPrfKuMqU6hYi1awsLqmYsNzdVxi4SVLPm8hvkx2jG OfeLeWGLWtfHr289viu7cWO1Yeh3AEqWoUteJNU6eugdsTvrWurnfqpB QQfidnh6OTAO18cyXcTsLCYCT3e4XVrBzpVUnaEacVG7J9MXcggOeKOB 6KvG3PlDpRjgU1HElR1XZdMWTU/c7vv8v30+q+i61cEauiyYRFAwBFvB BcCBHg== -; resign=20460416024207 -84r.subtree2. 86400 IN A 192.0.2.1 -84r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ICS4/eZuAoeN0YbfAnYLeOTHjqYgOi0CFeMkzO1bC669gbyyMA7tcM6j LvgDnLwyJ1UT9Nm+sNYmh86fEaDM1j2DerRoqA9QVHAWcnPIUtBDOY7x QGMoHxnqSmSWOp18s60xNaoJm2f0Xyd8v4oJvnP2D4Rl9oHtxOJ2226p WIducgaPGzvLeZK+Ug0N5DisRHOWiE/2YvKV5raAMzo+t1yhIyjC0+mR FNWes3UyVOV2mahCKUM60g91UUjkB8tHdcswnapnYc7X+KLhmXZMGbXx FSia2cpobZPl7PLKbI2DEDFOVwjyYELQI4g3dPZ4aY0mMpAEUkRSwp59 a5/fOA== -; resign=20460416024207 -84r.subtree2. 86400 IN NSEC 85r.subtree2. A RRSIG NSEC -84r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . i1COi8BjDNgls+2f/p9xV58rS/3HQVZAPEO7t74bm40MlsFz3zwFwwP6 5hZxQBuH37erv/MMNbhcJo4IrFzdxxCiAKTm9vy4+Od8mOsNM3wBPhgh 4q1wdZQgMVHt0ujSib0M4VvQoh+foFRFFJ9Yi8UHJp9yJUuL7nwtmNhr 4YxihkEcRv1uS2M9ycXY6Igmr8diND1ZLT7AzLtPHw2Kkk7k140KjkI1 G5UcWLI/emknTRlGrLIRb4yUHtFa9HxEX7vHmGNbffKOYZOUrQ6Weh18 +NTH7SdOt96KH7bO9DdjySEUx2k3uusYDAq69U65ZeUWJHh5CV/GIfrv i5DJjA== -; resign=20460416024207 -70r.subtree2. 86400 IN A 192.0.2.1 -70r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . An/Ib6WiyjTOKXYc1z2GOhDsve5WSEstyynUiKtPzFzskx4DAUz3oJXu WmTWj0fjh8lcS6hc9v7OuxaIVjzgeYy/4I3aiioC3m0hvKoCXX/a89Dg RGU/pMValMERnOPHQFJNfnn6bnLJK2OcncKeG+9xI8zCZ12vXvRCDFHj Wb5LB+B7az/Zpei5QAxv/RKXwTW8Z+Czrd5Rf8ArNGjvI/n+iJDRR/BS zGMd72Sdyxfq3YrNrTbSgSfDE84PW9oAXd1JGvOqvBeVx3at8YRKA+OW +mDxxeWqyaYHrwfBT7K+PoEDnianVszY9xgsDSqutQ9Add9AuVXPAHss B4Ec/A== -; resign=20460416024207 -70r.subtree2. 86400 IN NSEC 71r.subtree2. A RRSIG NSEC -70r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Aa1xQzeSjo2ddP5isYJnFrdxGIB41u5BfLPUcvC+C61s0XJBbh9qxs+G BwMfWWasjOD7eCE8Blpp8s02RFoLqcOZR2jfog/acgYBmke+NxPJb4Ga eJJltzGBD6pxrT8bwa2seocz/mZHRNEutTtRT6BBumsh9GHe4/j/7f6H 0JkKe2yrFmfeoAgiL+0QdYzvr228Drl5/Nd70xsLX/6Bp0ad9jVF9wqG 4+fdxgbVu5cYBl7TSBNfqGZZF2zH2s5XqS1W7kzy6k58NE0bHFmPsvt6 J4LBwzlJ9LuvVGUTt6DeEEKelpJi6rZDNOG4iBu9R4Upr/rxjD5uVOSu QEnv0Q== -; resign=20460416024207 -45r.subtree2. 86400 IN A 192.0.2.1 -45r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . q5s21YBzlfcLpOiXVDIGCwm7vswz0+SKDguv3QQODUK7suHTq/nzPWgW E5qoFeZlsR2WmdNxT3DEWDW/b1LqnXqGvMIMKmtA5mJhU99qeaJ4Eqz0 5VXA5GCxc43iSofbOAHT4Cbx6pxJKY6uzetkMAz9j+8wZpG4doviPbw+ fHGr2X3Y8Cnikpw9sT9FD94evVVy/oDaIfqp12N3P91q5KkPNk7CroA7 y2RKP1L+xjYknTeiO37RBfkOoIHuIn/kj2T7s2tBiLBWdyqPMOHekP6V nNJLk+anPQF2ZSIgMgjVJsei/F+2RllGH+Gg4kNLZ8EXhg2XXgPnrU57 nb2Ndw== -; resign=20460416024207 -45r.subtree2. 86400 IN NSEC 46r.subtree2. A RRSIG NSEC -45r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . w/pT9IPEFwTRvgktRLWSCLiSVHQluPR+94ErsFy77t9CIVZ11Gf0m+mG 2QUtOg2yY1yBTPNIo999r+NiofSj82QGUQLl7BFi0jgfZgYHLMYwaAXr CkoVletffW8GFpA3Bw8bpqZugQdRGOQiNl2DvXqtlqexOS7af+3Ogcgt CDviGDcTFeO0AFAA/hD4dF7W/F6uPAQUQBj2wnxop8rAGnFl9XwFEq38 yvv0kl9ad2L3lzNZraNUq6Z/AsiSFsmDP5M8zVQda1okwPOZdzQivfmY 6k1WxCpxWqtVmiQ88Jp+2S7UhFgFsAWpjSPbYce7bkld0SU30z5nPfkZ W5DtjQ== -; resign=20460416024207 -86r.subtree2. 86400 IN A 192.0.2.1 -86r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . FiG0vw+/0qkfx3ZkNHTrxsNQB6rfb7xyNV5Gj6N9foOgpvvdIrenSD+t wGhgf0YhwYhCbO+1MZ1E7ShoFoVG4AOtU5sOrLuVUKJUr32qwgjYZtPc ePnVGVXSbSfcOWmsdQaGRtADIHysR3wVMdy8z1GI2r1EuG7WLOhFSZYJ vedJ0c+Zd+LOlZAyQA2RO/R3sBf/fMKiaLKXBaKsk/4v8rkP0nEr2pKN CM4ylF2oEk4REvAHskmQBmUilFha6lqcE5AwSFigeqeJGNw0TVG3rnSn 5cIfAj0NxGNwK4MR1C8WLbLsaS5nq9lPfKuxDr5FRDaWzvmozdIXSeJW OBxF7A== -; resign=20460416024207 -86r.subtree2. 86400 IN NSEC 87r.subtree2. A RRSIG NSEC -86r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . W2aE201SZaLS1WZeR5va8Ql5bAWmmkgd+vRO0a1Tlg5keuCHo2e3lk60 oVP6KP5N7oVEnfAZAJNTTdfvnt0RVpZbsBmvh0o+m4oVTRWgMp6TIK2D K4vTjckBK1fGT4BHCV3QPepn0cFjfRz5N3HStg3scJRYczYvv/igkR2P MNj1tnx2Q4Kd8xThuc/b8AnvuUcVxYhR1SRlCHBTHqxsYlbRD/CrJXVb xDqLrN8cBLwDKwMPOQfUOnYq4LdjzbJJLrJNjRkB/ptYmSE2YdwTCY3i XEyW71hJUcya9QrSrSDLXfeO47yuCDxzuRe7ia+cWMh63YnVabuQLd0P hzUebQ== -; resign=20460416024207 -88r.subtree2. 86400 IN A 192.0.2.1 -88r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . ECdyI5EKeFIu4Jj3tL4d7By5WXstfWxgjZ3Oa1V/8rkOa6KRE3yForzO +F4Ao6t5CjKM5ZsKoeC1ixWLPJ2pE7c0jEgRx2Pey5TJAzrf8wVQKoud fVe6XFU4by1wPNqTXU+0Asu/uRLSaqz1gOIH6/7Ozm7P3/3xPVDbcVLA 0EbxnMZnfcSOOa9sewySVp+4eVbF7mvOQ1FwoIcJlXc1HdDUcO1UPEHE BqEfE2l6NFp71oDWXsaSXetWx4yJtLrIg9EH0N70l74Kboxy4nWfydQE ywuA2v8pjIBu4pz+ZBxTFiPs3cydNUltOAnAvHkL4wI+PKL7SpHM+sx6 YTNtmA== -; resign=20460416024207 -88r.subtree2. 86400 IN NSEC 89r.subtree2. A RRSIG NSEC -88r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . XHdir6VyCMaQ1x+1rLuON1wW1B1AXXMynTL3O3z/nDSTGLCiL+AVTm2u Y/3B+go+MK2dWrsZq+l8esBlps8CXDqltYReyuEIKUgnLk/MCa4rBO8L lWS1SJ/xdB8VJ/830aR7a4YifkKaKncQT2qb99iESz/1EqUZbdCNdGTl aoKFGPQd2xI1J5x/RJwad9YGhpHZQ61Uvxv05VIuQIV21j0EnlWHbYPo KCtbgDZfpFx8XVd4qp6qai+lxozgqviYcsCqHJa31iPMTdpaUBtjEOiV 3Cz9PSJHqbWrTGGVEVX+k45qXWPtcABjob4Eb9mM6yDN+ON3QEfR8Vhn aU4V0g== -; resign=20460416024207 -89r.subtree2. 86400 IN A 192.0.2.1 -89r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . LtLaFzg/aJ2onaZKr5khKLgVpJUJL12P0WD95k6o500NUZbnlmweGC0I JbIqQIqhUlrrQkCYsMCXhs499SNmmUZ0BsOypN/BDfMePbd09F+PZz0o JRHvkf/yGjkBK0kEtZ6Crorl5coSuASum8NwR/nw8h6skZX5cH0+aHgI SwWW9IAnjnQ/RNLnTtLN8Mr5WuhmGGSkje1UPe9oBOlVbWjMAyhX2lVw AU77h15R4bR/Rf18Cz+zC6n1SsTkCRs52j/IS55U/cuJnHv5IfmajHTc bZWcFkbIwX5PMcxkyjS/4oT7e8FRoJPxletIXWxLWwSW+8G+OYwBKlGx ATOMTg== -; resign=20460416024207 -89r.subtree2. 86400 IN NSEC 8r.subtree2. A RRSIG NSEC -89r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . IJAqvknmXRDy3ZD8gN2zhCLYkhvHljU3UISARe7YeDf4WBkRLwK+07u7 B6JjiAJWf/qJ7qcQl4bIYxPJ5iLmZuT7bXGyt5aPWcxwk1LluU+At8cE HFEEna0yZshXPWHQiSULtXj+KAjz+rDDD4I9sjoYIY0R925+OXibYpgp 3vDoPD6G+mS7VCl1zoMOU3gpPFpbFwjF3s0kzcJOfW739JFyg4Sxe15H LewmsStzmC5Dy7KWErFPzio1i+e8xbpMvGVjFVapzd/gAaL5Fsw63SYJ onDpQje2zIK7ysaiEXtuezF1mFm/d/HJR5cPu3F80xf35F+CrViR2zZZ zJjWEg== -; resign=20460416024207 -8r.subtree2. 86400 IN A 192.0.2.1 -8r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . S9i6MWPelsjhrORy81ifXaJw+PpOHNWxa4UXaIa9cFskybm2wx5pGQhN 9Csz9v3P05lOwDXasBEHybrlodlSY7+49M3g5yqLEnLVWiqlgRdulLcP zgNkLAgW98FixbbR4WdweG0HYbYuq6yJoNERdLAJGRhz6MHPgjYTL8uI jvQ2UcBPdeeB/eJ5uL208LbFXrOgCPvCjSxz3DGXgrpH6JHRFm1i6yCs sjou+AsF4gX/AwcM9XUmxkh5lD7HN+Ey4RDtid/DNL+2WrnLoBwjh/YB DdiT123+lNg62J+TlQPgvr4Wdemz+MTzcWkSfkjemdyYZ6W06IU0altW /Ufr/Q== -; resign=20460416024207 -8r.subtree2. 86400 IN NSEC 90r.subtree2. A RRSIG NSEC -8r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . droP8BigHxGz/QAEBLOgYzSmdABokPM5BRluOKY/zr9Nh/z2dBiBW1EO 1cV5GPK8lcx8toqEfu0Zq9+aWzdcV3ofvRhZ5q+JndY05X8GutT/0P3W gRI+96ilRFksLKU7dS2uj6dpsopssqkSqGRl685YowNnn7O9bB4LyVHP hOlbhd1sXQ40+bvxYKMui0SU3FrotvjNuU3u1CtGormUj+vjFSbI5FoE XkWDg3C1QsTD3mEjXctQIfL5mv2TTWkJqrAbPoG11wTtAa8Dm0/RjoUK jvnJPMloW/gIiKTyif6PV9MLIyDHSXDdvxOwV4pAQhpUm3up0ZkAv3Pe HMSZFA== -; resign=20460416024207 -90r.subtree2. 86400 IN A 192.0.2.1 -90r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . sguhfNWje/190bkCeJ3v/75CjfdICbh/bno4hsC2ApZbC6Nq7XVTA/VQ U35g7ln+fjiD03UwTAf/k4RzA8REfQanK02LNhj56zFNNhhdnzIsJPrg sDcyzQITp+SMy1boseShRjukdgSMMU8E9igqs3S456YC+dlp2Zn4WrbN p9noTXUxsVt3/TJH0RaZBy5azXgEU1+PiLO7YNamHrrvTdcj57RjyVxe M811Ge269l6RWfuLR6ssV0LNO8ZrLRHNnxvtg8RvkbJXSmOjom7dbqEJ Gg+GA4/vHqDl37nJdFuHkhwUnVSIV0ntcGDbaNBliEj4t663iLB69Fz1 FYbK/g== -; resign=20460416024207 -90r.subtree2. 86400 IN NSEC 91r.subtree2. A RRSIG NSEC -90r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . O6+LuRnl9i6Rt+pAl8e7rtkF3aACthkrEbTQ3eMHyiYeoTJsVpVyPArX PXFTtXJxYQjqwPHVGl4jukLnJtDJy+x/OXwhLea2UWmpo/APCO8K4xrp DjCiBBe/S2uYnkVRN30wu4t2UqdojBGnstmsBmaIF9+oyVRf67OSiHet QOzttz+g8DGbfJ8KUlzYhPCPvIUR3Dh3jEfeAfO8CVZ64gXZwTwGZblk HYNZzKQs2zgga+r/R9Dpp4mHxyDVH1x5USVXx51Y9sXZ+kNJeclyEibd zZMli/iDXH9PHBTCXbyHBgwMmZOtNMU17k8/oA8uwPZKN1owUmfWO7Ar psAbxw== -; resign=20460416024207 -91r.subtree2. 86400 IN A 192.0.2.1 -91r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . dOrt/iu9d/CPmDnkLgGlI7bd1RDgVosMf0+Q3y1qg53EzrqtBCuIKZ+D /7a2RtYWTkZp3j+hyrhz+WHBTCfOr/KUtlHCsrOIExY7cpSTaYFSYA5c UR7qAkYsUNSBXBsnA/ucSyllfXoiFeBDlmO4wNnwnjI0F1hMJCxnn2Rf i5qliDwwlEojWPYMygYwzba0Rc1GMljsd1HLysjnRu2rslGNRx8dACRu QkqFNLOU/iqrJuWIAYCRmkvJTqdwNbV921oGOTxNJAtw3KWDNWMQ24hn sH1IDkyAq81FKDtI19BdnAlp9uDhBTWOGMJ32cooTWTig/ut3oMA/zqd gGp6zA== -; resign=20460416024207 -91r.subtree2. 86400 IN NSEC 92r.subtree2. A RRSIG NSEC -91r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . RRwaMaalChpe0eMu1K7oa/VKqUbOeXwhN4GwZLP8kANBVr2H+VEHkme7 2eTZfBZamuheOlACtuW8kwm/F4ZAtY1XTr0bFKTXV/J/X/eISDCj2JTW +a5iNuq1JHok+vCZmF6t6u4PVKM/hD/AttXrcjHHK2TfOdgO7rZ5gGaV 0cBjT7SeWbzB3RFYWH8imLOE7v469TGO7W7bGxDwdgyvEQ9ZCZV6z82e uQoKddHC2x3nwyrkJJ70Z2HzBJOiByQjXs6hCIetC128HEtLXoQ9ILKA s2gB1EEzT6+PxcARpK7TNNuOTNpIriDkw3vItpfp9AvTqaR6xRX5YwYC ufT4tg== -; resign=20460416024207 -92r.subtree2. 86400 IN A 192.0.2.1 -92r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . elD3rVSaGOQbDjXtl1rMX3XtseJPSbIyVkORcBJffjom9JPkT2MenM5K 6d5ksiAlTgnSCcOf2gMI8AtSpJkSdmU6CBCADUc9p7rdF1x2K4tQ6WdY G4koQmAXGiojxihftE8z/N/xIt2r7oNMfwdfk7cxgKUBuJs/gabcJFLi 5UVgZcVqlWVlLmxKWk1zNbAY+LuCZrmnbP4nA1qQKqA/i/yMPnPcgdWq DZLGtpjFiSucVDxgaIoQQkobMGG6mMwwrWo5F11V1G1zmxx6NXvaKt+A 4u8pclsNxpDCQQcCPgg0znXPtLcyaQl8bkkg+lK5lXr7Ct9gPaWITzJE Z63S9g== -; resign=20460416024207 -92r.subtree2. 86400 IN NSEC 93r.subtree2. A RRSIG NSEC -92r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . IuwQACPEsgjR9yO0WItcJ7eyepFUEh9Dg44S7hIS4BmZPgcQrO4FeboD GzGTjbR2x/gP8nYarvTVmxK79kqQ9UATg2pPojyJMKWkoE6Cv03qJzKx nxHkAnyGFGYjIa6zFNJbPQfz+G7SX+o14ooHyVXZcKmAqwKbxxuAbYK3 oSWSMM6j+lk+Ak+GoPgm5zxrbh+aivtGqaZm7Xhg9A877a+w7TjVtOn+ WagIQB9FjG2Ilk3pGIiAskveIMrUM7NPr7bTeyvb0rmewheDfd6uJ8Ou ZirvOhuwv59rDoZ+Us6JaBQ5Y/SrsMQRe3bLwNjx6nuCQlUKedK4db4p N454kg== -; resign=20460416024207 -93r.subtree2. 86400 IN A 192.0.2.1 -93r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . FfE3JvfkfdE56yTYiqu2CCMxMo2BUwBrjXf1XU9OZ2amya2aSGl8yAl1 yGXbm/FwLKgK6WIfZZTQHBr9Hm3UgwWNg79Z5OQj+RvIHfuIgpX0YgFR TlnLtuFWaufrxu+g+7AVRSB4RkVsN0b0i00o3RGS2pjAtAQ6S/h5R/Qo FlE/scsykd3dCPGyPICxRZdDzouk91aw9YZtxJFOESUHYdKFpqsnu0yf Sd1VQ2kFh3kgkk4Dw59L8hOmYXT8Uxi2gHOQsbb94NwpEJ45NyRAe+xI Vwu2vp+4P1talaWlrlEPqH7/eQ+2AiaAqklwZhKKkN4H9KMx8/T2lpDc ObhuJQ== -; resign=20460416024207 -93r.subtree2. 86400 IN NSEC 94r.subtree2. A RRSIG NSEC -93r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . DmsCcR5kIlhw7uLX5C9MiQUya6CWs5q7zTZg5n/r7XiEyV/gB9c2eFLp nTgJdbczL2ShCSEtkb0aYPRRjAvtqGF48JmGJf1NYFgWCmQj2Rei4Mfe besJvJrn36MIY6iOeGFlVGcSffsQxySISEf2+c9UcKOkqsV/O/GCPFHx dU1yIDu+bit8Szhrt7x3RhB4Uj7RWZW6pzeVA/KxBXHHFDSwl/51dygf j0KB7D1zZK5nfXqHtecwzFy9JuL9SkcvI65oPaAjcjS+AbqWZgiHpeXN djbNKhzqUDl4jP+R5wdxs3h1ONQ9WFQOT70fy8gB1Z4fTJLutbEOiMSZ n99gFg== -; resign=20460416024207 -94r.subtree2. 86400 IN A 192.0.2.1 -94r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . CmTajnWkJnUVcGZzcokeDSqy/NnLUc4Odgi+zon5TrgSaAOEL66pm/zN BSkfK5nciTwptVSg9gpYPu2GMmFamytxizc2cu5YkC0zpcuuWDybGSAz YNw4iZBhLP8iowD1Ea/s7pDflgogShGzX24mNpnYJxVimqO2Hyhp045t xQTumsHzZQVWUlk1Hsa1OtcAOqY4JA9A1zn+gP4Fw59ytXTRPs1C2I3y F8WIOfTrWviN6NvcwFrii2tiQwC8BpI6OI/1wbdkIy2KbHT5IgXxsUh8 QgQjFg2W5pwcbUaAGBnljuAaH7ZL9EAQ70rIybJYNomSc1nEImShb7FZ 39TOSw== -; resign=20460416024207 -94r.subtree2. 86400 IN NSEC 95r.subtree2. A RRSIG NSEC -94r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . RcJXpMi5SCMM2tlHDYUwRpRf/BpCyhs3ZUx6hDWJZ9FkMZTJFG4/MWqA Amib2FehoHrhMHcWdsyo/nFQjni3EX28TKt4OlHUYMgo7Kw8p//R1IRA xM5YBsF29k+QZwup8RO/op4a3q2/1lsL+VedNeoJo0giTdfahq8phN1U MNszlAQZ3SuA1T3QM0EnEldKJ9I4HPXYLR/0tLKnjTkCOX6xSI976lAT 2fRGhRuDrhimzjhOWKFMzu+Is5vvAHEqNvqBO9jSIWihK/qoa5Lk+1Tm 96MWrzFMPkMgiJIm5Y6w0VIFFguN/8l+dLbyrzE7j/ytxoPgvWwItjmc gPI8Gg== -; resign=20460416024207 -95r.subtree2. 86400 IN A 192.0.2.1 -95r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . dEvcbOlBNJYt35F+19pG6fuqzLKwxV8EKNYst0AiKnHxThDTBe6t5zTy j3BQqVaODnEl5nexcjfWigd3u1Fyp5V4U6kPDhe3Jy31FJxDZQPRPLlI hVf1iftkzse4iVx+NpYn6xDbacz/t84RNBcKQGAb2M0MXEbdTBSMI/dA AloyXIedaJAkMMMVTBCQ+b9+YJrCpFfq/uN4hI4kjWvh6hVuVj69CrHL mGD03WXdrURhmhl2mw+AXjUoIopCLGch5h0j1qEc3sAPIkTkmpcaZTvV ZaQTPypvkoK3exrlfgeOhfvHlbk7olrfLcoV6QgSJKRXO/MqRwOVagl8 xIF2Ww== -; resign=20460416024207 -95r.subtree2. 86400 IN NSEC 96r.subtree2. A RRSIG NSEC -95r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . E9OK+kEC4PuVEN+P7c+4KzNCAbR3Hsttzi8URw5yjixiGRPbUdS4BdV9 z618OxJzmJJ7M8mz0a5Ofp3fqeXGRmuWecSEMtzFcHJuY6e6Rr2GTXEg sXM3TZnSkEnVtzuCLa+n6nAB0pgEZVnaln3gOpMGZp3kUjfl/0dHE68e lUQ1mqyefoMMx6wsFELXdRXw8g863N8rnu13jx2RkTwufU9Ri7uxSzIw BZvLnGaGQhweCxme8mG7kXU4pZCD/CDYsUUB2trhvsr2f/6ZZkxrlgLe iDBAFB8aw0eQGlf6wPNrumye/LI9CLGwoe1Y3rR5+1O8qCnJYSIy4Bs2 q28nEQ== -; resign=20460416024207 -96r.subtree2. 86400 IN A 192.0.2.1 -96r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . u1+d0AAtw7KTRsYrFqDlgNIWZUHG3DGvnS/OVOlLiaFrHjlJ8YMKGRoQ WB0cxJ061Hw783mmVZcIJXCXSpfZV6q/afki+b9ZwIO+0yK9jD5cY9vD H5CteywVmduCLoDs0uDYBWE4UbWcB3L8wqSgnDaY4dTB3lmj4oEA1qde a04/Y/R19ntlmDM3lS7tDjY5xRlzK9Q+e8EsxRfriI326px6HBRqdYew dn7RRxVjWbZR4H04nedDQ5jeBh0t0Jl9UUdv5rsYRczE58DR4hkeMrMD RsQv9aEMCCHZIblHS7Jo4O7T7mAjit+0n2n6HOqs8eistzURsErvZogl WvCZEA== -; resign=20460416024207 -96r.subtree2. 86400 IN NSEC 97r.subtree2. A RRSIG NSEC -96r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . A1rrt+oKmhhenoj0rBMlott7i5hJ4sKX6yTBi2sQWSCiJuZtPOVaZ6v/ AoOib4IgvSqYc6iIDxn600Xt116j/TWYM/skU/59bd430WbGhoDCCVpC IoNilVWmaDltDkqRsOOJygeJyt8MubUXry5v33MHjxRYywHUZk/nZz9T 05dYDB5IkPzQkUR1kpWBSmxbKhpTDMtOhVtg1oAjb9dOlIDcC6TWno8E hpW5NRJjSAihwOUScPKrubIG3pN4Wzj6yADVao0IBQ+sukm2l3BDdXnU tOI9Xsk2/f2JObVQNs7QqFgtnD6Ht0+9ZfnBCJJtPPcz3flaYIaNeGQ9 bA41rQ== -; resign=20460416024207 -97r.subtree2. 86400 IN A 192.0.2.1 -97r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . gLTmSp8fhdoLKIOQVjqsqT08v7KC6sfuAPIUrLiauhLvDO06Tx0hIt8V i6An7KsOsaH0ELt2piRbGf6MS/aH2jHSuluFgGp2VIal74kT41A+YsL8 2CkgAcLSvD17HCtWAzxz76eplPJbA3+2nLnSooM04+qR/uckUNdP3Tnm MbZExofXSj9OG4b6U/kRZJ9H/gEbdktDCdtvnCBeJUoV6K9bQc8/RVhE cf/blPcGNm/KVf8XQZgoBTsr4t3S2f68WwpT2pyeoaqYxKr5m6k9jfWC FDRWjGXjtU5IEeKubH2EAjpgBWPLFaRUDAerTjFTqsnJneCMds2k9+gf cULClg== -; resign=20460416024207 -97r.subtree2. 86400 IN NSEC 98r.subtree2. A RRSIG NSEC -97r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . JenfHs6Shb7IxIUJK+cojyruYCbm9sBk6sdB7UzHDy/ezOnm3Y5tThi4 YKfvUKxT5/J0rapIIq+eIjs8SabokeG14EsVFDtOHD80xhqdaAukAy6B naSvzFhe9hod0MWx9lM1pOosoVvrA+Wv0/8DOcGxC0myK9TvOSrl3PKM Xr4y8Y9pthV960TM5g7y2GE+aXfpX2gOZiMGe0WOTqUheXQ8wC+etOdz DW5aRLV63qtwXnlY7UWC7balJ36EzELY8al2to5KVhwxwfjjdvak4rWv KH8dDTUY1gL1jX+GPMmY8uLRWMKTHtx6HA8s9AHVxLLjra0lERkbs0/m Y59/mg== -; resign=20460416024207 -98r.subtree2. 86400 IN A 192.0.2.1 -98r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . uC88oukw3HlsaDfwK2REa9YSQ2wNlwkw3aQ/MBTHUdiOxhZ8cCjdAbLH Vrbn2zCUYcwcAyfYTNOQ51sG2xQ9IsQaclrKO6wUZTikr9vQdwk+/yYS 08o1K3dc0NUSacllCkJ277lekmq8WRhX/qLUKaLScOV2mzZpEVdfqR/7 eZYI1fjjsMiccOjjdKvQdrK63lZrR4JW8KkIlojguz7lNjIuPqV3srD5 psHZDPL8LfoMcFFV3BKr0X875JKdbCTWEeVcAlMmgfp+AZ9s++SggHix ALCBjBhrNJT5zeCTGwU/Y3dBfYYbzTX93fOMfRP60ER9LH+Ns2khIOCj 4siS1Q== -; resign=20460416024207 -98r.subtree2. 86400 IN NSEC 99r.subtree2. A RRSIG NSEC -98r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . JzxL54WUwM8cA11scDj5GOKD8AW9VgQT/XtJXKGhwejRMuNH9exj0uLx 6OPLNNN6gp3dgz/mu1LhcE0SiTr42AhmJlYzBJsmJuMZOJ1OGcWYX2yi Yl5udmTp4SJrGQPvH48KzSY4/te2ik4Y6lKdiKz1bd7aaH8cqExIVHMa DJEzXwjJqOQQCph2rq4d1XFfst19ghyoU2GJ1zX8iMZ1TDR/GppRaxd4 ZecfR9C9dzItIjnPo7Ky8JUeGTQY0+PvIriAIcNVTRkEm4x5+zNmLOXe fWTTnoeVhTXVJYki7sLjtKWvoe5jKdiVgJWqLN6Ps4JTJJgu3BHGJzbH fqKqxQ== -; resign=20460416024207 -99r.subtree2. 86400 IN A 192.0.2.1 -99r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . NO/jA3/Fq6aB+mNCs5aejoZdHdH8MZ5waNKWmW6ba8Tsp58jiyMOAiIj aLiLBZ/A7vXj67NJcCgp0ffs0eE1xwtgcg8DwtsOFHey1I+zmQSjmmUI Gqi0Yi4F0G5V2URkNcZPfc0Ey6zXmpCrfVrKS0DktP8g/kjLkXilTd5F xfLZZzb4XvQA6r/UzNdWaQwe+IU1pYS9h7i4hezxDINj5RoemRykPbBa hm76bG51GX/iLcQ32SuJHM8AaQ6PnnKXLvB+LSkpMBTm9KshBLu0/Sju GeletOuG2sveR5BP6BpQR5STJ7upc5jZH0kOjBUwrV2UI0GPTg0aMl8Q jToNww== -; resign=20460416024207 -99r.subtree2. 86400 IN NSEC 9r.subtree2. A RRSIG NSEC -99r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . QHgZNdQItRkchoW2V8xGFn1CFeAwWEH3WlRNv5PTDopVoaOF5bZocWUC OTp+5SFJSqVZ2VZBSfCaqjurC+pwpGYviQQvxV7C31aiQFwoX+092XvU 7EM+YbOLDzg3u95z7YESo58o/ZVIti7p4+JPAp8IKPjGiPhUKUH3hArO TvoZja6adGCNpLkxbE5VFA6esI4ZTMv6IEhALBi9/IdI8ZRpv6WMG+Bn By1w9My++QCtPFQIFC1tLTqPKaIUknL/H5gqKMHmR5YteXpQ9jHtuwEN Lys7P3I/E2TVr2Jt35YyYkUUaxR/W/AMRYOu/cyzuR10nLgiQBLhc3xs 89k7Lw== -; resign=20460416024207 -69r.subtree2. 86400 IN A 192.0.2.1 -69r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . H9e3SuKHH/ds/qxJExQwItamzQmLsoYnh4u8aAAIOHg1+LT2P0Sn/KGw ISMl/McYEeOXlFt2SGwC+3X96MlXC9GpsMxtPLy86Jt6p/O8gVdSpr7P y2bFB2Ioz1I64mGKTN+AAJtl85zeV5DbEeQcB1uCtHGdh3aGhgS/CT82 b0eFOAuLiIf45Wy5h5DFZz0n9XAUJGOCejUUqZlEdfSJ/9Y9KCjFPOf6 XDr1Ts6eJhukd2FnGImAVRsCeYuCtkm3GjSkxYG3QgqJNDUDpk++Xzw+ 5kNiOZgQ20y8d+VBfC5IJ7mZlEuUCO2Bw71EQC/BbHVkQdgDbKe1oFHn 39Gd6w== -; resign=20460416024207 -69r.subtree2. 86400 IN NSEC 6r.subtree2. A RRSIG NSEC -69r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . HUFhcEIpOw13gVwxCTqn4SkpOHHks/x+5qXR7zbMzeCWh3xH2e5V6xyd vh0gD4+qpb6BV0VtHTCWad0IvZADLo434fIAf1skmmkwXHK1P3s8hqeh K7iKTcKSwqE0Fx2vCpmmkutyKgNxokyzBmyhhMHk3kIbh5SqOl3Bl9wh G5WEuICCh+SxFaM+8eHOZl0iWIZAAD4EW0kVdU4Mi0GUI0rvufYL+Jv3 z2Scw+zxA3ZOBPLgHFWLrVd51zap6Sc+CpIE/E+le0TRcam/wV++Tpr/ 5tE7FN634aoVZlf0z5R9VE5rlVvrkzxeo/OYmLWaJ0JbirTMc2nUIOQF 7lFbdw== -; resign=20460416024207 -9r.subtree2. 86400 IN A 192.0.2.1 -9r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . w3ZdS3SbdNZCYHTVb0iyxEhH6CsCcS3dzopqkxQLH1NhLlEC6zCD8vaZ 5iN3eBV55Kl751tEkmiHeCajXLRhDd6xZC71gZRLp9B8oouEX6DwofZ9 m00N7njjtUd5+ZAuqN5r4oZm4N9zVMA9xQjXszDGM5r91EjxzChohzUE lZ+b4aeOd2jA3z2nmygUq4bNYGFonmzCDhuxvhhrjw/dt/eXWGMWBxFN Rz6Z5ZTgcAgU6pjANijSQ/7Z/D1SZ9f1gDL9O/yK/et08jR5Vlt49McZ mTWcv6ZPOuzrcWSFzO14TR4ZWQEYBKWHcflACH0QRJeMoIrR7D97pPGl /nycqA== -; resign=20460416024207 -9r.subtree2. 86400 IN NSEC . A RRSIG NSEC -9r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . pMO6DJZKqSfiPHQjd3nRdxcwHgyDVAtSeTlLVZ5q3RBOQ1hxKa+b1DF/ lPNU/0YDsfEznEhkFPQj3ceWZtABhVLqj/tQNQy2TBkLBFVDTQuLHNWh wjSAwmg5SRUI/NG3t3c4142Sb3yc418XrRWTMu9SS147hUzqZsNls/19 6vkIX7GQLIyqhOULjedZplNFgOxpRmFa5zORTZ30ghBZj4yuH/DXKJyb POLV/h3OrXi3d6KzKkFH+ItRija8dlm3cNNvf5ibD9DsXoEDDm+xu4YM tJDHS5pcPschc99l4YzQPw3AUmOFmoDknzS3v4KSXcbb2olM24pqVb9P eAENJg== -; resign=20460416024207 -85r.subtree2. 86400 IN A 192.0.2.1 -85r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . f3ogUidaXG4YfcQ1pk360EY2gIoH9khcvUAnb+suATWZgyBzhgzzFLcW r8hB+tF4uW7fpECLic2w+BmZUFX4yGWVDYldS0Nywvj0vApNWAnrn+3P RdNJ7zkI5/ZO1IZDGTGaRZlG1wkIv8KL4lXjRHjw/VU6vMgepld5cCNJ 5tYkhBdHKvltkBqsD3owQ1nCuvfDfIQp0z6H5gCx5EpoNsqKz2O9Z8Mr hjBvl/yVhDrvXRbN0d4o3pHdg1ozm2azNiwRllgCD/vxV48Uw7ZOkFUk Z/e0kgTOsKHCCGCV976OjH8ryFPiVwD2r7tAbzzrEctDtL3pgKocTknh aUSfsA== -; resign=20460416024207 -85r.subtree2. 86400 IN NSEC 86r.subtree2. A RRSIG NSEC -85r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . Nc2ArE889yWghwl7jvS5+GSHcYV7Of1aX+YDPThgr+DxZS68jKXwXhrQ NBVMGe/tPdCML/Ka7rggAUmgQJmrx4JY/s1tJMbm1GUJr/rVd23Qt2/3 5Y0OQF76JeNfKtyUfdr2K2nIKtvte0zPq4RlNa0NWm4Lmm53PES4PnO3 w5cnnxwePHMN8aQp5GucyFCdw+Ah8pRGZLRVbPJgj+iL+YhT4k4mQeI8 yoMuC46icqMRzg0lGHaBGeSE8uD1GVjbwOpngqWjB8vdYDmBX1vWNt4P dVII2ybrBIwfnqnGZptNqhs0roKaLGz2GA/0b05bwl1jHL9AhYZ5Zin2 Xz1JVw== -; resign=20460416024207 -77r.subtree2. 86400 IN A 192.0.2.1 -77r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . QAc9wnWC//xMkla4VISWRiYme7K9/K1PJc+oLaJ+slJJSjbqqbqcqUCx EjDCw7V+a9FvnSTBs3tGpBvnQfGBT8LwbVzgrLA3p7Ad0JX2O5XlaYU7 tcbDatZdRoQkB/rxpUcPzEKe8t3mT4nzavyK+QTF6gbfrcGLRRrdADwh lUOmada+Hz/339BkLYHEvFHCdnmovmtBUOQPjgVpj2pFWPZ+cAOw5VJV 7/mLFwijuoe22Yq9E9WaI6YWJIeobu+Dht13FlUkiAgQeqyDAOCnmLjp Hf2VRjXvRktliYOHoM1gBG9c7qUHIHtOS4oXRT+0ElN9CBBovTzdIoo6 WML2DQ== -; resign=20460416024207 -77r.subtree2. 86400 IN NSEC 78r.subtree2. A RRSIG NSEC -77r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . jp+KYsenqjl2t7tBVdmg1VVQoq1eHgqnnGjLeVU3oGNLtwwvQWEl0fV0 MNMuBUzH5jhMw8L8VvmFihIa9RQga3PQDI+CnrvRH1YNM8OAXzaWWWrA Fs4cS/cCUo3dbfgL7bxxTYmYYG96N4QbTvBE6M/N8bvquMikTdWjsMBy rz3ZsMCoVC8CXr+i06vevOKZaqfJ08hYg/hbW8+h/XtgXaQZjLEGJ68X osO+20PkOHvRD7X3RTHVlDrT2ZZOjCokNEgl4/alp5t5xXi6A3hD0HfF T/tzTiBi8gVw/PXJRgPV8rE3BXCf7Cqwwtei/28Knkf13zHD8fOmrV08 PuQfKQ== -; resign=20460416024207 -87r.subtree2. 86400 IN A 192.0.2.1 -87r.subtree2. 86400 IN RRSIG A 8 2 86400 20460416024207 20180815062314 48409 . fPXLpsy1AqCF8HpnyeICWkuMtVpa87akqhqWJdKTG6pKKVQR0swtNaYE e3aLriYm92PGuYzdIIrQLyBlRqfdsyNIbhcGSufBplGt0hUR6CCFP6eX wuOBqw2lhrNReC/GM+E1wjvZTfZ1qwc+JOA462jXX0t9PSrTTlFM5CEj /91mOZXJ8DTYHeDPy3jvPEjhR/137fC0WhHHrMNKI7wT0dNSObq49DXu IzqrtNpzEWtiDYQdhk37hraueb0BNFmVONLqve2Q51D320qi953XR3pz olGQ9UrI7Eeo4kbwSGLo8U7mIH2wS65RHzrO8+4U+W/pwHXLoGnQxiRw e1NfdQ== -; resign=20460416024207 -87r.subtree2. 86400 IN NSEC 88r.subtree2. A RRSIG NSEC -87r.subtree2. 86400 IN RRSIG NSEC 8 2 86400 20460416024207 20180815062314 48409 . JyZPoj5NUaz3hnlq+EoPq2mozjKk1VsVmD9Ipc7M8chTIxjiYLnyRVcx ZeE5p+M19oXK71RPwSdYH2UjiFCOa4cZntkIny972BYEDtezGdSYzz/z VMDf9r6XOBeECHiIAaF6q+ptR0K47188Q6+eTlcPZMNSDrckRFBfI/qT 9R99kCvDJ5WyBTY+2aT2qCP0+INJi/XQfOj3RuuJhxLh7UBbicdR43fb QW//otvC9Hb6RwxZFkrM283ddAcjA/0/L4bPmV5AQo1lGeO6e/5jmBay /uJD4HVAHwW3T7rbQyMOWjoIGyJreEaSiE2ykBptwscbgrBOygyOs2wX zZ8EEg== -; resign=20460416024207 diff --git a/daemon/cache.test/testroot.zone.unsigned b/daemon/cache.test/testroot.zone.unsigned deleted file mode 100644 index c790cc438..000000000 --- a/daemon/cache.test/testroot.zone.unsigned +++ /dev/null @@ -1,216 +0,0 @@ -; SPDX-License-Identifier: GPL-3.0-or-later -. 86400 SOA rootns. you.test. 2017071101 1800 900 604800 86400 -. 86400 NS rootns. -rootns. 86400 A 198.41.0.4 - -subtree1. 86400 TXT "txt exists" -subtree1. 86400 A 192.0.2.1 -b.subtree1. 86400 TXT "txt exists" -b.subtree1. 86400 A 192.0.2.2 -a.b.subtree1. 86400 TXT "txt exists" -a.b.subtree1. 86400 A 192.0.2.3 -a.b.subtree1. 86400 AAAA 2001:db8:: - -; subtree2. is empty non-terminal -1r.subtree2. 86400 AAAA 2001:db8:: -2r.subtree2. 86400 AAAA 2001:db8::1 -2r.subtree2. 86400 AAAA 2001:db8::2 -3r.subtree2. 86400 AAAA 2001:db8:: -4r.subtree2. 86400 A 192.0.2.1 -5r.subtree2. 86400 A 192.0.2.1 -6r.subtree2. 86400 A 192.0.2.1 -7r.subtree2. 86400 A 192.0.2.1 -8r.subtree2. 86400 A 192.0.2.1 -9r.subtree2. 86400 A 192.0.2.1 -10r.subtree2. 86400 A 192.0.2.1 -11r.subtree2. 86400 A 192.0.2.1 -12r.subtree2. 86400 A 192.0.2.1 -13r.subtree2. 86400 A 192.0.2.1 -14r.subtree2. 86400 A 192.0.2.1 -15r.subtree2. 86400 A 192.0.2.1 -16r.subtree2. 86400 A 192.0.2.1 -17r.subtree2. 86400 A 192.0.2.1 -18r.subtree2. 86400 A 192.0.2.1 -19r.subtree2. 86400 A 192.0.2.1 -20r.subtree2. 86400 A 192.0.2.1 -21r.subtree2. 86400 A 192.0.2.1 -22r.subtree2. 86400 A 192.0.2.1 -23r.subtree2. 86400 A 192.0.2.1 -24r.subtree2. 86400 A 192.0.2.1 -25r.subtree2. 86400 A 192.0.2.1 -26r.subtree2. 86400 A 192.0.2.1 -27r.subtree2. 86400 A 192.0.2.1 -28r.subtree2. 86400 A 192.0.2.1 -29r.subtree2. 86400 A 192.0.2.1 -30r.subtree2. 86400 A 192.0.2.1 -31r.subtree2. 86400 A 192.0.2.1 -32r.subtree2. 86400 A 192.0.2.1 -33r.subtree2. 86400 A 192.0.2.1 -34r.subtree2. 86400 A 192.0.2.1 -35r.subtree2. 86400 A 192.0.2.1 -36r.subtree2. 86400 A 192.0.2.1 -37r.subtree2. 86400 A 192.0.2.1 -38r.subtree2. 86400 A 192.0.2.1 -39r.subtree2. 86400 A 192.0.2.1 -40r.subtree2. 86400 A 192.0.2.1 -41r.subtree2. 86400 A 192.0.2.1 -42r.subtree2. 86400 A 192.0.2.1 -43r.subtree2. 86400 A 192.0.2.1 -44r.subtree2. 86400 A 192.0.2.1 -45r.subtree2. 86400 A 192.0.2.1 -46r.subtree2. 86400 A 192.0.2.1 -47r.subtree2. 86400 A 192.0.2.1 -48r.subtree2. 86400 A 192.0.2.1 -49r.subtree2. 86400 A 192.0.2.1 -50r.subtree2. 86400 A 192.0.2.1 -51r.subtree2. 86400 A 192.0.2.1 -52r.subtree2. 86400 A 192.0.2.1 -53r.subtree2. 86400 A 192.0.2.1 -54r.subtree2. 86400 A 192.0.2.1 -55r.subtree2. 86400 A 192.0.2.1 -56r.subtree2. 86400 A 192.0.2.1 -57r.subtree2. 86400 A 192.0.2.1 -58r.subtree2. 86400 A 192.0.2.1 -59r.subtree2. 86400 A 192.0.2.1 -60r.subtree2. 86400 A 192.0.2.1 -61r.subtree2. 86400 A 192.0.2.1 -62r.subtree2. 86400 A 192.0.2.1 -63r.subtree2. 86400 A 192.0.2.1 -64r.subtree2. 86400 A 192.0.2.1 -65r.subtree2. 86400 A 192.0.2.1 -66r.subtree2. 86400 A 192.0.2.1 -67r.subtree2. 86400 A 192.0.2.1 -68r.subtree2. 86400 A 192.0.2.1 -69r.subtree2. 86400 A 192.0.2.1 -70r.subtree2. 86400 A 192.0.2.1 -71r.subtree2. 86400 A 192.0.2.1 -72r.subtree2. 86400 A 192.0.2.1 -73r.subtree2. 86400 A 192.0.2.1 -74r.subtree2. 86400 A 192.0.2.1 -75r.subtree2. 86400 A 192.0.2.1 -76r.subtree2. 86400 A 192.0.2.1 -77r.subtree2. 86400 A 192.0.2.1 -78r.subtree2. 86400 A 192.0.2.1 -79r.subtree2. 86400 A 192.0.2.1 -80r.subtree2. 86400 A 192.0.2.1 -81r.subtree2. 86400 A 192.0.2.1 -82r.subtree2. 86400 A 192.0.2.1 -83r.subtree2. 86400 A 192.0.2.1 -84r.subtree2. 86400 A 192.0.2.1 -85r.subtree2. 86400 A 192.0.2.1 -86r.subtree2. 86400 A 192.0.2.1 -87r.subtree2. 86400 A 192.0.2.1 -88r.subtree2. 86400 A 192.0.2.1 -89r.subtree2. 86400 A 192.0.2.1 -90r.subtree2. 86400 A 192.0.2.1 -91r.subtree2. 86400 A 192.0.2.1 -92r.subtree2. 86400 A 192.0.2.1 -93r.subtree2. 86400 A 192.0.2.1 -94r.subtree2. 86400 A 192.0.2.1 -95r.subtree2. 86400 A 192.0.2.1 -96r.subtree2. 86400 A 192.0.2.1 -97r.subtree2. 86400 A 192.0.2.1 -98r.subtree2. 86400 A 192.0.2.1 -99r.subtree2. 86400 A 192.0.2.1 -100r.subtree2. 86400 A 192.0.2.1 -101r.subtree2. 86400 A 192.0.2.1 -102r.subtree2. 86400 A 192.0.2.1 -103r.subtree2. 86400 A 192.0.2.1 -104r.subtree2. 86400 A 192.0.2.1 -105r.subtree2. 86400 A 192.0.2.1 -106r.subtree2. 86400 A 192.0.2.1 -107r.subtree2. 86400 A 192.0.2.1 -108r.subtree2. 86400 A 192.0.2.1 -109r.subtree2. 86400 A 192.0.2.1 -110r.subtree2. 86400 A 192.0.2.1 -111r.subtree2. 86400 A 192.0.2.1 -112r.subtree2. 86400 A 192.0.2.1 -113r.subtree2. 86400 A 192.0.2.1 -114r.subtree2. 86400 A 192.0.2.1 -115r.subtree2. 86400 A 192.0.2.1 -116r.subtree2. 86400 A 192.0.2.1 -117r.subtree2. 86400 A 192.0.2.1 -118r.subtree2. 86400 A 192.0.2.1 -119r.subtree2. 86400 A 192.0.2.1 -120r.subtree2. 86400 A 192.0.2.1 -121r.subtree2. 86400 A 192.0.2.1 -122r.subtree2. 86400 A 192.0.2.1 -123r.subtree2. 86400 A 192.0.2.1 -124r.subtree2. 86400 A 192.0.2.1 -125r.subtree2. 86400 A 192.0.2.1 -126r.subtree2. 86400 A 192.0.2.1 -127r.subtree2. 86400 A 192.0.2.1 -128r.subtree2. 86400 A 192.0.2.1 -129r.subtree2. 86400 A 192.0.2.1 -130r.subtree2. 86400 A 192.0.2.1 -131r.subtree2. 86400 A 192.0.2.1 -132r.subtree2. 86400 A 192.0.2.1 -133r.subtree2. 86400 A 192.0.2.1 -134r.subtree2. 86400 A 192.0.2.1 -135r.subtree2. 86400 A 192.0.2.1 -136r.subtree2. 86400 A 192.0.2.1 -137r.subtree2. 86400 A 192.0.2.1 -138r.subtree2. 86400 A 192.0.2.1 -139r.subtree2. 86400 A 192.0.2.1 -140r.subtree2. 86400 A 192.0.2.1 -141r.subtree2. 86400 A 192.0.2.1 -142r.subtree2. 86400 A 192.0.2.1 -143r.subtree2. 86400 A 192.0.2.1 -144r.subtree2. 86400 A 192.0.2.1 -145r.subtree2. 86400 A 192.0.2.1 -146r.subtree2. 86400 A 192.0.2.1 -147r.subtree2. 86400 A 192.0.2.1 -148r.subtree2. 86400 A 192.0.2.1 -149r.subtree2. 86400 A 192.0.2.1 -150r.subtree2. 86400 A 192.0.2.1 -151r.subtree2. 86400 A 192.0.2.1 -152r.subtree2. 86400 A 192.0.2.1 -153r.subtree2. 86400 A 192.0.2.1 -154r.subtree2. 86400 A 192.0.2.1 -155r.subtree2. 86400 A 192.0.2.1 -156r.subtree2. 86400 A 192.0.2.1 -157r.subtree2. 86400 A 192.0.2.1 -158r.subtree2. 86400 A 192.0.2.1 -159r.subtree2. 86400 A 192.0.2.1 -160r.subtree2. 86400 A 192.0.2.1 -161r.subtree2. 86400 A 192.0.2.1 -162r.subtree2. 86400 A 192.0.2.1 -163r.subtree2. 86400 A 192.0.2.1 -164r.subtree2. 86400 A 192.0.2.1 -165r.subtree2. 86400 A 192.0.2.1 -166r.subtree2. 86400 A 192.0.2.1 -167r.subtree2. 86400 A 192.0.2.1 -168r.subtree2. 86400 A 192.0.2.1 -169r.subtree2. 86400 A 192.0.2.1 -170r.subtree2. 86400 A 192.0.2.1 -171r.subtree2. 86400 A 192.0.2.1 -172r.subtree2. 86400 A 192.0.2.1 -173r.subtree2. 86400 A 192.0.2.1 -174r.subtree2. 86400 A 192.0.2.1 -175r.subtree2. 86400 A 192.0.2.1 -176r.subtree2. 86400 A 192.0.2.1 -177r.subtree2. 86400 A 192.0.2.1 -178r.subtree2. 86400 A 192.0.2.1 -179r.subtree2. 86400 A 192.0.2.1 -180r.subtree2. 86400 A 192.0.2.1 -181r.subtree2. 86400 A 192.0.2.1 -182r.subtree2. 86400 A 192.0.2.1 -183r.subtree2. 86400 A 192.0.2.1 -184r.subtree2. 86400 A 192.0.2.1 -185r.subtree2. 86400 A 192.0.2.1 -186r.subtree2. 86400 A 192.0.2.1 -187r.subtree2. 86400 A 192.0.2.1 -188r.subtree2. 86400 A 192.0.2.1 -189r.subtree2. 86400 A 192.0.2.1 -190r.subtree2. 86400 A 192.0.2.1 -191r.subtree2. 86400 A 192.0.2.1 -192r.subtree2. 86400 A 192.0.2.1 -193r.subtree2. 86400 A 192.0.2.1 -194r.subtree2. 86400 A 192.0.2.1 -195r.subtree2. 86400 A 192.0.2.1 -196r.subtree2. 86400 A 192.0.2.1 -197r.subtree2. 86400 A 192.0.2.1 -198r.subtree2. 86400 A 192.0.2.1 -199r.subtree2. 86400 A 192.0.2.1 -200r.subtree2. 86400 A 192.0.2.1 -201r.subtree2. 86400 A 192.0.2.1 diff --git a/daemon/engine.c b/daemon/engine.c deleted file mode 100644 index 275718eee..000000000 --- a/daemon/engine.c +++ /dev/null @@ -1,832 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include "daemon/bindings/impl.h" - -#include "kresconfig.h" -#include "daemon/engine.h" -#include "daemon/ffimodule.h" -#include "lib/selection.h" -#include "lib/cache/api.h" -#include "lib/defines.h" -#include "lib/cache/cdb_lmdb.h" -#include "lib/dnssec/ta.h" -#include "lib/log.h" - -/* Cleanup engine state every 5 minutes */ -const size_t CLEANUP_TIMER = 5*60*1000; - -/* Execute byte code */ -#define l_dobytecode(L, arr, len, name) \ - (luaL_loadbuffer((L), (arr), (len), (name)) || lua_pcall((L), 0, LUA_MULTRET, 0)) - -/* - * Global bindings. - */ -struct args *the_args; - -static struct engine engine = {{0}}; -struct engine *the_engine = NULL; - - -/** Print help and available commands. */ -static int l_help(lua_State *L) -{ - static const char *help_str = - "help()\n show this help\n" - "quit()\n quit\n" - "hostname()\n hostname\n" - "package_version()\n return package version\n" - "user(name[, group])\n change process user (and group)\n" - "log_level(level)\n logging level (crit, err, warning, notice, info or debug)\n" - "log_target(target)\n logging target (syslog, stderr, stdout)\n" - "log_groups(groups)\n turn on debug log for selected groups\n" - "option(opt[, new_val])\n get/set server option\n" - "mode(strict|normal|permissive)\n set resolver strictness level\n" - "reorder_RR([true|false])\n set/get reordering of RRs within RRsets\n" - "resolve(name, type[, class, flags, callback])\n resolve query, callback when it's finished\n" - "todname(name)\n convert name to wire format\n" - "tojson(val)\n convert value to JSON\n" - "net\n network configuration\n" - "cache\n network configuration\n" - "modules\n modules configuration\n" - "kres\n resolver services\n" - "trust_anchors\n configure trust anchors\n" - "debugging\n debugging configuration\n" - ; - lua_pushstring(L, help_str); - return 1; -} - -static bool update_privileges(int uid, int gid) -{ - if ((gid_t)gid != getgid()) { - if (setregid(gid, gid) < 0) { - return false; - } - } - if ((uid_t)uid != getuid()) { - if (setreuid(uid, uid) < 0) { - return false; - } - } - return true; -} - -/** Set process user/group. */ -static int l_setuser(lua_State *L) -{ - int n = lua_gettop(L); - if (n < 1 || !lua_isstring(L, 1)) - lua_error_p(L, "user(user[, group])"); - - /* Fetch UID/GID based on string identifiers. */ - struct passwd *user_pw = getpwnam(lua_tostring(L, 1)); - if (!user_pw) - lua_error_p(L, "invalid user name"); - int uid = user_pw->pw_uid; - int gid = getgid(); - if (n > 1 && lua_isstring(L, 2)) { - struct group *group_pw = getgrnam(lua_tostring(L, 2)); - if (!group_pw) - lua_error_p(L, "invalid group name"); - gid = group_pw->gr_gid; - } - /* Drop privileges */ - bool ret = update_privileges(uid, gid); - if (!ret) { - lua_error_maybe(L, errno); - } - lua_pushboolean(L, ret); - return 1; -} - -/** Quit current executable. */ -static int l_quit(lua_State *L) -{ - engine_stop(); - return 0; -} - -/** Toggle verbose mode. */ -static int l_verbose(lua_State *L) -{ - kr_log_deprecate(SYSTEM, "use log_level() instead of verbose()\n"); - - if (lua_isboolean(L, 1) || lua_isnumber(L, 1)) { - kr_log_level_set(lua_toboolean(L, 1) == true ? LOG_DEBUG : LOG_DEFAULT_LEVEL); - } - - lua_pushboolean(L, kr_log_level == LOG_DEBUG); - return 1; -} - -static int l_log_level(lua_State *L) -{ - const int params = lua_gettop(L); - if (params > 1) { - goto bad_call; - } else if (params == 1) { // set - const char *lvl_str = lua_tostring(L, 1); - if (!lvl_str) - goto bad_call; - kr_log_level_t lvl = kr_log_name2level(lvl_str); - if (lvl < 0) - lua_error_p(L, "unknown log level '%s'", lvl_str); - kr_log_level_set(lvl); - } - // get - lua_pushstring(L, kr_log_level2name(kr_log_level)); - return 1; -bad_call: - lua_error_p(L, "takes one string parameter or nothing"); -} - -static int l_log_target(lua_State *L) -{ - const int params = lua_gettop(L); - if (params > 1) - goto bad_call; - // set - if (params == 1) { - const char *t_str = lua_tostring(L, 1); - if (!t_str) - goto bad_call; - kr_log_target_t t; - if (strcmp(t_str, "syslog") == 0) { - t = LOG_TARGET_SYSLOG; - } else if (strcmp(t_str, "stdout") == 0) { - t = LOG_TARGET_STDOUT; - } else if (strcmp(t_str, "stderr") == 0) { - t = LOG_TARGET_STDERR; - } else { - lua_error_p(L, "unknown log target '%s'", t_str); - } - kr_log_target_set(t); - } - // get - const char *t_str = NULL; - switch (kr_log_target) { - case LOG_TARGET_SYSLOG: t_str = "syslog"; break; - case LOG_TARGET_STDERR: t_str = "stderr"; break; - case LOG_TARGET_STDOUT: t_str = "stdout"; break; - } // -Wswitch-enum - lua_pushstring(L, t_str); - return 1; -bad_call: - lua_error_p(L, "takes one string parameter or nothing"); -} - -static int l_log_groups(lua_State *L) -{ - const int params = lua_gettop(L); - if (params > 1) - goto bad_call; - if (params == 1) { // set - if (!lua_istable(L, 1)) - goto bad_call; - kr_log_group_reset(); - - lua_pushnil(L); - while (lua_next(L, 1) != 0) { - const char *grp_str = lua_tostring(L, -1); - if (!grp_str) - goto bad_call; - - enum kr_log_group grp = kr_log_name2grp(grp_str); - if (grp >= 0) { - kr_log_group_add(grp); - } else { - kr_log_warning(SYSTEM, "WARNING: unknown log group '%s'\n", lua_tostring(L, -1)); - } - - lua_pop(L, 1); - } - } - // get - lua_newtable(L); - int i = 1; - for (enum kr_log_group grp = LOG_GRP_SYSTEM; grp < LOG_GRP_REQDBG; grp++) { - const char *name = kr_log_grp2name(grp); - if (kr_fails_assert(name)) - continue; - if (kr_log_group_is_set(grp)) { - lua_pushinteger(L, i); - lua_pushstring(L, name); - lua_settable(L, -3); - i++; - } - } - return 1; -bad_call: - lua_error_p(L, "takes a table of string groups as parameter or nothing"); -} - -char *engine_get_hostname(void) { - static char hostname_str[KNOT_DNAME_MAXLEN]; - - if (!the_engine->hostname) { - if (gethostname(hostname_str, sizeof(hostname_str)) != 0) - return NULL; - return hostname_str; - } - return the_engine->hostname; -} - -int engine_set_hostname(const char *hostname) { - if (!hostname) { - return kr_error(EINVAL); - } - - char *new_hostname = strdup(hostname); - if (!new_hostname) { - return kr_error(ENOMEM); - } - if (the_engine->hostname) { - free(the_engine->hostname); - } - the_engine->hostname = new_hostname; - network_new_hostname(); - - return 0; -} - -/** Return hostname. */ -static int l_hostname(lua_State *L) -{ - if (lua_gettop(L) == 0) { - lua_pushstring(L, engine_get_hostname()); - return 1; - } - if ((lua_gettop(L) != 1) || !lua_isstring(L, 1)) - lua_error_p(L, "hostname takes at most one parameter: (\"fqdn\")"); - - if (engine_set_hostname(lua_tostring(L, 1)) != 0) - lua_error_p(L, "setting hostname failed"); - - lua_pushstring(L, engine_get_hostname()); - return 1; -} - -/** Return server package version. */ -static int l_package_version(lua_State *L) -{ - lua_pushliteral(L, PACKAGE_VERSION); - return 1; -} - -/** Load root hints from zonefile. */ -static int l_hint_root_file(lua_State *L) -{ - const char *file = lua_tostring(L, 1); - - const char *err = engine_hint_root_file(file); - if (err) { - if (!file) { - file = ROOTHINTS; - } - lua_error_p(L, "error when opening '%s': %s", file, err); - } else { - lua_pushboolean(L, true); - return 1; - } -} - -/** @internal for engine_hint_root_file */ -static void roothints_add(zs_scanner_t *zs) -{ - struct kr_zonecut *hints = zs->process.data; - if (!hints) { - return; - } - if (zs->r_type == KNOT_RRTYPE_A || zs->r_type == KNOT_RRTYPE_AAAA) { - kr_zonecut_add(hints, zs->r_owner, zs->r_data, zs->r_data_length); - } -} -const char* engine_hint_root_file(const char *file) -{ - if (!file) { - file = ROOTHINTS; - } - if (strlen(file) == 0) { - return "invalid parameters"; - } - struct kr_zonecut *root_hints = &the_resolver->root_hints; - - zs_scanner_t zs; - if (zs_init(&zs, ".", 1, 0) != 0) { - return "not enough memory"; - } - if (zs_set_input_file(&zs, file) != 0) { - zs_deinit(&zs); - return "failed to open root hints file"; - } - - kr_zonecut_set(root_hints, (const uint8_t *)""); - zs_set_processing(&zs, roothints_add, NULL, root_hints); - zs_parse_all(&zs); - zs_deinit(&zs); - return NULL; -} - -/** Unpack JSON object to table */ -static void l_unpack_json(lua_State *L, JsonNode *table) -{ - /* Unpack POD */ - switch(table->tag) { - case JSON_STRING: lua_pushstring(L, table->string_); return; - case JSON_NUMBER: lua_pushnumber(L, table->number_); return; - case JSON_BOOL: lua_pushboolean(L, table->bool_); return; - default: break; - } - /* Unpack object or array into table */ - lua_newtable(L); - JsonNode *node = NULL; - json_foreach(node, table) { - /* Push node value */ - switch(node->tag) { - case JSON_OBJECT: /* as array */ - case JSON_ARRAY: l_unpack_json(L, node); break; - case JSON_STRING: lua_pushstring(L, node->string_); break; - case JSON_NUMBER: lua_pushnumber(L, node->number_); break; - case JSON_BOOL: lua_pushboolean(L, node->bool_); break; - default: continue; - } - /* Set table key */ - if (node->key) { - lua_setfield(L, -2, node->key); - } else { - lua_rawseti(L, -2, lua_objlen(L, -2) + 1); - } - } -} - -/** @internal Recursive Lua/JSON serialization. */ -static JsonNode *l_pack_elem(lua_State *L, int top) -{ - switch(lua_type(L, top)) { - case LUA_TSTRING: return json_mkstring(lua_tostring(L, top)); - case LUA_TNUMBER: return json_mknumber(lua_tonumber(L, top)); - case LUA_TBOOLEAN: return json_mkbool(lua_toboolean(L, top)); - case LUA_TTABLE: break; /* Table, iterate it. */ - default: return json_mknull(); - } - /* Use absolute indexes here, as the table may be nested. */ - JsonNode *node = NULL; - lua_pushnil(L); - while(lua_next(L, top) != 0) { - bool is_array = false; - if (!node) { - is_array = (lua_type(L, top + 1) == LUA_TNUMBER); - node = is_array ? json_mkarray() : json_mkobject(); - if (!node) { - return NULL; - } - } else { - is_array = node->tag == JSON_ARRAY; - } - - /* Insert to array/table. */ - JsonNode *val = l_pack_elem(L, top + 2); - if (is_array) { - json_append_element(node, val); - } else { - const char *key = lua_tostring(L, top + 1); - json_append_member(node, key, val); - } - lua_pop(L, 1); - } - /* Return empty object for empty tables. */ - return node ? node : json_mkobject(); -} - -/** @internal Serialize to string */ -static char *l_pack_json(lua_State *L, int top) -{ - JsonNode *root = l_pack_elem(L, top); - if (!root) { - return NULL; - } - char *result = json_encode(root); - json_delete(root); - return result; -} - -static int l_tojson(lua_State *L) -{ - auto_free char *json_str = l_pack_json(L, lua_gettop(L)); - if (!json_str) { - return 0; - } - lua_pushstring(L, json_str); - return 1; -} - -static int l_fromjson(lua_State *L) -{ - if (lua_gettop(L) != 1 || !lua_isstring(L, 1)) - lua_error_p(L, "a JSON string is required"); - - const char *json_str = lua_tostring(L, 1); - JsonNode *root_node = json_decode(json_str); - - if (!root_node) - lua_error_p(L, "invalid JSON string"); - l_unpack_json(L, root_node); - json_delete(root_node); - - return 1; -} - -/* - * Engine API. - */ - -static int init_state(void) -{ - /* Initialize Lua state */ - the_engine->L = luaL_newstate(); - if (the_engine->L == NULL) { - return kr_error(ENOMEM); - } - /* Initialize used libraries. */ - luaL_openlibs(the_engine->L); - /* Global functions */ - lua_pushcfunction(the_engine->L, l_help); - lua_setglobal(the_engine->L, "help"); - lua_pushcfunction(the_engine->L, l_quit); - lua_setglobal(the_engine->L, "quit"); - lua_pushcfunction(the_engine->L, l_hostname); - lua_setglobal(the_engine->L, "hostname"); - lua_pushcfunction(the_engine->L, l_package_version); - lua_setglobal(the_engine->L, "package_version"); - lua_pushcfunction(the_engine->L, l_verbose); - lua_setglobal(the_engine->L, "verbose"); - lua_pushcfunction(the_engine->L, l_log_level); - lua_setglobal(the_engine->L, "log_level"); - lua_pushcfunction(the_engine->L, l_log_target); - lua_setglobal(the_engine->L, "log_target"); - lua_pushcfunction(the_engine->L, l_log_groups); - lua_setglobal(the_engine->L, "log_groups"); - lua_pushcfunction(the_engine->L, l_setuser); - lua_setglobal(the_engine->L, "user"); - lua_pushcfunction(the_engine->L, l_hint_root_file); - lua_setglobal(the_engine->L, "_hint_root_file"); - lua_pushliteral(the_engine->L, libknot_SONAME); - lua_setglobal(the_engine->L, "libknot_SONAME"); - lua_pushliteral(the_engine->L, libzscanner_SONAME); - lua_setglobal(the_engine->L, "libzscanner_SONAME"); - lua_pushcfunction(the_engine->L, l_tojson); - lua_setglobal(the_engine->L, "tojson"); - lua_pushcfunction(the_engine->L, l_fromjson); - lua_setglobal(the_engine->L, "fromjson"); - /* Random number generator */ - lua_getfield(the_engine->L, LUA_GLOBALSINDEX, "math"); - lua_getfield(the_engine->L, -1, "randomseed"); - lua_remove(the_engine->L, -2); - lua_Number seed = kr_rand_bytes(sizeof(lua_Number)); - lua_pushnumber(the_engine->L, seed); - lua_call(the_engine->L, 1, 0); - return kr_ok(); -} - -/** - * Start luacov measurement and store results to file specified by - * KRESD_COVERAGE_STATS environment variable. - * Do nothing if the variable is not set. - */ -static void init_measurement(void) -{ - const char * const statspath = getenv("KRESD_COVERAGE_STATS"); - if (!statspath) - return; - - char * snippet = NULL; - int ret = asprintf(&snippet, - "_luacov_runner = require('luacov.runner')\n" - "_luacov_runner.init({\n" - " statsfile = '%s',\n" - " exclude = {'test', 'tapered', 'lua/5.1'},\n" - "})\n" - "jit.off()\n", statspath - ); - if (kr_fails_assert(ret > 0)) - return; - - ret = luaL_loadstring(the_engine->L, snippet); - if (kr_fails_assert(ret == 0)) { - free(snippet); - return; - } - lua_call(the_engine->L, 0, 0); - free(snippet); -} - -int init_lua(void) { - /* Use libdir path for including Lua scripts */ - char l_paths[MAXPATHLEN] = { 0 }; - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wformat" /* %1$ is not in C standard */ - /* Save original package.path to package._path */ - snprintf(l_paths, MAXPATHLEN - 1, - "if package._path == nil then package._path = package.path end\n" - "package.path = '%1$s/?.lua;%1$s/?/init.lua;'..package._path\n" - "if package._cpath == nil then package._cpath = package.cpath end\n" - "package.cpath = '%1$s/?%2$s;'..package._cpath\n", - LIBDIR, LIBEXT); - #pragma GCC diagnostic pop - - int ret = l_dobytecode(the_engine->L, l_paths, strlen(l_paths), ""); - if (ret != 0) { - lua_pop(the_engine->L, 1); - return ret; - } - return 0; -} - - -int engine_init(void) -{ - kr_require(!the_engine); - the_engine = &engine; - mm_ctx_mempool(&the_engine->pool, MM_DEFAULT_BLKSIZE); - - /* Initialize state */ - int ret = init_state(); - if (ret != 0) { - engine_deinit(); - return ret; - } - init_measurement(); - - /* Load basic modules */ - engine_register("iterate", NULL, NULL); - engine_register("validate", NULL, NULL); - engine_register("cache", NULL, NULL); - - ret = array_push(the_engine->backends, kr_cdb_lmdb()); - if (ret != 0) { - engine_deinit(); - return ret; - } - - /* Initialize lua */ - ret = init_lua(); - if (ret != 0) { - engine_deinit(); - return ret; - } - - return ret; -} - -/** Unregister a (found) module */ -static void engine_unload(struct kr_module *module) -{ - auto_free char *name = module->name ? strdup(module->name) : NULL; - kr_module_unload(module); /* beware: lua/C mix, could be confusing */ - /* Clear in Lua world, but not for embedded modules ('cache' in particular). */ - if (name && !kr_module_get_embedded(name)) { - lua_pushnil(the_engine->L); - lua_setglobal(the_engine->L, name); - } - free(module); -} - -void engine_deinit(void) -{ - if (kr_fails_assert(the_engine->L)) - return; - /* Only close sockets and services; no need to clean up mempool. */ - - /* Network deinit is split up. We first need to stop listening, - * then we can unload modules during which we still want - * e.g. the endpoint kind registry to work (inside ->net), - * and this registry deinitialization uses the lua state. */ - for (size_t i = 0; i < the_engine->modules.len; ++i) { - engine_unload(the_engine->modules.at[i]); - } - - ffimodule_deinit(the_engine->L); - lua_close(the_engine->L); - - /* Free data structures */ - array_clear(the_engine->modules); - array_clear(the_engine->backends); - free(the_engine->hostname); - mp_delete(the_engine->pool.ctx); - - the_engine = NULL; -} - -int engine_pcall(lua_State *L, int argc) -{ - return lua_pcall(L, argc, LUA_MULTRET, 0); -} - -const char *engine_eval_mode_str(enum engine_eval_mode mode) -{ - switch (mode) { -#define XX(cid) case ENGINE_EVAL_MODE_##cid: return #cid; - ENGINE_EVAL_MODE_MAP(XX) -#undef XX - } - return "(invalid)"; -} - -int engine_cmd(struct lua_State *L, const char *str, enum engine_eval_mode mode) -{ - if (L == NULL) { - return kr_error(ENOEXEC); - } - - /* Evaluate results */ - lua_getglobal(L, "eval_cmd"); - lua_pushstring(L, str); - lua_pushstring(L, engine_eval_mode_str(mode)); - - /* Check result. */ - return engine_pcall(L, 2); -} - -int engine_load_sandbox(void) -{ - /* Init environment */ - int ret = luaL_dofile(the_engine->L, LIBDIR "/sandbox.lua"); - if (ret != 0) { - kr_log_error(SYSTEM, "error %s\n", lua_tostring(the_engine->L, -1)); - lua_pop(the_engine->L, 1); - return kr_error(ENOEXEC); - } - ret = ffimodule_init(the_engine->L); - return ret; -} - -int engine_loadconf(const char *config_path) -{ - if (kr_fails_assert(config_path)) - return kr_error(EINVAL); - - char cwd[PATH_MAX]; - get_workdir(cwd, sizeof(cwd)); - kr_log_debug(SYSTEM, "loading config '%s' (workdir '%s')\n", config_path, cwd); - - int ret = luaL_dofile(the_engine->L, config_path); - if (ret != 0) { - kr_log_error(SYSTEM, "error while loading config: " - "%s (workdir '%s')\n", lua_tostring(the_engine->L, -1), cwd); - lua_pop(the_engine->L, 1); - } - return ret; -} - -int engine_start(void) -{ - /* Clean up stack */ - lua_settop(the_engine->L, 0); - - return kr_ok(); -} - -void engine_stop(void) -{ - uv_stop(uv_default_loop()); -} - -/** @internal Find matching module */ -static size_t module_find(module_array_t *mod_list, const char *name) -{ - size_t found = mod_list->len; - for (size_t i = 0; i < mod_list->len; ++i) { - struct kr_module *mod = mod_list->at[i]; - if (strcmp(mod->name, name) == 0) { - found = i; - break; - } - } - return found; -} - -int engine_register(const char *name, const char *precedence, const char* ref) -{ - if (kr_fails_assert(name)) - return kr_error(EINVAL); - /* Make sure module is unloaded */ - (void) engine_unregister(name); - /* Find the index of referenced module. */ - module_array_t *mod_list = &the_engine->modules; - size_t ref_pos = mod_list->len; - if (precedence && ref) { - ref_pos = module_find(mod_list, ref); - if (ref_pos >= mod_list->len) { - return kr_error(EIDRM); - } - } - /* Attempt to load binary module */ - struct kr_module *module = malloc(sizeof(*module)); - if (!module) { - return kr_error(ENOMEM); - } - module->data = the_engine; /*< some outside modules may still use this value */ - - int ret = kr_module_load(module, name, LIBDIR "/kres_modules"); - if (ret == 0) { - /* We have a C module, loaded and init() was called. - * Now we need to prepare the lua side. */ - lua_State *L = the_engine->L; - lua_getglobal(L, "modules_create_table_for_c"); - lua_pushpointer(L, module); - if (lua_isnil(L, -2)) { - /* When loading the three embedded modules, we don't - * have the "modules_*" lua function yet, but fortunately - * we don't need it there. Let's just check they're embedded. - * TODO: solve this better *without* breaking stuff. */ - lua_pop(L, 2); - if (module->lib != RTLD_DEFAULT) { - ret = kr_error(1); - lua_pushliteral(L, "missing modules_create_table_for_c()"); - } - } else { - ret = engine_pcall(L, 1); - } - if (kr_fails_assert(ret == 0)) { /* probably not critical, but weird */ - kr_log_error(SYSTEM, "internal error when loading C module %s: %s\n", - module->name, lua_tostring(L, -1)); - lua_pop(L, 1); - } - - } else if (ret == kr_error(ENOENT)) { - /* No luck with C module, so try to load and .init() lua module. */ - ret = ffimodule_register_lua(module, name); - if (ret != 0) { - kr_log_error(SYSTEM, "failed to load module '%s'\n", name); - } - - } else if (ret == kr_error(ENOTSUP)) { - /* Print a more helpful message when module is linked against an old resolver ABI. */ - kr_log_error(SYSTEM, "module '%s' links to unsupported ABI, please rebuild it\n", name); - } - - if (ret != 0) { - engine_unload(module); - return ret; - } - - /* Push to the right place in the_engine->modules */ - if (array_push(the_engine->modules, module) < 0) { - engine_unload(module); - return kr_error(ENOMEM); - } - if (precedence) { - struct kr_module **arr = mod_list->at; - size_t emplacement = mod_list->len; - if (strcasecmp(precedence, ">") == 0) { - if (ref_pos + 1 < mod_list->len) - emplacement = ref_pos + 1; /* Insert after target */ - } - if (strcasecmp(precedence, "<") == 0) { - emplacement = ref_pos; /* Insert at target */ - } - /* Move the tail if it has some elements. */ - if (emplacement + 1 < mod_list->len) { - memmove(&arr[emplacement + 1], &arr[emplacement], sizeof(*arr) * (mod_list->len - (emplacement + 1))); - arr[emplacement] = module; - } - } - - return kr_ok(); -} - -int engine_unregister(const char *name) -{ - module_array_t *mod_list = &the_engine->modules; - size_t found = module_find(mod_list, name); - if (found < mod_list->len) { - engine_unload(mod_list->at[found]); - array_del(*mod_list, found); - return kr_ok(); - } - - return kr_error(ENOENT); -} - -module_array_t *engine_modules(void) -{ - return &the_engine->modules; -} diff --git a/daemon/engine.h b/daemon/engine.h deleted file mode 100644 index e25590a83..000000000 --- a/daemon/engine.h +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -/* - * @internal These are forward decls to allow building modules with engine but without Lua. - */ -struct lua_State; - -#include "lib/utils.h" -#include "lib/resolve.h" -#include "daemon/network.h" - -struct engine { - module_array_t modules; - array_t(const struct kr_cdb_api *) backends; - knot_mm_t pool; - char *hostname; - struct lua_State *L; -}; - -/** Pointer to the singleton engine state. NULL if not initialized. */ -KR_EXPORT extern struct engine *the_engine; - -/** Initializes the engine. */ -int engine_init(void); - -/* Deinitializes the engine. `network_unregister` should be called before - * this and before `network_deinit`. */ -void engine_deinit(void); - -#define ENGINE_EVAL_MODE_MAP(XX) \ - XX(LUA_TABLE) \ - XX(RAW) \ - XX(JSON) \ - // - -enum engine_eval_mode { -#define XX(cid) ENGINE_EVAL_MODE_##cid, - ENGINE_EVAL_MODE_MAP(XX) -#undef XX -}; - -const char *engine_eval_mode_str(enum engine_eval_mode mode); - -/** Perform a lua command within the sandbox. - * - * @return zero on success. - * The result will be returned on the lua stack - an error message in case of failure. - * http://www.lua.org/manual/5.1/manual.html#lua_pcall */ -int engine_cmd(struct lua_State *L, const char *str, enum engine_eval_mode mode); - -/** Execute current chunk in the sandbox */ -int engine_pcall(struct lua_State *L, int argc); - -int engine_load_sandbox(void); -int engine_loadconf(const char *config_path); - -/** Start the lua engine and execute the config. */ -int engine_start(void); -void engine_stop(void); -int engine_register(const char *name, const char *precedence, const char* ref); -int engine_unregister(const char *name); -/** Gets the list of the engine's registered modules. */ -module_array_t *engine_modules(void); - -/** Set/get the per engine hostname */ -char *engine_get_hostname(void); -int engine_set_hostname(const char *hostname); - -/** Load root hints from a zonefile (or config-time default if NULL). - * - * @return error message or NULL (statically allocated) - * @note exported to be usable from the hints module. - */ -KR_EXPORT -const char* engine_hint_root_file(const char *file); - -/* @internal Array of ip address shorthand. */ -typedef array_t(char*) addr_array_t; - -typedef array_t(const char*) config_array_t; - -typedef struct { - int fd; - endpoint_flags_t flags; /**< .sock_type isn't meaningful here */ -} flagged_fd_t; -typedef array_t(flagged_fd_t) flagged_fd_array_t; - -struct args { - addr_array_t addrs, addrs_tls; - flagged_fd_array_t fds; - int control_fd; - int forks; - config_array_t config; - const char *rundir; - bool interactive; - bool quiet; - bool tty_binary_output; -}; - -/** Pointer to kresd arguments. */ -KR_EXPORT extern struct args *the_args; diff --git a/daemon/ffimodule.c b/daemon/ffimodule.c deleted file mode 100644 index bd3a7f14d..000000000 --- a/daemon/ffimodule.c +++ /dev/null @@ -1,304 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include -#include -#include - -#include "daemon/bindings/impl.h" -#include "daemon/engine.h" -#include "daemon/ffimodule.h" -#include "daemon/worker.h" -#include "lib/module.h" -#include "lib/layer.h" - -/** @internal Slots for layer callbacks. - * Each slot ID corresponds to Lua reference in module API. */ -enum { - SLOT_begin = 0, - SLOT_reset, - SLOT_finish, - SLOT_consume, - SLOT_produce, - SLOT_checkout, - SLOT_answer_finalize, - SLOT_count /* dummy, must be the last */ -}; - -/** Lua registry indices for functions that wrap layer callbacks (shared by all lua modules). */ -static int l_ffi_wrap_slots[SLOT_count] = { 0 }; - -/** @internal Continue with coroutine. */ -static void l_ffi_resume_cb(uv_idle_t *check) -{ - lua_State *L = check->data; - int status = lua_resume(L, 0); - if (status != LUA_YIELD) { - uv_idle_stop(check); /* Stop coroutine */ - uv_close((uv_handle_t *)check, (uv_close_cb)free); - } - lua_pop(L, lua_gettop(L)); -} - -/** @internal Schedule deferred continuation. */ -static int l_ffi_defer(lua_State *L) -{ - uv_idle_t *check = malloc(sizeof(*check)); - if (!check) { - return kr_error(ENOMEM); - } - uv_idle_init(uv_default_loop(), check); - check->data = L; - return uv_idle_start(check, l_ffi_resume_cb); -} - -/** Common part of calling modname.(de)init in lua. - * The function to call should be on top of the stack and it gets popped. */ -static int l_ffi_modcb(lua_State *L, struct kr_module *module) -{ - if (lua_isnil(L, -1)) { - lua_pop(L, 1); /* .(de)init == nil, maybe even the module table doesn't exist */ - return kr_ok(); - } - lua_getglobal(L, "modules_ffi_wrap_modcb"); - lua_insert(L, -2); /* swap with .(de)init */ - lua_pushpointer(L, module); - if (lua_pcall(L, 2, 0, 0) == 0) - return kr_ok(); - kr_log_error(SYSTEM, "error: %s\n", lua_tostring(L, -1)); - lua_pop(L, 1); - return kr_error(1); -} - -static int l_ffi_deinit(struct kr_module *module) -{ - /* Call .deinit(), if it exists. */ - lua_State *L = the_engine->L; - lua_getglobal(L, module->name); - lua_getfield(L, -1, "deinit"); - const int ret = l_ffi_modcb(L, module); - lua_pop(L, 1); /* the module's table */ - - const kr_layer_api_t *api = module->layer; - if (!api) { - return ret; - } - /* Unregister layer callback references from registry. */ - for (int si = 0; si < SLOT_count; ++si) { - if (api->cb_slots[si] > 0) { - luaL_unref(L, LUA_REGISTRYINDEX, api->cb_slots[si]); - } - } - free_const(api); - return ret; -} - -kr_layer_t kr_layer_t_static; - -/** @internal Helper for calling a layer Lua function by e.g. SLOT_begin. */ -static int l_ffi_call_layer(kr_layer_t *ctx, int slot_ix) -{ - const int wrap_slot = l_ffi_wrap_slots[slot_ix]; - const int cb_slot = ctx->api->cb_slots[slot_ix]; - kr_require(wrap_slot > 0 && cb_slot > 0); - lua_State *L = the_engine->L; - lua_rawgeti(L, LUA_REGISTRYINDEX, wrap_slot); - lua_rawgeti(L, LUA_REGISTRYINDEX, cb_slot); - /* We pass the content of *ctx via a global structure to avoid - * lua (full) userdata, as that's relatively expensive (GC-allocated). - * Performance: copying isn't ideal, but it's not visible in profiles. */ - memcpy(&kr_layer_t_static, ctx, sizeof(*ctx)); - - int ret = lua_pcall(L, 1, 1, 0); - /* Handle result of the pcall. - * Default state: ctx->req->state seems safer than ctx->state, - * in case the pcall touched req->state. */ - int state = ctx->req->state; - if (ret) { /* Exception or another lua problem. */ - state = KR_STATE_FAIL; - kr_log_error(SYSTEM, "error: %s\n", lua_tostring(L, -1)); - - } else if (lua_isnumber(L, -1)) { /* Explicitly returned state. */ - state = lua_tointeger(L, -1); - if (!kr_state_consistent(state)) { - kr_log_error(SYSTEM, "error: nonsense state returned from lua module layer: %d\n", - state); - state = KR_STATE_FAIL; - } - - } else if (lua_isnil(L, -1)) { /* Don't change state. */ - - } else if (kr_fails_assert(!lua_isthread(L, -1))) { /* Continuations */ - /* TODO: unused, possibly in a bad shape. Meant KR_STATE_YIELD? */ - if (l_ffi_defer(lua_tothread(L, -1)) != 0) - state = KR_STATE_FAIL; - - } else { /* Nonsense returned. */ - state = KR_STATE_FAIL; - kr_log_error(SYSTEM, "error: nonsense returned from lua module layer: %s\n", - lua_tostring(L, -1)); - /* Unfortunately we can't easily get name of the module/function here. */ - } - lua_pop(L, 1); - return state; -} - -static int l_ffi_layer_begin(kr_layer_t *ctx) -{ - return l_ffi_call_layer(ctx, SLOT_begin); -} - -static int l_ffi_layer_reset(kr_layer_t *ctx) -{ - return l_ffi_call_layer(ctx, SLOT_reset); -} - -static int l_ffi_layer_finish(kr_layer_t *ctx) -{ - ctx->pkt = ctx->req->answer; - return l_ffi_call_layer(ctx, SLOT_finish); -} - -static int l_ffi_layer_consume(kr_layer_t *ctx, knot_pkt_t *pkt) -{ - if (ctx->state & KR_STATE_FAIL) { - return ctx->state; /* Already failed, skip */ - } - ctx->pkt = pkt; - return l_ffi_call_layer(ctx, SLOT_consume); -} - -static int l_ffi_layer_produce(kr_layer_t *ctx, knot_pkt_t *pkt) -{ - if (ctx->state & KR_STATE_FAIL) { - return ctx->state; /* Already failed, skip */ - } - ctx->pkt = pkt; - return l_ffi_call_layer(ctx, SLOT_produce); -} - -static int l_ffi_layer_checkout(kr_layer_t *ctx, knot_pkt_t *pkt, - struct sockaddr *dst, int type) -{ - if (ctx->state & KR_STATE_FAIL) { - return ctx->state; /* Already failed, skip */ - } - ctx->pkt = pkt; - ctx->dst = dst; - ctx->is_stream = (type == SOCK_STREAM); - return l_ffi_call_layer(ctx, SLOT_checkout); -} - -static int l_ffi_layer_answer_finalize(kr_layer_t *ctx) -{ - return l_ffi_call_layer(ctx, SLOT_answer_finalize); -} - -int ffimodule_init(lua_State *L) -{ - /* Wrappers defined in ./lua/sandbox.lua */ - /* for API: (int state, kr_request_t *req) */ - lua_getglobal(L, "modules_ffi_layer_wrap1"); - const int wrap1 = luaL_ref(L, LUA_REGISTRYINDEX); - /* for API: (int state, kr_request_t *req, knot_pkt_t *) */ - lua_getglobal(L, "modules_ffi_layer_wrap2"); - const int wrap2 = luaL_ref(L, LUA_REGISTRYINDEX); - lua_getglobal(L, "modules_ffi_layer_wrap_checkout"); - const int wrap_checkout = luaL_ref(L, LUA_REGISTRYINDEX); - if (wrap1 == LUA_REFNIL || wrap2 == LUA_REFNIL || wrap_checkout == LUA_REFNIL) { - return kr_error(ENOENT); - } - - const int slots[SLOT_count] = { - [SLOT_begin] = wrap1, - [SLOT_reset] = wrap1, - [SLOT_finish] = wrap2, - [SLOT_consume] = wrap2, - [SLOT_produce] = wrap2, - [SLOT_checkout] = wrap_checkout, - [SLOT_answer_finalize] = wrap1, - }; - memcpy(l_ffi_wrap_slots, slots, sizeof(l_ffi_wrap_slots)); - return kr_ok(); -} -void ffimodule_deinit(lua_State *L) -{ - /* Unref each wrapper function from lua. - * It's probably useless, as we're about to destroy lua_State, but... */ - const int wrapsIndices[] = { - SLOT_begin, - SLOT_consume, - SLOT_checkout, - }; - for (int i = 0; i < sizeof(wrapsIndices) / sizeof(wrapsIndices[0]); ++i) { - luaL_unref(L, LUA_REGISTRYINDEX, l_ffi_wrap_slots[wrapsIndices[i]]); - } -} - -/** @internal Conditionally register layer trampoline - * @warning Expects 'module.layer' to be on top of Lua stack. */ -#define LAYER_REGISTER(L, api, name) do { \ - int *cb_slot = (api)->cb_slots + SLOT_ ## name; \ - lua_getfield((L), -1, #name); \ - if (!lua_isnil((L), -1)) { \ - (api)->name = l_ffi_layer_ ## name; \ - *cb_slot = luaL_ref((L), LUA_REGISTRYINDEX); \ - } else { \ - lua_pop((L), 1); \ - } \ -} while(0) - -/** @internal Create C layer api wrapper. */ -static kr_layer_api_t *l_ffi_layer_create(lua_State *L, struct kr_module *module) -{ - /* Fabricate layer API wrapping the Lua functions - * reserve slots after it for references to Lua callbacks. */ - const size_t api_length = offsetof(kr_layer_api_t, cb_slots) - + (SLOT_count * sizeof(module->layer->cb_slots[0])); - kr_layer_api_t *api = calloc(1, api_length); - if (api) { - LAYER_REGISTER(L, api, begin); - LAYER_REGISTER(L, api, finish); - LAYER_REGISTER(L, api, consume); - LAYER_REGISTER(L, api, produce); - LAYER_REGISTER(L, api, checkout); - LAYER_REGISTER(L, api, answer_finalize); - LAYER_REGISTER(L, api, reset); - } - return api; -} - -#undef LAYER_REGISTER - -int ffimodule_register_lua(struct kr_module *module, const char *name) -{ - /* Register module in Lua */ - lua_State *L = the_engine->L; - lua_getglobal(L, "require"); - lua_pushfstring(L, "kres_modules.%s", name); - if (lua_pcall(L, 1, LUA_MULTRET, 0) != 0) { - kr_log_error(SYSTEM, "error: %s\n", lua_tostring(L, -1)); - lua_pop(L, 1); - return kr_error(ENOENT); - } - lua_setglobal(L, name); - lua_getglobal(L, name); - - /* Create FFI module with trampolined functions. */ - memset(module, 0, sizeof(*module)); - module->name = strdup(name); - module->deinit = &l_ffi_deinit; - /* Bake layer API if defined in module */ - lua_getfield(L, -1, "layer"); - if (!lua_isnil(L, -1)) { - module->layer = l_ffi_layer_create(L, module); - } - lua_pop(L, 1); /* .layer table */ - - /* Now call .init(), if it exists. */ - lua_getfield(L, -1, "init"); - const int ret = l_ffi_modcb(L, module); - lua_pop(L, 1); /* the module's table */ - return ret; -} diff --git a/daemon/ffimodule.h b/daemon/ffimodule.h deleted file mode 100644 index 9a2976b2e..000000000 --- a/daemon/ffimodule.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include "lib/defines.h" -#include "lib/layer.h" -#include -struct engine; -struct kr_module; - -/** - * Register Lua module as a FFI module. - * This fabricates a standard module interface, - * that trampolines to the Lua module methods. - * - * @note Lua module is loaded in it's own coroutine, - * so it's possible to yield and resume at arbitrary - * places except deinit() - * - * @param engine daemon engine - * @param module prepared module - * @param name module name - * @return 0 or an error - */ -int ffimodule_register_lua(struct kr_module *module, const char *name); - -int ffimodule_init(lua_State *L); -void ffimodule_deinit(lua_State *L); - -/** Static storage for faster passing of layer function parameters to lua callbacks. - * - * We don't need to declare it in a header, but let's give it visibility. */ -KR_EXPORT extern kr_layer_t kr_layer_t_static; - diff --git a/daemon/http.c b/daemon/http.c deleted file mode 100644 index 7d1f0899c..000000000 --- a/daemon/http.c +++ /dev/null @@ -1,1045 +0,0 @@ -/* - * Copyright (C) CZ.NIC, z.s.p.o - * - * Initial Author: Jan Hák - * - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include - -#include "contrib/base64url.h" -#include "contrib/cleanup.h" -#include "daemon/session2.h" -#include "daemon/worker.h" - -#include "daemon/http.h" - -/** Makes a `nghttp2_nv`. `K` is the key, `KS` is the key length, - * `V` is the value, `VS` is the value length. */ -#define MAKE_NV(K, KS, V, VS) \ - (nghttp2_nv) { (uint8_t *)(K), (uint8_t *)(V), (KS), (VS), NGHTTP2_NV_FLAG_NONE } - -/** Makes a `nghttp2_nv` with static data. `K` is the key, - * `V` is the value. Both `K` and `V` MUST be string literals. */ -#define MAKE_STATIC_NV(K, V) \ - MAKE_NV((K), sizeof(K) - 1, (V), sizeof(V) - 1) - -/** Makes a `nghttp2_nv` with a static key. `K` is the key, - * `V` is the value, `VS` is the value length. `K` MUST be a string literal. */ -#define MAKE_STATIC_KEY_NV(K, V, VS) \ - MAKE_NV((K), sizeof(K) - 1, (V), (VS)) - -/* Use same maximum as for tcp_pipeline_max. */ -#define HTTP_MAX_CONCURRENT_STREAMS UINT16_MAX - -#define HTTP_MAX_HEADER_IN_SIZE 1024 - -/* Initial max frame size: https://tools.ietf.org/html/rfc7540#section-6.5.2 */ -#define HTTP_MAX_FRAME_SIZE 16384 - -#define HTTP_FRAME_HDLEN 9 -#define HTTP_FRAME_PADLEN 1 - -struct http_stream { - int32_t id; - kr_http_header_array_t *headers; -}; - -typedef queue_t(struct http_stream) queue_http_stream; -typedef array_t(nghttp2_nv) nghttp2_array_t; - -enum http_method { - HTTP_METHOD_NONE = 0, - HTTP_METHOD_GET = 1, - HTTP_METHOD_POST = 2, - HTTP_METHOD_HEAD = 3, /**< Same as GET, except it does not return payload. - * Required to be implemented by RFC 7231. */ -}; - -/** HTTP status codes returned by kresd. - * This is obviously non-exhaustive of all HTTP status codes, feel free to add - * more if needed. */ -enum http_status { - HTTP_STATUS_OK = 200, - HTTP_STATUS_BAD_REQUEST = 400, - HTTP_STATUS_NOT_FOUND = 404, - HTTP_STATUS_PAYLOAD_TOO_LARGE = 413, - HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE = 415, - HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE = 431, - HTTP_STATUS_NOT_IMPLEMENTED = 501, -}; - -struct pl_http_sess_data { - struct protolayer_data h; - struct nghttp2_session *h2; - - queue_http_stream streams; /* Streams present in the wire buffer. */ - trie_t *stream_write_queues; /* Dictionary of stream data that needs to be freed after write. */ - int32_t incomplete_stream; - int32_t last_stream; /* The last used stream - mostly the same as incomplete_stream, but can be used after - completion for sending HTTP status codes. */ - enum http_method current_method; - char *uri_path; - kr_http_header_array_t *headers; - enum http_status status; - struct wire_buf wire_buf; -}; - -struct http_send_ctx { - struct pl_http_sess_data *sess_data; - uint8_t data[]; -}; - - -/** Checks if `status` has the correct `category`. - * E.g. status 200 has category 2, status 404 has category 4, 501 has category 5 etc. */ -static inline bool http_status_has_category(enum http_status status, int category) -{ - return status / 100 == category; -} - -/* - * Sets the HTTP status of the specified `context`, but only if its status has - * not already been changed to an unsuccessful one. - */ -static inline void set_status(struct pl_http_sess_data *ctx, enum http_status status) -{ - if (http_status_has_category(ctx->status, 2)) - ctx->status = status; -} - -/* - * Check endpoint and uri path - */ -static int check_uri(const char* path) -{ - static const char *endpoints[] = {"dns-query", "doh"}; - ssize_t endpoint_len; - ssize_t ret; - - if (!path) - return kr_error(EINVAL); - - char *query_mark = strstr(path, "?"); - - /* calculating of endpoint_len - for POST or GET method */ - endpoint_len = (query_mark) ? query_mark - path - 1 : strlen(path) - 1; - - /* check endpoint */ - ret = -1; - for(int i = 0; i < sizeof(endpoints)/sizeof(*endpoints); i++) - { - if (strlen(endpoints[i]) != endpoint_len) - continue; - ret = strncmp(path + 1, endpoints[i], strlen(endpoints[i])); - if (!ret) - break; - } - - return (ret) ? kr_error(ENOENT) : kr_ok(); -} - -static kr_http_header_array_t *headers_dup(kr_http_header_array_t *src) -{ - kr_http_header_array_t *dst = malloc(sizeof(kr_http_header_array_t)); - kr_require(dst); - array_init(*dst); - for (size_t i = 0; i < src->len; i++) { - struct kr_http_header_array_entry *src_entry = &src->at[i]; - struct kr_http_header_array_entry dst_entry = { - .name = strdup(src_entry->name), - .value = strdup(src_entry->value) - }; - array_push(*dst, dst_entry); - } - - return dst; -} - -/* - * Process a query from URI path if there's base64url encoded dns variable. - */ -static int process_uri_path(struct pl_http_sess_data *ctx, const char* path, int32_t stream_id) -{ - if (!ctx || !path) - return kr_error(EINVAL); - - static const char key[] = "dns="; - static const char *delim = "&"; - char *beg, *end; - uint8_t *dest; - uint32_t remaining; - - char *query_mark = strstr(path, "?"); - if (!query_mark || strlen(query_mark) == 0) /* no parameters in path */ - return kr_error(EINVAL); - - /* go over key:value pair */ - for (beg = strtok(query_mark + 1, delim); beg != NULL; beg = strtok(NULL, delim)) { - if (!strncmp(beg, key, 4)) /* dns variable in path found */ - break; - } - - if (!beg) /* no dns variable in path */ - return kr_error(EINVAL); - - beg += sizeof(key) - 1; - end = strchr(beg, '&'); - if (end == NULL) - end = beg + strlen(beg); - - struct wire_buf *wb = &ctx->wire_buf; - remaining = wire_buf_free_space_length(wb); - dest = wire_buf_free_space(wb); - - /* Decode dns message from the parameter */ - int ret = kr_base64url_decode((uint8_t*)beg, end - beg, dest, remaining); - if (ret < 0) { - wire_buf_reset(wb); - kr_log_debug(DOH, "[%p] base64url decode failed %s\n", (void *)ctx->h2, kr_strerror(ret)); - return ret; - } - - wire_buf_consume(wb, ret); - - struct http_stream stream = { - .id = stream_id, - .headers = headers_dup(ctx->headers) - }; - queue_push(ctx->streams, stream); - - return kr_ok(); -} - -static void refuse_stream(nghttp2_session *h2, int32_t stream_id) -{ - nghttp2_submit_rst_stream( - h2, NGHTTP2_FLAG_NONE, stream_id, NGHTTP2_REFUSED_STREAM); -} - -void http_free_headers(kr_http_header_array_t *headers) -{ - if (headers == NULL) - return; - - for (int i = 0; i < headers->len; i++) { - free(headers->at[i].name); - free(headers->at[i].value); - } - array_clear(*headers); - free(headers); -} - -/* Return the http ctx into a pristine state in which no stream is being processed. */ -static void http_cleanup_stream(struct pl_http_sess_data *ctx) -{ - ctx->incomplete_stream = -1; - ctx->current_method = HTTP_METHOD_NONE; - ctx->status = HTTP_STATUS_OK; - free(ctx->uri_path); - ctx->uri_path = NULL; - http_free_headers(ctx->headers); - ctx->headers = NULL; -} - -/** Convenience function for pushing `nghttp2_nv` made with MAKE_*_NV into - * arrays. */ -static inline void push_nv(nghttp2_array_t *arr, nghttp2_nv nv) -{ - array_push(*arr, nv); -} - -/* - * Send dns response provided by the HTTP/2 data provider. - * - * Data isn't guaranteed to be sent immediately due to underlying HTTP/2 flow control. - */ -static int http_send_response(struct pl_http_sess_data *http, int32_t stream_id, - nghttp2_data_provider *prov, enum http_status status) -{ - nghttp2_session *h2 = http->h2; - int ret; - - nghttp2_array_t hdrs; - array_init(hdrs); - array_reserve(hdrs, 5); - - auto_free char *status_str = NULL; - if (likely(status == HTTP_STATUS_OK)) { - push_nv(&hdrs, MAKE_STATIC_NV(":status", "200")); - } else { - int status_len = asprintf(&status_str, "%d", (int)status); - kr_require(status_len >= 0); - push_nv(&hdrs, MAKE_STATIC_KEY_NV(":status", status_str, status_len)); - } - push_nv(&hdrs, MAKE_STATIC_NV("access-control-allow-origin", "*")); - - struct protolayer_iter_ctx *ctx = NULL; - auto_free char *size = NULL; - auto_free char *max_age = NULL; - - if (http->current_method == HTTP_METHOD_HEAD && prov) { - /* HEAD method is the same as GET but only returns headers, - * so let's clean up the data here as we don't need it. */ - protolayer_break(prov->source.ptr, kr_ok()); - prov = NULL; - } - - if (prov) { - ctx = prov->source.ptr; - const char *directive_max_age = "max-age="; - int max_age_len; - int size_len; - - size_len = asprintf(&size, "%zu", protolayer_payload_size(&ctx->payload)); - kr_require(size_len >= 0); - - max_age_len = asprintf(&max_age, "%s%" PRIu32, directive_max_age, ctx->payload.ttl); - kr_require(max_age_len >= 0); - - /* TODO: add a per-protolayer_grp option for content-type if we - * need to support protocols other than DNS here */ - push_nv(&hdrs, MAKE_STATIC_NV("content-type", "application/dns-message")); - push_nv(&hdrs, MAKE_STATIC_KEY_NV("content-length", size, size_len)); - push_nv(&hdrs, MAKE_STATIC_KEY_NV("cache-control", max_age, max_age_len)); - } - - ret = nghttp2_submit_response(h2, stream_id, hdrs.at, hdrs.len, prov); - array_clear(hdrs); - if (ret != 0) { - kr_log_debug(DOH, "[%p] nghttp2_submit_response failed: %s\n", (void *)h2, nghttp2_strerror(ret)); - if (ctx) - protolayer_break(ctx, kr_error(EIO)); - return kr_error(EIO); - } - - /* Keep reference to data, since we need to free it later on. - * Due to HTTP/2 flow control, this stream data may be sent at a later point, or not at all. - */ - if (ctx) { - protolayer_iter_ctx_queue_t **ctx_queue = - (protolayer_iter_ctx_queue_t **)trie_get_ins( - http->stream_write_queues, - (char *)&stream_id, sizeof(stream_id)); - - if (kr_fails_assert(ctx_queue)) { - kr_log_debug(DOH, "[%p] failed to insert to stream_write_data\n", (void *)h2); - if (ctx) - protolayer_break(ctx, kr_error(EIO)); - return kr_error(EIO); - } - - if (!*ctx_queue) { - *ctx_queue = malloc(sizeof(**ctx_queue)); - kr_require(*ctx_queue); - queue_init(**ctx_queue); - } - - queue_push(**ctx_queue, ctx); - } - - ret = nghttp2_session_send(h2); - if(ret) { - kr_log_debug(DOH, "[%p] nghttp2_session_send failed: %s\n", (void *)h2, nghttp2_strerror(ret)); - - /* At this point, there was an error in some nghttp2 callback. The protolayer_break() - * function which also calls free(ctx) may or may not have been called. Therefore, - * we must guarantee it will have been called by explicitly closing the stream. */ - nghttp2_submit_rst_stream(h2, NGHTTP2_FLAG_NONE, stream_id, NGHTTP2_INTERNAL_ERROR); - return kr_error(EIO); - } - - return 0; -} - -/* - * Same as `http_send_response`, but resets the HTTP stream afterwards. Used - * for sending negative status messages. - */ -static int http_send_response_rst_stream(struct pl_http_sess_data *ctx, int32_t stream_id, - nghttp2_data_provider *prov, enum http_status status) -{ - int ret = http_send_response(ctx, stream_id, prov, status); - if (ret) - return ret; - - ctx->last_stream = -1; - nghttp2_submit_rst_stream(ctx->h2, NGHTTP2_FLAG_NONE, stream_id, NGHTTP2_NO_ERROR); - ret = nghttp2_session_send(ctx->h2); - return ret; -} - -static void callback_finished_free_baton(int status, struct session2 *session, - const struct comm_info *comm, void *baton) -{ - free(baton); -} - -/* - * Write HTTP/2 protocol data to underlying transport layer. - */ -static ssize_t send_callback(nghttp2_session *h2, const uint8_t *data, size_t length, - int flags, void *user_data) -{ - struct pl_http_sess_data *http = user_data; - struct http_send_ctx *send_ctx = malloc(sizeof(*send_ctx) + length); - kr_require(send_ctx); - send_ctx->sess_data = http; - memcpy(send_ctx->data, data, length); - - kr_log_debug(DOH, "[%p] send_callback: %p\n", (void *)h2, (void *)send_ctx->data); - session2_wrap_after(http->h.session, PROTOLAYER_PROTOCOL_HTTP, - protolayer_buffer(send_ctx->data, length, false), NULL, - callback_finished_free_baton, send_ctx); - - return length; -} - -struct http_send_data_ctx { - uint8_t padlen; - struct iovec iov[]; -}; - -static int send_data_callback(nghttp2_session *h2, nghttp2_frame *frame, const uint8_t *framehd, - size_t length, nghttp2_data_source *source, void *user_data) -{ - struct pl_http_sess_data *http = user_data; - - int has_padding = !!(frame->data.padlen); - uint8_t padlen = (frame->data.padlen > 1) ? frame->data.padlen : 2; - - struct protolayer_iter_ctx *ctx = source->ptr; - struct protolayer_payload *pld = &ctx->payload; - - struct iovec bufiov; - struct iovec *dataiov; - int dataiovcnt; - bool adapt_iovs = false; - if (pld->type == PROTOLAYER_PAYLOAD_BUFFER) { - size_t to_copy = MIN(length, pld->buffer.len); - if (!to_copy) - return NGHTTP2_ERR_PAUSE; - - bufiov = (struct iovec){ pld->buffer.buf, to_copy }; - dataiov = &bufiov; - dataiovcnt = 1; - - pld->buffer.buf = (char *)pld->buffer.buf + to_copy; - pld->buffer.len -= to_copy; - } else if (pld->type == PROTOLAYER_PAYLOAD_WIRE_BUF) { - size_t wbl = wire_buf_data_length(pld->wire_buf); - size_t to_copy = MIN(length, wbl); - if (!to_copy) - return NGHTTP2_ERR_PAUSE; - - bufiov = (struct iovec){ - wire_buf_data(pld->wire_buf), - to_copy - }; - dataiov = &bufiov; - dataiovcnt = 1; - - wire_buf_trim(pld->wire_buf, to_copy); - if (wire_buf_data_length(pld->wire_buf) == 0) { - wire_buf_reset(pld->wire_buf); - } - } else if (pld->type == PROTOLAYER_PAYLOAD_IOVEC) { - if (pld->iovec.cnt <= 0) - return NGHTTP2_ERR_PAUSE; - - dataiov = pld->iovec.iov; - dataiovcnt = 0; - size_t avail = 0; - for (int i = 0; i < pld->iovec.cnt && avail < length; i++) { - avail += pld->iovec.iov[i].iov_len; - dataiovcnt += 1; - } - - /* The actual iovec generation needs to be done later when we - * have memory for them. Here, we just count the number of - * needed iovecs. */ - adapt_iovs = true; - } else { - kr_assert(false && "Invalid payload"); - protolayer_break(ctx, kr_error(EINVAL)); - return kr_error(EINVAL); - } - - int iovcnt = 1 + dataiovcnt + (2 * has_padding); - struct http_send_data_ctx *sdctx = calloc(iovcnt, sizeof(*ctx) + sizeof(struct iovec[iovcnt])); - sdctx->padlen = padlen; - - struct iovec *dest_iov = sdctx->iov; - static const uint8_t padding[UINT8_MAX]; - - int cur = 0; - dest_iov[cur++] = (struct iovec){ (void *)framehd, HTTP_FRAME_HDLEN }; - - if (has_padding) - dest_iov[cur++] = (struct iovec){ &sdctx->padlen, HTTP_FRAME_PADLEN }; - - if (adapt_iovs) { - while (pld->iovec.cnt && length > 0) { - struct iovec *iov = pld->iovec.iov; - size_t to_copy = MIN(length, iov->iov_len); - - dest_iov[cur++] = (struct iovec){ - iov->iov_base, to_copy - }; - length -= to_copy; - iov->iov_base = ((char *)iov->iov_base) + to_copy; - iov->iov_len -= to_copy; - - if (iov->iov_len == 0) { - pld->iovec.iov++; - pld->iovec.cnt--; - } - } - } else { - memcpy(&dest_iov[cur], dataiov, sizeof(struct iovec[dataiovcnt])); - cur += dataiovcnt; - } - - if (has_padding) - dest_iov[cur++] = (struct iovec){ (void *)padding, padlen - 1 }; - - kr_assert(cur == iovcnt); - int ret = session2_wrap_after(http->h.session, PROTOLAYER_PROTOCOL_HTTP, - protolayer_iovec(dest_iov, cur, false), - NULL, callback_finished_free_baton, sdctx); - - if (ret < 0) - return ret; - return 0; -} - -/* - * Save stream id from first header's frame. - * - * We don't support interweaving from different streams. To successfully parse - * multiple subsequent streams, each one must be fully received before processing - * a new stream. - */ -static int begin_headers_callback(nghttp2_session *h2, const nghttp2_frame *frame, - void *user_data) -{ - struct pl_http_sess_data *ctx = user_data; - int32_t stream_id = frame->hd.stream_id; - - if (frame->hd.type != NGHTTP2_HEADERS || - frame->headers.cat != NGHTTP2_HCAT_REQUEST) { - return 0; - } - - if (ctx->incomplete_stream != -1) { - kr_log_debug(DOH, "[%p] stream %d incomplete, refusing (begin_headers_callback)\n", - (void *)h2, ctx->incomplete_stream); - refuse_stream(h2, stream_id); - } else { - http_cleanup_stream(ctx); // Free any leftover data and ensure pristine state - ctx->incomplete_stream = stream_id; - ctx->last_stream = stream_id; - ctx->headers = malloc(sizeof(kr_http_header_array_t)); - array_init(*ctx->headers); - } - return 0; -} - -/* - * Process a received header name-value pair. - * - * In DoH, GET requests contain the base64url-encoded query in dns variable present in path. - * This variable is parsed from :path pseudoheader. - */ -static int header_callback(nghttp2_session *h2, const nghttp2_frame *frame, - const uint8_t *name, size_t namelen, const uint8_t *value, - size_t valuelen, uint8_t flags, void *user_data) -{ - struct pl_http_sess_data *ctx = user_data; - int32_t stream_id = frame->hd.stream_id; - - if (frame->hd.type != NGHTTP2_HEADERS) - return 0; - - if (ctx->incomplete_stream != stream_id) { - kr_log_debug(DOH, "[%p] stream %d incomplete, refusing (header_callback)\n", - (void *)h2, ctx->incomplete_stream); - refuse_stream(h2, stream_id); - return 0; - } - - /* Store chosen headers to pass them to kr_request. */ - for (int i = 0; i < the_worker->doh_qry_headers.len; i++) { - if (!strcasecmp(the_worker->doh_qry_headers.at[i], (const char *)name)) { - kr_http_header_array_entry_t header; - - /* Limit maximum value size to reduce attack surface. */ - if (valuelen > HTTP_MAX_HEADER_IN_SIZE) { - kr_log_debug(DOH, - "[%p] stream %d: header too large (%zu B), refused\n", - (void *)h2, stream_id, valuelen); - set_status(ctx, HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE); - return 0; - } - - /* Copy the user-provided header name to keep the original case. */ - header.name = malloc(sizeof(*header.name) * (namelen + 1)); - memcpy(header.name, the_worker->doh_qry_headers.at[i], namelen); - header.name[namelen] = '\0'; - - header.value = malloc(sizeof(*header.value) * (valuelen + 1)); - memcpy(header.value, value, valuelen); - header.value[valuelen] = '\0'; - - array_push(*ctx->headers, header); - break; - } - } - - if (!strcasecmp(":path", (const char *)name)) { - int uri_result = check_uri((const char *)value); - if (uri_result == kr_error(ENOENT)) { - set_status(ctx, HTTP_STATUS_NOT_FOUND); - return 0; - } else if (uri_result < 0) { - set_status(ctx, HTTP_STATUS_BAD_REQUEST); - return 0; - } - - kr_assert(ctx->uri_path == NULL); - ctx->uri_path = malloc(sizeof(*ctx->uri_path) * (valuelen + 1)); - if (!ctx->uri_path) - return kr_error(ENOMEM); - memcpy(ctx->uri_path, value, valuelen); - ctx->uri_path[valuelen] = '\0'; - } - - if (!strcasecmp(":method", (const char *)name)) { - if (!strcasecmp("get", (const char *)value)) { - ctx->current_method = HTTP_METHOD_GET; - } else if (!strcasecmp("post", (const char *)value)) { - ctx->current_method = HTTP_METHOD_POST; - } else if (!strcasecmp("head", (const char *)value)) { - ctx->current_method = HTTP_METHOD_HEAD; - } else { - ctx->current_method = HTTP_METHOD_NONE; - set_status(ctx, HTTP_STATUS_NOT_IMPLEMENTED); - return 0; - } - } - - if (!strcasecmp("content-type", (const char *)name)) { - /* TODO: add a per-group option for content-type if we need to - * support protocols other than DNS here */ - if (strcasecmp("application/dns-message", (const char *)value) != 0) { - set_status(ctx, HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE); - return 0; - } - } - - return 0; -} - -/* - * Process DATA chunk sent by the client (by POST method). - * - * We use a single DNS message buffer for the entire connection. Therefore, we - * don't support interweaving DATA chunks from different streams. To successfully - * parse multiple subsequent streams, each one must be fully received before - * processing a new stream. See https://gitlab.nic.cz/knot/knot-resolver/-/issues/619 - */ -static int data_chunk_recv_callback(nghttp2_session *h2, uint8_t flags, int32_t stream_id, - const uint8_t *data, size_t len, void *user_data) -{ - struct pl_http_sess_data *ctx = user_data; - bool is_first = queue_len(ctx->streams) == 0 || queue_tail(ctx->streams).id != ctx->incomplete_stream; - - if (ctx->incomplete_stream != stream_id) { - kr_log_debug(DOH, "[%p] stream %d incomplete, refusing (data_chunk_recv_callback)\n", - (void *)h2, ctx->incomplete_stream); - refuse_stream(h2, stream_id); - ctx->incomplete_stream = -1; - return 0; - } - - struct wire_buf *wb = &ctx->wire_buf; - - ssize_t remaining = wire_buf_free_space_length(wb); - ssize_t required = len; - /* First data chunk of the new stream */ - if (is_first) - required += sizeof(uint16_t); - - if (required > remaining) { - kr_log_error(DOH, "[%p] insufficient space in buffer\n", (void *)h2); - ctx->incomplete_stream = -1; - return NGHTTP2_ERR_CALLBACK_FAILURE; - } - - if (is_first) { - /* queue_push() should be moved: see FIXME in - * submit_to_wirebuffer() */ - struct http_stream stream = { - .id = stream_id, - .headers = headers_dup(ctx->headers) - }; - queue_push(ctx->streams, stream); - } - - memmove(wire_buf_free_space(wb), data, len); - wire_buf_consume(wb, len); - return 0; -} - -static int submit_to_wirebuffer(struct pl_http_sess_data *ctx) -{ - int ret = -1; - - /* Free http_ctx's headers - by now the stream has obtained its own - * copy of the headers which it can operate on. */ - /* FIXME: technically, transferring memory ownership should happen - * along with queue_push(ctx->streams) to avoid confusion of who owns - * what and when. Pushing to queue should be done AFTER we successfully - * finish this function. On error, we'd clean up and not push anything. - * However, queue's content is now also used to detect first DATA frame - * in stream, so it needs to be refactored first. - * - * For now, we assume memory is transferred even on error and the - * headers themselves get cleaned up during http_free() which is - * triggered after the error when session is closed. - * - * EDIT(2022-05-19): The original logic was causing occasional - * double-free conditions once status code support was extended. - * - * Currently, we are copying the headers from ctx instead of transferring - * ownership, which is still a dirty workaround and, ideally, the whole - * logic around header (de)allocation should be reworked to make - * the ownership situation clear. */ - http_free_headers(ctx->headers); - ctx->headers = NULL; - - struct wire_buf *wb = &ctx->wire_buf; - - ssize_t len = wire_buf_data_length(wb) - sizeof(uint16_t); - if (len <= 0 || len > KNOT_WIRE_MAX_PKTSIZE) { - kr_log_debug(DOH, "[%p] invalid dnsmsg size: %zd B\n", (void *)ctx->h2, len); - set_status(ctx, (len <= 0) - ? HTTP_STATUS_BAD_REQUEST - : HTTP_STATUS_PAYLOAD_TOO_LARGE); - ret = 0; - goto cleanup; - } - - ret = 0; - session2_unwrap_after(ctx->h.session, PROTOLAYER_PROTOCOL_HTTP, - protolayer_wire_buf(wb, false), NULL, NULL, NULL); -cleanup: - http_cleanup_stream(ctx); - return ret; -} - -/* - * Finalize existing buffer upon receiving the last frame in the stream. - * - * For GET, this would be HEADERS frame. - * For POST, it is a DATA frame. - * - * Unrelated frames (such as SETTINGS) are ignored (no data was buffered). - */ -static int on_frame_recv_callback(nghttp2_session *h2, const nghttp2_frame *frame, void *user_data) -{ - struct pl_http_sess_data *ctx = user_data; - int32_t stream_id = frame->hd.stream_id; - if(kr_fails_assert(stream_id != -1)) - return NGHTTP2_ERR_CALLBACK_FAILURE; - - if ((frame->hd.flags & NGHTTP2_FLAG_END_STREAM) && ctx->incomplete_stream == stream_id) { - if (ctx->current_method == HTTP_METHOD_GET || ctx->current_method == HTTP_METHOD_HEAD) { - if (process_uri_path(ctx, ctx->uri_path, stream_id) < 0) { - /* End processing - don't submit to wirebuffer. */ - set_status(ctx, HTTP_STATUS_BAD_REQUEST); - return 0; - } - } - - if (!http_status_has_category(ctx->status, 2)) - return 0; - - if (submit_to_wirebuffer(ctx) < 0) - return NGHTTP2_ERR_CALLBACK_FAILURE; - } - - return 0; -} - -/* - * Cleanup for closed streams. - */ -static int on_stream_close_callback(nghttp2_session *h2, int32_t stream_id, - uint32_t error_code, void *user_data) -{ - struct pl_http_sess_data *http = user_data; - int ret; - - /* Ensure connection state is cleaned up in case the stream gets - * unexpectedly closed, e.g. by PROTOCOL_ERROR issued from nghttp2. */ - if (http->incomplete_stream == stream_id) - http_cleanup_stream(http); - - protolayer_iter_ctx_queue_t *queue; - ret = trie_del(http->stream_write_queues, (char *)&stream_id, sizeof(stream_id), (trie_val_t*)&queue); - if (ret == KNOT_EOK && queue) { - uint32_t e = error_code == 0 ? 0 : kr_error(EIO); - while (queue_len(*queue) > 0) { - struct protolayer_iter_ctx *ctx = queue_head(*queue); - protolayer_break(ctx, e); - queue_pop(*queue); - } - queue_deinit(*queue); - free(queue); - } - - return 0; -} - -int http_send_status(struct pl_http_sess_data *ctx, enum http_status status) -{ - if (ctx->last_stream >= 0) - return http_send_response_rst_stream( - ctx, ctx->last_stream, NULL, status); - - return 0; -} - -/* - * Provide data from buffer to HTTP/2 library. - * - * To avoid copying the packet wire buffer, we use NGHTTP2_DATA_FLAG_NO_COPY - * and take care of sending entire DATA frames ourselves with nghttp2_send_data_callback. - * - * See https://www.nghttp2.org/documentation/types.html#c.nghttp2_data_source_read_callback - */ -static ssize_t read_callback(nghttp2_session *h2, int32_t stream_id, uint8_t *buf, - size_t length, uint32_t *data_flags, - nghttp2_data_source *source, void *user_data) -{ - struct protolayer_iter_ctx *ctx = source->ptr; - size_t avail = protolayer_payload_size(&ctx->payload); - size_t send = MIN(avail, length); - - if (avail == send) - *data_flags |= NGHTTP2_DATA_FLAG_EOF; - - *data_flags |= NGHTTP2_DATA_FLAG_NO_COPY; - return send; -} - -static int pl_http_sess_init(struct protolayer_manager *manager, - void *data, void *param) -{ - struct pl_http_sess_data *http = data; - - nghttp2_session_callbacks *callbacks; - static const nghttp2_settings_entry iv[] = { - { NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, HTTP_MAX_CONCURRENT_STREAMS } - }; - - int ret = nghttp2_session_callbacks_new(&callbacks); - if (ret < 0) - return ret; - - nghttp2_session_callbacks_set_send_callback(callbacks, send_callback); - nghttp2_session_callbacks_set_send_data_callback(callbacks, send_data_callback); - nghttp2_session_callbacks_set_on_begin_headers_callback(callbacks, begin_headers_callback); - nghttp2_session_callbacks_set_on_header_callback(callbacks, header_callback); - nghttp2_session_callbacks_set_on_data_chunk_recv_callback( - callbacks, data_chunk_recv_callback); - nghttp2_session_callbacks_set_on_frame_recv_callback( - callbacks, on_frame_recv_callback); - nghttp2_session_callbacks_set_on_stream_close_callback( - callbacks, on_stream_close_callback); - - queue_init(http->streams); - http->stream_write_queues = trie_create(NULL); - http->incomplete_stream = -1; - http->last_stream = -1; - http->current_method = HTTP_METHOD_NONE; - http->uri_path = NULL; - http->status = HTTP_STATUS_OK; - wire_buf_init(&http->wire_buf, manager->wire_buf.size); - - ret = nghttp2_session_server_new(&http->h2, callbacks, http); - if (ret < 0) - goto exit_callbacks; - nghttp2_submit_settings(http->h2, NGHTTP2_FLAG_NONE, iv, ARRAY_SIZE(iv)); - - struct sockaddr *peer = session2_get_peer(manager->session); - kr_log_debug(DOH, "[%p] h2 session created for %s\n", (void *)http->h2, kr_straddr(peer)); - - manager->session->custom_emalf_handling = true; - - ret = kr_ok(); - -exit_callbacks: - nghttp2_session_callbacks_del(callbacks); - return ret; -} - -static int stream_write_data_break_err(trie_val_t *val, void *baton) -{ - protolayer_iter_ctx_queue_t *queue = *val; - if (!queue) - return 0; - - while (queue_len(*queue) > 0) { - struct protolayer_iter_ctx *ctx = queue_head(*queue); - protolayer_break(ctx, kr_error(EIO)); - queue_pop(*queue); - } - queue_deinit(*queue); - free(queue); - return 0; -} - -static int pl_http_sess_deinit(struct protolayer_manager *manager, - void *data) -{ - struct pl_http_sess_data *http = data; - - kr_log_debug(DOH, "[%p] h2 session freed\n", (void *)http->h2); - - while (queue_len(http->streams) > 0) { - struct http_stream *stream = &queue_head(http->streams); - http_free_headers(stream->headers); - queue_pop(http->streams); - } - - trie_apply(http->stream_write_queues, stream_write_data_break_err, NULL); - trie_free(http->stream_write_queues); - - http_cleanup_stream(http); - queue_deinit(http->streams); - wire_buf_deinit(&http->wire_buf); - nghttp2_session_del(http->h2); - - return 0; -} - -static enum protolayer_iter_cb_result pl_http_unwrap( - void *sess_data, void *iter_data, - struct protolayer_iter_ctx *ctx) -{ - struct pl_http_sess_data *http = sess_data; - ssize_t ret = 0; - - if (!http->h2) - return protolayer_break(ctx, kr_error(ENOSYS)); - - struct protolayer_payload pld = ctx->payload; - if (pld.type == PROTOLAYER_PAYLOAD_WIRE_BUF) { - pld = protolayer_as_buffer(&pld); - } - - if (pld.type == PROTOLAYER_PAYLOAD_BUFFER) { - ret = nghttp2_session_mem_recv(http->h2, - pld.buffer.buf, pld.buffer.len); - if (ret < 0) { - kr_log_debug(DOH, "[%p] nghttp2_session_mem_recv failed: %s (%zd)\n", - (void *)http->h2, nghttp2_strerror(ret), ret); - return protolayer_break(ctx, kr_error(EIO)); - } - } else if (pld.type == PROTOLAYER_PAYLOAD_IOVEC) { - for (int i = 0; i < pld.iovec.cnt; i++) { - ret = nghttp2_session_mem_recv(http->h2, - pld.iovec.iov[i].iov_base, - pld.iovec.iov[i].iov_len); - if (ret < 0) { - kr_log_debug(DOH, "[%p] nghttp2_session_mem_recv failed: %s (%zd)\n", - (void *)http->h2, nghttp2_strerror(ret), ret); - return protolayer_break(ctx, kr_error(EIO)); - } - } - } else { - kr_assert(false && "Invalid payload type"); - return protolayer_break(ctx, kr_error(EIO)); - } - - ret = nghttp2_session_send(http->h2); - if (ret < 0) { - kr_log_debug(DOH, "[%p] nghttp2_session_send failed: %s (%zd)\n", - (void *)http->h2, nghttp2_strerror(ret), ret); - return kr_error(EIO); - } - - if (!http_status_has_category(http->status, 2)) { - http_send_status(http, http->status); - http_cleanup_stream(http); - return protolayer_break(ctx, kr_error(EIO)); - } - - return protolayer_break(ctx, kr_ok()); -} - -static enum protolayer_iter_cb_result pl_http_wrap( - void *sess_data, void *iter_data, - struct protolayer_iter_ctx *ctx) -{ - nghttp2_data_provider prov; - - prov.source.ptr = ctx; - prov.read_callback = read_callback; - - struct pl_http_sess_data *http = sess_data; - int32_t stream_id = http->last_stream; - int ret = http_send_response(sess_data, stream_id, &prov, HTTP_STATUS_OK); - if (ret) - return protolayer_break(ctx, ret); - - return protolayer_async(); -} - -static enum protolayer_event_cb_result pl_http_event_unwrap( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data) -{ - struct pl_http_sess_data *http = sess_data; - - if (event == PROTOLAYER_EVENT_MALFORMED) { - http_send_status(http, HTTP_STATUS_BAD_REQUEST); - return PROTOLAYER_EVENT_PROPAGATE; - } - - return PROTOLAYER_EVENT_PROPAGATE; -} - -static void pl_http_request_init(struct protolayer_manager *manager, - struct kr_request *req, - void *sess_data) -{ - struct pl_http_sess_data *http = sess_data; - - req->qsource.comm_flags.http = true; - - struct http_stream *stream = &queue_head(http->streams); - req->qsource.stream_id = stream->id; - if (stream->headers) { - req->qsource.headers = *stream->headers; - free(stream->headers); - stream->headers = NULL; - } -} - -void http_protolayers_init(void) -{ - protolayer_globals[PROTOLAYER_PROTOCOL_HTTP] = (struct protolayer_globals) { - .sess_size = sizeof(struct pl_http_sess_data), - .sess_deinit = pl_http_sess_deinit, - .wire_buf_overhead = HTTP_MAX_FRAME_SIZE, - .sess_init = pl_http_sess_init, - .unwrap = pl_http_unwrap, - .wrap = pl_http_wrap, - .event_unwrap = pl_http_event_unwrap, - .request_init = pl_http_request_init - }; -} diff --git a/daemon/http.h b/daemon/http.h deleted file mode 100644 index cf5eaaca9..000000000 --- a/daemon/http.h +++ /dev/null @@ -1,6 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -/** Initializes the protocol layers managed by http. */ -void http_protolayers_init(void); diff --git a/daemon/io.c b/daemon/io.c deleted file mode 100644 index ea98a7f0e..000000000 --- a/daemon/io.c +++ /dev/null @@ -1,1133 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/io.h" - -#include -#include -#include -#include -#include - -#if ENABLE_XDP - #include - #include - #include -#endif - -#include "daemon/network.h" -#include "daemon/proxyv2.h" -#include "daemon/worker.h" -#include "daemon/tls.h" -#include "daemon/http.h" -#include "daemon/session2.h" -#include "contrib/cleanup.h" -#include "lib/utils.h" - -#define negotiate_bufsize(func, handle, bufsize_want) do { \ - int bufsize = 0; (func)((handle), &bufsize); \ - if (bufsize < (bufsize_want)) { \ - bufsize = (bufsize_want); \ - (func)((handle), &bufsize); \ - } \ -} while (0) - -static void check_bufsize(uv_handle_t* handle) -{ - return; /* TODO: resurrect after https://github.com/libuv/libuv/issues/419 */ - /* We want to buffer at least N waves in advance. - * This is magic presuming we can pull in a whole recvmmsg width in one wave. - * Linux will double this the bufsize wanted. - */ - const int BUF_SIZE = 2 * sizeof(RECVMMSG_BATCH * KNOT_WIRE_MAX_PKTSIZE); - negotiate_bufsize(uv_recv_buffer_size, handle, BUF_SIZE); - negotiate_bufsize(uv_send_buffer_size, handle, BUF_SIZE); -} - -#undef negotiate_bufsize - -static void handle_getbuf(uv_handle_t* handle, size_t suggested_size, uv_buf_t* buf) -{ - struct session2 *s = handle->data; - struct wire_buf *wb = &s->layers->wire_buf; - - buf->base = wire_buf_free_space(wb); - buf->len = wire_buf_free_space_length(wb); -} - -static void udp_on_unwrapped(int status, struct session2 *session, - const struct comm_info *comm, void *baton) -{ - wire_buf_reset(&session->layers->wire_buf); -} - -void udp_recv(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, - const struct sockaddr *comm_addr, unsigned flags) -{ - struct session2 *s = handle->data; - if (s->closing || nread <= 0 || comm_addr->sa_family == AF_UNSPEC) - return; - - if (s->outgoing) { - const struct sockaddr *peer = session2_get_peer(s); - if (kr_fails_assert(peer->sa_family != AF_UNSPEC)) - return; - if (kr_sockaddr_cmp(peer, comm_addr) != 0) { - kr_log_debug(IO, "<= ignoring UDP from unexpected address '%s'\n", - kr_straddr(comm_addr)); - return; - } - } - - // We're aware of no use cases for low source ports, - // and they might be useful for attacks with spoofed source IPs. - if (!s->outgoing && kr_inaddr_port(comm_addr) < 1024) { - kr_log_debug(IO, "<= ignoring UDP from suspicious port: '%s'\n", - kr_straddr(comm_addr)); - return; - } - - int ret = wire_buf_consume(&s->layers->wire_buf, nread); - if (ret) { - wire_buf_reset(&s->layers->wire_buf); - return; - } - - struct comm_info in_comm = { - .comm_addr = comm_addr, - .src_addr = comm_addr - }; - session2_unwrap(s, protolayer_wire_buf(&s->layers->wire_buf, false), - &in_comm, udp_on_unwrapped, NULL); -} - -static int family_to_freebind_option(sa_family_t sa_family, int *level, int *name) -{ -#define LOG_NO_FB kr_log_error(NETWORK, "your system does not support 'freebind', " \ - "please remove it from your configuration\n") - switch (sa_family) { - case AF_INET: - *level = IPPROTO_IP; -#if defined(IP_FREEBIND) - *name = IP_FREEBIND; -#elif defined(IP_BINDANY) - *name = IP_BINDANY; -#else - LOG_NO_FB; - return kr_error(ENOTSUP); -#endif - break; - case AF_INET6: -#if defined(IP_FREEBIND) - *level = IPPROTO_IP; - *name = IP_FREEBIND; -#elif defined(IPV6_BINDANY) - *level = IPPROTO_IPV6; - *name = IPV6_BINDANY; -#else - LOG_NO_FB; - return kr_error(ENOTSUP); -#endif - break; - default: - return kr_error(ENOTSUP); - } - return kr_ok(); -} - - -struct pl_udp_iter_data { - struct protolayer_data h; - struct proxy_result proxy; - bool has_proxy; -}; - -static enum protolayer_iter_cb_result pl_udp_unwrap( - void *sess_data, void *iter_data, struct protolayer_iter_ctx *ctx) -{ - ctx->payload = protolayer_as_buffer(&ctx->payload); - if (kr_fails_assert(ctx->payload.type == PROTOLAYER_PAYLOAD_BUFFER)) { - /* unsupported payload */ - return protolayer_break(ctx, kr_error(EINVAL)); - } - - struct session2 *s = ctx->manager->session; - struct pl_udp_iter_data *udp = iter_data; - - char *data = ctx->payload.buffer.buf; - ssize_t data_len = ctx->payload.buffer.len; - struct comm_info *comm = &ctx->comm; - if (!s->outgoing && proxy_header_present(data, data_len)) { - if (!proxy_allowed(comm->comm_addr)) { - kr_log_debug(IO, "<= ignoring PROXYv2 UDP from disallowed address '%s'\n", - kr_straddr(comm->comm_addr)); - return protolayer_break(ctx, kr_error(EPERM)); - } - - ssize_t trimmed = proxy_process_header(&udp->proxy, data, data_len); - if (trimmed == KNOT_EMALF) { - if (kr_log_is_debug(IO, NULL)) { - kr_log_debug(IO, "<= ignoring malformed PROXYv2 UDP " - "from address '%s'\n", - kr_straddr(comm->comm_addr)); - } - return protolayer_break(ctx, kr_error(EINVAL)); - } else if (trimmed < 0) { - if (kr_log_is_debug(IO, NULL)) { - kr_log_debug(IO, "<= error processing PROXYv2 UDP " - "from address '%s', ignoring\n", - kr_straddr(comm->comm_addr)); - } - return protolayer_break(ctx, kr_error(EINVAL)); - } - - if (udp->proxy.command == PROXY2_CMD_PROXY && udp->proxy.family != AF_UNSPEC) { - udp->has_proxy = true; - - comm->src_addr = &udp->proxy.src_addr.ip; - comm->dst_addr = &udp->proxy.dst_addr.ip; - comm->proxy = &udp->proxy; - - if (kr_log_is_debug(IO, NULL)) { - kr_log_debug(IO, "<= UDP query from '%s'\n", - kr_straddr(comm->src_addr)); - kr_log_debug(IO, "<= proxied through '%s'\n", - kr_straddr(comm->comm_addr)); - } - } - - ctx->payload = protolayer_buffer( - data + trimmed, data_len - trimmed, false); - } - - return protolayer_continue(ctx); -} - -static enum protolayer_event_cb_result pl_udp_event_wrap( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data) -{ - if (event == PROTOLAYER_EVENT_STATS_SEND_ERR) { - the_worker->stats.err_udp += 1; - return PROTOLAYER_EVENT_CONSUME; - } else if (event == PROTOLAYER_EVENT_STATS_QRY_OUT) { - the_worker->stats.udp += 1; - return PROTOLAYER_EVENT_CONSUME; - } - - return PROTOLAYER_EVENT_PROPAGATE; -} - - -struct pl_tcp_sess_data { - struct protolayer_data h; - struct proxy_result proxy; - struct wire_buf wire_buf; - bool had_data : 1; - bool has_proxy : 1; -}; - -static int pl_tcp_sess_init(struct protolayer_manager *manager, - void *data, - void *param) -{ - struct sockaddr *peer = session2_get_peer(manager->session); - manager->session->comm = (struct comm_info) { - .comm_addr = peer, - .src_addr = peer - }; - return 0; -} - -static int pl_tcp_sess_deinit(struct protolayer_manager *manager, void *sess_data) -{ - struct pl_tcp_sess_data *tcp = sess_data; - wire_buf_deinit(&tcp->wire_buf); - return 0; -} - -static enum protolayer_iter_cb_result pl_tcp_unwrap( - void *sess_data, void *iter_data, struct protolayer_iter_ctx *ctx) -{ - struct session2 *s = ctx->manager->session; - struct pl_tcp_sess_data *tcp = sess_data; - struct sockaddr *peer = session2_get_peer(s); - - if (ctx->payload.type == PROTOLAYER_PAYLOAD_BUFFER) { - const char *buf = ctx->payload.buffer.buf; - const size_t len = ctx->payload.buffer.len; - - /* Copy a simple buffer into internal wirebuffer. */ - if (len > KNOT_WIRE_MAX_PKTSIZE) - return protolayer_break(ctx, kr_error(EMSGSIZE)); - - if (!tcp->wire_buf.buf) { - int ret = wire_buf_reserve(&tcp->wire_buf, - KNOT_WIRE_MAX_PKTSIZE); - if (ret) - return protolayer_break(ctx, ret); - } - - /* Try to make space */ - while (len > wire_buf_free_space_length(&tcp->wire_buf)) { - if (wire_buf_data_length(&tcp->wire_buf) > 0 || - tcp->wire_buf.start == 0) - return protolayer_break(ctx, kr_error(EMSGSIZE)); - - wire_buf_movestart(&tcp->wire_buf); - } - - memcpy(wire_buf_free_space(&tcp->wire_buf), buf, len); - wire_buf_consume(&tcp->wire_buf, ctx->payload.buffer.len); - ctx->payload = protolayer_wire_buf(&tcp->wire_buf, false); - } - - if (kr_fails_assert(ctx->payload.type == PROTOLAYER_PAYLOAD_WIRE_BUF)) { - /* TODO: iovec support unimplemented */ - return protolayer_break(ctx, kr_error(EINVAL)); - } - - char *data = wire_buf_data(ctx->payload.wire_buf); /* layer's or session's wirebuf */ - ssize_t data_len = wire_buf_data_length(ctx->payload.wire_buf); - struct comm_info *comm = &ctx->manager->session->comm; - if (!s->outgoing && !tcp->had_data && proxy_header_present(data, data_len)) { - if (!proxy_allowed(comm->src_addr)) { - if (kr_log_is_debug(IO, NULL)) { - kr_log_debug(IO, "<= connection to '%s': PROXYv2 not allowed " - "for this peer, close\n", - kr_straddr(peer)); - } - worker_end_tcp(s); - return protolayer_break(ctx, kr_error(ECONNRESET)); - } - - ssize_t trimmed = proxy_process_header(&tcp->proxy, data, data_len); - if (trimmed < 0) { - if (kr_log_is_debug(IO, NULL)) { - if (trimmed == KNOT_EMALF) { - kr_log_debug(IO, "<= connection to '%s': " - "malformed PROXYv2 header, close\n", - kr_straddr(comm->src_addr)); - } else { - kr_log_debug(IO, "<= connection to '%s': " - "error processing PROXYv2 header, close\n", - kr_straddr(comm->src_addr)); - } - } - worker_end_tcp(s); - return protolayer_break(ctx, kr_error(ECONNRESET)); - } else if (trimmed == 0) { - session2_close(s); - return protolayer_break(ctx, kr_error(ECONNRESET)); - } - - if (tcp->proxy.command != PROXY2_CMD_LOCAL && tcp->proxy.family != AF_UNSPEC) { - comm->src_addr = &tcp->proxy.src_addr.ip; - comm->dst_addr = &tcp->proxy.dst_addr.ip; - - if (kr_log_is_debug(IO, NULL)) { - kr_log_debug(IO, "<= TCP stream from '%s'\n", - kr_straddr(comm->src_addr)); - kr_log_debug(IO, "<= proxied through '%s'\n", - kr_straddr(comm->comm_addr)); - } - } - - wire_buf_trim(ctx->payload.wire_buf, trimmed); - } - - tcp->had_data = true; - ctx->comm = ctx->manager->session->comm; - return protolayer_continue(ctx); -} - -static enum protolayer_event_cb_result pl_tcp_event_wrap( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data) -{ - if (event == PROTOLAYER_EVENT_STATS_SEND_ERR) { - the_worker->stats.err_tcp += 1; - return PROTOLAYER_EVENT_CONSUME; - } else if (event == PROTOLAYER_EVENT_STATS_QRY_OUT) { - the_worker->stats.tcp += 1; - return PROTOLAYER_EVENT_CONSUME; - } - - return PROTOLAYER_EVENT_PROPAGATE; -} - -void io_protolayers_init(void) -{ - protolayer_globals[PROTOLAYER_PROTOCOL_UDP] = (struct protolayer_globals){ - .iter_size = sizeof(struct pl_udp_iter_data), - .unwrap = pl_udp_unwrap, - .event_wrap = pl_udp_event_wrap, - }; - - protolayer_globals[PROTOLAYER_PROTOCOL_TCP] = (struct protolayer_globals){ - .sess_size = sizeof(struct pl_tcp_sess_data), - .sess_init = pl_tcp_sess_init, - .sess_deinit = pl_tcp_sess_deinit, - .unwrap = pl_tcp_unwrap, - .event_wrap = pl_tcp_event_wrap, - }; -} - - -int io_bind(const struct sockaddr *addr, int type, const endpoint_flags_t *flags) -{ - const int fd = socket(addr->sa_family, type, 0); - if (fd < 0) return kr_error(errno); - - int yes = 1; - if (addr->sa_family == AF_INET || addr->sa_family == AF_INET6) { - if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes))) { - close(fd); - return kr_error(errno); - } - -#ifdef SO_REUSEPORT_LB - if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT_LB, &yes, sizeof(yes))) { - close(fd); - return kr_error(errno); - } -#elif defined(SO_REUSEPORT) && defined(__linux__) /* different meaning on (Free)BSD */ - if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes))) { - close(fd); - return kr_error(errno); - } -#endif - -#ifdef IPV6_V6ONLY - if (addr->sa_family == AF_INET6 - && setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &yes, sizeof(yes))) { - close(fd); - return kr_error(errno); - } -#endif - if (flags != NULL && flags->freebind) { - int optlevel; - int optname; - int ret = family_to_freebind_option(addr->sa_family, &optlevel, &optname); - if (ret) { - close(fd); - return kr_error(ret); - } - if (setsockopt(fd, optlevel, optname, &yes, sizeof(yes))) { - close(fd); - return kr_error(errno); - } - } - - /* Linux 3.15 has IP_PMTUDISC_OMIT which makes sockets - * ignore PMTU information and send packets with DF=0. - * This mitigates DNS fragmentation attacks by preventing - * forged PMTU information. FreeBSD already has same semantics - * without setting the option. - https://gitlab.nic.cz/knot/knot-dns/-/issues/640 - */ -#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_OMIT) - int omit = IP_PMTUDISC_OMIT; - if (type == SOCK_DGRAM && addr->sa_family == AF_INET - && setsockopt(fd, IPPROTO_IP, IP_MTU_DISCOVER, &omit, sizeof(omit))) { - kr_log_error(IO, - "failed to disable Path MTU discovery for %s UDP: %s\n", - kr_straddr(addr), strerror(errno)); - } -#endif - } - - if (bind(fd, addr, kr_sockaddr_len(addr))) { - close(fd); - return kr_error(errno); - } - - return fd; -} - -int io_listen_udp(uv_loop_t *loop, uv_udp_t *handle, int fd) -{ - if (!handle) { - return kr_error(EINVAL); - } - int ret = uv_udp_init(loop, handle); - if (ret) return ret; - - ret = uv_udp_open(handle, fd); - if (ret) return ret; - - uv_handle_t *h = (uv_handle_t *)handle; - check_bufsize(h); - /* Handle is already created, just create context. */ - struct session2 *s = session2_new_io(h, PROTOLAYER_GRP_DOUDP, NULL, 0, false); - kr_require(s); - - int socklen = sizeof(union kr_sockaddr); - ret = uv_udp_getsockname(handle, &s->transport.io.sockname.ip, &socklen); - if (ret) { - kr_log_error(IO, "ERROR: getsockname failed: %s\n", uv_strerror(ret)); - abort(); /* It might be nontrivial not to leak something here. */ - } - - return io_start_read(h); -} - - -static void tcp_recv(uv_stream_t *handle, ssize_t nread, const uv_buf_t *buf) -{ - struct session2 *s = handle->data; - if (kr_fails_assert(s && session2_get_handle(s) == (uv_handle_t *)handle && handle->type == UV_TCP)) - return; - - if (s->closing) { - return; - } - - /* nread might be 0, which does not indicate an error or EOF. - * This is equivalent to EAGAIN or EWOULDBLOCK under read(2). */ - if (nread == 0) { - return; - } - - if (nread < 0 || !buf->base) { - if (kr_log_is_debug(IO, NULL)) { - struct sockaddr *peer = session2_get_peer(s); - char *peer_str = kr_straddr(peer); - kr_log_debug(IO, "=> connection to '%s' closed by peer (%s)\n", - peer_str ? peer_str : "", - uv_strerror(nread)); - } - session2_penalize(s); - worker_end_tcp(s); - return; - } - - if (kr_fails_assert(buf->base == wire_buf_free_space(&s->layers->wire_buf))) { - return; - } - - int ret = wire_buf_consume(&s->layers->wire_buf, nread); - if (ret) { - wire_buf_reset(&s->layers->wire_buf); - return; - } - - session2_unwrap(s, protolayer_wire_buf(&s->layers->wire_buf, false), - NULL, NULL, NULL); -} - -static void _tcp_accept(uv_stream_t *master, int status, enum protolayer_grp grp) -{ - if (status != 0) { - return; - } - - struct session2 *s; - int res = io_create(master->loop, &s, SOCK_STREAM, AF_UNSPEC, grp, - NULL, 0, false); - if (res) { - if (res == UV_EMFILE) { - the_worker->too_many_open = true; - the_worker->rconcurrent_highwatermark = the_worker->stats.rconcurrent; - } - /* Since res isn't OK struct session wasn't allocated \ borrowed. - * We must release client handle only. - */ - return; - } - - kr_require(s->outgoing == false); - - uv_tcp_t *client = (uv_tcp_t *)session2_get_handle(s); - if (uv_accept(master, (uv_stream_t *)client) != 0) { - /* close session, close underlying uv handles and - * deallocate (or return to memory pool) memory. */ - session2_close(s); - return; - } - - /* Get peer's and our address. We apparently get specific sockname here - * even if we listened on a wildcard address. */ - struct sockaddr *sa = session2_get_peer(s); - int sa_len = sizeof(struct sockaddr_in6); - int ret = uv_tcp_getpeername(client, sa, &sa_len); - if (ret || sa->sa_family == AF_UNSPEC) { - session2_close(s); - return; - } - sa = session2_get_sockname(s); - sa_len = sizeof(struct sockaddr_in6); - ret = uv_tcp_getsockname(client, sa, &sa_len); - if (ret || sa->sa_family == AF_UNSPEC) { - session2_close(s); - return; - } - - /* Set deadlines for TCP connection and start reading. - * It will re-check every half of a request time limit if the connection - * is idle and should be terminated, this is an educated guess. */ - - uint64_t idle_in_timeout = the_network->tcp.in_idle_timeout; - uint64_t timeout = KR_CONN_RTT_MAX / 2; - session2_event(s, PROTOLAYER_EVENT_CONNECT, NULL); - session2_timer_start(s, PROTOLAYER_EVENT_GENERAL_TIMEOUT, - timeout, idle_in_timeout); - io_start_read((uv_handle_t *)client); -} - -static void tcp_accept(uv_stream_t *master, int status) -{ - _tcp_accept(master, status, PROTOLAYER_GRP_DOTCP); -} - -static void tls_accept(uv_stream_t *master, int status) -{ - _tcp_accept(master, status, PROTOLAYER_GRP_DOTLS); -} - -#if ENABLE_DOH2 -static void https_accept(uv_stream_t *master, int status) -{ - _tcp_accept(master, status, PROTOLAYER_GRP_DOHTTPS); -} -#endif - -int io_listen_tcp(uv_loop_t *loop, uv_tcp_t *handle, int fd, int tcp_backlog, bool has_tls, bool has_http) -{ - uv_connection_cb connection; - - if (!handle) { - return kr_error(EINVAL); - } - int ret = uv_tcp_init(loop, handle); - if (ret) return ret; - - if (has_tls && has_http) { -#if ENABLE_DOH2 - connection = https_accept; -#else - kr_log_error(IO, "kresd was compiled without libnghttp2 support\n"); - return kr_error(ENOPROTOOPT); -#endif - } else if (has_tls) { - connection = tls_accept; - } else if (has_http) { - return kr_error(EPROTONOSUPPORT); - } else { - connection = tcp_accept; - } - - ret = uv_tcp_open(handle, (uv_os_sock_t) fd); - if (ret) return ret; - - int val; (void)val; - /* TCP_DEFER_ACCEPT delays accepting connections until there is readable data. */ -#ifdef TCP_DEFER_ACCEPT - val = KR_CONN_RTT_MAX/1000; - if (setsockopt(fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &val, sizeof(val))) { - kr_log_error(IO, "listen TCP (defer_accept): %s\n", strerror(errno)); - } -#endif - - ret = uv_listen((uv_stream_t *)handle, tcp_backlog, connection); - if (ret != 0) { - return ret; - } - - /* TCP_FASTOPEN enables 1 RTT connection resumptions. */ -#ifdef TCP_FASTOPEN - #ifdef __linux__ - val = 16; /* Accepts queue length hint */ - #else - val = 1; /* Accepts on/off */ - #endif - if (setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &val, sizeof(val))) { - kr_log_error(IO, "listen TCP (fastopen): %s%s\n", strerror(errno), - (errno != EPERM ? "" : - ". This may be caused by TCP Fast Open being disabled in the OS.")); - } -#endif - - handle->data = NULL; - return 0; -} - - -enum io_stream_mode { - IO_MODE_TEXT = 0, - IO_MODE_BINARY = 1, - IO_MODE_JSON = 2, -}; - -struct io_stream_data { - enum io_stream_mode mode; - size_t blen; ///< length of `buf` - char *buf; ///< growing buffer residing on `pool` (mp_append_*) - knot_mm_t *pool; -}; - -/** - * TTY control: process input and free() the buffer. - * - * For parameters see http://docs.libuv.org/en/v1.x/stream.html#c.uv_read_cb - * - * - This is just basic read-eval-print; use rather kresctl with shell completion - */ -void io_tty_process_input(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf) -{ - auto_free char *commands = buf ? buf->base : NULL; - - /* Set output streams */ - FILE *out = stdout; - uv_os_fd_t stream_fd = -1; - struct args *args = the_args; - struct io_stream_data *data = (struct io_stream_data*) stream->data; - if (nread < 0 || uv_fileno((uv_handle_t *)stream, &stream_fd)) { - mp_delete(data->pool->ctx); - uv_close((uv_handle_t *)stream, (uv_close_cb) free); - return; - } - if (nread <= 0) { - return; - } - if (stream_fd != STDIN_FILENO) { - uv_os_fd_t dup_fd = dup(stream_fd); - if (dup_fd >= 0) { - out = fdopen(dup_fd, "w"); - } - } - - /** The current single command and the remaining command(s). */ - char *cmd, *cmd_next = NULL; - bool incomplete_cmd = false; - - if (!commands || nread <= 0) { - goto finish; - } - - /* Execute */ - if (commands[nread - 1] != '\n') { - incomplete_cmd = true; - } - /* Ensure commands is 0-terminated */ - if (nread >= buf->len) { /* only equality should be possible */ - char *newbuf = realloc(commands, nread + 1); - if (!newbuf) - goto finish; - commands = newbuf; - } - commands[nread] = '\0'; - - char *boundary = "\n\0"; - cmd = strtok(commands, "\n"); - /* strtok skip '\n' but we need process alone '\n' too */ - if (commands[0] == '\n') { - cmd_next = cmd; - cmd = boundary; - } else { - cmd_next = strtok(NULL, "\n"); - } - - /** Moving pointer to end of buffer with incomplete command. */ - char *pbuf = data->buf + data->blen; - lua_State *L = the_engine->L; - while (cmd != NULL) { - /* Last command is incomplete - save it and execute later */ - if (incomplete_cmd && cmd_next == NULL) { - pbuf = mp_append_string(data->pool->ctx, pbuf, cmd); - mp_append_char(data->pool->ctx, pbuf, '\0'); - data->buf = mp_ptr(data->pool->ctx); - data->blen = data->blen + strlen(cmd); - - /* There is new incomplete command */ - if (commands[nread - 1] == '\n') - incomplete_cmd = false; - goto next_iter; - } - - /* Process incomplete command from previously call */ - if (data->blen > 0) { - if (commands[0] != '\n' && commands[0] != '\0') { - pbuf = mp_append_string(data->pool->ctx, pbuf, cmd); - mp_append_char(data->pool->ctx, pbuf, '\0'); - data->buf = mp_ptr(data->pool->ctx); - cmd = data->buf; - } else { - cmd = data->buf; - } - data->blen = 0; - pbuf = data->buf; - } - - /* Pseudo-command for switching to "binary output"; */ - if (strcmp(cmd, "__binary") == 0) { - data->mode = IO_MODE_BINARY; - goto next_iter; - } - if (strcmp(cmd, "__json") == 0) { - data->mode = IO_MODE_JSON; - goto next_iter; - } - - const bool cmd_failed = engine_cmd(L, cmd, - (data->mode == IO_MODE_JSON) - ? ENGINE_EVAL_MODE_JSON - : ENGINE_EVAL_MODE_LUA_TABLE); - const char *message = NULL; - size_t len_s; - if (lua_gettop(L) > 0) { - message = lua_tolstring(L, -1, &len_s); - } - - switch (data->mode) { - case IO_MODE_BINARY: - case IO_MODE_JSON: - /* Length-field-prepended mode */ - if (!message || len_s > UINT32_MAX) { - kr_log_error(IO, "unrepresentable response on control socket, " - "sending back empty block (command '%s')\n", cmd); - len_s = 0; - } - uint32_t len_n = htonl(len_s); - fwrite(&len_n, sizeof(len_n), 1, out); - if (len_s > 0) - fwrite(message, len_s, 1, out); - break; - case IO_MODE_TEXT: - /* Human-readable and console-printable mode */ - if (message) - fprintf(out, "%s", message); - if (message || !args->quiet) - fprintf(out, "\n"); - if (!args->quiet) - fprintf(out, "> "); - break; - } - - /* Duplicate command and output to logs */ - if (cmd_failed) { - kr_log_warning(CONTROL, "> %s\n", cmd); - if (message) - kr_log_warning(CONTROL, "%s\n", message); - } else { - kr_log_debug(CONTROL, "> %s\n", cmd); - if (message) - kr_log_debug(CONTROL, "%s\n", message); - } - next_iter: - lua_settop(L, 0); /* not required in some cases but harmless */ - cmd = cmd_next; - cmd_next = strtok(NULL, "\n"); - } - -finish: - /* Close if redirected */ - if (stream_fd != STDIN_FILENO) { - fclose(out); - } - /* If a LMDB transaction got open, we can't leave it hanging. - * We accept the changes, if any. */ - kr_cache_commit(&the_resolver->cache); - kr_rules_commit(true); -} - -void io_tty_alloc(uv_handle_t *handle, size_t suggested, uv_buf_t *buf) -{ - buf->len = suggested; - buf->base = malloc(suggested); -} - -struct io_stream_data *io_tty_alloc_data(void) { - knot_mm_t *pool = mm_ctx_mempool2(MM_DEFAULT_BLKSIZE); - if (!pool) { - return NULL; - } - struct io_stream_data *data = mm_alloc(pool, sizeof(struct io_stream_data)); - - data->buf = mp_start(pool->ctx, 512); - data->mode = IO_MODE_TEXT; - data->blen = 0; - data->pool = pool; - - return data; -} - -void io_tty_accept(uv_stream_t *master, int status) -{ - /* We can't use any allocations after mp_start() and it's easier anyway. */ - uv_pipe_t *client = malloc(sizeof(*client)); - if (!client) - return; - - struct io_stream_data *data = io_tty_alloc_data(); - if (!data) { - free(client); - return; - } - client->data = data; - - struct args *args = the_args; - uv_pipe_init(master->loop, client, 0); - if (uv_accept(master, (uv_stream_t *)client) != 0) { - mp_delete(data->pool->ctx); - return; - } - uv_read_start((uv_stream_t *)client, io_tty_alloc, io_tty_process_input); - - /* Write command line */ - if (!args->quiet) { - uv_buf_t buf = { "> ", 2 }; - uv_try_write((uv_stream_t *)client, &buf, 1); - } -} - -int io_listen_pipe(uv_loop_t *loop, uv_pipe_t *handle, int fd) -{ - if (!handle) { - return kr_error(EINVAL); - } - int ret = uv_pipe_init(loop, handle, 0); - if (ret) return ret; - - ret = uv_pipe_open(handle, fd); - if (ret) return ret; - - ret = uv_listen((uv_stream_t *)handle, 16, io_tty_accept); - if (ret) return ret; - - handle->data = NULL; - - return 0; -} - -#if ENABLE_XDP -static void xdp_rx(uv_poll_t* handle, int status, int events) -{ - const int XDP_RX_BATCH_SIZE = 64; - if (status < 0) { - kr_log_error(XDP, "poll status %d: %s\n", status, uv_strerror(status)); - return; - } - if (events != UV_READABLE) { - kr_log_error(XDP, "poll unexpected events: %d\n", events); - return; - } - - xdp_handle_data_t *xhd = handle->data; - kr_require(xhd && xhd->session && xhd->socket); - uint32_t rcvd; - knot_xdp_msg_t msgs[XDP_RX_BATCH_SIZE]; - int ret = knot_xdp_recv(xhd->socket, msgs, XDP_RX_BATCH_SIZE, &rcvd - #if KNOT_VERSION_HEX >= 0x030100 - , NULL - #endif - ); - - if (kr_fails_assert(ret == KNOT_EOK)) { - /* ATM other error codes can only be returned when called incorrectly */ - kr_log_error(XDP, "knot_xdp_recv(): %d, %s\n", ret, knot_strerror(ret)); - return; - } - kr_log_debug(XDP, "poll triggered, processing a batch of %d packets\n", (int)rcvd); - kr_require(rcvd <= XDP_RX_BATCH_SIZE); - for (int i = 0; i < rcvd; ++i) { - knot_xdp_msg_t *msg = &msgs[i]; - kr_require(msg->payload.iov_len <= KNOT_WIRE_MAX_PKTSIZE); - struct comm_info comm = { - .src_addr = (const struct sockaddr *)&msg->ip_from, - .comm_addr = (const struct sockaddr *)&msg->ip_from, - .dst_addr = (const struct sockaddr *)&msg->ip_to, - .xdp = true - }; - memcpy(comm.eth_from, msg->eth_from, sizeof(comm.eth_from)); - memcpy(comm.eth_to, msg->eth_to, sizeof(comm.eth_to)); - session2_unwrap(xhd->session, - protolayer_buffer( - msg->payload.iov_base, - msg->payload.iov_len, false), - &comm, NULL, NULL); - if (ret) - kr_log_debug(XDP, "worker_submit() == %d: %s\n", ret, kr_strerror(ret)); - mp_flush(the_worker->pkt_pool.ctx); - } - knot_xdp_recv_finish(xhd->socket, msgs, rcvd); -} -/// Warn if the XDP program is running in emulated mode (XDP_SKB) -static void xdp_warn_mode(const char *ifname) -{ - if (kr_fails_assert(ifname)) - return; - - const unsigned if_index = if_nametoindex(ifname); - if (!if_index) { - kr_log_warning(XDP, "warning: interface %s, unexpected error when converting its name: %s\n", - ifname, strerror(errno)); - return; - } - - const knot_xdp_mode_t mode = knot_eth_xdp_mode(if_index); - switch (mode) { - case KNOT_XDP_MODE_FULL: - return; - case KNOT_XDP_MODE_EMUL: - kr_log_warning(XDP, "warning: interface %s running only with XDP emulation\n", - ifname); - return; - case KNOT_XDP_MODE_NONE: // enum warnings from compiler - break; - } - kr_log_warning(XDP, "warning: interface %s running in unexpected XDP mode %d\n", - ifname, (int)mode); -} -int io_listen_xdp(uv_loop_t *loop, struct endpoint *ep, const char *ifname) -{ - if (!ep || !ep->handle) { - return kr_error(EINVAL); - } - - // RLIMIT_MEMLOCK often needs raising when operating on BPF - static int ret_limit = 1; - if (ret_limit == 1) { - struct rlimit no_limit = { RLIM_INFINITY, RLIM_INFINITY }; - ret_limit = setrlimit(RLIMIT_MEMLOCK, &no_limit) - ? kr_error(errno) : 0; - } - if (ret_limit) return ret_limit; - - xdp_handle_data_t *xhd = malloc(sizeof(*xhd)); - if (!xhd) return kr_error(ENOMEM); - - xhd->socket = NULL; // needed for some reason - queue_init(xhd->tx_waker_queue); - - // This call is a libknot version hell, unfortunately. - int ret = knot_xdp_init(&xhd->socket, ifname, ep->nic_queue, - #if KNOT_VERSION_HEX < 0x030100 - ep->port ? ep->port : KNOT_XDP_LISTEN_PORT_ALL, - KNOT_XDP_LOAD_BPF_MAYBE - #elif KNOT_VERSION_HEX < 0x030200 - ep->port ? ep->port : (KNOT_XDP_LISTEN_PORT_PASS | 0), - KNOT_XDP_LOAD_BPF_MAYBE - #else - KNOT_XDP_FILTER_UDP | (ep->port ? 0 : KNOT_XDP_FILTER_PASS), - ep->port, 0/*quic_port*/, - KNOT_XDP_LOAD_BPF_MAYBE, - NULL/*xdp_config*/ - #endif - ); - - if (!ret) xdp_warn_mode(ifname); - - if (!ret) ret = uv_idle_init(loop, &xhd->tx_waker); - if (ret || kr_fails_assert(xhd->socket)) { - free(xhd); - return ret == 0 ? kr_error(EINVAL) : kr_error(ret); - } - xhd->tx_waker.data = xhd; - - ep->fd = knot_xdp_socket_fd(xhd->socket); // probably not useful - ret = uv_poll_init(loop, (uv_poll_t *)ep->handle, ep->fd); - if (ret) { - knot_xdp_deinit(xhd->socket); - free(xhd); - return kr_error(ret); - } - - xhd->session = session2_new_io(ep->handle, PROTOLAYER_GRP_DOUDP, - NULL, 0, false); - kr_require(xhd->session); - session2_get_sockname(xhd->session)->sa_family = AF_XDP; // to have something in there - - ep->handle->data = xhd; - ret = uv_poll_start((uv_poll_t *)ep->handle, UV_READABLE, xdp_rx); - return ret; -} -#endif - -int io_create(uv_loop_t *loop, struct session2 **out_session, int type, - unsigned family, enum protolayer_grp grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count, bool outgoing) -{ - *out_session = NULL; - int ret = -1; - uv_handle_t *handle; - if (type == SOCK_DGRAM) { - uv_udp_t *udp = malloc(sizeof(uv_udp_t)); - kr_require(udp); - ret = uv_udp_init(loop, udp); - - handle = (uv_handle_t *)udp; - } else if (type == SOCK_STREAM) { - uv_tcp_t *tcp = malloc(sizeof(uv_tcp_t)); - kr_require(tcp); - ret = uv_tcp_init_ex(loop, tcp, family); - uv_tcp_nodelay(tcp, 1); - - handle = (uv_handle_t *)tcp; - } else { - kr_require(false && "io_create: invalid socket type"); - } - if (ret != 0) { - return ret; - } - struct session2 *s = session2_new_io(handle, grp, layer_param, - layer_param_count, outgoing); - if (s == NULL) { - ret = -1; - } - - *out_session = s; - return ret; -} - -static void io_deinit(uv_handle_t *handle) -{ - if (!handle || !handle->data) { - return; - } - if (handle->type != UV_POLL) { - session2_unhandle(handle->data); - } else { - #if ENABLE_XDP - xdp_handle_data_t *xhd = handle->data; - uv_idle_stop(&xhd->tx_waker); - uv_close((uv_handle_t *)&xhd->tx_waker, NULL); - session2_unhandle(xhd->session); - knot_xdp_deinit(xhd->socket); - queue_deinit(xhd->tx_waker_queue); - free(xhd); - #else - kr_assert(false); - #endif - } -} - -void io_free(uv_handle_t *handle) -{ - io_deinit(handle); - free(handle); -} - -int io_start_read(uv_handle_t *handle) -{ - switch (handle->type) { - case UV_UDP: - return uv_udp_recv_start((uv_udp_t *)handle, &handle_getbuf, &udp_recv); - case UV_TCP: - return uv_read_start((uv_stream_t *)handle, &handle_getbuf, &tcp_recv); - default: - kr_assert(false); - return kr_error(EINVAL); - } -} - -int io_stop_read(uv_handle_t *handle) -{ - if (handle->type == UV_UDP) { - return uv_udp_recv_stop((uv_udp_t *)handle); - } else { - return uv_read_stop((uv_stream_t *)handle); - } -} diff --git a/daemon/io.h b/daemon/io.h deleted file mode 100644 index 305f26cfe..000000000 --- a/daemon/io.h +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include -#include -#include -#include -#include "lib/generic/array.h" -#include "daemon/worker.h" -#include "daemon/engine.h" -#include "daemon/session2.h" - -struct tls_ctx; -struct tls_client_ctx; -struct io_stream_data; - -/** Initializes the protocol layers managed by io. */ -void io_protolayers_init(void); - -/** Bind address into a file-descriptor (only, no libuv). type is e.g. SOCK_DGRAM */ -int io_bind(const struct sockaddr *addr, int type, const endpoint_flags_t *flags); -/** Initialize a UDP handle and start listening. */ -int io_listen_udp(uv_loop_t *loop, uv_udp_t *handle, int fd); -/** Initialize a TCP handle and start listening. */ -int io_listen_tcp(uv_loop_t *loop, uv_tcp_t *handle, int fd, int tcp_backlog, bool has_tls, bool has_http); -/** Initialize a pipe handle and start listening. */ -int io_listen_pipe(uv_loop_t *loop, uv_pipe_t *handle, int fd); -/** Initialize a poll handle (ep->handle) and start listening over AF_XDP on ifname. - * Sets ep->session. */ -int io_listen_xdp(uv_loop_t *loop, struct endpoint *ep, const char *ifname); - -/** Control socket / TTY - related functions. */ -void io_tty_process_input(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf); -void io_tty_alloc(uv_handle_t *handle, size_t suggested, uv_buf_t *buf); -void io_tty_accept(uv_stream_t *master, int status); -struct io_stream_data *io_tty_alloc_data(void); - -void tcp_timeout_trigger(uv_timer_t *timer); - -/** Initialize the handle, incl. ->data = struct session * instance. - * \param type = SOCK_* - * \param family = AF_* - * \param has_tls has meanings only when type is SOCK_STREAM */ -int io_create(uv_loop_t *loop, struct session2 **out_session, int type, - unsigned family, enum protolayer_grp grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count, bool outgoing); -void io_free(uv_handle_t *handle); - -int io_start_read(uv_handle_t *handle); -int io_stop_read(uv_handle_t *handle); - -/** When uv_handle_t::type == UV_POLL, ::data points to this malloc-ed helper. - * (Other cases store a direct struct session pointer in ::data.) */ -typedef struct { - struct knot_xdp_socket *socket; - struct session2 *session; - uv_idle_t tx_waker; - queue_t(void *) tx_waker_queue; -} xdp_handle_data_t; - diff --git a/daemon/lua/controlsock.test.lua b/daemon/lua/controlsock.test.lua deleted file mode 100644 index 0cce03d35..000000000 --- a/daemon/lua/controlsock.test.lua +++ /dev/null @@ -1,169 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later -local cqsocket = require('cqueues.socket') -local strerror = require('cqueues.errno').strerror -local timeout = 5 -- seconds, per socket operation - --- TODO: we get memory leaks from cqueues, but CI runs this without leak detection anyway - -local ctrl_sock_txt, ctrl_sock_bin, ctrl_sock_txt_longcmd, ctrl_sock_bin_longcmd -local ctrl_sock_txt_partcmd, ctrl_sock_bin_partcmd - -local function onerr_fail(_, method, errno, stacklevel) - local errmsg = string.format('socket error: method %s error %d (%s)', - method, errno, strerror(errno)) - fail(debug.traceback(errmsg, stacklevel)) -end - - -local function switch_to_binary_mode(sock) - data = sock:xread(2, nil, timeout) - sock:xwrite('__binary\n', nil, timeout) - same(data, '> ', 'probably successful switch to binary mode') -end - -local function socket_connect(path) - sock = cqsocket.connect({ path = path, nonblock = true }) - sock:onerror(onerr_fail) - sock:setmode('bn', 'bn') - - return sock -end - -local function socket_fixture() - local path = worker.cwd..'/control/'..worker.pid - same(true, net.listen(path, nil, {kind = 'control'}), 'new control sockets were created') - - ctrl_sock_txt = socket_connect(path) - ctrl_sock_txt_longcmd = socket_connect(path) - ctrl_sock_txt_partcmd = socket_connect(path) - - ctrl_sock_bin = socket_connect(path) - switch_to_binary_mode(ctrl_sock_bin) - ctrl_sock_bin_longcmd = socket_connect(path) - switch_to_binary_mode(ctrl_sock_bin_longcmd) - ctrl_sock_bin_partcmd = socket_connect(path) - switch_to_binary_mode(ctrl_sock_bin_partcmd) -end - -local function test_text_prompt() - data = ctrl_sock_txt:xread(2, nil, timeout) - same(data, '> ', 'text prompt looks like expected') -end - -local function test_text_single_command() - local string = "this is test" - local input = string.format("'%s'\n", string) - local expect = input - ctrl_sock_txt:xwrite(input, nil, timeout) - data = ctrl_sock_txt:xread(#expect, nil, timeout) - same(data, expect, - 'text mode returns output in expected format') -end - -local function binary_xread_len(sock) - data = sock:xread(4, nil, timeout) - local len = tonumber(data:byte(1)) - for i=2,4 do - len = bit.bor(bit.lshift(len, 8), tonumber(data:byte(i))) - end - - return len -end - -local function test_binary_more_syscalls() - local len - - ctrl_sock_bin:xwrite('worker.p', nil, timeout) - worker.sleep(0.01) - ctrl_sock_bin:xwrite('id\n', nil, timeout) - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns number in expected format') - - ctrl_sock_bin:xwrite('worker.p', nil, timeout) - worker.sleep(0.01) - ctrl_sock_bin:xwrite('id\nworker.id\n', nil, timeout) - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns number in expected format') - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, string.format("'%s'", worker.id), - 'binary mode returns string in expected format') - - ctrl_sock_bin:xwrite('worker.pid', nil, timeout) - worker.sleep(0.01) - ctrl_sock_bin:xwrite('\n', nil, timeout) - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns output in expected format') - - ctrl_sock_bin:xwrite('worker.pid', nil, timeout) - worker.sleep(0.01) - ctrl_sock_bin:xwrite('\nworker.id', nil, timeout) - worker.sleep(0.01) - ctrl_sock_bin:xwrite('\n', nil, timeout) - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns number in expected format') - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, string.format("'%s'", worker.id), - 'binary mode returns string in expected format') - - ctrl_sock_bin:xwrite('worker.pid\nworker.pid\nworker.pid\nworker.pid\n', nil, timeout) - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns number in expected format') - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns number in expected format') - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns number in expected format') - len = binary_xread_len(ctrl_sock_bin) - data = ctrl_sock_bin:xread(len, nil, timeout) - same(data, tostring(worker.pid), - 'binary mode returns number in expected format') -end - -local function test_close_incomplete_cmd() - ctrl_sock_txt_partcmd:xwrite('worker.p', nil, timeout) - ctrl_sock_txt_partcmd:close() - pass('close text socket with short incomplete command') - - ctrl_sock_bin_partcmd:xwrite('worker.p', nil, timeout) - ctrl_sock_bin_partcmd:close() - pass('close binary socket with short incomplete command') -end - - -local function test_close_during_transfer() - ctrl_sock_txt_longcmd:xwrite(string.rep('a', 1024*1024*10), nil, timeout) - ctrl_sock_txt_longcmd:close() - pass('close text socket with long incomplete command') - - ctrl_sock_bin_longcmd:xwrite(string.rep('a', 1024*1024*10), nil, timeout) - ctrl_sock_bin_longcmd:close() - pass('close binary socket with long incomplete command') -end - -local tests = { - socket_fixture, - test_text_prompt, -- prompt after connect - test_text_single_command, - test_text_prompt, -- new prompt when command is finished - test_close_incomplete_cmd, - test_close_during_transfer, - test_binary_more_syscalls, - test_text_single_command, -- command in text mode after execute commands in binary mode - test_text_prompt, -- new prompt when command is finished -} -return tests diff --git a/daemon/lua/distro-preconfig.lua.in b/daemon/lua/distro-preconfig.lua.in deleted file mode 100644 index df155c2c1..000000000 --- a/daemon/lua/distro-preconfig.lua.in +++ /dev/null @@ -1,19 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later -log_target('syslog') -- assume running as OS service - -local ffi = require('ffi') -local id = os.getenv('SYSTEMD_INSTANCE') -if not id then - log_warn(ffi.C.LOG_GRP_SYSTEM, 'environment variable $SYSTEMD_INSTANCE not set') -else - -- Bind to control socket in run_dir - worker.control_path = '@run_dir@/control/' - local path = worker.control_path..id - local ok, err = pcall(net.listen, path, nil, { kind = 'control' }) - if not ok then - log_warn(ffi.C.LOG_GRP_NETWORK, 'bind to '..path..' failed '..err) - end -end - --- Set cache location -rawset(cache, 'current_storage', 'lmdb://@systemd_cache_dir@') diff --git a/daemon/lua/kluautil.lua b/daemon/lua/kluautil.lua deleted file mode 100644 index d8569b9a2..000000000 --- a/daemon/lua/kluautil.lua +++ /dev/null @@ -1,94 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -local ffi = require('ffi') -local kluautil = {} - --- Get length of table -function kluautil.kr_table_len(t) - if type(t) ~= 'table' then - return nil - end - - local len = 0 - for _ in pairs(t) do - len = len + 1 - end - return len -end - --- pack varargs including nil arguments into a table -function kluautil.kr_table_pack(...) - local tab = {...} - tab.n = select('#', ...) - return tab -end - --- unpack table produced by kr_table_pack and including nil values -function kluautil.kr_table_unpack(tab) - return unpack(tab, 1, tab.n) -end - --- Fetch over HTTPS -function kluautil.kr_https_fetch(url, out_file, ca_file) - local http_ok, http_request = pcall(require, 'http.request') - local httptls_ok, http_tls = pcall(require, 'http.tls') - local openssl_ok, openssl_ctx = pcall(require, 'openssl.ssl.context') - - if not http_ok or not httptls_ok or not openssl_ok then - return nil, 'error: lua-http and luaossl libraries are missing (but required)' - end - local cqerrno = require('cqueues.errno') - - assert(string.match(url, '^https://')) - - local req = http_request.new_from_uri(url) - req.tls = true - if ca_file then - req.ctx = openssl_ctx.new() - local store = req.ctx:getStore() - local load_ok, errmsg = pcall(store.add, store, ca_file) - if not load_ok then - return nil, errmsg - end - else -- use defaults - req.ctx = http_tls.new_client_context() - end - - req.ctx:setVerify(openssl_ctx.VERIFY_PEER) - - local headers, stream, errmsg = req:go() - if not headers then - errmsg = errmsg or 'unknown error' - if type(errmsg) == 'number' then - errmsg = cqerrno.strerror(errmsg) .. - ' (' .. tostring(errmsg) .. ')' - end - return nil, 'HTTP client library error: ' .. errmsg - end - if headers:get(':status') ~= "200" then - return nil, 'HTTP status != 200, got ' .. headers:get(':status') - end - - local err - err, errmsg = stream:save_body_to_file(out_file) - if err == nil then - return nil, errmsg - end - - out_file:seek('set', 0) - - return true -end - --- Copy a lua string to C (to knot_mm_t or nil=malloc, zero-terminated). -function kluautil.kr_string2c(str, mempool) - if str == nil then return nil end - local result = ffi.C.mm_realloc(mempool, nil, #str + 1, 0) - if result == nil then panic("not enough memory") end - ffi.copy(result, str) - return ffi.cast('const char *', result) -end - -kluautil.list_dir = kluautil_list_dir - -return kluautil diff --git a/daemon/lua/kres-gen-30.lua b/daemon/lua/kres-gen-30.lua deleted file mode 100644 index 36e3e4054..000000000 --- a/daemon/lua/kres-gen-30.lua +++ /dev/null @@ -1,687 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -local ffi = require('ffi') ---[[ This file is generated by ./kres-gen.sh ]] ffi.cdef[[ - -typedef @time_t@ time_t; -typedef @time_t@ __time_t; -typedef @time_t@ __suseconds_t; -struct timeval { - __time_t tv_sec; - __suseconds_t tv_usec; -}; - -typedef struct knot_dump_style knot_dump_style_t; -extern const knot_dump_style_t KR_DUMP_STYLE_DEFAULT; -struct kr_cdb_api {}; -struct lru {}; -typedef enum {KNOT_ANSWER, KNOT_AUTHORITY, KNOT_ADDITIONAL} knot_section_t; -typedef struct { - uint16_t pos; - uint16_t flags; - uint16_t compress_ptr[16]; -} knot_rrinfo_t; -typedef unsigned char knot_dname_t; -typedef struct { - uint16_t len; - uint8_t data[]; -} knot_rdata_t; -typedef struct { - uint16_t count; - uint32_t size; - knot_rdata_t *rdata; -} knot_rdataset_t; -typedef struct knot_db_val { - void *data; - size_t len; -} knot_db_val_t; - -typedef struct knot_mm { - void *ctx, *alloc, *free; -} knot_mm_t; - -typedef void *(*map_alloc_f)(void *, size_t); -typedef void (*map_free_f)(void *baton, void *ptr); -typedef void (*trace_log_f) (const struct kr_request *, const char *); -typedef void (*trace_callback_f)(struct kr_request *); -typedef uint8_t * (*alloc_wire_f)(struct kr_request *req, uint16_t *maxlen); -typedef bool (*addr_info_f)(struct sockaddr*); -typedef void (*zi_callback)(int state, void *param); -typedef struct { - knot_dname_t *_owner; - uint32_t _ttl; - uint16_t type; - uint16_t rclass; - knot_rdataset_t rrs; - void *additional; -} knot_rrset_t; - -struct kr_module; -typedef char *(kr_prop_cb)(void *, struct kr_module *, const char *); -typedef unsigned char knot_dname_storage_t[255]; -typedef struct knot_pkt knot_pkt_t; -typedef struct { - uint8_t *ptr[15]; -} knot_edns_options_t; -typedef struct { - knot_pkt_t *pkt; - uint16_t pos; - uint16_t count; -} knot_pktsection_t; -typedef struct knot_compr { - uint8_t *wire; - knot_rrinfo_t *rrinfo; - struct { - uint16_t pos; - uint8_t labels; - } suffix; -} knot_compr_t; -struct knot_pkt { - uint8_t *wire; - size_t size; - size_t max_size; - size_t parsed; - uint16_t reserved; - uint16_t qname_size; - uint16_t rrset_count; - uint16_t flags; - knot_rrset_t *opt_rr; - knot_rrset_t *tsig_rr; - knot_edns_options_t *edns_opts; - struct { - uint8_t *pos; - size_t len; - } tsig_wire; - knot_section_t current; - knot_pktsection_t sections[3]; - size_t rrset_allocd; - knot_rrinfo_t *rr_info; - knot_rrset_t *rr; - knot_mm_t mm; - knot_compr_t compr; -}; -typedef struct trie trie_t; -struct kr_qflags { - _Bool NO_MINIMIZE : 1; - _Bool NO_IPV6 : 1; - _Bool NO_IPV4 : 1; - _Bool TCP : 1; - _Bool NO_ANSWER : 1; - _Bool RESOLVED : 1; - _Bool AWAIT_IPV4 : 1; - _Bool AWAIT_IPV6 : 1; - _Bool AWAIT_CUT : 1; - _Bool NO_EDNS : 1; - _Bool CACHED : 1; - _Bool NO_CACHE : 1; - _Bool EXPIRING : 1; - _Bool ALLOW_LOCAL : 1; - _Bool DNSSEC_WANT : 1; - _Bool DNSSEC_BOGUS : 1; - _Bool DNSSEC_INSECURE : 1; - _Bool DNSSEC_CD : 1; - _Bool STUB : 1; - _Bool ALWAYS_CUT : 1; - _Bool DNSSEC_WEXPAND : 1; - _Bool PERMISSIVE : 1; - _Bool STRICT : 1; - _Bool BADCOOKIE_AGAIN : 1; - _Bool CNAME : 1; - _Bool REORDER_RR : 1; - _Bool TRACE : 1; - _Bool NO_0X20 : 1; - _Bool DNSSEC_NODS : 1; - _Bool DNSSEC_OPTOUT : 1; - _Bool NONAUTH : 1; - _Bool FORWARD : 1; - _Bool DNS64_MARK : 1; - _Bool CACHE_TRIED : 1; - _Bool NO_NS_FOUND : 1; - _Bool PKT_IS_SANE : 1; - _Bool DNS64_DISABLE : 1; - _Bool PASSTHRU_LEGACY : 1; -}; -typedef struct ranked_rr_array_entry { - uint32_t qry_uid; - uint8_t rank; - uint8_t revalidation_cnt; - _Bool cached : 1; - _Bool yielded : 1; - _Bool to_wire : 1; - _Bool expiring : 1; - _Bool in_progress : 1; - _Bool dont_cache : 1; - knot_rrset_t *rr; -} ranked_rr_array_entry_t; -typedef struct { - ranked_rr_array_entry_t **at; - size_t len; - size_t cap; -} ranked_rr_array_t; -typedef struct kr_http_header_array_entry { - char *name; - char *value; -} kr_http_header_array_entry_t; -typedef struct { - kr_http_header_array_entry_t *at; - size_t len; - size_t cap; -} kr_http_header_array_t; -typedef struct { - union kr_sockaddr *at; - size_t len; - size_t cap; -} kr_sockaddr_array_t; -struct kr_zonecut { - knot_dname_t *name; - knot_rrset_t *key; - knot_rrset_t *trust_anchor; - struct kr_zonecut *parent; - trie_t *nsset; - knot_mm_t *pool; - _Bool avoid_resolving; -}; -typedef struct { - struct kr_query **at; - size_t len; - size_t cap; -} kr_qarray_t; -struct kr_rplan { - kr_qarray_t pending; - kr_qarray_t resolved; - struct kr_query *initial; - struct kr_request *request; - knot_mm_t *pool; - uint32_t next_uid; -}; -struct kr_request_qsource_flags { - _Bool tcp : 1; - _Bool tls : 1; - _Bool http : 1; - _Bool xdp : 1; -}; -typedef unsigned long kr_rule_tags_t; -struct kr_rule_zonefile_config { - const char *filename; - const char *input_str; - size_t input_len; - _Bool is_rpz; - _Bool nodata; - kr_rule_tags_t tags; - const char *origin; - uint32_t ttl; -}; -struct kr_rule_fwd_flags { - _Bool is_auth : 1; - _Bool is_tcp : 1; - _Bool is_nods : 1; -}; -typedef struct kr_rule_fwd_flags kr_rule_fwd_flags_t; -struct kr_extended_error { - int32_t info_code; - const char *extra_text; -}; -struct kr_request { - struct kr_context *ctx; - knot_pkt_t *answer; - struct kr_query *current_query; - struct { - const struct sockaddr *addr; - const struct sockaddr *comm_addr; - const struct sockaddr *dst_addr; - const knot_pkt_t *packet; - struct kr_request_qsource_flags flags; - struct kr_request_qsource_flags comm_flags; - size_t size; - int32_t stream_id; - kr_http_header_array_t headers; - } qsource; - struct { - unsigned int rtt; - const struct kr_transport *transport; - } upstream; - struct kr_qflags options; - int state; - ranked_rr_array_t answ_selected; - ranked_rr_array_t auth_selected; - ranked_rr_array_t add_selected; - _Bool answ_validated; - _Bool auth_validated; - uint8_t rank; - struct kr_rplan rplan; - trace_log_f trace_log; - trace_callback_f trace_finish; - int vars_ref; - knot_mm_t pool; - unsigned int uid; - struct { - addr_info_f is_tls_capable; - addr_info_f is_tcp_connected; - addr_info_f is_tcp_waiting; - kr_sockaddr_array_t forwarding_targets; - } selection_context; - unsigned int count_no_nsaddr; - unsigned int count_fail_row; - alloc_wire_f alloc_wire_cb; - kr_rule_tags_t rule_tags; - struct kr_extended_error extended_error; -}; -enum kr_rank {KR_RANK_INITIAL, KR_RANK_OMIT, KR_RANK_TRY, KR_RANK_INDET = 4, KR_RANK_BOGUS, KR_RANK_MISMATCH, KR_RANK_MISSING, KR_RANK_INSECURE, KR_RANK_AUTH = 16, KR_RANK_SECURE = 32}; -typedef struct kr_cdb * kr_cdb_pt; -struct kr_cdb_stats { - uint64_t open; - uint64_t close; - uint64_t count; - uint64_t count_entries; - uint64_t clear; - uint64_t commit; - uint64_t read; - uint64_t read_miss; - uint64_t write; - uint64_t remove; - uint64_t remove_miss; - uint64_t match; - uint64_t match_miss; - uint64_t read_leq; - uint64_t read_leq_miss; - uint64_t read_less; - double usage_percent; -}; -typedef struct uv_timer_s uv_timer_t; -struct kr_cache { - kr_cdb_pt db; - const struct kr_cdb_api *api; - struct kr_cdb_stats stats; - uint32_t ttl_min; - uint32_t ttl_max; - struct timeval checkpoint_walltime; - uint64_t checkpoint_monotime; - uv_timer_t *health_timer; -}; -typedef struct kr_layer { - int state; - struct kr_request *req; - const struct kr_layer_api *api; - knot_pkt_t *pkt; - struct sockaddr *dst; - _Bool is_stream; -} kr_layer_t; -typedef struct kr_layer_api { - int (*begin)(kr_layer_t *); - int (*reset)(kr_layer_t *); - int (*finish)(kr_layer_t *); - int (*consume)(kr_layer_t *, knot_pkt_t *); - int (*produce)(kr_layer_t *, knot_pkt_t *); - int (*checkout)(kr_layer_t *, knot_pkt_t *, struct sockaddr *, int); - int (*answer_finalize)(kr_layer_t *); - void *data; - int cb_slots[]; -} kr_layer_api_t; -struct kr_prop { - kr_prop_cb *cb; - const char *name; - const char *info; -}; -struct kr_module { - char *name; - int (*init)(struct kr_module *); - int (*deinit)(struct kr_module *); - int (*config)(struct kr_module *, const char *); - const kr_layer_api_t *layer; - const struct kr_prop *props; - void *lib; - void *data; -}; -struct kr_server_selection { - _Bool initialized; - void (*choose_transport)(struct kr_query *, struct kr_transport **); - void (*update_rtt)(struct kr_query *, const struct kr_transport *, unsigned int); - void (*error)(struct kr_query *, const struct kr_transport *, enum kr_selection_error); - struct local_state *local_state; -}; -typedef int kr_log_level_t; -enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG}; -struct kr_query_data_src { - _Bool initialized; - _Bool all_set; - uint8_t rule_depth; - kr_rule_fwd_flags_t flags; - knot_db_val_t targets_ptr; -}; -enum kr_rule_sub_t {KR_RULE_SUB_EMPTY = 1, KR_RULE_SUB_NXDOMAIN, KR_RULE_SUB_NODATA, KR_RULE_SUB_REDIRECT}; -enum kr_proto {KR_PROTO_INTERNAL, KR_PROTO_UDP53, KR_PROTO_TCP53, KR_PROTO_DOT, KR_PROTO_DOH, KR_PROTO_DOQ, KR_PROTO_COUNT}; -typedef unsigned char kr_proto_set; -kr_layer_t kr_layer_t_static; -_Bool kr_dbg_assertion_abort; -int kr_dbg_assertion_fork; -const uint32_t KR_RULE_TTL_DEFAULT; - -typedef int32_t (*kr_stale_cb)(int32_t ttl, const knot_dname_t *owner, uint16_t type, - const struct kr_query *qry); - -void kr_rrset_init(knot_rrset_t *rrset, knot_dname_t *owner, - uint16_t type, uint16_t rclass, uint32_t ttl); -struct kr_query { - struct kr_query *parent; - knot_dname_t *sname; - uint16_t stype; - uint16_t sclass; - uint16_t id; - uint16_t reorder; - struct kr_qflags flags; - struct kr_qflags forward_flags; - uint32_t secret; - uint32_t uid; - int32_t vld_limit_crypto_remains; - uint32_t vld_limit_uid; - uint64_t creation_time_mono; - uint64_t timestamp_mono; - struct timeval timestamp; - struct kr_zonecut zone_cut; - struct kr_layer_pickle *deferred; - struct kr_query_data_src data_src; - int8_t cname_depth; - struct kr_query *cname_parent; - struct kr_request *request; - kr_stale_cb stale_cb; - struct kr_server_selection server_selection; -}; -struct kr_context { - struct kr_qflags options; - knot_rrset_t *downstream_opt_rr; - knot_rrset_t *upstream_opt_rr; - trie_t *trust_anchors; - trie_t *negative_anchors; - int32_t vld_limit_crypto; - struct kr_zonecut root_hints; - struct kr_cache cache; - unsigned int cache_rtt_tout_retry_interval; - char _stub[]; -}; -struct kr_transport { - knot_dname_t *ns_name; - /* beware: hidden stub, to avoid hardcoding sockaddr lengths */ -}; -const char *knot_strerror(int); -knot_dname_t *knot_dname_copy(const knot_dname_t *, knot_mm_t *); -knot_dname_t *knot_dname_from_str(uint8_t *, const char *, size_t); -int knot_dname_in_bailiwick(const knot_dname_t *, const knot_dname_t *); -_Bool knot_dname_is_equal(const knot_dname_t *, const knot_dname_t *); -size_t knot_dname_labels(const uint8_t *, const uint8_t *); -size_t knot_dname_size(const knot_dname_t *); -void knot_dname_to_lower(knot_dname_t *); -char *knot_dname_to_str(char *, const knot_dname_t *, size_t); -knot_rdata_t *knot_rdataset_at(const knot_rdataset_t *, uint16_t); -int knot_rdataset_merge(knot_rdataset_t *, const knot_rdataset_t *, knot_mm_t *); -int knot_rrset_add_rdata(knot_rrset_t *, const uint8_t *, uint16_t, knot_mm_t *); -void knot_rrset_free(knot_rrset_t *, knot_mm_t *); -int knot_rrset_txt_dump(const knot_rrset_t *, char **, size_t *, const knot_dump_style_t *); -int knot_rrset_txt_dump_data(const knot_rrset_t *, const size_t, char *, const size_t, const knot_dump_style_t *); -size_t knot_rrset_size(const knot_rrset_t *); -int knot_pkt_begin(knot_pkt_t *, knot_section_t); -int knot_pkt_put_question(knot_pkt_t *, const knot_dname_t *, uint16_t, uint16_t); -int knot_pkt_put_rotate(knot_pkt_t *, uint16_t, const knot_rrset_t *, uint16_t, uint16_t); -knot_pkt_t *knot_pkt_new(void *, uint16_t, knot_mm_t *); -void knot_pkt_free(knot_pkt_t *); -int knot_pkt_parse(knot_pkt_t *, unsigned int); -knot_rrset_t *kr_request_ensure_edns(struct kr_request *); -knot_pkt_t *kr_request_ensure_answer(struct kr_request *); -int kr_request_set_extended_error(struct kr_request *, int, const char *); -struct kr_rplan *kr_resolve_plan(struct kr_request *); -knot_mm_t *kr_resolve_pool(struct kr_request *); -struct kr_query *kr_rplan_push(struct kr_rplan *, struct kr_query *, const knot_dname_t *, uint16_t, uint16_t); -int kr_rplan_pop(struct kr_rplan *, struct kr_query *); -struct kr_query *kr_rplan_resolved(struct kr_rplan *); -struct kr_query *kr_rplan_last(struct kr_rplan *); -int kr_forward_add_target(struct kr_request *, const struct sockaddr *); -_Bool kr_log_is_debug_fun(enum kr_log_group, const struct kr_request *); -void kr_log_req1(const struct kr_request * const, uint32_t, const unsigned int, enum kr_log_group, const char *, const char *, ...); -void kr_log_q1(const struct kr_query * const, enum kr_log_group, const char *, const char *, ...); -const char *kr_log_grp2name(enum kr_log_group); -void kr_log_fmt(enum kr_log_group, kr_log_level_t, const char *, const char *, const char *, const char *, ...); -int kr_make_query(struct kr_query *, knot_pkt_t *); -void kr_pkt_make_auth_header(knot_pkt_t *); -int kr_pkt_put(knot_pkt_t *, const knot_dname_t *, uint32_t, uint16_t, uint16_t, const uint8_t *, uint16_t); -int kr_pkt_recycle(knot_pkt_t *); -int kr_pkt_clear_payload(knot_pkt_t *); -_Bool kr_pkt_has_wire(const knot_pkt_t *); -_Bool kr_pkt_has_dnssec(const knot_pkt_t *); -uint16_t kr_pkt_qclass(const knot_pkt_t *); -uint16_t kr_pkt_qtype(const knot_pkt_t *); -char *kr_pkt_text(const knot_pkt_t *); -void kr_rnd_buffered(void *, unsigned int); -uint32_t kr_rrsig_sig_inception(const knot_rdata_t *); -uint32_t kr_rrsig_sig_expiration(const knot_rdata_t *); -uint16_t kr_rrsig_type_covered(const knot_rdata_t *); -const char *kr_inaddr(const struct sockaddr *); -int kr_inaddr_family(const struct sockaddr *); -int kr_inaddr_len(const struct sockaddr *); -int kr_inaddr_str(const struct sockaddr *, char *, size_t *); -int kr_sockaddr_cmp(const struct sockaddr *, const struct sockaddr *); -int kr_sockaddr_len(const struct sockaddr *); -uint16_t kr_inaddr_port(const struct sockaddr *); -int kr_straddr_family(const char *); -int kr_straddr_subnet(void *, const char *); -int kr_bitcmp(const char *, const char *, int); -int kr_family_len(int); -struct sockaddr *kr_straddr_socket(const char *, int, knot_mm_t *); -int kr_straddr_split(const char *, char * restrict, uint16_t *); -_Bool kr_rank_test(uint8_t, uint8_t); -int kr_ranked_rrarray_add(ranked_rr_array_t *, const knot_rrset_t *, uint8_t, _Bool, uint32_t, knot_mm_t *); -int kr_ranked_rrarray_finalize(ranked_rr_array_t *, uint32_t, knot_mm_t *); -void kr_qflags_set(struct kr_qflags *, struct kr_qflags); -void kr_qflags_clear(struct kr_qflags *, struct kr_qflags); -int kr_zonecut_add(struct kr_zonecut *, const knot_dname_t *, const void *, int); -_Bool kr_zonecut_is_empty(struct kr_zonecut *); -void kr_zonecut_set(struct kr_zonecut *, const knot_dname_t *); -uint64_t kr_now(void); -const char *kr_strptime_diff(const char *, const char *, const char *, double *); -time_t kr_file_mtime(const char *); -long long kr_fssize(const char *); -const char *kr_dirent_name(const struct dirent *); -void lru_free_items_impl(struct lru *); -struct lru *lru_create_impl(unsigned int, unsigned int, knot_mm_t *, knot_mm_t *); -void *lru_get_impl(struct lru *, const char *, unsigned int, unsigned int, _Bool, _Bool *); -void *mm_realloc(knot_mm_t *, void *, size_t, size_t); -knot_rrset_t *kr_ta_get(trie_t *, const knot_dname_t *); -int kr_ta_add(trie_t *, const knot_dname_t *, uint16_t, uint32_t, const uint8_t *, uint16_t); -int kr_ta_del(trie_t *, const knot_dname_t *); -void kr_ta_clear(trie_t *); -_Bool kr_dnssec_key_sep_flag(const uint8_t *); -_Bool kr_dnssec_key_revoked(const uint8_t *); -int kr_dnssec_key_tag(uint16_t, const uint8_t *, size_t); -int kr_dnssec_key_match(const uint8_t *, size_t, const uint8_t *, size_t); -int kr_cache_closest_apex(struct kr_cache *, const knot_dname_t *, _Bool, knot_dname_t **); -int kr_cache_insert_rr(struct kr_cache *, const knot_rrset_t *, const knot_rrset_t *, uint8_t, uint32_t, _Bool); -int kr_cache_remove(struct kr_cache *, const knot_dname_t *, uint16_t); -int kr_cache_remove_subtree(struct kr_cache *, const knot_dname_t *, _Bool, int); -int kr_cache_commit(struct kr_cache *); -uint32_t packet_ttl(const knot_pkt_t *); -int kr_rules_init(const char *, size_t); -int kr_rules_commit(_Bool); -int kr_view_insert_action(const char *, const char *, kr_proto_set, const char *); -int kr_view_select_action(const struct kr_request *, knot_db_val_t *); -int kr_rule_tag_add(const char *, kr_rule_tags_t *); -int kr_rule_local_subtree(const knot_dname_t *, enum kr_rule_sub_t, uint32_t, kr_rule_tags_t); -int kr_rule_zonefile(const struct kr_rule_zonefile_config *); -int kr_rule_forward(const knot_dname_t *, kr_rule_fwd_flags_t, const struct sockaddr **); -int kr_rule_local_address(const char *, const char *, _Bool, uint32_t, kr_rule_tags_t); -int kr_rule_local_hosts(const char *, _Bool, uint32_t, kr_rule_tags_t); -typedef struct { - int sock_type; - _Bool tls; - _Bool http; - _Bool xdp; - _Bool freebind; - const char *kind; -} endpoint_flags_t; -typedef struct { - char **at; - size_t len; - size_t cap; -} addr_array_t; -typedef struct { - int fd; - endpoint_flags_t flags; -} flagged_fd_t; -typedef struct { - flagged_fd_t *at; - size_t len; - size_t cap; -} flagged_fd_array_t; -typedef struct { - const char **at; - size_t len; - size_t cap; -} config_array_t; -struct args { - addr_array_t addrs; - addr_array_t addrs_tls; - flagged_fd_array_t fds; - int control_fd; - int forks; - config_array_t config; - const char *rundir; - _Bool interactive; - _Bool quiet; - _Bool tty_binary_output; -}; -typedef struct { - const char *zone_file; - const char *origin; - uint32_t ttl; - enum {ZI_STAMP_NOW, ZI_STAMP_MTIM} time_src; - _Bool downgrade; - _Bool zonemd; - const knot_rrset_t *ds; - zi_callback cb; - void *cb_param; -} zi_config_t; -struct args *the_args; -struct endpoint { - void *handle; - int fd; - int family; - uint16_t port; - int16_t nic_queue; - _Bool engaged; - endpoint_flags_t flags; -}; -struct request_ctx { - struct kr_request req; - struct qr_task *task; - /* beware: hidden stub, to avoid hardcoding sockaddr lengths */ -}; -struct qr_task { - struct request_ctx *ctx; - /* beware: hidden stub, to avoid qr_tasklist_t */ -}; -int worker_resolve_exec(struct qr_task *, knot_pkt_t *); -knot_pkt_t *worker_resolve_mk_pkt(const char *, uint16_t, uint16_t, const struct kr_qflags *); -struct qr_task *worker_resolve_start(knot_pkt_t *, struct kr_qflags); -int zi_zone_import(const zi_config_t); -struct engine { - char _stub[]; -}; -struct worker_ctx { - char _stub[]; -}; -struct kr_context *the_resolver; -struct worker_ctx *the_worker; -struct engine *the_engine; -typedef struct { - uint8_t bitmap[32]; - uint8_t length; -} zs_win_t; -typedef struct { - uint8_t excl_flag; - uint16_t addr_family; - uint8_t prefix_length; -} zs_apl_t; -typedef struct { - uint32_t d1; - uint32_t d2; - uint32_t m1; - uint32_t m2; - uint32_t s1; - uint32_t s2; - uint32_t alt; - uint64_t siz; - uint64_t hp; - uint64_t vp; - int8_t lat_sign; - int8_t long_sign; - int8_t alt_sign; -} zs_loc_t; -typedef enum {ZS_STATE_NONE, ZS_STATE_DATA, ZS_STATE_ERROR, ZS_STATE_INCLUDE, ZS_STATE_EOF, ZS_STATE_STOP} zs_state_t; -typedef struct zs_scanner zs_scanner_t; -typedef struct zs_scanner { - int cs; - int top; - int stack[16]; - _Bool multiline; - uint64_t number64; - uint64_t number64_tmp; - uint32_t decimals; - uint32_t decimal_counter; - uint32_t item_length; - uint32_t item_length_position; - uint8_t *item_length_location; - uint32_t buffer_length; - uint8_t buffer[65535]; - char include_filename[65535]; - char *path; - zs_win_t windows[256]; - int16_t last_window; - zs_apl_t apl; - zs_loc_t loc; - uint8_t addr[16]; - _Bool long_string; - uint8_t *dname; - uint32_t *dname_length; - uint32_t dname_tmp_length; - uint32_t r_data_tail; - uint32_t zone_origin_length; - uint8_t zone_origin[318]; - uint16_t default_class; - uint32_t default_ttl; - zs_state_t state; - struct { - _Bool automatic; - void (*record)(zs_scanner_t *); - void (*error)(zs_scanner_t *); - void (*comment)(zs_scanner_t *); - void *data; - } process; - struct { - const char *start; - const char *current; - const char *end; - _Bool eof; - _Bool mmaped; - } input; - struct { - char *name; - int descriptor; - } file; - struct { - int code; - uint64_t counter; - _Bool fatal; - } error; - uint64_t line_counter; - uint32_t r_owner_length; - uint8_t r_owner[318]; - uint16_t r_class; - uint32_t r_ttl; - uint16_t r_type; - uint32_t r_data_length; - uint8_t r_data[65535]; -} zs_scanner_t; -void zs_deinit(zs_scanner_t *); -int zs_init(zs_scanner_t *, const char *, const uint16_t, const uint32_t); -int zs_parse_record(zs_scanner_t *); -int zs_set_input_file(zs_scanner_t *, const char *); -int zs_set_input_string(zs_scanner_t *, const char *, size_t); -const char *zs_strerror(const int); -]] diff --git a/daemon/lua/kres-gen-31.lua b/daemon/lua/kres-gen-31.lua deleted file mode 100644 index beeec8675..000000000 --- a/daemon/lua/kres-gen-31.lua +++ /dev/null @@ -1,696 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -local ffi = require('ffi') ---[[ This file is generated by ./kres-gen.sh ]] ffi.cdef[[ - -typedef @time_t@ time_t; -typedef @time_t@ __time_t; -typedef @time_t@ __suseconds_t; -struct timeval { - __time_t tv_sec; - __suseconds_t tv_usec; -}; - -typedef struct knot_dump_style knot_dump_style_t; -extern const knot_dump_style_t KR_DUMP_STYLE_DEFAULT; -struct kr_cdb_api {}; -struct lru {}; -typedef enum {KNOT_ANSWER, KNOT_AUTHORITY, KNOT_ADDITIONAL} knot_section_t; -typedef struct { - uint16_t pos; - uint16_t flags; - uint16_t compress_ptr[16]; -} knot_rrinfo_t; -typedef unsigned char knot_dname_t; -typedef struct { - uint16_t len; - uint8_t data[]; -} knot_rdata_t; -typedef struct { - uint16_t count; - uint32_t size; - knot_rdata_t *rdata; -} knot_rdataset_t; -typedef struct knot_db_val { - void *data; - size_t len; -} knot_db_val_t; - -typedef struct knot_mm { - void *ctx, *alloc, *free; -} knot_mm_t; - -typedef void *(*map_alloc_f)(void *, size_t); -typedef void (*map_free_f)(void *baton, void *ptr); -typedef void (*trace_log_f) (const struct kr_request *, const char *); -typedef void (*trace_callback_f)(struct kr_request *); -typedef uint8_t * (*alloc_wire_f)(struct kr_request *req, uint16_t *maxlen); -typedef bool (*addr_info_f)(struct sockaddr*); -typedef void (*zi_callback)(int state, void *param); -typedef struct { - knot_dname_t *_owner; - uint32_t _ttl; - uint16_t type; - uint16_t rclass; - knot_rdataset_t rrs; - void *additional; -} knot_rrset_t; - -struct kr_module; -typedef char *(kr_prop_cb)(void *, struct kr_module *, const char *); -typedef unsigned char knot_dname_storage_t[255]; -typedef struct knot_pkt knot_pkt_t; -typedef struct { - uint8_t *ptr[18]; -} knot_edns_options_t; -typedef struct { - knot_pkt_t *pkt; - uint16_t pos; - uint16_t count; -} knot_pktsection_t; -typedef struct knot_compr { - uint8_t *wire; - knot_rrinfo_t *rrinfo; - struct { - uint16_t pos; - uint8_t labels; - } suffix; -} knot_compr_t; -struct knot_pkt { - uint8_t *wire; - size_t size; - size_t max_size; - size_t parsed; - uint16_t reserved; - uint16_t qname_size; - uint16_t rrset_count; - uint16_t flags; - knot_rrset_t *opt_rr; - knot_rrset_t *tsig_rr; - knot_edns_options_t *edns_opts; - struct { - uint8_t *pos; - size_t len; - } tsig_wire; - knot_section_t current; - knot_pktsection_t sections[3]; - size_t rrset_allocd; - knot_rrinfo_t *rr_info; - knot_rrset_t *rr; - knot_mm_t mm; - knot_compr_t compr; -}; -typedef struct trie trie_t; -struct kr_qflags { - _Bool NO_MINIMIZE : 1; - _Bool NO_IPV6 : 1; - _Bool NO_IPV4 : 1; - _Bool TCP : 1; - _Bool NO_ANSWER : 1; - _Bool RESOLVED : 1; - _Bool AWAIT_IPV4 : 1; - _Bool AWAIT_IPV6 : 1; - _Bool AWAIT_CUT : 1; - _Bool NO_EDNS : 1; - _Bool CACHED : 1; - _Bool NO_CACHE : 1; - _Bool EXPIRING : 1; - _Bool ALLOW_LOCAL : 1; - _Bool DNSSEC_WANT : 1; - _Bool DNSSEC_BOGUS : 1; - _Bool DNSSEC_INSECURE : 1; - _Bool DNSSEC_CD : 1; - _Bool STUB : 1; - _Bool ALWAYS_CUT : 1; - _Bool DNSSEC_WEXPAND : 1; - _Bool PERMISSIVE : 1; - _Bool STRICT : 1; - _Bool BADCOOKIE_AGAIN : 1; - _Bool CNAME : 1; - _Bool REORDER_RR : 1; - _Bool TRACE : 1; - _Bool NO_0X20 : 1; - _Bool DNSSEC_NODS : 1; - _Bool DNSSEC_OPTOUT : 1; - _Bool NONAUTH : 1; - _Bool FORWARD : 1; - _Bool DNS64_MARK : 1; - _Bool CACHE_TRIED : 1; - _Bool NO_NS_FOUND : 1; - _Bool PKT_IS_SANE : 1; - _Bool DNS64_DISABLE : 1; - _Bool PASSTHRU_LEGACY : 1; -}; -typedef struct ranked_rr_array_entry { - uint32_t qry_uid; - uint8_t rank; - uint8_t revalidation_cnt; - _Bool cached : 1; - _Bool yielded : 1; - _Bool to_wire : 1; - _Bool expiring : 1; - _Bool in_progress : 1; - _Bool dont_cache : 1; - knot_rrset_t *rr; -} ranked_rr_array_entry_t; -typedef struct { - ranked_rr_array_entry_t **at; - size_t len; - size_t cap; -} ranked_rr_array_t; -typedef struct kr_http_header_array_entry { - char *name; - char *value; -} kr_http_header_array_entry_t; -typedef struct { - kr_http_header_array_entry_t *at; - size_t len; - size_t cap; -} kr_http_header_array_t; -typedef struct { - union kr_sockaddr *at; - size_t len; - size_t cap; -} kr_sockaddr_array_t; -struct kr_zonecut { - knot_dname_t *name; - knot_rrset_t *key; - knot_rrset_t *trust_anchor; - struct kr_zonecut *parent; - trie_t *nsset; - knot_mm_t *pool; - _Bool avoid_resolving; -}; -typedef struct { - struct kr_query **at; - size_t len; - size_t cap; -} kr_qarray_t; -struct kr_rplan { - kr_qarray_t pending; - kr_qarray_t resolved; - struct kr_query *initial; - struct kr_request *request; - knot_mm_t *pool; - uint32_t next_uid; -}; -struct kr_request_qsource_flags { - _Bool tcp : 1; - _Bool tls : 1; - _Bool http : 1; - _Bool xdp : 1; -}; -typedef unsigned long kr_rule_tags_t; -struct kr_rule_zonefile_config { - const char *filename; - const char *input_str; - size_t input_len; - _Bool is_rpz; - _Bool nodata; - kr_rule_tags_t tags; - const char *origin; - uint32_t ttl; -}; -struct kr_rule_fwd_flags { - _Bool is_auth : 1; - _Bool is_tcp : 1; - _Bool is_nods : 1; -}; -typedef struct kr_rule_fwd_flags kr_rule_fwd_flags_t; -struct kr_extended_error { - int32_t info_code; - const char *extra_text; -}; -struct kr_request { - struct kr_context *ctx; - knot_pkt_t *answer; - struct kr_query *current_query; - struct { - const struct sockaddr *addr; - const struct sockaddr *comm_addr; - const struct sockaddr *dst_addr; - const knot_pkt_t *packet; - struct kr_request_qsource_flags flags; - struct kr_request_qsource_flags comm_flags; - size_t size; - int32_t stream_id; - kr_http_header_array_t headers; - } qsource; - struct { - unsigned int rtt; - const struct kr_transport *transport; - } upstream; - struct kr_qflags options; - int state; - ranked_rr_array_t answ_selected; - ranked_rr_array_t auth_selected; - ranked_rr_array_t add_selected; - _Bool answ_validated; - _Bool auth_validated; - uint8_t rank; - struct kr_rplan rplan; - trace_log_f trace_log; - trace_callback_f trace_finish; - int vars_ref; - knot_mm_t pool; - unsigned int uid; - struct { - addr_info_f is_tls_capable; - addr_info_f is_tcp_connected; - addr_info_f is_tcp_waiting; - kr_sockaddr_array_t forwarding_targets; - } selection_context; - unsigned int count_no_nsaddr; - unsigned int count_fail_row; - alloc_wire_f alloc_wire_cb; - kr_rule_tags_t rule_tags; - struct kr_extended_error extended_error; -}; -enum kr_rank {KR_RANK_INITIAL, KR_RANK_OMIT, KR_RANK_TRY, KR_RANK_INDET = 4, KR_RANK_BOGUS, KR_RANK_MISMATCH, KR_RANK_MISSING, KR_RANK_INSECURE, KR_RANK_AUTH = 16, KR_RANK_SECURE = 32}; -typedef struct kr_cdb * kr_cdb_pt; -struct kr_cdb_stats { - uint64_t open; - uint64_t close; - uint64_t count; - uint64_t count_entries; - uint64_t clear; - uint64_t commit; - uint64_t read; - uint64_t read_miss; - uint64_t write; - uint64_t remove; - uint64_t remove_miss; - uint64_t match; - uint64_t match_miss; - uint64_t read_leq; - uint64_t read_leq_miss; - uint64_t read_less; - double usage_percent; -}; -typedef struct uv_timer_s uv_timer_t; -struct kr_cache { - kr_cdb_pt db; - const struct kr_cdb_api *api; - struct kr_cdb_stats stats; - uint32_t ttl_min; - uint32_t ttl_max; - struct timeval checkpoint_walltime; - uint64_t checkpoint_monotime; - uv_timer_t *health_timer; -}; -typedef struct kr_layer { - int state; - struct kr_request *req; - const struct kr_layer_api *api; - knot_pkt_t *pkt; - struct sockaddr *dst; - _Bool is_stream; -} kr_layer_t; -typedef struct kr_layer_api { - int (*begin)(kr_layer_t *); - int (*reset)(kr_layer_t *); - int (*finish)(kr_layer_t *); - int (*consume)(kr_layer_t *, knot_pkt_t *); - int (*produce)(kr_layer_t *, knot_pkt_t *); - int (*checkout)(kr_layer_t *, knot_pkt_t *, struct sockaddr *, int); - int (*answer_finalize)(kr_layer_t *); - void *data; - int cb_slots[]; -} kr_layer_api_t; -struct kr_prop { - kr_prop_cb *cb; - const char *name; - const char *info; -}; -struct kr_module { - char *name; - int (*init)(struct kr_module *); - int (*deinit)(struct kr_module *); - int (*config)(struct kr_module *, const char *); - const kr_layer_api_t *layer; - const struct kr_prop *props; - void *lib; - void *data; -}; -struct kr_server_selection { - _Bool initialized; - void (*choose_transport)(struct kr_query *, struct kr_transport **); - void (*update_rtt)(struct kr_query *, const struct kr_transport *, unsigned int); - void (*error)(struct kr_query *, const struct kr_transport *, enum kr_selection_error); - struct local_state *local_state; -}; -typedef int kr_log_level_t; -enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG}; -struct kr_query_data_src { - _Bool initialized; - _Bool all_set; - uint8_t rule_depth; - kr_rule_fwd_flags_t flags; - knot_db_val_t targets_ptr; -}; -enum kr_rule_sub_t {KR_RULE_SUB_EMPTY = 1, KR_RULE_SUB_NXDOMAIN, KR_RULE_SUB_NODATA, KR_RULE_SUB_REDIRECT}; -enum kr_proto {KR_PROTO_INTERNAL, KR_PROTO_UDP53, KR_PROTO_TCP53, KR_PROTO_DOT, KR_PROTO_DOH, KR_PROTO_DOQ, KR_PROTO_COUNT}; -typedef unsigned char kr_proto_set; -kr_layer_t kr_layer_t_static; -_Bool kr_dbg_assertion_abort; -int kr_dbg_assertion_fork; -const uint32_t KR_RULE_TTL_DEFAULT; - -typedef int32_t (*kr_stale_cb)(int32_t ttl, const knot_dname_t *owner, uint16_t type, - const struct kr_query *qry); - -void kr_rrset_init(knot_rrset_t *rrset, knot_dname_t *owner, - uint16_t type, uint16_t rclass, uint32_t ttl); -struct kr_query { - struct kr_query *parent; - knot_dname_t *sname; - uint16_t stype; - uint16_t sclass; - uint16_t id; - uint16_t reorder; - struct kr_qflags flags; - struct kr_qflags forward_flags; - uint32_t secret; - uint32_t uid; - int32_t vld_limit_crypto_remains; - uint32_t vld_limit_uid; - uint64_t creation_time_mono; - uint64_t timestamp_mono; - struct timeval timestamp; - struct kr_zonecut zone_cut; - struct kr_layer_pickle *deferred; - struct kr_query_data_src data_src; - int8_t cname_depth; - struct kr_query *cname_parent; - struct kr_request *request; - kr_stale_cb stale_cb; - struct kr_server_selection server_selection; -}; -struct kr_context { - struct kr_qflags options; - knot_rrset_t *downstream_opt_rr; - knot_rrset_t *upstream_opt_rr; - trie_t *trust_anchors; - trie_t *negative_anchors; - int32_t vld_limit_crypto; - struct kr_zonecut root_hints; - struct kr_cache cache; - unsigned int cache_rtt_tout_retry_interval; - char _stub[]; -}; -struct kr_transport { - knot_dname_t *ns_name; - /* beware: hidden stub, to avoid hardcoding sockaddr lengths */ -}; -const char *knot_strerror(int); -knot_dname_t *knot_dname_copy(const knot_dname_t *, knot_mm_t *); -knot_dname_t *knot_dname_from_str(uint8_t *, const char *, size_t); -int knot_dname_in_bailiwick(const knot_dname_t *, const knot_dname_t *); -_Bool knot_dname_is_equal(const knot_dname_t *, const knot_dname_t *); -size_t knot_dname_labels(const uint8_t *, const uint8_t *); -size_t knot_dname_size(const knot_dname_t *); -void knot_dname_to_lower(knot_dname_t *); -char *knot_dname_to_str(char *, const knot_dname_t *, size_t); -knot_rdata_t *knot_rdataset_at(const knot_rdataset_t *, uint16_t); -int knot_rdataset_merge(knot_rdataset_t *, const knot_rdataset_t *, knot_mm_t *); -int knot_rrset_add_rdata(knot_rrset_t *, const uint8_t *, uint16_t, knot_mm_t *); -void knot_rrset_free(knot_rrset_t *, knot_mm_t *); -int knot_rrset_txt_dump(const knot_rrset_t *, char **, size_t *, const knot_dump_style_t *); -int knot_rrset_txt_dump_data(const knot_rrset_t *, const size_t, char *, const size_t, const knot_dump_style_t *); -size_t knot_rrset_size(const knot_rrset_t *); -int knot_pkt_begin(knot_pkt_t *, knot_section_t); -int knot_pkt_put_question(knot_pkt_t *, const knot_dname_t *, uint16_t, uint16_t); -int knot_pkt_put_rotate(knot_pkt_t *, uint16_t, const knot_rrset_t *, uint16_t, uint16_t); -knot_pkt_t *knot_pkt_new(void *, uint16_t, knot_mm_t *); -void knot_pkt_free(knot_pkt_t *); -int knot_pkt_parse(knot_pkt_t *, unsigned int); -knot_rrset_t *kr_request_ensure_edns(struct kr_request *); -knot_pkt_t *kr_request_ensure_answer(struct kr_request *); -int kr_request_set_extended_error(struct kr_request *, int, const char *); -struct kr_rplan *kr_resolve_plan(struct kr_request *); -knot_mm_t *kr_resolve_pool(struct kr_request *); -struct kr_query *kr_rplan_push(struct kr_rplan *, struct kr_query *, const knot_dname_t *, uint16_t, uint16_t); -int kr_rplan_pop(struct kr_rplan *, struct kr_query *); -struct kr_query *kr_rplan_resolved(struct kr_rplan *); -struct kr_query *kr_rplan_last(struct kr_rplan *); -int kr_forward_add_target(struct kr_request *, const struct sockaddr *); -_Bool kr_log_is_debug_fun(enum kr_log_group, const struct kr_request *); -void kr_log_req1(const struct kr_request * const, uint32_t, const unsigned int, enum kr_log_group, const char *, const char *, ...); -void kr_log_q1(const struct kr_query * const, enum kr_log_group, const char *, const char *, ...); -const char *kr_log_grp2name(enum kr_log_group); -void kr_log_fmt(enum kr_log_group, kr_log_level_t, const char *, const char *, const char *, const char *, ...); -int kr_make_query(struct kr_query *, knot_pkt_t *); -void kr_pkt_make_auth_header(knot_pkt_t *); -int kr_pkt_put(knot_pkt_t *, const knot_dname_t *, uint32_t, uint16_t, uint16_t, const uint8_t *, uint16_t); -int kr_pkt_recycle(knot_pkt_t *); -int kr_pkt_clear_payload(knot_pkt_t *); -_Bool kr_pkt_has_wire(const knot_pkt_t *); -_Bool kr_pkt_has_dnssec(const knot_pkt_t *); -uint16_t kr_pkt_qclass(const knot_pkt_t *); -uint16_t kr_pkt_qtype(const knot_pkt_t *); -char *kr_pkt_text(const knot_pkt_t *); -void kr_rnd_buffered(void *, unsigned int); -uint32_t kr_rrsig_sig_inception(const knot_rdata_t *); -uint32_t kr_rrsig_sig_expiration(const knot_rdata_t *); -uint16_t kr_rrsig_type_covered(const knot_rdata_t *); -const char *kr_inaddr(const struct sockaddr *); -int kr_inaddr_family(const struct sockaddr *); -int kr_inaddr_len(const struct sockaddr *); -int kr_inaddr_str(const struct sockaddr *, char *, size_t *); -int kr_sockaddr_cmp(const struct sockaddr *, const struct sockaddr *); -int kr_sockaddr_len(const struct sockaddr *); -uint16_t kr_inaddr_port(const struct sockaddr *); -int kr_straddr_family(const char *); -int kr_straddr_subnet(void *, const char *); -int kr_bitcmp(const char *, const char *, int); -int kr_family_len(int); -struct sockaddr *kr_straddr_socket(const char *, int, knot_mm_t *); -int kr_straddr_split(const char *, char * restrict, uint16_t *); -_Bool kr_rank_test(uint8_t, uint8_t); -int kr_ranked_rrarray_add(ranked_rr_array_t *, const knot_rrset_t *, uint8_t, _Bool, uint32_t, knot_mm_t *); -int kr_ranked_rrarray_finalize(ranked_rr_array_t *, uint32_t, knot_mm_t *); -void kr_qflags_set(struct kr_qflags *, struct kr_qflags); -void kr_qflags_clear(struct kr_qflags *, struct kr_qflags); -int kr_zonecut_add(struct kr_zonecut *, const knot_dname_t *, const void *, int); -_Bool kr_zonecut_is_empty(struct kr_zonecut *); -void kr_zonecut_set(struct kr_zonecut *, const knot_dname_t *); -uint64_t kr_now(void); -const char *kr_strptime_diff(const char *, const char *, const char *, double *); -time_t kr_file_mtime(const char *); -long long kr_fssize(const char *); -const char *kr_dirent_name(const struct dirent *); -void lru_free_items_impl(struct lru *); -struct lru *lru_create_impl(unsigned int, unsigned int, knot_mm_t *, knot_mm_t *); -void *lru_get_impl(struct lru *, const char *, unsigned int, unsigned int, _Bool, _Bool *); -void *mm_realloc(knot_mm_t *, void *, size_t, size_t); -knot_rrset_t *kr_ta_get(trie_t *, const knot_dname_t *); -int kr_ta_add(trie_t *, const knot_dname_t *, uint16_t, uint32_t, const uint8_t *, uint16_t); -int kr_ta_del(trie_t *, const knot_dname_t *); -void kr_ta_clear(trie_t *); -_Bool kr_dnssec_key_sep_flag(const uint8_t *); -_Bool kr_dnssec_key_revoked(const uint8_t *); -int kr_dnssec_key_tag(uint16_t, const uint8_t *, size_t); -int kr_dnssec_key_match(const uint8_t *, size_t, const uint8_t *, size_t); -int kr_cache_closest_apex(struct kr_cache *, const knot_dname_t *, _Bool, knot_dname_t **); -int kr_cache_insert_rr(struct kr_cache *, const knot_rrset_t *, const knot_rrset_t *, uint8_t, uint32_t, _Bool); -int kr_cache_remove(struct kr_cache *, const knot_dname_t *, uint16_t); -int kr_cache_remove_subtree(struct kr_cache *, const knot_dname_t *, _Bool, int); -int kr_cache_commit(struct kr_cache *); -uint32_t packet_ttl(const knot_pkt_t *); -int kr_rules_init(const char *, size_t); -int kr_rules_commit(_Bool); -int kr_view_insert_action(const char *, const char *, kr_proto_set, const char *); -int kr_view_select_action(const struct kr_request *, knot_db_val_t *); -int kr_rule_tag_add(const char *, kr_rule_tags_t *); -int kr_rule_local_subtree(const knot_dname_t *, enum kr_rule_sub_t, uint32_t, kr_rule_tags_t); -int kr_rule_zonefile(const struct kr_rule_zonefile_config *); -int kr_rule_forward(const knot_dname_t *, kr_rule_fwd_flags_t, const struct sockaddr **); -int kr_rule_local_address(const char *, const char *, _Bool, uint32_t, kr_rule_tags_t); -int kr_rule_local_hosts(const char *, _Bool, uint32_t, kr_rule_tags_t); -typedef struct { - int sock_type; - _Bool tls; - _Bool http; - _Bool xdp; - _Bool freebind; - const char *kind; -} endpoint_flags_t; -typedef struct { - char **at; - size_t len; - size_t cap; -} addr_array_t; -typedef struct { - int fd; - endpoint_flags_t flags; -} flagged_fd_t; -typedef struct { - flagged_fd_t *at; - size_t len; - size_t cap; -} flagged_fd_array_t; -typedef struct { - const char **at; - size_t len; - size_t cap; -} config_array_t; -struct args { - addr_array_t addrs; - addr_array_t addrs_tls; - flagged_fd_array_t fds; - int control_fd; - int forks; - config_array_t config; - const char *rundir; - _Bool interactive; - _Bool quiet; - _Bool tty_binary_output; -}; -typedef struct { - const char *zone_file; - const char *origin; - uint32_t ttl; - enum {ZI_STAMP_NOW, ZI_STAMP_MTIM} time_src; - _Bool downgrade; - _Bool zonemd; - const knot_rrset_t *ds; - zi_callback cb; - void *cb_param; -} zi_config_t; -struct args *the_args; -struct endpoint { - void *handle; - int fd; - int family; - uint16_t port; - int16_t nic_queue; - _Bool engaged; - endpoint_flags_t flags; -}; -struct request_ctx { - struct kr_request req; - struct qr_task *task; - /* beware: hidden stub, to avoid hardcoding sockaddr lengths */ -}; -struct qr_task { - struct request_ctx *ctx; - /* beware: hidden stub, to avoid qr_tasklist_t */ -}; -int worker_resolve_exec(struct qr_task *, knot_pkt_t *); -knot_pkt_t *worker_resolve_mk_pkt(const char *, uint16_t, uint16_t, const struct kr_qflags *); -struct qr_task *worker_resolve_start(knot_pkt_t *, struct kr_qflags); -int zi_zone_import(const zi_config_t); -struct engine { - char _stub[]; -}; -struct worker_ctx { - char _stub[]; -}; -struct kr_context *the_resolver; -struct worker_ctx *the_worker; -struct engine *the_engine; -typedef struct { - uint8_t *params_position; - uint8_t *mandatory_position; - uint8_t *param_position; - int32_t last_key; -} zs_svcb_t; -typedef struct { - uint8_t bitmap[32]; - uint8_t length; -} zs_win_t; -typedef struct { - uint8_t excl_flag; - uint16_t addr_family; - uint8_t prefix_length; -} zs_apl_t; -typedef struct { - uint32_t d1; - uint32_t d2; - uint32_t m1; - uint32_t m2; - uint32_t s1; - uint32_t s2; - uint32_t alt; - uint64_t siz; - uint64_t hp; - uint64_t vp; - int8_t lat_sign; - int8_t long_sign; - int8_t alt_sign; -} zs_loc_t; -typedef enum {ZS_STATE_NONE, ZS_STATE_DATA, ZS_STATE_ERROR, ZS_STATE_INCLUDE, ZS_STATE_EOF, ZS_STATE_STOP} zs_state_t; -typedef struct zs_scanner zs_scanner_t; -typedef struct zs_scanner { - int cs; - int top; - int stack[16]; - _Bool multiline; - uint64_t number64; - uint64_t number64_tmp; - uint32_t decimals; - uint32_t decimal_counter; - uint32_t item_length; - uint32_t item_length_position; - uint8_t *item_length_location; - uint8_t *item_length2_location; - uint32_t buffer_length; - uint8_t buffer[65535]; - char include_filename[65535]; - char *path; - zs_win_t windows[256]; - int16_t last_window; - zs_apl_t apl; - zs_loc_t loc; - zs_svcb_t svcb; - uint8_t addr[16]; - _Bool long_string; - _Bool comma_list; - uint8_t *dname; - uint32_t *dname_length; - uint32_t dname_tmp_length; - uint32_t r_data_tail; - uint32_t zone_origin_length; - uint8_t zone_origin[318]; - uint16_t default_class; - uint32_t default_ttl; - zs_state_t state; - struct { - _Bool automatic; - void (*record)(zs_scanner_t *); - void (*error)(zs_scanner_t *); - void (*comment)(zs_scanner_t *); - void *data; - } process; - struct { - const char *start; - const char *current; - const char *end; - _Bool eof; - _Bool mmaped; - } input; - struct { - char *name; - int descriptor; - } file; - struct { - int code; - uint64_t counter; - _Bool fatal; - } error; - uint64_t line_counter; - uint32_t r_owner_length; - uint8_t r_owner[318]; - uint16_t r_class; - uint32_t r_ttl; - uint16_t r_type; - uint32_t r_data_length; - uint8_t r_data[65535]; -} zs_scanner_t; -void zs_deinit(zs_scanner_t *); -int zs_init(zs_scanner_t *, const char *, const uint16_t, const uint32_t); -int zs_parse_record(zs_scanner_t *); -int zs_set_input_file(zs_scanner_t *, const char *); -int zs_set_input_string(zs_scanner_t *, const char *, size_t); -const char *zs_strerror(const int); -]] diff --git a/daemon/lua/kres-gen-32.lua b/daemon/lua/kres-gen-32.lua deleted file mode 100644 index 9edee2de4..000000000 --- a/daemon/lua/kres-gen-32.lua +++ /dev/null @@ -1,697 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -local ffi = require('ffi') ---[[ This file is generated by ./kres-gen.sh ]] ffi.cdef[[ - -typedef @time_t@ time_t; -typedef @time_t@ __time_t; -typedef @time_t@ __suseconds_t; -struct timeval { - __time_t tv_sec; - __suseconds_t tv_usec; -}; - -typedef struct knot_dump_style knot_dump_style_t; -extern const knot_dump_style_t KR_DUMP_STYLE_DEFAULT; -struct kr_cdb_api {}; -struct lru {}; -typedef enum {KNOT_ANSWER, KNOT_AUTHORITY, KNOT_ADDITIONAL} knot_section_t; -typedef struct { - uint16_t pos; - uint16_t flags; - uint16_t compress_ptr[16]; -} knot_rrinfo_t; -typedef unsigned char knot_dname_t; -typedef struct { - uint16_t len; - uint8_t data[]; -} knot_rdata_t; -typedef struct { - uint16_t count; - uint32_t size; - knot_rdata_t *rdata; -} knot_rdataset_t; -typedef struct knot_db_val { - void *data; - size_t len; -} knot_db_val_t; - -typedef struct knot_mm { - void *ctx, *alloc, *free; -} knot_mm_t; - -typedef void *(*map_alloc_f)(void *, size_t); -typedef void (*map_free_f)(void *baton, void *ptr); -typedef void (*trace_log_f) (const struct kr_request *, const char *); -typedef void (*trace_callback_f)(struct kr_request *); -typedef uint8_t * (*alloc_wire_f)(struct kr_request *req, uint16_t *maxlen); -typedef bool (*addr_info_f)(struct sockaddr*); -typedef void (*zi_callback)(int state, void *param); -typedef struct { - knot_dname_t *_owner; - uint32_t _ttl; - uint16_t type; - uint16_t rclass; - knot_rdataset_t rrs; - void *additional; -} knot_rrset_t; - -struct kr_module; -typedef char *(kr_prop_cb)(void *, struct kr_module *, const char *); -typedef unsigned char knot_dname_storage_t[255]; -typedef struct knot_pkt knot_pkt_t; -typedef struct { - uint8_t *ptr[18]; -} knot_edns_options_t; -typedef struct { - knot_pkt_t *pkt; - uint16_t pos; - uint16_t count; -} knot_pktsection_t; -typedef struct knot_compr { - uint8_t *wire; - knot_rrinfo_t *rrinfo; - struct { - uint16_t pos; - uint8_t labels; - } suffix; -} knot_compr_t; -struct knot_pkt { - uint8_t *wire; - size_t size; - size_t max_size; - size_t parsed; - uint16_t reserved; - uint16_t qname_size; - uint16_t rrset_count; - uint16_t flags; - knot_rrset_t *opt_rr; - knot_rrset_t *tsig_rr; - knot_edns_options_t *edns_opts; - struct { - uint8_t *pos; - size_t len; - } tsig_wire; - knot_section_t current; - knot_pktsection_t sections[3]; - size_t rrset_allocd; - knot_rrinfo_t *rr_info; - knot_rrset_t *rr; - knot_mm_t mm; - knot_compr_t compr; - knot_dname_storage_t lower_qname; -}; -typedef struct trie trie_t; -struct kr_qflags { - _Bool NO_MINIMIZE : 1; - _Bool NO_IPV6 : 1; - _Bool NO_IPV4 : 1; - _Bool TCP : 1; - _Bool NO_ANSWER : 1; - _Bool RESOLVED : 1; - _Bool AWAIT_IPV4 : 1; - _Bool AWAIT_IPV6 : 1; - _Bool AWAIT_CUT : 1; - _Bool NO_EDNS : 1; - _Bool CACHED : 1; - _Bool NO_CACHE : 1; - _Bool EXPIRING : 1; - _Bool ALLOW_LOCAL : 1; - _Bool DNSSEC_WANT : 1; - _Bool DNSSEC_BOGUS : 1; - _Bool DNSSEC_INSECURE : 1; - _Bool DNSSEC_CD : 1; - _Bool STUB : 1; - _Bool ALWAYS_CUT : 1; - _Bool DNSSEC_WEXPAND : 1; - _Bool PERMISSIVE : 1; - _Bool STRICT : 1; - _Bool BADCOOKIE_AGAIN : 1; - _Bool CNAME : 1; - _Bool REORDER_RR : 1; - _Bool TRACE : 1; - _Bool NO_0X20 : 1; - _Bool DNSSEC_NODS : 1; - _Bool DNSSEC_OPTOUT : 1; - _Bool NONAUTH : 1; - _Bool FORWARD : 1; - _Bool DNS64_MARK : 1; - _Bool CACHE_TRIED : 1; - _Bool NO_NS_FOUND : 1; - _Bool PKT_IS_SANE : 1; - _Bool DNS64_DISABLE : 1; - _Bool PASSTHRU_LEGACY : 1; -}; -typedef struct ranked_rr_array_entry { - uint32_t qry_uid; - uint8_t rank; - uint8_t revalidation_cnt; - _Bool cached : 1; - _Bool yielded : 1; - _Bool to_wire : 1; - _Bool expiring : 1; - _Bool in_progress : 1; - _Bool dont_cache : 1; - knot_rrset_t *rr; -} ranked_rr_array_entry_t; -typedef struct { - ranked_rr_array_entry_t **at; - size_t len; - size_t cap; -} ranked_rr_array_t; -typedef struct kr_http_header_array_entry { - char *name; - char *value; -} kr_http_header_array_entry_t; -typedef struct { - kr_http_header_array_entry_t *at; - size_t len; - size_t cap; -} kr_http_header_array_t; -typedef struct { - union kr_sockaddr *at; - size_t len; - size_t cap; -} kr_sockaddr_array_t; -struct kr_zonecut { - knot_dname_t *name; - knot_rrset_t *key; - knot_rrset_t *trust_anchor; - struct kr_zonecut *parent; - trie_t *nsset; - knot_mm_t *pool; - _Bool avoid_resolving; -}; -typedef struct { - struct kr_query **at; - size_t len; - size_t cap; -} kr_qarray_t; -struct kr_rplan { - kr_qarray_t pending; - kr_qarray_t resolved; - struct kr_query *initial; - struct kr_request *request; - knot_mm_t *pool; - uint32_t next_uid; -}; -struct kr_request_qsource_flags { - _Bool tcp : 1; - _Bool tls : 1; - _Bool http : 1; - _Bool xdp : 1; -}; -typedef unsigned long kr_rule_tags_t; -struct kr_rule_zonefile_config { - const char *filename; - const char *input_str; - size_t input_len; - _Bool is_rpz; - _Bool nodata; - kr_rule_tags_t tags; - const char *origin; - uint32_t ttl; -}; -struct kr_rule_fwd_flags { - _Bool is_auth : 1; - _Bool is_tcp : 1; - _Bool is_nods : 1; -}; -typedef struct kr_rule_fwd_flags kr_rule_fwd_flags_t; -struct kr_extended_error { - int32_t info_code; - const char *extra_text; -}; -struct kr_request { - struct kr_context *ctx; - knot_pkt_t *answer; - struct kr_query *current_query; - struct { - const struct sockaddr *addr; - const struct sockaddr *comm_addr; - const struct sockaddr *dst_addr; - const knot_pkt_t *packet; - struct kr_request_qsource_flags flags; - struct kr_request_qsource_flags comm_flags; - size_t size; - int32_t stream_id; - kr_http_header_array_t headers; - } qsource; - struct { - unsigned int rtt; - const struct kr_transport *transport; - } upstream; - struct kr_qflags options; - int state; - ranked_rr_array_t answ_selected; - ranked_rr_array_t auth_selected; - ranked_rr_array_t add_selected; - _Bool answ_validated; - _Bool auth_validated; - uint8_t rank; - struct kr_rplan rplan; - trace_log_f trace_log; - trace_callback_f trace_finish; - int vars_ref; - knot_mm_t pool; - unsigned int uid; - struct { - addr_info_f is_tls_capable; - addr_info_f is_tcp_connected; - addr_info_f is_tcp_waiting; - kr_sockaddr_array_t forwarding_targets; - } selection_context; - unsigned int count_no_nsaddr; - unsigned int count_fail_row; - alloc_wire_f alloc_wire_cb; - kr_rule_tags_t rule_tags; - struct kr_extended_error extended_error; -}; -enum kr_rank {KR_RANK_INITIAL, KR_RANK_OMIT, KR_RANK_TRY, KR_RANK_INDET = 4, KR_RANK_BOGUS, KR_RANK_MISMATCH, KR_RANK_MISSING, KR_RANK_INSECURE, KR_RANK_AUTH = 16, KR_RANK_SECURE = 32}; -typedef struct kr_cdb * kr_cdb_pt; -struct kr_cdb_stats { - uint64_t open; - uint64_t close; - uint64_t count; - uint64_t count_entries; - uint64_t clear; - uint64_t commit; - uint64_t read; - uint64_t read_miss; - uint64_t write; - uint64_t remove; - uint64_t remove_miss; - uint64_t match; - uint64_t match_miss; - uint64_t read_leq; - uint64_t read_leq_miss; - uint64_t read_less; - double usage_percent; -}; -typedef struct uv_timer_s uv_timer_t; -struct kr_cache { - kr_cdb_pt db; - const struct kr_cdb_api *api; - struct kr_cdb_stats stats; - uint32_t ttl_min; - uint32_t ttl_max; - struct timeval checkpoint_walltime; - uint64_t checkpoint_monotime; - uv_timer_t *health_timer; -}; -typedef struct kr_layer { - int state; - struct kr_request *req; - const struct kr_layer_api *api; - knot_pkt_t *pkt; - struct sockaddr *dst; - _Bool is_stream; -} kr_layer_t; -typedef struct kr_layer_api { - int (*begin)(kr_layer_t *); - int (*reset)(kr_layer_t *); - int (*finish)(kr_layer_t *); - int (*consume)(kr_layer_t *, knot_pkt_t *); - int (*produce)(kr_layer_t *, knot_pkt_t *); - int (*checkout)(kr_layer_t *, knot_pkt_t *, struct sockaddr *, int); - int (*answer_finalize)(kr_layer_t *); - void *data; - int cb_slots[]; -} kr_layer_api_t; -struct kr_prop { - kr_prop_cb *cb; - const char *name; - const char *info; -}; -struct kr_module { - char *name; - int (*init)(struct kr_module *); - int (*deinit)(struct kr_module *); - int (*config)(struct kr_module *, const char *); - const kr_layer_api_t *layer; - const struct kr_prop *props; - void *lib; - void *data; -}; -struct kr_server_selection { - _Bool initialized; - void (*choose_transport)(struct kr_query *, struct kr_transport **); - void (*update_rtt)(struct kr_query *, const struct kr_transport *, unsigned int); - void (*error)(struct kr_query *, const struct kr_transport *, enum kr_selection_error); - struct local_state *local_state; -}; -typedef int kr_log_level_t; -enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG}; -struct kr_query_data_src { - _Bool initialized; - _Bool all_set; - uint8_t rule_depth; - kr_rule_fwd_flags_t flags; - knot_db_val_t targets_ptr; -}; -enum kr_rule_sub_t {KR_RULE_SUB_EMPTY = 1, KR_RULE_SUB_NXDOMAIN, KR_RULE_SUB_NODATA, KR_RULE_SUB_REDIRECT}; -enum kr_proto {KR_PROTO_INTERNAL, KR_PROTO_UDP53, KR_PROTO_TCP53, KR_PROTO_DOT, KR_PROTO_DOH, KR_PROTO_DOQ, KR_PROTO_COUNT}; -typedef unsigned char kr_proto_set; -kr_layer_t kr_layer_t_static; -_Bool kr_dbg_assertion_abort; -int kr_dbg_assertion_fork; -const uint32_t KR_RULE_TTL_DEFAULT; - -typedef int32_t (*kr_stale_cb)(int32_t ttl, const knot_dname_t *owner, uint16_t type, - const struct kr_query *qry); - -void kr_rrset_init(knot_rrset_t *rrset, knot_dname_t *owner, - uint16_t type, uint16_t rclass, uint32_t ttl); -struct kr_query { - struct kr_query *parent; - knot_dname_t *sname; - uint16_t stype; - uint16_t sclass; - uint16_t id; - uint16_t reorder; - struct kr_qflags flags; - struct kr_qflags forward_flags; - uint32_t secret; - uint32_t uid; - int32_t vld_limit_crypto_remains; - uint32_t vld_limit_uid; - uint64_t creation_time_mono; - uint64_t timestamp_mono; - struct timeval timestamp; - struct kr_zonecut zone_cut; - struct kr_layer_pickle *deferred; - struct kr_query_data_src data_src; - int8_t cname_depth; - struct kr_query *cname_parent; - struct kr_request *request; - kr_stale_cb stale_cb; - struct kr_server_selection server_selection; -}; -struct kr_context { - struct kr_qflags options; - knot_rrset_t *downstream_opt_rr; - knot_rrset_t *upstream_opt_rr; - trie_t *trust_anchors; - trie_t *negative_anchors; - int32_t vld_limit_crypto; - struct kr_zonecut root_hints; - struct kr_cache cache; - unsigned int cache_rtt_tout_retry_interval; - char _stub[]; -}; -struct kr_transport { - knot_dname_t *ns_name; - /* beware: hidden stub, to avoid hardcoding sockaddr lengths */ -}; -const char *knot_strerror(int); -knot_dname_t *knot_dname_copy(const knot_dname_t *, knot_mm_t *); -knot_dname_t *knot_dname_from_str(uint8_t *, const char *, size_t); -int knot_dname_in_bailiwick(const knot_dname_t *, const knot_dname_t *); -_Bool knot_dname_is_equal(const knot_dname_t *, const knot_dname_t *); -size_t knot_dname_labels(const uint8_t *, const uint8_t *); -size_t knot_dname_size(const knot_dname_t *); -void knot_dname_to_lower(knot_dname_t *); -char *knot_dname_to_str(char *, const knot_dname_t *, size_t); -knot_rdata_t *knot_rdataset_at(const knot_rdataset_t *, uint16_t); -int knot_rdataset_merge(knot_rdataset_t *, const knot_rdataset_t *, knot_mm_t *); -int knot_rrset_add_rdata(knot_rrset_t *, const uint8_t *, uint16_t, knot_mm_t *); -void knot_rrset_free(knot_rrset_t *, knot_mm_t *); -int knot_rrset_txt_dump(const knot_rrset_t *, char **, size_t *, const knot_dump_style_t *); -int knot_rrset_txt_dump_data(const knot_rrset_t *, const size_t, char *, const size_t, const knot_dump_style_t *); -size_t knot_rrset_size(const knot_rrset_t *); -int knot_pkt_begin(knot_pkt_t *, knot_section_t); -int knot_pkt_put_question(knot_pkt_t *, const knot_dname_t *, uint16_t, uint16_t); -int knot_pkt_put_rotate(knot_pkt_t *, uint16_t, const knot_rrset_t *, uint16_t, uint16_t); -knot_pkt_t *knot_pkt_new(void *, uint16_t, knot_mm_t *); -void knot_pkt_free(knot_pkt_t *); -int knot_pkt_parse(knot_pkt_t *, unsigned int); -knot_rrset_t *kr_request_ensure_edns(struct kr_request *); -knot_pkt_t *kr_request_ensure_answer(struct kr_request *); -int kr_request_set_extended_error(struct kr_request *, int, const char *); -struct kr_rplan *kr_resolve_plan(struct kr_request *); -knot_mm_t *kr_resolve_pool(struct kr_request *); -struct kr_query *kr_rplan_push(struct kr_rplan *, struct kr_query *, const knot_dname_t *, uint16_t, uint16_t); -int kr_rplan_pop(struct kr_rplan *, struct kr_query *); -struct kr_query *kr_rplan_resolved(struct kr_rplan *); -struct kr_query *kr_rplan_last(struct kr_rplan *); -int kr_forward_add_target(struct kr_request *, const struct sockaddr *); -_Bool kr_log_is_debug_fun(enum kr_log_group, const struct kr_request *); -void kr_log_req1(const struct kr_request * const, uint32_t, const unsigned int, enum kr_log_group, const char *, const char *, ...); -void kr_log_q1(const struct kr_query * const, enum kr_log_group, const char *, const char *, ...); -const char *kr_log_grp2name(enum kr_log_group); -void kr_log_fmt(enum kr_log_group, kr_log_level_t, const char *, const char *, const char *, const char *, ...); -int kr_make_query(struct kr_query *, knot_pkt_t *); -void kr_pkt_make_auth_header(knot_pkt_t *); -int kr_pkt_put(knot_pkt_t *, const knot_dname_t *, uint32_t, uint16_t, uint16_t, const uint8_t *, uint16_t); -int kr_pkt_recycle(knot_pkt_t *); -int kr_pkt_clear_payload(knot_pkt_t *); -_Bool kr_pkt_has_wire(const knot_pkt_t *); -_Bool kr_pkt_has_dnssec(const knot_pkt_t *); -uint16_t kr_pkt_qclass(const knot_pkt_t *); -uint16_t kr_pkt_qtype(const knot_pkt_t *); -char *kr_pkt_text(const knot_pkt_t *); -void kr_rnd_buffered(void *, unsigned int); -uint32_t kr_rrsig_sig_inception(const knot_rdata_t *); -uint32_t kr_rrsig_sig_expiration(const knot_rdata_t *); -uint16_t kr_rrsig_type_covered(const knot_rdata_t *); -const char *kr_inaddr(const struct sockaddr *); -int kr_inaddr_family(const struct sockaddr *); -int kr_inaddr_len(const struct sockaddr *); -int kr_inaddr_str(const struct sockaddr *, char *, size_t *); -int kr_sockaddr_cmp(const struct sockaddr *, const struct sockaddr *); -int kr_sockaddr_len(const struct sockaddr *); -uint16_t kr_inaddr_port(const struct sockaddr *); -int kr_straddr_family(const char *); -int kr_straddr_subnet(void *, const char *); -int kr_bitcmp(const char *, const char *, int); -int kr_family_len(int); -struct sockaddr *kr_straddr_socket(const char *, int, knot_mm_t *); -int kr_straddr_split(const char *, char * restrict, uint16_t *); -_Bool kr_rank_test(uint8_t, uint8_t); -int kr_ranked_rrarray_add(ranked_rr_array_t *, const knot_rrset_t *, uint8_t, _Bool, uint32_t, knot_mm_t *); -int kr_ranked_rrarray_finalize(ranked_rr_array_t *, uint32_t, knot_mm_t *); -void kr_qflags_set(struct kr_qflags *, struct kr_qflags); -void kr_qflags_clear(struct kr_qflags *, struct kr_qflags); -int kr_zonecut_add(struct kr_zonecut *, const knot_dname_t *, const void *, int); -_Bool kr_zonecut_is_empty(struct kr_zonecut *); -void kr_zonecut_set(struct kr_zonecut *, const knot_dname_t *); -uint64_t kr_now(void); -const char *kr_strptime_diff(const char *, const char *, const char *, double *); -time_t kr_file_mtime(const char *); -long long kr_fssize(const char *); -const char *kr_dirent_name(const struct dirent *); -void lru_free_items_impl(struct lru *); -struct lru *lru_create_impl(unsigned int, unsigned int, knot_mm_t *, knot_mm_t *); -void *lru_get_impl(struct lru *, const char *, unsigned int, unsigned int, _Bool, _Bool *); -void *mm_realloc(knot_mm_t *, void *, size_t, size_t); -knot_rrset_t *kr_ta_get(trie_t *, const knot_dname_t *); -int kr_ta_add(trie_t *, const knot_dname_t *, uint16_t, uint32_t, const uint8_t *, uint16_t); -int kr_ta_del(trie_t *, const knot_dname_t *); -void kr_ta_clear(trie_t *); -_Bool kr_dnssec_key_sep_flag(const uint8_t *); -_Bool kr_dnssec_key_revoked(const uint8_t *); -int kr_dnssec_key_tag(uint16_t, const uint8_t *, size_t); -int kr_dnssec_key_match(const uint8_t *, size_t, const uint8_t *, size_t); -int kr_cache_closest_apex(struct kr_cache *, const knot_dname_t *, _Bool, knot_dname_t **); -int kr_cache_insert_rr(struct kr_cache *, const knot_rrset_t *, const knot_rrset_t *, uint8_t, uint32_t, _Bool); -int kr_cache_remove(struct kr_cache *, const knot_dname_t *, uint16_t); -int kr_cache_remove_subtree(struct kr_cache *, const knot_dname_t *, _Bool, int); -int kr_cache_commit(struct kr_cache *); -uint32_t packet_ttl(const knot_pkt_t *); -int kr_rules_init(const char *, size_t); -int kr_rules_commit(_Bool); -int kr_view_insert_action(const char *, const char *, kr_proto_set, const char *); -int kr_view_select_action(const struct kr_request *, knot_db_val_t *); -int kr_rule_tag_add(const char *, kr_rule_tags_t *); -int kr_rule_local_subtree(const knot_dname_t *, enum kr_rule_sub_t, uint32_t, kr_rule_tags_t); -int kr_rule_zonefile(const struct kr_rule_zonefile_config *); -int kr_rule_forward(const knot_dname_t *, kr_rule_fwd_flags_t, const struct sockaddr **); -int kr_rule_local_address(const char *, const char *, _Bool, uint32_t, kr_rule_tags_t); -int kr_rule_local_hosts(const char *, _Bool, uint32_t, kr_rule_tags_t); -typedef struct { - int sock_type; - _Bool tls; - _Bool http; - _Bool xdp; - _Bool freebind; - const char *kind; -} endpoint_flags_t; -typedef struct { - char **at; - size_t len; - size_t cap; -} addr_array_t; -typedef struct { - int fd; - endpoint_flags_t flags; -} flagged_fd_t; -typedef struct { - flagged_fd_t *at; - size_t len; - size_t cap; -} flagged_fd_array_t; -typedef struct { - const char **at; - size_t len; - size_t cap; -} config_array_t; -struct args { - addr_array_t addrs; - addr_array_t addrs_tls; - flagged_fd_array_t fds; - int control_fd; - int forks; - config_array_t config; - const char *rundir; - _Bool interactive; - _Bool quiet; - _Bool tty_binary_output; -}; -typedef struct { - const char *zone_file; - const char *origin; - uint32_t ttl; - enum {ZI_STAMP_NOW, ZI_STAMP_MTIM} time_src; - _Bool downgrade; - _Bool zonemd; - const knot_rrset_t *ds; - zi_callback cb; - void *cb_param; -} zi_config_t; -struct args *the_args; -struct endpoint { - void *handle; - int fd; - int family; - uint16_t port; - int16_t nic_queue; - _Bool engaged; - endpoint_flags_t flags; -}; -struct request_ctx { - struct kr_request req; - struct qr_task *task; - /* beware: hidden stub, to avoid hardcoding sockaddr lengths */ -}; -struct qr_task { - struct request_ctx *ctx; - /* beware: hidden stub, to avoid qr_tasklist_t */ -}; -int worker_resolve_exec(struct qr_task *, knot_pkt_t *); -knot_pkt_t *worker_resolve_mk_pkt(const char *, uint16_t, uint16_t, const struct kr_qflags *); -struct qr_task *worker_resolve_start(knot_pkt_t *, struct kr_qflags); -int zi_zone_import(const zi_config_t); -struct engine { - char _stub[]; -}; -struct worker_ctx { - char _stub[]; -}; -struct kr_context *the_resolver; -struct worker_ctx *the_worker; -struct engine *the_engine; -typedef struct { - uint8_t *params_position; - uint8_t *mandatory_position; - uint8_t *param_position; - int32_t last_key; -} zs_svcb_t; -typedef struct { - uint8_t bitmap[32]; - uint8_t length; -} zs_win_t; -typedef struct { - uint8_t excl_flag; - uint16_t addr_family; - uint8_t prefix_length; -} zs_apl_t; -typedef struct { - uint32_t d1; - uint32_t d2; - uint32_t m1; - uint32_t m2; - uint32_t s1; - uint32_t s2; - uint32_t alt; - uint64_t siz; - uint64_t hp; - uint64_t vp; - int8_t lat_sign; - int8_t long_sign; - int8_t alt_sign; -} zs_loc_t; -typedef enum {ZS_STATE_NONE, ZS_STATE_DATA, ZS_STATE_ERROR, ZS_STATE_INCLUDE, ZS_STATE_EOF, ZS_STATE_STOP} zs_state_t; -typedef struct zs_scanner zs_scanner_t; -typedef struct zs_scanner { - int cs; - int top; - int stack[16]; - _Bool multiline; - uint64_t number64; - uint64_t number64_tmp; - uint32_t decimals; - uint32_t decimal_counter; - uint32_t item_length; - uint32_t item_length_position; - uint8_t *item_length_location; - uint8_t *item_length2_location; - uint32_t buffer_length; - uint8_t buffer[65535]; - char include_filename[65535]; - char *path; - zs_win_t windows[256]; - int16_t last_window; - zs_apl_t apl; - zs_loc_t loc; - zs_svcb_t svcb; - uint8_t addr[16]; - _Bool long_string; - _Bool comma_list; - uint8_t *dname; - uint32_t *dname_length; - uint32_t dname_tmp_length; - uint32_t r_data_tail; - uint32_t zone_origin_length; - uint8_t zone_origin[318]; - uint16_t default_class; - uint32_t default_ttl; - zs_state_t state; - struct { - _Bool automatic; - void (*record)(zs_scanner_t *); - void (*error)(zs_scanner_t *); - void (*comment)(zs_scanner_t *); - void *data; - } process; - struct { - const char *start; - const char *current; - const char *end; - _Bool eof; - _Bool mmaped; - } input; - struct { - char *name; - int descriptor; - } file; - struct { - int code; - uint64_t counter; - _Bool fatal; - } error; - uint64_t line_counter; - uint32_t r_owner_length; - uint8_t r_owner[318]; - uint16_t r_class; - uint32_t r_ttl; - uint16_t r_type; - uint32_t r_data_length; - uint8_t r_data[65535]; -} zs_scanner_t; -void zs_deinit(zs_scanner_t *); -int zs_init(zs_scanner_t *, const char *, const uint16_t, const uint32_t); -int zs_parse_record(zs_scanner_t *); -int zs_set_input_file(zs_scanner_t *, const char *); -int zs_set_input_string(zs_scanner_t *, const char *, size_t); -const char *zs_strerror(const int); -]] diff --git a/daemon/lua/kres-gen.sh b/daemon/lua/kres-gen.sh deleted file mode 100755 index 5039a723d..000000000 --- a/daemon/lua/kres-gen.sh +++ /dev/null @@ -1,380 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: GPL-3.0-or-later - -# Run with "ninja kres-gen" to re-generate $1 -set -o pipefail -o errexit -o nounset - -cd "$(dirname ${0})" -OUTNAME="$1" -CDEFS="../../scripts/gen-cdefs.sh" -LIBKRES="${MESON_BUILD_ROOT}/lib/libkres.so" -KRESD="${MESON_BUILD_ROOT}/daemon/kresd" -if [ ! -e "$LIBKRES" ]; then - # We probably use static libkres. - LIBKRES="$KRESD" -fi - -for REQFILE in "$CDEFS" "$LIBKRES" "$KRESD" -do - test '!' -s "$REQFILE" -a -r "$REQFILE" \ - && echo "Required file $REQFILE cannot be read, did you build binaries and shared libraries?" \ - && exit 1 -done - -# Write to "$OUTNAME" instead of stdout -mv "$OUTNAME"{,.bak} ||: -exec 5<&1- # move stdout into FD 5 -exec 1<>"$OUTNAME" # replace stdout with file - -restore() { - exec 1>&- # close stdout redirected into "$OUTNAME" - exec 1<&5- # restore original stdout - mv -v "$OUTNAME"{,.fail} ||: - mv -v "$OUTNAME"{.bak,} ||: - (>&2 echo "Failed to re-generate $OUTNAME! Missing debugsymbols? Missing shared library?") -} -trap restore ERR INT TERM - -### Dev's guide -# -# C declarations for lua are (mostly) generated to simplify maintenance. -# (Avoid typos, accidental mismatches, etc.) -# -# To regenerate the C definitions for lua: -# - you need to have debugging symbols for knot-dns and knot-resolver; -# you get those by compiling with -g; for knot-dns it might be enough -# to just install it with debugging symbols included (in your distro way) -# - run ninja kres-gen -# - the knot-dns libraries are found via pkg-config -# - you also need gdb on $PATH - -printf -- "-- SPDX-License-Identifier: GPL-3.0-or-later\n\n" -printf -- "local ffi = require('ffi')\n" -printf -- "--[[ This file is generated by ./kres-gen.sh ]] ffi.cdef[[\n" - -# Some system dependencies. TODO: this generated part isn't perfectly portable. -printf " -typedef @time_t@ time_t; -typedef @time_t@ __time_t; -typedef @time_t@ __suseconds_t; -struct timeval { - __time_t tv_sec; - __suseconds_t tv_usec; -}; -" - -## Various types (mainly), from libknot and libkres - -printf " -typedef struct knot_dump_style knot_dump_style_t; -extern const knot_dump_style_t KR_DUMP_STYLE_DEFAULT; -struct kr_cdb_api {}; -struct lru {}; -" - -${CDEFS} libknot types <<-EOF - knot_section_t - knot_rrinfo_t - knot_dname_t - knot_rdata_t - knot_rdataset_t - knot_db_val_t -EOF - -# The generator doesn't work well with typedefs of functions. -printf " -typedef struct knot_mm { - void *ctx, *alloc, *free; -} knot_mm_t; - -typedef void *(*map_alloc_f)(void *, size_t); -typedef void (*map_free_f)(void *baton, void *ptr); -typedef void (*trace_log_f) (const struct kr_request *, const char *); -typedef void (*trace_callback_f)(struct kr_request *); -typedef uint8_t * (*alloc_wire_f)(struct kr_request *req, uint16_t *maxlen); -typedef bool (*addr_info_f)(struct sockaddr*); -typedef void (*zi_callback)(int state, void *param); -" - -genResType() { - echo "$1" | ${CDEFS} ${LIBKRES} types -} - -# No simple way to fixup this rename in ./kres.lua AFAIK. -genResType "knot_rrset_t" | sed 's/\/_owner/; s/\/_ttl/' - -printf " -struct kr_module; -typedef char *(kr_prop_cb)(void *, struct kr_module *, const char *); -typedef unsigned char knot_dname_storage_t[255]; -" - -${CDEFS} ${LIBKRES} types <<-EOF - #knot_pkt_t contains indirect recursion - typedef knot_pkt_t - knot_edns_options_t - knot_pktsection_t - knot_compr_t - struct knot_pkt - #trie_t inside is private to libknot - typedef trie_t - # libkres - struct kr_qflags - ranked_rr_array_entry_t - ranked_rr_array_t - kr_http_header_array_entry_t - kr_http_header_array_t - kr_sockaddr_array_t - struct kr_zonecut - kr_qarray_t - struct kr_rplan - struct kr_request_qsource_flags - kr_rule_tags_t - struct kr_rule_zonefile_config - struct kr_rule_fwd_flags - typedef kr_rule_fwd_flags_t - struct kr_extended_error - struct kr_request - enum kr_rank - typedef kr_cdb_pt - struct kr_cdb_stats - typedef uv_timer_t - struct kr_cache - # lib/layer.h - kr_layer_t - kr_layer_api_t - # lib/module.h - struct kr_prop - struct kr_module - struct kr_server_selection - kr_log_level_t - enum kr_log_group - struct kr_query_data_src - enum kr_rule_sub_t - enum kr_proto - kr_proto_set -EOF - -${CDEFS} ${KRESD} variables <<-EOF - kr_layer_t_static -EOF -${CDEFS} ${LIBKRES} variables <<-EOF - kr_dbg_assertion_abort - kr_dbg_assertion_fork - KR_RULE_TTL_DEFAULT -EOF - -printf " -typedef int32_t (*kr_stale_cb)(int32_t ttl, const knot_dname_t *owner, uint16_t type, - const struct kr_query *qry); - -void kr_rrset_init(knot_rrset_t *rrset, knot_dname_t *owner, - uint16_t type, uint16_t rclass, uint32_t ttl); -" - -## Some definitions would need too many deps, so shorten them. - -genResType "struct kr_query" - -genResType "struct kr_context" | sed '/module_array_t/,$ d' -printf "\tchar _stub[];\n};\n" - - -echo "struct kr_transport" | ${CDEFS} ${KRESD} types | sed '/union /,$ d' -printf "\t/* beware: hidden stub, to avoid hardcoding sockaddr lengths */\n};\n" - -## libknot API -${CDEFS} libknot functions <<-EOF -# Utils - knot_strerror -# Domain names - knot_dname_copy - knot_dname_from_str - knot_dname_in_bailiwick - knot_dname_is_equal - knot_dname_labels - knot_dname_size - knot_dname_to_lower - knot_dname_to_str -# Resource records - knot_rdataset_at - knot_rdataset_merge - knot_rrset_add_rdata - knot_rrset_free - knot_rrset_txt_dump - knot_rrset_txt_dump_data - knot_rrset_size -# Packet - knot_pkt_begin - knot_pkt_put_question - knot_pkt_put_rotate - knot_pkt_new - knot_pkt_free - knot_pkt_parse -EOF - -## libkres API -${CDEFS} ${LIBKRES} functions <<-EOF -# Resolution request - kr_request_ensure_edns - kr_request_ensure_answer - kr_request_set_extended_error - kr_resolve_plan - kr_resolve_pool -# Resolution plan - kr_rplan_push - kr_rplan_pop - kr_rplan_resolved - kr_rplan_last -# Forwarding - kr_forward_add_target -# Utils - kr_log_is_debug_fun - kr_log_req1 - kr_log_q1 - kr_log_grp2name - kr_log_fmt - kr_make_query - kr_pkt_make_auth_header - kr_pkt_put - kr_pkt_recycle - kr_pkt_clear_payload - kr_pkt_has_wire - kr_pkt_has_dnssec - kr_pkt_qclass - kr_pkt_qtype - kr_pkt_text - kr_rnd_buffered - kr_rrsig_sig_inception - kr_rrsig_sig_expiration - kr_rrsig_type_covered - kr_inaddr - kr_inaddr_family - kr_inaddr_len - kr_inaddr_str - kr_sockaddr_cmp - kr_sockaddr_len - kr_inaddr_port - kr_straddr_family - kr_straddr_subnet - kr_bitcmp - kr_family_len - kr_straddr_socket - kr_straddr_split - kr_rank_test - kr_ranked_rrarray_add - kr_ranked_rrarray_finalize - kr_qflags_set - kr_qflags_clear - kr_zonecut_add - kr_zonecut_is_empty - kr_zonecut_set - kr_now - kr_strptime_diff - kr_file_mtime - kr_fssize - kr_dirent_name - lru_free_items_impl - lru_create_impl - lru_get_impl - mm_realloc -# Trust anchors - kr_ta_get - kr_ta_add - kr_ta_del - kr_ta_clear -# DNSSEC - kr_dnssec_key_sep_flag - kr_dnssec_key_revoked - kr_dnssec_key_tag - kr_dnssec_key_match -# Cache - kr_cache_closest_apex - kr_cache_insert_rr - kr_cache_remove - kr_cache_remove_subtree - kr_cache_commit - # FIXME: perhaps rename this exported symbol - packet_ttl -# New policy - kr_rules_init - kr_rules_commit - kr_view_insert_action - kr_view_select_action - kr_rule_tag_add - kr_rule_local_subtree - kr_rule_zonefile - kr_rule_forward - kr_rule_local_address - kr_rule_local_hosts -EOF - - -## kresd itself: worker stuff - -${CDEFS} ${KRESD} types <<-EOF - endpoint_flags_t - # struct args is a bit complex - addr_array_t - flagged_fd_t - flagged_fd_array_t - config_array_t - struct args - zi_config_t -EOF -echo "struct args *the_args;" - -echo "struct endpoint" | ${CDEFS} ${KRESD} types | sed 's/uv_handle_t \*/void */' -echo "struct request_ctx" | ${CDEFS} ${KRESD} types | sed '/struct {/,$ d' -printf "\t/* beware: hidden stub, to avoid hardcoding sockaddr lengths */\n};\n" - -echo "struct qr_task" | ${CDEFS} ${KRESD} types | sed '/pktbuf/,$ d' -printf "\t/* beware: hidden stub, to avoid qr_tasklist_t */\n};\n" - - -${CDEFS} ${KRESD} functions <<-EOF - worker_resolve_exec - worker_resolve_mk_pkt - worker_resolve_start - zi_zone_import -EOF - -echo "struct engine" | ${CDEFS} ${KRESD} types | sed '/module_array_t/,$ d' -printf "\tchar _stub[];\n};\n" - -echo "struct worker_ctx" | ${CDEFS} ${KRESD} types | sed '/uv_loop_t/,$ d' -printf "\tchar _stub[];\n};\n" - -echo "struct kr_context *the_resolver;" -echo "struct worker_ctx *the_worker;" -echo "struct engine *the_engine;" - - -## libzscanner API for ./zonefile.lua -if pkg-config libknot --atleast-version=3.1; then - echo "zs_svcb_t" | ${CDEFS} libzscanner types -fi -${CDEFS} libzscanner types <<-EOF - zs_win_t - zs_apl_t - zs_loc_t - zs_state_t - #zs_scanner_t contains recursion - typedef zs_scanner_t - zs_scanner_t -EOF -${CDEFS} libzscanner functions <<-EOF - zs_deinit - zs_init - zs_parse_record - zs_set_input_file - zs_set_input_string - zs_strerror -EOF - -printf "]]\n" - -rm "$OUTNAME".bak ||: -(>&2 echo "Successfully re-generated ${PWD}/$OUTNAME") - -exit 0 diff --git a/daemon/lua/kres.lua b/daemon/lua/kres.lua deleted file mode 100644 index 44434b4d2..000000000 --- a/daemon/lua/kres.lua +++ /dev/null @@ -1,1143 +0,0 @@ --- LuaJIT ffi bindings for libkres, a DNS resolver library. --- SPDX-License-Identifier: GPL-3.0-or-later --- --- @note Since it's statically compiled, it expects to find the symbols in the C namespace. - -local kres -- the module - -local kluautil = require('kluautil') -local ffi = require('ffi') -local bit = require('bit') -local bor = bit.bor -local band = bit.band -local C = ffi.C -local knot = ffi.load(libknot_SONAME) - --- Inverse table -local function itable(t, tolower) - local it = {} - for k,v in pairs(t) do it[v] = tolower and string.lower(k) or k end - return it -end - --- Byte order conversions -local function htonl(x) return x end -local htons = htonl -if ffi.abi('le') then - htonl = bit.bswap - function htons(x) return bit.rshift(htonl(x), 16) end -end - --- Basic types -local u16_p = ffi.typeof('uint16_t *') - --- Various declarations that are very stable. -ffi.cdef[[ -/* - * Data structures - */ - -struct sockaddr { - uint16_t sa_family; - uint8_t _stub[]; /* Do not touch */ -}; - -struct knot_error { - int code; -}; - -/* - * libc APIs - */ -void * malloc(size_t size); -void free(void *ptr); -int inet_pton(int af, const char *src, void *dst); -int gettimeofday(struct timeval *tv, struct timezone *tz); -]] - -require('kres-gen') - --- Error code representation -local knot_error_t = ffi.typeof('struct knot_error') -ffi.metatype(knot_error_t, { - -- Convert libknot error strings - __tostring = function(self) - return ffi.string(knot.knot_strerror(self.code)) - end, -}); - --- Constant tables -local const_class = { - IN = 1, - CH = 3, - NONE = 254, - ANY = 255, -} -local const_type = { - A = 1, - NS = 2, - MD = 3, - MF = 4, - CNAME = 5, - SOA = 6, - MB = 7, - MG = 8, - MR = 9, - NULL = 10, - WKS = 11, - PTR = 12, - HINFO = 13, - MINFO = 14, - MX = 15, - TXT = 16, - RP = 17, - AFSDB = 18, - X25 = 19, - ISDN = 20, - RT = 21, - NSAP = 22, - ['NSAP-PTR'] = 23, - SIG = 24, - KEY = 25, - PX = 26, - GPOS = 27, - AAAA = 28, - LOC = 29, - NXT = 30, - EID = 31, - NIMLOC = 32, - SRV = 33, - ATMA = 34, - NAPTR = 35, - KX = 36, - CERT = 37, - A6 = 38, - DNAME = 39, - SINK = 40, - OPT = 41, - APL = 42, - DS = 43, - SSHFP = 44, - IPSECKEY = 45, - RRSIG = 46, - NSEC = 47, - DNSKEY = 48, - DHCID = 49, - NSEC3 = 50, - NSEC3PARAM = 51, - TLSA = 52, - SMIMEA = 53, - HIP = 55, - NINFO = 56, - RKEY = 57, - TALINK = 58, - CDS = 59, - CDNSKEY = 60, - OPENPGPKEY = 61, - CSYNC = 62, - ZONEMD = 63, - SVCB = 64, - HTTPS = 65, - - SPF = 99, - UINFO = 100, - UID = 101, - GID = 102, - UNSPEC = 103, - NID = 104, - L32 = 105, - L64 = 106, - LP = 107, - EUI48 = 108, - EUI64 = 109, - TKEY = 249, - TSIG = 250, - IXFR = 251, - AXFR = 252, - MAILB = 253, - MAILA = 254, - ANY = 255, - URI = 256, - CAA = 257, - AVC = 258, - DOA = 259, - TA = 32768, - DLV = 32769, -} -local const_section = { - ANSWER = 0, - AUTHORITY = 1, - ADDITIONAL = 2, -} -local const_opcode = { - QUERY = 0, - IQUERY = 1, - STATUS = 2, - NOTIFY = 4, - UPDATE = 5, -} -local const_rcode = { - NOERROR = 0, - FORMERR = 1, - SERVFAIL = 2, - NXDOMAIN = 3, - NOTIMPL = 4, - REFUSED = 5, - YXDOMAIN = 6, - YXRRSET = 7, - NXRRSET = 8, - NOTAUTH = 9, - NOTZONE = 10, - BADVERS = 16, - BADCOOKIE = 23, -} --- This corresponds to `enum kr_rank`, it's not possible to do this without introspection unfortunately -local const_rank = { - INITIAL = 0, - OMIT = 1, - TRY = 2, - INDET = 4, - BOGUS = 5, - MISMATCH = 6, - MISSING = 7, - INSECURE = 8, - AUTH = 16, - SECURE = 32 -} -local const_extended_error = { - NONE = -1, - OTHER = 0, - DNSKEY_ALG = 1, - DS_DIGEST = 2, - STALE = 3, - FORGED = 4, - INDETERMINATE = 5, - BOGUS = 6, - SIG_EXPIRED = 7, - SIG_NOTYET = 8, - DNSKEY_MISS = 9, - RRSIG_MISS = 10, - DNSKEY_BIT = 11, - NSEC_MISS = 12, - CACHED_ERR = 13, - NOT_READY = 14, - BLOCKED = 15, - CENSORED = 16, - FILTERED = 17, - PROHIBITED = 18, - STALE_NXD = 19, - NOTAUTH = 20, - NOTSUP = 21, - NREACH_AUTH = 22, - NETWORK = 23, - INV_DATA = 24, -} - --- Constant tables -local const_class_str = itable(const_class) -local const_type_str = itable(const_type) -local const_rcode_str = itable(const_rcode) -local const_opcode_str = itable(const_opcode) -local const_section_str = itable(const_section) -local const_rank_str = itable(const_rank) -local const_extended_error_str = itable(const_extended_error) - --- Metatype for RR types to allow anonymous types -setmetatable(const_type, { - __index = function (t, k) - local v = rawget(t, k) - if v then return v end - -- Allow TYPE%d notation - if string.find(k, 'TYPE', 1, true) then - return tonumber(k:sub(5)) - end - -- Unknown type - return - end -}) - --- Metatype for RR types to allow anonymous string types -setmetatable(const_type_str, { - __index = function (t, k) - local v = rawget(t, k) - if v then return v end - return string.format('TYPE%d', k) - end -}) - --- Metatype for timeval -local timeval_t = ffi.typeof('struct timeval') - --- Metatype for sockaddr -local addr_buf = ffi.new('char[16]') -local str_addr_buf = ffi.new('char[46 + 1 + 6 + 1]') -- INET6_ADDRSTRLEN + #port + \0 -local str_addr_buf_len = ffi.sizeof(str_addr_buf) -local sockaddr_t = ffi.typeof('struct sockaddr') -ffi.metatype( sockaddr_t, { - __index = { - len = function(sa) return C.kr_inaddr_len(sa) end, - ip = function (sa) return C.kr_inaddr(sa) end, - family = function (sa) return C.kr_inaddr_family(sa) end, - port = function (sa) return C.kr_inaddr_port(sa) end, - }, - __tostring = function(sa) - assert(ffi.istype(sockaddr_t, sa)) - local len = ffi.new('size_t[1]', str_addr_buf_len) - local ret = C.kr_inaddr_str(sa, str_addr_buf, len) - if ret ~= 0 then - error('kr_inaddr_str failed: ' .. tostring(ret)) - end - return ffi.string(str_addr_buf) - end, - -}) - --- Parametrized LRU table -local typed_lru_t = 'struct { $ value_type[1]; struct lru * lru; }' - --- Metatype for LRU -local lru_metatype = { - -- Create a new LRU with given value type - -- By default the LRU will have a capacity of 65536 elements - -- Note: At the point the parametrized type must be finalized - __new = function (ct, max_slots, alignment) - -- {0} will make sure that the value is coercible to a number - local o = ffi.new(ct, {0}, C.lru_create_impl(max_slots or 65536, alignment or 1, nil, nil)) - if o.lru == nil then - return - end - return o - end, - -- Destructor to clean allocated memory - __gc = function (self) - assert(self.lru ~= nil) - C.lru_free_items_impl(self.lru) - C.free(self.lru) - self.lru = nil - end, - __index = { - -- Look up key and return reference to current - -- Note: The key will be inserted if it doesn't exist - get_ref = function (self, key, key_len, allow_insert) - local insert = allow_insert and true or false - local ptr = C.lru_get_impl(self.lru, key, key_len or #key, ffi.sizeof(self.value_type[0]), insert, nil) - if ptr ~= nil then - return ffi.cast(self.value_type, ptr) - end - end, - -- Look up key and return current value - get = function (self, key, key_len) - local ref = self:get_ref(key, key_len, false) - if ref then - return ref[0] - end - end, - -- Set value for key to given value - set = function (self, key, value, key_len) - local ref = self:get_ref(key, key_len, true) - if ref then - ref[0] = value - return true - end - end, - }, -} - --- Pretty print for domain name -local function dname2str(dname) - if dname == nil then return end - local text_name = ffi.gc(C.knot_dname_to_str(nil, dname, 0), C.free) - if text_name ~= nil then - return ffi.string(text_name) - end -end - --- Convert dname pointer to wireformat string -local function dname2wire(name) - if name == nil then return nil end - return ffi.string(name, knot.knot_dname_size(name)) -end - --- Parse RDATA, from presentation to wire-format. --- in: a table of strings, each a line describing RRTYPE+RDATA --- out: a table of RDATA strings in wire-format -local function parse_rdata(strs, nothing) - local zonefile = require('zonefile') - if type(strs) ~= 'table' or nothing ~= nil then -- accidents like forgetting braces - error('a table of string(s) is expected', 2) - end - local res = {} - for _, line in ipairs(strs) do - if type(line) ~= 'string' then - error('table must contain strings', 2) - end - local rrs = zonefile.string('. ' .. line) - if #rrs == 0 then error('failed to parse line: ' .. line, 2) end - for _, rr in ipairs(rrs) do - table.insert(res, rr.rdata) - end - end - return res -end - --- RR sets created in Lua must have a destructor to release allocated memory -local function rrset_free(rr) - if rr._owner ~= nil then ffi.C.free(rr._owner) end - if rr:rdcount() > 0 then ffi.C.free(rr.rrs.rdata) end -end - --- Metatype for RR set. Beware, the indexing is 0-based (rdata, get, tostring). -local rrset_buflen = (64 + 1) * 1024 -local rrset_buf = ffi.new('char[?]', rrset_buflen) -local knot_rrset_pt = ffi.typeof('knot_rrset_t *') -local knot_rrset_t = ffi.typeof('knot_rrset_t') -ffi.metatype( knot_rrset_t, { - -- Create a new empty RR set object with an allocated owner and a destructor - __new = function (ct, owner, rrtype, rrclass, ttl) - local rr = ffi.new(ct) - C.kr_rrset_init(rr, - owner and knot.knot_dname_copy(owner, nil), - rrtype or 0, - rrclass or const_class.IN, - ttl or 0) - return ffi.gc(rr, rrset_free) - end, - -- BEWARE: `owner` and `rdata` are typed as a plain lua strings - -- and not the real types they represent. - __tostring = function(rr) - assert(ffi.istype(knot_rrset_t, rr)) - return rr:txt_dump() - end, - __index = { - owner = function(rr) - assert(ffi.istype(knot_rrset_t, rr)) - return dname2wire(rr._owner) - end, - ttl = function(rr) - assert(ffi.istype(knot_rrset_t, rr)) - return tonumber(rr._ttl) - end, - class = function(rr, val) - assert(ffi.istype(knot_rrset_t, rr)) - if val then - rr.rclass = val - end - return tonumber(rr.rclass) - end, - rdata_pt = function(rr, i) - assert(ffi.istype(knot_rrset_t, rr) and i >= 0 and i < rr:rdcount()) - return knot.knot_rdataset_at(rr.rrs, i) - end, - rdata = function(rr, i) - assert(ffi.istype(knot_rrset_t, rr)) - local rd = rr:rdata_pt(i) - return ffi.string(rd.data, rd.len) - end, - get = function(rr, i) - assert(ffi.istype(knot_rrset_t, rr) and i >= 0 and i < rr:rdcount()) - return {owner = rr:owner(), - ttl = rr:ttl(), - class = tonumber(rr.rclass), - type = tonumber(rr.type), - rdata = rr:rdata(i)} - end, - tostring = function(rr, i) - assert(ffi.istype(knot_rrset_t, rr) - and (i == nil or (i >= 0 and i < rr:rdcount())) ) - if rr:rdcount() > 0 then - local ret - if i ~= nil then - ret = knot.knot_rrset_txt_dump_data(rr, i, rrset_buf, rrset_buflen, C.KR_DUMP_STYLE_DEFAULT) - else - ret = -1 - end - return ret >= 0 and ffi.string(rrset_buf) - end - end, - - -- Dump the rrset in presentation format (dig-like). - txt_dump = function(rr, style) - assert(ffi.istype(knot_rrset_t, rr)) - local bufsize = 1024 - local dump = ffi.new('char *[1]', C.malloc(bufsize)) - -- ^ one pointer to a string - local size = ffi.new('size_t[1]', { bufsize }) -- one size_t = bufsize - - local ret = knot.knot_rrset_txt_dump(rr, dump, size, - style or C.KR_DUMP_STYLE_DEFAULT) - local result = nil - if ret >= 0 then - result = ffi.string(dump[0], ret) - end - C.free(dump[0]) - return result - end, - txt_fields = function(rr, i) - assert(ffi.istype(knot_rrset_t, rr)) - assert(i >= 0 and i < rr:rdcount()) - local bufsize = 1024 - local dump = ffi.new('char *', C.malloc(bufsize)) - ffi.gc(dump, C.free) - - local ret = knot.knot_rrset_txt_dump_data(rr, i, dump, 1024, - C.KR_DUMP_STYLE_DEFAULT) - if ret >= 0 then - local out = {} - out.owner = dname2str(rr:owner()) - out.ttl = rr:ttl() - out.class = kres.tostring.class[rr:class()] - out.type = kres.tostring.type[rr.type] - out.rdata = ffi.string(dump, ret) - return out - else - panic('knot_rrset_txt_dump_data failure ' .. tostring(ret)) - end - end, - -- Return RDATA count for this RR set - rdcount = function(rr) - assert(ffi.istype(knot_rrset_t, rr)) - return tonumber(rr.rrs.count) - end, - -- Add binary RDATA to the RR set - add_rdata = function (rr, rdata, rdlen, no_ttl) - assert(ffi.istype(knot_rrset_t, rr)) - assert(no_ttl == nil, 'add_rdata() can not accept TTL anymore') - local ret = knot.knot_rrset_add_rdata(rr, rdata, tonumber(rdlen), nil) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - -- Merge data from another RR set into the current one - merge_rdata = function (rr, source) - assert(ffi.istype(knot_rrset_t, rr)) - assert(ffi.istype(knot_rrset_t, source)) - local ret = knot.knot_rdataset_merge(rr.rrs, source.rrs, nil) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - -- Return type covered by this RRSIG - type_covered = function(rr, i) - i = i or 0 - assert(ffi.istype(knot_rrset_t, rr) and i >= 0 and i < rr:rdcount()) - if rr.type ~= const_type.RRSIG then return end - return tonumber(C.kr_rrsig_type_covered(knot.knot_rdataset_at(rr.rrs, i))) - end, - -- Check whether a RRSIG is covering current RR set - is_covered_by = function(rr, rrsig) - assert(ffi.istype(knot_rrset_t, rr)) - assert(ffi.istype(knot_rrset_t, rrsig)) - assert(rrsig.type == const_type.RRSIG) - return (rr.type == rrsig:type_covered() and rr:owner() == rrsig:owner()) - end, - -- Return RR set wire size - wire_size = function(rr) - assert(ffi.istype(knot_rrset_t, rr)) - return tonumber(knot.knot_rrset_size(rr)) - end, - }, -}) - --- Destructor for packet accepts pointer to pointer -local knot_pkt_t = ffi.typeof('knot_pkt_t') - --- Helpers for reading/writing 16-bit numbers from packet wire -local function pkt_u16(pkt, off, val) - assert(ffi.istype(knot_pkt_t, pkt)) - local ptr = ffi.cast(u16_p, pkt.wire + off) - if val ~= nil then ptr[0] = htons(val) end - return (htons(ptr[0])) -end - --- Helpers for reading/writing message header flags -local function pkt_bit(pkt, byteoff, bitmask, val) - -- If the value argument is passed, set/clear the desired bit - if val ~= nil then - if val then pkt.wire[byteoff] = bit.bor(pkt.wire[byteoff], bitmask) - else pkt.wire[byteoff] = bit.band(pkt.wire[byteoff], bit.bnot(bitmask)) end - return true - end - return (bit.band(pkt.wire[byteoff], bitmask) ~= 0) -end - -local function knot_pkt_rr(section, i) - assert(section and ffi.istype('knot_pktsection_t', section) - and i >= 0 and i < section.count) - local ret = section.pkt.rr + section.pos + i - assert(ffi.istype(knot_rrset_pt, ret)) - return ret -end - --- Metatype for packet -ffi.metatype( knot_pkt_t, { - __new = function (_, size, wire) - if size < 12 or size > 65535 then - error('packet size must be <12, 65535>') - end - - local pkt = knot.knot_pkt_new(nil, size, nil) - if pkt == nil then - error(string.format('failed to allocate a packet of size %d', size)) - end - if wire == nil then - C.kr_rnd_buffered(pkt.wire, 2) -- randomize the query ID - else - assert(size <= #wire) - ffi.copy(pkt.wire, wire, size) - pkt.size = size - pkt.parsed = 0 - end - - return ffi.gc(pkt[0], knot.knot_pkt_free) - end, - __tostring = function(pkt) - return pkt:tostring() - end, - __len = function(pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - return tonumber(pkt.size) - end, - __ipairs = function(self) - return ipairs(self:section(const_section.ANSWER)) - end, - __index = { - -- Header - id = function(pkt, val) return pkt_u16(pkt, 0, val) end, - qdcount = function(pkt, val) return pkt_u16(pkt, 4, val) end, - ancount = function(pkt, val) return pkt_u16(pkt, 6, val) end, - nscount = function(pkt, val) return pkt_u16(pkt, 8, val) end, - arcount = function(pkt, val) return pkt_u16(pkt, 10, val) end, - opcode = function (pkt, val) - assert(ffi.istype(knot_pkt_t, pkt)) - pkt.wire[2] = (val) and bit.bor(bit.band(pkt.wire[2], 0x78), 8 * val) or pkt.wire[2] - return (bit.band(pkt.wire[2], 0x78) / 8) - end, - rcode = function (pkt, val) - assert(ffi.istype(knot_pkt_t, pkt)) - pkt.wire[3] = (val) and bor(band(pkt.wire[3], 0xf0), val) or pkt.wire[3] - return band(pkt.wire[3], 0x0f) - end, - rd = function (pkt, val) return pkt_bit(pkt, 2, 0x01, val) end, - tc = function (pkt, val) return pkt_bit(pkt, 2, 0x02, val) end, - aa = function (pkt, val) return pkt_bit(pkt, 2, 0x04, val) end, - qr = function (pkt, val) return pkt_bit(pkt, 2, 0x80, val) end, - cd = function (pkt, val) return pkt_bit(pkt, 3, 0x10, val) end, - ad = function (pkt, val) return pkt_bit(pkt, 3, 0x20, val) end, - ra = function (pkt, val) return pkt_bit(pkt, 3, 0x80, val) end, - -- "do" is a reserved word in Lua; only getter - dobit = function(pkt, val) - assert(val == nil, 'dobit is getter only') - assert(ffi.istype(knot_pkt_t, pkt)) - return C.kr_pkt_has_dnssec(pkt) - end, - -- Question - qname = function(pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - -- inlined knot_pkt_qname(), basically but not lower-cased - if pkt == nil or pkt.qname_size == 0 then return nil end - return ffi.string(pkt.wire + 12, pkt.qname_size) - end, - qclass = function(pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - return C.kr_pkt_qclass(pkt) - end, - qtype = function(pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - return C.kr_pkt_qtype(pkt) - end, - rrsets = function (pkt, section_id) - assert(ffi.istype(knot_pkt_t, pkt)) - local records = {} - local section = pkt.sections + section_id - for i = 1, section.count do - local rrset = knot_pkt_rr(section, i - 1) - table.insert(records, rrset) - end - return records - end, - section = function (pkt, section_id) - assert(ffi.istype(knot_pkt_t, pkt)) - local records = {} - local section = pkt.sections + section_id - for i = 1, section.count do - local rrset = knot_pkt_rr(section, i - 1) - for k = 1, rrset:rdcount() do - table.insert(records, rrset:get(k - 1)) - end - end - return records - end, - begin = function (pkt, section) - assert(ffi.istype(knot_pkt_t, pkt)) - assert(section >= pkt.current, 'cannot rewind to already written section') - assert(const_section_str[section], string.format('invalid section: %s', section)) - local ret = knot.knot_pkt_begin(pkt, section) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - put = function (pkt, owner, ttl, rclass, rtype, rdata) - assert(ffi.istype(knot_pkt_t, pkt)) - local ret = C.kr_pkt_put(pkt, owner, ttl, rclass, rtype, rdata, #rdata) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - -- Put an RR set in the packet - -- Note: the packet doesn't take ownership of the RR set - put_rr = function (pkt, rr, rotate, flags) - assert(ffi.istype(knot_pkt_t, pkt)) - assert(ffi.istype(knot_rrset_t, rr)) - local ret = C.knot_pkt_put_rotate(pkt, 0, rr, rotate or 0, flags or 0) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - -- Checks whether the packet has a wire, i.e. the .size is not - -- equal to KR_PKT_SIZE_NOWIRE - has_wire = function (pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - return C.kr_pkt_has_wire(pkt) - end, - recycle = function (pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - local ret = C.kr_pkt_recycle(pkt) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - clear_payload = function (pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - local ret = C.kr_pkt_clear_payload(pkt) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - question = function(pkt, qname, qclass, qtype) - assert(ffi.istype(knot_pkt_t, pkt)) - assert(qclass ~= nil, string.format('invalid class: %s', qclass)) - assert(qtype ~= nil, string.format('invalid type: %s', qtype)) - local ret = C.knot_pkt_put_question(pkt, qname, qclass, qtype) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - towire = function (pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - return ffi.string(pkt.wire, pkt.size) - end, - tostring = function(pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - return ffi.string(ffi.gc(C.kr_pkt_text(pkt), C.free)) - end, - -- Return number of remaining empty bytes in the packet - -- This is generally useful to check if there's enough space - remaining_bytes = function (pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - local occupied = pkt.size + pkt.reserved - assert(pkt.max_size >= occupied) - return tonumber(pkt.max_size - occupied) - end, - -- Packet manipulation - parse = function (pkt) - assert(ffi.istype(knot_pkt_t, pkt)) - local ret = knot.knot_pkt_parse(pkt, 0) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - -- Resize packet wire to a new size - resize = function (pkt, new_size) - assert(ffi.istype(knot_pkt_t, pkt)) - local ptr = C.mm_realloc(pkt.mm, pkt.wire, new_size, pkt.max_size) - if ptr == nil then return end - pkt.wire = ptr - pkt.max_size = new_size - return true - end, - }, -}) --- Metatype for query -local kr_query_t = ffi.typeof('struct kr_query') -ffi.metatype( kr_query_t, { - __index = { - -- Return query domain name - name = function(qry) - assert(ffi.istype(kr_query_t, qry)) - return dname2wire(qry.sname) - end, - -- Write this query into packet - write = function(qry, pkt) - assert(ffi.istype(kr_query_t, qry)) - assert(ffi.istype(knot_pkt_t, pkt)) - local ret = C.kr_make_query(qry, pkt) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - }, -}) - --- helper for trace_chain_callbacks --- ignores return values from successful calls but logs tracebacks for throws -local function void_xpcall_log_tb(func, req, msg) - local ok, err = xpcall(func, debug.traceback, req, msg) - if not ok then - log_error(ffi.C.LOG_GRP_SYSTEM, 'callback %s req %s msg %s stack traceback:\n%s', func, req, msg, err) - end -end - -local function void_xpcall_finish_tb(func, req) - local ok, err = xpcall(func, debug.traceback, req) - if not ok then - log_error(ffi.C.LOG_GRP_SYSTEM, 'callback %s req %s stack traceback:\n%s', func, req, err) - end -end - - --- Metatype for request -local kr_request_t = ffi.typeof('struct kr_request') -ffi.metatype( kr_request_t, { - __index = { - -- makes sense only when request is finished - all_from_cache = function(req) - assert(ffi.istype(kr_request_t, req)) - local rplan = ffi.C.kr_resolve_plan(req) - if tonumber(rplan.pending.len) > 0 then - -- an unresolved query, - -- i.e. something is missing from the cache - return false - end - for idx=0, tonumber(rplan.resolved.len) - 1 do - if not rplan.resolved.at[idx].flags.CACHED then - return false - end - end - return true - end, - current = function(req) - assert(ffi.istype(kr_request_t, req)) - if req.current_query == nil then return nil end - return req.current_query - end, - -- returns the initial query that started the request - initial = function(req) - assert(ffi.istype(kr_request_t, req)) - local rplan = C.kr_resolve_plan(req) - if rplan.initial == nil then return nil end - return rplan.initial - end, - -- Return last query on the resolution plan - last = function(req) - assert(ffi.istype(kr_request_t, req)) - local query = C.kr_rplan_last(C.kr_resolve_plan(req)) - if query == nil then return end - return query - end, - resolved = function(req) - assert(ffi.istype(kr_request_t, req)) - local qry = C.kr_rplan_resolved(C.kr_resolve_plan(req)) - if qry == nil then return nil end - return qry - end, - -- returns first resolved sub query for a request - first_resolved = function(req) - assert(ffi.istype(kr_request_t, req)) - local rplan = C.kr_resolve_plan(req) - if not rplan or rplan.resolved.len < 1 then return nil end - return rplan.resolved.at[0] - end, - push = function(req, qname, qtype, qclass, flags, parent) - assert(ffi.istype(kr_request_t, req)) - flags = kres.mk_qflags(flags) -- compatibility - local rplan = C.kr_resolve_plan(req) - local qry = C.kr_rplan_push(rplan, parent, qname, qclass, qtype) - if qry ~= nil and flags ~= nil then - C.kr_qflags_set(qry.flags, flags) - end - return qry - end, - pop = function(req, qry) - assert(ffi.istype(kr_request_t, req)) - return C.kr_rplan_pop(C.kr_resolve_plan(req), qry) - end, - selected_tostring = function(req) - assert(ffi.istype(kr_request_t, req)) - local buf = {} - if #req.answ_selected ~= 0 then - table.insert(buf, ';; selected from ANSWER sections:\n') - table.insert(buf, tostring(req.answ_selected)) - end - if #req.auth_selected ~= 0 then - table.insert(buf, ';; selected from AUTHORITY sections:\n') - table.insert(buf, tostring(req.auth_selected)) - end - if #req.add_selected ~= 0 then - table.insert(buf, ';; selected from ADDITIONAL sections:\n') - table.insert(buf, tostring(req.add_selected)) - end - return table.concat(buf, '') - end, - set_extended_error = function(req, code, msg) - assert(ffi.istype(kr_request_t, req)) - msg = kluautil.kr_string2c(msg, req.pool) - ffi.C.kr_request_set_extended_error(req, code, msg) - end, - - -- chain new callbacks after the old ones - -- creates new wrapper functions as necessary - -- note: callbacks are FFI cdata pointers so tests must - -- use explicit "cb == nil", just "if cb" does not work - -- - trace_chain_callbacks = function (req, new_log, new_finish) - local log_wrapper - if req.trace_log == nil then - req.trace_log = new_log - else - local old_log = req.trace_log - log_wrapper = ffi.cast('trace_log_f', - function(cbreq, msg) - jit.off(true, true) -- JIT for (C -> lua)^2 nesting isn't allowed - void_xpcall_log_tb(old_log, cbreq, msg) - void_xpcall_log_tb(new_log, cbreq, msg) - end) - req.trace_log = log_wrapper - end - local old_finish = req.trace_finish - if not (log_wrapper ~= nil or old_finish ~= nil) then - req.trace_finish = new_finish - else - local fin_wrapper - fin_wrapper = ffi.cast('trace_callback_f', - function(cbreq) - jit.off(true, true) -- JIT for (C -> lua)^2 nesting isn't allowed - if old_finish ~= nil then - void_xpcall_finish_tb(old_finish, cbreq) - end - if new_finish ~= nil then - void_xpcall_finish_tb(new_finish, cbreq) - end - -- beware: finish callbacks can call log callback - if log_wrapper ~= nil then - log_wrapper:free() - end - fin_wrapper:free() - end) - req.trace_finish = fin_wrapper - end - end, - - -- Return per-request variable table - -- The request can store anything in this Lua table and it will be freed - -- when the request is closed, it doesn't have to worry about contents. - vars = function (req) - assert(ffi.istype(kr_request_t, req)) - -- Return variable if it's already stored - local var = worker.vars[req.vars_ref] - if var then - return var - end - -- Either take a slot number from freelist - -- or find a first free slot (expand the table) - local ref = worker.vars[0] - if ref then - worker.vars[0] = worker.vars[ref] - else - ref = #worker.vars + 1 - end - -- Create new variables table - var = {} - worker.vars[ref] = var - -- Save reference in the request - req.vars_ref = ref - return var - end, - -- Ensure that answer has EDNS if needed; can't fail. - ensure_edns = function (req) - assert(ffi.istype(kr_request_t, req)) - return C.kr_request_ensure_edns(req) - end, - -- Ensure that answer exists and return it; can't fail. - ensure_answer = function (req) - assert(ffi.istype(kr_request_t, req)) - return C.kr_request_ensure_answer(req) - end, - }, -}) - --- C array iterator -local function c_array_iter(t, i) - i = i + 1 - if i >= t.len then return end - return i, t.at[i][0] -end - --- Metatype for a single ranked record array entry (one RRset) -local function rank_tostring(rank) - local names = {} - for name, value in pairs(const_rank) do - if ffi.C.kr_rank_test(rank, value) then - table.insert(names, string.lower(name)) - end - end - table.sort(names) -- pairs() above doesn't give a stable ordering - return string.format('0%.2o (%s)', rank, table.concat(names, ' ')) -end - -local ranked_rr_array_entry_t = ffi.typeof('ranked_rr_array_entry_t') -ffi.metatype(ranked_rr_array_entry_t, { - __tostring = function(self) - return string.format('; ranked rrset to_wire %s, rank %s, cached %s, qry_uid %s, revalidations %s\n%s', - self.to_wire, rank_tostring(self.rank), self.cached, self.qry_uid, - self.revalidation_cnt, string.format('%s', self.rr)) - end -}) - --- Metatype for ranked record array (array of RRsets) -local ranked_rr_array_t = ffi.typeof('ranked_rr_array_t') -ffi.metatype(ranked_rr_array_t, { - __len = function(self) - return tonumber(self.len) - end, - __ipairs = function (self) - return c_array_iter, self, -1 - end, - __index = { - get = function (self, i) - if i < 0 or i > self.len then return nil end - return self.at[i][0] - end, - }, - __tostring = function(self) - local buf = {} - for _, rrset in ipairs(self) do - table.insert(buf, tostring(rrset)) - end - return table.concat(buf, '') - end -}) - --- Cache metatype -local kr_cache_t = ffi.typeof('struct kr_cache') -ffi.metatype( kr_cache_t, { - __index = { - insert = function (self, rr, rrsig, rank, timestamp) - assert(ffi.istype(kr_cache_t, self)) - assert(ffi.istype(knot_rrset_t, rr), 'RR must be a rrset type') - assert(not rrsig or ffi.istype(knot_rrset_t, rrsig), 'RRSIG must be nil or of the rrset type') - -- Get current timestamp - if not timestamp then - local now = timeval_t() - C.gettimeofday(now, nil) - timestamp = tonumber(now.tv_sec) - end - -- Insert record into cache - local ret = C.kr_cache_insert_rr(self, rr, rrsig, tonumber(rank or 0), - timestamp, true) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - commit = function (self) - assert(ffi.istype(kr_cache_t, self)) - local ret = C.kr_cache_commit(self) - if ret ~= 0 then return nil, knot_error_t(ret) end - return true - end, - }, -}) - --- Pretty-print a single RR (which is a table with .owner .ttl .type .rdata) --- Extension: append .comment if exists. -local function rr2str(rr, style) - -- Construct a single-RR temporary set while minimizing copying. - local ret - do - local rrs = knot_rrset_t(rr.owner, rr.type, kres.class.IN, rr.ttl) - rrs:add_rdata(rr.rdata, #rr.rdata) - ret = rrs:txt_dump(style) - end - - -- Trim the newline and append comment (optionally). - if ret then - if ret:byte(-1) == string.byte('\n', -1) then - ret = ret:sub(1, -2) - end - if rr.comment then - ret = ret .. ' ;' .. rr.comment - end - end - return ret -end - --- Module API -kres = { - -- Constants - class = const_class, - type = const_type, - section = const_section, - rcode = const_rcode, - opcode = const_opcode, - rank = const_rank, - extended_error = const_extended_error, - - -- Constants to strings - tostring = { - class = const_class_str, - type = const_type_str, - section = const_section_str, - rcode = const_rcode_str, - opcode = const_opcode_str, - rank = const_rank_str, - extended_eror = const_extended_error_str, - }, - - -- Create a struct kr_qflags from a single flag name or a list of names. - mk_qflags = function (names) - local kr_qflags = ffi.typeof('struct kr_qflags') - if names == 0 or names == nil then -- compatibility: nil is common in lua - names = {} - elseif type(names) == 'string' then - names = {names} - elseif ffi.istype(kr_qflags, names) then - return names - end - - local fs = ffi.new(kr_qflags) - for _, name in pairs(names) do - fs[name] = true - end - return fs - end, - - CONSUME = 1, PRODUCE = 2, DONE = 4, FAIL = 8, YIELD = 16, - - -- Export types - rrset = knot_rrset_t, - packet = knot_pkt_t, - lru = function (max_size, value_type) - value_type = value_type or ffi.typeof('uint64_t') - local ct = ffi.typeof(typed_lru_t, value_type) - return ffi.metatype(ct, lru_metatype)(max_size, ffi.alignof(value_type)) - end, - - -- Metatypes. Beware that any pointer will be cast silently... - pkt_t = function (udata) return ffi.cast('knot_pkt_t *', udata) end, - request_t = function (udata) return ffi.cast('struct kr_request *', udata) end, - sockaddr_t = function (udata) return ffi.cast('struct sockaddr *', udata) end, - - -- Global API functions - -- Convert a lua string to a lower-case wire format (inside GC-ed ffi.string). - str2dname = function(name) - if type(name) ~= 'string' then return end - local dname = ffi.gc(C.knot_dname_from_str(nil, name, 0), C.free) - if dname == nil then return nil end - ffi.C.knot_dname_to_lower(dname); - return dname2wire(dname) - end, - dname2str = dname2str, - dname2wire = dname2wire, - parse_rdata = parse_rdata, - - rr2str = rr2str, - str2ip = function (ip) - local family = C.kr_straddr_family(ip) - local ret = C.inet_pton(family, ip, addr_buf) - if ret ~= 1 then return nil end - return ffi.string(addr_buf, C.kr_family_len(family)) - end, - context = function () return ffi.C.the_resolver end, - - knot_pkt_rr = knot_pkt_rr, -} - -return kres diff --git a/daemon/lua/krprint.lua b/daemon/lua/krprint.lua deleted file mode 100644 index dd25a9b49..000000000 --- a/daemon/lua/krprint.lua +++ /dev/null @@ -1,340 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later -local base_class = { - cur_indent = 0, -} - --- shared constructor: use as serializer_class:new() -function base_class.new(class, on_unrepresentable) - on_unrepresentable = on_unrepresentable or 'comment' - if on_unrepresentable ~= 'comment' - and on_unrepresentable ~= 'error' then - error('unsupported val2expr on_unrepresentable option ' - .. tostring(on_unrepresentable)) - end - local inst = {} - inst.on_unrepresentable = on_unrepresentable - inst.done = {} - inst.tab_key_path = {} - setmetatable(inst, class.__inst_mt) - return inst -end - --- format comment with leading/ending whitespace if needed -function base_class.format_note(_, note, ws_prefix, ws_suffix) - if note == nil then - return '' - else - return string.format('%s--[[ %s ]]%s', - ws_prefix or '', note, ws_suffix or '') - end -end - -function base_class.indent_head(self) - return string.rep(' ', self.cur_indent) -end - -function base_class.indent_inc(self) - self.cur_indent = self.cur_indent + self.indent_step -end - -function base_class.indent_dec(self) - self.cur_indent = self.cur_indent - self.indent_step -end - -function base_class._fallback(self, val) - if self.on_unrepresentable == 'comment' then - return 'nil', string.format('missing %s', val) - elseif self.on_unrepresentable == 'error' then - local key_path_msg - if #self.tab_key_path > 0 then - local str_key_path = {} - for _, key in ipairs(self.tab_key_path) do - table.insert(str_key_path, - string.format('%s %s', type(key), self:string(tostring(key)))) - end - local key_path = '[' .. table.concat(str_key_path, '][') .. ']' - key_path_msg = string.format(' (found at [%s])', key_path) - else - key_path_msg = '' - end - error(string.format('cannot serialize type %s%s', type(val), key_path_msg), 2) - end -end - -function base_class.val2expr(self, val) - local val_type = type(val) - local val_repr = self[val_type] - if val_repr then - return val_repr(self, val) - else - return self:_fallback(val) - end -end - --- "nil" is a Lua keyword so assignment below is workaround to create --- function base_class.nil(self, val) -base_class['nil'] = function(_, val) - assert(type(val) == 'nil') - return 'nil' -end - -function base_class.number(_, val) - assert(type(val) == 'number') - if val == math.huge then - return 'math.huge' - elseif val == -math.huge then - return '-math.huge' - elseif tostring(val) == 'nan' then - return 'tonumber(\'nan\')' - else - return string.format("%.60f", val) - end -end - -function base_class.char_is_printable(_, c) - -- ASCII (from space to ~) and not ' or \ - return (c >= 0x20 and c < 0x7f) - and c ~= 0x27 and c ~= 0x5C -end - -function base_class.string(self, val) - assert(type(val) == 'string') - local chars = {'\''} - for i = 1, #val do - local c = string.byte(val, i) - if self:char_is_printable(c) then - table.insert(chars, string.char(c)) - else - table.insert(chars, string.format('\\%03d', c)) - end - end - table.insert(chars, '\'') - return table.concat(chars) -end - -function base_class.boolean(_, val) - assert(type(val) == 'boolean') - return tostring(val) -end - -local function ordered_iter(unordered_tt) - local keys = {} - for k in pairs(unordered_tt) do - table.insert(keys, k) - end - table.sort(keys, - function (a, b) - if type(a) ~= type(b) then - return type(a) < type(b) - end - if type(a) == 'number' then - return a < b - else - return tostring(a) < tostring(b) - end - end) - local i = 0 - return function() - i = i + 1 - if keys[i] ~= nil then - return keys[i], unordered_tt[keys[i]] - end - end -end - -function base_class.table(self, tab) - assert(type(tab) == 'table') - if self.done[tab] then - error('cyclic reference', 0) - end - self.done[tab] = true - - local items = {'{'} - local previdx = 0 - self:indent_inc() - for idx, val in ordered_iter(tab) do - local errors, valok, valexpr, valnote, idxok, idxexpr, idxnote - errors = {} - -- push current index onto key path stack to make it available to sub-printers - table.insert(self.tab_key_path, idx) - - valok, valexpr, valnote = pcall(self.val2expr, self, val) - if not valok then - table.insert(errors, string.format('value: %s', valexpr)) - end - - local addidx - if previdx and type(idx) == 'number' and idx - 1 == previdx then - -- monotonic sequence, do not print key - previdx = idx - addidx = false - else - -- end of monotonic sequence - -- from now on print keys as well - previdx = nil - addidx = true - end - - if addidx then - idxok, idxexpr, idxnote = pcall(self.val2expr, self, idx) - if not idxok or idxexpr == 'nil' then - table.insert(errors, string.format('key: not serializable', idxexpr)) - end - end - - local item = '' - if #errors == 0 then - -- finally serialize one [key=]?value expression - local indent = self:indent_head() - local note - if addidx then - note = self:format_note(idxnote, nil, self.key_val_sep) - item = string.format('%s%s[%s]%s=%s', - indent, note, - idxexpr, self.key_val_sep, self.key_val_sep) - indent = '' - end - note = self:format_note(valnote, nil, self.item_sep) - item = item .. string.format('%s%s%s,', indent, note, valexpr) - else - local errmsg = string.format('cannot print %s = %s (%s)', - self:string(tostring(idx)), - self:string(tostring(val)), - table.concat(errors, ', ')) - if self.on_unrepresentable == 'error' then - error(errmsg, 0) - else - errmsg = string.format('--[[ missing %s ]]', errmsg) - item = errmsg - end - end - table.insert(items, item) - table.remove(self.tab_key_path) -- pop current index from key path stack - end -- one key+value - self:indent_dec() - table.insert(items, self:indent_head() .. '}') - return table.concat(items, self.item_sep), string.format('%s follows', tab) -end - --- machine readable variant, cannot represent all types and repeated references to a table -local serializer_class = { - indent_step = 0, - item_sep = ' ', - key_val_sep = ' ', - __inst_mt = {} -} --- inheritance form base class (for :new()) -setmetatable(serializer_class, { __index = base_class }) --- class instances with following metatable inherit all class members -serializer_class.__inst_mt.__index = serializer_class - -local function static_serializer(val, on_unrepresentable) - local inst = serializer_class:new(on_unrepresentable) - local expr, note = inst:val2expr(val) - return string.format('%s%s', inst:format_note(note, nil, inst.item_sep), expr) - end - --- human friendly variant, not stable and not intended for machine consumption -local pprinter_class = { - indent_step = 4, - item_sep = '\n', - key_val_sep = ' ', - __inst_mt = {}, -} - --- should be always empty because pretty-printer has fallback for all types -function pprinter_class.format_note() - return '' -end - -function pprinter_class._fallback(self, val) - if self.on_unrepresentable == 'error' then - base_class._fallback(self, val) - end - return tostring(val) -end - -function pprinter_class.char_is_printable(_, c) - -- ASCII (from space to ~) + tab or newline - -- and not ' or \ - return ((c >= 0x20 and c < 0x7f) - or c == 0x09 or c == 0x0A) - and c ~= 0x27 and c ~= 0x5C -end - --- "function" is a Lua keyword so assignment below is workaround to create --- function pprinter_class.function(self, f) -pprinter_class['function'] = function(self, f) --- thanks to AnandA777 from StackOverflow! Function funcsign is adapted version of --- https://stackoverflow.com/questions/51095022/inspect-function-signature-in-lua-5-1 - assert(type(f) == 'function', "bad argument #1 to 'funcsign' (function expected)") - local debuginfo = debug.getinfo(f) - local func_args = {} - local args_str - if debuginfo.what == 'C' then -- names N/A - args_str = '(?)' - goto add_name - end - - pcall(function() - local oldhook - local delay = 2 - local function hook() - delay = delay - 1 - if delay == 0 then -- call this only for the introspected function - -- stack depth 2 is the introspected function - for i = 1, debuginfo.nparams do - local k = debug.getlocal(2, i) - table.insert(func_args, k) - end - if debuginfo.isvararg then - table.insert(func_args, "...") - end - debug.sethook(oldhook) - error('aborting the call to introspected function') - end - end - oldhook = debug.sethook(hook, "c") -- invoke hook() on function call - f(unpack({})) -- huh? - end) - args_str = "(" .. table.concat(func_args, ", ") .. ")" - ::add_name:: - local name - if #self.tab_key_path > 0 then - name = string.format('function %s', self.tab_key_path[#self.tab_key_path]) - else - name = 'function ' - end - return string.format('%s%s: %s', name, args_str, string.sub(tostring(f), 11)) -end - --- default tostring method is better suited for human-intended output -function pprinter_class.number(_, number) - return tostring(number) -end - -local function deserialize_lua(serial) - assert(type(serial) == 'string') - local deserial_func = loadstring('return ' .. serial) - if type(deserial_func) ~= 'function' then - panic('input is not a valid Lua expression') - end - return deserial_func() -end - -setmetatable(pprinter_class, { __index = base_class }) -pprinter_class.__inst_mt.__index = pprinter_class - -local function static_pprint(val, on_unrepresentable) - local inst = pprinter_class:new(on_unrepresentable) - local expr, note = inst:val2expr(val) - return string.format('%s%s', inst:format_note(note, nil, inst.item_sep), expr) -end - -local M = { - serialize_lua = static_serializer, - deserialize_lua = deserialize_lua, - pprint = static_pprint -} - -return M diff --git a/daemon/lua/krprint.test.lua b/daemon/lua/krprint.test.lua deleted file mode 100644 index 921805223..000000000 --- a/daemon/lua/krprint.test.lua +++ /dev/null @@ -1,292 +0,0 @@ -local serialize_lua = require('krprint').serialize_lua -local deserialize_lua = require('krprint').deserialize_lua - -local function gen_string(maxlen) - maxlen = maxlen or 100 - local len = math.random(0, maxlen) - local buf = {} - for _=1,len do - table.insert(buf, string.char(math.random(0, 255))) - end - return table.concat(buf) -end - -local function test_de_serialization(orig_val, desc) - local serial = serialize_lua(orig_val) - ok(type(serial) == 'string' and #serial > 0, - 'serialization returns non-empty string: ' .. desc) - local deserial_val = deserialize_lua(serial) - same(type(orig_val), type(deserial_val), - 'deserialized value has the same type: ' .. desc) - if type(orig_val) == 'number' then - -- nan cannot be compared using == operator - if tostring(orig_val) == 'nan' and tostring(deserial_val) == 'nan' then - pass('nan value serialized and deserialized') - elseif orig_val ~= math.huge and orig_val ~= -math.huge then - -- tolerance measured experimentally on x86_64 LuaJIT 2.1.0-beta3 - local tolerance = 1e-14 - ok(math.abs(orig_val - deserial_val) <= tolerance, - 'deserialized number is within tolerance ' .. tolerance) - else - same(orig_val, deserial_val, 'deserialization returns the same infinity:' .. desc) - end - else - same(orig_val, deserial_val, - 'deserialization returns the same value: ' .. desc) - end -end - -local function test_de_serialization_autodesc(orig_val) - test_de_serialization(orig_val, tostring(orig_val)) -end - -local function test_bool() - test_de_serialization_autodesc(true) - same('true', table_print(true), 'table_print handles true') - test_de_serialization_autodesc(false) - same('false', table_print(false), 'table_print handles false') -end - -local function test_nil() - test_de_serialization_autodesc(nil) - same('nil', table_print(nil), 'table_print handles nil') -end - -local function gen_number_int() - local number - -- make "small" numbers more likely so they actually happen - if math.random() < 0.5 then - number = math.random(-2^32, 2^32) - else - number = math.random(-2^48, 2^48) - end - return number -end - -local function gen_number_float() - return math.random() -end - -local function test_number() - test_de_serialization_autodesc(0) - same('0', table_print(0), 'table_print handles 0') - test_de_serialization_autodesc(-math.huge) - same('-inf', table_print(-math.huge), 'table_print handles -infinity') - test_de_serialization_autodesc(math.huge) - same('inf', table_print(math.huge), 'table_print handles +infinity') - test_de_serialization_autodesc(tonumber('nan')) - same('nan', table_print(tonumber('nan')), 'table_print handles nan') - for _=1,20 do -- integers - test_de_serialization_autodesc(gen_number_int()) - -- bigger numbers might end up with non-exact representation - local smallnumber = math.random(-2^32, 2^32) - same(tostring(smallnumber), table_print(smallnumber), - 'table_print handles small numbers') - end - for _=1,20 do -- floats - local float = math.random() - same(tostring(float), table_print(float), - 'table_print handles floats') - test_de_serialization_autodesc(gen_number_float()) - end -end - -local function test_string() - test_de_serialization('', 'empty string') - for _=1,20 do - local str = gen_string(1024*10) - test_de_serialization(str, 'random string length ' .. #str) - end -end - -local function gen_number() - -- pure random would not produce special cases often enough - local generators = { - function() return 0 end, - function() return -math.huge end, - function() return math.huge end, - gen_number_int, - gen_number_float, - } - return generators[math.random(1, #generators)]() -end - -local function gen_boolean() - local options = {true, false} - return options[math.random(1, #options)] -end - -local function gen_table_atomic() - -- nil keys or values are not allowed - -- nested tables are handled elsewhere - local supported_types = { - gen_number, - gen_string, - gen_boolean, - } - val = supported_types[math.random(1, #supported_types)]() - return val -end - -local function gen_test_tables_supported(level) - level = level or 1 - local max_level = 5 - local max_items_per_table = 20 - local t = {} - for _=1, math.random(0, max_items_per_table) do - local val_as_table = (level <= max_level) and math.random() < 0.1 - local key, val - -- tapered.same method cannot compare keys with type table - key = gen_table_atomic() - if val_as_table then - val = gen_test_tables_supported(level + 1) - else - val = gen_table_atomic() - end - t[key] = val - end - return t -end - -local marker = 'this string must be present somewhere in output' -local function gen_marker() - return marker -end - -local kluautil = require('kluautil') -local function random_modify_table(t, always, generator) - assert(generator) - local tab_len = kluautil.kr_table_len(t) - local modified = false - -- modify some values - for key, val in pairs(t) do - if math.random(1, tab_len) == 1 then - if type(val) == 'table' then - modified = modified or random_modify_table(val, false, generator) - else - t[key] = generator() - modified = true - end - end - end - if always and not modified then - -- fallback, add an unsupported key - t[generator()] = true - modified = true - end - return modified -end - -local function test_table_supported() - for i=1,10 do - local t = gen_test_tables_supported() - test_de_serialization(t, 'random table no. ' .. i) - assert(random_modify_table(t, true, gen_marker)) - local str = table_print(t) - ok(string.find(str, marker, 1, true), - 'table_print works on complex serializable tables') - end -end - -local ffi = require('ffi') -local const_func = tostring -local const_thread = coroutine.create(tostring) -local const_userdata = ffi.C -local const_cdata = ffi.new('int') - -local function gen_unsupported_atomic() - -- nested tables are handled elsewhere - local unsupported_types = { - const_func, - const_thread, - const_userdata, - const_cdata - } - val = unsupported_types[math.random(1, #unsupported_types)] - return val -end - -local function test_unsupported(val, desc) - desc = desc or string.format('unsupported %s', type(val)) - return function() - boom(serialize_lua, { val, 'error' }, string.format( - 'attempt to serialize %s in error mode ' - .. 'causes error', desc)) - local output = serialize_lua(val, 'comment') - same('string', type(output), - string.format('attempt to serialize %s in ' - .. 'comment mode returned a string', - desc)) - ok(string.find(output, '--', 1, true), - 'returned string contains a comment') - output = table_print(val) - same('string', type(output), - string.format('table_print can stringify %s', desc)) - if type(val) ~= 'table' then - ok(string.find(output, type(val), 1, true), - 'exotic type is mentioned in table_print output') - end - end -end - -local function gen_test_tables_unsupported() - local t = gen_test_tables_supported() - random_modify_table(t, true, gen_unsupported_atomic) - return t -end - -local function test_unsupported_table() - for i=1,10 do - local t = gen_test_tables_unsupported() - test_unsupported(t, 'random unsupported table no. ' .. i)() - assert(random_modify_table(t, true, gen_marker)) - local str = table_print(t) - ok(string.find(str, marker, 1, true), - 'table_print works on complex unserializable tables') - end -end - -local function func_2vararg_5ret(arg1, arg2, ...) - return select('#', ...), nil, arg1 + arg2, false, nil -end -local function func_ret_nil() return nil end -local function func_ret_nothing() return end - -local function test_pprint_func() - local t = { [false] = func_2vararg_5ret } - local output = table_print(t) - ok(string.find(output, 'function false(arg1, arg2, ...)', 1, true), - 'function parameters are pretty printed') -end - -local function test_pprint_func_ret() - local output = table_print(func_2vararg_5ret(1, 2, 'bla')) - local exp = [[ -1 -- result # 1 -nil -- result # 2 -3 -- result # 3 -false -- result # 4 -nil -- result # 5]] - same(output, exp, 'multiple return values are pretty printed') - - output = table_print(func_ret_nil()) - same(output, 'nil', 'single return value does not have extra comments') - - output = table_print(func_ret_nothing()) - same(output, nil, 'no return values to be printed cause nil output') -end - -return { - test_bool, - test_nil, - test_number, - test_string, - test_table_supported, - test_unsupported(const_func), - test_unsupported(const_thread), - test_unsupported(const_userdata), - test_unsupported(const_cdata), - test_unsupported_table, - test_pprint_func, - test_pprint_func_ret, -} diff --git a/daemon/lua/log.test.lua b/daemon/lua/log.test.lua deleted file mode 100644 index ec5abd28c..000000000 --- a/daemon/lua/log.test.lua +++ /dev/null @@ -1,42 +0,0 @@ -local function test_log_level() - same(log_level(), 'notice', 'default level is notice') - same(verbose(), false, 'verbose is not set by default') - same(log_level('crit'), 'crit', '"crit" level can be set') - same(log_level('err'), 'err', '"err" level can be set') - same(log_level('warning'), 'warning', '"warning" level can be set') - same(log_level('notice'), 'notice', '"notice" level can be set') - same(log_level('info'), 'info', '"info" level can be set') - same(log_level('debug'), 'debug', '"debug" level can be set') - same(verbose(), true, 'verbose is active when debug level is set') - same(verbose(false), false, 'verbose can be used to turn off debug level') - same(log_level(), 'notice', 'verbose returns log level to notice') - boom(log_level, { 'xxx' }, "unknown level can't be used") - boom(log_level, { 7 }, "numbered levels aren't supported") - boom(log_level, { 1, 2 }, "level doesn't take multiple arguments") -end - -local function test_log_target() - same(log_target(), 'stderr', 'default target is stderr') - same(log_target('stdout'), 'stdout', 'stdout target can be set') - same(log_target('syslog'), 'syslog', 'syslog target can be set') - same(log_target('stderr'), 'stderr', 'stderr target can be set') - boom(log_level, { 'xxx' }, "unknown target can't be used") - boom(log_level, { 'stderr', 'syslog' }, "target doesn't take multiple arguments") -end - -local function test_log_groups() - same(log_groups(), {}, 'no groups are logged by default') - same(log_groups({'system'}), {'system'}, 'configure "system" group') - same(log_groups({'devel'}), {'devel'}, 'another call overrides previously set groups') - same(log_groups({'devel', 'system'}), {'system', 'devel'}, 'configure multiple groups') - same(log_groups({}), {}, 'clear groups with empty table') - same(log_groups({'nonexistent'}), {}, "nonexistent group is ignored") - boom(log_groups, { 'string' }, "group argument can't be string") - boom(log_groups, { 1, 2 }, "group doesn't take multiple arguments") -end - -return { - test_log_level, - test_log_target, - test_log_groups, -} diff --git a/daemon/lua/map.test.integr/deckard.yaml b/daemon/lua/map.test.integr/deckard.yaml deleted file mode 100644 index 2fe920d1b..000000000 --- a/daemon/lua/map.test.integr/deckard.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -programs: -- name: kresd3 - binary: kresd - additional: - - --noninteractive - templates: - - daemon/lua/map.test.integr/kresd_config.j2 - - tests/integration/hints_zone.j2 - - tests/config/tapered/src/tapered.lua - configs: - - config - - hints - - tapered.lua -- name: kresd2 - binary: kresd - additional: - - --noninteractive - templates: - - daemon/lua/map.test.integr/kresd_config.j2 - - tests/integration/hints_zone.j2 - - tests/config/tapered/src/tapered.lua - configs: - - config - - hints - - tapered.lua -- name: kresd1 - binary: kresd - additional: - - --noninteractive - templates: - - daemon/lua/map.test.integr/kresd_config.j2 - - tests/integration/hints_zone.j2 - - tests/config/tapered/src/tapered.lua - configs: - - config - - hints - - tapered.lua diff --git a/daemon/lua/map.test.integr/kresd_config.j2 b/daemon/lua/map.test.integr/kresd_config.j2 deleted file mode 100644 index ae403c702..000000000 --- a/daemon/lua/map.test.integr/kresd_config.j2 +++ /dev/null @@ -1,193 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later -local ffi = require('ffi') -log_info(ffi.C.LOG_GRP_TESTS, 'my PID = %d', worker.pid) - -trust_anchors.remove('.') - -cache.size = 2*MB - -net = { '{{SELF_ADDR}}' } - -{% if QMIN == "false" %} -option('NO_MINIMIZE', true) -{% else %} -option('NO_MINIMIZE', false) -{% endif %} - --- Self-checks on globals -assert(help() ~= nil) -assert(worker.id ~= nil) --- Self-checks on facilities -assert(cache.count() == 0) -assert(cache.stats() ~= nil) -assert(cache.backends() ~= nil) -assert(worker.stats() ~= nil) -assert(net.interfaces() ~= nil) --- Self-checks on loaded stuff -assert(#modules.list() > 0) --- Self-check timers -ev = event.recurrent(1 * sec, function (ev) return 1 end) -event.cancel(ev) - -local kluautil = require('kluautil') -local tap = require('tapered') -local checks_total = 16 -local n_instances = 3 -- must match deckard.yaml - -worker.control_path = worker.cwd .. '/../kresd3/control/' -net.listen(worker.control_path .. worker.pid, nil, {kind = 'control'}) -assert(#net.list() >= 3) -- UDP, TCP, control - --- debug, kept for future use ---log_level("debug") -log_debug(ffi.C.LOG_GRP_TESTS, '%s', worker.control_path) -log_debug(ffi.C.LOG_GRP_TESTS, '%s', table_print(net.list())) - -function wait_for_sockets() - log_info(ffi.C.LOG_GRP_TESTS, 'waiting for control sockets') - local timeout = 5000 -- ms - local start_time = tonumber(ffi.C.kr_now()) - local now - while true do - now = tonumber(ffi.C.kr_now()) - if now > start_time + timeout then - log_info(ffi.C.LOG_GRP_TESTS, 'timeout while waiting for control sockets to appear') - os.exit(3) - end - local pids = kluautil.list_dir(worker.control_path) - if #pids == n_instances then - -- debug, kept for future use - log_debug(ffi.C.LOG_GRP_TESTS, 'got control sockets:') - log_debug(ffi.C.LOG_GRP_TESTS, table_print(pids)) - break - else - worker.sleep(0.1) - end - end - log_info(ffi.C.LOG_GRP_TESTS, 'PIDs are visible now (waiting took %d ms)', now - start_time) -end - --- expression should throw Lua error: --- wrap it in a function which runs the expression on leader and follower --- separately so we can guarantee both cases are covered -function boom_follower_and_leader(boom_expr, desc) - local variants = {leader = '~=', follower = '=='} - for name, operator in pairs(variants) do - -- beware, newline is not allowed in expr - local full_expr = string.format( - 'if (worker.pid %s %s) then return true ' - .. 'else return %s end', - operator, worker.pid, boom_expr) - local full_desc = name .. ': ' - if desc then - full_desc = full_desc .. desc .. ' (' .. boom_expr .. ')' - else - full_desc = full_desc .. boom_expr - end - tap.boom(map, {full_expr}, full_desc) - end -end - -function tests() - -- add delay to each test to force scheduler to interleave tests and DNS queries - local test_delay = 20 / 1000 -- seconds - log_info(ffi.C.LOG_GRP_TESTS, 'starting map() tests now') - - tap.boom(map, {'1 ++ 1'}, 'syntax error in command is detected') - worker.sleep(test_delay) - - -- array of integers - local pids = map('worker.pid') - tap.same(pids.n, n_instances, 'all pids were obtained') - table.sort(pids) - worker.sleep(test_delay) - - -- expression produces array of integers - local pids_plus_one = map('worker.pid + 1') - tap.same(pids_plus_one.n, n_instances, 'all pids were obtained') - table.sort(pids_plus_one) - for idx=1,n_instances do - tap.same(pids[idx] + 1, pids_plus_one[idx], - 'increment expression worked') - end - worker.sleep(test_delay) - - -- error detection - boom_follower_and_leader('error("explosion")') - worker.sleep(test_delay) - - -- unsupported number of return values - boom_follower_and_leader('1, 2') - worker.sleep(test_delay) - boom_follower_and_leader('unpack({})') - worker.sleep(test_delay) - - -- unsupported return type - boom_follower_and_leader( - 'function() print("this cannot be serialized") end') - worker.sleep(test_delay) - - tap.same({n = n_instances}, map('nil'), - 'nil values are counted as returned') - worker.sleep(test_delay) - - local exp = {n = n_instances} - for i=1,n_instances do - table.insert(exp, {nil, 2, nil, n=3}) - end - local got = map('require("kluautil").kr_table_pack(nil, 2, nil)') - tap.same(got, exp, 'kr_table_pack handles nil values') - worker.sleep(test_delay) -end - -local started = false -function tests_start() - -- just in case, duplicates should not happen - if started then - log_info(ffi.C.LOG_GRP_TESTS, 'huh? duplicate test invocation ignored, a retransmit?') - return - end - started = true - log_info(ffi.C.LOG_GRP_TESTS, 'start query triggered, scheduling tests') - - -- DNS queries and map() commands must be serviced while sleep is running - worker.coroutine(function() worker.sleep(3600) end) - - worker.coroutine(tests) -end --- Deckard query will trigger tests -policy.add(policy.suffix(tests_start, {'\5start\0'})) - -function tests_done() - print('final query triggered') - event.after(0, function() - tap.done(checks_total) - end) -end --- Deckard query will execute tap.done() which will call os.exit() --- i.e. this callback has to be called only after answer to Deckard was sent -policy.add(policy.suffix(tests_done, {'\4done\0'}), true) - --- add delay to each query to force scheduler to interleave tests and DNS queries -policy.add(policy.all( - function() - local delay = 10 -- ms - log_info(ffi.C.LOG_GRP_TESTS, 'packet delayed by %d ms', delay) - worker.sleep(delay / 1000) - end)) - -wait_for_sockets() - -{% if DAEMON_NAME == "kresd1" %} - --- forward to Deckard test server -policy.add(policy.all(policy.FORWARD('192.0.2.1'))) - -{% else %} - --- forward to next kresd instance in chain -{# find out IP address of kresd instance with lower number, - i.e. kresd2 forwards to kresd1 #} -policy.add(policy.all(policy.FORWARD('{{ PROGRAMS[ "kresd" ~ (DAEMON_NAME[-1]|int() - 1)]["address"] }}'))) - -{% endif %} diff --git a/daemon/lua/map.test.integr/query-while-map-is-running.rpl b/daemon/lua/map.test.integr/query-while-map-is-running.rpl deleted file mode 100644 index 8590fc8a3..000000000 --- a/daemon/lua/map.test.integr/query-while-map-is-running.rpl +++ /dev/null @@ -1,312 +0,0 @@ -; does not make any practical difference so we limit ourselves to single test run -query-minimization: off -CONFIG_END - -SCENARIO_BEGIN Empty answers to any query - forwarding without validation - -; forwarding target -RANGE_BEGIN 1 1000000 - ADDRESS 192.0.2.1 - -; NODATA to everything -ENTRY_BEGIN -MATCH opcode -ADJUST copy_id copy_query -REPLY NOERROR QR -SECTION QUESTION -. IN SOA -SECTION ANSWER -. 86400 IN SOA rootns. you.test. 2017071100 1800 900 604800 86400 -ENTRY_END -RANGE_END - -STEP 10 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -start. IN TXT -ENTRY_END - -STEP 11 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -start. IN TXT -SECTION ANSWER -ENTRY_END - - -STEP 1001 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1001. IN TXT -ENTRY_END - -STEP 1002 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1001. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1003 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1003. IN TXT -ENTRY_END - -STEP 1004 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1003. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1005 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1005. IN TXT -ENTRY_END - -STEP 1006 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1005. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1007 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1007. IN TXT -ENTRY_END - -STEP 1008 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1007. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1009 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1009. IN TXT -ENTRY_END - -STEP 1010 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1009. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1011 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1011. IN TXT -ENTRY_END - -STEP 1012 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1011. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1013 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1013. IN TXT -ENTRY_END - -STEP 1014 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1013. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1015 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1015. IN TXT -ENTRY_END - -STEP 1016 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1015. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1017 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1017. IN TXT -ENTRY_END - -STEP 1018 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1017. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1019 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1019. IN TXT -ENTRY_END - -STEP 1020 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1019. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1021 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1021. IN TXT -ENTRY_END - -STEP 1022 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1021. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1023 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1023. IN TXT -ENTRY_END - -STEP 1024 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1023. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1025 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1025. IN TXT -ENTRY_END - -STEP 1026 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1025. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1027 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1027. IN TXT -ENTRY_END - -STEP 1028 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1027. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1029 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1029. IN TXT -ENTRY_END - -STEP 1030 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1029. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1031 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -test1031. IN TXT -ENTRY_END - -STEP 1032 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -test1031. IN TXT -SECTION ANSWER -ENTRY_END - -STEP 1033 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -done. IN TXT -ENTRY_END - -STEP 1034 CHECK_ANSWER -ENTRY_BEGIN -REPLY NOERROR QR RD RA -MATCH opcode rcode flags question answer -SECTION QUESTION -done. IN TXT -SECTION ANSWER -ENTRY_END - -SCENARIO_END diff --git a/daemon/lua/meson.build b/daemon/lua/meson.build deleted file mode 100644 index 6df5bc5b2..000000000 --- a/daemon/lua/meson.build +++ /dev/null @@ -1,131 +0,0 @@ -# daemon: lua modules -# SPDX-License-Identifier: GPL-3.0-or-later - -config_tests += [ - ['controlsock', files('controlsock.test.lua')], - ['krprint', files('krprint.test.lua')], - ['log', files('log.test.lua')], - ['ta', files('trust_anchors.test/ta.test.lua')], - ['ta_bootstrap', files('trust_anchors.test/bootstrap.test.lua'), ['y2k38']], -] - -integr_tests += [ - ['map', meson.current_source_dir() / 'map.test.integr'], -] - -lua_config = configuration_data() -lua_config.set('keyfile_default', keyfile_default) -lua_config.set('etc_dir', etc_dir) -lua_config.set('run_dir', run_dir) -lua_config.set('systemd_cache_dir', systemd_cache_dir) -lua_config.set('unmanaged', managed_ta ? 'false' : 'true') - -trust_anchors = configure_file( - input: 'trust_anchors.lua.in', - output: 'trust_anchors.lua', - configuration: lua_config, -) - -sandbox = configure_file( - input: 'sandbox.lua.in', - output: 'sandbox.lua', - configuration: lua_config, -) - -distro_preconfig = configure_file( - input: 'distro-preconfig.lua.in', - output: 'distro-preconfig.lua', - configuration: lua_config, -) - -# Unfortunately the different ABI implies different contents of 'kres-gen.lua'. -if libknot.version().version_compare('>= 3.2') - kres_gen_fname = 'kres-gen-32.lua' -elif libknot.version().version_compare('>= 3.1') - kres_gen_fname = 'kres-gen-31.lua' -else - kres_gen_fname = 'kres-gen-30.lua' -endif - -# Exact types around time_t aren't easy to detect, but at least we need the same size. -time_t_size = meson.get_compiler('c').sizeof('time_t', prefix: '#include ') -kres_gen_config = {} -foreach t: [ 'long', 'long long' ] - if meson.get_compiler('c').sizeof(t) == time_t_size - kres_gen_config = { 'time_t': t } - break - endif -endforeach -if kres_gen_config == {} - error('Unexpected sizeof(time_t) == @0@'.format(time_t_size)) -endif - -kres_gen_lua = configure_file( - input: kres_gen_fname, - output: 'kres-gen.lua', - configuration: kres_gen_config, -) - -run_target( # run manually to re-generate kres-gen.lua - 'kres-gen', - command: [ find_program('./kres-gen.sh'), kres_gen_fname ], -) - -# A simple config test: check that sizes of some structures match -# in C and pre-generated lua bindings. -# The point is that regeneration is quite expensive in time and dependencies, -# but this basic sanity check could be ran always, except for cross compilation, -# as we *run* luajit to find out the real sizes. -if get_option('kres_gen_test') and not meson.is_cross_build() - types_to_check = [ - { 'tname': 'time_t', 'incl': '#include ' }, - { 'tname': 'struct timeval', 'incl' : '#include ' }, - { 'tname': 'zs_scanner_t', 'incl': '#include ', 'dep': libzscanner }, - { 'tname': 'knot_pkt_t', 'incl' : '#include ', 'dep': libknot }, - ] - # Construct the lua tester as a meson string. - kres_gen_test_luastr = ''' - dofile('@0@/../../@1@') - local ffi = require('ffi') - '''.format(meson.current_build_dir(), kres_gen_lua) - foreach ttc: types_to_check - # We're careful with adding just includes; otherwise it's more fragile (e.g. linking flags). - if 'dep' in ttc - dep = ttc.get('dep').partial_dependency(includes: true, compile_args: true) - else - dep = [] - endif - tsize = meson.get_compiler('c').sizeof(ttc.get('tname'), prefix: ttc.get('incl'), - dependencies: dep) - kres_gen_test_luastr += ''' - assert(ffi.sizeof(ffi.typeof('@0@')) == @1@, - 'Lua binding for C type ' .. '@0@' .. ' has incorrect size: ' - .. ffi.sizeof(ffi.typeof('@0@')) - ) - '''.format(ttc.get('tname'), tsize) - endforeach - # Now feed it directly into luajit. - kres_gen_test = run_command(find_program('luajit'), '-e', kres_gen_test_luastr, check: false) - if kres_gen_test.returncode() != 0 - error('if you use released Knot* versions, please contact us: https://www.knot-resolver.cz/contact/\n' - + kres_gen_test.stderr().strip()) - endif -endif - -lua_src = [ - files('postconfig.lua'), - files('kres.lua'), - kres_gen_lua, - sandbox, - trust_anchors, - files('zonefile.lua'), - files('kluautil.lua'), - files('krprint.lua'), - distro_preconfig, -] - -# install daemon lua sources -install_data( - lua_src, - install_dir: lib_dir, -) diff --git a/daemon/lua/postconfig.lua b/daemon/lua/postconfig.lua deleted file mode 100644 index ac71660ee..000000000 --- a/daemon/lua/postconfig.lua +++ /dev/null @@ -1,70 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -local ffi = require('ffi') -local C = ffi.C - -local function count_sockets() - local dns_socks = 0 - local control_socks = 0 - for _, socket in ipairs(net.list()) do - if socket.kind == 'control' then - control_socks = control_socks + 1 - elseif (socket.kind == 'dns' or - socket.kind == 'xdp' or - socket.kind == 'tls' or - socket.kind == 'doh_legacy' or - socket.kind == 'doh2') then - dns_socks = dns_socks + 1 - end - end - return dns_socks, control_socks -end - -local n_dns_socks, n_control_socks = count_sockets() - --- Check and set control sockets path -worker.control_path = worker.control_path or (worker.cwd .. '/control/') - --- Bind to control socket by default -if n_control_socks == 0 and not env.KRESD_NO_LISTEN then - local path = worker.control_path..worker.pid - local ok, err = pcall(net.listen, path, nil, { kind = 'control' }) - if not ok then - log_warn(C.LOG_GRP_NETWORK, 'bind to '..path..' failed '..err) - end -end - --- Listen on localhost -if n_dns_socks == 0 and not env.KRESD_NO_LISTEN then - local ok, err = pcall(net.listen, '127.0.0.1') - if not ok then - error('bind to 127.0.0.1@53 '..err) - end - -- Binding to other ifaces may fail - ok, err = pcall(net.listen, '127.0.0.1', 853) - if not ok then - log_info(ffi.C.LOG_GRP_NETWORK, 'bind to 127.0.0.1@853 '..err) - end - ok, err = pcall(net.listen, '::1') - if not ok then - log_info(ffi.C.LOG_GRP_NETWORK, 'bind to ::1@53 '..err) - end - ok, err = pcall(net.listen, '::1', 853) - if not ok then - log_info(ffi.C.LOG_GRP_NETWORK, 'bind to ::1@853 '..err) - end - -- Exit when kresd isn't listening on any interfaces - n_dns_socks, _ = count_sockets() - if n_dns_socks == 0 then - panic('not listening on any interface, exiting...') - end -end --- Open cache if not set/disabled -if not cache.current_size then - cache.size = 100 * MB -end - --- If no addresses for root servers are set, load them from the default file -if C.kr_zonecut_is_empty(kres.context().root_hints) then - _hint_root_file() -end diff --git a/daemon/lua/sandbox.lua.in b/daemon/lua/sandbox.lua.in deleted file mode 100644 index 116489f87..000000000 --- a/daemon/lua/sandbox.lua.in +++ /dev/null @@ -1,844 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -local debug = require('debug') -local ffi = require('ffi') -local kluautil = require('kluautil') -local krprint = require("krprint") - --- Units -kB = 1024 -MB = 1024*kB -GB = 1024*MB --- Time -sec = 1000 -second = sec -minute = 60 * sec -min = minute -hour = 60 * minute -day = 24 * hour - --- Logging - --- from syslog.h -LOG_CRIT = 2 -LOG_ERR = 3 -LOG_WARNING = 4 -LOG_NOTICE = 5 -LOG_INFO = 6 -LOG_DEBUG = 7 - -local function curr_file() return debug.getinfo(4,'S').source end -local function curr_line() return debug.getinfo(4,'l').currentline end - -local function log_fmt(grp, level, fmt, ...) - ffi.C.kr_log_fmt(grp, level, - 'CODE_FILE='..curr_file(), 'CODE_LINE='..curr_line(), 'CODE_FUNC=', - '[%-6s] %s\n', ffi.C.kr_log_grp2name(grp), string.format(fmt, ...)) -end - -function log_req(req, qry_uid, indent, grp, fmt, ...) - ffi.C.kr_log_req1(req, qry_uid, indent, grp, ffi.C.kr_log_grp2name(grp), - '%s\n', string.format(fmt, ...)) -end - -function log_qry(qry, grp, fmt, ...) - ffi.C.kr_log_q1(qry, grp, ffi.C.kr_log_grp2name(grp), - '%s\n', string.format(fmt, ...)) -end - -function panic(fmt, ...) - print(debug.traceback('error occurred here (config filename:lineno is ' - .. 'at the bottom, if config is involved):', 2)) - error(string.format('ERROR: '.. fmt, ...), 0) -end - -function log_error(grp, fmt, ...) - log_fmt(grp, LOG_ERR, fmt, ...) -end - -function log_warn(grp, fmt, ...) - log_fmt(grp, LOG_WARNING, fmt, ...) -end - -function log_notice(grp, fmt, ...) - log_fmt(grp, LOG_NOTICE, fmt, ...) -end - -function log_info(grp, fmt, ...) - log_fmt(grp, LOG_INFO, fmt, ...) -end - -function log_debug(grp, fmt, ...) - log_fmt(grp, LOG_DEBUG, fmt, ...) -end - -function log(fmt, ...) - log_notice(ffi.C.LOG_GRP_MODULE, fmt, ...) -end - --- Resolver bindings -kres = require('kres') -if rawget(kres, 'str2dname') ~= nil then - todname = kres.str2dname -end - -worker.resolve_pkt = function (pkt, options, finish, init) - options = kres.mk_qflags(options) - local task = ffi.C.worker_resolve_start(pkt, options) - - -- Deal with finish and init callbacks - if finish ~= nil then - local finish_cb - finish_cb = ffi.cast('trace_callback_f', - function (req) - jit.off(true, true) -- JIT for (C -> lua)^2 nesting isn't allowed - finish(req.answer, req) - finish_cb:free() - end) - task.ctx.req.trace_finish = finish_cb - end - if init ~= nil then - init(task.ctx.req) - end - - return ffi.C.worker_resolve_exec(task, pkt) == 0 -end - -worker.resolve = function (qname, qtype, qclass, options, finish, init) - -- Alternatively use named arguments - if type(qname) == 'table' then - local t = qname - qname = t.name - qtype = t.type - qclass = t.class - options = t.options - finish = t.finish - init = t.init - end - qtype = qtype or kres.type.A - qclass = qclass or kres.class.IN - options = kres.mk_qflags(options) - -- LATER: nicer errors for rubbish in qname, qtype, qclass? - local pkt = ffi.C.worker_resolve_mk_pkt(qname, qtype, qclass, options) - if pkt == nil then - panic('failure in worker.resolve(); probably invalid qname "%s"', qname) - end - local ret = worker.resolve_pkt(pkt, options, finish, init) - ffi.C.knot_pkt_free(pkt); - return ret -end -resolve = worker.resolve - --- Shorthand for aggregated per-worker information -worker.info = function () - local t = worker.stats() - t.pid = worker.pid - return t -end - --- Resolver mode of operation -local current_mode = 'normal' -local mode_table = { normal=0, strict=1, permissive=2 } -function mode(m) - if not m then return current_mode end - if not mode_table[m] then error('unsupported mode: '..m) end - -- Update current operation mode - current_mode = m - option('STRICT', current_mode == 'strict') - option('PERMISSIVE', current_mode == 'permissive') - return true -end - --- Trivial option alias -function reorder_RR(val) - return option('REORDER_RR', val) -end - --- Get/set resolver options via name (string) -function option(name, val) - local flags = kres.context().options; - -- Note: no way to test existence of flags[name] but we want error anyway. - name = string.upper(name) -- convenience - if val ~= nil then - if (val ~= true) and (val ~= false) then - panic('invalid option value: ' .. tostring(val)) - end - flags[name] = val; - end - return flags[name]; -end - --- Function aliases --- `env.VAR returns os.getenv(VAR)` -env = {} -setmetatable(env, { - __index = function (_, k) return os.getenv(k) end -}) - -debugging = {} -setmetatable(debugging, { - __index = function(_, k) - if k == 'assertion_abort' then return ffi.C.kr_dbg_assertion_abort - elseif k == 'assertion_fork' then return ffi.C.kr_dbg_assertion_fork - else panic('invalid debugging option: ' .. tostring(k)) - end - end, - __newindex = function(_, k, v) - if k == 'assertion_abort' then ffi.C.kr_dbg_assertion_abort = v - elseif k == 'assertion_fork' then ffi.C.kr_dbg_assertion_fork = v - else panic('invalid debugging option: ' .. tostring(k)) - end - end -}) - --- Quick access to interfaces --- `net.` => `net.interfaces()[iface]` --- `net = {addr1, ..}` => `net.listen(name, addr1)` --- `net.ipv{4,6} = {true, false}` => enable/disable IPv{4,6} -setmetatable(net, { - __index = function (t, k) - local v = rawget(t, k) - if v then return v - elseif k == 'ipv6' then return not option('NO_IPV6') - elseif k == 'ipv4' then return not option('NO_IPV4') - else return net.interfaces()[k] - end - end, - __newindex = function (t,k,v) - if k == 'ipv6' then return option('NO_IPV6', not v) - elseif k == 'ipv4' then return option('NO_IPV4', not v) - else - local iname = rawget(net.interfaces(), v) - if iname then t.listen(iname) - else t.listen(v) - end - end - end -}) - --- Syntactic sugar for module loading --- `modules. = ` -setmetatable(modules, { - __newindex = function (_, k, v) - if type(k) == 'number' then - k, v = v, nil - end - if not rawget(_G, k) then - modules.load(k) - k = string.match(k, '[%w_]+') - local mod = _G[k] - local config = mod and rawget(mod, 'config') - if mod ~= nil and config ~= nil then - if k ~= v then config(v) - else config() - end - end - end - end -}) - --- Set up lua table for a C module. (Internal function.) -function modules_create_table_for_c(kr_module_ud) - local kr_module = ffi.cast('struct kr_module **', kr_module_ud)[0] - --- Set up the global table named according to the module. - if kr_module.config == nil and kr_module.props == nil then - return - end - local module = {} - local module_name = ffi.string(kr_module.name) - _G[module_name] = module - - --- Construct lua functions for properties. - if kr_module.props ~= nil then - local i = 0 - while true do - local prop = kr_module.props[i] - local cb = prop.cb - if cb == nil then break; end - module[ffi.string(prop.name)] = - function (arg) -- lua wrapper around kr_prop_cb function typedef - local arg_conv - if type(arg) == 'table' or type(arg) == 'boolean' then - arg_conv = tojson(arg) - elseif arg ~= nil then - arg_conv = tostring(arg) - end - local ret_cstr = cb(ffi.C.the_engine, kr_module, arg_conv) - if ret_cstr == nil then - return nil - end - -- LATER(optim.): superfluous copying - local ret_str = ffi.string(ret_cstr) - -- This is a bit ugly, but the API is that invalid JSON - -- should be just returned as string :-( - local status, ret = pcall(fromjson, ret_str) - if not status then ret = ret_str end - ffi.C.free(ret_cstr) - return ret - end - i = i + 1 - end - end - - --- Construct lua function for config(). - if kr_module.config ~= nil then - module.config = - function (arg) - local arg_conv - if type(arg) == 'table' or type(arg) == 'boolean' then - arg_conv = tojson(arg) - elseif arg ~= nil then - arg_conv = tostring(arg) - end - return kr_module.config(kr_module, arg_conv) - end - end - - --- Add syntactic sugar for get() and set() properties. - --- That also "catches" any commands like `moduleName.foo = bar`. - local m_index, m_newindex - local get_f = rawget(module, 'get') - if get_f ~= nil then - m_index = function (_, key) - return get_f(key) - end - else - m_index = function () - error('module ' .. module_name .. ' does not support indexing syntax sugar') - end - end - local set_f = rawget(module, 'set') - if set_f ~= nil then - m_newindex = function (_, key, value) - -- This will produce a nasty error on some non-string parameters. - -- Still, we already use it with integer values, e.g. in predict module :-/ - return set_f(key .. ' ' .. value) - end - else - m_newindex = function () - error('module ' .. module_name .. ' does not support assignment syntax sugar') - end - end - setmetatable(module, { - -- note: the two functions only get called for *missing* indices - __index = m_index, - __newindex = m_newindex, - }) -end - -local layer_ctx = ffi.C.kr_layer_t_static --- Utilities internal for lua layer glue; see ../ffimodule.c -modules_ffi_layer_wrap1 = function (layer_cb) - return layer_cb(layer_ctx.state, layer_ctx.req) -end -modules_ffi_layer_wrap2 = function (layer_cb) - return layer_cb(layer_ctx.state, layer_ctx.req, layer_ctx.pkt) -end -modules_ffi_layer_wrap_checkout = function (layer_cb) - return layer_cb(layer_ctx.state, layer_ctx.req, layer_ctx.pkt, - layer_ctx.dst, layer_ctx.is_stream) -end -modules_ffi_wrap_modcb = function (cb, kr_module_ud) -- this one isn't for layer - local kr_module = ffi.cast('struct kr_module **', kr_module_ud)[0] - return cb(kr_module) -end - --- Return filesystem size where the cache resides. -cache.fssize = function () - local path = cache.current_storage or '.' - -- As it is now, `path` may or may not include the lmdb:// prefix. - if string.sub(path, 1, 7) == 'lmdb://' then - path = string.sub(path, 8) - end - if #path == 0 then - path = '.' - end - local size = tonumber(ffi.C.kr_fssize(path)) - if size < 0 then - panic('cache.fssize(): %s', ffi.string(ffi.C.knot_strerror(size))) - else - return size - end -end - -cache.clear = function (name, exact_name, rr_type, chunk_size, callback, prev_state) - if name == nil or (name == '.' and not exact_name) then - -- keep same output format as for 'standard' clear - local total_count = cache.count() - if not cache.clear_everything() then - error('unable to clear everything') - end - return {count = total_count} - end - -- Check parameters, in order, and set defaults if missing. - local dname = kres.str2dname(name) - if not dname then error('cache.clear(): incorrect name passed') end - if exact_name == nil then exact_name = false end - if type(exact_name) ~= 'boolean' - then error('cache.clear(): incorrect exact_name passed') end - - local cach = kres.context().cache; - local rettable = {} - -- Apex warning. If the caller passes a custom callback, - -- we assume they are advanced enough not to need the check. - -- The point is to avoid repeating the check in each callback iteration. - if callback == nil then - local apex_array = ffi.new('knot_dname_t *[1]') -- C: dname **apex_array - local ret = ffi.C.kr_cache_closest_apex(cach, dname, false, apex_array) - if ret < 0 then - error(ffi.string(ffi.C.knot_strerror(ret))) end - if not ffi.C.knot_dname_is_equal(apex_array[0], dname) then - local apex_str = kres.dname2str(apex_array[0]) - rettable.not_apex = 'to clear proofs of non-existence call ' - .. 'cache.clear(\'' .. tostring(apex_str) ..'\')' - rettable.subtree = apex_str - end - ffi.C.free(apex_array[0]) - end - - if rr_type ~= nil then - -- Special case, without any subtree searching. - if not exact_name - then error('cache.clear(): specifying rr_type only supported with exact_name') end - if chunk_size or callback - then error('cache.clear(): chunk_size and callback parameters not supported with rr_type') end - local ret = ffi.C.kr_cache_remove(cach, dname, rr_type) - if ret < 0 then error(ffi.string(ffi.C.knot_strerror(ret))) end - return {count = 1} - end - - if chunk_size == nil then chunk_size = 100 end - if type(chunk_size) ~= 'number' or chunk_size <= 0 - then error('cache.clear(): chunk_size has to be a positive integer') end - - -- Do the C call, and add chunk_size warning. - rettable.count = ffi.C.kr_cache_remove_subtree(cach, dname, exact_name, chunk_size) - if rettable.count == chunk_size then - local msg_extra = '' - if callback == nil then - msg_extra = '; the default callback will continue asynchronously' - end - rettable.chunk_limit = 'chunk size limit reached' .. msg_extra - end - - -- Default callback function: repeat after 1ms - if callback == nil then callback = - function (cbname, cbexact_name, cbrr_type, cbchunk_size, cbself, cbprev_state, cbrettable) - if cbrettable.count < 0 then error(ffi.string(ffi.C.knot_strerror(cbrettable.count))) end - if cbprev_state == nil then cbprev_state = { round = 0 } end - if type(cbprev_state) ~= 'table' - then error('cache.clear() callback: incorrect prev_state passed') end - cbrettable.round = cbprev_state.round + 1 - if (cbrettable.count == cbchunk_size) then - event.after(1, function () - cache.clear(cbname, cbexact_name, cbrr_type, cbchunk_size, cbself, cbrettable) - end) - elseif cbrettable.round > 1 then - log_info(ffi.C.LOG_GRP_CACHE, 'asynchronous cache.clear(\'' .. cbname .. '\', ' - .. tostring(cbexact_name) .. ') finished') - end - return cbrettable - end - end - return callback(name, exact_name, rr_type, chunk_size, callback, prev_state, rettable) -end --- Syntactic sugar for cache --- `cache[x] -> cache.get(x)` --- `cache.{size|storage} = value` -setmetatable(cache, { - __index = function (t, k) - local res = rawget(t, k) - if not res and not rawget(t, 'current_size') then return res end - -- Beware: t.get returns empty table on failure to find. - -- That would be confusing here (breaking kresc), so return nil instead. - res = t.get(k) - if res and next(res) ~= nil then return res else return nil end - end, - __newindex = function (t,k,v) - -- Defaults - local storage = rawget(t, 'current_storage') - if not storage then storage = 'lmdb://' end - local size = rawget(t, 'current_size') - if not size then size = 10*MB end - -- Declarative interface for cache - if k == 'size' then t.open(v, storage) - elseif k == 'storage' then t.open(size, v) end - end -}) - --- Make sandboxed environment -local function make_sandbox(defined) - local __protected = { - worker = true, env = true, debugging = true, modules = true, - cache = true, net = true, trust_anchors = true - } - - -- Compute and export the list of top-level names (hidden otherwise) - local nl = "" - for n in pairs(defined) do - nl = nl .. n .. "\n" - end - - return setmetatable({ __orig_name_list = nl }, { - __index = defined, - __newindex = function (_, k, v) - if __protected[k] then - for k2,v2 in pairs(v) do - defined[k][k2] = v2 - end - else - defined[k] = v - end - end - }) -end - --- Compatibility sandbox -_G = make_sandbox(getfenv(0)) -setfenv(0, _G) - --- Load default modules -trust_anchors = require('trust_anchors') -modules.load('ta_update') -modules.load('ta_signal_query') -modules.load('policy') -modules.load('priming') -modules.load('detect_time_skew') -modules.load('detect_time_jump') -modules.load('ta_sentinel') -modules.load('edns_keepalive') -modules.load('refuse_nord') -modules.load('watchdog') -modules.load('extended_error') - --- Load keyfile_default -trust_anchors.add_file('@keyfile_default@', @unmanaged@) - -local function eval_cmd_compile(line, mode) - -- Compatibility sandbox code loading - local function load_code(code) - if getfenv then -- Lua 5.1 - return loadstring(code) - else -- Lua 5.2+ - return load(code, nil, 't', _ENV) - end - end - - -- See `ENGINE_EVAL_MODE_MAP(XX)` C-macro for possible values - local err, chunk - if mode == "LUA_TABLE" then - chunk, err = load_code('return table_print(('..line..'))') - elseif mode == "RAW" then - chunk, err = load_code('return ('..line..')') - elseif mode == "JSON" then - chunk, err = load_code('return tojson(('..line..'))') - else - return nil, "invalid mode" - end - - if err then - chunk, err = load_code(line) - end - return chunk, err -end - --- Interactive command evaluation -function eval_cmd(line, mode) - local chunk, err = eval_cmd_compile(line, mode) - if not err then - return chunk() - else - error(err) - end -end - --- Pretty printing -local pprint = require('krprint').pprint -function table_print(...) - local strs = {} - local nargs = select('#', ...) - if nargs == 0 then - return nil - end - for n=1,nargs do - local arg = select(n, ...) - local arg_str = pprint(arg) - if nargs > 1 then - table.insert(strs, string.format("%s\t-- result # %d", arg_str, n)) - else - table.insert(strs, arg_str) - end - end - return table.concat(strs, '\n') -end - --- This extends the worker module to allow asynchronous execution of functions and nonblocking I/O. --- The current implementation combines cqueues for Lua interface, and event.socket() in order to not --- block resolver engine while waiting for I/O or timers. --- -local has_cqueues, cqueues = pcall(require, 'cqueues') -if has_cqueues then - - -- Export the asynchronous sleep function - worker.sleep = cqueues.sleep - - -- Create metatable for workers to define the API - -- It can schedule multiple cqueues and yield execution when there's a wait for blocking I/O or timer - local asynchronous_worker_mt = { - work = function (self) - local ok, err, _, co = self.cq:step(0) - if not ok then - log_warn(ffi.C.LOG_GRP_SYSTEM, '%s error: %s %s', self.name or 'worker', err, debug.traceback(co)) - end - -- Reschedule timeout or create new one - local timeout = self.cq:timeout() - if timeout then - -- Throttle timeouts to avoid too frequent wakeups - if timeout == 0 then timeout = 0.00001 end - -- Convert from seconds to duration - timeout = timeout * sec - if not self.next_timeout then - self.next_timeout = event.after(timeout, self.on_step) - else - event.reschedule(self.next_timeout, timeout) - end - else -- Cancel running timeout when there is no next deadline - if self.next_timeout then - event.cancel(self.next_timeout) - self.next_timeout = nil - end - end - end, - wrap = function (self, f) - self.cq:wrap(f) - end, - loop = function (self) - self.on_step = function () self:work() end - self.event_fd = event.socket(self.cq:pollfd(), self.on_step) - end, - close = function (self) - if self.event_fd then - event.cancel(self.event_fd) - self.event_fd = nil - end - end, - } - - -- Implement the coroutine worker with cqueues - local function worker_new (name) - return setmetatable({name = name, cq = cqueues.new()}, { __index = asynchronous_worker_mt }) - end - - -- Create a default background worker - worker.bg_worker = worker_new('worker.background') - worker.bg_worker:loop() - - -- Wrap a function for asynchronous execution - function worker.coroutine (f) - worker.bg_worker:wrap(f) - end -else - -- Disable asynchronous execution - local function disabled () - error('Lua library cqueues is required for asynchronous execution (luaJIT requires library for Lua 5.1)') - end - worker.sleep = disabled - worker.map = disabled - worker.coroutine = disabled - worker.bg_worker = setmetatable({}, { __index = disabled }) -end - --- Global commands for map() - --- must be public because it is called from eval_cmd() --- when map() commands are read from control socket -function _map_luaobj_call_wrapper(cmd) - local func = eval_cmd_compile(cmd, "RAW") - local ret = kluautil.kr_table_pack(xpcall(func, debug.traceback)) - local ok, serial = pcall(krprint.serialize_lua, ret, 'error') - if not ok then - log_error(ffi.C.LOG_GRP_SYSTEM, 'failed to serialize map() response %s (%s)', - table_print(ret), serial) - return krprint.serialize_lua( - kluautil.kr_table_pack(false, "returned values cannot be serialized: " - .. serial)) - else - return serial - end -end - -local function _sock_errmsg(path, desc) - return string.format( - 'map() error while communicating with %s: %s', - path, desc) -end - -local function _sock_check(sock, call, params, path, desc) - local errprefix = _sock_errmsg(path, desc) .. ': ' - local retvals = kluautil.kr_table_pack(pcall(call, unpack(params))) - local ok = retvals[1] - if not ok then - error(errprefix .. tostring(retvals[2])) - end - local rerr, werr = sock:error() - if rerr or werr then - error(string.format('%sread error %s; write error %s', errprefix, rerr, werr)) - end - if retvals[2] == nil then - error(errprefix .. 'unexpected nil result') - end - return unpack(retvals, 2, retvals.n) -end - -local function _sock_assert(condition, path, desc) - if not condition then - error(_sock_errmsg(path, desc)) - end -end - -local function map_send_recv(cmd, path) - local bit = require('bit') - local socket = require('cqueues.socket') - local s = socket.connect({ path = path }) - s:setmaxerrs(0) - s:setmode('bn', 'bn') - local status, err = pcall(s.connect, s) - if not status then - log_error(ffi.C.LOG_GRP_NETWORK, 'map() error while connecting to control socket %s: ' - .. '%s (ignoring this socket)', path, err) - return nil - end - local ret = _sock_check(s, s.write, {s, '__binary\n'}, path, - 'write __binary') - _sock_assert(ret, path, - 'write __binary result') - local recv = _sock_check(s, s.read, {s, 2}, path, - 'read reply to __binary') - _sock_assert(recv and recv == '> ', path, - 'unexpected reply to __binary') - _sock_check(s, s.write, {s, cmd..'\n'}, path, - 'command write') - recv = _sock_check(s, s.read, {s, 4}, path, - 'response length read') - _sock_assert(recv and #recv == 4, path, - 'length of response length preamble does not match') - local len = tonumber(recv:byte(1)) - for i=2,4 do - len = bit.bor(bit.lshift(len, 8), tonumber(recv:byte(i))) - end - ret = _sock_check(s, s.read, {s, len}, path, - 'read response') - _sock_assert(ret and #ret == len, path, - 'actual response length does not match length in preamble') - s:close() - return ret -end - --- internal use only --- Call cmd on each instance via control sockets. --- @param format - "luaobj" if individual results should be Lua objects --- - "strings" for eval_cmd output for each instance --- @returns table with results, one item per instance + key n=number of instances --- (order of return values is undefined) --- @throws Lua error if: --- - communication failed in the middle of transaction --- - a result is not serializable --- - individual call throws an error --- - number of return values != 1 per instance per call --- - cmd execution state is undefined after an error --- Connection errors at the beginning are ignored to paper over leftover dead sockets. -function map(cmd, format) - local local_sockets = {} - local results = {} - - if (type(cmd) ~= 'string') then - panic('map() command must be a string') end - if string.find(cmd, '\n', 1, true) then - panic('map() command cannot contain literal \\n, escape it with \\010') end - if (#cmd <= 0) then - panic('map() command must be non-empty') end - -- syntax check on input command to detect typos early - local chunk, err = eval_cmd_compile(cmd, "LUA_TABLE") - if not chunk then - panic('failure when compiling map() command: %s', err) - end - - format = format or 'luaobj' - if (format ~= 'luaobj' and format ~= 'strings') then - panic('map() output format must be luaobj or strings') end - if format == 'luaobj' then - cmd = '_map_luaobj_call_wrapper([=====[' .. cmd .. ']=====])' - end - - -- find out control socket paths - for _,v in pairs(net.list()) do - if (v['kind'] == 'control') and (v['transport']['family'] == 'unix') then - table.insert(local_sockets, string.match(v['transport']['path'], '^.*/([^/]+)$')) - end - end - local filetab = kluautil.list_dir(worker.control_path) - if next(filetab) == nil then - panic('no control sockets found in directory %s', - worker.control_path) - end - - local result_count = 0 - -- finally execute it on all instances - for _, file in ipairs(filetab) do - local local_exec = false - for _, lsoc in ipairs(local_sockets) do - if file == lsoc then - local_exec = true - end - end - local path = worker.control_path..file - local path_name = (local_exec and 'this instance') or path - log_info(ffi.C.LOG_GRP_SYSTEM, 'executing map() on %s: command %s', path_name, cmd) - local ret - if local_exec then - ret = eval_cmd(cmd, "LUA_TABLE") - else - ret = map_send_recv(cmd, path) - -- skip dead sockets (leftovers from dead instances) - if ret == nil then - goto continue - end - end - result_count = result_count + 1 - -- return value is output from eval_cmd - -- i.e. string including "quotes" and Lua escaping in between - assert(type(ret) == 'string', 'map() protocol error, ' - .. 'string not retured by follower') - assert(#ret >= 2 and - string.sub(ret, 1, 1) == "'" - and string.sub(ret, -1, -1) == "'", - 'map() protocol error, value returned by follower does ' - .. 'not look like a string') - -- deserialize string: remove "quotes" and de-escape bytes - ret = krprint.deserialize_lua(ret) - if format == 'luaobj' then - -- ret should be table with xpcall results serialized into string - ret = krprint.deserialize_lua(ret) - assert(type(ret) == 'table', 'map() protocol error, ' - .. 'table with results not retured by follower') - if (ret.n ~= 2) then - log_error(ffi.C.LOG_GRP_SYSTEM, 'got unsupported map() response: %s', table_print(ret)) - panic('unexpected number of return values in map() response: ' - .. 'only single return value is allowed, ' - .. 'use kluautil.kr_table_pack() helper') - end - local ok, retval = ret[1], ret[2] - if ok == false then - panic('error when executing map() command on control socket %s: ' - .. '%s. command execution state is now undefined!', - path, retval) - end - -- drop wrapper table and return only the actual return value - ret = retval - end - results[result_count] = ret - ::continue:: - end - results.n = result_count - return results -end diff --git a/daemon/lua/trust_anchors.lua.in b/daemon/lua/trust_anchors.lua.in deleted file mode 100644 index 13e815690..000000000 --- a/daemon/lua/trust_anchors.lua.in +++ /dev/null @@ -1,532 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - --- Load the module -local ffi = require 'ffi' -local kres = require('kres') -local C = ffi.C - -local trust_anchors -- the public pseudo-module, exported as global variable - --- RFC5011 state table -local key_state = { - Start = 'Start', AddPend = 'AddPend', Valid = 'Valid', - Missing = 'Missing', Revoked = 'Revoked', Removed = 'Removed' -} - -local function upgrade_required(msg) - if msg then - msg = msg .. '\n' - else - msg = '' - end - panic('Configuration upgrade required: ' .. msg .. 'Please refer to ' .. - 'https://www.knot-resolver.cz/documentation/latest/upgrading.html') -end - --- TODO: Move bootstrap to a separate module or even its own binary --- remove UTC timezone specification if present or throw error -local function time2utc(orig_timespec) - local patterns = {'[+-]00:00$', 'Z$'} - for _, pattern in ipairs(patterns) do - local timespec, removals = string.gsub(orig_timespec, pattern, '') - if removals == 1 then - return timespec - end - end - error(string.format('unsupported time specification: %s', orig_timespec)) -end - -local function keydigest_is_valid(valid_from, valid_until) - local format = '%Y-%m-%dT%H:%M:%S' - local time_now = os.date('!%Y-%m-%dT%H:%M:%S') -- ! forces UTC - local time_diff = ffi.new('double[1]') - local err = ffi.C.kr_strptime_diff( - format, time_now, time2utc(valid_from), time_diff) - if (err ~= nil) then - error(string.format('failed to process "validFrom" constraint: %s', - ffi.string(err))) - end - local from_ok = time_diff[0] > 0 - - -- optional attribute - local until_ok = true - if valid_until then - err = ffi.C.kr_strptime_diff( - format, time_now, time2utc(valid_until), time_diff) - if (err ~= nil) then - error(string.format('failed to process "validUntil" constraint: %s', - ffi.string(err))) - end - until_ok = time_diff[0] < 0 - end - return from_ok and until_ok -end - -local function parse_xml_keydigest(attrs, inside, output) - local fields = {} - local _, n = string.gsub(attrs, "([%w]+)=\"([^\"]*)\"", function (k, v) fields[k] = v end) - assert(n >= 1, - string.format('cannot parse XML attributes from "%s"', attrs)) - assert(fields['validFrom'], - string.format('mandatory KeyDigest XML attribute validFrom ' .. - 'not found in "%s"', attrs)) - local valid_attrs = {id = true, validFrom = true, validUntil = true} - for key, _ in pairs(fields) do - assert(valid_attrs[key], - string.format('unsupported KeyDigest attribute "%s" found in "%s"', - key, attrs)) - end - - _, n = string.gsub(inside, "<([%w]+).->([^<]+)", function (k, v) fields[k] = v end) - assert(n >= 1, - string.format('error parsing KeyDigest XML elements from "%s"', - inside)) - local mandatory_elements = {'KeyTag', 'Algorithm', 'DigestType', 'Digest'} - for _, key in ipairs(mandatory_elements) do - assert(fields[key], - string.format('mandatory element %s is missing in "%s"', - key, inside)) - end - assert(n == 4, string.format('found %d elements but expected 4 in %s', n, inside)) - table.insert(output, fields) -- append to list of parsed keydigests -end - -local function generate_ds(keydigests) - local rrset = '' - for _, fields in ipairs(keydigests) do - local rr = string.format( - '. 0 IN DS %s %s %s %s', - fields.KeyTag, fields.Algorithm, fields.DigestType, fields.Digest) - if keydigest_is_valid(fields['validFrom'], fields['validUntil']) then - rrset = rrset .. '\n' .. rr - else - log_info(ffi.C.LOG_GRP_TA, 'skipping trust anchor "%s" ' .. - 'because it is outside of validity range', rr) - end - end - return rrset -end - -local function assert_str_match(str, pattern, expected) - local count = 0 - for _ in string.gmatch(str, pattern) do - count = count + 1 - end - assert(count == expected, - string.format('expected %d occurences of "%s" but got %d in "%s"', - expected, pattern, count, str)) -end - --- Fetch root anchors in XML over HTTPS, returning a zone-file-style string --- or false in case of error, and a message. -local function bootstrap(url, ca) - local kluautil = require('kluautil') - local file = io.tmpfile() - -- RFC 7958, sec. 2, but we don't do precise XML parsing. - -- @todo ICANN certificate is verified against current CA - -- this is not ideal, as it should rather verify .xml signature which - -- is signed by ICANN long-lived cert, but luasec has no PKCS7 - local rcode, errmsg = kluautil.kr_https_fetch(url, file, ca) - if rcode == nil then - file:close() - return false, string.format('[ ta ] fetch of "%s" failed: %s', url, errmsg) - end - - local xml = file:read("*a") - file:close() - - -- we support only minimal subset of https://tools.ietf.org/html/rfc7958 - assert_str_match(xml, '', 1) - assert_str_match(xml, '.', 1) - assert_str_match(xml, '', 1) - - -- Parse root trust anchor, one digest at a time, converting to a zone-file-style string. - local keydigests = {} - string.gsub(xml, "]*)>(.-)", function(attrs, inside) - parse_xml_keydigest(attrs, inside, keydigests) - end) - local rrset = generate_ds(keydigests) - if rrset == '' then - return false, string.format('[ ta ] no valid trust anchors found at "%s"', url) - end - local msg = '[ ta ] Root trust anchors bootstrapped over https with pinned certificate.\n' - .. ' You SHOULD verify them manually against original source:\n' - .. ' https://www.iana.org/dnssec/files\n' - .. '[ ta ] Bootstrapped root trust anchors are:' - .. rrset - return rrset, msg -end - -local function bootstrap_write(rrstr, filename) - local fname_tmp = filename .. '.lock.' .. tostring(worker.pid); - local file = assert(io.open(fname_tmp, 'w')) - file:write(rrstr) - file:close() - assert(os.rename(fname_tmp, filename)) -end --- Bootstrap end - --- Update ta.comment and return decorated line representing the RR --- This is meant to be in zone-file format. -local function ta_rr_str(ta) - ta.comment = ' ' .. ta.state .. ':' .. (ta.timer or '') - .. ' ; KeyTag:' .. ta.key_tag -- the tag is just for humans - local rr_str = kres.rr2str(ta) .. '\n' - if ta.state ~= key_state.Valid and ta.state ~= key_state.Missing then - rr_str = '; '..rr_str -- Invalidate key string (for older kresd versions) - end - return rr_str -end - --- Write keyset to a file. States and timers are stored in comments. -local function keyset_write(keyset) - if not keyset.managed then -- not to be persistent, this is an error! - panic('internal error: keyset_write called for an unmanaged TA') - end - local fname_tmp = keyset.filename .. '.lock.' .. tostring(worker.pid); - local file = assert(io.open(fname_tmp, 'w')) - for i = 1, #keyset do - file:write(ta_rr_str(keyset[i])) - end - file:close() - assert(os.rename(fname_tmp, keyset.filename)) -end - --- Search the values of a table and return the corresponding key (or nil). -local function table_search(t, val) - for k, v in pairs(t) do - if v == val then - return k - end - end - return nil -end - --- For each RR, parse .state and .timer from .comment. -local function keyset_parse_comments(tas, default_state) - for _, ta in pairs(tas) do - ta.state = default_state - if ta.comment then - string.gsub(ta.comment, '^%s*(%a+):(%d*)', function (state, time) - if table_search(key_state, state) then - ta.state = state - end - ta.timer = tonumber(time) -- nil on failure - end) - ta.comment = nil - end - end - return tas -end - --- Read keyset from a file xor a string. (This includes the key states and timers.) -local function keyset_read(path, str) - if (path == nil) == (str == nil) then -- exactly one of them must be nil - return nil, "internal ERROR: incorrect call to TA's keyset_read" - end - -- First load the regular entries, trusting them. - local zonefile = require('zonefile') - local tas, err - if path ~= nil then - tas, err = zonefile.file(path) - else - tas, err = zonefile.string(str) - end - if not tas then - return tas, err - end - keyset_parse_comments(tas, key_state.Valid) - - -- The untrusted keys are commented out but important to load. - local line_iter - if path ~= nil then - line_iter = io.lines(path) - else - line_iter = string.gmatch(str, "[^\n]+") - end - for line in line_iter do - if line:sub(1, 2) == '; ' then - -- Ignore the line if it fails to parse including recognized .state. - local l_set = zonefile.string(line:sub(3)) - if l_set and l_set[1] then - keyset_parse_comments(l_set) - if l_set[1].state then - table.insert(tas, l_set[1]) - end - end - end - end - - -- Fill tas[*].key_tag - for _, ta in pairs(tas) do - local ta_keytag = C.kr_dnssec_key_tag(ta.type, ta.rdata, #ta.rdata) - if not (ta_keytag >= 0 and ta_keytag <= 65535) then - return nil, string.format('invalid key: "%s": %s', - kres.rr2str(ta), ffi.string(C.knot_strerror(ta_keytag))) - end - ta.key_tag = ta_keytag - end - - -- Fill tas.owner - if not tas[1] then - return nil, "empty TA set" - end - local owner = tas[1].owner - for _, ta in ipairs(tas) do - if ta.owner ~= owner then - return nil, string.format("do not mix %s and %s TAs in single file/string", - kres.dname2str(ta.owner), kres.dname2str(owner)) - end - end - tas.owner = owner - - return tas -end - --- Replace current TAs for given owner by the "trusted" ones from passed keyset. --- Return true iff no TA errored out and at least one is in VALID state. -local function keyset_publish(keyset) - local store = kres.context().trust_anchors - local count = 0 - local has_error = false - C.kr_ta_del(store, keyset.owner) - for _, ta in ipairs(keyset) do - -- Key MAY be used as a TA only in these two states (RFC5011, 4.2) - if ta.state == key_state.Valid or ta.state == key_state.Missing then - if C.kr_ta_add(store, ta.owner, ta.type, ta.ttl, ta.rdata, #ta.rdata) == 0 then - count = count + 1 - else - ta.state = 'ERROR' - has_error = true - end - end - end - if count == 0 then - log_error(ffi.C.LOG_GRP_TA, 'ERROR: no anchors are trusted for ' .. - kres.dname2str(keyset.owner) .. ' !') - end - return count > 0 and not has_error -end - -local function add_file(path, unmanaged) - local managed = not unmanaged - if not ta_update then - modules.load('ta_update') - end - if managed then - if not io.open(path .. '.lock', 'w') then - error("[ ta ] ERROR: write access needed to keyfile dir '"..path.."'") - end - os.remove(path .. ".lock") - end - - -- Bootstrap TA for root zone if keyfile doesn't exist - if managed and not io.open(path, 'r') then - if trust_anchors.keysets['\0'] then - error(string.format( - "[ ta ] keyfile '%s' doesn't exist and root key is already installed, " - .. "cannot bootstrap; provide a path to valid file with keys", path)) - end - log_info(ffi.C.LOG_GRP_TA, "keyfile '%s': doesn't exist, bootstrapping", path); - local rrstr, msg = bootstrap(trust_anchors.bootstrap_url, trust_anchors.bootstrap_ca) - if not rrstr then - msg = msg .. '\n' - .. '[ ta ] Failed to bootstrap root trust anchors!' - error(msg) - end - print(msg) - bootstrap_write(rrstr, path) - -- continue as if the keyfile was there - end - - -- Parse the file and check its sanity - local keyset, err = keyset_read(path) - if not keyset then - panic("[ ta ] ERROR: failed to read anchors from '%s' (%s)", path, err) - end - keyset.filename = path - keyset.managed = managed - - local owner = keyset.owner - local owner_str = kres.dname2str(owner) - local keyset_orig = trust_anchors.keysets[owner] - if keyset_orig then - log_warn(ffi.C.LOG_GRP_TA, 'warning: overriding previously set trust anchors for ' .. owner_str) - if keyset_orig.managed and ta_update then - ta_update.stop(owner) - end - end - trust_anchors.keysets[owner] = keyset - - -- Replace the TA store used for validation - if keyset_publish(keyset) then - log_info(ffi.C.LOG_GRP_TA, 'installed trust anchors for domain ' .. owner_str .. ' are:\n' - .. trust_anchors.summary(owner)) - end - -- TODO: if failed and for root, try to rebootstrap? - - ta_update.start(owner, managed) -end - -local function remove(zname) - local owner = kres.str2dname(zname) - if not trust_anchors.keysets[owner] then - return false - end - - if ta_update then - ta_update.stop(owner) - end - trust_anchors.keysets[owner] = nil - local store = kres.context().trust_anchors - C.kr_ta_del(store, owner) - return true -end - -local function ta_str(owner) - local owner_str = kres.dname2str(owner) .. ' ' - local msg = '' - for _, nta in pairs(trust_anchors.insecure) do - if owner == kres.str2dname(nta) then - msg = owner_str .. 'is negative trust anchor\n' - end - end - if not trust_anchors.keysets[owner] then - if #msg > 0 then -- it is normal that NTA does not have explicit TA - return msg - else - return owner_str .. 'has no explicit trust anchors\n' - end - end - if #msg > 0 then - msg = msg .. 'WARNING! negative trust anchor also has an explicit TA\n' - end - for _, ta in ipairs(trust_anchors.keysets[owner]) do - msg = msg .. ta_rr_str(ta) - end - return msg -end - --- TA store management, for user docs see ../README.rst -trust_anchors = { - -- [internal] table indexed by dname; - -- each item is a list of RRs and additionally contains: - -- - owner - that dname (for simplicity) - -- - [optional] filename in which to persist the state, - -- implying unmanaged TA if nil - -- The RR tables also contain some additional TA-specific fields. - keysets = {}, - - -- Documented properties: - insecure = {}, - - bootstrap_url = 'https://data.iana.org/root-anchors/root-anchors.xml', - bootstrap_ca = '@etc_dir@/icann-ca.pem', - - -- Load keys from a file, 5011-managed by default. - -- If managed and the file doesn't exist, try bootstrapping the root into it. - add_file = add_file, - config = function() upgrade_required('trust_anchors.config was removed, use trust_anchors.add_file()') end, - remove = remove, - - keyset_publish = keyset_publish, - keyset_write = keyset_write, - key_state = key_state, - - -- Add DS/DNSKEY record(s) (unmanaged) - add = function (keystr) - local keyset, err = keyset_read(nil, keystr) - if keyset ~= nil then - local owner = keyset.owner - local owner_str = kres.dname2str(owner) - local keyset_orig = trust_anchors.keysets[owner] - -- Set up trust_anchors.keysets[owner] - if keyset_orig then - if keyset_orig.managed then - panic('[ ta ] it is impossible to add an unmanaged TA for zone ' - .. owner_str .. ' which already has a managed TA') - end - log_warn(ffi.C.LOG_GRP_TA, 'warning: extending previously set trust anchors for ' - .. owner_str) - for _, ta in ipairs(keyset) do - table.insert(keyset_orig, ta) - end - end - -- Replace the TA store used for validation - if not keyset_publish(keyset) then - err = "when publishing the TA set" - -- trust_anchors.keysets[owner] was already updated to the - -- (partially) failing state, but I'm not sure how much to improve this - end - keyset.managed = false - trust_anchors.keysets[owner] = keyset - - end - log_info(ffi.C.LOG_GRP_TA, 'New TA state:\n' .. trust_anchors.summary()) - if err then - panic('[ ta ] .add() failed: ' .. err) - end - end, - - -- Negative TA management - set_insecure = function (list) - assert(type(list) == 'table', 'parameter must be list of domain names (e.g. {"a.test", "b.example"})') - local store = kres.context().negative_anchors - for i = 1, #list do - local dname = kres.str2dname(list[i]) - if trust_anchors.keysets[dname] then - error('cannot add NTA '..list[i]..' because it is TA. Use trust_anchors.remove() instead') - end - end - - C.kr_ta_clear(store) - for i = 1, #list do - local dname = kres.str2dname(list[i]) - C.kr_ta_add(store, dname, kres.type.DS, 0, nil, 0) - end - trust_anchors.insecure = list - end, - -- Return textual representation of all TAs (incl. negative) - -- It's meant for human consumption. - summary = function (single_owner) - if single_owner then -- single domain - return ta_str(single_owner) - end - - -- all domains - local msg = '' - local ta_count = 0 - local seen = {} - for _, nta_str in pairs(trust_anchors.insecure) do - local owner = kres.str2dname(nta_str) - seen[owner] = true - msg = msg .. ta_str(owner) - end - for owner, _ in pairs(trust_anchors.keysets) do - if not seen[owner] then - ta_count = ta_count + 1 - msg = msg .. ta_str(owner) - end - end - if ta_count == 0 then - msg = msg .. 'No valid trust anchors, DNSSEC validation is disabled\n' - end - return msg - end, -} - --- Syntactic sugar for TA store -setmetatable(trust_anchors, { - __newindex = function (t,k,v) - if k == 'file' then - upgrade_required('trust_anchors.file was removed, use trust_anchors.add_file()') - elseif k == 'negative' then - upgrade_required('trust_anchors.negative was removed, use trust_anchors.set_insecure()') - elseif k == 'keyfile_default' then - upgrade_required('trust_anchors.keyfile_default is now compiled in, see trust_anchors.remove()') - else rawset(t, k, v) end - end, -}) - -return trust_anchors diff --git a/daemon/lua/trust_anchors.rst b/daemon/lua/trust_anchors.rst deleted file mode 100644 index 994465e5c..000000000 --- a/daemon/lua/trust_anchors.rst +++ /dev/null @@ -1,123 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. warning:: Options in this section are intended only for expert users and - normally should not be needed. - -Since version 4.0, **DNSSEC validation is enabled by default**. -If you really need to turn DNSSEC off and are okay with lowering security of your -system by doing so, add the following snippet to your configuration file. - -.. code-block:: lua - - -- turns off DNSSEC validation - trust_anchors.remove('.') - -The resolver supports DNSSEC including :rfc:`5011` automated DNSSEC TA updates -and :rfc:`7646` negative trust anchors. Depending on your distribution, DNSSEC -trust anchors should be either maintained in accordance with the distro-wide -policy, or automatically maintained by the resolver itself. - -In practice this means that you can forget about it and your favorite Linux -distribution will take care of it for you. - -Following functions allow to modify DNSSEC configuration *if you really have to*: - - -.. function:: trust_anchors.add_file(keyfile[, readonly = false]) - - :param string keyfile: path to the file. - :param readonly: if true, do not attempt to update the file. - - The format is standard zone file, though additional information may be persisted in comments. - Either DS or DNSKEY records can be used for TAs. - If the file does not exist, bootstrapping of *root* TA will be attempted. - If you want to use bootstrapping, install `lua-http`_ library. - - Each file can only contain records for a single domain. - The TAs will be updated according to :rfc:`5011` and persisted in the file (if allowed). - - Example output: - - .. code-block:: lua - - > trust_anchors.add_file('root.key') - [ ta ] new state of trust anchors for a domain: - . 165488 DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 - nil - - [ ta ] key: 19036 state: Valid - -.. function:: trust_anchors.remove(zonename) - - Remove specified trust anchor from trusted key set. Removing trust anchor for the root zone effectively disables DNSSEC validation (unless you configured another trust anchor). - - .. code-block:: lua - - > trust_anchors.remove('.') - true - - If you want to disable DNSSEC validation for a particular domain but keep it enabled for the rest of DNS tree, use :func:`trust_anchors.set_insecure`. - -.. envvar:: trust_anchors.hold_down_time = 30 * day - - :return: int (default: 30 * day) - - Modify RFC5011 hold-down timer to given value. Intended only for testing purposes. Example: ``30 * sec`` - -.. envvar:: trust_anchors.refresh_time = nil - - :return: int (default: nil) - - Modify RFC5011 refresh timer to given value (not set by default), this will force trust anchors - to be updated every N seconds periodically instead of relying on RFC5011 logic and TTLs. - Intended only for testing purposes. - Example: ``10 * sec`` - -.. envvar:: trust_anchors.keep_removed = 0 - - :return: int (default: 0) - - How many ``Removed`` keys should be held in history (and key file) before being purged. - Note: all ``Removed`` keys will be purged from key file after restarting the process. - - -.. function:: trust_anchors.set_insecure(nta_set) - - :param table nta_list: List of domain names (text format) representing NTAs. - - When you use a domain name as an *negative trust anchor* (NTA), DNSSEC validation will be turned off at/below these names. - Each function call replaces the previous NTA set. You can find the current active set in ``trust_anchors.insecure`` variable. - If you want to disable DNSSEC validation completely use :func:`trust_anchors.remove` function instead. - - Example output: - - .. code-block:: lua - - > trust_anchors.set_insecure({ 'bad.boy', 'example.com' }) - > trust_anchors.insecure - [1] => bad.boy - [2] => example.com - - .. warning:: If you set NTA on a name that is not a zone cut, - it may not always affect names not separated from the NTA by a zone cut. - -.. function:: trust_anchors.add(rr_string) - - :param string rr_string: DS/DNSKEY records in presentation format (e.g. ``. 3600 IN DS 19036 8 2 49AAC11...``) - - Inserts DS/DNSKEY record(s) into current keyset. These will not be managed or updated, use it only for testing - or if you have a specific use case for not using a keyfile. - - .. note:: Static keys are very error-prone and should not be used in production. Use :func:`trust_anchors.add_file` instead. - - Example output: - - .. code-block:: lua - - > trust_anchors.add('. 3600 IN DS 19036 8 2 49AAC11...') - -.. function:: trust_anchors.summary() - - Return string with summary of configured DNSSEC trust anchors, including negative TAs. - -.. _lua-http: https://luarocks.org/modules/daurnimator/http \ No newline at end of file diff --git a/daemon/lua/trust_anchors.test/bootstrap.test.lua b/daemon/lua/trust_anchors.test/bootstrap.test.lua deleted file mode 100644 index 7dd248bec..000000000 --- a/daemon/lua/trust_anchors.test/bootstrap.test.lua +++ /dev/null @@ -1,112 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later -modules.load('ta_update') - --- check prerequisites -local has_http = pcall(require, 'kres_modules.http') and pcall(require, 'http.request') -if not has_http then - -- skipping bootstrap tests because http module is not not installed - os.exit(77) -end - -local cqueues = require("cqueues") -local socket = require("cqueues.socket") - --- unload modules which are not related to this test -if ta_signal_query then - modules.unload('ta_signal_query') -end -if priming then - modules.unload('priming') -end -if detect_time_skew then - modules.unload('detect_time_skew') -end - --- Self-checks on globals -assert(help() ~= nil) -assert(worker.id ~= nil) --- Self-checks on facilities -assert(worker.stats() ~= nil) -assert(net.interfaces() ~= nil) --- Self-checks on loaded stuff -assert(#modules.list() > 0) --- Self-check timers -ev = event.recurrent(1 * sec, function () return 1 end) -event.cancel(ev) -ev = event.after(0, function () return 1 end) - - --- do not attempt to contact outside world using DNS, operate only on cache -net.ipv4 = false -net.ipv6 = false --- do not listen, test is driven by config code -env.KRESD_NO_LISTEN = true - --- start test webserver -local function start_webserver() - -- srvout = io.popen('luajit webserv.lua') - -- TODO - os.execute('luajit webserv.lua >/dev/null 2>&1 &') - -- assert(srvout, 'failed to start webserver') -end - -local function wait_for_webserver() - local starttime = os.time() - local connected = false - while not connected and os.difftime(os.time(), starttime) < 10 do - local con = socket.connect("localhost", 8080) - connected, msg = pcall(con.connect, con, 3) - cqueues.sleep (0.3) - end - assert(connected, string.format('unable to connect to web server: %s', msg)) -end - -local host = 'https://localhost:8080/' --- avoid interference with configured keyfile_default -trust_anchors.remove('.') - -local function test_err_cert() - trust_anchors.bootstrap_ca = 'x509/wrongca.pem' - trust_anchors.bootstrap_url = host .. 'ok1.xml' - boom(trust_anchors.add_file, {'ok1.keys'}, - 'fake server certificate is detected') -end - -local function test_err_xml(testname, testdesc) - return function() - trust_anchors.bootstrap_ca = 'x509/ca.pem' - trust_anchors.bootstrap_url = host .. testname .. '.xml' - boom(trust_anchors.add_file, {testname .. '.keys'}, testdesc) - end -end - --- dumb test, right now it cannot check content of keys because --- it does not get written until refresh fetches DNSKEY from network --- (and bypassing network using policy bypasses also validation --- so it does not test anything) -local function test_ok_xml(testname, testdesc) - return function() - trust_anchors.bootstrap_url = host .. testname .. '.xml' - trust_anchors.remove('.') - same(trust_anchors.add_file(testname .. '.keys'), nil, testdesc) - end -end - -return { - start_webserver, - wait_for_webserver, - test_err_cert, - test_err_xml('err_attr_extra_attr', 'bogus TA XML with an extra attribute'), - test_err_xml('err_attr_validfrom_invalid', 'bogus TA XML with invalid validFrom value'), - test_err_xml('err_attr_validfrom_missing', 'bogus TA XML without mandatory validFrom attribute'), - test_err_xml('err_elem_extra', 'bogus TA XML with an extra element'), - test_err_xml('err_elem_missing', 'bogus TA XML without mandatory element'), - test_err_xml('err_multi_ta', 'bogus TA XML with multiple TAs'), - test_err_xml('unsupp_nonroot', 'unsupported TA XML for non-root zone'), - test_err_xml('unsupp_xml_v11', 'unsupported TA XML with XML v1.1'), - test_err_xml('ok0_badtimes', 'TA XML with no valid keys'), - test_ok_xml('ok1_expired1', 'TA XML with 1 valid and 1 expired key'), - test_ok_xml('ok1_notyet1', 'TA XML with 1 valid and 1 not yet valid key'), - test_ok_xml('ok1', 'TA XML with 1 valid key'), - test_ok_xml('ok2', 'TA XML with 2 valid keys'), -} diff --git a/daemon/lua/trust_anchors.test/err_attr_extra_attr.xml b/daemon/lua/trust_anchors.test/err_attr_extra_attr.xml deleted file mode 100644 index 2a87957a7..000000000 --- a/daemon/lua/trust_anchors.test/err_attr_extra_attr.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -19036 -8 -2 -49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 - - -20326 -8 -2 -E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D - - diff --git a/daemon/lua/trust_anchors.test/err_attr_validfrom_invalid.xml b/daemon/lua/trust_anchors.test/err_attr_validfrom_invalid.xml deleted file mode 100644 index 5a4c68c15..000000000 --- a/daemon/lua/trust_anchors.test/err_attr_validfrom_invalid.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -19036 -8 -2 -49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 - - -20326 -8 -2 -E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D - - diff --git a/daemon/lua/trust_anchors.test/err_attr_validfrom_missing.xml b/daemon/lua/trust_anchors.test/err_attr_validfrom_missing.xml deleted file mode 100644 index 1261b09c7..000000000 --- a/daemon/lua/trust_anchors.test/err_attr_validfrom_missing.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -19036 -8 -2 -49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 - - -20326 -8 -2 -E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D - - diff --git a/daemon/lua/trust_anchors.test/err_elem_extra.xml b/daemon/lua/trust_anchors.test/err_elem_extra.xml deleted file mode 100644 index 150a3b105..000000000 --- a/daemon/lua/trust_anchors.test/err_elem_extra.xml +++ /dev/null @@ -1,17 +0,0 @@ - - -. - -19036 -8 -2 -49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 - - -20326 -8 -2 -E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D -E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D - - diff --git a/daemon/lua/trust_anchors.test/err_elem_missing.xml b/daemon/lua/trust_anchors.test/err_elem_missing.xml deleted file mode 100644 index 899e1d0d0..000000000 --- a/daemon/lua/trust_anchors.test/err_elem_missing.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -19036 -8 -2 -49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 - - -20326 -8 - -E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D - - diff --git a/daemon/lua/trust_anchors.test/err_multi_ta.xml b/daemon/lua/trust_anchors.test/err_multi_ta.xml deleted file mode 100644 index 20cd73f48..000000000 --- a/daemon/lua/trust_anchors.test/err_multi_ta.xml +++ /dev/null @@ -1,19 +0,0 @@ - - -. - -2 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - - -test. - -2 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - diff --git a/daemon/lua/trust_anchors.test/ok0_badtimes.xml b/daemon/lua/trust_anchors.test/ok0_badtimes.xml deleted file mode 100644 index 4535a41eb..000000000 --- a/daemon/lua/trust_anchors.test/ok0_badtimes.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -1 -8 -2 -EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE - - -2 -8 -2 -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - - diff --git a/daemon/lua/trust_anchors.test/ok1.xml b/daemon/lua/trust_anchors.test/ok1.xml deleted file mode 100644 index 117495cdf..000000000 --- a/daemon/lua/trust_anchors.test/ok1.xml +++ /dev/null @@ -1,10 +0,0 @@ - - -. - -2 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - diff --git a/daemon/lua/trust_anchors.test/ok1_expired1.xml b/daemon/lua/trust_anchors.test/ok1_expired1.xml deleted file mode 100644 index f1269da58..000000000 --- a/daemon/lua/trust_anchors.test/ok1_expired1.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -1 -8 -2 -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - - -2 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - diff --git a/daemon/lua/trust_anchors.test/ok1_notyet1.xml b/daemon/lua/trust_anchors.test/ok1_notyet1.xml deleted file mode 100644 index 7b5881b9b..000000000 --- a/daemon/lua/trust_anchors.test/ok1_notyet1.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -1 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - -2 -8 -2 -FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - - diff --git a/daemon/lua/trust_anchors.test/ok2.xml b/daemon/lua/trust_anchors.test/ok2.xml deleted file mode 100644 index 149f6b582..000000000 --- a/daemon/lua/trust_anchors.test/ok2.xml +++ /dev/null @@ -1,16 +0,0 @@ - - -. - -1 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - -2 -8 -2 -2222222222222222222222222222222222222222222222222222222222222222 - - diff --git a/daemon/lua/trust_anchors.test/regen.sh b/daemon/lua/trust_anchors.test/regen.sh deleted file mode 100755 index 9e7dac18c..000000000 --- a/daemon/lua/trust_anchors.test/regen.sh +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -for F in *.xml; do sed -i "s/TrustAnchor id=\"[^\"]*\"/TrustAnchor id=\"$(uuidgen | tr '[[:lower:]]' '[[:upper:]]')\"/" $F; done -for F in *.xml; do sed -i "s#source=\"[^\"]*\"#source=\"https://localhost/$F\"#" $F; done diff --git a/daemon/lua/trust_anchors.test/root.keys b/daemon/lua/trust_anchors.test/root.keys deleted file mode 100644 index e292b5a7b..000000000 --- a/daemon/lua/trust_anchors.test/root.keys +++ /dev/null @@ -1 +0,0 @@ -. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D diff --git a/daemon/lua/trust_anchors.test/ta.test.lua b/daemon/lua/trust_anchors.test/ta.test.lua deleted file mode 100644 index b977bc91d..000000000 --- a/daemon/lua/trust_anchors.test/ta.test.lua +++ /dev/null @@ -1,85 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - -trust_anchors.remove('.') - -local ffi = require('ffi') - --- count warning messages -warn_msg = {} -overriding_msg="warning: overriding previously set trust anchors for ." -warn_msg[overriding_msg] = 0 -function log_warn(grp, fmt, ...) --luacheck: no unused args - msg = string.format(fmt, ...) - if warn_msg[msg] ~= nil then - warn_msg[msg] = warn_msg[msg] + 1 - end -end - --- Test that adding a revoked DNSKEY is refused. -local function test_revoked_key() - local ta_c = kres.context().trust_anchors - same(ffi.C.kr_ta_del(ta_c, '\0'), 0, 'remove root TAs if any') - -- same() doesn't consider nil and typed NULL pointer equal, so we work around: - same(ffi.C.kr_ta_get(ta_c, '\0') == nil, true, 'no TA for root is used') - local key_crypto = 'AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjFFV' - .. 'QUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37' - .. 'NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXpoY68LsvPVjR0ZSwzz1apAz' - .. 'vN9dlzEheX7ICJBBtuA6G3LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7O' - .. 'yQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=' - boom(trust_anchors.add, { '. 3600 DNSKEY 385 3 8 ' .. key_crypto }, 'refuse revoked key') - same(ffi.C.kr_ta_get(ta_c, '\0') == nil, true, 'no TA for root is used') - -- Test that we don't have another problem in the key - trust_anchors.add('. 3600 DNSKEY 257 3 8 ' .. key_crypto) - local root_ta = ffi.C.kr_ta_get(ta_c, '\0') - same(root_ta == nil, false, 'we got non-NULL TA RRset') - same(root_ta.rrs.count, 1, 'the root TA set contains one RR') -end - -local function test_remove() - -- uses root key from the previous test - assert(trust_anchors.keysets['\0'], 'root key must be there from previous test') - local ta_c = kres.context().trust_anchors - local root_ta = ffi.C.kr_ta_get(ta_c, '\0') - assert(root_ta ~= nil, 'we got non-NULL TA RRset') - assert(root_ta.rrs.count, 1, 'we have a root TA set to be deleted') - - trust_anchors.remove('.') - - same(trust_anchors.keysets['\0'], nil, 'Lua interface does not have the removed key') - root_ta = ffi.C.kr_ta_get(ta_c, '\0') - same(root_ta == nil, true, 'C interface does not have the removed key') -end - -local function test_add_file() - boom(trust_anchors.add_file, {'nonwriteable/root.keys', false}, - "Managed trust anchor in non-writeable directory") - - boom(trust_anchors.add_file, {'nonexistent.keys', true}, - "Nonexistent unmanaged trust anchor file") - - is(warn_msg[overriding_msg], 0, "No override warning messages at start of test") - trust_anchors.add_file('root.keys', true) - trust_anchors.add_file('root.keys', true) - is(warn_msg[overriding_msg], 1, "Warning message when override trust anchors") - - is(trust_anchors.keysets['\0'][1].key_tag, 20326, - "Loaded KeyTag from root.keys") -end - -local function test_nta() - assert(trust_anchors.keysets['\0'], 'root key must be there from previous tests') - - trust_anchors.set_insecure({'example.com'}) - is(trust_anchors.insecure[1], 'example.com', 'Add example.com to NTA list') - boom(trust_anchors.set_insecure, {{'.'}}, 'Got error when adding TA . to NTA list') - is(#trust_anchors.insecure, 1, 'Check one item in NTA list') - is(trust_anchors.insecure[1], 'example.com', 'Check previous NTA list') -end - -return { - test_revoked_key, - test_remove, - test_add_file, - test_nta, -} - diff --git a/daemon/lua/trust_anchors.test/unsupp_nonroot.xml b/daemon/lua/trust_anchors.test/unsupp_nonroot.xml deleted file mode 100644 index 51b3c0a06..000000000 --- a/daemon/lua/trust_anchors.test/unsupp_nonroot.xml +++ /dev/null @@ -1,10 +0,0 @@ - - -test. - -2 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - diff --git a/daemon/lua/trust_anchors.test/unsupp_xml_v11.xml b/daemon/lua/trust_anchors.test/unsupp_xml_v11.xml deleted file mode 100644 index 87a4b57e5..000000000 --- a/daemon/lua/trust_anchors.test/unsupp_xml_v11.xml +++ /dev/null @@ -1,10 +0,0 @@ - - -. - -2 -8 -2 -1111111111111111111111111111111111111111111111111111111111111111 - - diff --git a/daemon/lua/trust_anchors.test/webserv.lua b/daemon/lua/trust_anchors.test/webserv.lua deleted file mode 100644 index c108bba37..000000000 --- a/daemon/lua/trust_anchors.test/webserv.lua +++ /dev/null @@ -1,236 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - --- This is a module that does the heavy lifting to provide an HTTP/2 enabled --- server that supports TLS by default and provides endpoint for other modules --- in order to enable them to export restful APIs and websocket streams. --- One example is statistics module that can stream live metrics on the website, --- or publish metrics on request for Prometheus scraper. -local http_server = require('http.server') -local http_headers = require('http.headers') -local http_websocket = require('http.websocket') -local http_util = require "http.util" -local x509, pkey = require('openssl.x509'), require('openssl.pkey') - --- Module declaration -local M = {} - --- Export HTTP service endpoints -M.endpoints = { - ['/'] = {'text/html', 'test'}, -} - --- Serve known requests, for methods other than GET --- the endpoint must be a closure and not a preloaded string -local function serve(endpoints, h, stream) - local hsend = http_headers.new() - local path = h:get(':path') - local entry = endpoints[path] - if not entry then -- Accept top-level path match - entry = endpoints[path:match '^/[^/?]*'] - end - -- Unpack MIME and data - local data, mime, ttl, err - if entry then - mime = entry[1] - data = entry[2] - ttl = entry[4] - end - -- Get string data out of service endpoint - if type(data) == 'function' then - local set_mime, set_ttl - data, err, set_mime, set_ttl = data(h, stream) - -- Override default endpoint mime/TTL - if set_mime then mime = set_mime end - if set_ttl then ttl = set_ttl end - -- Handler doesn't provide any data - if data == false then return end - if type(data) == 'number' then return tostring(data), err end - -- Methods other than GET require handler to be closure - elseif h:get(':method') ~= 'GET' then - return '501', '' - end - if not mime or type(data) ~= 'string' then - return '404', '' - else - -- Serve content type appropriately - hsend:append(':status', '200') - hsend:append('content-type', mime) - hsend:append('content-length', tostring(#data)) - if ttl then - hsend:append('cache-control', string.format('max-age=%d', ttl)) - end - assert(stream:write_headers(hsend, false)) - assert(stream:write_chunk(data, true)) - end -end - --- Web server service closure -local function route(endpoints) - return function (_, stream) - -- HTTP/2: We're only permitted to send in open/half-closed (remote) - local connection = stream.connection - if connection.version >= 2 then - if stream.state ~= 'open' and stream.state ~= 'half closed (remote)' then - return - end - end - -- Start reading headers - local h = assert(stream:get_headers()) - local m = h:get(':method') - local path = h:get(':path') - -- Upgrade connection to WebSocket - local ws = http_websocket.new_from_stream(stream, h) - if ws then - assert(ws:accept { protocols = {'json'} }) - -- Continue streaming results to client - local ep = endpoints[path] - local cb = ep[3] - if cb then - cb(h, ws) - end - ws:close() - return - else - local ok, err, reason = http_util.yieldable_pcall(serve, endpoints, h, stream) - if not ok or err then - print(string.format('%s err %s %s: %s (%s)', os.date(), m, path, err or '500', reason)) - -- Method is not supported - local hsend = http_headers.new() - hsend:append(':status', err or '500') - if reason then - assert(stream:write_headers(hsend, false)) - assert(stream:write_chunk(reason, true)) - else - assert(stream:write_headers(hsend, true)) - end - else - print(string.format('%s ok %s %s', os.date(), m, path)) - end - end - end -end - --- @function Prefer HTTP/2 or HTTP/1.1 -local function alpnselect(_, protos) - for _, proto in ipairs(protos) do - if proto == 'h2' or proto == 'http/1.1' then - return proto - end - end - return nil -end - --- @function Create TLS context -local function tlscontext(crt, key) - local http_tls = require('http.tls') - local ctx = http_tls.new_server_context() - if ctx.setAlpnSelect then - ctx:setAlpnSelect(alpnselect) - end - assert(ctx:setPrivateKey(key)) - assert(ctx:setCertificate(crt)) - return ctx -end - --- @function Listen on given HTTP(s) host -function M.add_interface(conf) - local crt, key - if conf.tls ~= false then - assert(conf.cert, 'cert missing') - assert(conf.key, 'private key missing') - -- Check if a cert file was specified - -- Read x509 certificate - local f = io.open(conf.cert, 'r') - if f then - crt = assert(x509.new(f:read('*all'))) - f:close() - -- Continue reading key file - if crt then - f = io.open(conf.key, 'r') - key = assert(pkey.new(f:read('*all'))) - f:close() - end - end - -- Check loaded certificate - assert(crt and key, - string.format('failed to load certificate "%s"', conf.cert)) - end - -- Compose server handler - local routes = route(conf.endpoints or M.endpoints) - -- Check if UNIX socket path is used - local addr_str - if not conf.path then - conf.host = conf.host or 'localhost' - conf.port = conf.port or 8453 - addr_str = string.format('%s@%d', conf.host, conf.port) - else - if conf.host or conf.port then - error('either "path", or "host" and "port" must be provided') - end - addr_str = conf.path - end - -- Create TLS context and start listening - local s, err = http_server.listen { - -- cq = worker.bg_worker.cq, - host = conf.host, - port = conf.port, - path = conf.path, - v6only = conf.v6only, - unlink = conf.unlink, - reuseaddr = conf.reuseaddr, - reuseport = conf.reuseport, - client_timeout = conf.client_timeout or 5, - ctx = crt and tlscontext(crt, key), - tls = conf.tls, - onstream = routes, - -- Log errors, but do not throw - onerror = function(myserver, context, op, err, errno) -- luacheck: ignore 212 - local msg = '[http] ' .. op .. ' on ' .. tostring(context) .. ' failed' - if err then - msg = msg .. ': ' .. tostring(err) - end - print(msg) - end, - } - -- Manually call :listen() so that we are bound before calling :localname() - if s then - err = select(2, s:listen()) - end - assert(not err, string.format('failed to listen on %s: %s', addr_str, err)) - return s -end - --- init -local files = { - 'ok0_badtimes.xml', - 'ok1.xml', - 'ok1_expired1.xml', - 'ok1_notyet1.xml', - 'ok2.xml', - 'err_attr_validfrom_missing.xml', - 'err_attr_validfrom_invalid.xml', - 'err_attr_extra_attr.xml', - 'err_elem_missing.xml', - 'err_elem_extra.xml', - 'err_multi_ta.xml', - 'unsupp_nonroot.xml', - 'unsupp_xml_v11.xml' -} - --- Export static pages specified at command line -for _, name in ipairs(files) do - local fd = io.open(name) - assert(fd, string.format('unable to open file "%s"', name)) - M.endpoints['/' .. name] = { 'text/xml', fd:read('*a') } - fd:close() -end - -local server = M.add_interface({ - host = 'localhost', - port = 8080, - tls = true, - cert = 'x509/server.pem', - key = 'x509/server-key.pem' - }) - -server:loop() diff --git a/daemon/lua/trust_anchors.test/x509/ca-key.pem b/daemon/lua/trust_anchors.test/x509/ca-key.pem deleted file mode 100644 index 2e95b23ce..000000000 --- a/daemon/lua/trust_anchors.test/x509/ca-key.pem +++ /dev/null @@ -1,182 +0,0 @@ -Public Key Info: - Public Key Algorithm: RSA - Key Security Level: High (3072 bits) - -modulus: - 00:9e:ee:f2:d8:41:ae:2c:93:8a:01:1f:88:5b:d6:85 - 29:2f:91:9d:37:fc:35:88:7f:53:71:87:fc:17:71:e7 - 15:57:06:2d:54:fb:19:98:80:82:ec:1a:99:2d:57:cb - 5f:dd:28:26:d8:95:fb:65:b2:be:e1:11:86:69:14:7e - 32:5c:c0:02:0b:5d:11:78:69:50:20:25:3e:15:fb:8a - 46:d1:83:f9:3b:84:46:9c:69:21:44:d5:09:1d:7a:04 - cc:f3:6a:ea:4c:1b:da:7c:40:dd:1c:6f:f6:85:b4:ea - 75:98:34:79:11:fb:cf:d3:18:70:64:25:33:8a:31:b6 - 93:67:d4:32:67:61:1c:d0:7b:85:61:54:c6:fb:51:b6 - 87:1d:d4:b8:58:40:a9:c5:32:ce:e0:b9:90:37:0d:58 - e4:33:70:c5:c5:91:f2:18:f5:e0:08:ad:17:8b:cf:72 - f1:26:6c:9c:88:d2:9e:06:4c:02:5d:4e:7c:93:af:8d - 72:93:75:1d:60:0c:f7:34:09:a8:e6:f2:80:4a:14:81 - 24:40:4b:45:19:85:2e:ad:8e:97:4c:ff:ec:d0:9f:e6 - a0:b7:c0:a9:a0:ad:d2:02:2d:13:55:f3:df:f8:f9:f1 - f3:3e:35:e9:08:2b:db:11:93:57:13:55:c6:ba:c6:d7 - ff:7d:e1:fa:8c:47:5d:da:bf:31:56:80:aa:34:97:43 - bb:9e:ff:d3:e6:13:a9:c2:99:49:c2:1e:da:f2:c7:d2 - d6:f7:5f:70:36:91:2f:ea:36:e9:88:44:08:a3:1a:0a - c0:e0:4b:48:82:9a:c9:72:29:9c:09:24:63:b3:c2:9f - 2a:f6:e8:3a:c4:46:03:8d:70:ae:14:bb:3a:d6:c6:62 - 93:24:7f:bc:0a:c8:a2:20:53:3c:9f:5c:15:45:05:3d - 1b:38:17:d4:fe:6b:6a:c2:16:f3:14:73:c2:c3:c7:36 - e3:f1:f8:e5:28:84:4e:37:d4:68:e8:82:70:20:53:fc - 01: - -public exponent: - 01:00:01: - -private exponent: - 44:4a:68:0e:84:2a:52:fd:12:4f:69:3d:2e:38:fe:fe - b3:71:de:1c:30:42:d0:63:e5:76:e2:f7:6f:1b:82:2f - a9:34:fe:45:85:9f:79:e7:be:59:b5:14:1c:67:9c:fb - 94:0b:ac:a5:63:cc:a1:e6:2c:1e:89:69:37:bd:96:7c - 0d:5e:73:82:6e:7b:13:42:2d:2b:a2:d5:0a:9d:0a:cd - 63:39:51:de:40:f8:16:3d:16:0e:7d:7b:6d:2f:00:e1 - 0f:b6:e0:f5:d3:02:0e:61:d0:a0:67:7b:85:f8:36:c6 - 50:a0:3b:65:7e:cd:cd:e6:b2:64:55:97:cf:c9:8c:a9 - c9:f3:63:b5:08:05:59:8f:b9:c0:18:ad:67:4f:b5:1e - 59:b3:0d:82:de:46:14:75:c0:6e:cf:4d:28:5a:93:d7 - 7a:42:fa:b7:e9:fe:1c:bb:89:88:30:d7:ed:3b:36:28 - 68:5a:42:e8:87:97:5f:1d:49:e6:cd:d2:b9:a2:b5:23 - d8:df:5d:cf:c6:98:9a:e0:99:7a:33:52:75:22:ce:ca - 85:eb:d9:92:6a:d5:49:c0:cb:df:b1:a2:98:b5:6c:37 - 85:c2:e1:6a:13:48:22:72:02:a7:e2:e0:f3:f3:0c:ed - 42:f6:83:ba:71:f0:ef:8f:ce:6a:59:30:be:9d:5f:23 - 06:c3:0e:49:5c:8f:6a:8d:c2:c3:c5:07:45:55:78:f0 - bd:29:01:cb:ac:ec:b1:40:7d:78:cc:4d:cb:f9:60:a4 - a2:f5:aa:21:0b:3e:da:1b:d9:f0:99:19:44:57:21:09 - ba:0f:f9:05:8e:ee:59:4f:59:08:b1:67:51:02:80:4e - 34:c7:5d:25:79:8c:84:f7:be:15:02:28:9c:f9:b9:ca - fc:6a:ed:d0:5f:df:be:ce:c4:96:63:23:2e:db:e1:85 - 1e:45:16:2c:24:b0:5e:7a:62:bf:36:00:8b:c8:90:61 - c2:68:4b:95:b0:ce:41:77:a3:a0:5d:09:72:01:a0:01 - - -prime1: - 00:ca:fe:eb:14:07:13:a9:ef:b6:d5:6c:52:02:39:b6 - 6e:55:b6:dd:70:fc:c6:04:7c:07:81:9b:98:a4:da:db - f1:66:b8:33:91:fd:00:15:6e:72:0d:ab:0b:6f:be:34 - c8:d9:82:58:7e:09:7f:e4:6f:c0:70:99:53:68:c7:53 - d2:8f:97:22:f5:e8:e4:be:5f:e1:29:0f:27:a7:66:74 - b2:cc:96:a1:d2:ca:2a:40:4b:70:cc:7a:16:4f:c9:4f - 49:16:11:d5:f8:da:f6:92:06:1c:45:c3:f8:17:c4:1d - 65:9a:2a:3f:33:be:33:f8:84:03:26:49:d8:52:25:f8 - 19:ce:31:00:c0:b6:55:71:74:03:53:e8:0c:ef:85:64 - 54:d4:8f:68:08:87:da:cb:9b:55:6a:2e:2b:c2:95:36 - c4:dd:09:62:c0:6f:9e:e9:cc:ea:96:4e:e6:2d:6c:72 - c1:54:92:11:29:91:af:4d:cd:08:7c:f8:6f:28:9d:ca - c5: - -prime2: - 00:c8:6e:b7:af:c3:c6:b9:df:49:ad:ea:b8:62:b7:43 - e6:04:d9:5a:df:c3:f9:a3:0d:b5:e6:2d:9d:f7:c4:ff - 38:c0:cb:03:9c:c1:d1:6f:b4:fb:cf:81:c4:9e:94:2a - d5:e2:a1:77:a8:7b:8f:d1:34:7a:c2:f5:38:ec:0d:35 - a0:5e:3c:af:e9:2d:f4:f9:32:ae:da:c1:1e:62:74:e5 - ab:3d:3b:3d:d0:88:fc:53:59:0f:21:30:ed:24:ac:a7 - 5a:a5:b7:f4:cc:5a:96:ad:79:a3:41:74:56:ad:39:14 - 0a:27:a4:10:18:19:33:f2:1a:aa:b4:36:9d:fa:3f:fc - 71:42:1e:a0:96:8e:0f:de:46:87:ba:6c:38:17:d0:7e - c8:4a:cb:4a:29:1c:44:b9:88:29:c7:6f:b7:4f:3f:00 - cd:0c:6b:0f:77:a1:5a:f1:80:21:91:b3:68:ca:0d:b5 - c9:6d:04:f4:98:94:9f:09:f9:a8:58:ea:34:9c:d8:f0 - 0d: - -coefficient: - 00:bf:7b:93:68:64:ea:5e:b5:f4:b6:8c:91:49:aa:2b - b0:a5:74:40:73:45:23:b6:74:ae:7a:55:ae:9d:8a:bb - 3b:6d:3a:7d:c4:7a:c0:82:7f:0e:ef:57:1c:86:e2:56 - 30:5b:0c:d9:d1:52:cf:df:10:4f:c8:4a:75:b1:b8:b1 - 59:9b:01:02:a2:4d:29:aa:63:e5:11:0a:17:ae:1e:79 - ed:5d:10:fc:f0:8a:8d:f6:77:f8:78:17:1e:07:ee:d1 - de:59:ed:d7:fb:94:bf:c9:7c:f7:f3:a0:8d:66:d3:94 - 9a:7f:d1:7a:89:87:71:17:96:90:4e:be:7b:54:5e:51 - 03:c6:35:af:5f:ea:5d:cc:31:ab:56:4b:75:6a:14:b6 - c0:1a:bf:fb:e9:54:ba:ad:c3:52:e9:85:03:db:b2:e8 - 0b:18:60:37:19:f9:07:87:e7:b2:d8:3a:0d:c9:d5:f0 - f0:73:60:fc:9e:e0:9e:b1:ea:52:71:c7:fd:27:0a:22 - 42: - -exp1: - 04:a5:69:04:00:55:76:e2:41:b1:08:d5:a7:af:62:79 - 8c:04:af:74:d2:94:45:ae:01:0d:fa:5d:b8:08:3a:58 - 80:1d:5f:30:cc:35:a0:47:f2:dc:55:39:e1:c8:dc:b4 - 6c:26:0b:98:76:e7:32:77:4c:54:47:6e:1d:4b:d2:a3 - 53:1e:06:72:d2:6d:c9:dd:af:ed:9c:a7:2f:b1:ac:a2 - 1b:04:a7:97:87:81:08:0f:b1:f9:3c:22:1e:99:60:f3 - 2f:4a:21:37:9c:eb:5f:d4:3b:f9:6c:ce:d4:dc:6c:3f - d3:13:7c:76:d6:b7:a1:cc:83:b5:f0:a2:be:de:97:9b - 1f:99:07:87:61:a4:fa:ff:c8:c3:b6:df:f4:eb:7c:ac - 64:61:13:e4:7e:17:87:e9:7a:3e:ff:e7:88:80:99:cc - 4f:b2:d3:4b:cc:42:3a:df:b1:ce:d6:e7:75:ca:b1:a5 - b3:25:d4:b6:ba:da:e4:50:f9:0c:c3:32:e8:1f:14:71 - - -exp2: - 00:9d:9d:bb:a3:63:b0:96:20:8a:5f:52:f2:b6:e6:69 - 65:ac:30:84:ee:ec:bd:16:45:44:e3:02:c2:73:c2:9d - f5:b2:5e:b3:b3:85:13:3e:e6:33:13:66:78:09:40:79 - 43:03:5a:78:af:ac:a3:57:20:0e:dd:db:5b:6c:fd:a2 - 4b:3f:70:37:e1:85:fb:5c:30:48:22:cc:b5:29:35:c6 - 1a:58:27:8b:1f:bf:69:b5:dd:96:31:42:b9:6a:1a:bf - ec:5f:df:7e:89:69:3f:8e:a1:d6:09:36:04:a7:69:f8 - 61:57:f5:03:96:ff:d2:c2:b3:c7:c3:ba:23:97:54:d4 - 1e:f8:a0:ff:26:06:07:62:83:52:5e:fe:95:49:dc:f2 - a6:6d:72:da:19:e4:1a:03:50:99:92:35:3f:10:f9:79 - 96:c6:0a:36:fa:9b:8f:d9:d4:2a:11:da:e5:2f:e7:82 - 2a:29:2a:39:72:f7:84:ed:a2:3f:89:d4:7b:95:50:5f - cd: - - -Public Key PIN: - pin-sha256:u7TPTyh/innOijbJFG3Y4pWghApErLvhCQUZNXBlVFU= -Public Key ID: - sha256:bbb4cf4f287f8a79ce8a36c9146dd8e295a0840a44acbbe10905193570655455 - sha1:92b7d0c4d107e2a73f827b87866aef9ff4379cc8 - ------BEGIN RSA PRIVATE KEY----- -MIIG5AIBAAKCAYEAnu7y2EGuLJOKAR+IW9aFKS+RnTf8NYh/U3GH/Bdx5xVXBi1U -+xmYgILsGpktV8tf3Sgm2JX7ZbK+4RGGaRR+MlzAAgtdEXhpUCAlPhX7ikbRg/k7 -hEacaSFE1QkdegTM82rqTBvafEDdHG/2hbTqdZg0eRH7z9MYcGQlM4oxtpNn1DJn -YRzQe4VhVMb7UbaHHdS4WECpxTLO4LmQNw1Y5DNwxcWR8hj14AitF4vPcvEmbJyI -0p4GTAJdTnyTr41yk3UdYAz3NAmo5vKAShSBJEBLRRmFLq2Ol0z/7NCf5qC3wKmg -rdICLRNV89/4+fHzPjXpCCvbEZNXE1XGusbX/33h+oxHXdq/MVaAqjSXQ7ue/9Pm -E6nCmUnCHtryx9LW919wNpEv6jbpiEQIoxoKwOBLSIKayXIpnAkkY7PCnyr26DrE -RgONcK4UuzrWxmKTJH+8CsiiIFM8n1wVRQU9GzgX1P5rasIW8xRzwsPHNuPx+OUo -hE431GjognAgU/wBAgMBAAECggGAREpoDoQqUv0ST2k9Ljj+/rNx3hwwQtBj5Xbi -928bgi+pNP5FhZ95575ZtRQcZ5z7lAuspWPMoeYsHolpN72WfA1ec4JuexNCLSui -1QqdCs1jOVHeQPgWPRYOfXttLwDhD7bg9dMCDmHQoGd7hfg2xlCgO2V+zc3msmRV -l8/JjKnJ82O1CAVZj7nAGK1nT7UeWbMNgt5GFHXAbs9NKFqT13pC+rfp/hy7iYgw -1+07NihoWkLoh5dfHUnmzdK5orUj2N9dz8aYmuCZejNSdSLOyoXr2ZJq1UnAy9+x -opi1bDeFwuFqE0gicgKn4uDz8wztQvaDunHw74/Oalkwvp1fIwbDDklcj2qNwsPF -B0VVePC9KQHLrOyxQH14zE3L+WCkovWqIQs+2hvZ8JkZRFchCboP+QWO7llPWQix -Z1ECgE40x10leYyE974VAiic+bnK/Grt0F/fvs7ElmMjLtvhhR5FFiwksF56Yr82 -AIvIkGHCaEuVsM5Bd6OgXQlyAaABAoHBAMr+6xQHE6nvttVsUgI5tm5Vtt1w/MYE -fAeBm5ik2tvxZrgzkf0AFW5yDasLb740yNmCWH4Jf+RvwHCZU2jHU9KPlyL16OS+ -X+EpDyenZnSyzJah0soqQEtwzHoWT8lPSRYR1fja9pIGHEXD+BfEHWWaKj8zvjP4 -hAMmSdhSJfgZzjEAwLZVcXQDU+gM74VkVNSPaAiH2subVWouK8KVNsTdCWLAb57p -zOqWTuYtbHLBVJIRKZGvTc0IfPhvKJ3KxQKBwQDIbrevw8a530mt6rhit0PmBNla -38P5ow215i2d98T/OMDLA5zB0W+0+8+BxJ6UKtXioXeoe4/RNHrC9TjsDTWgXjyv -6S30+TKu2sEeYnTlqz07PdCI/FNZDyEw7SSsp1qlt/TMWpateaNBdFatORQKJ6QQ -GBkz8hqqtDad+j/8cUIeoJaOD95Gh7psOBfQfshKy0opHES5iCnHb7dPPwDNDGsP -d6Fa8YAhkbNoyg21yW0E9JiUnwn5qFjqNJzY8A0CgcAEpWkEAFV24kGxCNWnr2J5 -jASvdNKURa4BDfpduAg6WIAdXzDMNaBH8txVOeHI3LRsJguYducyd0xUR24dS9Kj -Ux4GctJtyd2v7ZynL7GsohsEp5eHgQgPsfk8Ih6ZYPMvSiE3nOtf1Dv5bM7U3Gw/ -0xN8dta3ocyDtfCivt6Xmx+ZB4dhpPr/yMO23/TrfKxkYRPkfheH6Xo+/+eIgJnM -T7LTS8xCOt+xztbndcqxpbMl1La62uRQ+QzDMugfFHECgcEAnZ27o2OwliCKX1Ly -tuZpZawwhO7svRZFROMCwnPCnfWyXrOzhRM+5jMTZngJQHlDA1p4r6yjVyAO3dtb -bP2iSz9wN+GF+1wwSCLMtSk1xhpYJ4sfv2m13ZYxQrlqGr/sX99+iWk/jqHWCTYE -p2n4YVf1A5b/0sKzx8O6I5dU1B74oP8mBgdig1Je/pVJ3PKmbXLaGeQaA1CZkjU/ -EPl5lsYKNvqbj9nUKhHa5S/ngiopKjly94Ttoj+J1HuVUF/NAoHBAL97k2hk6l61 -9LaMkUmqK7CldEBzRSO2dK56Va6dirs7bTp9xHrAgn8O71cchuJWMFsM2dFSz98Q -T8hKdbG4sVmbAQKiTSmqY+URCheuHnntXRD88IqN9nf4eBceB+7R3lnt1/uUv8l8 -9/OgjWbTlJp/0XqJh3EXlpBOvntUXlEDxjWvX+pdzDGrVkt1ahS2wBq/++lUuq3D -UumFA9uy6AsYYDcZ+QeH57LYOg3J1fDwc2D8nuCesepSccf9JwoiQg== ------END RSA PRIVATE KEY----- diff --git a/daemon/lua/trust_anchors.test/x509/ca.pem b/daemon/lua/trust_anchors.test/x509/ca.pem deleted file mode 100644 index e3c3ca284..000000000 --- a/daemon/lua/trust_anchors.test/x509/ca.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEGTCCAoGgAwIBAgIUXWsAXOOaZw+h37N9gUc/XLw3KHwwDQYJKoZIhvcNAQEL -BQAwIzEhMB8GA1UEAxMYS25vdCBSZXNvbHZlciB0ZXN0aW5nIENBMCAXDTIwMDEw -NzA5MzQwOVoYDzk5OTkxMjMxMjM1OTU5WjAjMSEwHwYDVQQDExhLbm90IFJlc29s -dmVyIHRlc3RpbmcgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCe -7vLYQa4sk4oBH4hb1oUpL5GdN/w1iH9TcYf8F3HnFVcGLVT7GZiAguwamS1Xy1/d -KCbYlftlsr7hEYZpFH4yXMACC10ReGlQICU+FfuKRtGD+TuERpxpIUTVCR16BMzz -aupMG9p8QN0cb/aFtOp1mDR5EfvP0xhwZCUzijG2k2fUMmdhHNB7hWFUxvtRtocd -1LhYQKnFMs7guZA3DVjkM3DFxZHyGPXgCK0Xi89y8SZsnIjSngZMAl1OfJOvjXKT -dR1gDPc0Cajm8oBKFIEkQEtFGYUurY6XTP/s0J/moLfAqaCt0gItE1Xz3/j58fM+ -NekIK9sRk1cTVca6xtf/feH6jEdd2r8xVoCqNJdDu57/0+YTqcKZScIe2vLH0tb3 -X3A2kS/qNumIRAijGgrA4EtIgprJcimcCSRjs8KfKvboOsRGA41wrhS7OtbGYpMk -f7wKyKIgUzyfXBVFBT0bOBfU/mtqwhbzFHPCw8c24/H45SiETjfUaOiCcCBT/AEC -AwEAAaNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwQAMB0GA1Ud -DgQWBBSSt9DE0Qfipz+Ce4eGau+f9DecyDANBgkqhkiG9w0BAQsFAAOCAYEAA45p -Ak7ebzk2ss5FHhJDvHrhoTZG2/esNEQhtv70nuRPnm3j8UGDxYyydwjf4+W9DT1v -53QNfvbOIPcOUsGArAItmI7K6ltkBSS6ymO8T1ZY4vYw+77jJZ1EeYS6kjdan7dK -f2Zz23CVbuq8BOc/Ob6ChepEq/MIb3g/Y6FowuWqeC85s61GW9MKr5GeG0oSyYAO -UZdFnwa8QLCZ2IzQcwnolkAw2A/5TDxovINy9Lb5U3kyphC9vhjPqr8PJ5q/KVuK -vcHvEsrsSNPvW/WcxkziV1oJTnjvr/69mwAme8+xjjF90GhrNaQF1YOoijuZuQaS -Q+0qmwZbsMtcqAABKQALHfLGsGAA5MKip49khIQWuIAS8P2vb+hzbqQRLjq1uW7B -dEGvBHF0QebDZOXJeXEYK/b7btWa9kNedD2FvBx5c9QNiWwh7jZENkICKnhI7E+n -d5/gsKVa1glKwbMagZBSJgFtjZe/eo/LcoK82m4VuOUCJSe0Kd0McrSZ7XZX ------END CERTIFICATE----- diff --git a/daemon/lua/trust_anchors.test/x509/ca.tmpl b/daemon/lua/trust_anchors.test/x509/ca.tmpl deleted file mode 100644 index ed801afbf..000000000 --- a/daemon/lua/trust_anchors.test/x509/ca.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -cn = Knot Resolver testing CA -ca -cert_signing_key -expiration_days = -1 diff --git a/daemon/lua/trust_anchors.test/x509/gen.sh b/daemon/lua/trust_anchors.test/x509/gen.sh deleted file mode 100755 index 7251f12c9..000000000 --- a/daemon/lua/trust_anchors.test/x509/gen.sh +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -# CA -certtool --generate-privkey > ca-key.pem -certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca.pem - -# server cert signed by CA above -certtool --generate-privkey > server-key.pem -certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server.pem - -# wrong CA - unrelated to others -certtool --generate-privkey > wrongca-key.pem -certtool --generate-self-signed --load-privkey wrongca-key.pem --template wrongca.tmpl --outfile wrongca.pem diff --git a/daemon/lua/trust_anchors.test/x509/server-key.pem b/daemon/lua/trust_anchors.test/x509/server-key.pem deleted file mode 100644 index 9eaef8a2f..000000000 --- a/daemon/lua/trust_anchors.test/x509/server-key.pem +++ /dev/null @@ -1,182 +0,0 @@ -Public Key Info: - Public Key Algorithm: RSA - Key Security Level: High (3072 bits) - -modulus: - 00:c3:46:2a:27:c8:39:e4:de:fa:24:45:6c:00:26:80 - 61:ca:dd:a1:24:34:1b:93:1c:13:c8:5a:cf:af:6a:ef - 34:b9:89:83:02:76:51:ad:67:bf:ed:39:ee:0a:15:57 - 91:6e:fa:68:60:78:22:62:fa:0a:55:12:03:b3:0c:8e - b4:ca:cd:2b:9d:a2:43:b5:5a:48:a0:3d:4a:1f:77:a4 - a6:d4:87:eb:79:99:df:d4:b4:a3:cf:91:03:a0:c5:82 - 39:f5:75:20:4b:90:b9:3b:72:65:a7:75:39:a6:62:58 - 65:b0:9c:40:5c:c7:c4:4c:d3:1e:cc:74:18:74:15:23 - 44:fd:51:59:b2:b7:70:95:6b:a0:be:d5:e4:72:59:2b - df:a5:a2:06:c8:e1:bd:17:80:25:b3:cf:8e:e8:ad:b2 - f7:04:b1:9e:b8:72:0b:c5:dc:cd:a5:b6:f5:c9:1a:eb - 63:78:75:9c:5d:c5:03:a9:4b:7b:d6:cd:5c:5f:8d:2e - d0:b4:0d:96:55:c7:1e:c7:ac:13:46:b8:ec:9c:36:b9 - 6a:1d:f0:7c:41:00:c6:bd:1f:81:7e:1d:48:1d:59:bc - e2:61:a6:d1:2d:52:10:3f:63:93:a9:14:d8:03:27:21 - b0:d4:07:24:78:04:2b:86:c8:2b:0f:eb:a7:b3:3e:e2 - 81:62:2a:4a:07:d9:fd:f6:77:7f:50:88:ee:bb:7d:31 - 53:a8:97:bf:30:07:37:41:e9:52:16:15:74:a8:64:ed - 93:46:38:56:b4:89:d9:0c:62:4b:64:a9:64:ff:fc:9a - d6:19:a7:84:98:28:04:b4:95:76:ac:4a:42:6a:fb:67 - 5b:b4:37:e6:e6:e2:52:d3:e9:38:8b:76:10:55:f1:e6 - 8e:d8:73:eb:17:d1:54:41:d4:5b:76:2d:70:7f:f5:0d - 7d:d2:d6:f8:05:33:18:ab:dd:10:8a:5b:21:ee:3d:78 - 9d:cd:c9:c0:c6:98:4e:a6:0a:41:f0:97:91:83:c2:c8 - 4b: - -public exponent: - 01:00:01: - -private exponent: - 23:88:1f:e1:8f:40:61:91:e5:28:36:6d:99:75:68:04 - e3:5a:02:99:48:d5:ff:a5:ab:3f:d8:ae:53:b7:fc:80 - b6:85:fc:0d:b5:a3:d5:0e:bc:d0:98:aa:e4:b0:cf:77 - 4a:1f:4c:60:c9:5b:50:71:38:f2:13:ce:12:85:65:6e - 26:3c:c1:03:f4:e3:a7:1b:1f:7d:f0:c9:0d:02:c3:36 - 0c:14:13:57:d4:14:f3:6a:4f:28:54:b5:b9:4a:57:10 - de:c6:0a:33:55:c9:2e:b4:f9:24:48:63:4e:10:35:0f - 83:dc:5a:a5:c7:3f:c3:ce:e2:9a:c7:41:2f:d6:2c:cd - bf:de:4e:99:03:61:fb:fe:52:88:86:f9:03:89:90:3f - 28:af:5b:d6:af:a4:ad:a3:06:b9:3a:3a:41:c2:61:7f - 2b:1e:7a:c8:0b:10:73:57:63:20:15:33:91:fd:50:f9 - 8f:90:ae:fc:2c:fe:26:8e:f2:a0:ba:4b:65:a3:95:f1 - d8:30:d4:fa:8d:12:1b:8b:58:1d:66:10:cd:41:22:1e - b0:7a:f4:e6:0f:76:3f:0a:0f:9c:44:e2:19:cf:c6:4d - de:3a:f4:96:70:c7:e6:2d:98:27:0e:ac:3b:32:41:37 - 4e:05:b2:22:af:7b:38:92:16:40:fb:5c:96:b0:86:da - 96:c6:77:c3:66:78:07:80:5c:2a:46:dc:9a:bf:fc:0c - 2f:ee:f7:a1:b3:77:b4:50:75:a2:b7:36:9d:28:73:ee - 7a:ab:a6:0c:f6:92:18:8f:ff:16:28:90:7f:16:4f:f1 - 6d:77:99:dd:a6:46:95:6a:6c:7a:15:48:53:b3:17:0b - 30:aa:0d:c8:68:33:2b:4d:40:da:74:cf:9b:73:1b:cd - 5d:f0:a9:d1:00:6f:db:de:55:ec:d4:24:96:bb:da:50 - b4:d5:e1:87:35:5c:d4:50:c3:03:d5:d5:ee:03:65:4b - 68:9c:07:5c:59:28:78:bd:d1:4b:cb:8d:85:8b:5b:c1 - - -prime1: - 00:cc:8d:55:38:2d:57:cb:d2:4b:57:5b:3f:a2:6d:91 - 4b:9c:54:29:98:9d:1d:bb:36:a6:e8:ba:e9:50:db:83 - cf:c1:45:24:16:70:e5:51:40:eb:23:6b:fa:be:d5:d5 - 00:27:ed:99:c7:7c:6b:16:79:77:0b:f3:ff:58:35:4e - 6c:58:68:51:d3:20:3c:57:b7:7d:bc:6b:fd:a7:c3:38 - 9a:f2:7a:8a:b6:71:a1:6e:5e:64:7e:a8:c5:7c:58:70 - fb:8d:63:b3:27:cc:1a:97:1e:04:da:d5:34:b5:d1:aa - f1:96:39:89:5e:cb:e7:75:ab:7e:ac:8c:fe:62:3e:cc - 93:66:88:d7:cd:c6:2d:db:9e:2f:f7:d1:6e:96:99:d2 - 32:61:f4:9b:f5:48:fe:e7:90:b7:a2:ab:89:90:c1:ae - 67:5d:18:7a:c1:a3:84:97:09:47:13:df:d2:85:46:46 - c7:77:3b:9f:b5:74:5c:f6:ec:a0:a7:66:0e:d1:d7:a4 - e1: - -prime2: - 00:f4:63:70:fa:dd:7e:3d:1a:2b:5b:47:79:56:e9:c7 - 7f:6b:50:41:60:45:af:59:e0:77:b2:76:4e:40:ff:f8 - 55:9d:77:3b:c1:00:6a:c6:84:6a:09:a5:45:e6:fc:e6 - e6:92:72:32:fc:93:8f:93:d9:db:fc:8c:43:d2:7a:ea - 4b:0e:ee:1d:dc:e0:27:08:83:16:aa:de:37:59:39:c0 - 21:26:b5:34:49:f2:1f:7b:0c:d4:3c:0f:e5:06:ac:23 - 7b:85:b1:39:35:44:ec:70:48:c5:10:86:02:ea:36:4a - f1:20:a2:b2:c9:8d:d3:f6:5a:86:72:4b:8b:28:07:04 - 39:8d:01:fa:75:3a:35:40:c2:21:c3:ac:50:da:2f:3e - 30:ee:ab:f7:7d:81:a3:77:5e:b7:03:be:52:fb:a4:70 - 92:5d:fd:09:ae:52:33:b8:7b:9c:e2:2a:77:f7:23:4d - c5:4b:82:f1:fb:0a:09:62:e6:5f:32:1e:7b:c7:c6:66 - ab: - -coefficient: - 00:c3:2d:d8:18:32:30:a1:fa:2c:23:d0:ea:b4:60:0f - 29:67:50:4a:5a:61:aa:6d:15:0e:4b:66:43:35:ee:39 - 4c:e7:8d:31:73:b0:bb:04:4d:e5:bc:28:ea:dc:77:81 - 35:bb:f7:80:13:96:04:4c:45:9c:43:6f:64:e0:a3:51 - 4b:7e:6c:b6:7d:c2:a6:e0:94:e6:6c:34:4e:62:71:ea - c0:c0:ab:30:30:c1:3a:39:0e:cd:f0:cc:0e:31:b5:fc - 61:64:1e:29:1c:cd:fc:69:c0:02:7c:2a:fe:86:d5:e2 - 7b:8d:fe:ae:3d:3a:6c:1b:b3:b4:0d:b1:1b:d1:4d:37 - 36:ea:d7:15:f3:6e:02:b1:86:98:51:02:fc:62:df:30 - f2:de:9f:03:6d:27:45:d7:c7:a8:04:ba:76:18:01:09 - 34:d2:57:f9:10:50:ea:ae:0e:ae:c6:a4:cd:f9:fd:b1 - 25:b2:45:20:bc:50:2d:9b:80:c1:39:08:97:d2:75:9b - f7: - -exp1: - 00:8a:b8:6a:8b:cf:8c:54:08:c8:d9:74:63:82:67:25 - fb:0e:08:b1:b0:f3:14:7f:ab:3f:a4:63:65:e9:55:05 - 5e:36:a7:0a:23:41:ea:f2:a0:c1:16:63:9b:48:22:41 - f2:7a:21:93:81:8a:ea:20:f2:bc:fe:59:39:d8:fb:45 - b5:0a:7b:ac:ca:2e:79:5d:cf:6d:b1:03:d7:a1:17:2e - e3:3e:00:46:e4:15:c9:b1:cc:c8:00:71:ba:84:6a:82 - 2c:c6:a5:4f:91:74:c4:af:a9:47:07:95:41:ca:f0:67 - 2a:b1:83:51:9a:fd:53:7a:24:94:a2:b6:77:a9:ef:06 - d4:0b:dc:4f:e6:18:39:6f:50:27:1d:bc:65:70:32:df - 2f:15:e9:4a:7f:1d:42:e9:8d:e6:4b:a6:63:83:cd:25 - d6:a9:76:f9:81:2a:c0:b7:a1:2e:17:d7:59:b0:d2:89 - 1b:aa:cb:bf:b2:d2:38:5d:a8:fa:06:ac:9a:ee:4a:7d - 61: - -exp2: - 00:92:66:af:db:d8:ac:33:36:66:1a:bc:6a:78:22:7c - 1c:5c:d1:2b:18:dd:25:fa:95:79:9f:33:38:15:c0:41 - a8:28:38:b1:57:21:44:d5:bf:a5:36:3a:07:f2:24:36 - be:91:a4:4f:de:f7:16:df:df:76:e5:87:b1:69:79:b0 - b9:5e:2c:4f:3f:6e:18:74:04:f3:a3:50:93:9f:a3:f4 - f0:e7:1b:4e:43:ae:04:25:d6:bd:9d:6d:78:29:d3:1d - 3e:76:0c:80:d4:e4:81:2f:92:a8:5b:09:ac:dd:59:c0 - f3:4a:35:ad:1d:09:15:9d:53:05:8f:9a:a9:b6:44:dd - c7:0c:2d:cf:38:42:b2:7c:24:cf:cd:44:80:fa:f3:aa - 31:ee:08:9e:ae:54:e6:f4:2f:8d:3b:74:dc:89:5b:2d - 04:c1:c1:3f:f7:69:cf:0a:09:23:26:69:82:8c:4e:5d - dc:7f:2b:e6:82:18:b5:1e:c6:1a:e9:0f:51:df:8f:7f - 19: - - -Public Key PIN: - pin-sha256:pFSHHHovr50DJ04K3wEJcyxth+nszZdClOet/CRN9cU= -Public Key ID: - sha256:a454871c7a2faf9d03274e0adf0109732c6d87e9eccd974294e7adfc244df5c5 - sha1:5137ef343399ccf38d6566803ddce123da640553 - ------BEGIN RSA PRIVATE KEY----- -MIIG5QIBAAKCAYEAw0YqJ8g55N76JEVsACaAYcrdoSQ0G5McE8haz69q7zS5iYMC -dlGtZ7/tOe4KFVeRbvpoYHgiYvoKVRIDswyOtMrNK52iQ7VaSKA9Sh93pKbUh+t5 -md/UtKPPkQOgxYI59XUgS5C5O3Jlp3U5pmJYZbCcQFzHxEzTHsx0GHQVI0T9UVmy -t3CVa6C+1eRyWSvfpaIGyOG9F4Als8+O6K2y9wSxnrhyC8XczaW29cka62N4dZxd -xQOpS3vWzVxfjS7QtA2WVccex6wTRrjsnDa5ah3wfEEAxr0fgX4dSB1ZvOJhptEt -UhA/Y5OpFNgDJyGw1AckeAQrhsgrD+unsz7igWIqSgfZ/fZ3f1CI7rt9MVOol78w -BzdB6VIWFXSoZO2TRjhWtInZDGJLZKlk//ya1hmnhJgoBLSVdqxKQmr7Z1u0N+bm -4lLT6TiLdhBV8eaO2HPrF9FUQdRbdi1wf/UNfdLW+AUzGKvdEIpbIe49eJ3NycDG -mE6mCkHwl5GDwshLAgMBAAECggGAI4gf4Y9AYZHlKDZtmXVoBONaAplI1f+lqz/Y -rlO3/IC2hfwNtaPVDrzQmKrksM93Sh9MYMlbUHE48hPOEoVlbiY8wQP046cbH33w -yQ0CwzYMFBNX1BTzak8oVLW5SlcQ3sYKM1XJLrT5JEhjThA1D4PcWqXHP8PO4prH -QS/WLM2/3k6ZA2H7/lKIhvkDiZA/KK9b1q+kraMGuTo6QcJhfyseesgLEHNXYyAV -M5H9UPmPkK78LP4mjvKguktlo5Xx2DDU+o0SG4tYHWYQzUEiHrB69OYPdj8KD5xE -4hnPxk3eOvSWcMfmLZgnDqw7MkE3TgWyIq97OJIWQPtclrCG2pbGd8NmeAeAXCpG -3Jq//Awv7vehs3e0UHWitzadKHPuequmDPaSGI//FiiQfxZP8W13md2mRpVqbHoV -SFOzFwswqg3IaDMrTUDadM+bcxvNXfCp0QBv295V7NQklrvaULTV4Yc1XNRQwwPV -1e4DZUtonAdcWSh4vdFLy42Fi1vBAoHBAMyNVTgtV8vSS1dbP6JtkUucVCmYnR27 -NqbouulQ24PPwUUkFnDlUUDrI2v6vtXVACftmcd8axZ5dwvz/1g1TmxYaFHTIDxX -t328a/2nwzia8nqKtnGhbl5kfqjFfFhw+41jsyfMGpceBNrVNLXRqvGWOYley+d1 -q36sjP5iPsyTZojXzcYt254v99FulpnSMmH0m/VI/ueQt6KriZDBrmddGHrBo4SX -CUcT39KFRkbHdzuftXRc9uygp2YO0dek4QKBwQD0Y3D63X49GitbR3lW6cd/a1BB -YEWvWeB3snZOQP/4VZ13O8EAasaEagmlReb85uaScjL8k4+T2dv8jEPSeupLDu4d -3OAnCIMWqt43WTnAISa1NEnyH3sM1DwP5QasI3uFsTk1ROxwSMUQhgLqNkrxIKKy -yY3T9lqGckuLKAcEOY0B+nU6NUDCIcOsUNovPjDuq/d9gaN3XrcDvlL7pHCSXf0J -rlIzuHuc4ip39yNNxUuC8fsKCWLmXzIee8fGZqsCgcEAirhqi8+MVAjI2XRjgmcl -+w4IsbDzFH+rP6RjZelVBV42pwojQeryoMEWY5tIIkHyeiGTgYrqIPK8/lk52PtF -tQp7rMoueV3PbbED16EXLuM+AEbkFcmxzMgAcbqEaoIsxqVPkXTEr6lHB5VByvBn -KrGDUZr9U3oklKK2d6nvBtQL3E/mGDlvUCcdvGVwMt8vFelKfx1C6Y3mS6Zjg80l -1ql2+YEqwLehLhfXWbDSiRuqy7+y0jhdqPoGrJruSn1hAoHBAJJmr9vYrDM2Zhq8 -angifBxc0SsY3SX6lXmfMzgVwEGoKDixVyFE1b+lNjoH8iQ2vpGkT973Ft/fduWH -sWl5sLleLE8/bhh0BPOjUJOfo/Tw5xtOQ64EJda9nW14KdMdPnYMgNTkgS+SqFsJ -rN1ZwPNKNa0dCRWdUwWPmqm2RN3HDC3POEKyfCTPzUSA+vOqMe4Inq5U5vQvjTt0 -3IlbLQTBwT/3ac8KCSMmaYKMTl3cfyvmghi1HsYa6Q9R349/GQKBwQDDLdgYMjCh -+iwj0Oq0YA8pZ1BKWmGqbRUOS2ZDNe45TOeNMXOwuwRN5bwo6tx3gTW794ATlgRM -RZxDb2Tgo1FLfmy2fcKm4JTmbDROYnHqwMCrMDDBOjkOzfDMDjG1/GFkHikczfxp -wAJ8Kv6G1eJ7jf6uPTpsG7O0DbEb0U03NurXFfNuArGGmFEC/GLfMPLenwNtJ0XX -x6gEunYYAQk00lf5EFDqrg6uxqTN+f2xJbJFILxQLZuAwTkIl9J1m/c= ------END RSA PRIVATE KEY----- diff --git a/daemon/lua/trust_anchors.test/x509/server.pem b/daemon/lua/trust_anchors.test/x509/server.pem deleted file mode 100644 index b42f07e8d..000000000 --- a/daemon/lua/trust_anchors.test/x509/server.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEfTCCAuWgAwIBAgIUIREQSLx52Sc9PFWI6Nwe3YzRp3MwDQYJKoZIhvcNAQEL -BQAwIzEhMB8GA1UEAxMYS25vdCBSZXNvbHZlciB0ZXN0aW5nIENBMCAXDTIwMDEw -NzA5MzQwOVoYDzk5OTkxMjMxMjM1OTU5WjA8MRIwEAYDVQQDEwlsb2NhbGhvc3Qx -JjAkBgNVBAoTHUZha2UgRE5TIHJvb3Qgb3JnIHRlc3Qgc2VydmVyMIIBojANBgkq -hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAw0YqJ8g55N76JEVsACaAYcrdoSQ0G5Mc -E8haz69q7zS5iYMCdlGtZ7/tOe4KFVeRbvpoYHgiYvoKVRIDswyOtMrNK52iQ7Va -SKA9Sh93pKbUh+t5md/UtKPPkQOgxYI59XUgS5C5O3Jlp3U5pmJYZbCcQFzHxEzT -Hsx0GHQVI0T9UVmyt3CVa6C+1eRyWSvfpaIGyOG9F4Als8+O6K2y9wSxnrhyC8Xc -zaW29cka62N4dZxdxQOpS3vWzVxfjS7QtA2WVccex6wTRrjsnDa5ah3wfEEAxr0f -gX4dSB1ZvOJhptEtUhA/Y5OpFNgDJyGw1AckeAQrhsgrD+unsz7igWIqSgfZ/fZ3 -f1CI7rt9MVOol78wBzdB6VIWFXSoZO2TRjhWtInZDGJLZKlk//ya1hmnhJgoBLSV -dqxKQmr7Z1u0N+bm4lLT6TiLdhBV8eaO2HPrF9FUQdRbdi1wf/UNfdLW+AUzGKvd -EIpbIe49eJ3NycDGmE6mCkHwl5GDwshLAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIw -ADAUBgNVHREEDTALgglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYD -VR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUUTfvNDOZzPONZWaAPdzhI9pkBVMwHwYD -VR0jBBgwFoAUkrfQxNEH4qc/gnuHhmrvn/Q3nMgwDQYJKoZIhvcNAQELBQADggGB -AFfFgv5J1eb8h33tnvDJ/dLBSA7Soz1NXK8iha18CH1uxW2lo+6iJl7g191WD/3W -m/LdpRU3h5ewbD6An3FSA0I25cYQD1vlH7vdI+xu3hIuFhQVnkxGbwISzlM5vat8 -1Ry7z/RpHmQA4V4z4R/PuYcQHQG5tINMPySmbfHBK/Ju+nnmSTJ/p3Z7sVaSCfNN -l37me0w197QU3ovNtA61xHa77VUSJeaAC+zOOXUBZ8Rc5PqhYOf6AJbIBk7tPNei -XH5Yyg3UT0i7V09vUViXK8EXbMX1VWsw59Et4Ro1YouS6TN34i2w8FtKg1+amQLr -UXmQW1lkzx23FdGG4T0fFPtWuJCL6ioc0J6vS7xt0xkbrri9U2thC7gvrKLGCJ6J -hWTGoKwjcBHpoLsT62XogHlctagkyXfjJ1Piik7k2JjqvmyteFlDDkOToLQmaCuI -LIBmOnO9mEig3y7T72cnL8QM+nb+c70cssfCW3LBTHb893J4QAOt5RN6LQUlFc49 -sQ== ------END CERTIFICATE----- diff --git a/daemon/lua/trust_anchors.test/x509/server.tmpl b/daemon/lua/trust_anchors.test/x509/server.tmpl deleted file mode 100644 index 8021616c6..000000000 --- a/daemon/lua/trust_anchors.test/x509/server.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -organization = Fake DNS root org test server -cn = localhost -tls_www_server -encryption_key -signing_key -dns_name = localhost -expiration_days = -1 diff --git a/daemon/lua/trust_anchors.test/x509/wrongca-key.pem b/daemon/lua/trust_anchors.test/x509/wrongca-key.pem deleted file mode 100644 index 1ddc1ad98..000000000 --- a/daemon/lua/trust_anchors.test/x509/wrongca-key.pem +++ /dev/null @@ -1,182 +0,0 @@ -Public Key Info: - Public Key Algorithm: RSA - Key Security Level: High (3072 bits) - -modulus: - 00:bb:d7:47:1f:55:ed:c0:08:af:1d:32:d2:69:ef:77 - d2:f3:f6:86:7e:f3:97:e2:35:72:d4:0a:87:1e:75:76 - bf:59:29:be:cd:e6:ad:6d:7d:62:47:19:fb:ed:24:94 - 7f:2b:d6:0c:68:cf:cd:ee:f3:5e:b2:db:11:44:4b:7f - 30:ce:d2:a7:75:a7:37:83:c0:41:d6:a1:87:22:48:fa - ef:d1:15:ed:c9:d2:73:ab:e1:7c:94:4d:b2:96:80:cf - 5a:5c:7e:96:f6:02:fa:a4:8b:b1:05:b0:27:f5:d7:38 - bd:20:37:ed:12:c0:22:07:a9:a6:5e:47:bd:1d:33:27 - a2:cd:4c:0c:70:ba:6e:d9:13:6f:7b:a1:72:e8:f4:be - e3:86:1b:a2:b3:a1:07:cf:93:e8:3a:26:51:3e:af:bc - da:80:b1:92:56:8b:21:e7:1d:d9:f9:0c:a9:68:b7:04 - d8:6d:1f:6f:98:90:fb:fb:35:18:71:3c:50:73:b1:45 - b1:e7:ee:7b:84:5d:57:95:33:37:b0:0f:eb:85:8f:8d - b0:7f:10:17:80:03:99:1b:62:0c:1d:72:6f:e5:77:38 - c8:75:96:61:36:4b:28:ae:17:a4:f9:81:90:4d:4b:85 - 61:39:be:6c:ca:c0:a9:cd:4e:45:27:47:84:82:3d:7f - c6:a7:00:d7:90:64:7c:a5:e9:f8:f6:92:d2:72:54:a7 - 95:5f:fc:93:1d:c9:1a:78:6e:3a:1a:1f:8f:a2:41:d2 - 04:5c:19:32:54:16:f2:97:6f:7c:f9:24:d7:a6:e2:07 - cf:9f:9e:64:27:81:5f:5a:77:65:4f:7b:b2:81:78:3f - a3:22:17:d3:ba:06:71:d5:09:6a:c2:85:ba:35:f7:71 - 01:b4:63:c7:70:62:98:58:80:a2:40:27:c0:e2:d5:fd - 60:e0:5a:7a:9c:bf:7b:e6:34:78:f1:16:e8:28:d9:92 - dc:e6:2e:b6:d7:1a:83:4b:86:92:d6:81:ce:8e:50:0a - d5: - -public exponent: - 01:00:01: - -private exponent: - 7a:27:5e:66:1f:60:54:60:91:58:80:a3:5b:26:d2:9a - 89:f2:88:b6:68:3d:1e:6b:39:b8:70:fc:3b:af:91:c0 - 90:00:58:c7:d7:ba:72:98:76:5f:dc:a2:fb:2d:ad:b0 - 21:d6:ba:0d:33:0e:2d:d5:70:81:09:7b:6a:19:5a:a6 - 67:e9:8f:e3:30:12:27:08:d1:07:fd:d5:3e:53:8d:74 - 85:59:28:60:f6:0e:28:f9:a3:25:62:7d:bf:e8:16:70 - 21:f4:64:c1:a9:60:4b:bf:58:28:65:cd:26:cf:86:63 - 5f:5f:5f:39:b1:5e:af:f3:00:71:11:60:07:6c:2b:db - 70:7c:83:1e:8f:ee:e4:16:02:8a:b8:8c:5c:b8:44:a6 - fb:a0:5f:27:47:92:27:c8:7c:dd:cb:eb:4b:c3:c7:21 - a5:4d:54:e8:18:e4:bc:42:aa:6c:8e:72:60:d9:9c:3a - 0e:84:c1:f2:ca:5e:43:97:dc:c4:4e:bf:d6:ec:b2:70 - 08:41:13:01:48:bc:36:a2:eb:5e:67:b6:6a:a4:b6:4a - 24:fa:fd:6d:ef:5b:77:bc:0c:7d:95:9a:84:ec:3f:97 - aa:7c:07:76:80:f5:3a:49:f4:99:ee:cf:17:12:83:e8 - db:ef:22:60:67:62:f8:3e:f9:bc:18:2b:84:fc:a9:82 - 95:8d:91:27:8e:ba:87:15:65:1e:9f:b3:95:5f:dc:40 - 2f:15:eb:7e:0a:d7:69:80:7b:8a:e2:29:89:3a:2e:eb - a9:05:c1:1e:5d:23:0d:a0:d7:c4:95:4d:09:85:8c:af - 90:23:36:04:66:a9:16:d7:d4:e2:aa:5a:6d:44:5a:6c - c8:e8:a0:08:fa:de:19:20:5f:e3:06:17:e5:65:c6:55 - ef:0f:0d:ff:3e:1c:c5:98:ee:34:d3:07:81:11:fe:e9 - 15:87:e6:9a:76:44:bd:cb:a0:38:63:9a:af:d1:7c:a7 - db:26:e2:cd:4a:a2:8a:7f:b8:dc:7a:55:00:4c:20:c1 - - -prime1: - 00:c9:f5:14:59:49:3b:95:1f:15:b0:0c:83:cb:f4:6a - 48:60:2a:af:8b:d5:83:16:aa:71:5a:af:11:63:c6:c1 - 0a:91:af:5b:bd:6e:9c:cb:d7:eb:bf:c7:31:9f:22:46 - 01:cf:3b:3c:cb:ba:7d:ad:e5:bb:d8:7c:d2:5d:52:20 - 14:ea:70:08:9e:29:98:31:20:78:9e:b6:3e:90:e8:ef - c8:2f:45:d4:35:04:71:a1:84:18:50:a9:a5:12:b7:14 - 4e:42:3e:93:50:9d:2f:c1:bd:45:f3:4e:86:61:0b:bc - 3b:ed:78:c7:2b:ba:4b:a0:ef:e6:0e:a9:9a:f4:aa:73 - 23:b8:51:c7:d3:dd:fd:a7:1c:c1:69:32:ea:26:32:6d - 40:b0:0a:cd:0d:fa:b4:f4:56:ed:e8:d4:96:08:80:fd - 43:44:8c:fb:bb:af:81:d7:bb:71:c6:7c:3a:d2:a7:83 - e6:28:2d:2f:00:05:82:d7:cc:59:db:d9:e5:4f:a4:67 - 05: - -prime2: - 00:ee:1b:2a:48:37:fa:7c:94:35:36:ac:83:5f:2c:98 - e3:07:43:d1:2c:80:0e:a2:b8:7a:eb:e2:70:f6:49:77 - b3:42:05:fe:06:cf:3f:ca:0f:0d:44:1c:74:0a:77:f7 - 31:9f:30:fb:d9:44:71:11:e6:4a:ff:ef:ae:77:98:3e - 73:a0:77:21:a6:e0:66:9a:cf:5f:eb:3b:39:62:0b:ba - 1b:9b:1a:a5:58:4c:7e:17:fc:64:61:93:89:f0:c0:0f - ce:55:18:7e:d4:33:87:32:0e:53:51:5f:03:b4:05:4a - 5c:e7:5b:10:e5:b7:88:e5:04:b2:53:45:98:2f:9d:fb - 32:f5:2f:d9:59:54:ce:91:83:4c:37:ee:ab:5a:05:40 - 85:05:03:ae:b4:3d:96:c2:67:6b:28:25:91:87:ed:d1 - 3a:0f:4b:38:a5:81:b3:5b:6f:3e:33:27:1e:9a:4a:e6 - 3c:7c:be:9f:45:72:5b:eb:e3:dd:6c:73:ae:0d:07:bd - 91: - -coefficient: - 45:53:87:ab:71:9c:14:af:6c:00:44:bb:de:d5:72:ed - e9:21:f2:19:e5:4d:30:92:8e:9b:b7:f6:db:9e:ea:71 - b3:c2:89:01:4a:49:1f:2e:f8:34:57:e0:36:9a:20:84 - a8:b0:8a:0b:2a:d6:da:36:22:c2:ac:a2:85:99:f7:5d - 3f:2e:71:ab:e5:f7:bd:b2:8c:6f:44:33:aa:2d:cf:38 - 8c:d6:77:c7:d5:68:88:f1:f9:80:c2:e2:b8:58:26:bd - de:d6:8d:d5:c9:43:dc:e2:af:2e:d3:c5:19:4e:d5:14 - 33:bc:15:58:6f:05:eb:8d:0d:fa:40:a3:b7:77:24:4b - 30:a7:c2:8b:89:08:24:4d:fb:2e:3c:ad:ff:e3:d7:8b - 9c:f2:07:0d:79:3c:5e:f5:83:94:32:e2:16:dc:a9:22 - b4:f4:09:6a:f6:af:7d:9c:41:dc:be:23:7e:c4:6d:d6 - f9:e6:8e:3c:2d:00:fa:ac:d2:c8:6e:c5:6d:52:74:cd - - -exp1: - 4d:20:f9:2d:84:47:6a:13:1e:10:47:27:4a:8c:44:ce - f1:53:3c:09:d6:78:22:fe:e3:1d:b4:00:9b:2f:7b:e8 - 12:6d:7b:46:e4:68:a3:7d:09:ff:0b:0f:0b:6c:66:7a - 28:6f:c2:2f:38:40:e9:59:f4:9c:a0:47:22:f6:cb:63 - d1:89:09:f1:85:87:27:33:f4:7d:00:b2:f2:5a:d3:c0 - 8b:35:4a:ef:18:8c:61:17:f6:c5:4f:94:c8:89:fd:0a - 4a:48:65:b0:82:e7:8b:41:42:e6:c2:15:96:18:8a:42 - 04:d6:7c:92:59:aa:aa:83:14:44:83:47:b7:ab:25:1f - fe:33:d5:72:37:b4:b8:ce:c5:9a:ec:a3:fa:04:86:2f - 0f:4c:80:b5:97:0a:e6:ca:10:40:3c:78:34:35:37:04 - 2a:b9:01:26:d3:c7:6d:e1:9b:79:27:56:bb:be:d8:23 - dd:32:2c:62:00:b8:d0:bb:ad:91:c6:2c:ca:76:ca:15 - - -exp2: - 30:d8:19:c0:5e:db:5f:9a:f7:9f:93:9c:0f:76:12:96 - df:f2:a5:82:3f:72:c1:26:9e:f0:ac:af:07:96:e2:9b - 3f:3c:03:74:5a:27:77:c7:c6:ac:e6:39:57:bc:6c:55 - 1d:96:ea:d3:13:1b:2e:d4:d3:25:d5:81:30:bf:66:70 - 49:c6:a6:7c:99:23:f3:35:ff:33:3e:1e:f3:61:fc:77 - 95:45:ce:0d:63:03:aa:df:f7:a7:9c:a0:7b:66:aa:d7 - 64:d5:75:8f:0a:52:fd:8d:ba:c1:c2:7f:fb:f9:e9:db - 4d:0a:7d:58:e2:61:8e:b9:7b:eb:61:27:6a:fd:39:7e - a6:95:7e:3c:b9:0c:f7:04:bc:29:ed:27:f1:7b:8a:54 - bf:46:96:1c:1b:56:45:e2:f9:34:6f:20:7f:85:e5:99 - c7:71:62:d9:70:d5:de:37:df:c6:96:8b:cc:92:f8:d0 - 07:b7:02:ed:38:1c:6b:33:7f:44:b4:26:4c:3d:fe:41 - - - -Public Key PIN: - pin-sha256:UOonm3sEw21t/nC/tr24q9sX/HPV9mo0/M3Ya8rAwLs= -Public Key ID: - sha256:50ea279b7b04c36d6dfe70bfb6bdb8abdb17fc73d5f66a34fccdd86bcac0c0bb - sha1:b963cfb8eb202ccad2bb988dfa9e00cc52c1a4ba - ------BEGIN RSA PRIVATE KEY----- -MIIG4gIBAAKCAYEAu9dHH1XtwAivHTLSae930vP2hn7zl+I1ctQKhx51dr9ZKb7N -5q1tfWJHGfvtJJR/K9YMaM/N7vNestsRREt/MM7Sp3WnN4PAQdahhyJI+u/RFe3J -0nOr4XyUTbKWgM9aXH6W9gL6pIuxBbAn9dc4vSA37RLAIgeppl5HvR0zJ6LNTAxw -um7ZE297oXLo9L7jhhuis6EHz5PoOiZRPq+82oCxklaLIecd2fkMqWi3BNhtH2+Y -kPv7NRhxPFBzsUWx5+57hF1XlTM3sA/rhY+NsH8QF4ADmRtiDB1yb+V3OMh1lmE2 -SyiuF6T5gZBNS4VhOb5sysCpzU5FJ0eEgj1/xqcA15BkfKXp+PaS0nJUp5Vf/JMd -yRp4bjoaH4+iQdIEXBkyVBbyl298+STXpuIHz5+eZCeBX1p3ZU97soF4P6MiF9O6 -BnHVCWrChbo193EBtGPHcGKYWICiQCfA4tX9YOBaepy/e+Y0ePEW6CjZktzmLrbX -GoNLhpLWgc6OUArVAgMBAAECggGAeideZh9gVGCRWICjWybSmonyiLZoPR5rObhw -/DuvkcCQAFjH17pymHZf3KL7La2wIda6DTMOLdVwgQl7ahlapmfpj+MwEicI0Qf9 -1T5TjXSFWShg9g4o+aMlYn2/6BZwIfRkwalgS79YKGXNJs+GY19fXzmxXq/zAHER -YAdsK9twfIMej+7kFgKKuIxcuESm+6BfJ0eSJ8h83cvrS8PHIaVNVOgY5LxCqmyO -cmDZnDoOhMHyyl5Dl9zETr/W7LJwCEETAUi8NqLrXme2aqS2SiT6/W3vW3e8DH2V -moTsP5eqfAd2gPU6SfSZ7s8XEoPo2+8iYGdi+D75vBgrhPypgpWNkSeOuocVZR6f -s5Vf3EAvFet+CtdpgHuK4imJOi7rqQXBHl0jDaDXxJVNCYWMr5AjNgRmqRbX1OKq -Wm1EWmzI6KAI+t4ZIF/jBhflZcZV7w8N/z4cxZjuNNMHgRH+6RWH5pp2RL3LoDhj -mq/RfKfbJuLNSqKKf7jcelUATCDBAoHBAMn1FFlJO5UfFbAMg8v0akhgKq+L1YMW -qnFarxFjxsEKka9bvW6cy9frv8cxnyJGAc87PMu6fa3lu9h80l1SIBTqcAieKZgx -IHietj6Q6O/IL0XUNQRxoYQYUKmlErcUTkI+k1CdL8G9RfNOhmELvDvteMcrukug -7+YOqZr0qnMjuFHH0939pxzBaTLqJjJtQLAKzQ36tPRW7ejUlgiA/UNEjPu7r4HX -u3HGfDrSp4PmKC0vAAWC18xZ29nlT6RnBQKBwQDuGypIN/p8lDU2rINfLJjjB0PR -LIAOorh66+Jw9kl3s0IF/gbPP8oPDUQcdAp39zGfMPvZRHER5kr/7653mD5zoHch -puBmms9f6zs5Ygu6G5sapVhMfhf8ZGGTifDAD85VGH7UM4cyDlNRXwO0BUpc51sQ -5beI5QSyU0WYL537MvUv2VlUzpGDTDfuq1oFQIUFA660PZbCZ2soJZGH7dE6D0s4 -pYGzW28+MycemkrmPHy+n0VyW+vj3Wxzrg0HvZECgcBNIPkthEdqEx4QRydKjETO -8VM8CdZ4Iv7jHbQAmy976BJte0bkaKN9Cf8LDwtsZnoob8IvOEDpWfScoEci9stj -0YkJ8YWHJzP0fQCy8lrTwIs1Su8YjGEX9sVPlMiJ/QpKSGWwgueLQULmwhWWGIpC -BNZ8klmqqoMURINHt6slH/4z1XI3tLjOxZrso/oEhi8PTIC1lwrmyhBAPHg0NTcE -KrkBJtPHbeGbeSdWu77YI90yLGIAuNC7rZHGLMp2yhUCgcAw2BnAXttfmvefk5wP -dhKW3/Klgj9ywSae8KyvB5bimz88A3RaJ3fHxqzmOVe8bFUdlurTExsu1NMl1YEw -v2ZwScamfJkj8zX/Mz4e82H8d5VFzg1jA6rf96ecoHtmqtdk1XWPClL9jbrBwn/7 -+enbTQp9WOJhjrl762Enav05fqaVfjy5DPcEvCntJ/F7ilS/RpYcG1ZF4vk0byB/ -heWZx3Fi2XDV3jffxpaLzJL40Ae3Au04HGszf0S0Jkw9/kECgcBFU4ercZwUr2wA -RLve1XLt6SHyGeVNMJKOm7f2257qcbPCiQFKSR8u+DRX4DaaIISosIoLKtbaNiLC -rKKFmfddPy5xq+X3vbKMb0Qzqi3POIzWd8fVaIjx+YDC4rhYJr3e1o3VyUPc4q8u -08UZTtUUM7wVWG8F640N+kCjt3ckSzCnwouJCCRN+y48rf/j14uc8gcNeTxe9YOU -MuIW3KkitPQJavavfZxB3L4jfsRt1vnmjjwtAPqs0shuxW1SdM0= ------END RSA PRIVATE KEY----- diff --git a/daemon/lua/trust_anchors.test/x509/wrongca.pem b/daemon/lua/trust_anchors.test/x509/wrongca.pem deleted file mode 100644 index fc3e43fe7..000000000 --- a/daemon/lua/trust_anchors.test/x509/wrongca.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEETCCAnmgAwIBAgIUNVTN+if8IQU0I1n4qyVF9qqhuo0wDQYJKoZIhvcNAQEL -BQAwHzEdMBsGA1UEAxMUQW5vdGhlciB1bnJlbGF0ZWQgQ0EwIBcNMjAwMTA3MDkz -NDA5WhgPOTk5OTEyMzEyMzU5NTlaMB8xHTAbBgNVBAMTFEFub3RoZXIgdW5yZWxh -dGVkIENBMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAu9dHH1XtwAiv -HTLSae930vP2hn7zl+I1ctQKhx51dr9ZKb7N5q1tfWJHGfvtJJR/K9YMaM/N7vNe -stsRREt/MM7Sp3WnN4PAQdahhyJI+u/RFe3J0nOr4XyUTbKWgM9aXH6W9gL6pIux -BbAn9dc4vSA37RLAIgeppl5HvR0zJ6LNTAxwum7ZE297oXLo9L7jhhuis6EHz5Po -OiZRPq+82oCxklaLIecd2fkMqWi3BNhtH2+YkPv7NRhxPFBzsUWx5+57hF1XlTM3 -sA/rhY+NsH8QF4ADmRtiDB1yb+V3OMh1lmE2SyiuF6T5gZBNS4VhOb5sysCpzU5F -J0eEgj1/xqcA15BkfKXp+PaS0nJUp5Vf/JMdyRp4bjoaH4+iQdIEXBkyVBbyl298 -+STXpuIHz5+eZCeBX1p3ZU97soF4P6MiF9O6BnHVCWrChbo193EBtGPHcGKYWICi -QCfA4tX9YOBaepy/e+Y0ePEW6CjZktzmLrbXGoNLhpLWgc6OUArVAgMBAAGjQzBB -MA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcEADAdBgNVHQ4EFgQUuWPP -uOsgLMrSu5iN+p4AzFLBpLowDQYJKoZIhvcNAQELBQADggGBAEobHXRbd6wfUmyf -P5v6qdJQMqtNGlU8eYzizEyuyovSlL+g9wgQ/91RAYK26FXzOuRz9Cg/ZWYVHqiG -rRWWwcfzY7qHo3HGkpDSIjD53TAoK46ICD4+EreG+JBvy1P3Ij/VX7M07swIg8Ff -6O4CnJpKAFaSr9wT8Ac3oCu+vymgLajMocNYV/UFVND+TLi6sx0zcMfCgW2vhSWk -PRulxL76xq97vjWoveqDiFS41cPOAghd4hUmzRFByX6XPBx6YZddSUF+QZt92K4Z -YEU4UbKqhbiBoZMGaQ8DzM2T44WPISrRZ0QpeS+pXwVjbDfoUbBWYAjFA8EHhPOi -oewIIYnarItI3z3iccErOeKPPVQh5QW3/CwO4XSnvTEBkhf2EjG25UAHZ8LZy0t8 -Sw1raGJPYJV/qNVeIzLKd3tYmNpcmddYqS+ei2yBOoO5UPdbYaH1gTAZ4BbOhOml -BJKJWcekpJrZAVTBNRectxsMXB8fHYL65Wa+w3cRqsZRjTbTEg== ------END CERTIFICATE----- diff --git a/daemon/lua/trust_anchors.test/x509/wrongca.tmpl b/daemon/lua/trust_anchors.test/x509/wrongca.tmpl deleted file mode 100644 index 0e8491b6e..000000000 --- a/daemon/lua/trust_anchors.test/x509/wrongca.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -cn = Another unrelated CA -ca -cert_signing_key -expiration_days = -1 diff --git a/daemon/lua/zonefile.lua b/daemon/lua/zonefile.lua deleted file mode 100644 index 8ea3a0800..000000000 --- a/daemon/lua/zonefile.lua +++ /dev/null @@ -1,93 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later - --- LuaJIT ffi bindings for zscanner, a DNS zone parser. --- Author: Marek Vavrusa - -local ffi = require('ffi') -local libzscanner = ffi.load(libzscanner_SONAME) - --- Wrap scanner context -local zs_scanner_t = ffi.typeof('zs_scanner_t') -ffi.metatype( zs_scanner_t, { - __gc = function(zs) return libzscanner.zs_deinit(zs) end, - __new = function(ct, origin, class, ttl) - if not class then class = 1 end - if not ttl then ttl = 3600 end - local parser = ffi.new(ct) - libzscanner.zs_init(parser, origin, class, ttl) - return parser - end, - __index = { - open = function (zs, file) - assert(ffi.istype(zs, zs_scanner_t)) - local ret = libzscanner.zs_set_input_file(zs, file) - if ret ~= 0 then return false, zs:strerr() end - return true - end, - parse = function(zs, input) - assert(ffi.istype(zs, zs_scanner_t)) - if input ~= nil then libzscanner.zs_set_input_string(zs, input, #input) end - local ret = libzscanner.zs_parse_record(zs) - -- Return current state only when parsed correctly, otherwise return error - if ret == 0 and zs.state ~= "ZS_STATE_ERROR" then - return zs.state == "ZS_STATE_DATA" - else - return false, zs:strerr() - end - end, - current_rr = function(zs) - assert(ffi.istype(zs, zs_scanner_t)) - return { - owner = ffi.string(zs.r_owner, zs.r_owner_length), - ttl = tonumber(zs.r_ttl), - class = tonumber(zs.r_class), - type = tonumber(zs.r_type), - rdata = ffi.string(zs.r_data, zs.r_data_length), - comment = zs:current_comment(), - } - end, - strerr = function(zs) - assert(ffi.istype(zs, zs_scanner_t)) - return ffi.string(libzscanner.zs_strerror(zs.error.code)) - end, - current_comment = function(zs) - if zs.buffer_length > 0 then - return ffi.string(zs.buffer, zs.buffer_length - 1) - else - return nil - end - end - }, -}) - --- Module API -local rrparser = { - new = zs_scanner_t, - - -- Parse a file into a list of RRs - file = function (path) - local zs = zs_scanner_t() - local ok, err = zs:open(path) - if not ok then - return ok, err - end - local results = {} - while zs:parse() do - table.insert(results, zs:current_rr()) - end - return results - end, - - -- Parse a string into a list of RRs. - string = function (input) - local zs = zs_scanner_t() - local results = {} - local ok = zs:parse(input) - while ok do - table.insert(results, zs:current_rr()) - ok = zs:parse() - end - return results - end, -} -return rrparser diff --git a/daemon/main.c b/daemon/main.c deleted file mode 100644 index 53ecb3e8f..000000000 --- a/daemon/main.c +++ /dev/null @@ -1,663 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "kresconfig.h" - -#include "contrib/ucw/mempool.h" -#include "daemon/engine.h" -#include "daemon/io.h" -#include "daemon/network.h" -#include "daemon/udp_queue.h" -#include "daemon/worker.h" - -#ifdef ENABLE_DOH2 -#include "daemon/http.h" -#endif - -#include "lib/defines.h" -#include "lib/dnssec.h" -#include "lib/log.h" -#include "lib/resolve.h" -#include "lib/rules/api.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if ENABLE_CAP_NG -#include -#endif - -#include -#include -#if ENABLE_LIBSYSTEMD -#include -#endif -#include - -#if ENABLE_JEMALLOC -/* Make the jemalloc library needed. - * - * The problem is with --as-needed for linker which is added by default by meson. - * If we don't use any jemalloc-specific calls, linker will decide that - * it is not needed and won't link it. Making it needed seems better than - * trying to override the flag which might be useful in some other cases, etc. - * - * Exporting the function is a very easy way of ensuring that it's not optimized out. - */ -#include -KR_EXPORT void kr_jemalloc_unused(void) -{ - malloc_stats_print(NULL, NULL, NULL); -} -/* We don't use threads (or rarely in some parts), so multiple arenas don't make sense. - https://jemalloc.net/jemalloc.3.html - */ -KR_EXPORT const char *malloc_conf = "narenas:1"; -#endif - -/**@internal Maximum number of incomplete TCP connections in queue. -* Default is from empirical testing - in our case, more isn't necessarily better. -* See https://gitlab.nic.cz/knot/knot-resolver/-/merge_requests/968 -* */ -#ifndef TCP_BACKLOG_DEFAULT -#define TCP_BACKLOG_DEFAULT 128 -#endif - -/** I don't know why linker is dropping these functions otherwise. TODO: revisit. */ -KR_EXPORT void kr_misc_unused(void) -{ - kr_rule_zonefile(NULL); - kr_rule_local_address(NULL, NULL, false, 0, 0); -} - -struct args the_args_value; /** Static allocation for the_args singleton. */ - -static void signal_handler(uv_signal_t *handle, int signum) -{ - switch (signum) { - case SIGINT: /* Fallthrough. */ - case SIGTERM: - uv_stop(uv_default_loop()); - uv_signal_stop(handle); - break; - case SIGCHLD: - /* Wait for all dead processes. */ - while (waitpid(-1, NULL, WNOHANG) > 0); - break; - default: - kr_log_error(SYSTEM, "unhandled signal: %d\n", signum); - break; - } -} - -/** SIGBUS -> attempt to remove the overflowing cache file and abort. */ -static void sigbus_handler(int sig, siginfo_t *siginfo, void *ptr) -{ - /* We can't safely assume that printf-like functions work, but write() is OK. - * See POSIX for the safe functions, e.g. 2017 version just above this link: - * http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04_04 - */ - #define WRITE_ERR(err_charray) \ - (void)write(STDERR_FILENO, err_charray, sizeof(err_charray)) - /* Unfortunately, void-cast on the write isn't enough to avoid the warning. */ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wunused-result" - const char msg_typical[] = - "\nSIGBUS received; this is most likely due to filling up the filesystem where cache resides.\n", - msg_unknown[] = "\nSIGBUS received, cause unknown.\n", - msg_deleted[] = "Cache file deleted.\n", - msg_del_fail[] = "Cache file deletion failed.\n", - msg_final[] = "kresd can not recover reliably by itself, exiting.\n"; - if (siginfo->si_code != BUS_ADRERR) { - WRITE_ERR(msg_unknown); - goto end; - } - WRITE_ERR(msg_typical); - if (!kr_cache_emergency_file_to_remove) goto end; - if (unlink(kr_cache_emergency_file_to_remove)) { - WRITE_ERR(msg_del_fail); - } else { - WRITE_ERR(msg_deleted); - } -end: - WRITE_ERR(msg_final); - _exit(128 - sig); /*< regular return from OS-raised SIGBUS can't work anyway */ - #undef WRITE_ERR - #pragma GCC diagnostic pop -} - - -/* - * Server operation. - */ - -static int fork_workers(int forks) -{ - /* Fork subprocesses if requested */ - while (--forks > 0) { - int pid = fork(); - if (pid < 0) { - perror("[system] fork"); - return kr_error(errno); - } - - /* Forked process */ - if (pid == 0) { - return forks; - } - } - return 0; -} - -static void help(int argc, char *argv[]) -{ - printf("Usage: %s [parameters] [rundir]\n", argv[0]); - printf("\nParameters:\n" - " -a, --addr=[addr] Server address (default: localhost@53).\n" - " -t, --tls=[addr] Server address for TLS (default: off).\n" - " -S, --fd=[fd:kind] Listen on given fd (handed out by supervisor, :kind is optional).\n" - " -c, --config=[path] Config file path (relative to [rundir]) (default: config).\n" - " -n, --noninteractive Don't start the read-eval-print loop for stdin+stdout.\n" - " -q, --quiet No command prompt in interactive mode.\n" - " -v, --verbose Increase logging to debug level.\n" - " -V, --version Print version of the server.\n" - " -h, --help Print help and usage.\n" - "Options:\n" - " [rundir] Path to the working directory (default: .)\n"); -} - -/** \return exit code for main() */ -static int run_worker(uv_loop_t *loop, bool leader, struct args *args) -{ - /* Only some kinds of stdin work with uv_pipe_t. - * Otherwise we would abort() from libuv e.g. with interactive) switch (uv_guess_handle(0)) { - case UV_TTY: /* standard terminal */ - /* TODO: it has worked OK so far, but we'd better use uv_tty_* - * for this case instead of uv_pipe_*. */ - case UV_NAMED_PIPE: /* echo 'quit()' | kresd ... */ - break; - default: - kr_log_error(SYSTEM, - "error: standard input is not a terminal or pipe; " - "use '-n' if you want non-interactive mode. " - "Commands can be simply added to your configuration file or sent over the control socket.\n" - ); - return EXIT_FAILURE; - } - - /* Control sockets or TTY */ - uv_pipe_t *pipe = malloc(sizeof(*pipe)); - if (!pipe) - return EXIT_FAILURE; - uv_pipe_init(loop, pipe, 0); - if (args->interactive) { - if (!args->quiet) - printf("Interactive mode:\n" "> "); - pipe->data = io_tty_alloc_data(); - uv_pipe_open(pipe, 0); - uv_read_start((uv_stream_t*)pipe, io_tty_alloc, io_tty_process_input); - } else if (args->control_fd != -1 && uv_pipe_open(pipe, args->control_fd) == 0) { - uv_listen((uv_stream_t *)pipe, 16, io_tty_accept); - } - - /* Notify supervisor. */ -#if ENABLE_LIBSYSTEMD - sd_notify(0, "READY=1"); -#endif - /* Run event loop */ - uv_run(loop, UV_RUN_DEFAULT); - /* Free pipe's data. Seems OK even on the stopped loop. - * In interactive case it may have been done in callbacks already (single leak). */ - if (!args->interactive) { - uv_close((uv_handle_t *)pipe, NULL); - free(pipe); - } - return EXIT_SUCCESS; -} - -static void args_init(struct args *args) -{ - memset(args, 0, sizeof(struct args)); - /* Zeroed arrays are OK. */ - args->forks = 1; - args->control_fd = -1; - args->interactive = true; - args->quiet = false; -} - -/* Free pointed-to resources. */ -static void args_deinit(struct args *args) -{ - array_clear(args->addrs); - array_clear(args->addrs_tls); - for (int i = 0; i < args->fds.len; ++i) - free_const(args->fds.at[i].flags.kind); - array_clear(args->fds); - array_clear(args->config); -} - -/** Process arguments into struct args. - * @return >=0 if main() should be exited immediately. - */ -static int parse_args(int argc, char **argv, struct args *args) -{ - /* Long options. */ - int c = 0, li = 0; - struct option opts[] = { - {"addr", required_argument, 0, 'a'}, - {"tls", required_argument, 0, 't'}, - {"config", required_argument, 0, 'c'}, - {"forks", required_argument, 0, 'f'}, - {"noninteractive", no_argument, 0, 'n'}, - {"verbose", no_argument, 0, 'v'}, - {"quiet", no_argument, 0, 'q'}, - {"version", no_argument, 0, 'V'}, - {"help", no_argument, 0, 'h'}, - {"fd", required_argument, 0, 'S'}, - {0, 0, 0, 0} - }; - while ((c = getopt_long(argc, argv, "a:t:c:f:nvqVhS:", opts, &li)) != -1) { - switch (c) - { - case 'a': - kr_require(optarg); - array_push(args->addrs, optarg); - break; - case 't': - kr_require(optarg); - array_push(args->addrs_tls, optarg); - break; - case 'c': - kr_require(optarg); - array_push(args->config, optarg); - break; - case 'f': - kr_require(optarg); - args->forks = strtol(optarg, NULL, 10); - if (args->forks == 1) { - kr_log_deprecate(SYSTEM, "use --noninteractive instead of --forks=1\n"); - } else { - kr_log_deprecate(SYSTEM, "support for running multiple --forks will be removed\n"); - } - if (args->forks <= 0) { - kr_log_error(SYSTEM, "error '-f' requires a positive" - " number, not '%s'\n", optarg); - return EXIT_FAILURE; - } - /* fall through */ - case 'n': - args->interactive = false; - break; - case 'v': - kr_log_level_set(LOG_DEBUG); - break; - case 'q': - args->quiet = true; - break; - case 'V': - printf("Knot Resolver, version %s\n", PACKAGE_VERSION); - return EXIT_SUCCESS; - case 'h': - case '?': - help(argc, argv); - return EXIT_SUCCESS; - default: - help(argc, argv); - return EXIT_FAILURE; - case 'S': - kr_require(optarg); - flagged_fd_t ffd = { 0 }; - char *endptr; - ffd.fd = strtol(optarg, &endptr, 10); - if (endptr != optarg && endptr[0] == '\0') { - /* Plain DNS */ - ffd.flags.tls = false; - } else if (endptr[0] == ':' && strcasecmp(endptr + 1, "tls") == 0) { - /* DoT */ - ffd.flags.tls = true; - /* We know what .sock_type should be but it wouldn't help. */ - } else if (endptr[0] == ':' && endptr[1] != '\0') { - /* Some other kind; no checks here. */ - ffd.flags.kind = strdup(endptr + 1); - } else { - kr_log_error(SYSTEM, "incorrect value passed to '-S/--fd': %s\n", - optarg); - return EXIT_FAILURE; - } - array_push(args->fds, ffd); - break; - } - } - if (optind < argc) { - args->rundir = argv[optind]; - } - return -1; -} - -/** Just convert addresses to file-descriptors; clear *addrs on success. - * @note AF_UNIX is supported (starting with '/'). - * @return zero or exit code for main() - */ -static int bind_sockets(addr_array_t *addrs, bool tls, flagged_fd_array_t *fds) -{ - bool has_error = false; - for (size_t i = 0; i < addrs->len; ++i) { - /* Get port and separate address string. */ - uint16_t port = tls ? KR_DNS_TLS_PORT : KR_DNS_PORT; - char addr_buf[INET6_ADDRSTRLEN + 1]; - int ret; - const char *addr_str; - const int family = kr_straddr_family(addrs->at[i]); - if (family == AF_UNIX) { - ret = 0; - addr_str = addrs->at[i]; - } else { /* internet socket (or garbage) */ - ret = kr_straddr_split(addrs->at[i], addr_buf, &port); - addr_str = addr_buf; - } - /* Get sockaddr. */ - struct sockaddr *sa = NULL; - if (ret == 0) { - sa = kr_straddr_socket(addr_str, port, NULL); - if (!sa) ret = kr_error(EINVAL); /* could be ENOMEM but unlikely */ - } - flagged_fd_t ffd = { .flags = { .tls = tls } }; - if (ret == 0 && !tls && family != AF_UNIX) { - /* AF_UNIX can do SOCK_DGRAM, but let's not support that *here*. */ - ffd.fd = io_bind(sa, SOCK_DGRAM, NULL); - if (ffd.fd < 0) - ret = ffd.fd; - else if (array_push(*fds, ffd) < 0) - ret = kr_error(ENOMEM); - } - if (ret == 0) { /* common for TCP and TLS, including AF_UNIX cases */ - ffd.fd = io_bind(sa, SOCK_STREAM, NULL); - if (ffd.fd < 0) - ret = ffd.fd; - else if (array_push(*fds, ffd) < 0) - ret = kr_error(ENOMEM); - } - free(sa); - if (ret != 0) { - kr_log_error(NETWORK, "bind to '%s'%s: %s\n", - addrs->at[i], tls ? " (TLS)" : "", kr_strerror(ret)); - has_error = true; - } - } - array_clear(*addrs); - return has_error ? EXIT_FAILURE : kr_ok(); -} - -static int start_listening(flagged_fd_array_t *fds) { - int some_bad_ret = 0; - for (size_t i = 0; i < fds->len; ++i) { - flagged_fd_t *ffd = &fds->at[i]; - int ret = network_listen_fd(ffd->fd, ffd->flags); - if (ret != 0) { - some_bad_ret = ret; - /* TODO: try logging address@port. It's not too important, - * because typical problems happen during binding already. - * (invalid address, permission denied) */ - kr_log_error(NETWORK, "listen on fd=%d: %s\n", - ffd->fd, kr_strerror(ret)); - /* Continue printing all of these before exiting. */ - } else { - ffd->flags.kind = NULL; /* ownership transferred */ - } - } - return some_bad_ret; -} - -/* Drop POSIX 1003.1e capabilities. */ -static void drop_capabilities(void) -{ -#if ENABLE_CAP_NG - /* Drop all capabilities when running under non-root user. */ - if (geteuid() == 0) { - kr_log_debug(SYSTEM, "running as root, no capabilities dropped\n"); - return; - } - if (capng_have_capability(CAPNG_EFFECTIVE, CAP_SETPCAP)) { - capng_clear(CAPNG_SELECT_BOTH); - - /* Apply. */ - if (capng_apply(CAPNG_SELECT_BOTH) < 0) { - kr_log_error(SYSTEM, "failed to set process capabilities: %s\n", - strerror(errno)); - } else { - kr_log_debug(SYSTEM, "all capabilities dropped\n"); - } - } else { - /* If user() was called, the capabilities were already dropped along with SETPCAP. */ - kr_log_debug(SYSTEM, "process not allowed to set capabilities, skipping\n"); - } -#endif /* ENABLE_CAP_NG */ -} - -int main(int argc, char **argv) -{ - kr_log_group_reset(); - if (setvbuf(stdout, NULL, _IONBF, 0) || setvbuf(stderr, NULL, _IONBF, 0)) { - kr_log_error(SYSTEM, "failed to to set output buffering (ignored): %s\n", - strerror(errno)); - fflush(stderr); - } - if (strcmp("linux", OPERATING_SYSTEM) != 0) - kr_log_warning(SYSTEM, "Knot Resolver is tested on Linux, other platforms might exhibit bugs.\n" - "Please report issues to https://gitlab.nic.cz/knot/knot-resolver/issues/\n" - "Thank you for your time and interest!\n"); - - the_args = &the_args_value; - args_init(the_args); - int ret = parse_args(argc, argv, the_args); - if (ret >= 0) goto cleanup_args; - - ret = bind_sockets(&the_args->addrs, false, &the_args->fds); - if (ret) goto cleanup_args; - ret = bind_sockets(&the_args->addrs_tls, true, &the_args->fds); - if (ret) goto cleanup_args; - - /* Switch to rundir. */ - if (the_args->rundir != NULL) { - /* FIXME: access isn't a good way if we start as root and drop privileges later */ - if (access(the_args->rundir, W_OK) != 0 - || chdir(the_args->rundir) != 0) { - kr_log_error(SYSTEM, "rundir '%s': %s\n", - the_args->rundir, strerror(errno)); - return EXIT_FAILURE; - } - } - - /* Select which config files to load and verify they are read-able. */ - bool load_defaults = true; - size_t i = 0; - while (i < the_args->config.len) { - const char *config = the_args->config.at[i]; - if (strcmp(config, "-") == 0) { - load_defaults = false; - array_del(the_args->config, i); - continue; /* don't increment i */ - } else if (access(config, R_OK) != 0) { - char cwd[PATH_MAX]; - get_workdir(cwd, sizeof(cwd)); - kr_log_error(SYSTEM, "config '%s' (workdir '%s'): %s\n", - config, cwd, strerror(errno)); - return EXIT_FAILURE; - } - i++; - } - if (the_args->config.len == 0 && access("config", R_OK) == 0) - array_push(the_args->config, "config"); - if (load_defaults) - array_push(the_args->config, LIBDIR "/postconfig.lua"); - - /* File-descriptor count limit: soft->hard. */ - struct rlimit rlim; - ret = getrlimit(RLIMIT_NOFILE, &rlim); - if (ret == 0 && rlim.rlim_cur != rlim.rlim_max) { - kr_log_debug(SYSTEM, "increasing file-descriptor limit: %ld -> %ld\n", - (long)rlim.rlim_cur, (long)rlim.rlim_max); - rlim.rlim_cur = rlim.rlim_max; - ret = setrlimit(RLIMIT_NOFILE, &rlim); - } - if (ret) { - kr_log_error(SYSTEM, "failed to get or set file-descriptor limit: %s\n", - strerror(errno)); - } else if (rlim.rlim_cur < 512*1024) { - kr_log_warning(SYSTEM, "warning: hard limit for number of file-descriptors is only %ld but recommended value is 524288\n", - (long)rlim.rlim_cur); - } - - /* Fork subprocesses if requested */ - int fork_id = fork_workers(the_args->forks); - if (fork_id < 0) { - return EXIT_FAILURE; - } - - kr_crypto_init(); - - network_init(uv_default_loop(), TCP_BACKLOG_DEFAULT); - - /* Create a server engine. */ - ret = engine_init(); - if (ret != 0) { - kr_log_error(SYSTEM, "failed to initialize engine: %s\n", kr_strerror(ret)); - return EXIT_FAILURE; - } - - /* Create resolver context. */ - ret = kr_resolver_init(&the_engine->modules, &the_engine->pool); - if (ret != 0) { - kr_log_error(SYSTEM, "failed to initialize resolver: %s\n", kr_strerror(ret)); - return EXIT_FAILURE; - } - /* Initialize the worker. */ - ret = worker_init(); - if (ret != 0) { - kr_log_error(SYSTEM, "failed to initialize worker: %s\n", kr_strerror(ret)); - return EXIT_FAILURE; - } - - uv_loop_t *loop = uv_default_loop(); - /* Catch some signals. */ - uv_signal_t sigint, sigterm, sigchld; - if (true) ret = uv_signal_init(loop, &sigint); - if (!ret) ret = uv_signal_init(loop, &sigterm); - if (!ret) ret = uv_signal_init(loop, &sigchld); - if (!ret) ret = uv_signal_start(&sigint, signal_handler, SIGINT); - if (!ret) ret = uv_signal_start(&sigterm, signal_handler, SIGTERM); - if (!ret) ret = uv_signal_start(&sigchld, signal_handler, SIGCHLD); - /* Block SIGPIPE; see https://github.com/libuv/libuv/issues/45 */ - if (!ret && signal(SIGPIPE, SIG_IGN) == SIG_ERR) ret = errno; - if (!ret) { - /* Catching SIGBUS via uv_signal_* can't work; see: - * https://github.com/libuv/libuv/pull/1987 */ - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_sigaction = sigbus_handler; - sa.sa_flags = SA_SIGINFO; - if (sigaction(SIGBUS, &sa, NULL)) { - ret = errno; - } - } - if (ret) { - kr_log_error(SYSTEM, "failed to set up signal handlers: %s\n", - strerror(abs(errno))); - ret = EXIT_FAILURE; - goto cleanup; - } - /* Profiling: avoid SIGPROF waking up the event loop. Otherwise the profiles - * (of the usual type) may skew results, e.g. epoll_pwait() taking lots of time. */ - ret = uv_loop_configure(loop, UV_LOOP_BLOCK_SIGNAL, SIGPROF); - if (ret) { - kr_log_info(SYSTEM, "failed to block SIGPROF in event loop, ignoring: %s\n", - uv_strerror(ret)); - } - - io_protolayers_init(); - tls_protolayers_init(); -#ifdef ENABLE_DOH2 - http_protolayers_init(); -#endif - - /* Start listening, in the sense of network_listen_fd(). */ - if (start_listening(&the_args->fds) != 0) { - ret = EXIT_FAILURE; - goto cleanup; - } - - ret = udp_queue_init_global(loop); - if (ret) { - kr_log_error(SYSTEM, "failed to initialize UDP queue: %s\n", - kr_strerror(ret)); - ret = EXIT_FAILURE; - goto cleanup; - } - - /* Start the scripting engine */ - if (engine_load_sandbox() != 0) { - ret = EXIT_FAILURE; - goto cleanup; - } - - for (i = 0; i < the_args->config.len; ++i) { - const char *config = the_args->config.at[i]; - if (engine_loadconf(config) != 0) { - ret = EXIT_FAILURE; - goto cleanup; - } - lua_settop(the_engine->L, 0); - } - - ret = kr_rules_init_ensure(); - if (ret) { - kr_log_error(RULES, "failed to initialize policy rule engine: %s\n", - kr_strerror(ret)); - ret = EXIT_FAILURE; - goto cleanup; - } - - drop_capabilities(); - - if (engine_start() != 0) { - ret = EXIT_FAILURE; - goto cleanup; - } - - if (network_engage_endpoints()) { - ret = EXIT_FAILURE; - goto cleanup; - } - - /* Starting everything succeeded, so commit rule DB changes. */ - kr_rules_commit(true); - - /* Run the event loop */ - ret = run_worker(loop, fork_id == 0, the_args); - -cleanup:/* Cleanup. */ - network_unregister(); - - kr_resolver_deinit(); - worker_deinit(); - engine_deinit(); - network_deinit(); - kr_rules_commit(false); - kr_rules_deinit(); - if (loop != NULL) { - uv_loop_close(loop); - } -cleanup_args: - args_deinit(the_args); - kr_crypto_cleanup(); - return ret; -} diff --git a/daemon/meson.build b/daemon/meson.build deleted file mode 100644 index 6eb956ddf..000000000 --- a/daemon/meson.build +++ /dev/null @@ -1,70 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# daemon - -kresd_src = files([ - 'bindings/cache.c', - 'bindings/event.c', - 'bindings/impl.c', - 'bindings/modules.c', - 'bindings/net.c', - 'bindings/worker.c', - 'engine.c', - 'ffimodule.c', - 'io.c', - 'main.c', - 'network.c', - 'proxyv2.c', - 'session2.c', - 'tls.c', - 'tls_ephemeral_credentials.c', - 'tls_session_ticket-srv.c', - 'udp_queue.c', - 'worker.c', - 'zimport.c', -]) - -if nghttp2.found() - kresd_src += files(['http.c']) -endif - -c_src_lint += kresd_src - -config_tests += [ - ['cache.clear', files('cache.test/clear.test.lua')], - ['zimport', files('zimport.test/zimport.test.lua')], -] - -integr_tests += [ - ['cache_insert_ns', meson.current_source_dir() / 'cache.test' / 'insert_ns.test.integr'], - ['proxyv2', meson.current_source_dir() / 'proxyv2.test'] -] - -kresd_deps = [ - contrib_dep, - kresconfig_dep, - libkres_dep, - libknot, - libzscanner, - libdnssec, - libuv, - luajit, - gnutls, - libsystemd, - capng, - nghttp2, - malloc, -] - - -subdir('lua') - - -kresd = executable( - 'kresd', - kresd_src, - dependencies: kresd_deps, - export_dynamic: true, - install: true, - install_dir: get_option('sbindir'), - install_rpath: rpath, -) diff --git a/daemon/network.c b/daemon/network.c deleted file mode 100644 index 1ec34e907..000000000 --- a/daemon/network.c +++ /dev/null @@ -1,932 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/network.h" - -#include "contrib/cleanup.h" -#include "daemon/bindings/impl.h" -#include "daemon/io.h" -#include "daemon/tls.h" -#include "daemon/worker.h" -#include "lib/utils.h" - -#if ENABLE_XDP - #include -#endif - -#include -#include -#include -#include - -/** Determines the type of `struct endpoint_key`. */ -enum endpoint_key_type -{ - ENDPOINT_KEY_SOCKADDR = 1, - ENDPOINT_KEY_IFNAME = 2, -}; - -/** Used as a key in the `struct network::endpoints` trie. */ -struct endpoint_key { - enum endpoint_key_type type; - char data[]; -}; - -struct __attribute__((packed)) endpoint_key_sockaddr { - enum endpoint_key_type type; - struct kr_sockaddr_key_storage sa_key; -}; - -struct __attribute__((packed)) endpoint_key_ifname { - enum endpoint_key_type type; - char ifname[128]; -}; - -/** Used for reserving enough storage for `endpoint_key`. */ -struct endpoint_key_storage { - union { - enum endpoint_key_type type; - struct endpoint_key_sockaddr sa; - struct endpoint_key_ifname ifname; - char bytes[1]; /* for easier casting */ - }; -}; - -static_assert(_Alignof(struct endpoint_key) <= 4, "endpoint_key must be aligned to <=4"); -static_assert(_Alignof(struct endpoint_key_sockaddr) <= 4, "endpoint_key must be aligned to <=4"); -static_assert(_Alignof(struct endpoint_key_ifname) <= 4, "endpoint_key must be aligned to <=4"); - -static struct network the_network_value = {0}; -struct network *the_network = NULL; - -void network_init(uv_loop_t *loop, int tcp_backlog) -{ - the_network = &the_network_value; - - the_network->loop = loop; - the_network->endpoints = trie_create(NULL); - the_network->endpoint_kinds = trie_create(NULL); - the_network->proxy_all4 = false; - the_network->proxy_all6 = false; - the_network->proxy_addrs4 = trie_create(NULL); - the_network->proxy_addrs6 = trie_create(NULL); - the_network->tls_client_params = NULL; - the_network->tls_session_ticket_ctx = /* unsync. random, by default */ - tls_session_ticket_ctx_create(loop, NULL, 0); - the_network->tcp.in_idle_timeout = 10000; - the_network->tcp.tls_handshake_timeout = TLS_MAX_HANDSHAKE_TIME; - the_network->tcp_backlog = tcp_backlog; -} - -/** Notify the registered function about endpoint getting open. - * If log_port < 1, don't log it. */ -static int endpoint_open_lua_cb(struct endpoint *ep, - const char *log_addr) -{ - const bool ok = ep->flags.kind && !ep->handle && !ep->engaged && ep->fd != -1; - if (kr_fails_assert(ok)) - return kr_error(EINVAL); - /* First find callback in the endpoint registry. */ - lua_State *L = the_engine->L; - void **pp = trie_get_try(the_network->endpoint_kinds, ep->flags.kind, - strlen(ep->flags.kind)); - if (!pp && the_network->missing_kind_is_error) { - kr_log_error(NETWORK, "error: network socket kind '%s' not handled when opening '%s", - ep->flags.kind, log_addr); - if (ep->family != AF_UNIX) - kr_log_error(NETWORK, "#%d", ep->port); - kr_log_error(NETWORK, "'\n"); - return kr_error(ENOENT); - } - if (!pp) return kr_ok(); - - /* Now execute the callback. */ - const int fun_id = (char *)*pp - (char *)NULL; - lua_rawgeti(L, LUA_REGISTRYINDEX, fun_id); - lua_pushboolean(L, true /* open */); - lua_pushpointer(L, ep); - if (ep->family == AF_UNIX) { - lua_pushstring(L, log_addr); - } else { - lua_pushfstring(L, "%s#%d", log_addr, ep->port); - } - if (lua_pcall(L, 3, 0, 0)) { - kr_log_error(NETWORK, "error opening %s: %s\n", log_addr, lua_tostring(L, -1)); - return kr_error(ENOSYS); /* TODO: better value? */ - } - ep->engaged = true; - return kr_ok(); -} - -static int engage_endpoint_array(const char *b_key, uint32_t key_len, trie_val_t *val, void *net) -{ - const char *log_addr = network_endpoint_key_str((struct endpoint_key *) b_key); - if (!log_addr) - log_addr = "[unknown]"; - - endpoint_array_t *eps = *val; - for (int i = 0; i < eps->len; ++i) { - struct endpoint *ep = &eps->at[i]; - const bool match = !ep->engaged && ep->flags.kind; - if (!match) continue; - int ret = endpoint_open_lua_cb(ep, log_addr); - if (ret) return ret; - } - return 0; -} - -int network_engage_endpoints(void) -{ - if (the_network->missing_kind_is_error) - return kr_ok(); /* maybe weird, but let's make it idempotent */ - the_network->missing_kind_is_error = true; - int ret = trie_apply_with_key(the_network->endpoints, engage_endpoint_array, the_network); - if (ret) { - the_network->missing_kind_is_error = false; /* avoid the same errors when closing */ - return ret; - } - return kr_ok(); -} - -const char *network_endpoint_key_str(const struct endpoint_key *key) -{ - switch (key->type) - { - case ENDPOINT_KEY_SOCKADDR:; - const struct endpoint_key_sockaddr *sa_key = - (struct endpoint_key_sockaddr *) key; - struct sockaddr_storage sa_storage; - struct sockaddr *sa = kr_sockaddr_from_key(&sa_storage, (const char *) &sa_key->sa_key); - return kr_straddr(sa); - case ENDPOINT_KEY_IFNAME:; - const struct endpoint_key_ifname *if_key = - (struct endpoint_key_ifname *) key; - return if_key->ifname; - default: - kr_assert(false); - return NULL; - } -} - -/** Notify the registered function about endpoint about to be closed. */ -static void endpoint_close_lua_cb(struct endpoint *ep) -{ - lua_State *L = the_engine->L; - void **pp = trie_get_try(the_network->endpoint_kinds, ep->flags.kind, - strlen(ep->flags.kind)); - if (!pp && the_network->missing_kind_is_error) { - kr_log_error(NETWORK, "internal error: missing kind '%s' in endpoint registry\n", - ep->flags.kind); - return; - } - if (!pp) return; - - const int fun_id = (char *)*pp - (char *)NULL; - lua_rawgeti(L, LUA_REGISTRYINDEX, fun_id); - lua_pushboolean(L, false /* close */); - lua_pushpointer(L, ep); - lua_pushstring(L, "FIXME:endpoint-identifier"); - if (lua_pcall(L, 3, 0, 0)) { - kr_log_error(NETWORK, "failed to close FIXME:endpoint-identifier: %s\n", - lua_tostring(L, -1)); - } -} - -static void endpoint_close(struct endpoint *ep, bool force) -{ - const bool is_control = ep->flags.kind && strcmp(ep->flags.kind, "control") == 0; - const bool is_xdp = ep->family == AF_XDP; - - if (ep->family == AF_UNIX) { /* The FS name would be left behind. */ - /* Extract local address for this socket. */ - struct sockaddr_un sa; - sa.sun_path[0] = '\0'; /*< probably only for lint:scan-build */ - socklen_t addr_len = sizeof(sa); - if (getsockname(ep->fd, (struct sockaddr *)&sa, &addr_len) - || unlink(sa.sun_path)) { - kr_log_error(NETWORK, "error (ignored) when closing unix socket (fd = %d): %s\n", - ep->fd, strerror(errno)); - return; - } - } - - if (ep->flags.kind && !is_control && !is_xdp) { - kr_assert(!ep->handle); - /* Special lua-handled endpoint. */ - if (ep->engaged) { - endpoint_close_lua_cb(ep); - } - if (ep->fd > 0) { - close(ep->fd); /* nothing to do with errors */ - } - free_const(ep->flags.kind); - return; - } - - free_const(ep->flags.kind); /* needed if (is_control) */ - kr_require(ep->handle); - if (force) { /* Force close if event loop isn't running. */ - if (ep->fd >= 0) { - close(ep->fd); - } - if (ep->handle) { - ep->handle->loop = NULL; - struct session2 *s = ep->handle->data; - if (s) - session2_close(s); - } - } else { /* Asynchronous close */ - struct session2 *s = ep->handle->data; - session2_close(s); - } -} - -/** Endpoint visitor (see @file trie.h) */ -static int close_key(trie_val_t *val, void* net) -{ - endpoint_array_t *ep_array = *val; - for (int i = 0; i < ep_array->len; ++i) { - endpoint_close(&ep_array->at[i], true); - } - return 0; -} - -static int free_key(trie_val_t *val, void* ext) -{ - endpoint_array_t *ep_array = *val; - array_clear(*ep_array); - free(ep_array); - return kr_ok(); -} - -int kind_unregister(trie_val_t *tv, void *L) -{ - int fun_id = (char *)*tv - (char *)NULL; - luaL_unref(L, LUA_REGISTRYINDEX, fun_id); - return 0; -} - -void network_close_force(void) -{ - if (the_network != NULL) { - trie_apply(the_network->endpoints, close_key, the_network); - trie_apply(the_network->endpoints, free_key, NULL); - trie_clear(the_network->endpoints); - } -} - -/** Frees all the `struct net_proxy_data` in the specified trie. */ -void network_proxy_free_addr_data(trie_t* trie) -{ - trie_it_t *it; - for (it = trie_it_begin(trie); !trie_it_finished(it); trie_it_next(it)) { - struct net_proxy_data *data = *trie_it_val(it); - free(data); - } - trie_it_free(it); -} - -void network_unregister(void) -{ - network_close_force(); - trie_apply(the_network->endpoint_kinds, kind_unregister, the_engine->L); -} - -void network_deinit(void) -{ - trie_free(the_network->endpoint_kinds); - trie_free(the_network->endpoints); - network_proxy_free_addr_data(the_network->proxy_addrs4); - trie_free(the_network->proxy_addrs4); - network_proxy_free_addr_data(the_network->proxy_addrs6); - trie_free(the_network->proxy_addrs6); - - tls_credentials_free(the_network->tls_credentials); - tls_client_params_free(the_network->tls_client_params); - tls_session_ticket_ctx_destroy(the_network->tls_session_ticket_ctx); -#ifndef NDEBUG - memset(the_network, 0, sizeof(*the_network)); -#endif - the_network = NULL; -} - -/** Creates an endpoint key for use with a `trie_t` and stores it into `dst`. - * Returns the actual length of the generated key. */ -static ssize_t endpoint_key_create(struct endpoint_key_storage *dst, - const char *addr_str, - const struct sockaddr *sa) -{ - memset(dst, 0, sizeof(*dst)); - if (sa) { - struct endpoint_key_sockaddr *key = &dst->sa; - key->type = ENDPOINT_KEY_SOCKADDR; - ssize_t keylen = kr_sockaddr_key(&key->sa_key, sa); - if (keylen < 0) - return keylen; - return sizeof(struct endpoint_key) + keylen; - } else { - struct endpoint_key_ifname *key = &dst->ifname; - key->type = ENDPOINT_KEY_IFNAME; - - /* The subtractions and additions of 1 are here to account for - * null-terminators. */ - strncpy(key->ifname, addr_str, sizeof(key->ifname) - 1); - return sizeof(struct endpoint_key) + strlen(key->ifname) + 1; - } -} - -/** Fetch or create endpoint array and insert endpoint (shallow memcpy). */ -static int insert_endpoint(const char *addr_str, - const struct sockaddr *addr, struct endpoint *ep) -{ - /* Fetch or insert address into map */ - struct endpoint_key_storage key; - ssize_t keylen = endpoint_key_create(&key, addr_str, addr); - if (keylen < 0) - return keylen; - trie_val_t *val = trie_get_ins(the_network->endpoints, key.bytes, keylen); - endpoint_array_t *ep_array; - if (*val) { - ep_array = *val; - } else { - ep_array = malloc(sizeof(*ep_array)); - kr_require(ep_array); - array_init(*ep_array); - *val = ep_array; - } - - if (array_reserve(*ep_array, ep_array->len + 1)) { - return kr_error(ENOMEM); - } - memcpy(&ep_array->at[ep_array->len++], ep, sizeof(*ep)); - return kr_ok(); -} - -/** Open endpoint protocols. ep->flags were pre-set. - * \p addr_str is only used for logging or for XDP "address". */ -static int open_endpoint(const char *addr_str, - struct endpoint *ep, const struct sockaddr *sa) -{ - const bool is_control = ep->flags.kind && strcmp(ep->flags.kind, "control") == 0; - const bool is_xdp = ep->family == AF_XDP; - bool ok = (!is_xdp) - || (sa == NULL && ep->fd == -1 && ep->nic_queue >= 0 - && ep->flags.sock_type == SOCK_DGRAM && !ep->flags.tls); - if (kr_fails_assert(ok)) - return kr_error(EINVAL); - if (ep->handle) { - return kr_error(EEXIST); - } - - if (sa && ep->fd == -1) { - if (sa->sa_family == AF_UNIX) { - struct sockaddr_un *sun = (struct sockaddr_un*)sa; - char *dirc = strdup(sun->sun_path); - char *dname = dirname(dirc); - (void)unlink(sun->sun_path); /** Attempt to unlink if socket path exists. */ - (void)mkdir(dname, S_IRWXU|S_IRWXG); /** Attempt to create dir. */ - free(dirc); - } - ep->fd = io_bind(sa, ep->flags.sock_type, &ep->flags); - if (ep->fd < 0) return ep->fd; - } - if (ep->flags.kind && !is_control && !is_xdp) { - /* This EP isn't to be managed internally after binding. */ - return endpoint_open_lua_cb(ep, addr_str); - } else { - ep->engaged = true; - /* .engaged seems not really meaningful in this case, but... */ - } - - int ret; - if (is_control) { - uv_pipe_t *ep_handle = malloc(sizeof(uv_pipe_t)); - ep->handle = (uv_handle_t *)ep_handle; - ret = !ep->handle ? ENOMEM - : io_listen_pipe(the_network->loop, ep_handle, ep->fd); - goto finish_ret; - } - - if (ep->family == AF_UNIX) { - /* Some parts of connection handling would need more work, - * so let's support AF_UNIX only with .kind != NULL for now. */ - kr_log_error(NETWORK, "AF_UNIX only supported with set { kind = '...' }\n"); - ret = EAFNOSUPPORT; - goto finish_ret; - /* - uv_pipe_t *ep_handle = malloc(sizeof(uv_pipe_t)); - */ - } - - if (is_xdp) { - #if ENABLE_XDP - uv_poll_t *ep_handle = malloc(sizeof(uv_poll_t)); - ep->handle = (uv_handle_t *)ep_handle; - ret = !ep->handle ? ENOMEM - : io_listen_xdp(the_network->loop, ep, addr_str); - #else - ret = ESOCKTNOSUPPORT; - #endif - goto finish_ret; - } /* else */ - - if (ep->flags.sock_type == SOCK_DGRAM) { - if (kr_fails_assert(!ep->flags.tls)) - return kr_error(EINVAL); - uv_udp_t *ep_handle = malloc(sizeof(uv_udp_t)); - ep->handle = (uv_handle_t *)ep_handle; - ret = !ep->handle ? ENOMEM - : io_listen_udp(the_network->loop, ep_handle, ep->fd); - goto finish_ret; - } /* else */ - - if (ep->flags.sock_type == SOCK_STREAM) { - uv_tcp_t *ep_handle = malloc(sizeof(uv_tcp_t)); - ep->handle = (uv_handle_t *)ep_handle; - ret = !ep->handle ? ENOMEM - : io_listen_tcp(the_network->loop, ep_handle, ep->fd, - the_network->tcp_backlog, ep->flags.tls, ep->flags.http); - goto finish_ret; - } /* else */ - - kr_assert(false); - return kr_error(EINVAL); -finish_ret: - if (!ret) return ret; - free(ep->handle); - ep->handle = NULL; - return kr_error(ret); -} - -/** @internal Fetch a pointer to endpoint of given parameters (or NULL). - * Beware that there might be multiple matches, though that's not common. - * The matching isn't really precise in the sense that it might not find - * and endpoint that would *collide* the passed one. */ -static struct endpoint * endpoint_get(const char *addr_str, - const struct sockaddr *sa, - endpoint_flags_t flags) -{ - struct endpoint_key_storage key; - ssize_t keylen = endpoint_key_create(&key, addr_str, sa); - if (keylen < 0) - return NULL; - trie_val_t *val = trie_get_try(the_network->endpoints, key.bytes, keylen); - if (!val) - return NULL; - endpoint_array_t *ep_array = *val; - - uint16_t port = kr_inaddr_port(sa); - for (int i = 0; i < ep_array->len; ++i) { - struct endpoint *ep = &ep_array->at[i]; - if ((flags.xdp || ep->port == port) && endpoint_flags_eq(ep->flags, flags)) { - return ep; - } - } - return NULL; -} - -/** \note pass (either sa != NULL xor ep.fd != -1) or XDP case (neither sa nor ep.fd) - * \note in XDP case addr_str is interface name - * \note ownership of ep.flags.* is taken on success. */ -static int create_endpoint(const char *addr_str, - struct endpoint *ep, const struct sockaddr *sa) -{ - int ret = open_endpoint(addr_str, ep, sa); - if (ret == 0) { - ret = insert_endpoint(addr_str, sa, ep); - } - if (ret != 0 && ep->handle) { - endpoint_close(ep, false); - } - return ret; -} - -int network_listen_fd(int fd, endpoint_flags_t flags) -{ - if (kr_fails_assert(!flags.xdp)) - return kr_error(EINVAL); - /* Extract fd's socket type. */ - socklen_t len = sizeof(flags.sock_type); - int ret = getsockopt(fd, SOL_SOCKET, SO_TYPE, &flags.sock_type, &len); - if (ret != 0) - return kr_error(errno); - const bool is_dtls = flags.sock_type == SOCK_DGRAM && !flags.kind && flags.tls; - if (kr_fails_assert(!is_dtls)) - return kr_error(EINVAL); /* Perhaps DTLS some day. */ - if (flags.sock_type != SOCK_DGRAM && flags.sock_type != SOCK_STREAM) - return kr_error(EBADF); - - /* Extract local address for this socket. */ - struct sockaddr_storage ss = { .ss_family = AF_UNSPEC }; - socklen_t addr_len = sizeof(ss); - ret = getsockname(fd, (struct sockaddr *)&ss, &addr_len); - if (ret != 0) - return kr_error(errno); - - struct endpoint ep = { - .flags = flags, - .family = ss.ss_family, - .fd = fd, - }; - /* Extract address string and port. */ - char addr_buf[INET6_ADDRSTRLEN]; /* https://tools.ietf.org/html/rfc4291 */ - const char *addr_str; - switch (ep.family) { - case AF_INET: - ret = uv_ip4_name((const struct sockaddr_in*)&ss, addr_buf, sizeof(addr_buf)); - addr_str = addr_buf; - ep.port = ntohs(((struct sockaddr_in *)&ss)->sin_port); - break; - case AF_INET6: - ret = uv_ip6_name((const struct sockaddr_in6*)&ss, addr_buf, sizeof(addr_buf)); - addr_str = addr_buf; - ep.port = ntohs(((struct sockaddr_in6 *)&ss)->sin6_port); - break; - case AF_UNIX: - /* No SOCK_DGRAM with AF_UNIX support, at least for now. */ - ret = flags.sock_type == SOCK_STREAM ? kr_ok() : kr_error(EAFNOSUPPORT); - addr_str = ((struct sockaddr_un *)&ss)->sun_path; - break; - default: - ret = kr_error(EAFNOSUPPORT); - } - if (ret) return ret; - - /* always create endpoint for supervisor supplied fd - * even if addr+port is not unique */ - return create_endpoint(addr_str, &ep, (struct sockaddr *) &ss); -} - -/** Try selecting XDP queue automatically. */ -static int16_t nic_queue_auto(void) -{ - const char *inst_str = getenv("SYSTEMD_INSTANCE"); - if (!inst_str) - return 0; // should work OK for simple (single-kresd) deployments - char *endp; - errno = 0; // strtol() is special in this respect - long inst = strtol(inst_str, &endp, 10); - if (!errno && *endp == '\0' && inst > 0 && inst < UINT16_MAX) - return inst - 1; // 1-based vs. 0-based indexing conventions - return -1; -} - -int network_listen(const char *addr, uint16_t port, - int16_t nic_queue, endpoint_flags_t flags) -{ - if (kr_fails_assert(the_network != NULL && addr != 0 && nic_queue >= -1)) - return kr_error(EINVAL); - - if (flags.xdp && nic_queue < 0) { - nic_queue = nic_queue_auto(); - if (nic_queue < 0) { - return kr_error(EINVAL); - } - } - - // Try parsing the address. - const struct sockaddr *sa = kr_straddr_socket(addr, port, NULL); - if (!sa && !flags.xdp) { // unusable address spec - return kr_error(EINVAL); - } - char ifname_buf[64] UNUSED; - if (sa && flags.xdp) { // auto-detection: address -> interface - #if ENABLE_XDP - int ret = knot_eth_name_from_addr((const struct sockaddr_storage *)sa, - ifname_buf, sizeof(ifname_buf)); - // even on success we don't want to pass `sa` on - free_const(sa); - sa = NULL; - if (ret) { - return kr_error(ret); - } - addr = ifname_buf; - #else - return kr_error(ESOCKTNOSUPPORT); - #endif - } - // XDP: if addr failed to parse as address, we assume it's an interface name. - - if (endpoint_get(addr, sa, flags)) { - return kr_error(EADDRINUSE); // Already listening - } - - struct endpoint ep = { 0 }; - ep.flags = flags; - ep.fd = -1; - ep.port = port; - ep.family = flags.xdp ? AF_XDP : sa->sa_family; - ep.nic_queue = nic_queue; - - int ret = create_endpoint(addr, &ep, sa); - - // Error reporting: more precision. - if (ret == KNOT_EINVAL && !sa && flags.xdp && ENABLE_XDP) { - if (!if_nametoindex(addr) && errno == ENODEV) { - ret = kr_error(ENODEV); - } - } - - free_const(sa); - return ret; -} - -int network_proxy_allow(const char* addr) -{ - if (kr_fails_assert(the_network != NULL && addr != NULL)) - return kr_error(EINVAL); - - int family = kr_straddr_family(addr); - if (family < 0) { - kr_log_error(NETWORK, "Wrong address format for proxy_allowed: %s\n", - addr); - return kr_error(EINVAL); - } else if (family == AF_UNIX) { - kr_log_error(NETWORK, "Unix sockets not supported for proxy_allowed: %s\n", - addr); - return kr_error(EINVAL); - } - - union kr_in_addr ia; - int netmask = kr_straddr_subnet(&ia, addr); - if (netmask < 0) { - kr_log_error(NETWORK, "Wrong netmask format for proxy_allowed: %s\n", addr); - return kr_error(EINVAL); - } else if (netmask == 0) { - /* Netmask is zero: allow all addresses to use PROXYv2 */ - switch (family) { - case AF_INET: - the_network->proxy_all4 = true; - break; - case AF_INET6: - the_network->proxy_all6 = true; - break; - default: - kr_assert(false); - return kr_error(EINVAL); - } - - return kr_ok(); - } - - size_t addr_length; - trie_t *trie; - switch (family) { - case AF_INET: - addr_length = sizeof(ia.ip4); - trie = the_network->proxy_addrs4; - break; - case AF_INET6: - addr_length = sizeof(ia.ip6); - trie = the_network->proxy_addrs6; - break; - default: - kr_assert(false); - return kr_error(EINVAL); - } - - kr_bitmask((unsigned char *) &ia, addr_length, netmask); - trie_val_t *val = trie_get_ins(trie, (char *) &ia, addr_length); - if (!val) - return kr_error(ENOMEM); - - struct net_proxy_data *data = *val; - if (!data) { - /* Allocate data if the entry is new in the trie */ - *val = malloc(sizeof(struct net_proxy_data)); - data = *val; - data->netmask = 0; - } - - if (data->netmask == 0) { - memcpy(&data->addr, &ia, addr_length); - data->netmask = netmask; - } else if (data->netmask > netmask) { - /* A more relaxed netmask configured - replace it */ - data->netmask = netmask; - } - - return kr_ok(); -} - -void network_proxy_reset(void) -{ - the_network->proxy_all4 = false; - network_proxy_free_addr_data(the_network->proxy_addrs4); - trie_clear(the_network->proxy_addrs4); - the_network->proxy_all6 = false; - network_proxy_free_addr_data(the_network->proxy_addrs6); - trie_clear(the_network->proxy_addrs6); -} - -static int endpoints_close(struct endpoint_key_storage *key, ssize_t keylen, - endpoint_array_t *ep_array, int port) -{ - size_t i = 0; - bool matched = false; /*< at least one match */ - while (i < ep_array->len) { - struct endpoint *ep = &ep_array->at[i]; - if (port < 0 || ep->port == port) { - endpoint_close(ep, false); - array_del(*ep_array, i); - matched = true; - /* do not advance i */ - } else { - ++i; - } - } - if (!matched) { - return kr_error(ENOENT); - } - - return kr_ok(); -} - -static bool endpoint_key_addr_matches(struct endpoint_key_storage *key_a, - struct endpoint_key_storage *key_b) -{ - if (key_a->type != key_b->type) - return false; - - if (key_a->type == ENDPOINT_KEY_IFNAME) - return strncmp(key_a->ifname.ifname, - key_b->ifname.ifname, - sizeof(key_a->ifname.ifname)) == 0; - - if (key_a->type == ENDPOINT_KEY_SOCKADDR) { - return kr_sockaddr_key_same_addr( - key_a->sa.sa_key.bytes, key_b->sa.sa_key.bytes); - } - - kr_assert(false); - return kr_error(EINVAL); -} - -struct endpoint_key_with_len { - struct endpoint_key_storage key; - size_t keylen; -}; -typedef array_t(struct endpoint_key_with_len) endpoint_key_array_t; - -struct endpoint_close_wildcard_context { - struct endpoint_key_storage *match_key; - endpoint_key_array_t del; - int ret; -}; - -static int endpoints_close_wildcard(const char *s_key, uint32_t keylen, trie_val_t *val, void *baton) -{ - struct endpoint_close_wildcard_context *ctx = baton; - struct endpoint_key_storage *key = (struct endpoint_key_storage *)s_key; - - if (!endpoint_key_addr_matches(key, ctx->match_key)) - return kr_ok(); - - endpoint_array_t *ep_array = *val; - int ret = endpoints_close(key, keylen, ep_array, -1); - if (ret) - ctx->ret = ret; - - if (ep_array->len == 0) { - struct endpoint_key_with_len to_del = { - .key = *key, - .keylen = keylen - }; - array_push(ctx->del, to_del); - } - - return kr_ok(); -} - -int network_close(const char *addr_str, int port) -{ - auto_free struct sockaddr *addr = kr_straddr_socket(addr_str, port, NULL); - struct endpoint_key_storage key; - ssize_t keylen = endpoint_key_create(&key, addr_str, addr); - if (keylen < 0) - return keylen; - - if (port < 0) { - struct endpoint_close_wildcard_context ctx = { - .match_key = &key - }; - array_init(ctx.del); - trie_apply_with_key(the_network->endpoints, - endpoints_close_wildcard, &ctx); - for (size_t i = 0; i < ctx.del.len; i++) { - trie_val_t val; - trie_del(the_network->endpoints, - ctx.del.at[i].key.bytes, ctx.del.at[i].keylen, - &val); - if (val) { - array_clear(*(endpoint_array_t *) val); - free(val); - } - } - return ctx.ret; - } - - trie_val_t *val = trie_get_try(the_network->endpoints, key.bytes, keylen); - if (!val) - return kr_error(ENOENT); - endpoint_array_t *ep_array = *val; - int ret = endpoints_close(&key, keylen, ep_array, port); - - /* Collapse key if it has no endpoint. */ - if (ep_array->len == 0) { - array_clear(*ep_array); - free(ep_array); - trie_del(the_network->endpoints, key.bytes, keylen, NULL); - } - - return ret; -} - -void network_new_hostname(void) -{ - if (the_network->tls_credentials && - the_network->tls_credentials->ephemeral_servicename) { - struct tls_credentials *newcreds; - newcreds = tls_get_ephemeral_credentials(); - if (newcreds) { - tls_credentials_release(the_network->tls_credentials); - the_network->tls_credentials = newcreds; - kr_log_info(TLS, "Updated ephemeral X.509 cert with new hostname\n"); - } else { - kr_log_error(TLS, "Failed to update ephemeral X.509 cert with new hostname, using existing one\n"); - } - } -} - -#ifdef SO_ATTACH_BPF -static int set_bpf_cb(trie_val_t *val, void *ctx) -{ - endpoint_array_t *endpoints = *val; - int *bpffd = (int *)ctx; - if (kr_fails_assert(endpoints && bpffd)) - return kr_error(EINVAL); - - for (size_t i = 0; i < endpoints->len; i++) { - struct endpoint *endpoint = &endpoints->at[i]; - uv_os_fd_t sockfd = -1; - if (endpoint->handle != NULL) - uv_fileno(endpoint->handle, &sockfd); - kr_require(sockfd != -1); - - if (setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_BPF, bpffd, sizeof(int)) != 0) { - return 1; /* return error (and stop iterating over net->endpoints) */ - } - } - return 0; /* OK */ -} -#endif - -int network_set_bpf(int bpf_fd) -{ -#ifdef SO_ATTACH_BPF - if (trie_apply(the_network->endpoints, set_bpf_cb, &bpf_fd) != 0) { - /* set_bpf_cb() has returned error. */ - network_clear_bpf(); - return 0; - } -#else - kr_log_error(NETWORK, "SO_ATTACH_BPF socket option doesn't supported\n"); - (void)bpf_fd; - return 0; -#endif - return 1; -} - -#ifdef SO_DETACH_BPF -static int clear_bpf_cb(trie_val_t *val, void *ctx) -{ - endpoint_array_t *endpoints = *val; - if (kr_fails_assert(endpoints)) - return kr_error(EINVAL); - - for (size_t i = 0; i < endpoints->len; i++) { - struct endpoint *endpoint = &endpoints->at[i]; - uv_os_fd_t sockfd = -1; - if (endpoint->handle != NULL) - uv_fileno(endpoint->handle, &sockfd); - kr_require(sockfd != -1); - - if (setsockopt(sockfd, SOL_SOCKET, SO_DETACH_BPF, NULL, 0) != 0) { - kr_log_error(NETWORK, "failed to clear SO_DETACH_BPF socket option\n"); - } - /* Proceed even if setsockopt() failed, - * as we want to process all opened sockets. */ - } - return 0; -} -#endif - -void network_clear_bpf(void) -{ -#ifdef SO_DETACH_BPF - trie_apply(the_network->endpoints, clear_bpf_cb, NULL); -#else - kr_log_error(NETWORK, "SO_DETACH_BPF socket option doesn't supported\n"); -#endif -} diff --git a/daemon/network.h b/daemon/network.h deleted file mode 100644 index 9c667dbdc..000000000 --- a/daemon/network.h +++ /dev/null @@ -1,173 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include "daemon/tls.h" - -#include "lib/generic/array.h" -#include "lib/generic/trie.h" - -#include -#include - -#include -#ifndef AF_XDP -#define AF_XDP 44 -#endif - -struct engine; -struct session; - -/** Ways to listen on a socket (which may exist already). */ -typedef struct { - int sock_type; /**< SOCK_DGRAM or SOCK_STREAM */ - bool tls; /**< only used together with .kind == NULL and SOCK_STREAM */ - bool http; /**< DoH2, implies .tls (in current implementation) */ - bool xdp; /**< XDP is special (not a normal socket, in particular) */ - bool freebind; /**< used for binding to non-local address */ - const char *kind; /**< tag for other types: "control" or module-handled kinds */ -} endpoint_flags_t; - -struct endpoint_key; - -static inline bool endpoint_flags_eq(endpoint_flags_t f1, endpoint_flags_t f2) -{ - if (f1.sock_type != f2.sock_type) - return false; - if (f1.kind && f2.kind) - return strcasecmp(f1.kind, f2.kind); - else - return f1.tls == f2.tls && f1.kind == f2.kind; -} - -/** Wrapper for a single socket to listen on. - * There are two types: normal have handle, special have flags.kind (and never both). - * - * LATER: .family might be unexpected for IPv4-in-IPv6 addresses. - * ATM AF_UNIX is only supported with flags.kind != NULL - */ -struct endpoint { - /** uv_{udp,tcp,poll}_t (poll for XDP); - * NULL in case of endpoints that are to be handled by modules. */ - uv_handle_t *handle; - int fd; /**< POSIX file-descriptor; always used. */ - int family; /**< AF_INET or AF_INET6 or AF_UNIX or AF_XDP */ - uint16_t port; /**< TCP/UDP port. Meaningless with AF_UNIX. */ - int16_t nic_queue; /**< -1 or queue number of the interface for AF_XDP use. */ - bool engaged; /**< to some module or internally */ - endpoint_flags_t flags; -}; - -/** @cond internal Array of endpoints */ -typedef array_t(struct endpoint) endpoint_array_t; -/* @endcond */ - -struct net_tcp_param { - uint64_t in_idle_timeout; - uint64_t tls_handshake_timeout; -}; - -/** Information about an address that is allowed to use PROXYv2. */ -struct net_proxy_data { - union kr_in_addr addr; - uint8_t netmask; /**< Number of bits to be matched */ -}; - -struct network { - uv_loop_t *loop; - - /** Map: address string -> endpoint_array_t. - * \note even same address-port-flags tuples may appear. */ - trie_t *endpoints; - - /** Registry of callbacks for special endpoint kinds (for opening/closing). - * Map: kind (lowercased) -> lua function ID converted to void * - * The ID is the usual: raw int index in the LUA_REGISTRYINDEX table. */ - trie_t *endpoint_kinds; - /** See network_engage_endpoints() */ - bool missing_kind_is_error : 1; - - /** True: All IPv4 addresses are allowed to use the PROXYv2 protocol */ - bool proxy_all4 : 1; - /** True: All IPv6 addresses are allowed to use the PROXYv2 protocol */ - bool proxy_all6 : 1; - - /** IPv4 addresses and networks allowed to use the PROXYv2 protocol */ - trie_t *proxy_addrs4; - /** IPv6 addresses and networks allowed to use the PROXYv2 protocol */ - trie_t *proxy_addrs6; - - struct tls_credentials *tls_credentials; - tls_client_params_t *tls_client_params; /**< Use tls_client_params_*() functions. */ - struct tls_session_ticket_ctx *tls_session_ticket_ctx; - struct net_tcp_param tcp; - int tcp_backlog; -}; - -/** Pointer to the singleton network state. NULL if not initialized. */ -KR_EXPORT extern struct network *the_network; - -/** Initializes the network. */ -void network_init(uv_loop_t *loop, int tcp_backlog); - -/** Unregisters endpoints. Should be called before `network_deinit` - * and `engine_deinit`. */ -void network_unregister(void); - -/** Deinitializes the network. `network_unregister` should be called before - * this and before `engine_deinit`. */ -void network_deinit(void); - -/** Start listening on addr#port with flags. - * \note if we did listen on that combination already, - * nothing is done and kr_error(EADDRINUSE) is returned. - * \note there's no short-hand to listen both on UDP and TCP. - * \note ownership of flags.* is taken on success. TODO: non-success? - * \param nic_queue == -1 for auto-selection or non-XDP. - * \note In XDP mode, addr may be also interface name, so kr_error(ENODEV) - * is returned if some nonsense is passed - */ -int network_listen(const char *addr, uint16_t port, - int16_t nic_queue, endpoint_flags_t flags); - -/** Allow the specified address to send the PROXYv2 header. - * \note the address may be specified with a netmask - */ -int network_proxy_allow(const char* addr); - -/** Reset all addresses allowed to send the PROXYv2 header. No addresses will - * be allowed to send PROXYv2 headers from the point of calling this function - * until re-allowed via network_proxy_allow again. - */ -void network_proxy_reset(void); - -/** Start listening on an open file-descriptor. - * \note flags.sock_type isn't meaningful here. - * \note ownership of flags.* is taken on success. TODO: non-success? - */ -int network_listen_fd(int fd, endpoint_flags_t flags); - -/** Stop listening on all endpoints with matching addr#port. - * port < 0 serves as a wild-card. - * \return kr_error(ENOENT) if nothing matched. */ -int network_close(const char *addr, int port); - -/** Close all endpoints immediately (no waiting for UV loop). */ -void network_close_force(void); - -/** Enforce that all endpoints are registered from now on. - * This only does anything with struct endpoint::flags.kind != NULL. */ -int network_engage_endpoints(void); - -/** Returns a string representation of the specified endpoint key. - * - * The result points into key or is on static storage like for kr_straddr() */ -const char *network_endpoint_key_str(const struct endpoint_key *key); - -int network_set_tls_cert(const char *cert); -int network_set_tls_key(const char *key); -void network_new_hostname(void); -int network_set_bpf(int bpf_fd); -void network_clear_bpf(void); diff --git a/daemon/proxyv2.c b/daemon/proxyv2.c deleted file mode 100644 index 73eb57690..000000000 --- a/daemon/proxyv2.c +++ /dev/null @@ -1,294 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "daemon/network.h" -#include "lib/generic/trie.h" - -#include "daemon/proxyv2.h" - -const char PROXY2_SIGNATURE[12] = { - 0x0D, 0x0A, 0x0D, 0x0A, 0x00, 0x0D, 0x0A, 0x51, 0x55, 0x49, 0x54, 0x0A -}; - -#define PROXY2_IP6_ADDR_SIZE 16 -#define PROXY2_UNIX_ADDR_SIZE 108 - -#define TLV_TYPE_SSL 0x20 - -enum proxy2_family { - PROXY2_AF_UNSPEC = 0x0, - PROXY2_AF_INET = 0x1, - PROXY2_AF_INET6 = 0x2, - PROXY2_AF_UNIX = 0x3 -}; - -enum proxy2_protocol { - PROXY2_PROTOCOL_UNSPEC = 0x0, - PROXY2_PROTOCOL_STREAM = 0x1, - PROXY2_PROTOCOL_DGRAM = 0x2 -}; - -/** PROXYv2 protocol header section */ -struct proxy2_header { - uint8_t signature[sizeof(PROXY2_SIGNATURE)]; - uint8_t version_command; - uint8_t family_protocol; - uint16_t length; /**< Length of the address section */ -}; - -/** PROXYv2 additional information in Type-Length-Value (TLV) format. */ -struct proxy2_tlv { - uint8_t type; - uint8_t length_hi; - uint8_t length_lo; - uint8_t value[]; -}; - -/** PROXYv2 protocol address section */ -union proxy2_address { - struct { - uint32_t src_addr; - uint32_t dst_addr; - uint16_t src_port; - uint16_t dst_port; - } ipv4_addr; - struct { - uint8_t src_addr[PROXY2_IP6_ADDR_SIZE]; - uint8_t dst_addr[PROXY2_IP6_ADDR_SIZE]; - uint16_t src_port; - uint16_t dst_port; - } ipv6_addr; - struct { - uint8_t src_addr[PROXY2_UNIX_ADDR_SIZE]; - uint8_t dst_addr[PROXY2_UNIX_ADDR_SIZE]; - } unix_addr; -}; - - -/** Gets protocol version from the specified PROXYv2 header. */ -static inline unsigned char proxy2_header_version(const struct proxy2_header* h) -{ - return (h->version_command & 0xF0) >> 4; -} - -/** Gets command from the specified PROXYv2 header. */ -static inline enum proxy2_command proxy2_header_command(const struct proxy2_header *h) -{ - return h->version_command & 0x0F; -} - -/** Gets address family from the specified PROXYv2 header. */ -static inline enum proxy2_family proxy2_header_family(const struct proxy2_header *h) -{ - return (h->family_protocol & 0xF0) >> 4; -} - -/** Gets transport protocol from the specified PROXYv2 header. */ -static inline enum proxy2_family proxy2_header_protocol(const struct proxy2_header *h) -{ - return h->family_protocol & 0x0F; -} - -static inline union proxy2_address *proxy2_get_address(const struct proxy2_header *h) -{ - return (union proxy2_address *)((uint8_t *)h + sizeof(struct proxy2_header)); -} - -static inline struct proxy2_tlv *get_tlvs(const struct proxy2_header *h, size_t addr_len) -{ - return (struct proxy2_tlv *)((uint8_t *)proxy2_get_address(h) + addr_len); -} - -/** Gets the length of the TLV's `value` attribute. */ -static inline uint16_t proxy2_tlv_length(const struct proxy2_tlv *tlv) -{ - return ((uint16_t) tlv->length_hi << 16) | tlv->length_lo; -} - -static inline bool has_tlv(const struct proxy2_header *h, - const struct proxy2_tlv *tlv) -{ - uint64_t addr_length = ntohs(h->length); - ptrdiff_t hdr_len = sizeof(struct proxy2_header) + addr_length; - - uint8_t *tlv_hdr_end = (uint8_t *)tlv + sizeof(struct proxy2_tlv); - ptrdiff_t distance = tlv_hdr_end - (uint8_t *)h; - if (hdr_len < distance) - return false; - - uint8_t *tlv_end = tlv_hdr_end + proxy2_tlv_length(tlv); - distance = tlv_end - (uint8_t *)h; - return hdr_len >= distance; -} - -static inline void next_tlv(struct proxy2_tlv **tlv) -{ - uint8_t *next = ((uint8_t *)*tlv + sizeof(struct proxy2_tlv) + proxy2_tlv_length(*tlv)); - *tlv = (struct proxy2_tlv *)next; -} - - -bool proxy_allowed(const struct sockaddr *saddr) -{ - union kr_in_addr addr; - trie_t *trie; - size_t addr_size; - switch (saddr->sa_family) { - case AF_INET: - if (the_network->proxy_all4) - return true; - - trie = the_network->proxy_addrs4; - addr_size = sizeof(addr.ip4); - addr.ip4 = ((struct sockaddr_in *)saddr)->sin_addr; - break; - case AF_INET6: - if (the_network->proxy_all6) - return true; - - trie = the_network->proxy_addrs6; - addr_size = sizeof(addr.ip6); - addr.ip6 = ((struct sockaddr_in6 *)saddr)->sin6_addr; - break; - default: - kr_assert(false); // Only IPv4 and IPv6 proxy addresses supported - return false; - } - - trie_val_t *val; - int ret = trie_get_leq(trie, (char *)&addr, addr_size, &val); - if (ret != kr_ok() && ret != 1) - return false; - - kr_assert(val); - const struct net_proxy_data *found = *val; - kr_assert(found); - return kr_bitcmp((char *)&addr, (char *)&found->addr, found->netmask) == 0; -} - -ssize_t proxy_process_header(struct proxy_result *out, - const void *buf, const ssize_t nread) -{ - if (!buf) - return kr_error(EINVAL); - - const struct proxy2_header *hdr = (struct proxy2_header *)buf; - - uint64_t content_length = ntohs(hdr->length); - ssize_t hdr_len = sizeof(struct proxy2_header) + content_length; - - /* PROXYv2 requires the header to be received all at once */ - if (nread < hdr_len) { - return kr_error(KNOT_EMALF); - } - - unsigned char version = proxy2_header_version(hdr); - if (version != 2) { - /* Version MUST be 2 for PROXYv2 protocol */ - return kr_error(KNOT_EMALF); - } - - enum proxy2_command command = proxy2_header_command(hdr); - if (command == PROXY2_CMD_LOCAL) { - /* Addresses for LOCAL are to be discarded */ - *out = (struct proxy_result){ .command = PROXY2_CMD_LOCAL }; - goto fill_wirebuf; - } - - if (command != PROXY2_CMD_PROXY) { - /* PROXYv2 prohibits values other than LOCAL and PROXY */ - return kr_error(KNOT_EMALF); - } - - *out = (struct proxy_result){ .command = PROXY2_CMD_PROXY }; - - /* Parse flags */ - enum proxy2_family family = proxy2_header_family(hdr); - switch(family) { - case PROXY2_AF_UNSPEC: - case PROXY2_AF_UNIX: - /* UNIX is unsupported, fall back to UNSPEC */ - out->family = AF_UNSPEC; - break; - case PROXY2_AF_INET: - out->family = AF_INET; - break; - case PROXY2_AF_INET6: - out->family = AF_INET6; - break; - default: - /* PROXYv2 prohibits other values */ - return kr_error(KNOT_EMALF); - } - - enum proxy2_family protocol = proxy2_header_protocol(hdr); - switch (protocol) { - case PROXY2_PROTOCOL_DGRAM: - out->protocol = SOCK_DGRAM; - break; - case PROXY2_PROTOCOL_STREAM: - out->protocol = SOCK_STREAM; - break; - default: - /* PROXYv2 prohibits other values */ - return kr_error(KNOT_EMALF); - } - - /* Parse addresses */ - union proxy2_address* addr = proxy2_get_address(hdr); - size_t addr_length = 0; - switch(out->family) { - case AF_INET: - addr_length = sizeof(addr->ipv4_addr); - if (content_length < addr_length) - return kr_error(KNOT_EMALF); - - out->src_addr.ip4 = (struct sockaddr_in){ - .sin_family = AF_INET, - .sin_addr = { .s_addr = addr->ipv4_addr.src_addr }, - .sin_port = addr->ipv4_addr.src_port, - }; - out->dst_addr.ip4 = (struct sockaddr_in){ - .sin_family = AF_INET, - .sin_addr = { .s_addr = addr->ipv4_addr.dst_addr }, - .sin_port = addr->ipv4_addr.dst_port, - }; - break; - case AF_INET6: - addr_length = sizeof(addr->ipv6_addr); - if (content_length < addr_length) - return kr_error(KNOT_EMALF); - - out->src_addr.ip6 = (struct sockaddr_in6){ - .sin6_family = AF_INET6, - .sin6_port = addr->ipv6_addr.src_port - }; - memcpy( - &out->src_addr.ip6.sin6_addr.s6_addr, - &addr->ipv6_addr.src_addr, - sizeof(out->src_addr.ip6.sin6_addr.s6_addr)); - out->dst_addr.ip6 = (struct sockaddr_in6){ - .sin6_family = AF_INET6, - .sin6_port = addr->ipv6_addr.dst_port - }; - memcpy( - &out->dst_addr.ip6.sin6_addr.s6_addr, - &addr->ipv6_addr.dst_addr, - sizeof(out->dst_addr.ip6.sin6_addr.s6_addr)); - break; - } - - /* Process additional information */ - for (struct proxy2_tlv *tlv = get_tlvs(hdr, addr_length); has_tlv(hdr, tlv); next_tlv(&tlv)) { - switch (tlv->type) { - case TLV_TYPE_SSL: - out->has_tls = true; - break; - /* TODO: add more TLV types if needed */ - } - } - -fill_wirebuf: - return hdr_len; -} diff --git a/daemon/proxyv2.h b/daemon/proxyv2.h deleted file mode 100644 index a21f14b1e..000000000 --- a/daemon/proxyv2.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include - -#include "lib/utils.h" - -extern const char PROXY2_SIGNATURE[12]; - -#define PROXY2_MIN_SIZE 16 - -enum proxy2_command { - PROXY2_CMD_LOCAL = 0x0, - PROXY2_CMD_PROXY = 0x1 -}; - -/** Parsed result of the PROXY protocol */ -struct proxy_result { - /** Proxy command - PROXY or LOCAL. */ - enum proxy2_command command; - /** Address family from netinet library (e.g. AF_INET6). */ - int family; - /** Protocol type from socket library (e.g. SOCK_STREAM). */ - int protocol; - /** Parsed source address and port. */ - union kr_sockaddr src_addr; - /** Parsed destination address and port. */ - union kr_sockaddr dst_addr; - /** `true` = client has used TLS with the proxy. If TLS padding is - * enabled, it will be used even if the communication between kresd and - * the proxy is unencrypted. */ - bool has_tls : 1; -}; - -/** Checks for a PROXY protocol version 2 signature in the specified buffer. */ -static inline bool proxy_header_present(const void* buf, const ssize_t nread) -{ - return nread >= PROXY2_MIN_SIZE && - memcmp(buf, PROXY2_SIGNATURE, sizeof(PROXY2_SIGNATURE)) == 0; -} - -/** Checks whether the use of PROXYv2 protocol is allowed for the specified - * address. */ -bool proxy_allowed(const struct sockaddr *saddr); - -/** Parses the PROXYv2 header from buf of size nread and writes the result into - * out. The function assumes that the PROXYv2 signature is present - * and has been already checked by the caller (like `udp_recv` or `tcp_recv`). */ -ssize_t proxy_process_header(struct proxy_result *out, - const void *buf, ssize_t nread); diff --git a/daemon/proxyv2.test/deckard.yaml b/daemon/proxyv2.test/deckard.yaml deleted file mode 100644 index 8eb2fa647..000000000 --- a/daemon/proxyv2.test/deckard.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -programs: - - name: dnsdist - binary: dnsdist - additional: - - --verbose - - --supervised - - --config - - dnsdist.conf - ignore_exit_code: True - templates: - - daemon/proxyv2.test/dnsdist_config.j2 - configs: - - dnsdist.conf - - name: kresd - binary: kresd - additional: - - --noninteractive - templates: - - daemon/proxyv2.test/kresd_config.j2 - - tests/integration/hints_zone.j2 - configs: - - config - - hints diff --git a/daemon/proxyv2.test/dnsdist_config.j2 b/daemon/proxyv2.test/dnsdist_config.j2 deleted file mode 100644 index 0bd4a5517..000000000 --- a/daemon/proxyv2.test/dnsdist_config.j2 +++ /dev/null @@ -1,11 +0,0 @@ --- vim:syntax=lua -setLocal('{{SELF_ADDR}}') -setVerboseHealthChecks(true) -setServerPolicy(firstAvailable) - -local server = newServer({ - address="{{PROGRAMS['kresd']['address']}}", - useProxyProtocol=true, - checkName="example.cz." -}) -server:setUp() diff --git a/daemon/proxyv2.test/kresd_config.j2 b/daemon/proxyv2.test/kresd_config.j2 deleted file mode 100644 index e7cbf63a8..000000000 --- a/daemon/proxyv2.test/kresd_config.j2 +++ /dev/null @@ -1,63 +0,0 @@ --- SPDX-License-Identifier: GPL-3.0-or-later -{% raw %} -modules.load('view < policy') -view:addr("127.127.0.0", policy.suffix(policy.DENY_MSG("addr 127.127.0.0 matched com"),{"\3com\0"})) --- policy.add(policy.all(policy.FORWARD('1.2.3.4'))) - --- make sure DNSSEC is turned off for tests -trust_anchors.remove('.') - --- Disable RFC5011 TA update -if ta_update then - modules.unload('ta_update') -end - --- Disable RFC8145 signaling, scenario doesn't provide expected answers -if ta_signal_query then - modules.unload('ta_signal_query') -end - --- Disable RFC8109 priming, scenario doesn't provide expected answers -if priming then - modules.unload('priming') -end - --- Disable this module because it make one priming query -if detect_time_skew then - modules.unload('detect_time_skew') -end - -_hint_root_file('hints') -cache.size = 2*MB -log_level('debug') -{% endraw %} - --- Allow PROXYv2 from dnsdist's address ---net.proxy_allowed("{{PROGRAMS['dnsdist']['address']}}") -net.proxy_allowed("127.127.0.0/16") - -net = { '{{SELF_ADDR}}' } - -{% if QMIN == "false" %} -option('NO_MINIMIZE', true) -{% else %} -option('NO_MINIMIZE', false) -{% endif %} - - --- Self-checks on globals -assert(help() ~= nil) -assert(worker.id ~= nil) --- Self-checks on facilities -assert(cache.count() == 0) -assert(cache.stats() ~= nil) -assert(cache.backends() ~= nil) -assert(worker.stats() ~= nil) -assert(net.interfaces() ~= nil) --- Self-checks on loaded stuff -assert(net.list()[1].transport.ip == '{{SELF_ADDR}}') -assert(#modules.list() > 0) --- Self-check timers -ev = event.recurrent(1 * sec, function (ev) return 1 end) -event.cancel(ev) -ev = event.after(0, function (ev) return 1 end) diff --git a/daemon/proxyv2.test/proxyv2_valid.rpl b/daemon/proxyv2.test/proxyv2_valid.rpl deleted file mode 100644 index ada8a3767..000000000 --- a/daemon/proxyv2.test/proxyv2_valid.rpl +++ /dev/null @@ -1,72 +0,0 @@ -; SPDX-License-Identifier: GPL-3.0-or-later -; config options - stub-addr: 1.2.3.4 - query-minimization: off -CONFIG_END - -SCENARIO_BEGIN proxyv2:valid test - -RANGE_BEGIN 0 110 - ADDRESS 1.2.3.4 - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR RD RA NOERROR -SECTION QUESTION -example.cz. IN A -SECTION ANSWER -example.cz. IN A 5.6.7.8 -ENTRY_END - -ENTRY_BEGIN -MATCH opcode qtype qname -ADJUST copy_id -REPLY QR RD RA NOERROR -SECTION QUESTION -k.root-servers.net. IN AAAA -SECTION ANSWER -k.root-servers.net. IN AAAA ::1 -ENTRY_END - -RANGE_END - -; query with PROXYv2 header - not blocked -STEP 10 QUERY -ENTRY_BEGIN -ADJUST raw_id -REPLY RD -SECTION QUESTION -example.cz. IN A -ENTRY_END - -STEP 20 CHECK_ANSWER -ENTRY_BEGIN -MATCH flags rcode question answer -REPLY QR RD RA NOERROR -SECTION QUESTION -example.cz. IN A -SECTION ANSWER -example.cz. IN A 5.6.7.8 -ENTRY_END - -; query with PROXYv2 header - blocked by view:addr -; NXDOMAIN expected -STEP 30 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -example.com. IN A -ENTRY_END - -STEP 31 CHECK_ANSWER -ENTRY_BEGIN -MATCH opcode question rcode additional -REPLY QR RD RA AA NXDOMAIN -SECTION QUESTION -example.com. IN A -SECTION ADDITIONAL -explanation.invalid. 10800 IN TXT "addr 127.127.0.0 matched com" -ENTRY_END - -SCENARIO_END diff --git a/daemon/scripting.rst b/daemon/scripting.rst deleted file mode 100644 index 3861fb422..000000000 --- a/daemon/scripting.rst +++ /dev/null @@ -1,398 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _runtime-cfg: - -Run-time reconfiguration -======================== - -Knot Resolver offers several ways to modify its configuration at run-time: - - - Using control socket driven by an external system - - Using Lua program embedded in Resolver's configuration file - -Both ways can also be combined: For example the configuration file can contain -a little Lua function which gathers statistics and returns them in JSON string. -This can be used by an external system which uses control socket to call this -user-defined function and to retrieve its results. - - -.. _control-sockets: - -Control sockets ---------------- -Control socket acts like "an interactive configuration file" so all actions -available in configuration file can be executed interactively using the control -socket. One possible use-case is reconfiguring the resolver instances from -another program, e.g. a maintenance script. - -.. note:: Each instance of Knot Resolver exposes its own control socket. Take - that into account when scripting deployments with - :ref:`systemd-multiple-instances`. - -When Knot Resolver is started using Systemd (see section -`Startup <../gettingstarted-startup.html>`_) it creates a control socket in path -``/run/knot-resolver/control/$ID``. Connection to the socket can be made from -command line using e.g. ``socat``: - -.. code-block:: bash - - $ socat - UNIX-CONNECT:/run/knot-resolver/control/1 - -When successfully connected to a socket, the command line should change to -something like ``>``. Then you can interact with kresd to see configuration or -set a new one. There are some basic commands to start with. - -.. code-block:: lua - - > help() -- shows help - > net.interfaces() -- lists available interfaces - > net.list() -- lists running network services - - -The *direct output* of commands sent over socket is captured and sent back, -which gives you an immediate response on the outcome of your command. -The commands and their output are also logged in ``contrl`` group, -on ``debug`` level if successful or ``warning`` level if failed -(see around :func:`log_level`). - -Control sockets are also a way to enumerate and test running instances, the -list of sockets corresponds to the list of processes, and you can test the -process for liveliness by connecting to the UNIX socket. - -.. function:: map(lua_snippet) - - Executes the provided string as lua code on every running resolver instance - and returns the results as a table. - - Key ``n`` is always present in the returned table and specifies the total - number of instances the command was executed on. The table also contains - results from each instance accessible through keys ``1`` to ``n`` - (inclusive). If any instance returns ``nil``, it is not explicitly part of - the table, but you can detect it by iterating through ``1`` to ``n``. - - .. code-block:: lua - - > map('worker.id') -- return an ID of every active instance - { - '2', - '1', - ['n'] = 2, - } - > map('worker.id == "1" or nil') -- example of `nil` return value - { - [2] = true, - ['n'] = 2, - } - - The order of instances isn't guaranteed or stable. When you need to identify - the instances, you may use ``kluautil.kr_table_pack()`` function to return multiple - values as a table. It uses similar semantics with ``n`` as described above - to allow ``nil`` values. - - .. code-block:: lua - - > map('require("kluautil").kr_table_pack(worker.id, stats.get("answer.total"))') - { - { - '2', - 42, - ['n'] = 2, - }, - { - '1', - 69, - ['n'] = 2, - }, - ['n'] = 2, - } - - If the command fails on any instance, an error is returned and the execution - is in an undefined state (the command might not have been executed on all - instances). When using the ``map()`` function to execute any code that might - fail, your code should be wrapped in `pcall() - `_ to avoid this - issue. - - .. code-block:: lua - - > map('require("kluautil").kr_table_pack(pcall(net.tls, "cert.pem", "key.pem"))') - { - { - true, -- function succeeded - true, -- function return value(s) - ['n'] = 2, - }, - { - false, -- function failed - 'error occurred...', -- the returned error message - ['n'] = 2, - }, - ['n'] = 2, - } - - -Lua scripts ------------ - -As it was mentioned in section :ref:`config-lua-syntax`, Resolver's configuration -file contains program in Lua programming language. This allows you to write -dynamic rules and helps you to avoid repetitive templating that is unavoidable -with static configuration. For example parts of configuration can depend on -:func:`hostname` of the machine: - -.. code-block:: lua - - if hostname() == 'hidden' then - net.listen(net.eth0, 5353) - else - net.listen('127.0.0.1') - net.listen(net.eth1.addr[1]) - end - -Another example would show how it is possible to bind to all interfaces, using -iteration. - -.. code-block:: lua - - for name, addr_list in pairs(net.interfaces()) do - net.listen(addr_list) - end - -.. tip:: Some users observed a considerable, close to 100%, performance gain in - Docker containers when they bound the daemon to a single interface:ip - address pair. One may expand the aforementioned example with browsing - available addresses as: - - .. code-block:: lua - - addrpref = env.EXPECTED_ADDR_PREFIX - for k, v in pairs(addr_list["addr"]) do - if string.sub(v,1,string.len(addrpref)) == addrpref then - net.listen(v) - ... - -You can also use third-party Lua libraries (available for example through -LuaRocks_) as on this example to download cache from parent, -to avoid cold-cache start. - -.. code-block:: lua - - local http = require('socket.http') - local ltn12 = require('ltn12') - - local cache_size = 100*MB - local cache_path = '/var/cache/knot-resolver' - cache.open(cache_size, 'lmdb://' .. cache_path) - if cache.count() == 0 then - cache.close() - -- download cache from parent - http.request { - url = 'http://parent/data.mdb', - sink = ltn12.sink.file(io.open(cache_path .. '/data.mdb', 'w')) - } - -- reopen cache with 100M limit - cache.open(cache_size, 'lmdb://' .. cache_path) - end - -Helper functions -^^^^^^^^^^^^^^^^ -Following built-in functions are useful for scripting: - -.. envvar:: env (table) - - Retrieve environment variables. - - Example: - - .. code-block:: lua - - env.USER -- equivalent to $USER in shell - -.. function:: fromjson(JSONstring) - - :return: Lua representation of data in JSON string. - - Example: - - .. code-block:: lua - - > fromjson('{"key1": "value1", "key2": {"subkey1": 1, "subkey2": 2}}') - [key1] => value1 - [key2] => { - [subkey1] => 1 - [subkey2] => 2 - } - - -.. function:: hostname([fqdn]) - - :return: Machine hostname. - - If called with a parameter, it will set kresd's internal - hostname. If called without a parameter, it will return kresd's - internal hostname, or the system's POSIX hostname (see - gethostname(2)) if kresd's internal hostname is unset. - - This also affects ephemeral (self-signed) certificates generated by kresd - for DNS over TLS. - -.. function:: package_version() - - :return: Current package version as string. - - Example: - - .. code-block:: lua - - > package_version() - 2.1.1 - -.. function:: resolve(name, type[, class = kres.class.IN, options = {}, finish = nil, init = nil]) - - :param string name: Query name (e.g. 'com.') - :param number type: Query type (e.g. ``kres.type.NS``) - :param number class: Query class *(optional)* (e.g. ``kres.class.IN``) - :param strings options: Resolution options (see :c:type:`kr_qflags`) - :param function finish: Callback to be executed when resolution completes (e.g. `function cb (pkt, req) end`). The callback gets a packet containing the final answer and doesn't have to return anything. - :param function init: Callback to be executed with the :c:type:`kr_request` before resolution starts. - :return: boolean, ``true`` if resolution was started - - The function can also be executed with a table of arguments instead. This is - useful if you'd like to skip some arguments, for example: - - .. code-block:: lua - - resolve { - name = 'example.com', - type = kres.type.AAAA, - init = function (req) - end, - } - - Example: - - .. code-block:: lua - - -- Send query for root DNSKEY, ignore cache - resolve('.', kres.type.DNSKEY, kres.class.IN, 'NO_CACHE') - - -- Query for AAAA record - resolve('example.com', kres.type.AAAA, kres.class.IN, 0, - function (pkt, req) - -- Check answer RCODE - if pkt:rcode() == kres.rcode.NOERROR then - -- Print matching records - local records = pkt:section(kres.section.ANSWER) - for i = 1, #records do - local rr = records[i] - if rr.type == kres.type.AAAA then - print ('record:', kres.rr2str(rr)) - end - end - else - print ('rcode: ', pkt:rcode()) - end - end) - - -.. function:: tojson(object) - - :return: JSON text representation of `object`. - - Example: - - .. code-block:: lua - - > testtable = { key1 = "value1", "key2" = { subkey1 = 1, subkey2 = 2 } } - > tojson(testtable) - {"key1":"value1","key2":{"subkey1":1,"subkey2":2}} - - -.. _async-events: - -Asynchronous events -------------------- - -Lua language used in configuration file allows you to script actions upon -various events, for example publish statistics each minute. Following example -uses built-in function :func:`event.recurrent()` which calls user-supplied -anonymous function: - -.. code-block:: lua - - local ffi = require('ffi') - modules.load('stats') - - -- log statistics every second - local stat_id = event.recurrent(1 * second, function(evid) - log_info(ffi.C.LOG_GRP_STATISTICS, table_print(stats.list())) - end) - - -- stop printing statistics after first minute - event.after(1 * minute, function(evid) - event.cancel(stat_id) - end) - - -Note that each scheduled event is identified by a number valid for the duration -of the event, you may use it to cancel the event at any time. - -To persist state between two invocations of a function Lua uses concept called -closures_. In the following example function ``speed_monitor()`` is a closure -function, which provides persistent variable called ``previous``. - -.. code-block:: lua - - local ffi = require('ffi') - modules.load('stats') - - -- make a closure, encapsulating counter - function speed_monitor() - local previous = stats.list() - -- monitoring function - return function(evid) - local now = stats.list() - local total_increment = now['answer.total'] - previous['answer.total'] - local slow_increment = now['answer.slow'] - previous['answer.slow'] - if slow_increment / total_increment > 0.05 then - log_warn(ffi.C.LOG_GRP_STATISTICS, 'WARNING! More than 5 %% of queries was slow!') - end - previous = now -- store current value in closure - end - end - - -- monitor every minute - local monitor_id = event.recurrent(1 * minute, speed_monitor()) - -Another type of actionable event is activity on a file descriptor. This allows -you to embed other event loops or monitor open files and then fire a callback -when an activity is detected. This allows you to build persistent services -like monitoring probes that cooperate well with the daemon internal operations. -See :func:`event.socket()`. - -Filesystem watchers are possible with :func:`worker.coroutine()` and cqueues_, -see the cqueues documentation for more information. Here is an simple example: - -.. code-block:: lua - - local notify = require('cqueues.notify') - local watcher = notify.opendir('/etc') - watcher:add('hosts') - - -- Watch changes to /etc/hosts - worker.coroutine(function () - for flags, name in watcher:changes() do - for flag in notify.flags(flags) do - -- print information about the modified file - print(name, notify[flag]) - end - end - end) - -.. include:: ../../daemon/bindings/event.rst - -.. include:: ../../modules/etcd/README.rst - -.. _closures: https://www.lua.org/pil/6.1.html -.. _cqueues: https://25thandclement.com/~william/projects/cqueues.html -.. _LuaRocks: https://luarocks.org/ diff --git a/daemon/session2.c b/daemon/session2.c deleted file mode 100644 index c3d5765a9..000000000 --- a/daemon/session2.c +++ /dev/null @@ -1,1654 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "kresconfig.h" - -#include -#include - -#if ENABLE_XDP - #include -#endif - -#include "lib/log.h" -#include "lib/utils.h" -#include "daemon/io.h" -#include "daemon/udp_queue.h" -#include "daemon/worker.h" - -#include "daemon/session2.h" - - -#define VERBOSE_LOG(session, fmt, ...) do {\ - if (kr_log_is_debug(PROTOLAYER, NULL)) {\ - const char *sess_dir = (session)->outgoing ? "out" : "in";\ - kr_log_debug(PROTOLAYER, "[%08X] (%s) " fmt, \ - (session)->log_id, sess_dir, __VA_ARGS__);\ - }\ -} while (0);\ - -static uint32_t next_log_id = 1; - -struct protolayer_globals protolayer_globals[PROTOLAYER_PROTOCOL_COUNT] = {{0}}; - - -static const enum protolayer_protocol protolayer_grp_doudp[] = { - PROTOLAYER_PROTOCOL_UDP, - PROTOLAYER_PROTOCOL_DNS_DGRAM, - PROTOLAYER_PROTOCOL_NULL -}; - -static const enum protolayer_protocol protolayer_grp_dotcp[] = { - PROTOLAYER_PROTOCOL_TCP, - PROTOLAYER_PROTOCOL_DNS_MULTI_STREAM, - PROTOLAYER_PROTOCOL_NULL -}; - -static const enum protolayer_protocol protolayer_grp_dot[] = { - PROTOLAYER_PROTOCOL_TCP, - PROTOLAYER_PROTOCOL_TLS, - PROTOLAYER_PROTOCOL_DNS_MULTI_STREAM, - PROTOLAYER_PROTOCOL_NULL -}; - -static const enum protolayer_protocol protolayer_grp_doh[] = { - PROTOLAYER_PROTOCOL_TCP, - PROTOLAYER_PROTOCOL_TLS, - PROTOLAYER_PROTOCOL_HTTP, - PROTOLAYER_PROTOCOL_DNS_UNSIZED_STREAM, - PROTOLAYER_PROTOCOL_NULL -}; - -/** Sequences of layers, mapped by `enum protolayer_grp`. - * - * To define a new group, add a new entry in the `PROTOLAYER_GRP_MAP` macro and - * create a new static `protolayer_grp_*` array above, similarly to the already - * existing ones. Each array must end with `PROTOLAYER_GRP_NULL`, to indicate - * the end of the list of protocol layers. The array name's suffix must be the - * one defined as *Variable name* (2nd parameter) in the `PROTOLAYER_GRP_MAP` - * macro. */ -static const enum protolayer_protocol *protolayer_grps[PROTOLAYER_GRP_COUNT] = { -#define XX(cid, vid, name) [PROTOLAYER_GRP_ ## cid] = protolayer_grp_ ## vid, - PROTOLAYER_GRP_MAP(XX) -#undef XX -}; - - -const char *protolayer_protocol_name(enum protolayer_protocol p) -{ - switch (p) { - case PROTOLAYER_PROTOCOL_NULL: - return "(null)"; -#define XX(cid) case PROTOLAYER_PROTOCOL_ ## cid: \ - return #cid; - PROTOLAYER_PROTOCOL_MAP(XX) -#undef XX - default: - return "(invalid)"; - } -} - -const char *protolayer_grp_name(enum protolayer_grp g) -{ - switch (g) { - case PROTOLAYER_GRP_NULL: - return "(null)"; -#define XX(cid, vid, name) case PROTOLAYER_GRP_ ## cid: \ - return (name); - PROTOLAYER_GRP_MAP(XX) -#undef XX - default: - return "(invalid)"; - } -} - -const char *protolayer_event_name(enum protolayer_event_type e) -{ - switch (e) { - case PROTOLAYER_EVENT_NULL: - return "(null)"; -#define XX(cid) case PROTOLAYER_EVENT_ ## cid: \ - return #cid; - PROTOLAYER_EVENT_MAP(XX) -#undef XX - default: - return "(invalid)"; - } -} - -const char *protolayer_payload_name(enum protolayer_payload_type p) -{ - switch (p) { - case PROTOLAYER_PAYLOAD_NULL: - return "(null)"; -#define XX(cid, name) case PROTOLAYER_PAYLOAD_ ## cid: \ - return (name); - PROTOLAYER_PAYLOAD_MAP(XX) -#undef XX - default: - return "(invalid)"; - } -} - - -/* Forward decls. */ -static int session2_transport_pushv(struct session2 *s, - struct iovec *iov, int iovcnt, - bool iov_short_lived, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton); -static inline int session2_transport_push(struct session2 *s, - char *buf, size_t buf_len, - bool buf_short_lived, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton); -static int session2_transport_event(struct session2 *s, - enum protolayer_event_type event, - void *baton); - -static size_t iovecs_size(const struct iovec *iov, int cnt) -{ - size_t sum = 0; - for (int i = 0; i < cnt; i++) { - sum += iov[i].iov_len; - } - return sum; -} - -static size_t iovecs_copy(void *dest, const struct iovec *iov, int cnt, - size_t max_len) -{ - const size_t pld_size = iovecs_size(iov, cnt); - const size_t copy_size = MIN(max_len, pld_size); - char *cur = dest; - size_t remaining = copy_size; - for (int i = 0; i < cnt && remaining; i++) { - size_t l = iov[i].iov_len; - size_t to_copy = MIN(l, remaining); - memcpy(cur, iov[i].iov_base, to_copy); - remaining -= l; - cur += l; - } - - kr_assert(remaining == 0 && (cur - (char *)dest) == copy_size); - return copy_size; -} - -size_t protolayer_payload_size(const struct protolayer_payload *payload) -{ - switch (payload->type) { - case PROTOLAYER_PAYLOAD_BUFFER: - return payload->buffer.len; - case PROTOLAYER_PAYLOAD_IOVEC: - return iovecs_size(payload->iovec.iov, payload->iovec.cnt); - case PROTOLAYER_PAYLOAD_WIRE_BUF: - return wire_buf_data_length(payload->wire_buf); - case PROTOLAYER_PAYLOAD_NULL: - return 0; - default: - kr_assert(false && "Invalid payload type"); - return 0; - } -} - -size_t protolayer_payload_copy(void *dest, - const struct protolayer_payload *payload, - size_t max_len) -{ - const size_t pld_size = protolayer_payload_size(payload); - const size_t copy_size = MIN(max_len, pld_size); - - if (payload->type == PROTOLAYER_PAYLOAD_BUFFER) { - memcpy(dest, payload->buffer.buf, copy_size); - return copy_size; - } else if (payload->type == PROTOLAYER_PAYLOAD_IOVEC) { - char *cur = dest; - size_t remaining = copy_size; - for (int i = 0; i < payload->iovec.cnt && remaining; i++) { - size_t l = payload->iovec.iov[i].iov_len; - size_t to_copy = MIN(l, remaining); - memcpy(cur, payload->iovec.iov[i].iov_base, to_copy); - remaining -= l; - cur += l; - } - - kr_assert(remaining == 0 && (cur - (char *)dest) == copy_size); - return copy_size; - } else if (payload->type == PROTOLAYER_PAYLOAD_WIRE_BUF) { - memcpy(dest, wire_buf_data(payload->wire_buf), copy_size); - return copy_size; - } else if(!payload->type) { - return 0; - } else { - kr_assert(false && "Invalid payload type"); - return 0; - } -} - -struct protolayer_payload protolayer_as_buffer(const struct protolayer_payload *payload) -{ - if (payload->type == PROTOLAYER_PAYLOAD_BUFFER) - return *payload; - - if (payload->type == PROTOLAYER_PAYLOAD_WIRE_BUF) { - struct protolayer_payload new_payload = { - .type = PROTOLAYER_PAYLOAD_BUFFER, - .short_lived = payload->short_lived, - .ttl = payload->ttl, - .buffer = { - .buf = wire_buf_data(payload->wire_buf), - .len = wire_buf_data_length(payload->wire_buf) - } - }; - wire_buf_reset(payload->wire_buf); - return new_payload; - } - - kr_assert(false && "Unsupported payload type."); - return (struct protolayer_payload){ - .type = PROTOLAYER_PAYLOAD_NULL - }; -} - -size_t protolayer_queue_count_payload(const protolayer_iter_ctx_queue_t *queue) -{ - if (!queue || queue_len(*queue) == 0) - return 0; - - size_t sum = 0; - - /* We're only reading from the queue, but we need to discard the - * `const` so that `queue_it_begin()` accepts it. As long as - * `queue_it_` operations do not write into the queue (which they do - * not, checked at the time of writing), we should be safely in the - * defined behavior territory. */ - queue_it_t(struct protolayer_iter_ctx *) it = - queue_it_begin(*(protolayer_iter_ctx_queue_t *)queue); - for (; !queue_it_finished(it); queue_it_next(it)) { - struct protolayer_iter_ctx *ctx = queue_it_val(it); - sum += protolayer_payload_size(&ctx->payload); - } - - return sum; -} - -bool protolayer_queue_has_payload(const protolayer_iter_ctx_queue_t *queue) -{ - if (!queue || queue_len(*queue) == 0) - return false; - - /* We're only reading from the queue, but we need to discard the - * `const` so that `queue_it_begin()` accepts it. As long as - * `queue_it_` operations do not write into the queue (which they do - * not, checked at the time of writing), we should be safely in the - * defined behavior territory. */ - queue_it_t(struct protolayer_iter_ctx *) it = - queue_it_begin(*(protolayer_iter_ctx_queue_t *)queue); - for (; !queue_it_finished(it); queue_it_next(it)) { - struct protolayer_iter_ctx *ctx = queue_it_val(it); - if (protolayer_payload_size(&ctx->payload)) - return true; - } - - return false; -} - - -/** Gets layer-specific session data for the layer with the specified index - * from the manager. */ -static inline struct protolayer_data *protolayer_sess_data_get( - struct protolayer_manager *m, size_t layer_ix) -{ - if (kr_fails_assert(layer_ix < m->num_layers)) - return NULL; - - /* See doc comment of `struct protolayer_manager::data` */ - const ssize_t *offsets = (ssize_t *)m->data; - char *pl_data_beg = &m->data[2 * m->num_layers * sizeof(*offsets)]; - ssize_t offset = offsets[layer_ix]; - - if (offset < 0) /* No session data for this layer */ - return NULL; - - return (struct protolayer_data *)(pl_data_beg + offset); -} - -/** Gets layer-specific iteration data for the layer with the specified index - * from the context. */ -static inline struct protolayer_data *protolayer_iter_data_get( - struct protolayer_iter_ctx *ctx, size_t layer_ix) -{ - struct protolayer_manager *m = ctx->manager; - if (kr_fails_assert(layer_ix < m->num_layers)) - return NULL; - - /* See doc comment of `struct protolayer_manager::data` */ - const ssize_t *offsets = (ssize_t *)&m->data[m->num_layers * sizeof(*offsets)]; - ssize_t offset = offsets[layer_ix]; - - if (offset < 0) /* No iteration data for this layer */ - return NULL; - - return (struct protolayer_data *)(ctx->data + offset); -} - -static inline ssize_t protolayer_manager_get_protocol( - struct protolayer_manager *m, enum protolayer_protocol protocol) -{ - for (ssize_t i = 0; i < m->num_layers; i++) { - enum protolayer_protocol found = protolayer_grps[m->grp][i]; - if (protocol == found) - return i; - } - - return -1; -} - -static inline bool protolayer_iter_ctx_is_last(struct protolayer_iter_ctx *ctx) -{ - unsigned int last_ix = (ctx->direction == PROTOLAYER_UNWRAP) - ? ctx->manager->num_layers - 1 - : 0; - return ctx->layer_ix == last_ix; -} - -static inline void protolayer_iter_ctx_next(struct protolayer_iter_ctx *ctx) -{ - if (ctx->direction == PROTOLAYER_UNWRAP) - ctx->layer_ix++; - else - ctx->layer_ix--; -} - -static inline const char *layer_name(enum protolayer_grp grp, ssize_t layer_ix) -{ - if (grp >= PROTOLAYER_GRP_COUNT) - return "(invalid)"; - enum protolayer_protocol p = protolayer_grps[grp][layer_ix]; - return protolayer_protocol_name(p); -} - -static inline const char *layer_name_ctx(struct protolayer_iter_ctx *ctx) -{ - return layer_name(ctx->manager->grp, ctx->layer_ix); -} - -static int protolayer_iter_ctx_finish(struct protolayer_iter_ctx *ctx, int ret) -{ - struct session2 *session = ctx->manager->session; - - struct protolayer_manager *m = ctx->manager; - struct protolayer_globals *globals = &protolayer_globals[m->grp]; - for (size_t i = 0; i < m->num_layers; i++) { - struct protolayer_data *d = protolayer_iter_data_get(ctx, i); - if (globals->iter_deinit) - globals->iter_deinit(m, ctx, d); - } - - if (ret) - VERBOSE_LOG(session, "layer context of group '%s' (on %u: %s) ended with return code %d\n", - protolayer_grp_name(ctx->manager->grp), - ctx->layer_ix, layer_name_ctx(ctx), ret); - - if (ctx->status) - VERBOSE_LOG(session, "iteration of group '%s' (on %u: %s) ended with status %d\n", - protolayer_grp_name(ctx->manager->grp), - ctx->layer_ix, layer_name_ctx(ctx), ctx->status); - - if (ctx->finished_cb) - ctx->finished_cb(ret, session, &ctx->comm, - ctx->finished_cb_baton); - - free(ctx->async_buffer); - free(ctx); - - return ret; -} - -static void protolayer_push_finished(int status, struct session2 *s, const struct comm_info *comm, void *baton) -{ - struct protolayer_iter_ctx *ctx = baton; - ctx->status = status; - protolayer_iter_ctx_finish(ctx, PROTOLAYER_RET_NORMAL); -} - -/** Pushes the specified protocol layer's payload to the session's transport. */ -static int protolayer_push(struct protolayer_iter_ctx *ctx) -{ - struct session2 *session = ctx->manager->session; - - if (ctx->payload.type == PROTOLAYER_PAYLOAD_WIRE_BUF) { - ctx->payload = protolayer_as_buffer(&ctx->payload); - } - - if (kr_log_is_debug(PROTOLAYER, NULL)) { - VERBOSE_LOG(session, "Pushing %s\n", - protolayer_payload_name(ctx->payload.type)); - } - - if (ctx->payload.type == PROTOLAYER_PAYLOAD_BUFFER) { - session2_transport_push(session, - ctx->payload.buffer.buf, ctx->payload.buffer.len, - ctx->payload.short_lived, - &ctx->comm, protolayer_push_finished, ctx); - } else if (ctx->payload.type == PROTOLAYER_PAYLOAD_IOVEC) { - session2_transport_pushv(session, - ctx->payload.iovec.iov, ctx->payload.iovec.cnt, - ctx->payload.short_lived, - &ctx->comm, protolayer_push_finished, ctx); - } else { - kr_assert(false && "Invalid payload type"); - return kr_error(EINVAL); - } - - return PROTOLAYER_RET_ASYNC; -} - -static void protolayer_ensure_long_lived(struct protolayer_iter_ctx *ctx) -{ - if (!ctx->payload.short_lived) - return; - - size_t buf_len = protolayer_payload_size(&ctx->payload); - if (kr_fails_assert(buf_len)) - return; - - void *buf = malloc(buf_len); - kr_require(buf); - protolayer_payload_copy(buf, &ctx->payload, buf_len); - - ctx->async_buffer = buf; - ctx->payload = protolayer_buffer(buf, buf_len, false); -} - -/** Processes as many layers as possible synchronously, returning when either - * a layer has gone asynchronous, or when the whole sequence has finished. - * - * May be called multiple times on the same `ctx` to continue processing - * after an asynchronous operation. */ -static int protolayer_step(struct protolayer_iter_ctx *ctx) -{ - while (true) { - if (kr_fails_assert(ctx->manager->grp < PROTOLAYER_GRP_COUNT)) - return kr_error(EFAULT); - - enum protolayer_protocol protocol = protolayer_grps[ctx->manager->grp][ctx->layer_ix]; - struct protolayer_globals *globals = &protolayer_globals[protocol]; - - ctx->async_mode = false; - ctx->status = 0; - ctx->action = PROTOLAYER_ITER_ACTION_NULL; - - protolayer_iter_cb cb = (ctx->direction == PROTOLAYER_UNWRAP) - ? globals->unwrap : globals->wrap; - - if (ctx->manager->session->closing) { - return protolayer_iter_ctx_finish( - ctx, kr_error(ECANCELED)); - } - - if (cb) { - struct protolayer_data *sess_data = protolayer_sess_data_get( - ctx->manager, ctx->layer_ix); - struct protolayer_data *iter_data = protolayer_iter_data_get( - ctx, ctx->layer_ix); - enum protolayer_iter_cb_result result = cb(sess_data, iter_data, ctx); - if (kr_fails_assert(result == PROTOLAYER_ITER_CB_RESULT_MAGIC)) { - /* Callback did not use a continuation function to return. */ - return protolayer_iter_ctx_finish(ctx, kr_error(EINVAL)); - } - } else { - ctx->action = PROTOLAYER_ITER_ACTION_CONTINUE; - } - - - if (!ctx->action) { - /* Next step is from a callback */ - ctx->async_mode = true; - protolayer_ensure_long_lived(ctx); - return PROTOLAYER_RET_ASYNC; - } - - if (ctx->action == PROTOLAYER_ITER_ACTION_BREAK) { - return protolayer_iter_ctx_finish( - ctx, PROTOLAYER_RET_NORMAL); - } - - if (kr_fails_assert(ctx->status == 0)) { - /* Status should be zero without a BREAK. */ - return protolayer_iter_ctx_finish(ctx, kr_error(ECANCELED)); - } - - if (ctx->action == PROTOLAYER_ITER_ACTION_CONTINUE) { - if (protolayer_iter_ctx_is_last(ctx)) { - if (ctx->direction == PROTOLAYER_WRAP) - return protolayer_push(ctx); - - return protolayer_iter_ctx_finish( - ctx, PROTOLAYER_RET_NORMAL); - } - - protolayer_iter_ctx_next(ctx); - continue; - } - - /* Should never get here */ - kr_assert(false && "Invalid layer callback action"); - return protolayer_iter_ctx_finish(ctx, kr_error(EINVAL)); - } -} - -/** Submits the specified buffer to the sequence of layers represented by the - * specified protolayer manager. The sequence will be processed in the - * specified direction. - * - * Returns PROTOLAYER_RET_NORMAL when all layers have finished, - * PROTOLAYER_RET_ASYNC when some layers are asynchronous and waiting for - * continuation, or a negative number for errors (kr_error). */ -static int protolayer_manager_submit( - struct protolayer_manager *manager, - enum protolayer_direction direction, size_t layer_ix, - struct protolayer_payload payload, const struct comm_info *comm, - protolayer_finished_cb cb, void *baton) -{ - if (manager->session->closing) - return kr_error(ECANCELED); - - struct protolayer_iter_ctx *ctx = malloc(manager->cb_ctx_size); - kr_require(ctx); - - VERBOSE_LOG(manager->session, - "%s submitted to grp '%s' in %s direction (%zu: %s)\n", - protolayer_payload_name(payload.type), - protolayer_grp_name(manager->grp), - (direction == PROTOLAYER_UNWRAP) ? "unwrap" : "wrap", - layer_ix, layer_name(manager->grp, layer_ix)); - - *ctx = (struct protolayer_iter_ctx) { - .payload = payload, - .comm = (comm) ? *comm : manager->session->comm, - .direction = direction, - .layer_ix = layer_ix, - .manager = manager, - .finished_cb = cb, - .finished_cb_baton = baton - }; - - for (size_t i = 0; i < manager->num_layers; i++) { - if (kr_fails_assert(ctx->manager->grp < PROTOLAYER_GRP_COUNT)) - return kr_error(EFAULT); - - enum protolayer_protocol p = protolayer_grps[manager->grp][i]; - struct protolayer_globals *globals = &protolayer_globals[p]; - struct protolayer_data *iter_data = protolayer_iter_data_get(ctx, i); - if (iter_data) { - memset(iter_data, 0, globals->iter_size); - iter_data->session = manager->session; - } - - if (globals->iter_init) - globals->iter_init(manager, ctx, iter_data); - } - - return protolayer_step(ctx); -} - -static void *get_init_param(enum protolayer_protocol p, - struct protolayer_data_param *layer_param, - size_t layer_param_count) -{ - if (!layer_param || !layer_param_count) - return NULL; - for (size_t i = 0; i < layer_param_count; i++) { - if (layer_param[i].protocol == p) - return layer_param[i].param; - } - return NULL; -} - -/** Allocates and initializes a new manager. */ -static struct protolayer_manager *protolayer_manager_new( - struct session2 *s, - enum protolayer_grp grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count) -{ - if (kr_fails_assert(s && grp)) - return NULL; - - size_t num_layers = 0; - size_t manager_size = sizeof(struct protolayer_manager); - size_t cb_ctx_size = sizeof(struct protolayer_iter_ctx); - - const enum protolayer_protocol *protocols = protolayer_grps[grp]; - if (kr_fails_assert(protocols)) - return NULL; - const enum protolayer_protocol *p = protocols; - - /* Space for offset index */ - for (; *p; p++) - num_layers++; - if (kr_fails_assert(num_layers)) - return NULL; - - size_t wire_buf_length = 0; - size_t wire_buf_max_length = 0; - ssize_t offsets[2 * num_layers]; - manager_size += sizeof(offsets); - - ssize_t *sess_offsets = offsets; - ssize_t *iter_offsets = &offsets[num_layers]; - - /* Space for layer-specific data, guaranteeing alignment */ - size_t total_sess_data_size = 0; - size_t total_iter_data_size = 0; - for (size_t i = 0; i < num_layers; i++) { - const struct protolayer_globals *g = &protolayer_globals[protocols[i]]; - - sess_offsets[i] = g->sess_size ? total_sess_data_size : -1; - total_sess_data_size += ALIGN_TO(g->sess_size, CPU_STRUCT_ALIGN); - - iter_offsets[i] = g->iter_size ? total_iter_data_size : -1; - total_iter_data_size += ALIGN_TO(g->iter_size, CPU_STRUCT_ALIGN); - - size_t wire_buf_overhead = (g->wire_buf_overhead_cb) - ? g->wire_buf_overhead_cb(s->outgoing) - : g->wire_buf_overhead; - wire_buf_length += wire_buf_overhead; - wire_buf_max_length += MAX(g->wire_buf_max_overhead, wire_buf_overhead); - } - manager_size += total_sess_data_size; - cb_ctx_size += total_iter_data_size; - - /* Allocate and initialize manager */ - struct protolayer_manager *m = calloc(1, manager_size); - kr_require(m); - m->grp = grp; - m->session = s; - m->num_layers = num_layers; - m->cb_ctx_size = cb_ctx_size; - memcpy(m->data, offsets, sizeof(offsets)); - - m->wire_buf_max_length = wire_buf_max_length; - int ret = wire_buf_init(&m->wire_buf, wire_buf_length); - kr_require(!ret); - - /* Initialize the layer's session data */ - for (size_t i = 0; i < num_layers; i++) { - struct protolayer_globals *globals = &protolayer_globals[protocols[i]]; - struct protolayer_data *sess_data = protolayer_sess_data_get(m, i); - if (sess_data) { - memset(sess_data, 0, globals->sess_size); - sess_data->session = s; - } - - void *param = get_init_param(protocols[i], layer_param, layer_param_count); - if (globals->sess_init) - globals->sess_init(m, sess_data, param); - } - - return m; -} - -/** Deinitializes all layer data in the manager and deallocates it. */ -static void protolayer_manager_free(struct protolayer_manager *m) -{ - if (!m) return; - - for (size_t i = 0; i < m->num_layers; i++) { - enum protolayer_protocol p = protolayer_grps[m->grp][i]; - struct protolayer_globals *globals = &protolayer_globals[p]; - if (globals->sess_deinit) { - struct protolayer_data *sess_data = protolayer_sess_data_get(m, i); - globals->sess_deinit(m, sess_data); - } - } - - wire_buf_deinit(&m->wire_buf); - free(m); -} - -enum protolayer_iter_cb_result protolayer_continue(struct protolayer_iter_ctx *ctx) -{ - if (ctx->async_mode) { - protolayer_iter_ctx_next(ctx); - protolayer_step(ctx); - } else { - ctx->action = PROTOLAYER_ITER_ACTION_CONTINUE; - } - return PROTOLAYER_ITER_CB_RESULT_MAGIC; -} - -enum protolayer_iter_cb_result protolayer_break(struct protolayer_iter_ctx *ctx, int status) -{ - ctx->status = status; - if (ctx->async_mode) { - protolayer_iter_ctx_finish(ctx, PROTOLAYER_RET_NORMAL); - } else { - ctx->action = PROTOLAYER_ITER_ACTION_BREAK; - } - return PROTOLAYER_ITER_CB_RESULT_MAGIC; -} - - -int wire_buf_init(struct wire_buf *wb, size_t initial_size) -{ - char *buf = malloc(initial_size); - kr_require(buf); - - *wb = (struct wire_buf){ - .buf = buf, - .size = initial_size - }; - - return kr_ok(); -} - -void wire_buf_deinit(struct wire_buf *wb) -{ - free(wb->buf); -} - -int wire_buf_reserve(struct wire_buf *wb, size_t size) -{ - if (wb->buf && wb->size >= size) - return kr_ok(); - - wb->buf = realloc(wb->buf, size); - kr_require(wb->buf); - wb->size = size; - return kr_ok(); -} - -int wire_buf_consume(struct wire_buf *wb, size_t length) -{ - size_t ne = wb->end + length; - if (kr_fails_assert(wb->buf && ne <= wb->size)) - return kr_error(EINVAL); - - wb->end = ne; - return kr_ok(); -} - -int wire_buf_trim(struct wire_buf *wb, size_t length) -{ - size_t ns = wb->start + length; - if (kr_fails_assert(ns <= wb->end)) - return kr_error(EINVAL); - - wb->start = ns; - return kr_ok(); -} - -int wire_buf_movestart(struct wire_buf *wb) -{ - if (kr_fails_assert(wb->buf)) - return kr_error(EINVAL); - if (wb->start == 0) - return kr_ok(); - - size_t len = wire_buf_data_length(wb); - if (len) { - if (wb->start < len) - memmove(wb->buf, wire_buf_data(wb), len); - else - memcpy(wb->buf, wire_buf_data(wb), len); - } - wb->start = 0; - wb->end = len; - return kr_ok(); -} - -int wire_buf_reset(struct wire_buf *wb) -{ - wb->start = 0; - wb->end = 0; - return kr_ok(); -} - - -struct session2 *session2_new(enum session2_transport_type transport_type, - enum protolayer_grp layer_grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count, - bool outgoing) -{ - kr_require(transport_type && layer_grp); - - struct session2 *s = malloc(sizeof(*s)); - kr_require(s); - - *s = (struct session2) { - .transport = { - .type = transport_type, - }, - .log_id = next_log_id++, - .outgoing = outgoing, - .tasks = trie_create(NULL), - }; - - struct protolayer_manager *layers = protolayer_manager_new(s, layer_grp, - layer_param, layer_param_count); - if (!layers) { - free(s); - return NULL; - } - s->layers = layers; - - mm_ctx_mempool(&s->pool, CPU_PAGE_SIZE); - queue_init(s->waiting); - - int ret = uv_timer_init(uv_default_loop(), &s->timer); - kr_require(!ret); - s->timer.data = s; - s->uv_count++; /* Session owns the timer */ - - session2_touch(s); - - return s; -} - -/** De-allocates the session. Must only be called once the underlying IO handle - * and timer are already closed, otherwise may leak resources. */ -static void session2_free(struct session2 *s) -{ - protolayer_manager_free(s->layers); - mm_ctx_delete(&s->pool); - trie_free(s->tasks); - queue_deinit(s->waiting); - free(s); -} - -void session2_unhandle(struct session2 *s) -{ - if (kr_fails_assert(s->uv_count > 0)) { - session2_free(s); - return; - } - - s->uv_count--; - if (s->uv_count <= 0) - session2_free(s); -} - -int session2_start_read(struct session2 *session) -{ - if (session->transport.type == SESSION2_TRANSPORT_IO) - return io_start_read(session->transport.io.handle); - - /* TODO - probably just some event for this */ - kr_assert(false && "Parent start_read unsupported"); - return kr_error(EINVAL); -} - -int session2_stop_read(struct session2 *session) -{ - if (session->transport.type == SESSION2_TRANSPORT_IO) - return io_stop_read(session->transport.io.handle); - - /* TODO - probably just some event for this */ - kr_assert(false && "Parent stop_read unsupported"); - return kr_error(EINVAL); -} - -struct sockaddr *session2_get_peer(struct session2 *s) -{ - while (s && s->transport.type == SESSION2_TRANSPORT_PARENT) - s = s->transport.parent; - - return (s && s->transport.type == SESSION2_TRANSPORT_IO) - ? &s->transport.io.peer.ip - : NULL; -} - -struct sockaddr *session2_get_sockname(struct session2 *s) -{ - while (s && s->transport.type == SESSION2_TRANSPORT_PARENT) - s = s->transport.parent; - - return (s && s->transport.type == SESSION2_TRANSPORT_IO) - ? &s->transport.io.sockname.ip - : NULL; -} - -uv_handle_t *session2_get_handle(struct session2 *s) -{ - while (s && s->transport.type == SESSION2_TRANSPORT_PARENT) - s = s->transport.parent; - - return (s && s->transport.type == SESSION2_TRANSPORT_IO) - ? s->transport.io.handle - : NULL; -} - -static void session2_on_timeout(uv_timer_t *timer) -{ - struct session2 *s = timer->data; - session2_event(s, s->timer_event, NULL); -} - -int session2_timer_start(struct session2 *s, enum protolayer_event_type event, uint64_t timeout, uint64_t repeat) -{ - s->timer_event = event; - return uv_timer_start(&s->timer, session2_on_timeout, timeout, repeat); -} - -int session2_timer_restart(struct session2 *s) -{ - return uv_timer_again(&s->timer); -} - -int session2_timer_stop(struct session2 *s) -{ - return uv_timer_stop(&s->timer); -} - -int session2_tasklist_add(struct session2 *session, struct qr_task *task) -{ - trie_t *t = session->tasks; - uint16_t task_msg_id = 0; - const char *key = NULL; - size_t key_len = 0; - if (session->outgoing) { - knot_pkt_t *pktbuf = worker_task_get_pktbuf(task); - task_msg_id = knot_wire_get_id(pktbuf->wire); - key = (const char *)&task_msg_id; - key_len = sizeof(task_msg_id); - } else { - key = (const char *)&task; - key_len = sizeof(char *); - } - trie_val_t *v = trie_get_ins(t, key, key_len); - if (kr_fails_assert(v)) - return kr_error(ENOMEM); - if (*v == NULL) { - *v = task; - worker_task_ref(task); - } else if (kr_fails_assert(*v == task)) { - return kr_error(EINVAL); - } - return kr_ok(); -} - -int session2_tasklist_del(struct session2 *session, struct qr_task *task) -{ - trie_t *t = session->tasks; - uint16_t task_msg_id = 0; - const char *key = NULL; - size_t key_len = 0; - trie_val_t val; - if (session->outgoing) { - knot_pkt_t *pktbuf = worker_task_get_pktbuf(task); - task_msg_id = knot_wire_get_id(pktbuf->wire); - key = (const char *)&task_msg_id; - key_len = sizeof(task_msg_id); - } else { - key = (const char *)&task; - key_len = sizeof(char *); - } - int ret = trie_del(t, key, key_len, &val); - if (ret == KNOT_EOK) { - kr_require(val == task); - worker_task_unref(val); - } - return ret; -} - -struct qr_task *session2_tasklist_get_first(struct session2 *session) -{ - trie_val_t *val = trie_get_first(session->tasks, NULL, NULL); - return val ? (struct qr_task *) *val : NULL; -} - -struct qr_task *session2_tasklist_del_first(struct session2 *session, bool deref) -{ - trie_val_t val = NULL; - int res = trie_del_first(session->tasks, NULL, NULL, &val); - if (res != KNOT_EOK) { - val = NULL; - } else if (deref) { - worker_task_unref(val); - } - return (struct qr_task *)val; -} - -struct qr_task *session2_tasklist_find_msgid(const struct session2 *session, uint16_t msg_id) -{ - if (kr_fails_assert(session->outgoing)) - return NULL; - trie_t *t = session->tasks; - struct qr_task *ret = NULL; - trie_val_t *val = trie_get_try(t, (char *)&msg_id, sizeof(msg_id)); - if (val) { - ret = *val; - } - return ret; -} - -struct qr_task *session2_tasklist_del_msgid(const struct session2 *session, uint16_t msg_id) -{ - if (kr_fails_assert(session->outgoing)) - return NULL; - trie_t *t = session->tasks; - struct qr_task *ret = NULL; - const char *key = (const char *)&msg_id; - size_t key_len = sizeof(msg_id); - trie_val_t val; - int res = trie_del(t, key, key_len, &val); - if (res == KNOT_EOK) { - if (worker_task_numrefs(val) > 1) { - ret = val; - } - worker_task_unref(val); - } - return ret; -} - -void session2_tasklist_finalize(struct session2 *session, int status) -{ - while (session2_tasklist_get_len(session) > 0) { - struct qr_task *t = session2_tasklist_del_first(session, false); - kr_require(worker_task_numrefs(t) > 0); - worker_task_finalize(t, status); - worker_task_unref(t); - } -} - -int session2_tasklist_finalize_expired(struct session2 *session) -{ - int ret = 0; - queue_t(struct qr_task *) q; - uint64_t now = kr_now(); - trie_t *t = session->tasks; - trie_it_t *it; - queue_init(q); - for (it = trie_it_begin(t); !trie_it_finished(it); trie_it_next(it)) { - trie_val_t *v = trie_it_val(it); - struct qr_task *task = (struct qr_task *)*v; - if ((now - worker_task_creation_time(task)) >= KR_RESOLVE_TIME_LIMIT) { - struct kr_request *req = worker_task_request(task); - if (!kr_fails_assert(req)) - kr_query_inform_timeout(req, req->current_query); - queue_push(q, task); - worker_task_ref(task); - } - } - trie_it_free(it); - - struct qr_task *task = NULL; - uint16_t msg_id = 0; - char *key = (char *)&task; - int32_t keylen = sizeof(struct qr_task *); - if (session->outgoing) { - key = (char *)&msg_id; - keylen = sizeof(msg_id); - } - while (queue_len(q) > 0) { - task = queue_head(q); - if (session->outgoing) { - knot_pkt_t *pktbuf = worker_task_get_pktbuf(task); - msg_id = knot_wire_get_id(pktbuf->wire); - } - int res = trie_del(t, key, keylen, NULL); - if (!worker_task_finished(task)) { - /* task->pending_count must be zero, - * but there are can be followers, - * so run worker_task_subreq_finalize() to ensure retrying - * for all the followers. */ - worker_task_subreq_finalize(task); - worker_task_finalize(task, KR_STATE_FAIL); - } - if (res == KNOT_EOK) { - worker_task_unref(task); - } - queue_pop(q); - worker_task_unref(task); - ++ret; - } - - queue_deinit(q); - return ret; -} - -int session2_waitinglist_push(struct session2 *session, struct qr_task *task) -{ - queue_push(session->waiting, task); - worker_task_ref(task); - return kr_ok(); -} - -struct qr_task *session2_waitinglist_get(const struct session2 *session) -{ - return (queue_len(session->waiting) > 0) ? (queue_head(session->waiting)) : NULL; -} - -struct qr_task *session2_waitinglist_pop(struct session2 *session, bool deref) -{ - struct qr_task *t = session2_waitinglist_get(session); - queue_pop(session->waiting); - if (deref) { - worker_task_unref(t); - } - return t; -} - -void session2_waitinglist_retry(struct session2 *session, bool increase_timeout_cnt) -{ - while (!session2_waitinglist_is_empty(session)) { - struct qr_task *task = session2_waitinglist_pop(session, false); - if (increase_timeout_cnt) { - worker_task_timeout_inc(task); - } - worker_task_step(task, session2_get_peer(session), NULL); - worker_task_unref(task); - } -} - -void session2_waitinglist_finalize(struct session2 *session, int status) -{ - while (!session2_waitinglist_is_empty(session)) { - struct qr_task *t = session2_waitinglist_pop(session, false); - worker_task_finalize(t, status); - worker_task_unref(t); - } -} - -void session2_penalize(struct session2 *session) -{ - if (session->was_useful || !session->outgoing) - return; - - /* We want to penalize the IP address, if a task is asking a query. - * It might not be the right task, but that doesn't matter so much - * for attributing the useless session to the IP address. */ - struct qr_task *t = session2_tasklist_get_first(session); - struct kr_query *qry = NULL; - if (t) { - struct kr_request *req = worker_task_request(t); - qry = array_tail(req->rplan.pending); - } - if (qry) /* We reuse the error for connection, as it's quite similar. */ - qry->server_selection.error(qry, worker_task_get_transport(t), - KR_SELECTION_TCP_CONNECT_FAILED); -} - -int session2_unwrap(struct session2 *s, struct protolayer_payload payload, - const struct comm_info *comm, protolayer_finished_cb cb, - void *baton) -{ - return protolayer_manager_submit(s->layers, PROTOLAYER_UNWRAP, 0, - payload, comm, cb, baton); -} - -int session2_unwrap_after(struct session2 *s, enum protolayer_protocol protocol, - struct protolayer_payload payload, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton) -{ - ssize_t layer_ix = protolayer_manager_get_protocol(s->layers, protocol) + 1; - if (layer_ix < 0) - return layer_ix; - return protolayer_manager_submit(s->layers, PROTOLAYER_UNWRAP, layer_ix, - payload, comm, cb, baton); -} - -int session2_wrap(struct session2 *s, struct protolayer_payload payload, - const struct comm_info *comm, protolayer_finished_cb cb, - void *baton) -{ - return protolayer_manager_submit(s->layers, PROTOLAYER_WRAP, - s->layers->num_layers - 1, - payload, comm, cb, baton); -} - -int session2_wrap_after(struct session2 *s, enum protolayer_protocol protocol, - struct protolayer_payload payload, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton) -{ - ssize_t layer_ix = protolayer_manager_get_protocol(s->layers, protocol) - 1; - if (layer_ix < 0) - return layer_ix; - return protolayer_manager_submit(s->layers, PROTOLAYER_WRAP, layer_ix, - payload, comm, cb, baton); -} - -static void session2_event_wrap(struct session2 *s, enum protolayer_event_type event, void *baton) -{ - bool cont; - struct protolayer_manager *m = s->layers; - for (ssize_t i = m->num_layers - 1; i >= 0; i--) { - enum protolayer_protocol p = protolayer_grps[s->layers->grp][i]; - struct protolayer_globals *globals = &protolayer_globals[p]; - if (globals->event_wrap) { - struct protolayer_data *sess_data = protolayer_sess_data_get(m, i); - cont = globals->event_wrap(event, &baton, m, sess_data); - } else { - cont = true; - } - - if (!cont) - return; - } - - session2_transport_event(s, event, baton); -} - -void session2_event_unwrap(struct session2 *s, ssize_t start_ix, enum protolayer_event_type event, void *baton) -{ - bool cont; - struct protolayer_manager *m = s->layers; - for (ssize_t i = start_ix; i < m->num_layers; i++) { - enum protolayer_protocol p = protolayer_grps[s->layers->grp][i]; - struct protolayer_globals *globals = &protolayer_globals[p]; - if (globals->event_unwrap) { - struct protolayer_data *sess_data = protolayer_sess_data_get(m, i); - cont = globals->event_unwrap(event, &baton, m, sess_data); - } else { - cont = true; - } - - if (!cont) - return; - } - - /* Immediately bounce back in the `wrap` direction. - * - * TODO: This might be undesirable for cases with sub-sessions - the - * current idea is for the layers managing sub-sessions to just return - * `false` on `event_unwrap`, but a more "automatic" mechanism may be - * added when this is relevant, to make it less error-prone. */ - session2_event_wrap(s, event, baton); -} - -void session2_event(struct session2 *s, enum protolayer_event_type event, void *baton) -{ - session2_event_unwrap(s, 0, event, baton); -} - -void session2_event_after(struct session2 *s, enum protolayer_protocol protocol, - enum protolayer_event_type event, void *baton) -{ - ssize_t start_ix = protolayer_manager_get_protocol(s->layers, protocol); - if (kr_fails_assert(start_ix >= 0)) - return; - session2_event_unwrap(s, start_ix + 1, event, baton); -} - -void session2_init_request(struct session2 *s, struct kr_request *req) -{ - struct protolayer_manager *m = s->layers; - for (ssize_t i = 0; i < m->num_layers; i++) { - enum protolayer_protocol p = protolayer_grps[s->layers->grp][i]; - struct protolayer_globals *globals = &protolayer_globals[p]; - if (globals->request_init) { - struct protolayer_data *sess_data = protolayer_sess_data_get(m, i); - globals->request_init(m, req, sess_data); - } - } -} - - -struct session2_pushv_ctx { - struct session2 *session; - protolayer_finished_cb cb; - const struct comm_info *comm; - void *baton; - - char *async_buf; -}; - -static void session2_transport_parent_pushv_finished(int status, - struct session2 *session, - const struct comm_info *comm, - void *baton) -{ - struct session2_pushv_ctx *ctx = baton; - if (ctx->cb) - ctx->cb(status, ctx->session, comm, ctx->baton); - free(ctx->async_buf); - free(ctx); -} - -static void session2_transport_pushv_finished(int status, struct session2_pushv_ctx *ctx) -{ - if (ctx->cb) - ctx->cb(status, ctx->session, ctx->comm, ctx->baton); - free(ctx->async_buf); - free(ctx); -} - -static void session2_transport_udp_queue_pushv_finished(int status, void *baton) -{ - session2_transport_pushv_finished(status, baton); -} - -static void session2_transport_udp_pushv_finished(uv_udp_send_t *req, int status) -{ - session2_transport_pushv_finished(status, req->data); - free(req); -} - -static void session2_transport_stream_pushv_finished(uv_write_t *req, int status) -{ - session2_transport_pushv_finished(status, req->data); - free(req); -} - -#if ENABLE_XDP -static void xdp_tx_waker(uv_idle_t *handle) -{ - xdp_handle_data_t *xhd = handle->data; - int ret = knot_xdp_send_finish(xhd->socket); - if (ret != KNOT_EAGAIN && ret != KNOT_EOK) - kr_log_error(XDP, "check: ret = %d, %s\n", ret, knot_strerror(ret)); - /* Apparently some drivers need many explicit wake-up calls - * even if we push no additional packets (in case they accumulated a lot) */ - if (ret != KNOT_EAGAIN) - uv_idle_stop(handle); - knot_xdp_send_prepare(xhd->socket); - /* LATER(opt.): it _might_ be better for performance to do these two steps - * at different points in time */ - while (queue_len(xhd->tx_waker_queue)) { - struct session2_pushv_ctx *ctx = queue_head(xhd->tx_waker_queue); - if (ctx->cb) - ctx->cb(kr_ok(), ctx->session, ctx->comm, ctx->baton); - free(ctx); - queue_pop(xhd->tx_waker_queue); - } -} -#endif - -static void session2_transport_pushv_ensure_long_lived( - struct iovec **iov, int *iovcnt, bool iov_short_lived, - struct iovec *out_iovecmem, struct session2_pushv_ctx *ctx) -{ - if (!iov_short_lived) - return; - - size_t iovsize = iovecs_size(*iov, *iovcnt); - if (kr_fails_assert(iovsize)) - return; - - void *buf = malloc(iovsize); - kr_require(buf); - iovecs_copy(buf, *iov, *iovcnt, iovsize); - - ctx->async_buf = buf; - out_iovecmem->iov_base = buf; - out_iovecmem->iov_len = iovsize; - *iov = out_iovecmem; - *iovcnt = 1; -} - -static int session2_transport_pushv(struct session2 *s, - struct iovec *iov, int iovcnt, - bool iov_short_lived, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton) -{ - struct iovec iovecmem; - if (kr_fails_assert(s)) - return kr_error(EINVAL); - - struct session2_pushv_ctx *ctx = malloc(sizeof(*ctx)); - kr_require(ctx); - *ctx = (struct session2_pushv_ctx){ - .session = s, - .cb = cb, - .baton = baton, - .comm = comm - }; - - switch (s->transport.type) { - case SESSION2_TRANSPORT_IO:; - uv_handle_t *handle = s->transport.io.handle; - if (kr_fails_assert(handle)) { - if (cb) - cb(kr_error(EINVAL), s, comm, baton); - free(ctx); - return kr_error(EINVAL); - } - - if (handle->type == UV_UDP) { - if (ENABLE_SENDMMSG && !s->outgoing) { - int fd; - int ret = uv_fileno(handle, &fd); - if (kr_fails_assert(!ret)) - return kr_error(EIO); - - /* TODO: support multiple iovecs properly? */ - if (kr_fails_assert(iovcnt == 1)) - return kr_error(EINVAL); - - session2_transport_pushv_ensure_long_lived( - &iov, &iovcnt, iov_short_lived, - &iovecmem, ctx); - udp_queue_push(fd, comm->comm_addr, iov->iov_base, iov->iov_len, - session2_transport_udp_queue_pushv_finished, - ctx); - return kr_ok(); - } else { - int ret = uv_udp_try_send((uv_udp_t*)handle, - (uv_buf_t *)iov, iovcnt, comm->comm_addr); - if (ret == UV_EAGAIN) { - uv_udp_send_t *req = malloc(sizeof(*req)); - req->data = ctx; - session2_transport_pushv_ensure_long_lived( - &iov, &iovcnt, iov_short_lived, - &iovecmem, ctx); - ret = uv_udp_send(req, (uv_udp_t *)handle, - (uv_buf_t *)iov, iovcnt, comm->comm_addr, - session2_transport_udp_pushv_finished); - if (ret) - session2_transport_udp_pushv_finished(req, ret); - } else { - session2_transport_pushv_finished(ret, ctx); - } - return ret; - } - } else if (handle->type == UV_TCP) { - int ret = uv_try_write((uv_stream_t *)handle, (uv_buf_t *)iov, iovcnt); - if (ret == UV_EAGAIN) { - uv_write_t *req = malloc(sizeof(*req)); - req->data = ctx; - session2_transport_pushv_ensure_long_lived( - &iov, &iovcnt, iov_short_lived, - &iovecmem, ctx); - ret = uv_write(req, (uv_stream_t *)handle, (uv_buf_t *)iov, iovcnt, - session2_transport_stream_pushv_finished); - if (ret) - session2_transport_stream_pushv_finished(req, ret); - } else { - session2_transport_pushv_finished(ret, ctx); - } - return ret; -#if ENABLE_XDP - } else if (handle->type == UV_POLL) { - xdp_handle_data_t *xhd = handle->data; - if (kr_fails_assert(xhd && xhd->socket)) - return kr_error(EIO); - - /* TODO: support multiple iovecs properly? */ - if (kr_fails_assert(iovcnt == 1)) - return kr_error(EINVAL); - - session2_transport_pushv_ensure_long_lived( - &iov, &iovcnt, iov_short_lived, - &iovecmem, ctx); - - knot_xdp_msg_t msg; -#if KNOT_VERSION_HEX >= 0x030100 - /* We don't have a nice way of preserving the _msg_t from frame allocation, - * so we manually redo all other parts of knot_xdp_send_alloc() */ - memset(&msg, 0, sizeof(msg)); - bool ipv6 = comm->comm_addr->sa_family == AF_INET6; - msg.flags = ipv6 ? KNOT_XDP_MSG_IPV6 : 0; - memcpy(msg.eth_from, comm->eth_from, sizeof(comm->eth_from)); - memcpy(msg.eth_to, comm->eth_to, sizeof(comm->eth_to)); -#endif - const struct sockaddr *ip_from = comm->dst_addr; - const struct sockaddr *ip_to = comm->comm_addr; - memcpy(&msg.ip_from, ip_from, kr_sockaddr_len(ip_from)); - memcpy(&msg.ip_to, ip_to, kr_sockaddr_len(ip_to)); - msg.payload = *iov; - - uint32_t sent; - int ret = knot_xdp_send(xhd->socket, &msg, 1, &sent); - - queue_push(xhd->tx_waker_queue, ctx); - uv_idle_start(&xhd->tx_waker, xdp_tx_waker); - kr_log_debug(XDP, "pushed a packet, ret = %d\n", ret); - - return kr_ok(); -#endif - } else { - kr_assert(false && "Unsupported handle"); - if (cb) - cb(kr_error(EINVAL), s, comm, baton); - free(ctx); - return kr_error(EINVAL); - } - - case SESSION2_TRANSPORT_PARENT:; - struct session2 *parent = s->transport.parent; - if (kr_fails_assert(parent)) { - free(ctx); - return kr_error(EINVAL); - } - int ret = session2_wrap(parent, - protolayer_iovec(iov, iovcnt, iov_short_lived), - comm, session2_transport_parent_pushv_finished, - ctx); - return (ret < 0) ? ret : kr_ok(); - - default: - kr_assert(false && "Invalid transport"); - free(ctx); - return kr_error(EINVAL); - } -} - -struct push_ctx { - struct iovec iov; - protolayer_finished_cb cb; - void *baton; -}; - -static void session2_transport_single_push_finished(int status, - struct session2 *s, - const struct comm_info *comm, - void *baton) -{ - struct push_ctx *ctx = baton; - if (ctx->cb) - ctx->cb(status, s, comm, ctx->baton); - free(ctx); -} - -static inline int session2_transport_push(struct session2 *s, - char *buf, size_t buf_len, - bool buf_short_lived, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton) -{ - struct push_ctx *ctx = malloc(sizeof(*ctx)); - kr_require(ctx); - *ctx = (struct push_ctx){ - .iov = { - .iov_base = buf, - .iov_len = buf_len - }, - .cb = cb, - .baton = baton - }; - - return session2_transport_pushv(s, &ctx->iov, 1, buf_short_lived, comm, - session2_transport_single_push_finished, ctx); -} - -static void on_session2_handle_close(uv_handle_t *handle) -{ - struct session2 *session = handle->data; - kr_require(session->transport.type == SESSION2_TRANSPORT_IO && - session->transport.io.handle == handle); - io_free(handle); -} - -static void on_session2_timer_close(uv_handle_t *handle) -{ - session2_unhandle(handle->data); -} - -static int session2_handle_close(struct session2 *s) -{ - if (kr_fails_assert(s->transport.type == SESSION2_TRANSPORT_IO)) - return kr_error(EINVAL); - - uv_handle_t *handle = s->transport.io.handle; - - if (!handle->loop) { - /* This happens when kresd is stopping and the libUV loop has - * been ended. We do not `uv_close` the handles, we just free - * up the memory. */ - - session2_unhandle(s); /* For timer handle */ - io_free(handle); /* This will unhandle the transport handle */ - return kr_ok(); - } - - io_stop_read(handle); - uv_close((uv_handle_t *)&s->timer, on_session2_timer_close); - uv_close(handle, on_session2_handle_close); - return kr_ok(); -} - -static int session2_transport_event(struct session2 *s, - enum protolayer_event_type event, - void *baton) -{ - if (s->closing) - return kr_ok(); - - bool is_close_event = (event == PROTOLAYER_EVENT_CLOSE || - event == PROTOLAYER_EVENT_FORCE_CLOSE); - if (is_close_event) { - kr_require(session2_is_empty(s)); - session2_timer_stop(s); - s->closing = true; - } - - switch (s->transport.type) { - case SESSION2_TRANSPORT_IO:; - if (kr_fails_assert(s->transport.io.handle)) { - return kr_error(EINVAL); - } - - if (is_close_event) - return session2_handle_close(s); - - return kr_ok(); - - case SESSION2_TRANSPORT_PARENT:; - session2_event_wrap(s, event, baton); - return kr_ok(); - - default: - kr_assert(false && "Invalid transport"); - return kr_error(EINVAL); - } -} - -void session2_kill_ioreq(struct session2 *session, struct qr_task *task) -{ - if (!session || session->closing) - return; - if (kr_fails_assert(session->outgoing - && session->transport.type == SESSION2_TRANSPORT_IO - && session->transport.io.handle)) - return; - session2_tasklist_del(session, task); - if (session->transport.io.handle->type == UV_UDP) - session2_close(session); -} diff --git a/daemon/session2.h b/daemon/session2.h deleted file mode 100644 index 426f9b1fb..000000000 --- a/daemon/session2.h +++ /dev/null @@ -1,1110 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -/* HINT: If you are looking to implement a new protocol, start with the doc - * comment of the `PROTOLAYER_PROTOCOL_MAP` macro and continue from there. */ - -/* GLOSSARY: - * - * Event: - * - An Event may be processed by the protocol layer sequence much like a - * Payload, but with a special callback. Events may be used to notify layers - * that e.g. a connection has been established; a timeout has occurred; a - * malformed packet has been received, etc. Events are generally not sent - * through the transport - they may, however, trigger a new payload to be - * sent, e.g. a HTTP error status response. - * - * Iteration: - * - The processing of Payload data or an event using a particular sequence - * of Protocol layers, either in Wrap or Unwrap direction. For payload - * processing, it is also the lifetime of `struct protolayer_iter_ctx` and - * layer-specific data contained therein. - * - * Payload: - * - Data processed by protocol layers in a particular sequence. In the wrap - * direction, this data generally starts as a DNS packet, which is then - * wrapped in protocol ceremony data by each layer. In the unwrap direction, - * the opposite takes place - ceremony data is removed until a raw DNS packet - * is retrieved. - * - * Protocol layer: - * - An implementation of a particular protocol. A layer transforms payloads - * to conform to a particular protocol, e.g. UDP, TCP, TLS, HTTP, QUIC, etc. - * While transforming a payload, a layer may also modify metadata - e.g. the - * UDP and TCP layers in the Unwrap direction implement the PROXYv2 protocol, - * using which they retrieve the IP address of the actual originating client - * and store it in the appropriate struct. - * - * Protolayer: - * - Same as 'Protocol layer'. - * - * Unwrap: - * - The direction of data transformation, starting with the transport (e.g. - * data that came from the network), ending with an internal subsystem (e.g. - * DNS query resolution). - * - * Wrap: - * - The direction of data transformation, starting with an internal - * subsystem (e.g. an answer to a resolved DNS query), ending with the - * transport (e.g. data that is going to be sent to the client). */ - -#pragma once - -#include -#include -#include -#include - -#include "contrib/mempattern.h" -#include "lib/generic/queue.h" -#include "lib/generic/trie.h" -#include "lib/utils.h" - -/* Forward declarations */ -struct session2; -struct protolayer_iter_ctx; - - -/** Type of MAC addresses. */ -typedef uint8_t ethaddr_t[6]; - -/** Information about the transport - addresses and proxy. */ -struct comm_info { - /** The original address the data came from. May be that of a proxied - * client, if they came through a proxy. May be `NULL` if - * the communication did not come from network. */ - const struct sockaddr *src_addr; - - /** The actual address the resolver is communicating with. May be - * the address of a proxy if the communication came through one, - * otherwise it will be the same as `src_addr`. May be `NULL` if - * the communication did not come from network. */ - const struct sockaddr *comm_addr; - - /** The original destination address. May be the resolver's address, or - * the address of a proxy if the communication came through one. May be - * `NULL` if the communication did not come from network. */ - const struct sockaddr *dst_addr; - - /** Data parsed from a PROXY header. May be `NULL` if the communication - * did not come through a proxy, or if the PROXYv2 protocol was not - * used. */ - const struct proxy_result *proxy; - - /** Pointer to protolayer-specific data, e.g. a key to decide, which - * sub-session to use. */ - void *target; - - /* XDP data */ - ethaddr_t eth_from; - ethaddr_t eth_to; - bool xdp:1; -}; - - -/** A buffer, with indices marking the chunk containing as of yet unprocessed - * data - this chunk is called "valid". The contents may be manipulated using - * `wire_buf_` functions, which ensure the struct's validity. - * - * The struct may be used to retrieve data piecewise, e.g. from a stream-based - * transport like TCP, by writing data to the buffer's free space, then - * "consuming" that space with `wire_buf_consume`. It can also be handy for - * processing message headers, then trimming the beginning of the buffer (using - * `wire_buf_trim`) so that the next part of the data may be processed by a - * next part of a common pipeline. - * - * May be initialized in two possible ways: - * - via `wire_buf_init` - * - to zero, then reserved via `wire_buf_reserve`. */ -struct wire_buf { - char *buf; /**< Buffer memory. */ - size_t size; /**< Current size of the buffer memory. */ - size_t start; /**< Index at which the valid data of the buffer starts (inclusive). */ - size_t end; /**< Index at which the valid data of the buffer ends (exclusive). */ -}; - -/** Initializes the wire buffer with the specified `initial_size` and allocates - * the underlying memory. */ -int wire_buf_init(struct wire_buf *wb, size_t initial_size); - -/** De-allocates the wire buffer's underlying memory (the struct itself is left - * intact). */ -void wire_buf_deinit(struct wire_buf *wb); - -/** Ensures that the wire buffer's size is at least `size`. The memory at `wb` - * must be initialized, either to zero or via `wire_buf_init`. */ -int wire_buf_reserve(struct wire_buf *wb, size_t size); - -/** Adds `length` to the end index of the valid data, marking `length` more - * bytes as valid. - * - * Returns 0 on success. - * Assert-fails and/or returns `kr_error(EINVAL)` if the end index would exceed - * the buffer size. */ -int wire_buf_consume(struct wire_buf *wb, size_t length); - -/** Adds `length` to the start index of the valid data, marking `length` less - * bytes as valid. - * - * Returns 0 on success. - * Assert-fails and/or returns `kr_error(EINVAL)` if the start index would - * exceed the end index. */ -int wire_buf_trim(struct wire_buf *wb, size_t length); - -/** Moves the valid bytes of the buffer to the buffer's beginning. */ -int wire_buf_movestart(struct wire_buf *wb); - -/** Resets the valid bytes of the buffer to zero. */ -int wire_buf_reset(struct wire_buf *wb); - -/** Gets a pointer to the data marked as valid in the wire buffer. */ -static inline void *wire_buf_data(const struct wire_buf *wb) -{ - return &wb->buf[wb->start]; -} - -/** Gets the length of the data marked as valid in the wire buffer. */ -static inline size_t wire_buf_data_length(const struct wire_buf *wb) -{ - return wb->end - wb->start; -} - -/** Gets a pointer to the free space after the valid data of the wire buffer. */ -static inline void *wire_buf_free_space(const struct wire_buf *wb) -{ - return (wb->buf) ? &wb->buf[wb->end] : NULL; -} - -/** Gets the length of the free space after the valid data of the wire buffer. */ -static inline size_t wire_buf_free_space_length(const struct wire_buf *wb) -{ - if (kr_fails_assert(wb->end <= wb->size)) - return 0; - return (wb->buf) ? wb->size - wb->end : 0; -} - - -/** Protocol layer types map - an enumeration of individual protocol layer - * implementations - * - * This macro is used to generate `enum protolayer_protocol` as well as other - * additional data on protocols, e.g. name string constants. - * - * To define a new protocol, add a new identifier to this macro, and, within - * some logical compilation unit (e.g. `daemon/worker.c` for DNS layers), - * initialize the protocol's `protolayer_globals[]`, ideally in a function - * called at the start of the program (e.g. `worker_init()`). See the docs of - * `struct protolayer_globals` for details on what data this structure should - * contain. - * - * To use protocols within sessions, protocol layer groups also need to be - * defined, to indicate the order in which individual protocols are to be - * processed. See `PROTOLAYER_GRP_MAP` below for more details. */ -#define PROTOLAYER_PROTOCOL_MAP(XX) \ - /* General transport protocols */\ - XX(UDP)\ - XX(TCP)\ - XX(TLS)\ - XX(HTTP)\ - \ - /* DNS (`worker`) */\ - XX(DNS_DGRAM) /**< Packets WITHOUT prepended size, one per (un)wrap, - * limited to UDP sizes, multiple sources (single - * session for multiple clients). */\ - XX(DNS_UNSIZED_STREAM) /**< Singular packet WITHOUT prepended size, one - * per (un)wrap, no UDP limits, single source. */\ - XX(DNS_MULTI_STREAM) /**< Multiple packets WITH prepended sizes in a - * stream (may span multiple (un)wraps). */\ - XX(DNS_SINGLE_STREAM) /**< Singular packet WITH prepended size in a - * stream (may span multiple (un)wraps). */ - -/** The identifiers of protocol layer types. */ -enum protolayer_protocol { - PROTOLAYER_PROTOCOL_NULL = 0, -#define XX(cid) PROTOLAYER_PROTOCOL_ ## cid, - PROTOLAYER_PROTOCOL_MAP(XX) -#undef XX - PROTOLAYER_PROTOCOL_COUNT /* must be the last! */ -}; - -/** Gets the constant string name of the specified protocol. */ -const char *protolayer_protocol_name(enum protolayer_protocol p); - -/** Protocol layer group map - * - * This macro is used to generate `enum protolayer_grp` as well as other - * additional data on protocol layer groups, e.g. name string constants. - * - * Each group represents a sequence of layers in the unwrap direction (wrap - * direction being the opposite). The sequence dictates the order in which - * individual layers are processed. This macro is used to generate global data - * about groups. - * - * For defining new groups, see the docs of `protolayer_grps[]` in - * `daemon/session2.h`. - * - * TODO: probably unify enum protolayer_grp with enum kr_proto. - * - * Parameters for XX are: - * 1. Constant name (for e.g. PROTOLAYER_GRP_* enum value identifiers) - * 2. Variable name (for e.g. protolayer_grp_* array identifiers - defined in - * `session2.c`) - * 3. Human-readable name for logging */ -#define PROTOLAYER_GRP_MAP(XX) \ - XX(DOUDP, doudp, "DNS UDP") \ - XX(DOTCP, dotcp, "DNS TCP") \ - XX(DOTLS, dot, "DNS-over-TLS") \ - XX(DOHTTPS, doh, "DNS-over-HTTPS") - -/** The identifiers of pre-defined protocol layer sequences. */ -enum protolayer_grp { - PROTOLAYER_GRP_NULL = 0, -#define XX(cid, vid, name) PROTOLAYER_GRP_ ## cid, - PROTOLAYER_GRP_MAP(XX) -#undef XX - PROTOLAYER_GRP_COUNT -}; - -/** Gets the constant string name of the specified protocol layer group. */ -const char *protolayer_grp_name(enum protolayer_grp g); - -/** Flow control indicators for protocol layer `wrap` and `unwrap` callbacks. - * Use via `protolayer_continue`, `protolayer_break`, and `protolayer_push` - * functions. */ -enum protolayer_iter_action { - PROTOLAYER_ITER_ACTION_NULL = 0, - - PROTOLAYER_ITER_ACTION_CONTINUE, - PROTOLAYER_ITER_ACTION_BREAK, -}; - -/** Direction of layer sequence processing. */ -enum protolayer_direction { - /** Processes buffers in order of layers as defined in the layer group. - * In this direction, protocol ceremony data should be removed from the - * buffer, parsing additional data provided by the protocol. */ - PROTOLAYER_UNWRAP, - - /** Processes buffers in reverse order of layers as defined in the - * layer group. In this direction, protocol ceremony data should be - * added. */ - PROTOLAYER_WRAP, -}; - -/** Returned by a successful call to `session2_wrap()` or `session2_unwrap()` - * functions. */ -enum protolayer_ret { - /** Returned when a protolayer context iteration has finished - * processing, i.e. with `protolayer_break()`. */ - PROTOLAYER_RET_NORMAL = 0, - - /** Returned when a protolayer context iteration is waiting for an - * asynchronous callback to a continuation function. This will never be - * passed to `protolayer_finished_cb`, only returned by - * `session2_unwrap` or `session2_wrap`. */ - PROTOLAYER_RET_ASYNC, -}; - -/** Called when a payload iteration (started by `session2_unwrap` or - * `session2_wrap`) has ended - i.e. the input buffer will not be processed any - * further. - * - * `status` may be one of `enum protolayer_ret` or a negative number indicating - * an error. - * `target` is the `target` parameter passed to the `session2_(un)wrap` - * function. - * `baton` is the `baton` parameter passed to the `session2_(un)wrap` function. */ -typedef void (*protolayer_finished_cb)(int status, struct session2 *session, - const struct comm_info *comm, void *baton); - - -/** Protocol layer event type map - * - * This macro is used to generate `enum protolayer_event_type` as well as the - * relevant name string constants for each event type. - * - * Event types are used to distinguish different events that can be passed to - * sessions using `session2_event()`. */ -#define PROTOLAYER_EVENT_MAP(XX) \ - XX(CLOSE) /**< Sending this event closes the session gracefully - - * i.e. layers add their standard disconnection - * ceremony (e.g. `gnutls_bye()`). */\ - XX(FORCE_CLOSE) /**< Sending this event closes the session forcefully - - * i.e. layers SHOULD NOT add any disconnection - * ceremony, if avoidable. */\ - XX(CONNECT_TIMEOUT) /**< Signal that a connection could not be - * established due to a timeout. */\ - XX(GENERAL_TIMEOUT) /**< Signal that a general application-defined - * timeout has occurred. */\ - XX(CONNECT) /**< Signal that a connection has been established. */\ - XX(CONNECT_FAIL) /**< Signal that a connection could not have been - * established. */\ - XX(MALFORMED) /**< Signal that a malformed request has been received. */\ - XX(DISCONNECT) /**< Signal that a connection has ended. */\ - XX(STATS_SEND_ERR) /**< Failed task send - update stats. */\ - XX(STATS_QRY_OUT) /**< Outgoing query submission - update stats. */ - -/** Event type, to be interpreted by a layer. */ -enum protolayer_event_type { - PROTOLAYER_EVENT_NULL = 0, -#define XX(cid) PROTOLAYER_EVENT_ ## cid, - PROTOLAYER_EVENT_MAP(XX) -#undef XX - PROTOLAYER_EVENT_COUNT -}; - -/** Gets the constant string name of the specified event. */ -const char *protolayer_event_name(enum protolayer_event_type e); - - -/** Payload types. - * - * Parameters are: - * 1. Constant name - * 2. Human-readable name for logging */ -#define PROTOLAYER_PAYLOAD_MAP(XX) \ - XX(BUFFER, "Buffer") \ - XX(IOVEC, "IOVec") \ - XX(WIRE_BUF, "Wire buffer") - -/** Determines which union member of `struct protolayer_payload` is currently - * valid. */ -enum protolayer_payload_type { - PROTOLAYER_PAYLOAD_NULL = 0, -#define XX(cid, name) PROTOLAYER_PAYLOAD_ ## cid, - PROTOLAYER_PAYLOAD_MAP(XX) -#undef XX - PROTOLAYER_PAYLOAD_COUNT -}; - -/** Gets the constant string name of the specified payload type. */ -const char *protolayer_payload_name(enum protolayer_payload_type p); - -/** Data processed by the sequence of layers. All pointed-to memory is always - * owned by its creator. It is also the layer (group) implementor's - * responsibility to keep data compatible in between layers. No payload memory - * is ever (de-)allocated by the protolayer manager! */ -struct protolayer_payload { - enum protolayer_payload_type type; - - /** Time-to-live hint (e.g. for HTTP Cache-Control) */ - unsigned int ttl; - - /** If `true`, the payload's memory may be freed early as kresd does not - * completely control its lifetime. When going asynchronous, it needs to - * be copied. */ - bool short_lived; - - union { - /** Only valid if `type` is `_BUFFER`. */ - struct { - void *buf; - size_t len; - } buffer; - - /** Only valid if `type` is `_IOVEC`. */ - struct { - struct iovec *iov; - int cnt; - } iovec; - - /** Only valid if `type` is `_WIRE_BUF`. */ - struct wire_buf *wire_buf; - }; -}; - -/** Context for protocol layer iterations, containing payload data, - * layer-specific data, and internal information for the protocol layer - * manager. */ -struct protolayer_iter_ctx { -/* read-write: */ - /** The payload */ - struct protolayer_payload payload; - /** Communication information. Typically written into by one of the - * first layers facilitating transport protocol processing. */ - struct comm_info comm; - -/* callback for when the layer iteration has ended - read-only: */ - protolayer_finished_cb finished_cb; - void *finished_cb_baton; - -/* internal information for the manager - private: */ - enum protolayer_direction direction; - bool async_mode; - unsigned int layer_ix; - struct protolayer_manager *manager; - int status; - enum protolayer_iter_action action; - void *async_buffer; - - /** Contains a sequence of variably-sized CPU-aligned layer-specific - * structs. See `struct protolayer_manager::data`. */ - alignas(CPU_STRUCT_ALIGN) char data[]; -}; - -/** Gets the total size of the data in the specified payload. */ -size_t protolayer_payload_size(const struct protolayer_payload *payload); - -/** Copies the specified payload to `dest`. Only `max_len` or the size of the - * payload is written, whichever is less. - * - * Returns the actual length of copied data. */ -size_t protolayer_payload_copy(void *dest, - const struct protolayer_payload *payload, - size_t max_len); - -/** Convenience function to get a buffer-type payload. */ -static inline struct protolayer_payload protolayer_buffer(void *buf, size_t len, - bool short_lived) -{ - return (struct protolayer_payload){ - .type = PROTOLAYER_PAYLOAD_BUFFER, - .short_lived = short_lived, - .buffer = { - .buf = buf, - .len = len - } - }; -} - -/** Convenience function to get an iovec-type payload. */ -static inline struct protolayer_payload protolayer_iovec( - struct iovec *iov, int iovcnt, bool short_lived) -{ - return (struct protolayer_payload){ - .type = PROTOLAYER_PAYLOAD_IOVEC, - .short_lived = short_lived, - .iovec = { - .iov = iov, - .cnt = iovcnt - } - }; -} - -/** Convenience function to get a wire-buf-type payload. */ -static inline struct protolayer_payload protolayer_wire_buf( - struct wire_buf *wire_buf, bool short_lived) -{ - return (struct protolayer_payload){ - .type = PROTOLAYER_PAYLOAD_WIRE_BUF, - .short_lived = short_lived, - .wire_buf = wire_buf - }; -} - -/** Convenience function to represent the specified payload as a buffer-type. - * Supports only `_BUFFER` and `_WIRE_BUF` on the input, otherwise returns - * `_NULL` type or aborts on assertion if allowed. - * - * If the input payload is `_WIRE_BUF`, the pointed-to wire buffer is reset to - * indicate that all of its contents have been used up, and the buffer is ready - * to be reused. */ -struct protolayer_payload protolayer_as_buffer(const struct protolayer_payload *payload); - -/** A predefined queue type for iteration context. */ -typedef queue_t(struct protolayer_iter_ctx *) protolayer_iter_ctx_queue_t; - -/** Iterates through the specified `queue` and gets the sum of all payloads - * available in it. */ -size_t protolayer_queue_count_payload(const protolayer_iter_ctx_queue_t *queue); - -/** Checks if the specified `queue` has any payload data (i.e. - * `protolayer_queue_count_payload` would be non-zero). This optimizes calls to - * queue iterators, as it does not need to iterate through the whole queue. */ -bool protolayer_queue_has_payload(const protolayer_iter_ctx_queue_t *queue); - -/** Layer-specific data - the generic struct. To be added as the first member of - * each specific struct. */ -struct protolayer_data { - struct session2 *session; /**< Pointer to the owner session. */\ -}; - -/** Return value of `protolayer_iter_cb` callbacks. To be returned by *layer - * sequence return functions* as a sanity check. Not to be used directly by - * user code. */ -enum protolayer_iter_cb_result { - PROTOLAYER_ITER_CB_RESULT_MAGIC = 0x364F392E, -}; - -/** Function type for `struct protolayer_globals::wrap` and `struct - * protolayer_globals::unwrap`. The function processes the provided - * `ctx->payload` and decides the next action for the currently processed - * sequence. - * - * The function (or another function, that the pointed-to function causes to be - * called, directly or through an asynchronous operation), must call one of the - * *layer sequence return functions* (e.g. `protolayer_continue()`, - * `protolayer_async()`, ...) to advance (or end) the layer sequence. The - * function must return the result of such a return function. */ -typedef enum protolayer_iter_cb_result (*protolayer_iter_cb)( - void *sess_data, - void *iter_data, - struct protolayer_iter_ctx *ctx); - -/** Return value of `protolayer_event_cb` callbacks. Controls the flow of - * events. See `protolayer_event_cb` for details. */ -enum protolayer_event_cb_result { - PROTOLAYER_EVENT_CONSUME = 0, - PROTOLAYER_EVENT_PROPAGATE = 1 -}; - -/** Function type for `struct protolayer_globals::event_wrap` and `struct - * protolayer_globals::event_unwrap` callbacks of layers. The `baton` parameter - * points to the mutable, iteration-specific baton pointer, initialized by the - * `baton` parameter of one of the `session2_event` functions. The pointed-to - * value of `baton` may be modified to accommodate for the next layer in the - * sequence. - * - * When `PROTOLAYER_EVENT_PROPAGATE` is returned, iteration over the sequence - * of layers continues. When `PROTOLAYER_EVENT_CONSUME` is returned, iteration - * stops. */ -typedef enum protolayer_event_cb_result (*protolayer_event_cb)( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data); - -/** Function type for initialization callbacks of layer session data. - * - * The `param` value is the one associated with the currently initialized - * layer, from the `layer_param` array of `session2_new()` - may be NULL if - * none is provided for the current layer. - * - * `data` points to the layer-specific data struct. - * - * Returning 0 means success, other return values mean error and halt the - * initialization. */ -typedef int (*protolayer_data_sess_init_cb)(struct protolayer_manager *manager, - void *data, - void *param); - -/** Function type for determining the size of a layer's wire buffer overhead. */ -typedef size_t (*protolayer_wire_buf_overhead_cb)(bool outgoing); - -/** Function type for (de)initialization callback of layer iteration data. - * - * `ctx` points to the iteration context that `data` belongs to. - * - * `data` points to the layer-specific data struct. - * - * Returning 0 means success, other return values mean error and halt the - * initialization. */ -typedef int (*protolayer_iter_data_cb)(struct protolayer_manager *manager, - struct protolayer_iter_ctx *ctx, - void *data); - -/** Function type for (de)initialization callbacks of layers. - * - * `data` points to the layer-specific data struct. - * - * Returning 0 means success, other return values mean error and halt the - * initialization. */ -typedef int (*protolayer_data_cb)(struct protolayer_manager *manager, - void *data); - -/** Function type for (de)initialization callbacks of DNS requests. - * - * `req` points to the request for initialization. - * `sess_data` points to layer-specific session data struct. */ -typedef void (*protolayer_request_cb)(struct protolayer_manager *manager, - struct kr_request *req, - void *sess_data); - -/** A collection of protocol layers and their layer-specific data, tied to a - * session. The manager contains a sequence of protocol layers (determined by - * `grp`), which define how the data processed by the session is to be - * interpreted. */ -struct protolayer_manager { - enum protolayer_grp grp; - struct wire_buf wire_buf; - size_t wire_buf_max_length; - struct session2 *session; - size_t num_layers; - size_t cb_ctx_size; /**< Size of a single callback context, including - * layer-specific per-iteration data. */ - - /** The following flexible array has basically this structure: - * - * struct { - * size_t sess_offsets[num_layers]; - * size_t iter_offsets[num_layers]; - * variably-sized-data sess_data[num_layers]; - * } - * - * It is done this way, because different layer groups will have - * different numbers of layers and differently-sized layer-specific - * data. C does not have a convenient way to define this in structs, so - * we do it via this flexible array. - * - * `sess_data` is a sequence of variably-sized CPU-aligned - * layer-specific structs. - * - * `sess_offsets` determines data offsets in `sess_data` for pointer - * retrieval. - * - * `iter_offsets` determines data offsets in `struct - * protolayer_iter_ctx::data` for pointer retrieval. */ - alignas(CPU_STRUCT_ALIGN) char data[]; -}; - -/** Initialization parameters for protocol layer session data. */ -struct protolayer_data_param { - enum protolayer_protocol protocol; /**< Which protocol these parameters - * are meant for. */ - void *param; /**< Pointer to protolayer-related initialization - * parameters. Only needs to be valid during session - * initialization. */ -}; - -/** Global data for a specific layered protocol. This is to be initialized in - * the `protolayer_globals` global array (below) during the the resolver's - * startup. It contains pointers to functions implementing a particular - * protocol, as well as other importand data. - * - * Every member of this struct is allowed to be zero/NULL if a particular - * protocol has no use for it. */ -struct protolayer_globals { - /** Size of the layer-specific data struct, valid per-session. - * - * The struct MUST begin with a `struct protolayer_data` member. If - * no session struct is used by the layer, the value may be zero. */ - size_t sess_size; - - /** Size of the layer-specific data struct, valid per-iteration. It - * gets created and destroyed together with a `struct - * protolayer_iter_ctx`. - * - * The struct MUST begin with a `struct protolayer_data` member. If - * no iteration struct is used by the layer, the value may be zero. */ - size_t iter_size; - - /** Number of bytes that this layer adds onto the session's wire buffer - * by default. All overheads in a group are summed together to form the - * resulting default wire buffer length. - * - * Ignored when `wire_buf_overhead_cb` is non-NULL. */ - size_t wire_buf_overhead; - - /** Called during session initialization to determine the number of - * bytes that this layer adds onto the session's wire buffer. - * - * It is the dynamic version of `wire_buf_overhead`, which is ignored - * when this is non-NULL. */ - protolayer_wire_buf_overhead_cb wire_buf_overhead_cb; - - /** Number of bytes that this layer adds onto the session's wire buffer - * at most. All overheads in a group are summed together to form the - * resulting default wire buffer length. - * - * If this is less than the default overhead, the default is used - * instead. */ - size_t wire_buf_max_overhead; - - /** Called during session creation to initialize - * layer-specific session data. The data is always provided - * zero-initialized to this function. */ - protolayer_data_sess_init_cb sess_init; - - /** Called during session destruction to deinitialize - * layer-specific session data. */ - protolayer_data_cb sess_deinit; - - /** Called at the beginning of a non-event layer sequence to initialize - * layer-specific iteration data. The data is always zero-initialized - * during iteration context initialization. */ - protolayer_iter_data_cb iter_init; - - /** Called at the end of a non-event layer sequence to deinitialize - * layer-specific iteration data. */ - protolayer_iter_data_cb iter_deinit; - - /** Strips the buffer of protocol-specific data. E.g. a HTTP layer - * removes HTTP status and headers. Optional - iteration continues - * automatically if this is NULL. */ - protolayer_iter_cb unwrap; - - /** Wraps the buffer into protocol-specific data. E.g. a HTTP layer - * adds HTTP status and headers. Optional - iteration continues - * automatically if this is NULL. */ - protolayer_iter_cb wrap; - - /** Processes events in the unwrap order (sent from the outside). - * Optional - iteration continues automatically if this is NULL. */ - protolayer_event_cb event_unwrap; - - /** Processes events in the wrap order (bounced back by the session). - * Optional - iteration continues automatically if this is NULL. */ - protolayer_event_cb event_wrap; - - /** Modifies the provided request for use with the layer. Mostly for - * setting `struct kr_request::qsource.comm_flags`. */ - protolayer_request_cb request_init; -}; - -/** Global data about layered protocols. Mapped by `enum protolayer_protocol`. - * Individual protocols are to be initialized during resolver startup. */ -extern struct protolayer_globals protolayer_globals[PROTOLAYER_PROTOCOL_COUNT]; - - -/** *Layer sequence return function* - signalizes the protolayer manager to - * continue processing the next layer. */ -enum protolayer_iter_cb_result protolayer_continue(struct protolayer_iter_ctx *ctx); - -/** *Layer sequence return function* - signalizes that the layer wants to stop - * processing of the buffer and clean up, possibly due to an error (indicated - * by a non-zero `status`). */ -enum protolayer_iter_cb_result protolayer_break(struct protolayer_iter_ctx *ctx, int status); - -/** *Layer sequence return function* - signalizes that the current sequence - * will continue in an asynchronous manner. The layer should store the context - * and call another sequence return function at another point. This may be used - * in layers that work through libraries whose operation is asynchronous, like - * GnuTLS. - * - * Note that this return function is just a readability hint - another return - * function may be called in another stack frame before it (generally during a - * call to an external library function, e.g. GnuTLS or nghttp2) and the - * sequence will continue correctly. */ -static inline enum protolayer_iter_cb_result protolayer_async(void) -{ - return PROTOLAYER_ITER_CB_RESULT_MAGIC; -} - - -/** Indicates how a session sends data in the `wrap` direction and receives - * data in the `unwrap` direction. */ -enum session2_transport_type { - SESSION2_TRANSPORT_NULL = 0, - SESSION2_TRANSPORT_IO, - SESSION2_TRANSPORT_PARENT, -}; - -/** A data unit for a single sequential data source. The data may be organized - * as a stream or a sequence of datagrams - this is up to the actual individual - * protocols used by the session, as defined by the `layers` member - see - * `struct protolayer_manager` and the types of its members for more info. - * - * A session processes data in two directions: - * - * - `_UNWRAP` deals with raw data received from the session's transport. It - * strips the ceremony of individual protocols from the buffers. The last - * (bottommost) layer is generally responsible for submitting the unwrapped - * data to be processed by an internal system, e.g. to be resolved as a DNS - * query. - * - * - `_WRAP` deals with data generated by an internal system. It adds the - * required protocol ceremony to it (e.g. encryption). The first (topmost) - * layer is responsible for preparing the data to be sent through the - * session's transport. */ -struct session2 { - /** Data for sending data out in the `wrap` direction and receiving new - * data in the `unwrap` direction. */ - struct { - enum session2_transport_type type; /**< See `enum session2_transport_type` */ - union { - /** For `_IO` type transport. Contains a libuv handle - * and session-related address storage. */ - struct { - uv_handle_t *handle; - union kr_sockaddr peer; - union kr_sockaddr sockname; - } io; - - /** For `_PARENT` type transport. */ - struct session2 *parent; - }; - } transport; - - struct protolayer_manager *layers; /**< Protocol layers of this session. */ - knot_mm_t pool; - uv_timer_t timer; /**< For session-wide timeout events. */ - enum protolayer_event_type timer_event; /**< The event fired on timeout. */ - trie_t *tasks; /**< List of tasks associated with given session. */ - queue_t(struct qr_task *) waiting; /**< List of tasks waiting for - * sending to upstream. */ - - uint32_t log_id; /**< Session ID for logging. */ - - int uv_count; /**< Number of unclosed libUV handles owned by this - * session. */ - - /** Communication information. Typically written into by one of the - * first layers facilitating transport protocol processing. - * Zero-initialized by default. */ - struct comm_info comm; - - /** Time of last IO activity (if any occurs). Otherwise session - * creation time. */ - uint64_t last_activity; - - /** If true, the session's transport is towards an upstream server. - * Otherwise, it is towards a client. */ - bool outgoing : 1; - - /** If true, the session is at the end of its lifecycle and is about - * to close. */ - bool closing : 1; - - /** If true, the session has done something useful, - * e.g. it has produced a packet. */ - bool was_useful : 1; - - /** If true, encryption takes place in this session. Layers may use - * this to determine whether padding should be applied. A layer that - * provides security shall set this to `true` during session - * initialization. */ - bool secure : 1; - - /** If true, the session contains a stream-based protocol layer. - * Set during protocol layer initialization by the stream-based layer. */ - bool stream : 1; - - /** If true, the session contains a protocol layer with custom handling - * of malformed queries. This is used e.g. by the HTTP layer, which will - * return a Bad Request status on a malformed query. */ - bool custom_emalf_handling : 1; - - /** If true, session is being rate-limited. One of the protocol layers - * is going to be the writer for this flag. */ - bool throttled : 1; -}; - -/** Allocates and initializes a new session with the specified protocol layer - * group, and the provided transport context. - * - * `layer_param` is a pointer to an array of size `layer_param_count`. The - * parameters are passed to the layer session initializers. The parameter array - * is only required to be valid before this function returns. It is up to the - * individual layer implementations to determine the lifetime of the data - * pointed to by the parameters. */ -struct session2 *session2_new(enum session2_transport_type transport_type, - enum protolayer_grp layer_grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count, - bool outgoing); - -/** Allocates and initializes a new session with the specified protocol layer - * group, using a *libuv handle* as its transport. */ -static inline struct session2 *session2_new_io(uv_handle_t *handle, - enum protolayer_grp layer_grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count, - bool outgoing) -{ - struct session2 *s = session2_new(SESSION2_TRANSPORT_IO, layer_grp, - layer_param, layer_param_count, outgoing); - s->transport.io.handle = handle; - handle->data = s; - s->uv_count++; /* Session owns the handle */ - return s; -} - -/** Allocates and initializes a new session with the specified protocol layer - * group, using a *parent session* as its transport. */ -static inline struct session2 *session2_new_child(struct session2 *parent, - enum protolayer_grp layer_grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count, - bool outgoing) -{ - struct session2 *s = session2_new(SESSION2_TRANSPORT_PARENT, layer_grp, - layer_param, layer_param_count, outgoing); - s->transport.parent = parent; - return s; -} - -/** Used when a libUV handle owned by the session is closed. Once all owned - * handles are closed, the session is freed. */ -void session2_unhandle(struct session2 *s); - -/** Start reading from the underlying transport. */ -int session2_start_read(struct session2 *session); - -/** Stop reading from the underlying transport. */ -int session2_stop_read(struct session2 *session); - -/** Gets the peer address from the specified session, iterating through the - * session hierarchy (child-to-parent) until an `_IO` session is found if - * needed. - * - * May return `NULL` if no peer is set. */ -struct sockaddr *session2_get_peer(struct session2 *s); - -/** Gets the sockname from the specified session, iterating through the - * session hierarchy (child-to-parent) until an `_IO` session is found if - * needed. - * - * May return `NULL` if no peer is set. */ -struct sockaddr *session2_get_sockname(struct session2 *s); - -/** Gets the libuv handle from the specified session, iterating through the - * session hierarchy (child-to-parent) until an `_IO` session is found if - * needed. - * - * May return `NULL` if no peer is set. */ -KR_EXPORT uv_handle_t *session2_get_handle(struct session2 *s); - -/** Start the session timer. On timeout, the specified `event` is sent in the - * `_UNWRAP` direction. Only a single timeout can be active at a time. */ -int session2_timer_start(struct session2 *s, enum protolayer_event_type event, - uint64_t timeout, uint64_t repeat); - -/** Restart the session timer without changing any of its parameters. */ -int session2_timer_restart(struct session2 *s); - -/** Stop the session timer. */ -int session2_timer_stop(struct session2 *s); - -int session2_tasklist_add(struct session2 *session, struct qr_task *task); -int session2_tasklist_del(struct session2 *session, struct qr_task *task); -struct qr_task *session2_tasklist_get_first(struct session2 *session); -struct qr_task *session2_tasklist_del_first(struct session2 *session, bool deref); -struct qr_task *session2_tasklist_find_msgid(const struct session2 *session, uint16_t msg_id); -struct qr_task *session2_tasklist_del_msgid(const struct session2 *session, uint16_t msg_id); -void session2_tasklist_finalize(struct session2 *session, int status); -int session2_tasklist_finalize_expired(struct session2 *session); - -static inline size_t session2_tasklist_get_len(const struct session2 *session) -{ - return trie_weight(session->tasks); -} - -static inline bool session2_tasklist_is_empty(const struct session2 *session) -{ - return session2_tasklist_get_len(session) == 0; -} - -int session2_waitinglist_push(struct session2 *session, struct qr_task *task); -struct qr_task *session2_waitinglist_get(const struct session2 *session); -struct qr_task *session2_waitinglist_pop(struct session2 *session, bool deref); -void session2_waitinglist_retry(struct session2 *session, bool increase_timeout_cnt); -void session2_waitinglist_finalize(struct session2 *session, int status); - -static inline size_t session2_waitinglist_get_len(const struct session2 *session) -{ - return queue_len(session->waiting); -} - -static inline bool session2_waitinglist_is_empty(const struct session2 *session) -{ - return session2_waitinglist_get_len(session) == 0; -} - -static inline bool session2_is_empty(const struct session2 *session) -{ - return session2_tasklist_is_empty(session) && - session2_waitinglist_is_empty(session); -} - -/** Penalizes the server the specified `session` is connected to, if the session - * has not been useful (see `struct session2::was_useful`). Only applies to - * `outgoing` sessions, and the session should not be connection-less. */ -void session2_penalize(struct session2 *session); - -/** Sends the specified `payload` to be processed in the `_UNWRAP` direction by - * the session's protocol layers. - * - * The `comm` parameter may contain a pointer to comm data, e.g. for UDP, that - * comm data shall contain a pointer to the sender's `struct sockaddr_*`. If - * `comm` is `NULL`, session-wide data shall be used. - * - * Note that the payload data may be modified by any of the layers, to avoid - * making copies. Once the payload is passed to this function, the content of - * the referenced data is undefined to the caller. - * - * Once all layers are processed, `cb` is called with `baton` passed as one - * of its parameters. `cb` may also be `NULL`. See `protolayer_finished_cb` for - * more info. - * - * Returns one of `enum protolayer_ret` or a negative number - * indicating an error. */ -int session2_unwrap(struct session2 *s, struct protolayer_payload payload, - const struct comm_info *comm, protolayer_finished_cb cb, - void *baton); - -/** Same as `session2_unwrap`, but looks up the specified `protocol` in the - * session's assigned protocol group and sends the `payload` to the layer that - * is next in the sequence in the `_UNWRAP` direction. - * - * Layers may use this to generate their own data to send in the sequence, e.g. - * for protocol-specific ceremony. */ -int session2_unwrap_after(struct session2 *s, enum protolayer_protocol protocol, - struct protolayer_payload payload, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton); - -/** Sends the specified `payload` to be processed in the `_WRAP` direction by - * the session's protocol layers. The `target` parameter may contain a pointer - * to some data specific to the bottommost layer of this session. - * - * Note that the payload data may be modified by any of the layers, to avoid - * making copies. Once the payload is passed to this function, the content of - * the referenced data is undefined to the caller. - * - * Once all layers are processed, `cb` is called with `baton` passed as one - * of its parameters. `cb` may also be `NULL`. See `protolayer_finished_cb` for - * more info. - * - * Returns one of `enum protolayer_ret` or a negative number - * indicating an error. */ -int session2_wrap(struct session2 *s, struct protolayer_payload payload, - const struct comm_info *comm, protolayer_finished_cb cb, - void *baton); - -/** Same as `session2_wrap`, but looks up the specified `protocol` in the - * session's assigned protocol group and sends the `payload` to the layer that - * is next in the sequence in the `_WRAP` direction. - * - * Layers may use this to generate their own data to send in the sequence, e.g. - * for protocol-specific ceremony. */ -int session2_wrap_after(struct session2 *s, enum protolayer_protocol protocol, - struct protolayer_payload payload, - const struct comm_info *comm, - protolayer_finished_cb cb, void *baton); - -/** Sends an event to be synchronously processed by the protocol layers of the - * specified session. The layers are first iterated through in the `_UNWRAP` - * direction, then bounced back in the `_WRAP` direction. */ -void session2_event(struct session2 *s, enum protolayer_event_type event, void *baton); - -/** Sends an event to be synchronously processed by the protocol layers of the - * specified session, starting from the specified `protocol` in the `_UNWRAP` - * direction. The layers are first iterated through in the `_UNWRAP` direction, - * then bounced back in the `_WRAP` direction. - * - * NOTE: The bounced iteration does not exclude any layers - the layer - * specified by `protocol` and those before it are only skipped in the - * `_UNWRAP` direction! */ -void session2_event_after(struct session2 *s, enum protolayer_protocol protocol, - enum protolayer_event_type event, void *baton); - -/** Sends a `PROTOLAYER_EVENT_CLOSE` event to be processed by the protocol - * layers of the specified session. This function exists for readability - * reasons, to signal the intent that sending this event is used to actually - * close the session. */ -static inline void session2_close(struct session2 *s) -{ - session2_event(s, PROTOLAYER_EVENT_CLOSE, NULL); -} - -/** Sends a `PROTOLAYER_EVENT_FORCE_CLOSE` event to be processed by the - * protocol layers of the specified session. This function exists for - * readability reasons, to signal the intent that sending this event is used to - * actually close the session. */ -static inline void session2_force_close(struct session2 *s) -{ - session2_event(s, PROTOLAYER_EVENT_FORCE_CLOSE, NULL); -} - -/** Performs initial setup of the specified `req`, using the session's protocol - * layers. Layers are processed in the `_UNWRAP` direction. */ -void session2_init_request(struct session2 *s, struct kr_request *req); - -/** Removes the specified request task from the session's tasklist. The session - * must be outgoing. If the session is UDP, a signal to close is also sent to it. */ -void session2_kill_ioreq(struct session2 *session, struct qr_task *task); - -/** Update `last_activity` to the current timestamp. */ -static inline void session2_touch(struct session2 *session) -{ - session->last_activity = kr_now(); -} diff --git a/daemon/tls.c b/daemon/tls.c deleted file mode 100644 index e8dff76c5..000000000 --- a/daemon/tls.c +++ /dev/null @@ -1,1346 +0,0 @@ -/* - * Copyright (C) 2016 American Civil Liberties Union (ACLU) - * Copyright (C) CZ.NIC, z.s.p.o - * - * Initial Author: Daniel Kahn Gillmor - * Ondřej Surý - * - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "contrib/ucw/lib.h" -#include "contrib/base64.h" -#include "daemon/tls.h" -#include "daemon/worker.h" -#include "daemon/session2.h" - -#define EPHEMERAL_CERT_EXPIRATION_SECONDS_RENEW_BEFORE (60*60*24*7) -#define GNUTLS_PIN_MIN_VERSION 0x030400 -#define UNWRAP_BUF_SIZE 131072 -#define TLS_CHUNK_SIZE (16 * 1024) - -#define VERBOSE_MSG(cl_side, ...)\ - if (cl_side) \ - kr_log_debug(TLSCLIENT, __VA_ARGS__); \ - else \ - kr_log_debug(TLS, __VA_ARGS__); - -static const gnutls_datum_t tls_grp_alpn[PROTOLAYER_GRP_COUNT] = { - [PROTOLAYER_GRP_DOTLS] = { (uint8_t *)"dot", 3 }, - [PROTOLAYER_GRP_DOHTTPS] = { (uint8_t *)"h2", 2 }, -}; - -typedef enum tls_client_hs_state { - TLS_HS_NOT_STARTED = 0, - TLS_HS_IN_PROGRESS, - TLS_HS_DONE, - TLS_HS_CLOSING, - TLS_HS_LAST -} tls_hs_state_t; - -struct pl_tls_sess_data { - struct protolayer_data h; - bool client_side; - bool first_handshake_done; - gnutls_session_t tls_session; - tls_hs_state_t handshake_state; - protolayer_iter_ctx_queue_t unwrap_queue; - protolayer_iter_ctx_queue_t wrap_queue; - struct wire_buf unwrap_buf; - size_t write_queue_size; - union { - struct tls_credentials *server_credentials; - tls_client_param_t *client_params; /**< Ref-counted. */ - }; -}; - - -struct tls_credentials * tls_get_ephemeral_credentials(void); -void tls_credentials_log_pins(struct tls_credentials *tls_credentials); -static int client_verify_certificate(gnutls_session_t tls_session); -static struct tls_credentials *tls_credentials_reserve(struct tls_credentials *tls_credentials); - -/** - * Set restrictions on TLS features, in particular ciphers. - * - * We explicitly disable features according to: - * https://datatracker.ietf.org/doc/html/rfc8310#section-9 - * in case the gnutls+OS defaults allow them. - * Performance optimizations are not implemented at the moment. - * - * OS defaults are taken into account, e.g. on Red Hat family there's - * /etc/crypto-policies/back-ends/gnutls.config and update-crypto-policies tool. - */ -static int kres_gnutls_set_priority(gnutls_session_t session) { - static const char * const extra_prio = - "-VERS-TLS1.0:-VERS-TLS1.1:-VERS-SSL3.0:-ARCFOUR-128:-COMP-ALL:+COMP-NULL"; - const char *errpos = NULL; - int err = gnutls_set_default_priority_append(session, extra_prio, &errpos, 0); - if (err != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "setting priority '%s' failed at character %zd (...'%s') with %s (%d)\n", - extra_prio, errpos - extra_prio, errpos, gnutls_strerror_name(err), err); - } - return err; -} - -static ssize_t kres_gnutls_pull(gnutls_transport_ptr_t h, void *buf, size_t len) -{ - struct pl_tls_sess_data *tls = h; - if (kr_fails_assert(tls)) { - errno = EFAULT; - return -1; - } - - bool avail = protolayer_queue_has_payload(&tls->unwrap_queue); - VERBOSE_MSG(tls->client_side, "pull wanted: %zu avail: %s\n", - len, avail ? "yes" : "no"); - if (!avail) { - errno = EAGAIN; - return -1; - } - - char *dest = buf; - size_t transfer = 0; - while (queue_len(tls->unwrap_queue) > 0 && len > 0) { - struct protolayer_iter_ctx *ctx = queue_head(tls->unwrap_queue); - struct protolayer_payload *pld = &ctx->payload; - - bool fully_consumed = false; - if (pld->type == PROTOLAYER_PAYLOAD_BUFFER) { - size_t to_copy = MIN(len, pld->buffer.len); - - memcpy(dest, pld->buffer.buf, to_copy); - dest += to_copy; - len -= to_copy; - pld->buffer.buf = (char *)pld->buffer.buf + to_copy; - pld->buffer.len -= to_copy; - transfer += to_copy; - - if (pld->buffer.len == 0) - fully_consumed = true; - } else if (pld->type == PROTOLAYER_PAYLOAD_IOVEC) { - while (pld->iovec.cnt && len > 0) { - struct iovec *iov = pld->iovec.iov; - size_t to_copy = MIN(len, iov->iov_len); - - memcpy(dest, iov->iov_base, to_copy); - dest += to_copy; - len -= to_copy; - iov->iov_base = ((char *)iov->iov_base) + to_copy; - iov->iov_len -= to_copy; - transfer += to_copy; - - if (iov->iov_len == 0) { - pld->iovec.iov++; - pld->iovec.cnt--; - } - } - - if (pld->iovec.cnt == 0) - fully_consumed = true; - } else if (pld->type == PROTOLAYER_PAYLOAD_WIRE_BUF) { - size_t wbl = wire_buf_data_length(pld->wire_buf); - size_t to_copy = MIN(len, wbl); - memcpy(dest, wire_buf_data(pld->wire_buf), to_copy); - dest += to_copy; - len -= to_copy; - transfer += to_copy; - - wire_buf_trim(pld->wire_buf, to_copy); - if (wire_buf_data_length(pld->wire_buf) == 0) { - wire_buf_reset(pld->wire_buf); - fully_consumed = true; - } - } else if (!pld->type) { - fully_consumed = true; - } else { - kr_assert(false && "Unsupported payload type"); - errno = EFAULT; - return -1; - } - - if (!fully_consumed) /* `len` was smaller than the sum of payloads */ - break; - - if (queue_len(tls->unwrap_queue) > 1) { - /* Finalize queued contexts, except for the last one. */ - protolayer_break(ctx, kr_ok()); - queue_pop(tls->unwrap_queue); - } else { - /* The last queued context will `continue` on the next - * `gnutls_record_recv`. */ - ctx->payload.type = PROTOLAYER_PAYLOAD_NULL; - break; - } - } - - VERBOSE_MSG(tls->client_side, "pull transfer: %zu\n", transfer); - return transfer; -} - -struct kres_gnutls_push_ctx { - struct pl_tls_sess_data *sess_data; - struct iovec iov[]; -}; - -static void kres_gnutls_push_finished(int status, struct session2 *session, - const struct comm_info *comm, void *baton) -{ - struct kres_gnutls_push_ctx *push_ctx = baton; - struct pl_tls_sess_data *tls = push_ctx->sess_data; - while (queue_len(tls->wrap_queue)) { - struct protolayer_iter_ctx *ctx = queue_head(tls->wrap_queue); - protolayer_break(ctx, kr_ok()); - queue_pop(tls->wrap_queue); - } - free(push_ctx); -} - -static ssize_t kres_gnutls_vec_push(gnutls_transport_ptr_t h, const giovec_t * iov, int iovcnt) -{ - struct pl_tls_sess_data *tls = h; - if (kr_fails_assert(tls)) { - errno = EFAULT; - return -1; - } - - if (iovcnt == 0) { - return 0; - } - - size_t total_len = 0; - for (int i = 0; i < iovcnt; i++) - total_len += iov[i].iov_len; - - struct kres_gnutls_push_ctx *push_ctx = - malloc(sizeof(*push_ctx) + sizeof(struct iovec[iovcnt])); - kr_require(push_ctx); - push_ctx->sess_data = tls; - memcpy(push_ctx->iov, iov, sizeof(struct iovec[iovcnt])); - - session2_wrap_after(tls->h.session, PROTOLAYER_PROTOCOL_TLS, - protolayer_iovec(push_ctx->iov, iovcnt, true), NULL, - kres_gnutls_push_finished, push_ctx); - - return total_len; -} - -static void tls_handshake_success(struct pl_tls_sess_data *tls, - struct session2 *session) -{ - if (tls->client_side) { - tls_client_param_t *tls_params = tls->client_params; - gnutls_session_t tls_session = tls->tls_session; - if (gnutls_session_is_resumed(tls_session) != 0) { - kr_log_debug(TLSCLIENT, "TLS session has resumed\n"); - } else { - kr_log_debug(TLSCLIENT, "TLS session has not resumed\n"); - /* session wasn't resumed, delete old session data ... */ - if (tls_params->session_data.data != NULL) { - gnutls_free(tls_params->session_data.data); - tls_params->session_data.data = NULL; - tls_params->session_data.size = 0; - } - /* ... and get the new session data */ - gnutls_datum_t tls_session_data = { NULL, 0 }; - int ret = gnutls_session_get_data2(tls_session, &tls_session_data); - if (ret == 0) { - tls_params->session_data = tls_session_data; - } - } - } - if (!tls->first_handshake_done) { - session2_event_after(session, PROTOLAYER_PROTOCOL_TLS, - PROTOLAYER_EVENT_CONNECT, NULL); - tls->first_handshake_done = true; - } -} - -/** Perform TLS handshake and handle error codes according to the documentation. - * See See https://gnutls.org/manual/html_node/TLS-handshake.html#TLS-handshake - * The function returns kr_ok() or success or non fatal error, kr_error(EAGAIN) on blocking, or kr_error(EIO) on fatal error. - */ -static int tls_handshake(struct pl_tls_sess_data *tls, struct session2 *session) -{ - int err = gnutls_handshake(tls->tls_session); - if (err == GNUTLS_E_SUCCESS) { - /* Handshake finished, return success */ - tls->handshake_state = TLS_HS_DONE; - struct sockaddr *peer = session2_get_peer(session); - VERBOSE_MSG(tls->client_side, "TLS handshake with %s has completed\n", - kr_straddr(peer)); - tls_handshake_success(tls, session); - } else if (err == GNUTLS_E_AGAIN) { - return kr_error(EAGAIN); - } else if (gnutls_error_is_fatal(err)) { - /* Fatal errors, return error as it's not recoverable */ - VERBOSE_MSG(tls->client_side, "gnutls_handshake failed: %s (%d)\n", - gnutls_strerror_name(err), err); - /* Notify the peer about handshake failure via an alert. */ - gnutls_alert_send_appropriate(tls->tls_session, err); - enum protolayer_event_type etype = (tls->first_handshake_done) - ? PROTOLAYER_EVENT_DISCONNECT - : PROTOLAYER_EVENT_CONNECT_FAIL; - session2_event(session, etype, - (void *)KR_SELECTION_TLS_HANDSHAKE_FAILED); - return kr_error(EIO); - } else if (err == GNUTLS_E_WARNING_ALERT_RECEIVED) { - /* Handle warning when in verbose mode */ - const char *alert_name = gnutls_alert_get_name(gnutls_alert_get(tls->tls_session)); - if (alert_name != NULL) { - struct sockaddr *peer = session2_get_peer(session); - VERBOSE_MSG(tls->client_side, "TLS alert from %s received: %s\n", - kr_straddr(peer), alert_name); - } - } - return kr_ok(); -} - - -/*! Close a TLS context (call gnutls_bye()) */ -static void tls_close(struct pl_tls_sess_data *tls, struct session2 *session, bool allow_bye) -{ - if (tls == NULL || tls->tls_session == NULL || kr_fails_assert(session)) - return; - - /* Store the current session data for potential resumption of this session */ - if (session->outgoing && tls->client_params) { - gnutls_free(tls->client_params->session_data.data); - tls->client_params->session_data.data = NULL; - tls->client_params->session_data.size = 0; - gnutls_session_get_data2( - tls->tls_session, - &tls->client_params->session_data); - } - - const struct sockaddr *peer = session2_get_peer(session); - if (allow_bye && tls->handshake_state == TLS_HS_DONE) { - VERBOSE_MSG(tls->client_side, "closing tls connection to `%s`\n", - kr_straddr(peer)); - tls->handshake_state = TLS_HS_CLOSING; - gnutls_bye(tls->tls_session, GNUTLS_SHUT_RDWR); - } else { - VERBOSE_MSG(tls->client_side, "closing tls connection to `%s` (without bye)\n", - kr_straddr(peer)); - } -} - -#if TLS_CAN_USE_PINS -/* - DNS-over-TLS Out of band key-pinned authentication profile uses the - same form of pins as HPKP: - - e.g. pin-sha256="FHkyLhvI0n70E47cJlRTamTrnYVcsYdjUGbr79CfAVI=" - - DNS-over-TLS OOB key-pins: https://tools.ietf.org/html/rfc7858#appendix-A - HPKP pin reference: https://tools.ietf.org/html/rfc7469#appendix-A -*/ -#define PINLEN ((((32) * 8 + 4)/6) + 3 + 1) - -/* Compute pin_sha256 for the certificate. - * It may be in raw format - just TLS_SHA256_RAW_LEN bytes without termination, - * or it may be a base64 0-terminated string requiring up to - * TLS_SHA256_BASE64_BUFLEN bytes. - * \return error code */ -static int get_oob_key_pin(gnutls_x509_crt_t crt, char *outchar, ssize_t outchar_len, bool raw) -{ - /* TODO: simplify this function by using gnutls_x509_crt_get_key_id() */ - if (kr_fails_assert(!raw || outchar_len >= TLS_SHA256_RAW_LEN)) { - return kr_error(ENOSPC); - /* With !raw we have check inside kr_base64_encode. */ - } - gnutls_pubkey_t key; - int err = gnutls_pubkey_init(&key); - if (err != GNUTLS_E_SUCCESS) return err; - - gnutls_datum_t datum = { .data = NULL, .size = 0 }; - err = gnutls_pubkey_import_x509(key, crt, 0); - if (err != GNUTLS_E_SUCCESS) goto leave; - - err = gnutls_pubkey_export2(key, GNUTLS_X509_FMT_DER, &datum); - if (err != GNUTLS_E_SUCCESS) goto leave; - - char raw_pin[TLS_SHA256_RAW_LEN]; /* TMP buffer if raw == false */ - err = gnutls_hash_fast(GNUTLS_DIG_SHA256, datum.data, datum.size, - (raw ? outchar : raw_pin)); - if (err != GNUTLS_E_SUCCESS || raw/*success*/) - goto leave; - /* Convert to non-raw. */ - err = kr_base64_encode((uint8_t *)raw_pin, sizeof(raw_pin), - (uint8_t *)outchar, outchar_len); - if (err >= 0 && err < outchar_len) { - err = GNUTLS_E_SUCCESS; - outchar[err] = '\0'; /* kr_base64_encode() doesn't do it */ - } else if (kr_fails_assert(err < 0)) { - err = kr_error(ENOSPC); /* base64 fits but '\0' doesn't */ - outchar[outchar_len - 1] = '\0'; - } -leave: - gnutls_free(datum.data); - gnutls_pubkey_deinit(key); - return err; -} - -/*! Log DNS-over-TLS OOB key-pin form of current credentials: - * https://tools.ietf.org/html/rfc7858#appendix-A */ -void tls_credentials_log_pins(struct tls_credentials *tls_credentials) -{ - for (int index = 0;; index++) { - gnutls_x509_crt_t *certs = NULL; - unsigned int cert_count = 0; - int err = gnutls_certificate_get_x509_crt(tls_credentials->credentials, - index, &certs, &cert_count); - if (err != GNUTLS_E_SUCCESS) { - if (err != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) { - kr_log_error(TLS, "could not get X.509 certificates (%d) %s\n", - err, gnutls_strerror_name(err)); - } - return; - } - - for (int i = 0; i < cert_count; i++) { - char pin[TLS_SHA256_BASE64_BUFLEN] = { 0 }; - err = get_oob_key_pin(certs[i], pin, sizeof(pin), false); - if (err != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "could not calculate RFC 7858 OOB key-pin from cert %d (%d) %s\n", - i, err, gnutls_strerror_name(err)); - } else { - kr_log_info(TLS, "RFC 7858 OOB key-pin (%d): pin-sha256=\"%s\"\n", - i, pin); - } - gnutls_x509_crt_deinit(certs[i]); - } - gnutls_free(certs); - } -} -#else -void tls_credentials_log_pins(struct tls_credentials *tls_credentials) -{ - kr_log_debug(TLS, "could not calculate RFC 7858 OOB key-pin; GnuTLS 3.4.0+ required\n"); -} -#endif - -static int str_replace(char **where_ptr, const char *with) -{ - char *copy = with ? strdup(with) : NULL; - if (with && !copy) { - return kr_error(ENOMEM); - } - - free(*where_ptr); - *where_ptr = copy; - return kr_ok(); -} - -static time_t _get_end_entity_expiration(gnutls_certificate_credentials_t creds) -{ - gnutls_datum_t data; - gnutls_x509_crt_t cert = NULL; - int err; - time_t ret = GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION; - - if ((err = gnutls_certificate_get_crt_raw(creds, 0, 0, &data)) != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "failed to get cert to check expiration: (%d) %s\n", - err, gnutls_strerror_name(err)); - goto done; - } - if ((err = gnutls_x509_crt_init(&cert)) != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "failed to initialize cert: (%d) %s\n", - err, gnutls_strerror_name(err)); - goto done; - } - if ((err = gnutls_x509_crt_import(cert, &data, GNUTLS_X509_FMT_DER)) != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "failed to construct cert while checking expiration: (%d) %s\n", - err, gnutls_strerror_name(err)); - goto done; - } - - ret = gnutls_x509_crt_get_expiration_time (cert); - done: - /* do not free data; g_c_get_crt_raw() says to treat it as - * constant. */ - gnutls_x509_crt_deinit(cert); - return ret; -} - -int tls_certificate_set(const char *tls_cert, const char *tls_key) -{ - if (kr_fails_assert(the_network)) { - return kr_error(EINVAL); - } - - struct tls_credentials *tls_credentials = calloc(1, sizeof(*tls_credentials)); - if (tls_credentials == NULL) { - return kr_error(ENOMEM); - } - - int err = 0; - if ((err = gnutls_certificate_allocate_credentials(&tls_credentials->credentials)) != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "gnutls_certificate_allocate_credentials() failed: (%d) %s\n", - err, gnutls_strerror_name(err)); - tls_credentials_free(tls_credentials); - return kr_error(ENOMEM); - } - if ((err = gnutls_certificate_set_x509_system_trust(tls_credentials->credentials)) < 0) { - if (err != GNUTLS_E_UNIMPLEMENTED_FEATURE) { - kr_log_warning(TLS, "warning: gnutls_certificate_set_x509_system_trust() failed: (%d) %s\n", - err, gnutls_strerror_name(err)); - tls_credentials_free(tls_credentials); - return err; - } - } - - if ((str_replace(&tls_credentials->tls_cert, tls_cert) != 0) || - (str_replace(&tls_credentials->tls_key, tls_key) != 0)) { - tls_credentials_free(tls_credentials); - return kr_error(ENOMEM); - } - - if ((err = gnutls_certificate_set_x509_key_file(tls_credentials->credentials, - tls_cert, tls_key, GNUTLS_X509_FMT_PEM)) != GNUTLS_E_SUCCESS) { - tls_credentials_free(tls_credentials); - kr_log_error(TLS, "gnutls_certificate_set_x509_key_file(%s,%s) failed: %d (%s)\n", - tls_cert, tls_key, err, gnutls_strerror_name(err)); - return kr_error(EINVAL); - } - /* record the expiration date: */ - tls_credentials->valid_until = _get_end_entity_expiration(tls_credentials->credentials); - - /* Exchange the x509 credentials */ - struct tls_credentials *old_credentials = the_network->tls_credentials; - - /* Start using the new x509_credentials */ - the_network->tls_credentials = tls_credentials; - tls_credentials_log_pins(the_network->tls_credentials); - - if (old_credentials) { - err = tls_credentials_release(old_credentials); - if (err != kr_error(EBUSY)) { - return err; - } - } - - return kr_ok(); -} - -/*! Borrow TLS credentials for context. */ -static struct tls_credentials *tls_credentials_reserve(struct tls_credentials *tls_credentials) -{ - if (!tls_credentials) { - return NULL; - } - tls_credentials->count++; - return tls_credentials; -} - -/*! Release TLS credentials for context (decrements refcount or frees). */ -int tls_credentials_release(struct tls_credentials *tls_credentials) -{ - if (!tls_credentials) { - return kr_error(EINVAL); - } - if (--tls_credentials->count < 0) { - tls_credentials_free(tls_credentials); - } else { - return kr_error(EBUSY); - } - return kr_ok(); -} - -/*! Free TLS credentials, must not be called if it holds positive refcount. */ -void tls_credentials_free(struct tls_credentials *tls_credentials) -{ - if (!tls_credentials) { - return; - } - - if (tls_credentials->credentials) { - gnutls_certificate_free_credentials(tls_credentials->credentials); - } - if (tls_credentials->tls_cert) { - free(tls_credentials->tls_cert); - } - if (tls_credentials->tls_key) { - free(tls_credentials->tls_key); - } - if (tls_credentials->ephemeral_servicename) { - free(tls_credentials->ephemeral_servicename); - } - free(tls_credentials); -} - -void tls_client_param_unref(tls_client_param_t *entry) -{ - if (!entry || kr_fails_assert(entry->refs)) return; - --(entry->refs); - if (entry->refs) return; - - VERBOSE_MSG(true, "freeing TLS parameters %p\n", (void *)entry); - - for (int i = 0; i < entry->ca_files.len; ++i) { - free_const(entry->ca_files.at[i]); - } - array_clear(entry->ca_files); - - free_const(entry->hostname); - - for (int i = 0; i < entry->pins.len; ++i) { - free_const(entry->pins.at[i]); - } - array_clear(entry->pins); - - if (entry->credentials) { - gnutls_certificate_free_credentials(entry->credentials); - } - - if (entry->session_data.data) { - gnutls_free(entry->session_data.data); - } - - free(entry); -} - -static int param_free(void **param, void *null) -{ - if (kr_fails_assert(param && *param)) - return -1; - tls_client_param_unref(*param); - return 0; -} - -void tls_client_params_free(tls_client_params_t *params) -{ - if (!params) return; - trie_apply(params, param_free, NULL); - trie_free(params); -} - -tls_client_param_t * tls_client_param_new(void) -{ - tls_client_param_t *e = calloc(1, sizeof(*e)); - if (kr_fails_assert(e)) - return NULL; - /* Note: those array_t don't need further initialization. */ - e->refs = 1; - int ret = gnutls_certificate_allocate_credentials(&e->credentials); - if (ret != GNUTLS_E_SUCCESS) { - kr_log_error(TLSCLIENT, "error: gnutls_certificate_allocate_credentials() fails (%s)\n", - gnutls_strerror_name(ret)); - free(e); - return NULL; - } - gnutls_certificate_set_verify_function(e->credentials, client_verify_certificate); - return e; -} - -/** - * Convert an IP address and port number to binary key. - * - * \precond buffer \param key must have sufficient size - * \param addr[in] - * \param len[out] output length - * \param key[out] output buffer - */ -static bool construct_key(const union kr_sockaddr *addr, uint32_t *len, char *key) -{ - switch (addr->ip.sa_family) { - case AF_INET: - memcpy(key, &addr->ip4.sin_port, sizeof(addr->ip4.sin_port)); - memcpy(key + sizeof(addr->ip4.sin_port), &addr->ip4.sin_addr, - sizeof(addr->ip4.sin_addr)); - *len = sizeof(addr->ip4.sin_port) + sizeof(addr->ip4.sin_addr); - return true; - case AF_INET6: - memcpy(key, &addr->ip6.sin6_port, sizeof(addr->ip6.sin6_port)); - memcpy(key + sizeof(addr->ip6.sin6_port), &addr->ip6.sin6_addr, - sizeof(addr->ip6.sin6_addr)); - *len = sizeof(addr->ip6.sin6_port) + sizeof(addr->ip6.sin6_addr); - return true; - default: - kr_assert(!EINVAL); - return false; - } -} - -tls_client_param_t **tls_client_param_getptr(tls_client_params_t **params, - const struct sockaddr *addr, bool do_insert) -{ - if (kr_fails_assert(params && addr)) - return NULL; - /* We accept NULL for empty map; ensure the map exists if needed. */ - if (!*params) { - if (!do_insert) return NULL; - *params = trie_create(NULL); - if (kr_fails_assert(*params)) - return NULL; - } - /* Construct the key. */ - const union kr_sockaddr *ia = (const union kr_sockaddr *)addr; - char key[sizeof(ia->ip6.sin6_port) + sizeof(ia->ip6.sin6_addr)]; - uint32_t len; - if (!construct_key(ia, &len, key)) - return NULL; - /* Get the entry. */ - return (tls_client_param_t **) - (do_insert ? trie_get_ins : trie_get_try)(*params, key, len); -} - -int tls_client_param_remove(tls_client_params_t *params, const struct sockaddr *addr) -{ - const union kr_sockaddr *ia = (const union kr_sockaddr *)addr; - char key[sizeof(ia->ip6.sin6_port) + sizeof(ia->ip6.sin6_addr)]; - uint32_t len; - if (!construct_key(ia, &len, key)) - return kr_error(EINVAL); - trie_val_t param_ptr; - int ret = trie_del(params, key, len, ¶m_ptr); - if (ret != KNOT_EOK) - return kr_error(ret); - tls_client_param_unref(param_ptr); - return kr_ok(); -} - -/** - * Verify that at least one certificate in the certificate chain matches - * at least one certificate pin in the non-empty params->pins array. - * \returns GNUTLS_E_SUCCESS if pin matches, any other value is an error - */ -static int client_verify_pin(const unsigned int cert_list_size, - const gnutls_datum_t *cert_list, - tls_client_param_t *params) -{ - if (kr_fails_assert(params->pins.len > 0)) - return GNUTLS_E_CERTIFICATE_ERROR; -#if TLS_CAN_USE_PINS - for (int i = 0; i < cert_list_size; i++) { - gnutls_x509_crt_t cert; - int ret = gnutls_x509_crt_init(&cert); - if (ret != GNUTLS_E_SUCCESS) { - return ret; - } - - ret = gnutls_x509_crt_import(cert, &cert_list[i], GNUTLS_X509_FMT_DER); - if (ret != GNUTLS_E_SUCCESS) { - gnutls_x509_crt_deinit(cert); - return ret; - } - - #ifdef DEBUG - if (kr_log_is_debug(TLS, NULL)) { - char pin_base64[TLS_SHA256_BASE64_BUFLEN]; - /* DEBUG: additionally compute and print the base64 pin. - * Not very efficient, but that's OK for DEBUG. */ - ret = get_oob_key_pin(cert, pin_base64, sizeof(pin_base64), false); - if (ret == GNUTLS_E_SUCCESS) { - VERBOSE_MSG(true, "received pin: %s\n", pin_base64); - } else { - VERBOSE_MSG(true, "failed to convert received pin\n"); - /* Now we hope that `ret` below can't differ. */ - } - } - #endif - char cert_pin[TLS_SHA256_RAW_LEN]; - /* Get raw pin and compare. */ - ret = get_oob_key_pin(cert, cert_pin, sizeof(cert_pin), true); - gnutls_x509_crt_deinit(cert); - if (ret != GNUTLS_E_SUCCESS) { - return ret; - } - for (size_t j = 0; j < params->pins.len; ++j) { - const uint8_t *pin = params->pins.at[j]; - if (memcmp(cert_pin, pin, TLS_SHA256_RAW_LEN) != 0) - continue; /* mismatch */ - VERBOSE_MSG(true, "matched a configured pin no. %zd\n", j); - return GNUTLS_E_SUCCESS; - } - VERBOSE_MSG(true, "none of %zd configured pin(s) matched\n", - params->pins.len); - } - - kr_log_error(TLSCLIENT, "no pin matched: %zu pins * %d certificates\n", - params->pins.len, cert_list_size); - return GNUTLS_E_CERTIFICATE_ERROR; - -#else /* TLS_CAN_USE_PINS */ - kr_log_error(TLSCLIENT, "internal inconsistency: TLS_CAN_USE_PINS\n"); - kr_assert(false); - return GNUTLS_E_CERTIFICATE_ERROR; -#endif -} - -/** - * Verify that \param tls_session contains a valid X.509 certificate chain - * with given hostname. - * - * \returns GNUTLS_E_SUCCESS if certificate chain is valid, any other value is an error - */ -static int client_verify_certchain(gnutls_session_t tls_session, const char *hostname) -{ - if (kr_fails_assert(hostname)) { - kr_log_error(TLSCLIENT, "internal config inconsistency: no hostname set\n"); - return GNUTLS_E_CERTIFICATE_ERROR; - } - - unsigned int status; - int ret = gnutls_certificate_verify_peers3(tls_session, hostname, &status); - if ((ret == GNUTLS_E_SUCCESS) && (status == 0)) { - return GNUTLS_E_SUCCESS; - } - - if (ret == GNUTLS_E_SUCCESS) { - gnutls_datum_t msg; - ret = gnutls_certificate_verification_status_print( - status, gnutls_certificate_type_get(tls_session), &msg, 0); - if (ret == GNUTLS_E_SUCCESS) { - kr_log_error(TLSCLIENT, "failed to verify peer certificate: " - "%s\n", msg.data); - gnutls_free(msg.data); - } else { - kr_log_error(TLSCLIENT, "failed to verify peer certificate: " - "unable to print reason: %s (%s)\n", - gnutls_strerror(ret), gnutls_strerror_name(ret)); - } /* gnutls_certificate_verification_status_print end */ - } else { - kr_log_error(TLSCLIENT, "failed to verify peer certificate: " - "gnutls_certificate_verify_peers3 error: %s (%s)\n", - gnutls_strerror(ret), gnutls_strerror_name(ret)); - } /* gnutls_certificate_verify_peers3 end */ - return GNUTLS_E_CERTIFICATE_ERROR; -} - -/** - * Verify that actual TLS security parameters of \param tls_session - * match requirements provided by user in tls_session->params. - * \returns GNUTLS_E_SUCCESS if requirements were met, any other value is an error - */ -static int client_verify_certificate(gnutls_session_t tls_session) -{ - struct pl_tls_sess_data *tls = gnutls_session_get_ptr(tls_session); - if (kr_fails_assert(tls->client_params)) - return GNUTLS_E_CERTIFICATE_ERROR; - - if (tls->client_params->insecure) { - return GNUTLS_E_SUCCESS; - } - - gnutls_certificate_type_t cert_type = gnutls_certificate_type_get(tls_session); - if (cert_type != GNUTLS_CRT_X509) { - kr_log_error(TLSCLIENT, "invalid certificate type %i has been received\n", - cert_type); - return GNUTLS_E_CERTIFICATE_ERROR; - } - unsigned int cert_list_size = 0; - const gnutls_datum_t *cert_list = - gnutls_certificate_get_peers(tls_session, &cert_list_size); - if (cert_list == NULL || cert_list_size == 0) { - kr_log_error(TLSCLIENT, "empty certificate list\n"); - return GNUTLS_E_CERTIFICATE_ERROR; - } - - if (tls->client_params->pins.len > 0) - /* check hash of the certificate but ignore everything else */ - return client_verify_pin(cert_list_size, cert_list, tls->client_params); - else - return client_verify_certchain(tls->tls_session, tls->client_params->hostname); -} - -static int tls_pull_timeout_func(gnutls_transport_ptr_t h, unsigned int ms) -{ - struct pl_tls_sess_data *tls = h; - if (kr_fails_assert(tls)) { - errno = EFAULT; - return -1; - } - - size_t avail = protolayer_queue_count_payload(&tls->unwrap_queue); - VERBOSE_MSG(tls->client_side, "timeout check: available: %zu\n", avail); - if (!avail) { - errno = EAGAIN; - return -1; - } - return avail; -} - -static int pl_tls_sess_data_deinit(struct pl_tls_sess_data *tls) -{ - if (tls->tls_session) { - /* Don't terminate TLS connection, just tear it down */ - gnutls_deinit(tls->tls_session); - tls->tls_session = NULL; - } - - if (tls->client_side) { - tls_client_param_unref(tls->client_params); - } else { - tls_credentials_release(tls->server_credentials); - } - wire_buf_deinit(&tls->unwrap_buf); - queue_deinit(tls->unwrap_queue); /* TODO: break contexts? */ - return kr_ok(); -} - -static int pl_tls_sess_server_init(struct protolayer_manager *manager, - struct pl_tls_sess_data *tls) -{ - if (kr_fails_assert(the_worker && the_engine)) - return kr_error(EINVAL); - - if (!the_network->tls_credentials) { - the_network->tls_credentials = tls_get_ephemeral_credentials(); - if (!the_network->tls_credentials) { - kr_log_error(TLS, "X.509 credentials are missing, and ephemeral credentials failed; no TLS\n"); - return kr_error(EINVAL); - } - kr_log_info(TLS, "Using ephemeral TLS credentials\n"); - tls_credentials_log_pins(the_network->tls_credentials); - } - - time_t now = time(NULL); - if (the_network->tls_credentials->valid_until != GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION) { - if (the_network->tls_credentials->ephemeral_servicename) { - /* ephemeral cert: refresh if due to expire within a week */ - if (now >= the_network->tls_credentials->valid_until - EPHEMERAL_CERT_EXPIRATION_SECONDS_RENEW_BEFORE) { - struct tls_credentials *newcreds = tls_get_ephemeral_credentials(); - if (newcreds) { - tls_credentials_release(the_network->tls_credentials); - the_network->tls_credentials = newcreds; - kr_log_info(TLS, "Renewed expiring ephemeral X.509 cert\n"); - } else { - kr_log_error(TLS, "Failed to renew expiring ephemeral X.509 cert, using existing one\n"); - } - } - } else { - /* non-ephemeral cert: warn once when certificate expires */ - if (now >= the_network->tls_credentials->valid_until) { - kr_log_error(TLS, "X.509 certificate has expired!\n"); - the_network->tls_credentials->valid_until = GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION; - } - } - } - - int flags = GNUTLS_SERVER | GNUTLS_NONBLOCK; -#if GNUTLS_VERSION_NUMBER >= 0x030705 - if (gnutls_check_version("3.7.5")) - flags |= GNUTLS_NO_TICKETS_TLS12; -#endif - int ret = gnutls_init(&tls->tls_session, flags); - if (ret != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "gnutls_init(): %s (%d)\n", gnutls_strerror_name(ret), ret); - pl_tls_sess_data_deinit(tls); - return ret; - } - - tls->server_credentials = tls_credentials_reserve(the_network->tls_credentials); - ret = gnutls_credentials_set(tls->tls_session, GNUTLS_CRD_CERTIFICATE, - tls->server_credentials->credentials); - if (ret != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "gnutls_credentials_set(): %s (%d)\n", gnutls_strerror_name(ret), ret); - pl_tls_sess_data_deinit(tls); - return ret; - } - - ret = kres_gnutls_set_priority(tls->tls_session); - if (ret != GNUTLS_E_SUCCESS) { - pl_tls_sess_data_deinit(tls); - return ret; - } - - tls->client_side = false; - wire_buf_init(&tls->unwrap_buf, UNWRAP_BUF_SIZE); - - gnutls_transport_set_pull_function(tls->tls_session, kres_gnutls_pull); - gnutls_transport_set_vec_push_function(tls->tls_session, kres_gnutls_vec_push); - gnutls_transport_set_ptr(tls->tls_session, tls); - - if (the_network->tls_session_ticket_ctx) { - tls_session_ticket_enable(the_network->tls_session_ticket_ctx, - tls->tls_session); - } - - const gnutls_datum_t *alpn = &tls_grp_alpn[manager->grp]; - if (alpn->size) { /* ALPN is a non-empty string */ - flags = 0; -#if GNUTLS_VERSION_NUMBER >= 0x030500 - /* Mandatory ALPN means the protocol must match if and - * only if ALPN extension is used by the client. */ - flags |= GNUTLS_ALPN_MANDATORY; -#endif - - ret = gnutls_alpn_set_protocols(tls->tls_session, alpn, 1, flags); - if (ret != GNUTLS_E_SUCCESS) { - kr_log_error(TLS, "gnutls_alpn_set_protocols(): %s (%d)\n", gnutls_strerror_name(ret), ret); - pl_tls_sess_data_deinit(tls); - return ret; - } - } - - return kr_ok(); -} - -static int pl_tls_sess_client_init(struct protolayer_manager *manager, - struct pl_tls_sess_data *tls, - tls_client_param_t *param) -{ - unsigned int flags = GNUTLS_CLIENT | GNUTLS_NONBLOCK -#ifdef GNUTLS_ENABLE_FALSE_START - | GNUTLS_ENABLE_FALSE_START -#endif - ; -#if GNUTLS_VERSION_NUMBER >= 0x030705 - if (gnutls_check_version("3.7.5")) - flags |= GNUTLS_NO_TICKETS_TLS12; -#endif - int ret = gnutls_init(&tls->tls_session, flags); - if (ret != GNUTLS_E_SUCCESS) { - pl_tls_sess_data_deinit(tls); - return ret; - } - - ret = kres_gnutls_set_priority(tls->tls_session); - if (ret != GNUTLS_E_SUCCESS) { - pl_tls_sess_data_deinit(tls); - return ret; - } - - /* Must take a reference on parameters as the credentials are owned by it - * and must not be freed while the session is active. */ - ++(param->refs); - tls->client_params = param; - - ret = gnutls_credentials_set(tls->tls_session, GNUTLS_CRD_CERTIFICATE, - param->credentials); - if (ret == GNUTLS_E_SUCCESS && param->hostname) { - ret = gnutls_server_name_set(tls->tls_session, GNUTLS_NAME_DNS, - param->hostname, strlen(param->hostname)); - kr_log_debug(TLSCLIENT, "set hostname, ret = %d\n", ret); - } else if (!param->hostname) { - kr_log_debug(TLSCLIENT, "no hostname\n"); - } - - if (ret != GNUTLS_E_SUCCESS) { - pl_tls_sess_data_deinit(tls); - return ret; - } - - tls->client_side = true; - wire_buf_init(&tls->unwrap_buf, UNWRAP_BUF_SIZE); - - gnutls_transport_set_pull_function(tls->tls_session, kres_gnutls_pull); - gnutls_transport_set_vec_push_function(tls->tls_session, kres_gnutls_vec_push); - gnutls_transport_set_ptr(tls->tls_session, tls); - - return kr_ok(); -} - -static int pl_tls_sess_init(struct protolayer_manager *manager, - void *sess_data, - void *param) -{ - struct pl_tls_sess_data *tls = sess_data; - manager->session->secure = true; - queue_init(tls->unwrap_queue); - queue_init(tls->wrap_queue); - if (manager->session->outgoing) - return pl_tls_sess_client_init(manager, tls, param); - else - return pl_tls_sess_server_init(manager, tls); -} - -static int pl_tls_sess_deinit(struct protolayer_manager *manager, - void *sess_data) -{ - return pl_tls_sess_data_deinit(sess_data); -} - -static enum protolayer_iter_cb_result pl_tls_unwrap(void *sess_data, void *iter_data, - struct protolayer_iter_ctx *ctx) -{ - int brstatus = kr_ok(); - struct pl_tls_sess_data *tls = sess_data; - struct session2 *s = ctx->manager->session; - - queue_push(tls->unwrap_queue, ctx); - - /* Ensure TLS handshake is performed before receiving data. - * See https://www.gnutls.org/manual/html_node/TLS-handshake.html */ - while (tls->handshake_state <= TLS_HS_IN_PROGRESS) { - int err = tls_handshake(tls, s); - if (err == kr_error(EAGAIN)) { - return protolayer_async(); /* Wait for more data */ - } else if (err != kr_ok()) { - brstatus = err; - goto exit_break; - } - } - - /* See https://gnutls.org/manual/html_node/Data-transfer-and-termination.html#Data-transfer-and-termination */ - while (true) { - ssize_t count = gnutls_record_recv(tls->tls_session, - wire_buf_free_space(&tls->unwrap_buf), - wire_buf_free_space_length(&tls->unwrap_buf)); - if (count == GNUTLS_E_AGAIN) { - if (!protolayer_queue_has_payload(&tls->unwrap_queue)) { - /* See https://www.gnutls.org/manual/html_node/Asynchronous-operation.html */ - break; - } - continue; - } else if (count == GNUTLS_E_INTERRUPTED) { - continue; - } else if (count == GNUTLS_E_REHANDSHAKE) { - /* See https://www.gnutls.org/manual/html_node/Re_002dauthentication.html */ - struct sockaddr *peer = session2_get_peer(s); - VERBOSE_MSG(tls->client_side, "TLS rehandshake with %s has started\n", - kr_straddr(peer)); - tls->handshake_state = TLS_HS_IN_PROGRESS; - int err = kr_ok(); - while (tls->handshake_state <= TLS_HS_IN_PROGRESS) { - err = tls_handshake(tls, s); - if (err == kr_error(EAGAIN)) { - break; - } else if (err != kr_ok()) { - brstatus = err; - goto exit_break; - } - } - if (err == kr_error(EAGAIN)) { - /* pull function is out of data */ - break; - } - /* There are can be data available, check it. */ - continue; - } else if (count < 0) { - VERBOSE_MSG(tls->client_side, "gnutls_record_recv failed: %s (%zd)\n", - gnutls_strerror_name(count), count); - brstatus = kr_error(EIO); - goto exit_break; - } else if (count == 0) { - break; - } - VERBOSE_MSG(tls->client_side, "received %zd data\n", count); - wire_buf_consume(&tls->unwrap_buf, count); - if (wire_buf_free_space_length(&tls->unwrap_buf) == 0 && protolayer_queue_has_payload(&tls->unwrap_queue) > 0) { - /* wire buffer is full but not all data was consumed */ - brstatus = kr_error(ENOSPC); - goto exit_break; - } - - if (kr_fails_assert(queue_len(tls->unwrap_queue) == 1)) { - brstatus = kr_error(EINVAL); - goto exit_break; - } - - struct protolayer_iter_ctx *ctx_head = queue_head(tls->unwrap_queue); - if (kr_fails_assert(ctx == ctx_head)) { - protolayer_break(ctx, kr_error(EINVAL)); - ctx = ctx_head; - } - } - - /* Here all data must be consumed. */ - if (protolayer_queue_has_payload(&tls->unwrap_queue)) { - /* Something went wrong, better return error. - * This is most probably due to gnutls_record_recv() did not - * consume all available network data by calling kres_gnutls_pull(). - * TODO assess the need for buffering of data amount. - */ - brstatus = kr_error(ENOSPC); - goto exit_break; - } - - struct protolayer_iter_ctx *ctx_head = queue_head(tls->unwrap_queue); - if (!kr_fails_assert(ctx == ctx_head)) - queue_pop(tls->unwrap_queue); - ctx->payload = protolayer_wire_buf(&tls->unwrap_buf, false); - return protolayer_continue(ctx); - -exit_break: - ctx_head = queue_head(tls->unwrap_queue); - if (!kr_fails_assert(ctx == ctx_head)) - queue_pop(tls->unwrap_queue); - return protolayer_break(ctx, brstatus); -} - -static ssize_t pl_tls_submit(gnutls_session_t tls_session, - struct protolayer_payload payload) -{ - if (payload.type == PROTOLAYER_PAYLOAD_WIRE_BUF) - payload = protolayer_as_buffer(&payload); - - if (payload.type == PROTOLAYER_PAYLOAD_BUFFER) { - ssize_t count = gnutls_record_send(tls_session, - payload.buffer.buf, payload.buffer.len); - if (count < 0) - return count; - - return payload.buffer.len; - } else if (payload.type == PROTOLAYER_PAYLOAD_IOVEC) { - ssize_t total_submitted = 0; - for (int i = 0; i < payload.iovec.cnt; i++) { - struct iovec iov = payload.iovec.iov[i]; - ssize_t count = gnutls_record_send(tls_session, - iov.iov_base, iov.iov_len); - if (count < 0) - return count; - - total_submitted += iov.iov_len; - } - return total_submitted; - } - - kr_assert(false && "Invalid payload"); - return kr_error(EINVAL); -} - -static enum protolayer_iter_cb_result pl_tls_wrap( - void *sess_data, void *iter_data, - struct protolayer_iter_ctx *ctx) -{ - struct pl_tls_sess_data *tls = sess_data; - gnutls_session_t tls_session = tls->tls_session; - - gnutls_record_cork(tls_session); - - ssize_t submitted = pl_tls_submit(tls_session, ctx->payload); - if (submitted < 0) { - VERBOSE_MSG(tls->client_side, "pl_tls_submit failed: %s (%zd)\n", - gnutls_strerror_name(submitted), submitted); - return protolayer_break(ctx, submitted); - } - queue_push(tls->wrap_queue, ctx); - - int ret = gnutls_record_uncork(tls_session, GNUTLS_RECORD_WAIT); - if (ret < 0) { - if (!gnutls_error_is_fatal(ret)) { - queue_pop(tls->wrap_queue); - return protolayer_break(ctx, kr_error(EAGAIN)); - } else { - queue_pop(tls->wrap_queue); - VERBOSE_MSG(tls->client_side, "gnutls_record_uncork failed: %s (%d)\n", - gnutls_strerror_name(ret), ret); - return protolayer_break(ctx, kr_error(EIO)); - } - } - - if (ret != submitted) { - kr_log_error(TLS, "gnutls_record_uncork didn't send all data (%d of %zd)\n", ret, submitted); - return protolayer_break(ctx, kr_error(EIO)); - } - - return protolayer_async(); -} - -static enum protolayer_event_cb_result pl_tls_client_connect_start( - struct pl_tls_sess_data *tls, struct session2 *session) -{ - if (tls->handshake_state != TLS_HS_NOT_STARTED) - return PROTOLAYER_EVENT_CONSUME; - - if (kr_fails_assert(session->outgoing)) - return PROTOLAYER_EVENT_CONSUME; - - gnutls_session_set_ptr(tls->tls_session, tls); - gnutls_handshake_set_timeout(tls->tls_session, the_network->tcp.tls_handshake_timeout); - gnutls_transport_set_pull_timeout_function(tls->tls_session, tls_pull_timeout_func); - tls->handshake_state = TLS_HS_IN_PROGRESS; - - tls_client_param_t *tls_params = tls->client_params; - if (tls_params->session_data.data != NULL) { - gnutls_session_set_data(tls->tls_session, tls_params->session_data.data, - tls_params->session_data.size); - } - - /* See https://www.gnutls.org/manual/html_node/Asynchronous-operation.html */ - while (tls->handshake_state <= TLS_HS_IN_PROGRESS) { - int ret = tls_handshake(tls, session); - if (ret != kr_ok()) { - if (ret == kr_error(EAGAIN)) { - session2_timer_stop(session); - session2_timer_start(session, - PROTOLAYER_EVENT_GENERAL_TIMEOUT, - MAX_TCP_INACTIVITY, MAX_TCP_INACTIVITY); - } - return PROTOLAYER_EVENT_CONSUME; - } - } - - return PROTOLAYER_EVENT_CONSUME; -} - -static enum protolayer_event_cb_result pl_tls_event_unwrap( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data) -{ - struct session2 *s = manager->session; - struct pl_tls_sess_data *tls = sess_data; - - if (event == PROTOLAYER_EVENT_CLOSE) { - tls_close(tls, s, true); /* WITH gnutls_bye */ - return PROTOLAYER_EVENT_PROPAGATE; - } - if (event == PROTOLAYER_EVENT_FORCE_CLOSE) { - tls_close(tls, s, false); /* WITHOUT gnutls_bye */ - return PROTOLAYER_EVENT_PROPAGATE; - } - - if (tls->client_side) { - if (event == PROTOLAYER_EVENT_CONNECT) - return pl_tls_client_connect_start(tls, s); - } else { - if (event == PROTOLAYER_EVENT_CONNECT) { - /* TLS sends its own _CONNECT event when the handshake - * is finished. */ - return PROTOLAYER_EVENT_CONSUME; - } - } - - return PROTOLAYER_EVENT_PROPAGATE; -} - -static enum protolayer_event_cb_result pl_tls_event_wrap( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data) -{ - if (event == PROTOLAYER_EVENT_STATS_SEND_ERR) { - the_worker->stats.err_tls += 1; - return PROTOLAYER_EVENT_CONSUME; - } else if (event == PROTOLAYER_EVENT_STATS_QRY_OUT) { - the_worker->stats.tls += 1; - return PROTOLAYER_EVENT_CONSUME; - } - - return PROTOLAYER_EVENT_PROPAGATE; -} - -static void pl_tls_request_init(struct protolayer_manager *manager, - struct kr_request *req, - void *sess_data) -{ - req->qsource.comm_flags.tls = true; -} - -void tls_protolayers_init(void) -{ - protolayer_globals[PROTOLAYER_PROTOCOL_TLS] = (struct protolayer_globals){ - .sess_size = sizeof(struct pl_tls_sess_data), - .sess_deinit = pl_tls_sess_deinit, - .wire_buf_overhead = TLS_CHUNK_SIZE, - .sess_init = pl_tls_sess_init, - .unwrap = pl_tls_unwrap, - .wrap = pl_tls_wrap, - .event_unwrap = pl_tls_event_unwrap, - .event_wrap = pl_tls_event_wrap, - .request_init = pl_tls_request_init - }; -} - -#undef VERBOSE_MSG diff --git a/daemon/tls.h b/daemon/tls.h deleted file mode 100644 index b8cf7af6f..000000000 --- a/daemon/tls.h +++ /dev/null @@ -1,137 +0,0 @@ -/* Copyright (C) 2016 American Civil Liberties Union (ACLU) - * Copyright (C) CZ.NIC, z.s.p.o - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include -#include -#include -#include "lib/defines.h" -#include "lib/generic/array.h" -#include "lib/generic/trie.h" -#include "lib/utils.h" - -#define MAX_TLS_PADDING KR_EDNS_PAYLOAD -#define TLS_MAX_UNCORK_RETRIES 100 - -/* rfc 5476, 7.3 - handshake Protocol overview - * https://tools.ietf.org/html/rfc5246#page-33 - * Message flow for a full handshake (only mandatory messages) - * ClientHello --------> - ServerHello - <-------- ServerHelloDone - ClientKeyExchange - Finished --------> - <-------- Finished - * - * See also https://blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/ - * So it takes 2 RTT. - * As we use session tickets, there are additional messages, add one RTT mode. - */ -#define TLS_MAX_HANDSHAKE_TIME (KR_CONN_RTT_MAX * 3) - -/** Transport session (opaque). */ -struct session2; - -struct tls_ctx; -struct tls_client_ctx; -struct tls_credentials { - int count; - char *tls_cert; - char *tls_key; - gnutls_certificate_credentials_t credentials; - time_t valid_until; - char *ephemeral_servicename; -}; - - -#define TLS_SHA256_RAW_LEN 32 /* gnutls_hash_get_len(GNUTLS_DIG_SHA256) */ -/** Required buffer length for pin_sha256, including the zero terminator. */ -#define TLS_SHA256_BASE64_BUFLEN (((TLS_SHA256_RAW_LEN * 8 + 4) / 6) + 3 + 1) - -#if GNUTLS_VERSION_NUMBER >= 0x030400 - #define TLS_CAN_USE_PINS 1 -#else - #define TLS_CAN_USE_PINS 0 -#endif - - -/** TLS authentication parameters for a single address-port pair. */ -typedef struct { - uint32_t refs; /**< Reference count; consider TLS sessions in progress. */ - bool insecure; /**< Use no authentication. */ - const char *hostname; /**< Server name for SNI and certificate check, lowercased. */ - array_t(const char *) ca_files; /**< Paths to certificate files; not really used. */ - array_t(const uint8_t *) pins; /**< Certificate pins as raw unterminated strings.*/ - gnutls_certificate_credentials_t credentials; /**< CA creds. in gnutls format. */ - gnutls_datum_t session_data; /**< Session-resumption data gets stored here. */ -} tls_client_param_t; -/** Holds configuration for TLS authentication for all potential servers. - * Special case: NULL pointer also means empty. */ -typedef trie_t tls_client_params_t; - -/** Get a pointer-to-pointer to TLS auth params. - * If it didn't exist, it returns NULL (if !do_insert) or pointer to NULL. */ -tls_client_param_t **tls_client_param_getptr(tls_client_params_t **params, - const struct sockaddr *addr, bool do_insert); - -/** Get a pointer to TLS auth params or NULL. */ -static inline tls_client_param_t * - tls_client_param_get(tls_client_params_t *params, const struct sockaddr *addr) -{ - tls_client_param_t **pe = tls_client_param_getptr(¶ms, addr, false); - return pe ? *pe : NULL; -} - -/** Allocate and initialize the structure (with ->ref = 1). */ -tls_client_param_t * tls_client_param_new(void); -/** Reference-counted free(); any inside data is freed alongside. */ -void tls_client_param_unref(tls_client_param_t *entry); - -int tls_client_param_remove(tls_client_params_t *params, const struct sockaddr *addr); -/** Free TLS authentication parameters. */ -void tls_client_params_free(tls_client_params_t *params); - -/*! Set TLS certificate and key from files. */ -int tls_certificate_set(const char *tls_cert, const char *tls_key); - -/*! Release TLS credentials for context (decrements refcount or frees). */ -int tls_credentials_release(struct tls_credentials *tls_credentials); - -/*! Generate new ephemeral TLS credentials. */ -struct tls_credentials * tls_get_ephemeral_credentials(void); - -/*! Initializes the protocol layers managed by tls. */ -void tls_protolayers_init(void); - -/* Session tickets, server side. Implementation in ./tls_session_ticket-srv.c */ - -/*! Opaque struct used by tls_session_ticket_* functions. */ -struct tls_session_ticket_ctx; - -/*! Suggested maximum reasonable secret length. */ -#define TLS_SESSION_TICKET_SECRET_MAX_LEN 1024 - -/*! Create a session ticket context and initialize it (secret gets copied inside). - * - * Passing zero-length secret implies using a random key, i.e. not synchronized - * between multiple instances. - * - * Beware that knowledge of the secret (if nonempty) breaks forward secrecy, - * so you should rotate the secret regularly and securely erase all past secrets. - * With TLS < 1.3 it's probably too risky to set nonempty secret. - */ -struct tls_session_ticket_ctx * tls_session_ticket_ctx_create( - uv_loop_t *loop, const char *secret, size_t secret_len); - -/*! Try to enable session tickets for a server session. */ -void tls_session_ticket_enable(struct tls_session_ticket_ctx *ctx, gnutls_session_t session); - -/*! Free all resources of the session ticket context. NULL is accepted as well. */ -void tls_session_ticket_ctx_destroy(struct tls_session_ticket_ctx *ctx); - -/*! Free TLS credentials. */ -void tls_credentials_free(struct tls_credentials *tls_credentials); - diff --git a/daemon/tls_ephemeral_credentials.c b/daemon/tls_ephemeral_credentials.c deleted file mode 100644 index a27dcd2d1..000000000 --- a/daemon/tls_ephemeral_credentials.c +++ /dev/null @@ -1,238 +0,0 @@ -/* - * Copyright (C) 2016 American Civil Liberties Union (ACLU) - * Copyright (C) CZ.NIC, z.s.p.o. - * - * Initial Author: Daniel Kahn Gillmor - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include -#include -#include -#include -#include - -#include "daemon/engine.h" -#include "daemon/tls.h" - -#define EPHEMERAL_PRIVKEY_FILENAME "ephemeral_key.pem" -#define INVALID_HOSTNAME "dns-over-tls.invalid" -#define EPHEMERAL_CERT_EXPIRATION_SECONDS (60*60*24*90) - -/* This is an attempt to grab an exclusive, advisory, non-blocking - * lock based on a filename. At the moment it's POSIX-only, but it - * should be abstract enough of an interface to make an implementation - * for non-posix systems if anyone cares. */ -typedef int lock_t; -static bool _lock_is_invalid(lock_t lock) -{ - return lock == -1; -} -/* a blocking lock on a given filename */ -static lock_t _lock_filename(const char *fname) -{ - lock_t lockfd = open(fname, O_RDONLY|O_CREAT, 0400); - if (lockfd == -1) - return lockfd; - /* this should be a non-blocking lock */ - if (flock(lockfd, LOCK_EX | LOCK_NB) != 0) { - close(lockfd); - return -1; - } - return lockfd; /* for cleanup later */ -} -static void _lock_unlock(lock_t *lock, const char *fname) -{ - if (lock && !_lock_is_invalid(*lock)) { - flock(*lock, LOCK_UN); - close(*lock); - *lock = -1; - unlink(fname); /* ignore errors */ - } -} - -static gnutls_x509_privkey_t get_ephemeral_privkey (void) -{ - gnutls_x509_privkey_t privkey = NULL; - int err; - gnutls_datum_t data = { .data = NULL, .size = 0 }; - lock_t lock; - int datafd = -1; - - /* Take a lock to ensure that two daemons started concurrently - * with a shared cache don't both create the same privkey: */ - lock = _lock_filename(EPHEMERAL_PRIVKEY_FILENAME ".lock"); - if (_lock_is_invalid(lock)) { - kr_log_error(TLS, "unable to lock lockfile " EPHEMERAL_PRIVKEY_FILENAME ".lock\n"); - goto done; - } - - if ((err = gnutls_x509_privkey_init (&privkey)) < 0) { - kr_log_error(TLS, "gnutls_x509_privkey_init() failed: %d (%s)\n", - err, gnutls_strerror_name(err)); - goto done; - } - - /* read from cache file (we assume that we've chdir'ed - * already, so we're just looking for the file in the - * cachedir. */ - datafd = open(EPHEMERAL_PRIVKEY_FILENAME, O_RDONLY); - if (datafd != -1) { - struct stat stat; - ssize_t bytes_read; - if (fstat(datafd, &stat)) { - kr_log_error(TLS, "unable to stat ephemeral private key " EPHEMERAL_PRIVKEY_FILENAME "\n"); - goto bad_data; - } - data.data = gnutls_malloc(stat.st_size); - if (data.data == NULL) { - kr_log_error(TLS, "unable to allocate memory for reading ephemeral private key\n"); - goto bad_data; - } - data.size = stat.st_size; - bytes_read = read(datafd, data.data, stat.st_size); - if (bytes_read != stat.st_size) { - kr_log_error(TLS, "unable to read ephemeral private key\n"); - goto bad_data; - } - if ((err = gnutls_x509_privkey_import (privkey, &data, GNUTLS_X509_FMT_PEM)) < 0) { - kr_log_error(TLS, "gnutls_x509_privkey_import() failed: %d (%s)\n", - err, gnutls_strerror_name(err)); - /* goto bad_data; */ - bad_data: - close(datafd); - datafd = -1; - } - if (data.data != NULL) { - gnutls_free(data.data); - data.data = NULL; - } - } - if (datafd == -1) { - /* if loading failed, then generate ... */ -#if GNUTLS_VERSION_NUMBER >= 0x030500 - if ((err = gnutls_x509_privkey_generate(privkey, GNUTLS_PK_ECDSA, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1), 0)) < 0) { -#else - if ((err = gnutls_x509_privkey_generate(privkey, GNUTLS_PK_RSA, gnutls_sec_param_to_pk_bits(GNUTLS_PK_RSA, GNUTLS_SEC_PARAM_MEDIUM), 0)) < 0) { -#endif - kr_log_error(TLS, "gnutls_x509_privkey_init() failed: %d (%s)\n", - err, gnutls_strerror_name(err)); - gnutls_x509_privkey_deinit(privkey); - goto done; - } - /* ... and save */ - kr_log_info(TLS, "Stashing ephemeral private key in " EPHEMERAL_PRIVKEY_FILENAME "\n"); - if ((err = gnutls_x509_privkey_export2(privkey, GNUTLS_X509_FMT_PEM, &data)) < 0) { - kr_log_error(TLS, "gnutls_x509_privkey_export2() failed: %d (%s), not storing\n", - err, gnutls_strerror_name(err)); - } else { - datafd = open(EPHEMERAL_PRIVKEY_FILENAME, O_WRONLY|O_CREAT, 0600); - if (datafd == -1) { - kr_log_error(TLS, "failed to open " EPHEMERAL_PRIVKEY_FILENAME " to store the ephemeral key\n"); - } else { - ssize_t bytes_written; - bytes_written = write(datafd, data.data, data.size); - if (bytes_written != data.size) - kr_log_error(TLS, "failed to write %d octets to " - EPHEMERAL_PRIVKEY_FILENAME - " (%zd written)\n", - data.size, bytes_written); - } - } - } - done: - _lock_unlock(&lock, EPHEMERAL_PRIVKEY_FILENAME ".lock"); - if (datafd != -1) { - close(datafd); - } - if (data.data != NULL) { - gnutls_free(data.data); - } - return privkey; -} - -static gnutls_x509_crt_t get_ephemeral_cert(gnutls_x509_privkey_t privkey, const char *servicename, time_t invalid_before, time_t valid_until) -{ - gnutls_x509_crt_t cert = NULL; - int err; - /* need a random buffer of bytes */ - uint8_t serial[16]; - gnutls_rnd(GNUTLS_RND_NONCE, serial, sizeof(serial)); - /* clear the left-most bit to avoid signedness confusion: */ - serial[0] &= 0x7f; - size_t namelen = strlen(servicename); - -#define gtx(fn, ...) \ - if ((err = fn ( __VA_ARGS__ )) != GNUTLS_E_SUCCESS) { \ - kr_log_error(TLS, #fn "() failed: %d (%s)\n", \ - err, gnutls_strerror_name(err)); \ - goto bad; } - - gtx(gnutls_x509_crt_init, &cert); - gtx(gnutls_x509_crt_set_activation_time, cert, invalid_before); - gtx(gnutls_x509_crt_set_ca_status, cert, 0); - gtx(gnutls_x509_crt_set_expiration_time, cert, valid_until); - gtx(gnutls_x509_crt_set_key, cert, privkey); - gtx(gnutls_x509_crt_set_key_purpose_oid, cert, GNUTLS_KP_TLS_WWW_CLIENT, 0); - gtx(gnutls_x509_crt_set_key_purpose_oid, cert, GNUTLS_KP_TLS_WWW_SERVER, 0); - gtx(gnutls_x509_crt_set_key_usage, cert, GNUTLS_KEY_DIGITAL_SIGNATURE); - gtx(gnutls_x509_crt_set_serial, cert, serial, sizeof(serial)); - gtx(gnutls_x509_crt_set_subject_alt_name, cert, GNUTLS_SAN_DNSNAME, servicename, namelen, GNUTLS_FSAN_SET); - gtx(gnutls_x509_crt_set_dn_by_oid,cert, GNUTLS_OID_X520_COMMON_NAME, 0, servicename, namelen); - gtx(gnutls_x509_crt_set_version, cert, 3); - gtx(gnutls_x509_crt_sign2,cert, cert, privkey, GNUTLS_DIG_SHA256, 0); /* self-sign, since it doesn't look like we can just stub-sign */ -#undef gtx - - return cert; -bad: - gnutls_x509_crt_deinit(cert); - return NULL; -} - -/*! Generate new ephemeral TLS credentials. */ -struct tls_credentials * tls_get_ephemeral_credentials(void) -{ - struct tls_credentials *creds = NULL; - gnutls_x509_privkey_t privkey = NULL; - gnutls_x509_crt_t cert = NULL; - int err; - time_t now = time(NULL); - - creds = calloc(1, sizeof(*creds)); - if (!creds) { - kr_log_error(TLS, "failed to allocate memory for ephemeral credentials\n"); - return NULL; - } - if ((err = gnutls_certificate_allocate_credentials(&(creds->credentials))) < 0) { - kr_log_error(TLS, "failed to allocate memory for ephemeral credentials\n"); - goto failure; - } - - creds->valid_until = now + EPHEMERAL_CERT_EXPIRATION_SECONDS; - creds->ephemeral_servicename = strdup(engine_get_hostname()); - if (creds->ephemeral_servicename == NULL) { - kr_log_error(TLS, "could not get server's hostname, using '" INVALID_HOSTNAME "' instead\n"); - if ((creds->ephemeral_servicename = strdup(INVALID_HOSTNAME)) == NULL) { - kr_log_error(TLS, "failed to allocate memory for ephemeral credentials\n"); - goto failure; - } - } - if ((privkey = get_ephemeral_privkey()) == NULL) { - goto failure; - } - if ((cert = get_ephemeral_cert(privkey, creds->ephemeral_servicename, now - 60*15, creds->valid_until)) == NULL) { - goto failure; - } - if ((err = gnutls_certificate_set_x509_key(creds->credentials, &cert, 1, privkey)) < 0) { - kr_log_error(TLS, "failed to set up ephemeral credentials\n"); - goto failure; - } - gnutls_x509_privkey_deinit(privkey); - gnutls_x509_crt_deinit(cert); - return creds; - failure: - gnutls_x509_privkey_deinit(privkey); - gnutls_x509_crt_deinit(cert); - tls_credentials_free(creds); - return NULL; -} diff --git a/daemon/tls_session_ticket-srv.c b/daemon/tls_session_ticket-srv.c deleted file mode 100644 index b19890300..000000000 --- a/daemon/tls_session_ticket-srv.c +++ /dev/null @@ -1,245 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "lib/utils.h" - -/* Style: "local/static" identifiers are usually named tst_* */ - -/** The number of seconds between synchronized rotation of TLS session ticket key. */ -#define TST_KEY_LIFETIME 4096 - -/** Value from gnutls:lib/ext/session_ticket.c - * Beware: changing this needs to change the hashing implementation. */ -#define SESSION_KEY_SIZE 64 - -/** Compile-time support for setting the secret. */ -/* This is not secure with TLS <= 1.2 but TLS 1.3 and secure configuration - * is not available in GnuTLS yet. See https://gitlab.com/gnutls/gnutls/issues/477 */ -#define TLS_SESSION_RESUMPTION_SYNC (GNUTLS_VERSION_NUMBER >= 0x030603) -#if TLS_SESSION_RESUMPTION_SYNC - #define TST_HASH GNUTLS_DIG_SHA3_512 -#else - #define TST_HASH abort() -#endif - -#if GNUTLS_VERSION_NUMBER < 0x030400 - /* It's of little use anyway. We may get the secret through lua, - * which creates a copy outside of our control. */ - #define gnutls_memset memset -#endif - -/** Fields are internal to tst_key_* functions. */ -typedef struct tls_session_ticket_ctx { - uv_timer_t timer; /**< timer for rotation of the key */ - unsigned char key[SESSION_KEY_SIZE]; /**< the key itself */ - bool has_secret; /**< false -> key is random for each epoch */ - uint16_t hash_len; /**< length of `hash_data` */ - char hash_data[]; /**< data to hash to obtain `key`; - * it's `time_t epoch` and then the secret string */ -} tst_ctx_t; - -/** Check invariants, based on gnutls version. */ -static bool tst_key_invariants(void) -{ - static int result = 0; /*< cache for multiple invocations */ - if (result) return result > 0; - bool ok = true; - #if TLS_SESSION_RESUMPTION_SYNC - /* SHA3-512 output size may never change, but let's check it anyway :-) */ - ok = ok && gnutls_hash_get_len(TST_HASH) == SESSION_KEY_SIZE; - #endif - /* The ticket key size might change in a different gnutls version. */ - gnutls_datum_t key = { 0, 0 }; - ok = ok && gnutls_session_ticket_key_generate(&key) == 0 - && key.size == SESSION_KEY_SIZE; - free(key.data); - result = ok ? 1 : -1; - return ok; -} - -/** Create the internal structures and copy the secret. Beware: secret must be kept secure. */ -static tst_ctx_t * tst_key_create(const char *secret, size_t secret_len, uv_loop_t *loop) -{ - const size_t hash_len = sizeof(time_t) + secret_len; - if (kr_fails_assert(!secret_len || (secret && hash_len >= secret_len && hash_len <= UINT16_MAX))) { - return NULL; - /* reasonable secret_len is best enforced in config API */ - } - if (kr_fails_assert(tst_key_invariants())) - return NULL; - #if !TLS_SESSION_RESUMPTION_SYNC - if (secret_len) { - kr_log_error(TLS, "session ticket: secrets were not enabled at compile-time (your GnuTLS version is not supported)\n"); - return NULL; /* ENOTSUP */ - } - #endif - - tst_ctx_t *ctx = malloc(sizeof(*ctx) + hash_len); /* can be slightly longer */ - if (!ctx) return NULL; - ctx->has_secret = secret_len > 0; - ctx->hash_len = hash_len; - if (secret_len) { - memcpy(ctx->hash_data + sizeof(time_t), secret, secret_len); - } - - if (uv_timer_init(loop, &ctx->timer) != 0) { - free(ctx); - return NULL; - } - ctx->timer.data = ctx; - return ctx; -} - -/** Random variant of secret rotation: generate into key_tmp and copy. */ -static int tst_key_get_random(tst_ctx_t *ctx) -{ - gnutls_datum_t key_tmp = { NULL, 0 }; - int err = gnutls_session_ticket_key_generate(&key_tmp); - if (err) return kr_error(err); - if (kr_fails_assert(key_tmp.size == SESSION_KEY_SIZE)) - return kr_error(EFAULT); - memcpy(ctx->key, key_tmp.data, SESSION_KEY_SIZE); - gnutls_memset(key_tmp.data, 0, SESSION_KEY_SIZE); - free(key_tmp.data); - return kr_ok(); -} - -/** Recompute the session ticket key, if epoch has changed or forced. */ -static int tst_key_update(tst_ctx_t *ctx, time_t epoch, bool force_update) -{ - if (kr_fails_assert(ctx && ctx->hash_len >= sizeof(epoch))) - return kr_error(EINVAL); - /* documented limitation: time_t and endianness must match - * on instances sharing a secret */ - if (!force_update && memcmp(ctx->hash_data, &epoch, sizeof(epoch)) == 0) { - return kr_ok(); /* we are up to date */ - } - memcpy(ctx->hash_data, &epoch, sizeof(epoch)); - - if (!ctx->has_secret) { - return tst_key_get_random(ctx); - } - /* Otherwise, deterministic variant of secret rotation, if supported. */ - #if !TLS_SESSION_RESUMPTION_SYNC - kr_assert(!ENOTSUP); - return kr_error(ENOTSUP); - #else - int err = gnutls_hash_fast(TST_HASH, ctx->hash_data, - ctx->hash_len, ctx->key); - return err == 0 ? kr_ok() : kr_error(err); - #endif -} - -/** Free all resources of the key (securely). */ -static void tst_key_destroy(uv_handle_t *timer) -{ - if (kr_fails_assert(timer)) - return; - tst_ctx_t *ctx = timer->data; - if (kr_fails_assert(ctx)) - return; - gnutls_memset(ctx, 0, offsetof(tst_ctx_t, hash_data) + ctx->hash_len); - free(ctx); -} - -static void tst_key_check(uv_timer_t *timer, bool force_update); -static void tst_timer_callback(uv_timer_t *timer) -{ - tst_key_check(timer, false); -} - -/** Update the ST key if needed and reschedule itself via the timer. */ -static void tst_key_check(uv_timer_t *timer, bool force_update) -{ - tst_ctx_t *stst = (tst_ctx_t *)timer->data; - /* Compute the current epoch. */ - struct timeval now; - if (gettimeofday(&now, NULL)) { - kr_log_error(TLS, "session ticket: gettimeofday failed, %s\n", - strerror(errno)); - return; - } - uv_update_time(timer->loop); /* to have sync. between real and mono time */ - const time_t epoch = now.tv_sec / TST_KEY_LIFETIME; - /* Update the key; new sessions will fetch it from the location. - * Old ones hopefully can't get broken by that; documentation - * for gnutls_session_ticket_enable_server() doesn't say. */ - int err = tst_key_update(stst, epoch, force_update); - if (err) { - kr_log_error(TLS, "session ticket: failed rotation, %s\n", - kr_strerror(err)); - if (kr_fails_assert(err != kr_error(EINVAL))) - return; - } - /* Reschedule. */ - const time_t tv_sec_next = (epoch + 1) * TST_KEY_LIFETIME; - const uint64_t ms_until_second = 1000 - (now.tv_usec + 501) / 1000; - const uint64_t remain_ms = (tv_sec_next - now.tv_sec - 1) * (uint64_t)1000 - + ms_until_second + 1; - /* ^ +1 because we don't want to wake up half a millisecond before the epoch! */ - if (kr_fails_assert(remain_ms < (TST_KEY_LIFETIME + 1 /*rounding tolerance*/) * 1000)) - return; - kr_log_debug(TLS, "session ticket: epoch %"PRIu64 - ", scheduling rotation check in %"PRIu64" ms\n", - (uint64_t)epoch, remain_ms); - err = uv_timer_start(timer, &tst_timer_callback, remain_ms, 0); - if (kr_fails_assert(err == 0)) { - kr_log_error(TLS, "session ticket: failed to schedule, %s\n", - uv_strerror(err)); - return; - } -} - -/* Implementation for prototypes from ./tls.h */ - -void tls_session_ticket_enable(struct tls_session_ticket_ctx *ctx, gnutls_session_t session) -{ - if (kr_fails_assert(ctx && session)) - return; - const gnutls_datum_t gd = { - .size = SESSION_KEY_SIZE, - .data = ctx->key, - }; - int err = gnutls_session_ticket_enable_server(session, &gd); - if (err) { - kr_log_error(TLS, "failed to enable session tickets: %s (%d)\n", - gnutls_strerror_name(err), err); - /* but continue without tickets */ - } -} - -tst_ctx_t * tls_session_ticket_ctx_create(uv_loop_t *loop, const char *secret, - size_t secret_len) -{ - if (kr_fails_assert(loop && (!secret_len || secret))) - return NULL; - #if GNUTLS_VERSION_NUMBER < 0x030500 - /* We would need different SESSION_KEY_SIZE; avoid an error. */ - return NULL; - #endif - tst_ctx_t *ctx = tst_key_create(secret, secret_len, loop); - if (ctx) { - tst_key_check(&ctx->timer, true); - } - return ctx; -} - -void tls_session_ticket_ctx_destroy(tst_ctx_t *ctx) -{ - if (ctx == NULL) { - return; - } - uv_close((uv_handle_t *)&ctx->timer, &tst_key_destroy); -} - diff --git a/daemon/udp_queue.c b/daemon/udp_queue.c deleted file mode 100644 index a03af8d75..000000000 --- a/daemon/udp_queue.c +++ /dev/null @@ -1,148 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "kresconfig.h" -#include "daemon/udp_queue.h" - -#include "daemon/session2.h" -#include "lib/generic/array.h" -#include "lib/utils.h" - -struct qr_task; - -#include - - -#if !ENABLE_SENDMMSG -int udp_queue_init_global(uv_loop_t *loop) -{ - return 0; -} -/* Appease the linker in case this unused call isn't optimized out. */ -void udp_queue_push(int fd, const struct sockaddr *sa, char *buf, size_t buf_len, - udp_queue_cb cb, void *baton) -{ - abort(); -} -#else - -/* LATER: it might be useful to have this configurable during runtime, - * but the structures below would have to change a little (broken up). */ -#define UDP_QUEUE_LEN 64 - -/** A queue of up to UDP_QUEUE_LEN messages, meant for the same socket. */ -typedef struct { - int len; /**< The number of messages in the queue: 0..UDP_QUEUE_LEN */ - struct mmsghdr msgvec[UDP_QUEUE_LEN]; /**< Parameter for sendmmsg() */ - struct { - udp_queue_cb cb; - void *cb_baton; - struct iovec msg_iov[1]; /**< storage for .msgvec[i].msg_iov */ - } items[UDP_QUEUE_LEN]; -} udp_queue_t; - -static udp_queue_t * udp_queue_create(void) -{ - udp_queue_t *q = calloc(1, sizeof(*q)); - kr_require(q != NULL); - - for (int i = 0; i < UDP_QUEUE_LEN; ++i) { - struct msghdr *mhi = &q->msgvec[i].msg_hdr; - /* These shall remain always the same. */ - mhi->msg_iov = q->items[i].msg_iov; - mhi->msg_iovlen = 1; - /* msg_name and msg_namelen will be per-call, - * and the rest is OK to remain zeroed all the time. */ - } - return q; -} - -/** Global state for udp_queue_*. Note: we never free the pointed-to memory. */ -struct state { - /** Singleton map: fd -> udp_queue_t, as a simple array of pointers. */ - udp_queue_t **udp_queues; - int udp_queues_len; - - /** List of FD numbers that might have a non-empty queue. */ - array_t(int) waiting_fds; - - uv_check_t check_handle; -}; -static struct state state = {0}; - -/** Empty the given queue. The queue is assumed to exist (but may be empty). */ -static void udp_queue_send(int fd) -{ - udp_queue_t *const q = state.udp_queues[fd]; - if (!q->len) return; - int sent_len = sendmmsg(fd, q->msgvec, q->len, 0); - /* ATM we don't really do anything about failures. */ - int err = sent_len < 0 ? errno : EAGAIN /* unknown error, really */; - for (int i = 0; i < q->len; ++i) { - if (q->items[i].cb) - q->items[i].cb(i < sent_len ? 0 : err, q->items[i].cb_baton); - } - q->len = 0; -} - -/** Periodical callback to send all queued packets. */ -static void udp_queue_check(uv_check_t *handle) -{ - for (int i = 0; i < state.waiting_fds.len; ++i) { - udp_queue_send(state.waiting_fds.at[i]); - } - state.waiting_fds.len = 0; -} - -int udp_queue_init_global(uv_loop_t *loop) -{ - int ret = uv_check_init(loop, &state.check_handle); - if (!ret) ret = uv_check_start(&state.check_handle, udp_queue_check); - return ret; -} - -void udp_queue_push(int fd, const struct sockaddr *sa, char *buf, size_t buf_len, - udp_queue_cb cb, void *baton) -{ - if (fd < 0) { - kr_log_error(SYSTEM, "ERROR: called udp_queue_push(fd = %d, ...)\n", fd); - abort(); - } - /* Get a valid correct queue. */ - if (fd >= state.udp_queues_len) { - const int new_len = fd + 1; - state.udp_queues = realloc(state.udp_queues, - sizeof(state.udp_queues[0]) * new_len); - if (!state.udp_queues) abort(); - memset(state.udp_queues + state.udp_queues_len, 0, - sizeof(state.udp_queues[0]) * (new_len - state.udp_queues_len)); - state.udp_queues_len = new_len; - } - if (unlikely(state.udp_queues[fd] == NULL)) - state.udp_queues[fd] = udp_queue_create(); - udp_queue_t *const q = state.udp_queues[fd]; - - /* Append to the queue */ - q->msgvec[q->len].msg_hdr.msg_name = (void *)sa; - q->msgvec[q->len].msg_hdr.msg_namelen = kr_sockaddr_len(sa); - q->items[q->len].cb = cb; - q->items[q->len].cb_baton = baton; - q->items[q->len].msg_iov[0] = (struct iovec){ - .iov_base = buf, - .iov_len = buf_len, - }; - if (q->len == 0) - array_push(state.waiting_fds, fd); - ++(q->len); - - if (q->len >= UDP_QUEUE_LEN) { - kr_assert(q->len == UDP_QUEUE_LEN); - udp_queue_send(fd); - /* We don't need to search state.waiting_fds; - * anyway, it's more efficient to let the hook do that. */ - } -} - -#endif - diff --git a/daemon/udp_queue.h b/daemon/udp_queue.h deleted file mode 100644 index ed0a32699..000000000 --- a/daemon/udp_queue.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include -struct kr_request; -struct qr_task; - -typedef void (*udp_queue_cb)(int status, void *baton); - -/** Initialize the global state for udp_queue. */ -int udp_queue_init_global(uv_loop_t *loop); - -/** Send req->answer via UDP, possibly not immediately. */ -void udp_queue_push(int fd, const struct sockaddr *sa, char *buf, size_t buf_len, - udp_queue_cb cb, void *baton); - diff --git a/daemon/worker.c b/daemon/worker.c deleted file mode 100644 index 2d293ba9f..000000000 --- a/daemon/worker.c +++ /dev/null @@ -1,2401 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#include "kresconfig.h" -#include "daemon/worker.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#if defined(__GLIBC__) && defined(_GNU_SOURCE) -#include -#endif -#include -#include -#include - -#if ENABLE_XDP - #include -#endif - -#include "daemon/bindings/api.h" -#include "daemon/engine.h" -#include "daemon/io.h" -#include "daemon/proxyv2.h" -#include "daemon/session2.h" -#include "daemon/tls.h" -#include "lib/cache/util.h" /* packet_ttl */ -#include "lib/layer.h" -#include "lib/layer/iterate.h" /* kr_response_classify */ -#include "lib/utils.h" - - -/* Magic defaults for the worker. */ -#ifndef MAX_PIPELINED -#define MAX_PIPELINED 100 -#endif - -#define MAX_DGRAM_LEN UINT16_MAX - -#define VERBOSE_MSG(qry, ...) kr_log_q(qry, WORKER, __VA_ARGS__) - -/** Client request state. */ -struct request_ctx -{ - struct kr_request req; - - struct qr_task *task; - struct { - /** NULL if the request didn't come over network. */ - struct session2 *session; - /** Requestor's address; separate because of UDP session "sharing". */ - union kr_sockaddr addr; - /** Request communication address; if not from a proxy, same as addr. */ - union kr_sockaddr comm_addr; - /** Local address. For AF_XDP we couldn't use session's, - * as the address might be different every time. */ - union kr_sockaddr dst_addr; - - /** Router's MAC address for XDP. */ - ethaddr_t eth_from; - /** Our MAC address for XDP. */ - ethaddr_t eth_to; - /** Whether XDP was used. */ - bool xdp : 1; - } source; -}; - -/** Query resolution task. */ -struct qr_task -{ - struct request_ctx *ctx; - knot_pkt_t *pktbuf; - qr_tasklist_t waiting; - struct session2 *pending[MAX_PENDING]; - uint16_t pending_count; - uint16_t timeouts; - uint16_t iter_count; - uint32_t refs; - bool finished : 1; - bool leading : 1; - uint64_t creation_time; - uint64_t send_time; - uint64_t recv_time; - struct kr_transport *transport; -}; - - -/* Convenience macros */ -#define qr_task_ref(task) \ - do { ++(task)->refs; } while(0) -#define qr_task_unref(task) \ - do { \ - if (task) \ - kr_require((task)->refs > 0); \ - if ((task) && --(task)->refs == 0) \ - qr_task_free((task)); \ - } while (0) - -/* Forward decls */ -static void qr_task_free(struct qr_task *task); -static int qr_task_step(struct qr_task *task, - const struct sockaddr *packet_source, - knot_pkt_t *packet); -static int qr_task_send(struct qr_task *task, struct session2 *session, - const struct comm_info *comm, knot_pkt_t *pkt); -static int qr_task_finalize(struct qr_task *task, int state); -static void qr_task_complete(struct qr_task *task); -static int worker_add_tcp_connected(const struct sockaddr* addr, struct session2 *session); -static int worker_del_tcp_connected(const struct sockaddr* addr); -static struct session2* worker_find_tcp_connected(const struct sockaddr* addr); -static int worker_add_tcp_waiting(const struct sockaddr* addr, - struct session2 *session); -static int worker_del_tcp_waiting(const struct sockaddr* addr); -static struct session2* worker_find_tcp_waiting(const struct sockaddr* addr); - -static void subreq_finalize(struct qr_task *task, const struct sockaddr *packet_source, knot_pkt_t *pkt); - - -struct worker_ctx the_worker_value; /**< Static allocation is suitable for the singleton. */ -struct worker_ctx *the_worker = NULL; - -/*! @internal Create a UDP/TCP handle for an outgoing AF_INET* connection. - * socktype is SOCK_* */ -static struct session2 *ioreq_spawn(int socktype, sa_family_t family, - enum protolayer_grp grp, - struct protolayer_data_param *layer_param, - size_t layer_param_count) -{ - bool precond = (socktype == SOCK_DGRAM || socktype == SOCK_STREAM) - && (family == AF_INET || family == AF_INET6); - if (kr_fails_assert(precond)) { - kr_log_debug(WORKER, "ioreq_spawn: pre-condition failed\n"); - return NULL; - } - - /* Create connection for iterative query */ - struct session2 *s; - int ret = io_create(the_worker->loop, &s, socktype, family, grp, - layer_param, layer_param_count, true); - if (ret) { - if (ret == UV_EMFILE) { - the_worker->too_many_open = true; - the_worker->rconcurrent_highwatermark = the_worker->stats.rconcurrent; - } - return NULL; - } - - /* Bind to outgoing address, according to IP v4/v6. */ - union kr_sockaddr *addr; - if (family == AF_INET) { - addr = (union kr_sockaddr *)&the_worker->out_addr4; - } else { - addr = (union kr_sockaddr *)&the_worker->out_addr6; - } - if (addr->ip.sa_family != AF_UNSPEC) { - if (kr_fails_assert(addr->ip.sa_family == family)) { - session2_force_close(s); - return NULL; - } - if (socktype == SOCK_DGRAM) { - uv_udp_t *udp = (uv_udp_t *)session2_get_handle(s); - ret = uv_udp_bind(udp, &addr->ip, 0); - } else if (socktype == SOCK_STREAM){ - uv_tcp_t *tcp = (uv_tcp_t *)session2_get_handle(s); - ret = uv_tcp_bind(tcp, &addr->ip, 0); - } - } - - if (ret != 0) { - session2_force_close(s); - return NULL; - } - - /* Connect or issue query datagram */ - return s; -} - -static void ioreq_kill_pending(struct qr_task *task) -{ - for (uint16_t i = 0; i < task->pending_count; ++i) { - session2_kill_ioreq(task->pending[i], task); - } - task->pending_count = 0; -} - -/** Get a mempool. */ -static inline struct mempool *pool_borrow(void) -{ - /* The implementation used to have extra caching layer, - * but it didn't work well. Now it's very simple. */ - return mp_new(16 * 1024); -} -/** Return a mempool. */ -static inline void pool_release(struct mempool *mp) -{ - mp_delete(mp); -} - -/** Create a key for an outgoing subrequest: qname, qclass, qtype. - * @param key Destination buffer for key size, MUST be SUBREQ_KEY_LEN or larger. - * @return key length if successful or an error - */ -static const size_t SUBREQ_KEY_LEN = KR_RRKEY_LEN; -static int subreq_key(char *dst, knot_pkt_t *pkt) -{ - kr_require(pkt); - return kr_rrkey(dst, knot_pkt_qclass(pkt), knot_pkt_qname(pkt), - knot_pkt_qtype(pkt), knot_pkt_qtype(pkt)); -} - -#if ENABLE_XDP -static uint8_t *alloc_wire_cb(struct kr_request *req, uint16_t *maxlen) -{ - if (kr_fails_assert(maxlen)) - return NULL; - struct request_ctx *ctx = (struct request_ctx *)req; - /* We know it's an AF_XDP socket; otherwise this CB isn't assigned. */ - uv_handle_t *handle = session2_get_handle(ctx->source.session); - if (kr_fails_assert(handle->type == UV_POLL)) - return NULL; - xdp_handle_data_t *xhd = handle->data; - knot_xdp_msg_t out; - bool ipv6 = ctx->source.comm_addr.ip.sa_family == AF_INET6; - int ret = knot_xdp_send_alloc(xhd->socket, - #if KNOT_VERSION_HEX >= 0x030100 - ipv6 ? KNOT_XDP_MSG_IPV6 : 0, &out); - #else - ipv6, &out, NULL); - #endif - if (ret != KNOT_EOK) { - kr_assert(ret == KNOT_ENOMEM); - *maxlen = 0; - return NULL; - } - *maxlen = MIN(*maxlen, out.payload.iov_len); -#if KNOT_VERSION_HEX < 0x030100 - /* It's most convenient to fill the MAC addresses at this point. */ - memcpy(out.eth_from, &ctx->source.eth_from, 6); - memcpy(out.eth_to, &ctx->source.eth_to, 6); -#endif - return out.payload.iov_base; -} -static void free_wire(const struct request_ctx *ctx) -{ - if (kr_fails_assert(ctx->req.alloc_wire_cb == alloc_wire_cb)) - return; - knot_pkt_t *ans = ctx->req.answer; - if (unlikely(ans == NULL)) /* dropped */ - return; - if (likely(ans->wire == NULL)) /* sent most likely */ - return; - if (!ctx->source.session) - return; - /* We know it's an AF_XDP socket; otherwise alloc_wire_cb isn't assigned. */ - uv_handle_t *handle = session2_get_handle(ctx->source.session); - if (!handle || kr_fails_assert(handle->type == UV_POLL)) - return; - xdp_handle_data_t *xhd = handle->data; - /* Freeing is done by sending an empty packet (the API won't really send it). */ - knot_xdp_msg_t out; - out.payload.iov_base = ans->wire; - out.payload.iov_len = 0; - uint32_t sent = 0; -#if KNOT_VERSION_HEX >= 0x030100 - int ret = 0; - knot_xdp_send_free(xhd->socket, &out, 1); -#else - int ret = knot_xdp_send(xhd->socket, &out, 1, &sent); -#endif - kr_assert(ret == KNOT_EOK && sent == 0); - kr_log_debug(XDP, "freed unsent buffer, ret = %d\n", ret); -} -#endif -/* Helper functions for transport selection */ -static inline bool is_tls_capable(struct sockaddr *address) { - tls_client_param_t *tls_entry = tls_client_param_get( - the_network->tls_client_params, address); - return tls_entry; -} - -static inline bool is_tcp_connected(struct sockaddr *address) { - return worker_find_tcp_connected(address); -} - -static inline bool is_tcp_waiting(struct sockaddr *address) { - return worker_find_tcp_waiting(address); -} - -/** Create and initialize a request_ctx (on a fresh mempool). - * - * session and addr point to the source of the request, and they are NULL - * in case the request didn't come from network. - */ -static struct request_ctx *request_create(struct session2 *session, - struct comm_info *comm, - uint32_t uid) -{ - knot_mm_t pool = { - .ctx = pool_borrow(), - .alloc = (knot_mm_alloc_t) mp_alloc - }; - - /* Create request context */ - struct request_ctx *ctx = mm_calloc(&pool, 1, sizeof(*ctx)); - if (!ctx) { - pool_release(pool.ctx); - return NULL; - } - - /* TODO Relocate pool to struct request */ - if (session && kr_fails_assert(session->outgoing == false)) { - pool_release(pool.ctx); - return NULL; - } - ctx->source.session = session; - if (comm && comm->xdp) { - #if ENABLE_XDP - if (kr_fails_assert(session)) { - pool_release(pool.ctx); - return NULL; - } - memcpy(ctx->source.eth_to, comm->eth_to, sizeof(ctx->source.eth_to)); - memcpy(ctx->source.eth_from, comm->eth_from, sizeof(ctx->source.eth_from)); - ctx->req.alloc_wire_cb = alloc_wire_cb; - #else - kr_assert(!EINVAL); - pool_release(pool.ctx); - return NULL; - #endif - } - - struct kr_request *req = &ctx->req; - req->pool = pool; - req->vars_ref = LUA_NOREF; - req->uid = uid; - req->qsource.comm_flags.xdp = comm && comm->xdp; - kr_request_set_extended_error(req, KNOT_EDNS_EDE_NONE, NULL); - array_init(req->qsource.headers); - if (session) { - kr_require(comm); - - const struct sockaddr *src_addr = comm->src_addr; - const struct sockaddr *comm_addr = comm->comm_addr; - const struct sockaddr *dst_addr = comm->dst_addr; - const struct proxy_result *proxy = comm->proxy; - - req->qsource.stream_id = -1; - session2_init_request(session, req); - - req->qsource.flags = req->qsource.comm_flags; - if (proxy) { - req->qsource.flags.tcp = proxy->protocol == SOCK_STREAM; - req->qsource.flags.tls = proxy->has_tls; - } - - /* We need to store a copy of peer address. */ - memcpy(&ctx->source.addr.ip, src_addr, kr_sockaddr_len(src_addr)); - req->qsource.addr = &ctx->source.addr.ip; - - if (!comm_addr) - comm_addr = src_addr; - memcpy(&ctx->source.comm_addr.ip, comm_addr, kr_sockaddr_len(comm_addr)); - req->qsource.comm_addr = &ctx->source.comm_addr.ip; - - if (!dst_addr) /* We wouldn't have to copy in this case, but for consistency. */ - dst_addr = session2_get_sockname(session); - memcpy(&ctx->source.dst_addr.ip, dst_addr, kr_sockaddr_len(dst_addr)); - req->qsource.dst_addr = &ctx->source.dst_addr.ip; - } - - req->selection_context.is_tls_capable = is_tls_capable; - req->selection_context.is_tcp_connected = is_tcp_connected; - req->selection_context.is_tcp_waiting = is_tcp_waiting; - array_init(req->selection_context.forwarding_targets); - array_reserve_mm(req->selection_context.forwarding_targets, 1, kr_memreserve, &req->pool); - - the_worker->stats.rconcurrent += 1; - - return ctx; -} - -/** More initialization, related to the particular incoming query/packet. */ -static int request_start(struct request_ctx *ctx, knot_pkt_t *query) -{ - if (kr_fails_assert(query && ctx)) - return kr_error(EINVAL); - - struct kr_request *req = &ctx->req; - req->qsource.size = query->size; - if (knot_pkt_has_tsig(query)) { - req->qsource.size += query->tsig_wire.len; - } - - knot_pkt_t *pkt = knot_pkt_new(NULL, req->qsource.size, &req->pool); - if (!pkt) { - return kr_error(ENOMEM); - } - - int ret = knot_pkt_copy(pkt, query); - if (ret != KNOT_EOK && ret != KNOT_ETRAIL) { - return kr_error(ENOMEM); - } - req->qsource.packet = pkt; - - /* Start resolution */ - kr_resolve_begin(req, the_resolver); - the_worker->stats.queries += 1; - return kr_ok(); -} - -static void request_free(struct request_ctx *ctx) -{ - /* Dereference any Lua vars table if exists */ - if (ctx->req.vars_ref != LUA_NOREF) { - lua_State *L = the_engine->L; - /* Get worker variables table */ - lua_rawgeti(L, LUA_REGISTRYINDEX, the_worker->vars_table_ref); - /* Get next free element (position 0) and store it under current reference (forming a list) */ - lua_rawgeti(L, -1, 0); - lua_rawseti(L, -2, ctx->req.vars_ref); - /* Set current reference as the next free element */ - lua_pushinteger(L, ctx->req.vars_ref); - lua_rawseti(L, -2, 0); - lua_pop(L, 1); - ctx->req.vars_ref = LUA_NOREF; - } - /* Free HTTP/2 headers for DoH requests. */ - for(int i = 0; i < ctx->req.qsource.headers.len; i++) { - free(ctx->req.qsource.headers.at[i].name); - free(ctx->req.qsource.headers.at[i].value); - } - array_clear(ctx->req.qsource.headers); - - /* Make sure to free XDP buffer in case it wasn't sent. */ - if (ctx->req.alloc_wire_cb) { - #if ENABLE_XDP - free_wire(ctx); - #else - kr_assert(!EINVAL); - #endif - } - /* Return mempool to ring or free it if it's full */ - pool_release(ctx->req.pool.ctx); - /* @note The 'task' is invalidated from now on. */ - the_worker->stats.rconcurrent -= 1; -} - -static struct qr_task *qr_task_create(struct request_ctx *ctx) -{ - /* Choose (initial) pktbuf size. As it is now, pktbuf can be used - * for UDP answers from upstream *and* from cache - * and for sending queries upstream */ - uint16_t pktbuf_max = KR_EDNS_PAYLOAD; - const knot_rrset_t *opt_our = the_resolver->upstream_opt_rr; - if (opt_our) { - pktbuf_max = MAX(pktbuf_max, knot_edns_get_payload(opt_our)); - } - - /* Create resolution task */ - struct qr_task *task = mm_calloc(&ctx->req.pool, 1, sizeof(*task)); - if (!task) { - return NULL; - } - - /* Create packet buffers for answer and subrequests */ - knot_pkt_t *pktbuf = knot_pkt_new(NULL, pktbuf_max, &ctx->req.pool); - if (!pktbuf) { - mm_free(&ctx->req.pool, task); - return NULL; - } - pktbuf->size = 0; - - task->ctx = ctx; - task->pktbuf = pktbuf; - array_init(task->waiting); - task->refs = 0; - kr_assert(ctx->task == NULL); - ctx->task = task; - /* Make the primary reference to task. */ - qr_task_ref(task); - task->creation_time = kr_now(); - the_worker->stats.concurrent += 1; - return task; -} - -/* This is called when the task refcount is zero, free memory. */ -static void qr_task_free(struct qr_task *task) -{ - struct request_ctx *ctx = task->ctx; - - if (kr_fails_assert(ctx)) - return; - - kr_require(ctx->task == NULL); - request_free(ctx); - - /* Update stats */ - the_worker->stats.concurrent -= 1; -} - -/*@ Register new qr_task within session. */ -static int qr_task_register(struct qr_task *task, struct session2 *session) -{ - if (kr_fails_assert(!session->outgoing && session->stream)) - return kr_error(EINVAL); - - session2_tasklist_add(session, task); - - struct request_ctx *ctx = task->ctx; - if (kr_fails_assert(ctx && (ctx->source.session == NULL || ctx->source.session == session))) - return kr_error(EINVAL); - ctx->source.session = session; - /* Soft-limit on parallel queries, there is no "slow down" RCODE - * that we could use to signalize to client, but we can stop reading, - * an in effect shrink TCP window size. To get more precise throttling, - * we would need to copy remainder of the unread buffer and reassemble - * when resuming reading. This is NYI. */ - if (session2_tasklist_get_len(session) >= the_worker->tcp_pipeline_max && - !session->throttled && !session->closing) { - session2_stop_read(session); - session->throttled = true; - } - - return 0; -} - -static void qr_task_complete(struct qr_task *task) -{ - struct request_ctx *ctx = task->ctx; - - /* Kill pending I/O requests */ - ioreq_kill_pending(task); - kr_require(task->waiting.len == 0); - kr_require(task->leading == false); - - struct session2 *s = ctx->source.session; - if (s) { - kr_require(!s->outgoing && session2_waitinglist_is_empty(s)); - ctx->source.session = NULL; - session2_tasklist_del(s, task); - } - - /* Release primary reference to task. */ - if (ctx->task == task) { - ctx->task = NULL; - qr_task_unref(task); - } -} - -/* This is called when we send subrequest / answer */ -int qr_task_on_send(struct qr_task *task, struct session2 *s, int status) -{ - if (task->finished) { - kr_require(task->leading == false); - qr_task_complete(task); - } - - if (!s) - return status; - - if (!s->stream && s->outgoing) { - // This should ensure that we are only dealing with our question to upstream - if (kr_fails_assert(!knot_wire_get_qr(task->pktbuf->wire))) - return status; - // start the timer - struct kr_query *qry = array_tail(task->ctx->req.rplan.pending); - if (kr_fails_assert(qry && task->transport)) - return status; - size_t timeout = task->transport->timeout; - int ret = session2_timer_start(s, PROTOLAYER_EVENT_GENERAL_TIMEOUT, - timeout, 0); - /* Start next step with timeout, fatal if can't start a timer. */ - if (ret != 0) { - subreq_finalize(task, &task->transport->address.ip, task->pktbuf); - qr_task_finalize(task, KR_STATE_FAIL); - } - } - - if (s->stream) { - if (status != 0) { // session probably not usable anymore; typically: ECONNRESET - const struct kr_request *req = &task->ctx->req; - if (kr_log_is_debug(WORKER, req)) { - const char *peer_str = NULL; - if (!s->outgoing) { - peer_str = "hidden"; // avoid logging downstream IPs - } else if (task->transport) { - peer_str = kr_straddr(&task->transport->address.ip); - } - if (!peer_str) - peer_str = "unknown"; // probably shouldn't happen - kr_log_req(req, 0, 0, WORKER, - "=> disconnected from '%s': %s\n", - peer_str, uv_strerror(status)); - } - worker_end_tcp(s); - return status; - } - - if (s->outgoing || s->closing) - return status; - - if (s->throttled && - session2_tasklist_get_len(s) < the_worker->tcp_pipeline_max/2) { - /* Start reading again if the session is throttled and - * the number of outgoing requests is below watermark. */ - session2_start_read(s); - s->throttled = false; - } - } - - return status; -} - -static void qr_task_wrap_finished(int status, struct session2 *session, - const struct comm_info *comm, void *baton) -{ - struct qr_task *task = baton; - qr_task_on_send(task, session, status); - qr_task_unref(task); -} - -static int qr_task_send(struct qr_task *task, struct session2 *session, - const struct comm_info *comm, knot_pkt_t *pkt) -{ - if (!session) - return qr_task_on_send(task, NULL, kr_error(EIO)); - - int ret = 0; - - if (comm == NULL) - comm = &session->comm; - - if (pkt == NULL) - pkt = worker_task_get_pktbuf(task); - - if (session->outgoing && session->stream) { - size_t try_limit = session2_tasklist_get_len(session) + 1; - uint16_t msg_id = knot_wire_get_id(pkt->wire); - size_t try_count = 0; - while (session2_tasklist_find_msgid(session, msg_id) && - try_count <= try_limit) { - ++msg_id; - ++try_count; - } - if (try_count > try_limit) - return kr_error(ENOENT); - worker_task_pkt_set_msgid(task, msg_id); - } - - /* Note time for upstream RTT */ - task->send_time = kr_now(); - task->recv_time = 0; // task structure is being reused so we have to zero this out here - /* Send using given protocol */ - if (kr_fails_assert(!session->closing)) - return qr_task_on_send(task, NULL, kr_error(EIO)); - - /* Pending '_finished' callback on current task */ - qr_task_ref(task); - struct protolayer_payload payload = protolayer_buffer( - (char *)pkt->wire, pkt->size, false); - payload.ttl = packet_ttl(pkt); - ret = session2_wrap(session, payload, comm, qr_task_wrap_finished, task); - - if (ret >= 0) { - session2_touch(session); - if (session->outgoing) { - session2_tasklist_add(session, task); - } - if (the_worker->too_many_open && - the_worker->stats.rconcurrent < - the_worker->rconcurrent_highwatermark - 10) { - the_worker->too_many_open = false; - } - ret = kr_ok(); - } else { - if (ret == UV_EMFILE) { - the_worker->too_many_open = true; - the_worker->rconcurrent_highwatermark = the_worker->stats.rconcurrent; - ret = kr_error(UV_EMFILE); - } - - session2_event(session, PROTOLAYER_EVENT_STATS_SEND_ERR, NULL); - } - - /* Update outgoing query statistics */ - if (session->outgoing && comm) { - session2_event(session, PROTOLAYER_EVENT_STATS_QRY_OUT, NULL); - - if (comm->comm_addr->sa_family == AF_INET6) - the_worker->stats.ipv6 += 1; - else if (comm->comm_addr->sa_family == AF_INET) - the_worker->stats.ipv4 += 1; - } - return ret; -} - -static struct kr_query *task_get_last_pending_query(struct qr_task *task) -{ - if (!task || task->ctx->req.rplan.pending.len == 0) { - return NULL; - } - - return array_tail(task->ctx->req.rplan.pending); -} - -static int send_waiting(struct session2 *session) -{ - int ret = 0; - while (!session2_waitinglist_is_empty(session)) { - struct qr_task *t = session2_waitinglist_get(session); - ret = qr_task_send(t, session, NULL, NULL); - if (ret != 0) { - struct sockaddr *peer = session2_get_peer(session); - session2_waitinglist_finalize(session, KR_STATE_FAIL); - session2_tasklist_finalize(session, KR_STATE_FAIL); - worker_del_tcp_connected(peer); - session2_close(session); - break; - } - session2_waitinglist_pop(session, true); - } - return ret; -} - -static void on_connect(uv_connect_t *req, int status) -{ - kr_require(the_worker); - uv_stream_t *handle = req->handle; - struct session2 *session = handle->data; - struct sockaddr *peer = session2_get_peer(session); - free(req); - - if (kr_fails_assert(session->outgoing)) - return; - - if (session->closing) { - worker_del_tcp_waiting(peer); - kr_assert(session2_is_empty(session)); - return; - } - - const bool log_debug = kr_log_is_debug(WORKER, NULL); - - /* Check if the connection is in the waiting list. - * If no, most likely this is timed out connection - * which was removed from waiting list by - * on_tcp_connect_timeout() callback. */ - struct session2 *found_session = worker_find_tcp_waiting(peer); - if (!found_session || found_session != session) { - /* session isn't on the waiting list. - * it's timed out session. */ - if (log_debug) { - const char *peer_str = kr_straddr(peer); - kr_log_debug(WORKER, "=> connected to '%s', but session " - "is already timed out, close\n", - peer_str ? peer_str : ""); - } - kr_assert(session2_tasklist_is_empty(session)); - session2_waitinglist_retry(session, false); - session2_close(session); - return; - } - - found_session = worker_find_tcp_connected(peer); - if (found_session) { - /* session already in the connected list. - * Something went wrong, it can be due to races when kresd has tried - * to reconnect to upstream after unsuccessful attempt. */ - if (log_debug) { - const char *peer_str = kr_straddr(peer); - kr_log_debug(WORKER, "=> connected to '%s', but peer " - "is already connected, close\n", - peer_str ? peer_str : ""); - } - kr_assert(session2_tasklist_is_empty(session)); - session2_waitinglist_retry(session, false); - session2_close(session); - return; - } - - if (status != 0) { - if (log_debug) { - const char *peer_str = kr_straddr(peer); - kr_log_debug(WORKER, "=> connection to '%s' failed (%s), flagged as 'bad'\n", - peer_str ? peer_str : "", uv_strerror(status)); - } - worker_del_tcp_waiting(peer); - if (status != UV_ETIMEDOUT) { - /* In case of UV_ETIMEDOUT upstream has been - * already penalized in on_tcp_connect_timeout() */ - session2_event(session, PROTOLAYER_EVENT_CONNECT_FAIL, NULL); - } - kr_assert(session2_tasklist_is_empty(session)); - session2_close(session); - return; - } - - if (log_debug) { - const char *peer_str = kr_straddr(peer); - kr_log_debug(WORKER, "=> connected to '%s'\n", peer_str ? peer_str : ""); - } - - session2_event(session, PROTOLAYER_EVENT_CONNECT, NULL); - session2_start_read(session); - session2_timer_stop(session); - session2_timer_start(session, PROTOLAYER_EVENT_GENERAL_TIMEOUT, - MAX_TCP_INACTIVITY, MAX_TCP_INACTIVITY); -} - -static int transmit(struct qr_task *task) -{ - if (!task) - return kr_error(EINVAL); - - struct kr_transport* transport = task->transport; - struct sockaddr_in6 *choice = (struct sockaddr_in6 *)&transport->address; - - if (!choice) - return kr_error(EINVAL); - if (task->pending_count >= MAX_PENDING) - return kr_error(EBUSY); - /* Checkout answer before sending it */ - struct request_ctx *ctx = task->ctx; - int ret = kr_resolve_checkout(&ctx->req, NULL, transport, task->pktbuf); - if (ret) - return ret; - - struct session2 *session = ioreq_spawn(SOCK_DGRAM, choice->sin6_family, - PROTOLAYER_GRP_DOUDP, NULL, 0); - if (!session) - return kr_error(EINVAL); - - struct sockaddr *addr = (struct sockaddr *)choice; - struct sockaddr *peer = session2_get_peer(session); - kr_assert(peer->sa_family == AF_UNSPEC && session->outgoing); - kr_require(addr->sa_family == AF_INET || addr->sa_family == AF_INET6); - memcpy(peer, addr, kr_sockaddr_len(addr)); - - struct comm_info out_comm = { - .comm_addr = (struct sockaddr *)choice - }; - ret = qr_task_send(task, session, &out_comm, task->pktbuf); - if (ret) { - session2_close(session); - return ret; - } - - task->pending[task->pending_count] = session; - task->pending_count += 1; - session2_start_read(session); /* Start reading answer */ - return kr_ok(); -} - - -static void subreq_finalize(struct qr_task *task, const struct sockaddr *packet_source, knot_pkt_t *pkt) -{ - if (!task || task->finished) { - return; - } - /* Close pending timer */ - ioreq_kill_pending(task); - /* Clear from outgoing table. */ - if (!task->leading) - return; - char key[SUBREQ_KEY_LEN]; - const int klen = subreq_key(key, task->pktbuf); - if (klen > 0) { - void *val_deleted; - int ret = trie_del(the_worker->subreq_out, key, klen, &val_deleted); - kr_assert(ret == KNOT_EOK && val_deleted == task); - } - /* Notify waiting tasks. */ - struct kr_query *leader_qry = array_tail(task->ctx->req.rplan.pending); - for (size_t i = task->waiting.len; i > 0; i--) { - struct qr_task *follower = task->waiting.at[i - 1]; - /* Reuse MSGID and 0x20 secret */ - if (follower->ctx->req.rplan.pending.len > 0) { - struct kr_query *qry = array_tail(follower->ctx->req.rplan.pending); - qry->id = leader_qry->id; - qry->secret = leader_qry->secret; - - // Note that this transport may not be present in `leader_qry`'s server selection - follower->transport = task->transport; - if(follower->transport) { - follower->transport->deduplicated = true; - } - leader_qry->secret = 0; /* Next will be already decoded */ - } - qr_task_step(follower, packet_source, pkt); - qr_task_unref(follower); - } - task->waiting.len = 0; - task->leading = false; -} - -static void subreq_lead(struct qr_task *task) -{ - if (kr_fails_assert(task)) - return; - char key[SUBREQ_KEY_LEN]; - const int klen = subreq_key(key, task->pktbuf); - if (klen < 0) - return; - struct qr_task **tvp = (struct qr_task **) - trie_get_ins(the_worker->subreq_out, key, klen); - if (unlikely(!tvp)) - return; /*ENOMEM*/ - if (kr_fails_assert(*tvp == NULL)) - return; - *tvp = task; - task->leading = true; -} - -static bool subreq_enqueue(struct qr_task *task) -{ - if (kr_fails_assert(task)) - return false; - char key[SUBREQ_KEY_LEN]; - const int klen = subreq_key(key, task->pktbuf); - if (klen < 0) - return false; - struct qr_task **leader = (struct qr_task **) - trie_get_try(the_worker->subreq_out, key, klen); - if (!leader /*ENOMEM*/ || !*leader) - return false; - /* Enqueue itself to leader for this subrequest. */ - int ret = array_push_mm((*leader)->waiting, task, - kr_memreserve, &(*leader)->ctx->req.pool); - if (unlikely(ret < 0)) /*ENOMEM*/ - return false; - qr_task_ref(task); - return true; -} - -static int qr_task_finalize(struct qr_task *task, int state) -{ - kr_require(task && task->leading == false); - if (task->finished) { - return kr_ok(); - } - struct request_ctx *ctx = task->ctx; - struct session2 *source_session = ctx->source.session; - kr_resolve_finish(&ctx->req, state); - - task->finished = true; - if (source_session == NULL) { - (void) qr_task_on_send(task, NULL, kr_error(EIO)); - return state == KR_STATE_DONE ? kr_ok() : kr_error(EIO); - } - - /* meant to be dropped */ - if (unlikely(ctx->req.answer == NULL || ctx->req.options.NO_ANSWER)) { - /* For NO_ANSWER, a well-behaved layer should set the state to FAIL */ - kr_assert(!ctx->req.options.NO_ANSWER || (ctx->req.state & KR_STATE_FAIL)); - - (void) qr_task_on_send(task, NULL, kr_ok()); - return kr_ok(); - } - - if (source_session->closing || - ctx->source.addr.ip.sa_family == AF_UNSPEC) - return kr_error(EINVAL); - - /* Reference task as the callback handler can close it */ - qr_task_ref(task); - - /* Send back answer */ - struct comm_info out_comm = { - .src_addr = &ctx->source.addr.ip, - .dst_addr = &ctx->source.dst_addr.ip, - .comm_addr = &ctx->source.comm_addr.ip, - .xdp = ctx->source.xdp - }; - if (ctx->source.xdp) { - memcpy(out_comm.eth_from, ctx->source.eth_from, sizeof(out_comm.eth_from)); - memcpy(out_comm.eth_to, ctx->source.eth_to, sizeof(out_comm.eth_to)); - } - int ret = qr_task_send(task, source_session, &out_comm, ctx->req.answer); - - if (ret != kr_ok()) { - (void) qr_task_on_send(task, NULL, kr_error(EIO)); - /* Since source session is erroneous detach all tasks. */ - while (!session2_tasklist_is_empty(source_session)) { - struct qr_task *t = session2_tasklist_del_first(source_session, false); - struct request_ctx *c = t->ctx; - kr_assert(c->source.session == source_session); - c->source.session = NULL; - /* Don't finalize them as there can be other tasks - * waiting for answer to this particular task. - * (ie. task->leading is true) */ - worker_task_unref(t); - } - session2_close(source_session); - } - - qr_task_unref(task); - - if (ret != kr_ok() || state != KR_STATE_DONE) - return kr_error(EIO); - return kr_ok(); -} - -static int udp_task_step(struct qr_task *task, - const struct sockaddr *packet_source, knot_pkt_t *packet) -{ - /* If there is already outgoing query, enqueue to it. */ - if (subreq_enqueue(task)) { - return kr_ok(); /* Will be notified when outgoing query finishes. */ - } - - /* Start transmitting */ - int err = transmit(task); - if (err) { - subreq_finalize(task, packet_source, packet); - return qr_task_finalize(task, KR_STATE_FAIL); - } - - /* Announce and start subrequest. - * @note Only UDP can lead I/O as it doesn't touch 'task->pktbuf' for reassembly. - */ - subreq_lead(task); - - return kr_ok(); -} - -static int tcp_task_waiting_connection(struct session2 *session, struct qr_task *task) -{ - if (kr_fails_assert(session->outgoing && !session->closing)) - return kr_error(EINVAL); - /* Add task to the end of list of waiting tasks. - * It will be notified in on_connect() or qr_task_on_send(). */ - int ret = session2_waitinglist_push(session, task); - if (ret < 0) { - return kr_error(EINVAL); - } - return kr_ok(); -} - -static int tcp_task_existing_connection(struct session2 *session, struct qr_task *task) -{ - if (kr_fails_assert(session->outgoing && !session->closing)) - return kr_error(EINVAL); - - /* If there are any unsent queries, send it first. */ - int ret = send_waiting(session); - if (ret != 0) { - return kr_error(EINVAL); - } - - /* No unsent queries at that point. */ - if (session2_tasklist_get_len(session) >= the_worker->tcp_pipeline_max) { - /* Too many outstanding queries, answer with SERVFAIL, */ - return kr_error(EINVAL); - } - - /* Send query to upstream. */ - ret = qr_task_send(task, session, NULL, NULL); - if (ret != 0) { - /* Error, finalize task with SERVFAIL and - * close connection to upstream. */ - session2_tasklist_finalize(session, KR_STATE_FAIL); - worker_del_tcp_connected(session2_get_peer(session)); - session2_close(session); - return kr_error(EINVAL); - } - - return kr_ok(); -} - -static int tcp_task_make_connection(struct qr_task *task, const struct sockaddr *addr) -{ - /* Check if there must be TLS */ - tls_client_param_t *tls_entry = tls_client_param_get( - the_network->tls_client_params, addr); - - uv_connect_t *conn = malloc(sizeof(uv_connect_t)); - if (!conn) { - return kr_error(EINVAL); - } - struct session2 *session; - - bool has_tls = tls_entry; - if (has_tls) { - struct protolayer_data_param param = { - .protocol = PROTOLAYER_PROTOCOL_TLS, - .param = tls_entry - }; - session = ioreq_spawn(SOCK_STREAM, addr->sa_family, - PROTOLAYER_GRP_DOTLS, ¶m, 1); - } else { - session = ioreq_spawn(SOCK_STREAM, addr->sa_family, - PROTOLAYER_GRP_DOTCP, NULL, 0); - } - if (!session) { - free(conn); - return kr_error(EINVAL); - } - if (kr_fails_assert(session->secure == has_tls)) { - free(conn); - return kr_error(EINVAL); - } - - /* Add address to the waiting list. - * Now it "is waiting to be connected to." */ - int ret = worker_add_tcp_waiting(addr, session); - if (ret < 0) { - free(conn); - session2_close(session); - return kr_error(EINVAL); - } - - conn->data = session; - /* Store peer address for the session. */ - struct sockaddr *peer = session2_get_peer(session); - memcpy(peer, addr, kr_sockaddr_len(addr)); - - /* Start watchdog to catch eventual connection timeout. */ - ret = session2_timer_start(session, PROTOLAYER_EVENT_CONNECT_TIMEOUT, - KR_CONN_RTT_MAX, 0); - if (ret != 0) { - worker_del_tcp_waiting(addr); - free(conn); - session2_close(session); - return kr_error(EINVAL); - } - - struct kr_query *qry = task_get_last_pending_query(task); - if (kr_log_is_debug_qry(WORKER, qry)) { - const char *peer_str = kr_straddr(peer); - VERBOSE_MSG(qry, "=> connecting to: '%s'\n", peer_str ? peer_str : ""); - } - - /* Start connection process to upstream. */ - ret = uv_tcp_connect(conn, (uv_tcp_t *)session2_get_handle(session), - addr , on_connect); - if (ret != 0) { - session2_timer_stop(session); - worker_del_tcp_waiting(addr); - free(conn); - session2_close(session); - qry->server_selection.error(qry, task->transport, KR_SELECTION_TCP_CONNECT_FAILED); - return kr_error(EAGAIN); - } - - /* Add task to the end of list of waiting tasks. - * Will be notified either in on_connect() or in qr_task_on_send(). */ - ret = session2_waitinglist_push(session, task); - if (ret < 0) { - session2_timer_stop(session); - worker_del_tcp_waiting(addr); - free(conn); - session2_close(session); - return kr_error(EINVAL); - } - - return kr_ok(); -} - -static int tcp_task_step(struct qr_task *task, - const struct sockaddr *packet_source, knot_pkt_t *packet) -{ - if (kr_fails_assert(task->pending_count == 0)) { - subreq_finalize(task, packet_source, packet); - return qr_task_finalize(task, KR_STATE_FAIL); - } - - /* target */ - const struct sockaddr *addr = &task->transport->address.ip; - if (addr->sa_family == AF_UNSPEC) { - /* Target isn't defined. Finalize task with SERVFAIL. - * Although task->pending_count is zero, there are can be followers, - * so we need to call subreq_finalize() to handle them properly. */ - subreq_finalize(task, packet_source, packet); - return qr_task_finalize(task, KR_STATE_FAIL); - } - /* Checkout task before connecting */ - struct request_ctx *ctx = task->ctx; - if (kr_resolve_checkout(&ctx->req, NULL, task->transport, task->pktbuf) != 0) { - subreq_finalize(task, packet_source, packet); - return qr_task_finalize(task, KR_STATE_FAIL); - } - int ret; - struct session2* session = NULL; - if ((session = worker_find_tcp_waiting(addr)) != NULL) { - /* Connection is in the list of waiting connections. - * It means that connection establishing is coming right now. */ - ret = tcp_task_waiting_connection(session, task); - } else if ((session = worker_find_tcp_connected(addr)) != NULL) { - /* Connection has been already established. */ - ret = tcp_task_existing_connection(session, task); - } else { - /* Make connection. */ - ret = tcp_task_make_connection(task, addr); - } - - if (ret != kr_ok()) { - subreq_finalize(task, addr, packet); - if (ret == kr_error(EAGAIN)) { - ret = qr_task_step(task, addr, NULL); - } else { - ret = qr_task_finalize(task, KR_STATE_FAIL); - } - } - - return ret; -} - -static int qr_task_step(struct qr_task *task, - const struct sockaddr *packet_source, knot_pkt_t *packet) -{ - /* No more steps after we're finished. */ - if (!task || task->finished) { - return kr_error(ESTALE); - } - - /* Close pending I/O requests */ - subreq_finalize(task, packet_source, packet); - if ((kr_now() - task->creation_time) >= KR_RESOLVE_TIME_LIMIT) { - struct kr_request *req = worker_task_request(task); - if (!kr_fails_assert(req)) - kr_query_inform_timeout(req, req->current_query); - return qr_task_finalize(task, KR_STATE_FAIL); - } - - /* Consume input and produce next query */ - struct request_ctx *ctx = task->ctx; - if (kr_fails_assert(ctx)) - return qr_task_finalize(task, KR_STATE_FAIL); - struct kr_request *req = &ctx->req; - - if (the_worker->too_many_open) { - /* */ - struct kr_rplan *rplan = &req->rplan; - if (the_worker->stats.rconcurrent < - the_worker->rconcurrent_highwatermark - 10) { - the_worker->too_many_open = false; - } else { - if (packet && kr_rplan_empty(rplan)) { - /* new query; TODO - make this detection more obvious */ - kr_resolve_consume(req, &task->transport, packet); - } - return qr_task_finalize(task, KR_STATE_FAIL); - } - } - - // Report network RTT back to server selection - if (packet && task->send_time && task->recv_time) { - struct kr_query *qry = array_tail(req->rplan.pending); - qry->server_selection.update_rtt(qry, task->transport, task->recv_time - task->send_time); - } - - int state = kr_resolve_consume(req, &task->transport, packet); - - task->transport = NULL; - while (state == KR_STATE_PRODUCE) { - state = kr_resolve_produce(req, &task->transport, task->pktbuf); - if (unlikely(++task->iter_count > KR_ITER_LIMIT || - task->timeouts >= KR_TIMEOUT_LIMIT)) { - - struct kr_rplan *rplan = &req->rplan; - struct kr_query *last = kr_rplan_last(rplan); - if (task->iter_count > KR_ITER_LIMIT) { - char *msg = "cancelling query due to exceeded iteration count limit"; - VERBOSE_MSG(last, "%s of %d\n", msg, KR_ITER_LIMIT); - kr_request_set_extended_error(req, KNOT_EDNS_EDE_OTHER, - "OGHD: exceeded iteration count limit"); - } - if (task->timeouts >= KR_TIMEOUT_LIMIT) { - char *msg = "cancelling query due to exceeded timeout retries limit"; - VERBOSE_MSG(last, "%s of %d\n", msg, KR_TIMEOUT_LIMIT); - kr_request_set_extended_error(req, KNOT_EDNS_EDE_NREACH_AUTH, "QLPL"); - } - - return qr_task_finalize(task, KR_STATE_FAIL); - } - } - - /* We're done, no more iterations needed */ - if (state & (KR_STATE_DONE|KR_STATE_FAIL)) { - return qr_task_finalize(task, state); - } else if (!task->transport || !task->transport->protocol) { - return qr_task_step(task, NULL, NULL); - } - - switch (task->transport->protocol) - { - case KR_TRANSPORT_UDP: - return udp_task_step(task, packet_source, packet); - case KR_TRANSPORT_TCP: // fall through - case KR_TRANSPORT_TLS: - return tcp_task_step(task, packet_source, packet); - default: - kr_assert(!EINVAL); - return kr_error(EINVAL); - } -} - -static int worker_submit(struct session2 *session, struct comm_info *comm, knot_pkt_t *pkt) -{ - if (!session || !pkt) - return kr_error(EINVAL); - - const bool is_query = pkt->size > KNOT_WIRE_OFFSET_FLAGS1 - && knot_wire_get_qr(pkt->wire) == 0; - const bool is_outgoing = session->outgoing; - - int ret = 0; - if (is_query == is_outgoing) - ret = KNOT_ENOENT; - - // For responses from upstream, try to find associated task and query. - // In case of errors, at least try to guess. - struct qr_task *task = NULL; - bool task_matched_id = false; - if (is_outgoing && pkt->size >= 2) { - const uint16_t id = knot_wire_get_id(pkt->wire); - task = session2_tasklist_del_msgid(session, id); - task_matched_id = task != NULL; - if (task_matched_id) // Note receive time for RTT calculation - task->recv_time = kr_now(); - if (!task_matched_id) { - ret = KNOT_ENOENT; - VERBOSE_MSG(NULL, "=> DNS message with mismatching ID %d\n", - (int)id); - } - } - if (!task && is_outgoing && session->stream) { - // Source address of the reply got somewhat validated, - // so we try to at least guess which query, for error reporting. - task = session2_tasklist_get_first(session); - } - struct kr_query *qry = NULL; - if (task) - qry = array_tail(task->ctx->req.rplan.pending); - - // Parse the packet, unless it's useless anyway. - if (ret == 0) { - ret = knot_pkt_parse(pkt, 0); - if (ret == KNOT_ETRAIL && is_outgoing - && !kr_fails_assert(pkt->parsed < pkt->size)) { - // We deal with this later, so that RCODE takes priority. - ret = 0; - } - if (ret && kr_log_is_debug_qry(WORKER, qry)) { - VERBOSE_MSG(qry, "=> DNS message failed to parse, %s\n", - knot_strerror(ret)); - } - } - - /* Badly formed query when using DoH leads to a Bad Request */ - if (session->custom_emalf_handling && !is_outgoing && ret) { - session2_event(session, PROTOLAYER_EVENT_MALFORMED, NULL); - return ret; - } - - const struct sockaddr *addr = comm ? comm->src_addr : NULL; - - /* Ignore badly formed queries. */ - if (ret) { - if (is_outgoing && qry) // unusuable response from somewhat validated IP - qry->server_selection.error(qry, task->transport, KR_SELECTION_MALFORMED); - if (!is_outgoing) - the_worker->stats.dropped += 1; - if (task_matched_id) // notify task that answer won't be coming anymore - qr_task_step(task, addr, NULL); - return kr_error(EILSEQ); - } - - /* Start new task on listening sockets, - * or resume if this is subrequest */ - if (!is_outgoing) { /* request from a client */ - struct request_ctx *ctx = - request_create(session, comm, knot_wire_get_id(pkt->wire)); - if (!ctx) - return kr_error(ENOMEM); - - ret = request_start(ctx, pkt); - if (ret != 0) { - request_free(ctx); - return kr_error(ENOMEM); - } - - task = qr_task_create(ctx); - if (!task) { - request_free(ctx); - return kr_error(ENOMEM); - } - - if (session->stream && qr_task_register(task, session)) { - return kr_error(ENOMEM); - } - } else { /* response from upstream */ - if (task == NULL) { - return kr_error(ENOENT); - } - if (kr_fails_assert(!session->closing)) - return kr_error(EINVAL); - } - if (kr_fails_assert(!session->closing)) - return kr_error(EINVAL); - - /* Packet was successfully parsed. - * Task was created (found). */ - session2_touch(session); - - /* Consume input and produce next message */ - return qr_task_step(task, addr, pkt); -} - -static int trie_add_tcp_session(trie_t *trie, const struct sockaddr *addr, - struct session2 *session) -{ - if (kr_fails_assert(trie && addr)) - return kr_error(EINVAL); - struct kr_sockaddr_key_storage key; - ssize_t keylen = kr_sockaddr_key(&key, addr); - if (keylen < 0) - return keylen; - trie_val_t *val = trie_get_ins(trie, key.bytes, keylen); - if (*val != NULL) - return kr_error(EEXIST); - *val = session; - return kr_ok(); -} - -static int trie_del_tcp_session(trie_t *trie, const struct sockaddr *addr) -{ - if (kr_fails_assert(trie && addr)) - return kr_error(EINVAL); - struct kr_sockaddr_key_storage key; - ssize_t keylen = kr_sockaddr_key(&key, addr); - if (keylen < 0) - return keylen; - int ret = trie_del(trie, key.bytes, keylen, NULL); - return ret ? kr_error(ENOENT) : kr_ok(); -} - -static struct session2 *trie_find_tcp_session(trie_t *trie, - const struct sockaddr *addr) -{ - if (kr_fails_assert(trie && addr)) - return NULL; - struct kr_sockaddr_key_storage key; - ssize_t keylen = kr_sockaddr_key(&key, addr); - if (keylen < 0) - return NULL; - trie_val_t *val = trie_get_try(trie, key.bytes, keylen); - return val ? *val : NULL; -} - -static int worker_add_tcp_connected(const struct sockaddr* addr, struct session2 *session) -{ - return trie_add_tcp_session(the_worker->tcp_connected, addr, session); -} - -static int worker_del_tcp_connected(const struct sockaddr* addr) -{ - return trie_del_tcp_session(the_worker->tcp_connected, addr); -} - -static struct session2* worker_find_tcp_connected(const struct sockaddr* addr) -{ - return trie_find_tcp_session(the_worker->tcp_connected, addr); -} - -static int worker_add_tcp_waiting(const struct sockaddr* addr, - struct session2 *session) -{ - return trie_add_tcp_session(the_worker->tcp_waiting, addr, session); -} - -static int worker_del_tcp_waiting(const struct sockaddr* addr) -{ - return trie_del_tcp_session(the_worker->tcp_waiting, addr); -} - -static struct session2* worker_find_tcp_waiting(const struct sockaddr* addr) -{ - return trie_find_tcp_session(the_worker->tcp_waiting, addr); -} - -int worker_end_tcp(struct session2 *session) -{ - if (!session) - return kr_error(EINVAL); - - session2_timer_stop(session); - session2_force_close(session); - return kr_ok(); -} - -knot_pkt_t *worker_resolve_mk_pkt_dname(knot_dname_t *qname, uint16_t qtype, uint16_t qclass, - const struct kr_qflags *options) -{ - knot_pkt_t *pkt = knot_pkt_new(NULL, KNOT_EDNS_MAX_UDP_PAYLOAD, NULL); - if (!pkt) - return NULL; - knot_pkt_put_question(pkt, qname, qclass, qtype); - knot_wire_set_rd(pkt->wire); - knot_wire_set_ad(pkt->wire); - - /* Add OPT RR, including wire format so modules can see both representations. - * knot_pkt_put() copies the outside; we need to duplicate the inside manually. */ - knot_rrset_t *opt = knot_rrset_copy(the_resolver->downstream_opt_rr, NULL); - if (!opt) { - knot_pkt_free(pkt); - return NULL; - } - if (options->DNSSEC_WANT) { - knot_edns_set_do(opt); - } - knot_pkt_begin(pkt, KNOT_ADDITIONAL); - int ret = knot_pkt_put(pkt, KNOT_COMPR_HINT_NONE, opt, KNOT_PF_FREE); - if (ret == KNOT_EOK) { - free(opt); /* inside is owned by pkt now */ - } else { - knot_rrset_free(opt, NULL); - knot_pkt_free(pkt); - return NULL; - } - - if (options->DNSSEC_CD) { - knot_wire_set_cd(pkt->wire); - } - - return pkt; -} - -knot_pkt_t *worker_resolve_mk_pkt(const char *qname_str, uint16_t qtype, uint16_t qclass, - const struct kr_qflags *options) -{ - uint8_t qname[KNOT_DNAME_MAXLEN]; - if (!knot_dname_from_str(qname, qname_str, sizeof(qname))) - return NULL; - return worker_resolve_mk_pkt_dname(qname, qtype, qclass, options); -} - -struct qr_task *worker_resolve_start(knot_pkt_t *query, struct kr_qflags options) -{ - if (kr_fails_assert(the_worker && query)) - return NULL; - - - struct request_ctx *ctx = request_create(NULL, NULL, the_worker->next_request_uid); - if (!ctx) - return NULL; - - /* Create task */ - struct qr_task *task = qr_task_create(ctx); - if (!task) { - request_free(ctx); - return NULL; - } - - /* Start task */ - int ret = request_start(ctx, query); - if (ret != 0) { - /* task is attached to request context, - * so dereference (and deallocate) it first */ - ctx->task = NULL; - qr_task_unref(task); - request_free(ctx); - return NULL; - } - - the_worker->next_request_uid += 1; - if (the_worker->next_request_uid == 0) - the_worker->next_request_uid = UINT16_MAX + 1; - - /* Set options late, as qr_task_start() -> kr_resolve_begin() rewrite it. */ - kr_qflags_set(&task->ctx->req.options, options); - return task; -} - -int worker_resolve_exec(struct qr_task *task, knot_pkt_t *query) -{ - if (!task) - return kr_error(EINVAL); - return qr_task_step(task, NULL, query); -} - -int worker_task_numrefs(const struct qr_task *task) -{ - return task->refs; -} - -struct kr_request *worker_task_request(struct qr_task *task) -{ - if (!task || !task->ctx) - return NULL; - - return &task->ctx->req; -} - -int worker_task_finalize(struct qr_task *task, int state) -{ - return qr_task_finalize(task, state); -} - -int worker_task_step(struct qr_task *task, const struct sockaddr *packet_source, - knot_pkt_t *packet) -{ - return qr_task_step(task, packet_source, packet); -} - -void worker_task_ref(struct qr_task *task) -{ - qr_task_ref(task); -} - -void worker_task_unref(struct qr_task *task) -{ - qr_task_unref(task); -} - -void worker_task_timeout_inc(struct qr_task *task) -{ - task->timeouts += 1; -} - -knot_pkt_t *worker_task_get_pktbuf(const struct qr_task *task) -{ - return task->pktbuf; -} - -struct kr_transport *worker_task_get_transport(struct qr_task *task) -{ - return task->transport; -} - -struct session2 *worker_request_get_source_session(const struct kr_request *req) -{ - static_assert(offsetof(struct request_ctx, req) == 0, - "Bad struct request_ctx definition."); - return ((struct request_ctx *)req)->source.session; -} - -uint16_t worker_task_pkt_get_msgid(struct qr_task *task) -{ - knot_pkt_t *pktbuf = worker_task_get_pktbuf(task); - uint16_t msg_id = knot_wire_get_id(pktbuf->wire); - return msg_id; -} - -void worker_task_pkt_set_msgid(struct qr_task *task, uint16_t msgid) -{ - knot_pkt_t *pktbuf = worker_task_get_pktbuf(task); - knot_wire_set_id(pktbuf->wire, msgid); - struct kr_query *q = task_get_last_pending_query(task); - if (q) - q->id = msgid; -} - -uint64_t worker_task_creation_time(struct qr_task *task) -{ - return task->creation_time; -} - -void worker_task_subreq_finalize(struct qr_task *task) -{ - subreq_finalize(task, NULL, NULL); -} - -bool worker_task_finished(struct qr_task *task) -{ - return task->finished; -} - -/** Reserve worker buffers. We assume worker's been zeroed. */ -static int worker_reserve(void) -{ - the_worker->tcp_connected = trie_create(NULL); - the_worker->tcp_waiting = trie_create(NULL); - the_worker->subreq_out = trie_create(NULL); - - mm_ctx_mempool(&the_worker->pkt_pool, 4 * sizeof(knot_pkt_t)); - - return kr_ok(); -} - -void worker_deinit(void) -{ - if (kr_fails_assert(the_worker)) - return; - trie_free(the_worker->tcp_connected); - trie_free(the_worker->tcp_waiting); - trie_free(the_worker->subreq_out); - the_worker->subreq_out = NULL; - - for (int i = 0; i < the_worker->doh_qry_headers.len; i++) - free((void *)the_worker->doh_qry_headers.at[i]); - array_clear(the_worker->doh_qry_headers); - - mp_delete(the_worker->pkt_pool.ctx); - the_worker->pkt_pool.ctx = NULL; - - the_worker = NULL; -} - -static inline knot_pkt_t *produce_packet(uint8_t *buf, size_t buf_len) -{ - return knot_pkt_new(buf, buf_len, &the_worker->pkt_pool); -} - -static enum protolayer_event_cb_result pl_dns_dgram_event_unwrap( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data) -{ - if (event != PROTOLAYER_EVENT_GENERAL_TIMEOUT) - return PROTOLAYER_EVENT_PROPAGATE; - - struct session2 *session = manager->session; - if (session2_tasklist_get_len(session) != 1 || - !session2_waitinglist_is_empty(session)) - return PROTOLAYER_EVENT_PROPAGATE; - - session2_timer_stop(session); - - struct qr_task *task = session2_tasklist_get_first(session); - if (!task) - return PROTOLAYER_EVENT_PROPAGATE; - - if (task->leading && task->pending_count > 0) { - struct kr_query *qry = array_tail(task->ctx->req.rplan.pending); - qry->server_selection.error(qry, task->transport, KR_SELECTION_QUERY_TIMEOUT); - } - - task->timeouts += 1; - the_worker->stats.timeout += 1; - qr_task_step(task, NULL, NULL); - - return PROTOLAYER_EVENT_PROPAGATE; -} - -static size_t pl_dns_dgram_wire_buf_overhead(bool outgoing) -{ - if (outgoing) { - if (the_resolver->upstream_opt_rr) - return knot_edns_get_payload(the_resolver->upstream_opt_rr); - } else { - if (the_resolver->downstream_opt_rr) - return knot_edns_get_payload(the_resolver->downstream_opt_rr); - } - return KNOT_WIRE_MAX_PKTSIZE; -} - -static enum protolayer_iter_cb_result pl_dns_dgram_unwrap( - void *sess_data, void *iter_data, struct protolayer_iter_ctx *ctx) -{ - struct session2 *session = ctx->manager->session; - - if (ctx->payload.type == PROTOLAYER_PAYLOAD_IOVEC) { - int ret = kr_ok(); - for (int i = 0; i < ctx->payload.iovec.cnt; i++) { - const struct iovec *iov = &ctx->payload.iovec.iov[i]; - if (iov->iov_len > MAX_DGRAM_LEN) { - session2_penalize(session); - ret = kr_error(EFBIG); - break; - } - - knot_pkt_t *pkt = produce_packet( - iov->iov_base, iov->iov_len); - if (!pkt) { - ret = KNOT_EMALF; - break; - } - - ret = worker_submit(session, &ctx->comm, pkt); - if (ret) - break; - } - - mp_flush(the_worker->pkt_pool.ctx); - return protolayer_break(ctx, ret); - } else if (ctx->payload.type == PROTOLAYER_PAYLOAD_BUFFER) { - if (ctx->payload.buffer.len > MAX_DGRAM_LEN) { - session2_penalize(session); - return protolayer_break(ctx, kr_error(EFBIG)); - } - knot_pkt_t *pkt = produce_packet( - ctx->payload.buffer.buf, - ctx->payload.buffer.len); - if (!pkt) - return protolayer_break(ctx, KNOT_EMALF); - - int ret = worker_submit(session, &ctx->comm, pkt); - mp_flush(the_worker->pkt_pool.ctx); - return protolayer_break(ctx, ret); - } else if (ctx->payload.type == PROTOLAYER_PAYLOAD_WIRE_BUF) { - const size_t msg_len = wire_buf_data_length(ctx->payload.wire_buf); - if (msg_len > MAX_DGRAM_LEN) { - session2_penalize(session); - return protolayer_break(ctx, kr_error(EFBIG)); - } - - knot_pkt_t *pkt = produce_packet( - wire_buf_data(ctx->payload.wire_buf), - msg_len); - if (!pkt) - return protolayer_break(ctx, KNOT_EMALF); - - int ret = worker_submit(session, &ctx->comm, pkt); - wire_buf_reset(ctx->payload.wire_buf); - mp_flush(the_worker->pkt_pool.ctx); - return protolayer_break(ctx, ret); - } else { - kr_assert(false && "Invalid payload"); - return protolayer_break(ctx, kr_error(EINVAL)); - } -} - -struct pl_dns_stream_sess_data { - struct protolayer_data h; - bool single : 1; /**< True: Stream only allows a single packet */ - bool produced : 1; /**< True: At least one packet has been produced */ - bool connected : 1; /**< True: The stream is connected */ -}; - -struct pl_dns_stream_iter_data { - struct protolayer_data h; - struct { - knot_mm_t *pool; - void *mem; - } sent; -}; - -static int pl_dns_stream_sess_init(struct protolayer_manager *manager, - void *sess_data, void *param) -{ - /* _UNSIZED_STREAM and _MULTI_STREAM - don't forget to split if needed - * at some point */ - manager->session->stream = true; - return kr_ok(); -} - -static int pl_dns_single_stream_sess_init(struct protolayer_manager *manager, - void *sess_data, void *param) -{ - manager->session->stream = true; - struct pl_dns_stream_sess_data *stream = sess_data; - stream->single = true; - return kr_ok(); -} - -static int pl_dns_stream_iter_deinit(struct protolayer_manager *manager, - struct protolayer_iter_ctx *ctx, - void *iter_data) -{ - struct pl_dns_stream_iter_data *stream = iter_data; - mm_free(stream->sent.pool, stream->sent.mem); - return kr_ok(); -} - -static enum protolayer_event_cb_result pl_dns_stream_resolution_timeout( - struct session2 *s) -{ - if (kr_fails_assert(!s->closing)) - return PROTOLAYER_EVENT_PROPAGATE; - - if (!session2_tasklist_is_empty(s)) { - int finalized = session2_tasklist_finalize_expired(s); - the_worker->stats.timeout += finalized; - /* session2_tasklist_finalize_expired() may call worker_task_finalize(). - * If session is a source session and there were IO errors, - * worker_task_finalize() can finalize all tasks and close session. */ - if (s->closing) - return PROTOLAYER_EVENT_PROPAGATE; - } - - if (!session2_tasklist_is_empty(s)) { - session2_timer_stop(s); - session2_timer_start(s, - PROTOLAYER_EVENT_GENERAL_TIMEOUT, - KR_RESOLVE_TIME_LIMIT / 2, - KR_RESOLVE_TIME_LIMIT / 2); - } else { - /* Normally it should not happen, - * but better to check if there anything in this list. */ - while (!session2_waitinglist_is_empty(s)) { - struct qr_task *t = session2_waitinglist_pop(s, false); - worker_task_finalize(t, KR_STATE_FAIL); - worker_task_unref(t); - the_worker->stats.timeout += 1; - if (s->closing) - return PROTOLAYER_EVENT_PROPAGATE; - } - uint64_t idle_in_timeout = the_network->tcp.in_idle_timeout; - uint64_t idle_time = kr_now() - s->last_activity; - if (idle_time < idle_in_timeout) { - idle_in_timeout -= idle_time; - session2_timer_stop(s); - session2_timer_start(s, PROTOLAYER_EVENT_GENERAL_TIMEOUT, - idle_in_timeout, idle_in_timeout); - } else { - struct sockaddr *peer = session2_get_peer(s); - char *peer_str = kr_straddr(peer); - kr_log_debug(IO, "=> closing connection to '%s'\n", - peer_str ? peer_str : ""); - worker_del_tcp_waiting(peer); - worker_del_tcp_connected(peer); - session2_close(s); - } - } - - return PROTOLAYER_EVENT_PROPAGATE; -} - -static enum protolayer_event_cb_result pl_dns_stream_connected( - struct session2 *session, struct pl_dns_stream_sess_data *stream) -{ - if (kr_fails_assert(!stream->connected)) - return PROTOLAYER_EVENT_PROPAGATE; - - stream->connected = true; - - struct sockaddr *peer = session2_get_peer(session); - if (session->outgoing && worker_del_tcp_waiting(peer) != 0) { - /* session isn't in list of waiting queries, - * something gone wrong */ - goto fail; - } - - int err = worker_add_tcp_connected(peer, session); - if (err) { - /* Could not add session to the list of connected, something - * went wrong. */ - goto fail; - } - - send_waiting(session); - return PROTOLAYER_EVENT_PROPAGATE; - -fail: - session2_waitinglist_finalize(session, KR_STATE_FAIL); - kr_assert(session2_tasklist_is_empty(session)); - session2_close(session); - return PROTOLAYER_EVENT_CONSUME; -} - -static enum protolayer_event_cb_result pl_dns_stream_connection_fail( - struct session2 *session, enum kr_selection_error sel_err) -{ - session2_timer_stop(session); - - kr_assert(session2_tasklist_is_empty(session)); - - struct sockaddr *peer = session2_get_peer(session); - worker_del_tcp_waiting(peer); - - struct qr_task *task = session2_waitinglist_get(session); - if (!task) { - /* Normally shouldn't happen. */ - const char *peer_str = kr_straddr(peer); - VERBOSE_MSG(NULL, "=> connection to '%s' failed, empty waitinglist\n", - peer_str ? peer_str : ""); - return PROTOLAYER_EVENT_PROPAGATE; - } - - struct kr_query *qry = task_get_last_pending_query(task); - if (kr_log_is_debug_qry(WORKER, qry)) { - const char *peer_str = kr_straddr(peer); - bool timeout = sel_err == KR_SELECTION_TCP_CONNECT_TIMEOUT; - VERBOSE_MSG(qry, "=> connection to '%s' failed (%s)\n", - peer_str ? peer_str : "", - timeout ? "timeout" : "error"); - } - - if (qry) - qry->server_selection.error(qry, task->transport, sel_err); - - the_worker->stats.timeout += session2_waitinglist_get_len(session); - session2_waitinglist_retry(session, true); - kr_assert(session2_tasklist_is_empty(session)); - /* uv_cancel() doesn't support uv_connect_t request, - * so that we can't cancel it. - * There still exists possibility of successful connection - * for this request. - * So connection callback (on_connect()) must check - * if connection is in the list of waiting connection. - * If no, most likely this is timed out connection even if - * it was successful. */ - - return PROTOLAYER_EVENT_PROPAGATE; -} - -static enum protolayer_event_cb_result pl_dns_stream_disconnected( - struct session2 *session, struct pl_dns_stream_sess_data *stream) -{ - struct sockaddr *peer = session2_get_peer(session); - worker_del_tcp_waiting(peer); - worker_del_tcp_connected(peer); - - if (!stream->connected) - return PROTOLAYER_EVENT_PROPAGATE; - - stream->connected = false; - - while (!session2_waitinglist_is_empty(session)) { - struct qr_task *task = session2_waitinglist_pop(session, false); - kr_assert(task->refs > 1); - session2_tasklist_del(session, task); - if (session->outgoing) { - if (task->ctx->req.options.FORWARD) { - /* We are in TCP_FORWARD mode. - * To prevent failing at kr_resolve_consume() - * qry.flags.TCP must be cleared. - * TODO - refactoring is needed. */ - struct kr_request *req = &task->ctx->req; - struct kr_rplan *rplan = &req->rplan; - struct kr_query *qry = array_tail(rplan->pending); - qry->flags.TCP = false; - } - qr_task_step(task, NULL, NULL); - } else { - kr_assert(task->ctx->source.session == session); - task->ctx->source.session = NULL; - } - worker_task_unref(task); - } - while (!session2_tasklist_is_empty(session)) { - struct qr_task *task = session2_tasklist_del_first(session, false); - if (session->outgoing) { - if (task->ctx->req.options.FORWARD) { - struct kr_request *req = &task->ctx->req; - struct kr_rplan *rplan = &req->rplan; - struct kr_query *qry = array_tail(rplan->pending); - qry->flags.TCP = false; - } - qr_task_step(task, NULL, NULL); - } else { - kr_assert(task->ctx->source.session == session); - task->ctx->source.session = NULL; - } - worker_task_unref(task); - } - - return PROTOLAYER_EVENT_PROPAGATE; -} - -static enum protolayer_event_cb_result pl_dns_stream_event_unwrap( - enum protolayer_event_type event, void **baton, - struct protolayer_manager *manager, void *sess_data) -{ - struct session2 *session = manager->session; - if (session->closing) - return PROTOLAYER_EVENT_PROPAGATE; - - struct pl_dns_stream_sess_data *stream = sess_data; - - switch (event) { - case PROTOLAYER_EVENT_GENERAL_TIMEOUT: - return pl_dns_stream_resolution_timeout(manager->session); - - case PROTOLAYER_EVENT_CONNECT_TIMEOUT: - return pl_dns_stream_connection_fail(manager->session, - KR_SELECTION_TCP_CONNECT_TIMEOUT); - - case PROTOLAYER_EVENT_CONNECT: - return pl_dns_stream_connected(session, stream); - - case PROTOLAYER_EVENT_CONNECT_FAIL:; - enum kr_selection_error err = (*baton) - ? *(enum kr_selection_error *)baton - : KR_SELECTION_TCP_CONNECT_FAILED; - return pl_dns_stream_connection_fail(manager->session, err); - - case PROTOLAYER_EVENT_DISCONNECT: - case PROTOLAYER_EVENT_CLOSE: - case PROTOLAYER_EVENT_FORCE_CLOSE: - return pl_dns_stream_disconnected(session, stream); - - default: - return PROTOLAYER_EVENT_PROPAGATE; - } -} - -static knot_pkt_t *stream_produce_packet(struct session2 *session, - struct wire_buf *wb, - bool *out_err) -{ - *out_err = false; - if (wire_buf_data_length(wb) == 0) { - wire_buf_reset(wb); - return NULL; - } - if (wire_buf_data_length(wb) < sizeof(uint16_t)) { - return NULL; - } - - uint16_t msg_len = knot_wire_read_u16(wire_buf_data(wb)); - if (msg_len == 0) { - *out_err = true; - session2_penalize(session); - return NULL; - } - if (msg_len >= wb->size) { - *out_err = true; - session2_penalize(session); - return NULL; - } - if (wire_buf_data_length(wb) < msg_len + sizeof(uint16_t)) { - return NULL; - } - - uint8_t *wire = (uint8_t *)wire_buf_data(wb) + sizeof(uint16_t); - - session->was_useful = true; - knot_pkt_t *pkt = produce_packet(wire, msg_len); - *out_err = (pkt == NULL); - return pkt; -} - -static int stream_discard_packet(struct session2 *session, - struct wire_buf *wb, - const knot_pkt_t *pkt, - bool *out_err) -{ - *out_err = true; - - if (kr_fails_assert(wire_buf_data_length(wb) >= sizeof(uint16_t))) { - wire_buf_reset(wb); - return kr_error(EINVAL); - } - - size_t msg_size = knot_wire_read_u16(wire_buf_data(wb)); - uint8_t *wire = (uint8_t *)wire_buf_data(wb) + sizeof(uint16_t); - if (kr_fails_assert(msg_size + sizeof(uint16_t) <= wire_buf_data_length(wb))) { - /* TCP message length field is greater then - * number of bytes in buffer, must not happen. */ - wire_buf_reset(wb); - return kr_error(EINVAL); - } - - if (kr_fails_assert(wire == pkt->wire)) { - /* packet wirebuf must be located at the beginning - * of the session wirebuf, must not happen. */ - wire_buf_reset(wb); - return kr_error(EINVAL); - } - - if (kr_fails_assert(msg_size >= pkt->size)) { - wire_buf_reset(wb); - return kr_error(EINVAL); - } - - wire_buf_trim(wb, msg_size + sizeof(uint16_t)); - *out_err = false; - - if (wire_buf_data_length(wb) == 0) { - wire_buf_reset(wb); - } else if (wire_buf_data_length(wb) < KNOT_WIRE_HEADER_SIZE) { - wire_buf_movestart(wb); - } - - return kr_ok(); -} - -static enum protolayer_iter_cb_result pl_dns_stream_unwrap( - void *sess_data, void *iter_data, struct protolayer_iter_ctx *ctx) -{ - if (kr_fails_assert(ctx->payload.type == PROTOLAYER_PAYLOAD_WIRE_BUF)) { - /* DNS stream only works with a wire buffer */ - return protolayer_break(ctx, kr_error(EINVAL)); - } - - int status = kr_ok(); - struct session2 *session = ctx->manager->session; - struct pl_dns_stream_sess_data *stream_sess = sess_data; - struct wire_buf *wb = ctx->payload.wire_buf; - - if (wire_buf_data_length(wb) == 0) - return protolayer_break(ctx, status); - - const uint32_t max_iters = (wire_buf_data_length(wb) / - (KNOT_WIRE_HEADER_SIZE + KNOT_WIRE_QUESTION_MIN_SIZE)) + 1; - int iters = 0; - - bool pkt_error = false; - knot_pkt_t *pkt = NULL; - while ((pkt = stream_produce_packet(session, wb, &pkt_error)) && iters < max_iters) { - if (kr_fails_assert(!pkt_error)) { - status = kr_error(EINVAL); - goto exit; - } - if (stream_sess->single && stream_sess->produced) { - if (kr_log_is_debug(WORKER, NULL)) { - kr_log_debug(WORKER, "Unexpected extra data from %s\n", - kr_straddr(ctx->comm.src_addr)); - } - status = KNOT_EMALF; - goto exit; - } - - stream_sess->produced = true; - int ret = worker_submit(session, &ctx->comm, pkt); - - /* Errors from worker_submit() are intentionally *not* handled - * in order to ensure the entire wire buffer is processed. */ - if (ret == kr_ok()) { - iters += 1; - } - if (stream_discard_packet(session, wb, pkt, &pkt_error) < 0) { - /* Packet data isn't stored in memory as expected. - * something went wrong, normally should not happen. */ - break; - } - } - - /* worker_submit() may cause the session to close (e.g. due to IO - * write error when the packet triggers an immediate answer). This is - * an error state, as well as any wirebuf error. */ - if (session->closing || pkt_error) - status = kr_error(EIO); - -exit: - wire_buf_movestart(wb); - mp_flush(the_worker->pkt_pool.ctx); - if (status < 0) - worker_end_tcp(session); - return protolayer_break(ctx, status); -} - -struct sized_iovs { - uint8_t nlen[2]; - struct iovec iovs[]; -}; - -static enum protolayer_iter_cb_result pl_dns_stream_wrap( - void *sess_data, void *iter_data, struct protolayer_iter_ctx *ctx) -{ - struct pl_dns_stream_iter_data *stream = iter_data; - struct session2 *s = ctx->manager->session; - - if (kr_fails_assert(!stream->sent.mem)) - return protolayer_break(ctx, kr_error(EINVAL)); - - if (ctx->payload.type == PROTOLAYER_PAYLOAD_BUFFER) { - if (kr_fails_assert(ctx->payload.buffer.len <= UINT16_MAX)) - return protolayer_break(ctx, kr_error(EMSGSIZE)); - - const int iovcnt = 2; - struct sized_iovs *siov = mm_alloc(&s->pool, - sizeof(*siov) + iovcnt * sizeof(struct iovec)); - kr_require(siov); - knot_wire_write_u16(siov->nlen, ctx->payload.buffer.len); - siov->iovs[0] = (struct iovec){ - .iov_base = &siov->nlen, - .iov_len = sizeof(siov->nlen) - }; - siov->iovs[1] = (struct iovec){ - .iov_base = ctx->payload.buffer.buf, - .iov_len = ctx->payload.buffer.len - }; - - stream->sent.mem = siov; - stream->sent.pool = &s->pool; - - ctx->payload = protolayer_iovec(siov->iovs, iovcnt, false); - return protolayer_continue(ctx); - } else if (ctx->payload.type == PROTOLAYER_PAYLOAD_IOVEC) { - const int iovcnt = 1 + ctx->payload.iovec.cnt; - struct sized_iovs *siov = mm_alloc(&s->pool, - sizeof(*siov) + iovcnt * sizeof(struct iovec)); - kr_require(siov); - - size_t total_len = 0; - for (int i = 0; i < ctx->payload.iovec.cnt; i++) { - const struct iovec *iov = &ctx->payload.iovec.iov[i]; - total_len += iov->iov_len; - siov->iovs[i + 1] = *iov; - } - - if (kr_fails_assert(total_len <= UINT16_MAX)) - return protolayer_break(ctx, kr_error(EMSGSIZE)); - knot_wire_write_u16(siov->nlen, total_len); - siov->iovs[0] = (struct iovec){ - .iov_base = &siov->nlen, - .iov_len = sizeof(siov->nlen) - }; - - stream->sent.mem = siov; - stream->sent.pool = &s->pool; - - ctx->payload = protolayer_iovec(siov->iovs, iovcnt, false); - return protolayer_continue(ctx); - } else { - kr_assert(false && "Invalid payload"); - return protolayer_break(ctx, kr_error(EINVAL)); - } -} - -static void pl_dns_stream_request_init(struct protolayer_manager *manager, - struct kr_request *req, - void *sess_data) -{ - req->qsource.comm_flags.tcp = true; -} - -int worker_init(void) -{ - if (kr_fails_assert(the_worker == NULL)) - return kr_error(EINVAL); - kr_bindings_register(the_engine->L); // TODO move - - /* DNS protocol layers */ - protolayer_globals[PROTOLAYER_PROTOCOL_DNS_DGRAM] = (struct protolayer_globals){ - .wire_buf_overhead_cb = pl_dns_dgram_wire_buf_overhead, - .wire_buf_max_overhead = KNOT_WIRE_MAX_PKTSIZE, - .unwrap = pl_dns_dgram_unwrap, - .event_unwrap = pl_dns_dgram_event_unwrap - }; - protolayer_globals[PROTOLAYER_PROTOCOL_DNS_UNSIZED_STREAM] = (struct protolayer_globals){ - .sess_size = sizeof(struct pl_dns_stream_sess_data), - .wire_buf_overhead = KNOT_WIRE_MAX_PKTSIZE, - .sess_init = pl_dns_stream_sess_init, - .unwrap = pl_dns_dgram_unwrap, - .event_unwrap = pl_dns_stream_event_unwrap, - .request_init = pl_dns_stream_request_init - }; - const struct protolayer_globals stream_common = { - .sess_size = sizeof(struct pl_dns_stream_sess_data), - .iter_size = sizeof(struct pl_dns_stream_iter_data), - .wire_buf_overhead = KNOT_WIRE_MAX_PKTSIZE, - .sess_init = NULL, /* replaced in specific layers below */ - .iter_deinit = pl_dns_stream_iter_deinit, - .unwrap = pl_dns_stream_unwrap, - .wrap = pl_dns_stream_wrap, - .event_unwrap = pl_dns_stream_event_unwrap, - .request_init = pl_dns_stream_request_init - }; - protolayer_globals[PROTOLAYER_PROTOCOL_DNS_MULTI_STREAM] = stream_common; - protolayer_globals[PROTOLAYER_PROTOCOL_DNS_MULTI_STREAM].sess_init = pl_dns_stream_sess_init; - protolayer_globals[PROTOLAYER_PROTOCOL_DNS_SINGLE_STREAM] = stream_common; - protolayer_globals[PROTOLAYER_PROTOCOL_DNS_SINGLE_STREAM].sess_init = pl_dns_single_stream_sess_init; - - /* Create main worker. */ - the_worker = &the_worker_value; - memset(the_worker, 0, sizeof(*the_worker)); - - uv_loop_t *loop = uv_default_loop(); - the_worker->loop = loop; - - static const int worker_count = 1; - the_worker->count = worker_count; - - /* Register table for worker per-request variables */ - struct lua_State *L = the_engine->L; - lua_newtable(L); - lua_setfield(L, -2, "vars"); - lua_getfield(L, -1, "vars"); - the_worker->vars_table_ref = luaL_ref(L, LUA_REGISTRYINDEX); - lua_pop(L, 1); - - the_worker->tcp_pipeline_max = MAX_PIPELINED; - the_worker->out_addr4.sin_family = AF_UNSPEC; - the_worker->out_addr6.sin6_family = AF_UNSPEC; - - array_init(the_worker->doh_qry_headers); - - int ret = worker_reserve(); - if (ret) return ret; - the_worker->next_request_uid = UINT16_MAX + 1; - - /* Set some worker.* fields in Lua */ - lua_getglobal(L, "worker"); - pid_t pid = getpid(); - - auto_free char *pid_str = NULL; - const char *inst_name = getenv("SYSTEMD_INSTANCE"); - if (inst_name) { - lua_pushstring(L, inst_name); - } else { - ret = asprintf(&pid_str, "%ld", (long)pid); - kr_assert(ret > 0); - lua_pushstring(L, pid_str); - } - lua_setfield(L, -2, "id"); - - lua_pushnumber(L, pid); - lua_setfield(L, -2, "pid"); - lua_pushnumber(L, worker_count); - lua_setfield(L, -2, "count"); - - char cwd[PATH_MAX]; - get_workdir(cwd, sizeof(cwd)); - lua_pushstring(L, cwd); - lua_setfield(L, -2, "cwd"); - - loop->data = the_worker; - /* ^^^^ Now this shouldn't be used anymore, but it's hard to be 100% sure. */ - return kr_ok(); -} - -#undef VERBOSE_MSG diff --git a/daemon/worker.h b/daemon/worker.h deleted file mode 100644 index 8f89e5866..000000000 --- a/daemon/worker.h +++ /dev/null @@ -1,165 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include "daemon/engine.h" -#include "lib/generic/array.h" -#include "lib/generic/trie.h" - - -/** Query resolution task (opaque). */ -struct qr_task; -/** Worker state. */ -struct worker_ctx; -/** Transport session (opaque). */ -struct session2; -/** Data about the communication (defined in io.h). */ -struct comm_info; - -/** Pointer to the singleton worker. NULL if not initialized. */ -KR_EXPORT extern struct worker_ctx *the_worker; - -/** Create and initialize the worker. - * \return error code (ENOMEM) */ -int worker_init(void); - -/** Destroy the worker (free memory). */ -void worker_deinit(void); - -/** - * End current DNS/TCP session, this disassociates pending tasks from this session - * which may be freely closed afterwards. - */ -int worker_end_tcp(struct session2 *session); - -KR_EXPORT knot_pkt_t *worker_resolve_mk_pkt_dname(knot_dname_t *qname, uint16_t qtype, uint16_t qclass, - const struct kr_qflags *options); - -/** - * Create a packet suitable for worker_resolve_start(). All in malloc() memory. - */ -KR_EXPORT knot_pkt_t * -worker_resolve_mk_pkt(const char *qname_str, uint16_t qtype, uint16_t qclass, - const struct kr_qflags *options); - -/** - * Start query resolution with given query. - * - * @return task or NULL - */ -KR_EXPORT struct qr_task * -worker_resolve_start(knot_pkt_t *query, struct kr_qflags options); - -/** - * Execute a request with given query. - * It expects task to be created with \fn worker_resolve_start. - * - * @return 0 or an error code - */ -KR_EXPORT int worker_resolve_exec(struct qr_task *task, knot_pkt_t *query); - -/** @return struct kr_request associated with opaque task */ -struct kr_request *worker_task_request(struct qr_task *task); - -int worker_task_step(struct qr_task *task, const struct sockaddr *packet_source, - knot_pkt_t *packet); - -int worker_task_numrefs(const struct qr_task *task); - -/** Finalize given task */ -int worker_task_finalize(struct qr_task *task, int state); - -void worker_task_complete(struct qr_task *task); - -void worker_task_ref(struct qr_task *task); - -void worker_task_unref(struct qr_task *task); - -void worker_task_timeout_inc(struct qr_task *task); - -knot_pkt_t *worker_task_get_pktbuf(const struct qr_task *task); - -struct kr_transport *worker_task_get_transport(struct qr_task *task); - -/** Note: source session is NULL in case the request hasn't come over network. */ -KR_EXPORT struct session2 *worker_request_get_source_session(const struct kr_request *req); - -uint16_t worker_task_pkt_get_msgid(struct qr_task *task); -void worker_task_pkt_set_msgid(struct qr_task *task, uint16_t msgid); -uint64_t worker_task_creation_time(struct qr_task *task); -void worker_task_subreq_finalize(struct qr_task *task); -bool worker_task_finished(struct qr_task *task); - -/** To be called after sending a DNS message. It mainly deals with cleanups. */ -int qr_task_on_send(struct qr_task *task, struct session2 *s, int status); - -/** Various worker statistics. Sync with wrk_stats() */ -struct worker_stats { - size_t queries; /**< Total number of requests (from clients and internal ones). */ - size_t concurrent; /**< The number of requests currently in processing. */ - size_t rconcurrent; /*< TODO: remove? I see no meaningful difference from .concurrent. */ - size_t dropped; /**< The number of requests dropped due to being badly formed. See #471. */ - - size_t timeout; /**< Number of outbound queries that timed out. */ - size_t udp; /**< Number of outbound queries over UDP. */ - size_t tcp; /**< Number of outbound queries over TCP (excluding TLS). */ - size_t tls; /**< Number of outbound queries over TLS. */ - size_t ipv4; /**< Number of outbound queries over IPv4.*/ - size_t ipv6; /**< Number of outbound queries over IPv6. */ - - size_t err_udp; /**< Total number of write errors for UDP transport. */ - size_t err_tcp; /**< Total number of write errors for TCP transport. */ - size_t err_tls; /**< Total number of write errors for TLS transport. */ - size_t err_http; /**< Total number of write errors for HTTP(S) transport. */ -}; - -/** @cond internal */ - -/** Number of request within timeout window. */ -#define MAX_PENDING 4 - -/** Maximum response time from TCP upstream, milliseconds */ -#define MAX_TCP_INACTIVITY (KR_RESOLVE_TIME_LIMIT + KR_CONN_RTT_MAX) - -#ifndef RECVMMSG_BATCH /* see check_bufsize() */ -#define RECVMMSG_BATCH 1 -#endif - -/** List of query resolution tasks. */ -typedef array_t(struct qr_task *) qr_tasklist_t; - -/** List of HTTP header names. */ -typedef array_t(const char *) doh_headerlist_t; - -/** \details Worker state is meant to persist during the whole life of daemon. */ -struct worker_ctx { - uv_loop_t *loop; - int count; /** unreliable, does not count systemd instance, do not use */ - int vars_table_ref; - unsigned tcp_pipeline_max; - - /** Addresses to bind for outgoing connections or AF_UNSPEC. */ - struct sockaddr_in out_addr4; - struct sockaddr_in6 out_addr6; - - struct worker_stats stats; - - bool too_many_open; - size_t rconcurrent_highwatermark; - /** List of active outbound TCP sessions */ - trie_t *tcp_connected; - /** List of outbound TCP sessions waiting to be accepted */ - trie_t *tcp_waiting; - /** Subrequest leaders (struct qr_task*), indexed by qname+qtype+qclass. */ - trie_t *subreq_out; - knot_mm_t pkt_pool; - unsigned int next_request_uid; - - /* HTTP Headers for DoH. */ - doh_headerlist_t doh_qry_headers; -}; - -/** @endcond */ - diff --git a/daemon/zimport.c b/daemon/zimport.c deleted file mode 100644 index 8d395270d..000000000 --- a/daemon/zimport.c +++ /dev/null @@ -1,740 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -/* Module is intended to import resource records from file into resolver's cache. - * File supposed to be a standard DNS zone file - * which contains text representations of resource records. - * For now only root zone import is supported. - * - * Import process consists of two stages. - * 1) Zone file parsing and (optionally) ZONEMD verification. - * 2) DNSSEC validation and storage in cache. - * - * These stages are implemented as two separate functions - * (zi_zone_import and zi_zone_process) which run sequentially with a - * pause between them. This is done because resolver is a single-threaded - * application, so it can't process user's requests during the whole import - * process. Separation into two stages allows to reduce the - * continuous time interval when resolver can't serve user requests. - * Since root zone isn't large, it is imported as single chunk. - */ - -#include "daemon/zimport.h" - -#include /* PRIu64 */ -#include -#include -#include -#include -#include - -#include -#include - -#include -#define ENABLE_ZONEMD (KNOT_VERSION_HEX >= 0x030100) -#if ENABLE_ZONEMD - #include - - #if KNOT_VERSION_HEX < 0x030200 - #define KNOT_ZONEMD_ALGORITHM_SHA384 KNOT_ZONEMD_ALORITHM_SHA384 - #define KNOT_ZONEMD_ALGORITHM_SHA512 KNOT_ZONEMD_ALORITHM_SHA512 - #endif -#endif - -#include "daemon/worker.h" -#include "lib/dnssec/ta.h" -#include "lib/dnssec.h" -#include "lib/generic/trie.h" -#include "lib/utils.h" - -/* Pause between parse and import stages, milliseconds. */ -#define ZONE_IMPORT_PAUSE 100 - -// NAN normally comes from but it's not guaranteed. -#ifndef NAN - #define NAN nan("") -#endif - -struct zone_import_ctx { - knot_mm_t *pool; /// memory pool for all allocations (including struct itself) - knot_dname_t *origin; - uv_timer_t timer; - - // from zi_config_t - zi_callback cb; - void *cb_param; - - trie_t *rrsets; /// map: key_get() -> knot_rrset_t*, in ZONEMD order - uint32_t timestamp_rr; /// stamp of when RR data arrived (seconds since epoch) - - struct kr_svldr_ctx *svldr; /// DNSSEC validator; NULL iff we don't validate - const knot_dname_t *last_cut; /// internal to zi_rrset_import() - -#if ENABLE_ZONEMD - uint8_t *digest_buf; /// temporary buffer for digest computation (on pool) - #define DIGEST_BUF_SIZE (64*1024 - 1) - #define DIGEST_ALG_COUNT 2 - struct { - bool active; /// whether we want it computed - dnssec_digest_ctx_t *ctx; - const uint8_t *expected; /// expected digest (inside zonemd on pool) - } digests[DIGEST_ALG_COUNT]; /// we use indices 0 and 1 for SHA 384 and 512 -#endif -}; - -typedef struct zone_import_ctx zone_import_ctx_t; - - -#define KEY_LEN (KNOT_DNAME_MAXLEN + 1 + 2 + 2) -/** Construct key for name, type and signed type (if type == RRSIG). - * - * Return negative error code in asserted cases. - */ -static int key_get(char buf[KEY_LEN], const knot_dname_t *name, - uint16_t type, uint16_t type_maysig, char **key_p) -{ - char *lf = (char *)knot_dname_lf(name, (uint8_t *)buf); - if (kr_fails_assert(lf && key_p)) - return kr_error(EINVAL); - int len = lf[0]; - lf++; // point to start of data - *key_p = lf; - // Check that LF is right-aligned to KNOT_DNAME_MAXLEN in buf. - if (kr_fails_assert(lf + len == buf + KNOT_DNAME_MAXLEN)) - return kr_error(EINVAL); - buf[KNOT_DNAME_MAXLEN] = 0; // this ensures correct ZONEMD order - memcpy(buf + KNOT_DNAME_MAXLEN + 1, &type, sizeof(type)); - len += 1 + sizeof(type); - if (type == KNOT_RRTYPE_RRSIG) { - memcpy(buf + KNOT_DNAME_MAXLEN + 1 + sizeof(type), - &type_maysig, sizeof(type_maysig)); - len += sizeof(type_maysig); - } - return len; -} - -/** Simple helper to retreive from zone_import_ctx_t::rrsets */ -static knot_rrset_t * rrset_get(trie_t *rrsets, const knot_dname_t *name, - uint16_t type, uint16_t type_maysig) -{ - char key_buf[KEY_LEN], *key; - const int len = key_get(key_buf, name, type, type_maysig, &key); - if (len < 0) - return NULL; - const trie_val_t *rrsig_p = trie_get_try(rrsets, key, len); - if (!rrsig_p) - return NULL; - kr_assert(*rrsig_p); - return *rrsig_p; -} - -#if ENABLE_ZONEMD -static int digest_rrset(trie_val_t *rr_p, void *z_import_v) -{ - zone_import_ctx_t *z_import = z_import_v; - const knot_rrset_t *rr = *rr_p; - - // ignore apex ZONEMD or its RRSIG, and also out of bailiwick records - const int origin_bailiwick = knot_dname_in_bailiwick(rr->owner, z_import->origin); - const bool is_apex = origin_bailiwick == 0; - if (is_apex && kr_rrset_type_maysig(rr) == KNOT_RRTYPE_ZONEMD) - return KNOT_EOK; - if (unlikely(origin_bailiwick < 0)) - return KNOT_EOK; - - const int len = knot_rrset_to_wire_extra(rr, z_import->digest_buf, DIGEST_BUF_SIZE, - 0, NULL, KNOT_PF_ORIGTTL); - if (len < 0) - return kr_error(len); - - // digest serialized RRSet - for (int i = 0; i < DIGEST_ALG_COUNT; ++i) { - if (!z_import->digests[i].active) - continue; - dnssec_binary_t bufbin = { len, z_import->digest_buf }; - int ret = dnssec_digest(z_import->digests[i].ctx, &bufbin); - if (ret != KNOT_EOK) - return kr_error(ret); - } - return KNOT_EOK; -} - -/** Verify ZONEMD in the stored zone, and return error code. - * - * ZONEMD signature is verified iff z_import->svldr != NULL - https://www.rfc-editor.org/rfc/rfc8976.html#name-verifying-zone-digest - */ -static int zonemd_verify(zone_import_ctx_t *z_import) -{ - bool zonemd_is_valid = false; - // Find ZONEMD RR + RRSIG - knot_rrset_t * const rr_zonemd - = rrset_get(z_import->rrsets, z_import->origin, KNOT_RRTYPE_ZONEMD, 0); - if (!rr_zonemd) { - // no zonemd; let's compute the shorter digest and print info later - z_import->digests[KNOT_ZONEMD_ALGORITHM_SHA384 - 1].active = true; - goto do_digest; - } - // Validate ZONEMD RRSIG, if desired - if (z_import->svldr) { - const knot_rrset_t *rrsig_zonemd - = rrset_get(z_import->rrsets, z_import->origin, - KNOT_RRTYPE_RRSIG, KNOT_RRTYPE_ZONEMD); - int ret = rrsig_zonemd - ? kr_svldr_rrset(rr_zonemd, &rrsig_zonemd->rrs, z_import->svldr) - : kr_error(ENOENT); - zonemd_is_valid = (ret == kr_ok()); - - if (!rrsig_zonemd) { - kr_log_error(PREFILL, "ZONEMD signature missing\n"); - } else if (!zonemd_is_valid) { - kr_log_error(PREFILL, "ZONEMD signature failed to validate\n"); - } - } - - // Get SOA serial - const knot_rrset_t *soa = rrset_get(z_import->rrsets, z_import->origin, - KNOT_RRTYPE_SOA, 0); - if (!soa) { - kr_log_error(PREFILL, "SOA record not found\n"); - return kr_error(ENOENT); - } - if (soa->rrs.count != 1) { - kr_log_error(PREFILL, "the SOA RR set is weird\n"); - return kr_error(EINVAL); - } // length is checked by parser already - const uint32_t soa_serial = knot_soa_serial(soa->rrs.rdata); - - // Figure out SOA+ZONEMD RR contents. - bool some_active = false; - knot_rdata_t *rd = rr_zonemd->rrs.rdata; - for (int i = 0; i < rr_zonemd->rrs.count; ++i, rd = knot_rdataset_next(rd)) { - if (rd->len < 6 || knot_zonemd_scheme(rd) != KNOT_ZONEMD_SCHEME_SIMPLE - || knot_zonemd_soa_serial(rd) != soa_serial) - continue; - const int algo = knot_zonemd_algorithm(rd); - if (algo != KNOT_ZONEMD_ALGORITHM_SHA384 && algo != KNOT_ZONEMD_ALGORITHM_SHA512) - continue; - if (rd->len != 6 + knot_zonemd_digest_size(rd)) { - kr_log_error(PREFILL, "ZONEMD record has incorrect digest length\n"); - return kr_error(EINVAL); - } - if (z_import->digests[algo - 1].active) { - kr_log_error(PREFILL, "multiple clashing ZONEMD records found\n"); - return kr_error(EINVAL); - } - some_active = true; - z_import->digests[algo - 1].active = true; - z_import->digests[algo - 1].expected = knot_zonemd_digest(rd); - } - if (!some_active) { - kr_log_error(PREFILL, "ZONEMD record(s) found but none were usable\n"); - return kr_error(ENOENT); - } -do_digest: - // Init memory, etc. - if (!z_import->digest_buf) { - z_import->digest_buf = mm_alloc(z_import->pool, DIGEST_BUF_SIZE); - if (!z_import->digest_buf) - return kr_error(ENOMEM); - } - for (int i = 0; i < DIGEST_ALG_COUNT; ++i) { - const int algo = i + 1; - if (!z_import->digests[i].active) - continue; - int ret = dnssec_digest_init(algo, &z_import->digests[i].ctx); - if (ret != KNOT_EOK) { - // free previous successful _ctx, if applicable - dnssec_binary_t digest = { 0 }; - while (--i >= 0) { - if (z_import->digests[i].active) - dnssec_digest_finish(z_import->digests[i].ctx, - &digest); - } - return kr_error(ENOMEM); - } - } - // Actually compute the digest(s). - int ret = trie_apply(z_import->rrsets, digest_rrset, z_import); - dnssec_binary_t digs[DIGEST_ALG_COUNT] = { { 0 } }; - for (int i = 0; i < DIGEST_ALG_COUNT; ++i) { - if (!z_import->digests[i].active) - continue; - int ret2 = dnssec_digest_finish(z_import->digests[i].ctx, &digs[i]); - if (ret == DNSSEC_EOK) - ret = ret2; - // we need to keep going to free all digests[*].ctx - } - if (ret != DNSSEC_EOK) { - for (int i = 0; i < DIGEST_ALG_COUNT; ++i) - free(digs[i].data); - kr_log_error(PREFILL, "error when computing digest: %s\n", - kr_strerror(ret)); - return kr_error(ret); - } - // Now only check that one of the hashes match. - bool has_match = false; - for (int i = 0; i < DIGEST_ALG_COUNT; ++i) { - if (!z_import->digests[i].active) - continue; - // hexdump the hash for logging - char hash_str[digs[i].size * 2 + 1]; - for (ssize_t j = 0; j < digs[i].size; ++j) - sprintf(hash_str + 2*j, "%02x", digs[i].data[j]); - - if (!z_import->digests[i].expected) { - kr_log_error(PREFILL, "no ZONEMD found; computed hash: %s\n", - hash_str); - } else if (memcmp(z_import->digests[i].expected, digs[i].data, - digs[i].size) != 0) { - kr_log_error(PREFILL, "ZONEMD hash mismatch; computed hash: %s\n", - hash_str); - } else { - kr_log_debug(PREFILL, "ZONEMD hash matches\n"); - has_match = true; - continue; - } - } - - for (int i = 0; i < DIGEST_ALG_COUNT; ++i) - free(digs[i].data); - bool ok = has_match && (zonemd_is_valid || !z_import->svldr); - return ok ? kr_ok() : kr_error(ENOENT); -} -#endif - - -/** - * @internal Import given rrset to cache. - * - * @return error code; we could've chosen to keep importing even if some RRset fails, - * but it would be harder to ensure that we don't generate too many logs - * and that we pass an error to the finishing callback. - */ -static int zi_rrset_import(trie_val_t *rr_p, void *z_import_v) -{ - zone_import_ctx_t *z_import = z_import_v; - knot_rrset_t *rr = *rr_p; - - if (rr->type == KNOT_RRTYPE_RRSIG) - return 0; // we do RRSIGs at once with their types - - const int origin_bailiwick = knot_dname_in_bailiwick(rr->owner, z_import->origin); - if (unlikely(origin_bailiwick < 0)) { - KR_DNAME_GET_STR(owner_str, rr->owner); - kr_log_warning(PREFILL, "ignoring out of bailiwick record(s) on %s\n", - owner_str); - return 0; // well, let's continue without error - } - - // Determine if this RRset is authoritative. - // We utilize that iteration happens in canonical order. - bool is_auth; - const int kdib = knot_dname_in_bailiwick(rr->owner, z_import->last_cut); - if (kdib == 0 && (rr->type == KNOT_RRTYPE_DS || rr->type == KNOT_RRTYPE_NSEC - || rr->type == KNOT_RRTYPE_NSEC3)) { - // parent side of the zone cut (well, presumably in case of NSEC*) - is_auth = true; - } else if (kdib >= 0) { - // inside non-auth subtree - is_auth = false; - } else if (rr->type == KNOT_RRTYPE_NS && origin_bailiwick > 0) { - // entering non-auth subtree - z_import->last_cut = rr->owner; - is_auth = false; - } else { - // outside non-auth subtree - is_auth = true; - z_import->last_cut = NULL; // so that the next _in_bailiwick() is faster - } - // Rare case: `A` exactly on zone cut would be misdetected and fail validation; - // it's the only type ordered before NS. - if (unlikely(is_auth && rr->type < KNOT_RRTYPE_NS)) { - if (rrset_get(z_import->rrsets, rr->owner, KNOT_RRTYPE_NS, 0)) - is_auth = false; - } - - // Get and validate the corresponding RRSIGs, if authoritative. - const knot_rrset_t *rrsig = NULL; - if (is_auth) { - rrsig = rrset_get(z_import->rrsets, rr->owner, KNOT_RRTYPE_RRSIG, rr->type); - if (unlikely(!rrsig && z_import->svldr)) { - KR_DNAME_GET_STR(owner_str, rr->owner); - KR_RRTYPE_GET_STR(type_str, rr->type); - kr_log_error(PREFILL, "no records found for %s RRSIG %s\n", - owner_str, type_str); - return kr_error(ENOENT); - } - } - if (is_auth && z_import->svldr) { - int ret = kr_svldr_rrset(rr, &rrsig->rrs, z_import->svldr); - if (unlikely(ret)) { - KR_DNAME_GET_STR(owner_str, rr->owner); - KR_RRTYPE_GET_STR(type_str, rr->type); - kr_log_error(PREFILL, "validation failed for %s %s: %s\n", - owner_str, type_str, kr_strerror(ret)); - return kr_error(ret); - } - } - - uint8_t rank; - if (!is_auth) { - rank = KR_RANK_OMIT; - } else if (z_import->svldr) { - rank = KR_RANK_AUTH|KR_RANK_SECURE; - } else { - rank = KR_RANK_AUTH|KR_RANK_INSECURE; - } - - int ret = kr_cache_insert_rr(&the_resolver->cache, rr, rrsig, - rank, z_import->timestamp_rr, - // Optim.: only stash NSEC* params at the apex. - origin_bailiwick == 0); - if (ret) { - kr_log_error(PREFILL, "caching an RRset failed: %s\n", - kr_strerror(ret)); - return kr_error(ret); - } - return 0; // success -} - -static void ctx_delete(zone_import_ctx_t *z_import) -{ - if (kr_fails_assert(z_import)) return; - kr_svldr_free_ctx(z_import->svldr); - - /* Free `z_import`'s pool, including `z_import` itself, because it is - * allocated inside said pool. */ - mm_ctx_delete(z_import->pool); -} -static void timer_close(uv_handle_t *handle) -{ - ctx_delete(handle->data); -} - -/** @internal Iterate over parsed rrsets and try to import each of them. */ -static void zi_zone_process(uv_timer_t *timer) -{ - zone_import_ctx_t *z_import = timer->data; - - kr_timer_t stopwatch; - kr_timer_start(&stopwatch); - - int ret = trie_apply(z_import->rrsets, zi_rrset_import, z_import); - (void)kr_cache_commit(&the_resolver->cache); // RW transaction open - if (ret == 0) { - kr_log_info(PREFILL, "performance: validating and caching took %.3lf s\n", - kr_timer_elapsed(&stopwatch)); - } - - if (z_import->cb) - z_import->cb(kr_error(ret), z_import->cb_param); - uv_close((uv_handle_t *)timer, timer_close); -} - -/** @internal Store rrset that has been imported to zone import context memory pool. - * @return -1 if failed; 0 if success. */ -static int zi_record_store(zs_scanner_t *s) -{ - if (s->r_data_length > UINT16_MAX) { - /* Due to knot_rrset_add_rdata(..., const uint16_t size, ...); */ - kr_log_error(PREFILL, "line %"PRIu64": rdata is too long\n", - s->line_counter); - return -1; - } - - if (knot_dname_size(s->r_owner) != strlen((const char *)(s->r_owner)) + 1) { - kr_log_error(PREFILL, "line %"PRIu64 - ": owner name contains zero byte, skip\n", - s->line_counter); - return 0; - } - - zone_import_ctx_t *z_import = (zone_import_ctx_t *)s->process.data; - - knot_rrset_t *new_rr = knot_rrset_new(s->r_owner, s->r_type, s->r_class, - s->r_ttl, z_import->pool); - if (!new_rr) { - kr_log_error(PREFILL, "line %"PRIu64": error creating rrset\n", - s->line_counter); - return -1; - } - int res = knot_rrset_add_rdata(new_rr, s->r_data, s->r_data_length, - z_import->pool); - if (res != KNOT_EOK) { - kr_log_error(PREFILL, "line %"PRIu64": error adding rdata to rrset\n", - s->line_counter); - return -1; - } - /* zscanner itself does not canonize - neither owner nor insides */ - res = knot_rrset_rr_to_canonical(new_rr); - if (res != KNOT_EOK) { - kr_log_error(PREFILL, "line %"PRIu64": error when canonizing: %s\n", - s->line_counter, knot_strerror(res)); - return -1; - } - - /* Records in zone file may not be grouped by name and RR type. - * Use map to create search key and - * avoid ineffective searches across all the imported records. */ - char key_buf[KEY_LEN], *key; - const int len = key_get(key_buf, new_rr->owner, new_rr->type, - kr_rrset_type_maysig(new_rr), &key); - if (len < 0) { - kr_log_error(PREFILL, "line %"PRIu64": error constructing rrkey\n", - s->line_counter); - return -1; - } - trie_val_t *rr_p = trie_get_ins(z_import->rrsets, key, len); - if (!rr_p) - return -1; // ENOMEM - if (*rr_p) { - knot_rrset_t *rr = *rr_p; - res = knot_rdataset_merge(&rr->rrs, &new_rr->rrs, z_import->pool); - } else { - *rr_p = new_rr; - } - if (res != 0) { - kr_log_error(PREFILL, "line %"PRIu64": error saving parsed rrset\n", - s->line_counter); - return -1; - } - - return 0; -} - -static int zi_state_parsing(zs_scanner_t *s) -{ - bool empty = true; - while (zs_parse_record(s) == 0) { - switch (s->state) { - case ZS_STATE_DATA: - if (zi_record_store(s) != 0) { - return -1; - } - zone_import_ctx_t *z_import = (zone_import_ctx_t *) s->process.data; - empty = false; - if (s->r_type == KNOT_RRTYPE_SOA) { - z_import->origin = knot_dname_copy(s->r_owner, - z_import->pool); - } - break; - case ZS_STATE_ERROR: - kr_log_error(PREFILL, "line: %"PRIu64 - ": parse error; code: %i ('%s')\n", - s->line_counter, s->error.code, - zs_strerror(s->error.code)); - return -1; - case ZS_STATE_INCLUDE: - kr_log_error(PREFILL, "line: %"PRIu64 - ": INCLUDE is not supported\n", - s->line_counter); - return -1; - case ZS_STATE_EOF: - case ZS_STATE_STOP: - if (empty) { - kr_log_error(PREFILL, "empty zone file\n"); - return -1; - } - if (!((zone_import_ctx_t *) s->process.data)->origin) { - kr_log_error(PREFILL, "zone file doesn't contain SOA record\n"); - return -1; - } - return (s->error.counter == 0) ? 0 : -1; - default: - kr_log_error(PREFILL, "line: %"PRIu64 - ": unexpected parse state: %i\n", - s->line_counter, s->state); - return -1; - } - } - - return -1; -} - -int zi_zone_import(const zi_config_t config) -{ - const zi_config_t *c = &config; - if (kr_fails_assert(c && c->zone_file)) - return kr_error(EINVAL); - - knot_mm_t *pool = mm_ctx_mempool2(1024 * 1024); - zone_import_ctx_t *z_import = mm_calloc(pool, 1, sizeof(*z_import)); - if (!z_import) return kr_error(ENOMEM); - z_import->pool = pool; - - z_import->cb = c->cb; - z_import->cb_param = c->cb_param; - z_import->rrsets = trie_create(z_import->pool); - - kr_timer_t stopwatch; - kr_timer_start(&stopwatch); - - //// Parse the whole zone file into z_import->rrsets. - zs_scanner_t s_storage, *s = &s_storage; - /* zs_init(), zs_set_input_file(), zs_set_processing() returns -1 in case of error, - * so don't print error code as it meaningless. */ - int ret = zs_init(s, c->origin, KNOT_CLASS_IN, c->ttl); - if (ret != 0) { - kr_log_error(PREFILL, "error initializing zone scanner instance, error: %i (%s)\n", - s->error.code, zs_strerror(s->error.code)); - goto fail; - } - - ret = zs_set_input_file(s, c->zone_file); - if (ret != 0) { - kr_log_error(PREFILL, "error opening zone file `%s`, error: %i (%s)\n", - c->zone_file, s->error.code, zs_strerror(s->error.code)); - zs_deinit(s); - goto fail; - } - - /* Don't set processing and error callbacks as we don't use automatic parsing. - * Parsing as well error processing will be performed in zi_state_parsing(). - * Store pointer to zone import context for further use. */ - ret = zs_set_processing(s, NULL, NULL, (void *)z_import); - if (ret != 0) { - kr_log_error(PREFILL, "zs_set_processing() failed for zone file `%s`, " - "error: %i (%s)\n", - c->zone_file, s->error.code, zs_strerror(s->error.code)); - zs_deinit(s); - goto fail; - } - - ret = zi_state_parsing(s); - zs_deinit(s); - const double time_parse = kr_timer_elapsed(&stopwatch); - if (ret != 0) { - kr_log_error(PREFILL, "error parsing zone file `%s`\n", c->zone_file); - goto fail; - } - kr_log_debug(PREFILL, "import started for zone file `%s`\n", c->zone_file); - - KR_DNAME_GET_STR(zone_name_str, z_import->origin); - - //// Choose timestamp_rr, according to config. - struct timespec now; - if (clock_gettime(CLOCK_REALTIME, &now)) { - ret = kr_error(errno); - kr_log_error(PREFILL, "failed to get current time: %s\n", kr_strerror(ret)); - goto fail; - } - if (config.time_src == ZI_STAMP_NOW) { - z_import->timestamp_rr = now.tv_sec; - } else if (config.time_src == ZI_STAMP_MTIM) { - struct stat st; - if (stat(c->zone_file, &st) != 0) { - kr_log_debug(PREFILL, "failed to stat file `%s`: %s\n", - c->zone_file, strerror(errno)); - goto fail; - } - z_import->timestamp_rr = st.st_mtime; - } else { - ret = kr_error(EINVAL); - goto fail; - } - //// Some sanity checks - const knot_rrset_t *soa = rrset_get(z_import->rrsets, z_import->origin, - KNOT_RRTYPE_SOA, 0); - if (z_import->timestamp_rr > now.tv_sec) { - kr_log_warning(PREFILL, "zone file `%s` comes from future\n", c->zone_file); - } else if (!soa) { - kr_log_warning(PREFILL, "missing %s SOA\n", zone_name_str); - } else if ((int64_t)z_import->timestamp_rr + soa->ttl < now.tv_sec) { - kr_log_warning(PREFILL, "%s SOA already expired\n", zone_name_str); - } - - //// Initialize validator context with the DNSKEY. - if (c->downgrade) - goto zonemd; - const knot_rrset_t * const ds = c->ds ? c->ds : - kr_ta_get(the_resolver->trust_anchors, z_import->origin); - if (!ds) { - if (!kr_ta_closest(the_resolver, z_import->origin, KNOT_RRTYPE_DNSKEY)) - goto zonemd; // our TAs say we're insecure - kr_log_error(PREFILL, "no DS found for `%s`, fail\n", zone_name_str); - ret = kr_error(ENOENT); - goto fail; - } - if (!knot_dname_is_equal(ds->owner, z_import->origin)) { - kr_log_error(PREFILL, "mismatching DS owner, fail\n"); - ret = kr_error(EINVAL); - goto fail; - } - - knot_rrset_t * const dnskey = rrset_get(z_import->rrsets, z_import->origin, - KNOT_RRTYPE_DNSKEY, 0); - if (!dnskey) { - kr_log_error(PREFILL, "no DNSKEY found for `%s`, fail\n", zone_name_str); - ret = kr_error(ENOENT); - goto fail; - } - knot_rrset_t * const dnskey_sigs = rrset_get(z_import->rrsets, z_import->origin, - KNOT_RRTYPE_RRSIG, KNOT_RRTYPE_DNSKEY); - if (!dnskey_sigs) { - kr_log_error(PREFILL, "no RRSIGs for DNSKEY found for `%s`, fail\n", - zone_name_str); - ret = kr_error(ENOENT); - goto fail; - } - - kr_rrset_validation_ctx_t err_ctx; - z_import->svldr = kr_svldr_new_ctx(ds, dnskey, &dnskey_sigs->rrs, - z_import->timestamp_rr, &err_ctx); - if (!z_import->svldr) { - // log RRSIG stats; very similar to log_bogus_rrsig() - kr_log_error(PREFILL, "failed to validate DNSKEY for `%s` " - "(%u matching RRSIGs, %u expired, %u not yet valid, " - "%u invalid signer, %u invalid label count, %u invalid key, " - "%u invalid crypto, %u invalid NSEC)\n", - zone_name_str, - err_ctx.rrs_counters.matching_name_type, - err_ctx.rrs_counters.expired, err_ctx.rrs_counters.notyet, - err_ctx.rrs_counters.signer_invalid, - err_ctx.rrs_counters.labels_invalid, - err_ctx.rrs_counters.key_invalid, - err_ctx.rrs_counters.crypto_invalid, - err_ctx.rrs_counters.nsec_invalid); - ret = kr_error(ENOENT); - goto fail; - } - - //// Do all ZONEMD processing, if desired. -zonemd: (void)0; // C can't have a variable definition following a label - double time_zonemd = NAN; - if (c->zonemd) { - #if ENABLE_ZONEMD - kr_timer_start(&stopwatch); - ret = zonemd_verify(z_import); - time_zonemd = kr_timer_elapsed(&stopwatch); - #else - kr_log_error(PREFILL, - "ZONEMD check requested but not supported, fail\n"); - ret = kr_error(ENOSYS); - #endif - } else { - ret = kr_ok(); - } - kr_log_info(PREFILL, "performance: parsing took %.3lf s, hashing took %.3lf s\n", - time_parse, time_zonemd); - if (ret) goto fail; - - //// Phase two, after a pause. Validate and import all the remaining records. - ret = uv_timer_init(the_worker->loop, &z_import->timer); - if (ret) goto fail; - z_import->timer.data = z_import; - ret = uv_timer_start(&z_import->timer, zi_zone_process, ZONE_IMPORT_PAUSE, 0); - if (ret) goto fail; - - return kr_ok(); -fail: - if (z_import->cb) - z_import->cb(kr_error(ret), z_import->cb_param); - if (kr_fails_assert(ret)) - ret = ENOENT; - ctx_delete(z_import); - return kr_error(ret); -} - diff --git a/daemon/zimport.h b/daemon/zimport.h deleted file mode 100644 index 5bbd992b0..000000000 --- a/daemon/zimport.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (C) CZ.NIC, z.s.p.o. - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include -#include -#include "lib/defines.h" - -/** - * Completion callback - * - * @param state 0 for OK completion, < 0 for errors (unfinished) - * @param param pointer to user data - */ -typedef void (*zi_callback)(int state, void *param); -typedef struct { - /* Parser, see zs_init() */ - const char *zone_file; - const char *origin; - uint32_t ttl; - - /// Source of time: current real time, or file modification time. - enum { ZI_STAMP_NOW = 0, ZI_STAMP_MTIM } time_src; - - /* Validator */ - bool downgrade; /// true -> disable validation - bool zonemd; /// true -> verify zonemd - const knot_rrset_t *ds; /// NULL -> use trust anchors - - zi_callback cb; - void *cb_param; -} zi_config_t; - -/** Import zone from a file. - * - * Error can be directly returned in the first phase (parsing + ZONEMD); - * otherwise it will be kr_ok() and config->cb gets (optionally) called finally. - * - * Large zone would pause other processing for longer time; - * that's generally not advisable. - * - * Zone origin is detected from SOA, but it's certainly not perfect now. - */ -KR_EXPORT -int zi_zone_import(const zi_config_t config); - diff --git a/daemon/zimport.test/tz-rfc-a1-bad.zone b/daemon/zimport.test/tz-rfc-a1-bad.zone deleted file mode 100644 index 593489acc..000000000 --- a/daemon/zimport.test/tz-rfc-a1-bad.zone +++ /dev/null @@ -1,14 +0,0 @@ -$ORIGIN example. -example. 86400 IN SOA ns1 admin 2018031900 ( - 1800 900 604800 86400 ) - 86400 IN NS ns1 - 86400 IN NS ns2 - 86400 IN ZONEMD 2018031900 1 1 ( - BAAAAAAADa7aed71 - 6bc459f9340e3d7c - 1370d4d24b7e2fc3 - a1ddc0b9a87153b9 - a9713b3c9ae5cc27 - 777f98b8e730044c ) -ns1 3600 IN A 203.0.113.63 -ns2 3600 IN AAAA 2001:db8::63 diff --git a/daemon/zimport.test/tz-rfc-a1.zone b/daemon/zimport.test/tz-rfc-a1.zone deleted file mode 100644 index 5c43ec046..000000000 --- a/daemon/zimport.test/tz-rfc-a1.zone +++ /dev/null @@ -1,14 +0,0 @@ -$ORIGIN example. -example. 86400 IN SOA ns1 admin 2018031900 ( - 1800 900 604800 86400 ) - 86400 IN NS ns1 - 86400 IN NS ns2 - 86400 IN ZONEMD 2018031900 1 1 ( - c68090d90a7aed71 - 6bc459f9340e3d7c - 1370d4d24b7e2fc3 - a1ddc0b9a87153b9 - a9713b3c9ae5cc27 - 777f98b8e730044c ) -ns1 3600 IN A 203.0.113.63 -ns2 3600 IN AAAA 2001:db8::63 diff --git a/daemon/zimport.test/tz-rfc-a2.zone b/daemon/zimport.test/tz-rfc-a2.zone deleted file mode 100644 index 5ae7f3618..000000000 --- a/daemon/zimport.test/tz-rfc-a2.zone +++ /dev/null @@ -1,35 +0,0 @@ -$ORIGIN example. -example. 86400 IN SOA ns1 admin 2018031900 ( - 1800 900 604800 86400 ) - 86400 IN NS ns1 - 86400 IN NS ns2 - 86400 IN ZONEMD 2018031900 1 1 ( - a3b69bad980a3504 - e1cffcb0fd6397f9 - 3848071c93151f55 - 2ae2f6b1711d4bd2 - d8b39808226d7b9d - b71e34b72077f8fe ) -ns1 3600 IN A 203.0.113.63 -NS2 3600 IN AAAA 2001:db8::63 -occluded.sub 7200 IN TXT "I'm occluded but must be digested" -sub 7200 IN NS ns1 -duplicate 300 IN TXT "I must be digested just once" -duplicate 300 IN TXT "I must be digested just once" -foo.test. 555 IN TXT "out-of-zone data must be excluded" -UPPERCASE 3600 IN TXT "canonicalize uppercase owner names" -* 777 IN PTR dont-forget-about-wildcards -mail 3600 IN MX 20 MAIL1 -mail 3600 IN MX 10 Mail2.Example. -sortme 3600 IN AAAA 2001:db8::5:61 -sortme 3600 IN AAAA 2001:db8::3:62 -sortme 3600 IN AAAA 2001:db8::4:63 -sortme 3600 IN AAAA 2001:db8::1:65 -sortme 3600 IN AAAA 2001:db8::2:64 -non-apex 900 IN ZONEMD 2018031900 1 1 ( - 616c6c6f77656420 - 6275742069676e6f - 7265642e20616c6c - 6f77656420627574 - 2069676e6f726564 - 2e20616c6c6f7765 ) diff --git a/daemon/zimport.test/tz-rfc-a3.zone b/daemon/zimport.test/tz-rfc-a3.zone deleted file mode 100644 index 961dba904..000000000 --- a/daemon/zimport.test/tz-rfc-a3.zone +++ /dev/null @@ -1,31 +0,0 @@ -$ORIGIN example. -example. 86400 IN SOA ns1 admin 2018031900 ( - 1800 900 604800 86400 ) -example. 86400 IN NS ns1.example. -example. 86400 IN NS ns2.example. -example. 86400 IN ZONEMD 2018031900 1 1 ( - 62e6cf51b02e54b9 - b5f967d547ce4313 - 6792901f9f88e637 - 493daaf401c92c27 - 9dd10f0edb1c56f8 - 080211f8480ee306 ) -example. 86400 IN ZONEMD 2018031900 1 2 ( - 08cfa1115c7b948c - 4163a901270395ea - 226a930cd2cbcf2f - a9a5e6eb85f37c8a - 4e114d884e66f176 - eab121cb02db7d65 - 2e0cc4827e7a3204 - f166b47e5613fd27 ) -example. 86400 IN ZONEMD 2018031900 1 240 ( - e2d523f654b9422a - 96c5a8f44607bbee ) -example. 86400 IN ZONEMD 2018031900 241 1 ( - e1846540e33a9e41 - 89792d18d5d131f6 - 05fc283e ) -ns1.example. 3600 IN A 203.0.113.63 -ns2.example. 86400 IN TXT "This example has multiple digests" -NS2.EXAMPLE. 3600 IN AAAA 2001:db8::63 diff --git a/daemon/zimport.test/tz-rfc-a4.zone b/daemon/zimport.test/tz-rfc-a4.zone deleted file mode 100644 index 19d89d66f..000000000 --- a/daemon/zimport.test/tz-rfc-a4.zone +++ /dev/null @@ -1,37 +0,0 @@ -$ORIGIN example. -;; White-space had to be changed from the RFC, as libzscanner only allows spaces in base64 on some places. -uri.arpa. 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018100702 10800 3600 1209600 3600 -uri.arpa. 3600 IN RRSIG SOA 8 2 3600 20210217232440 20210120232440 37444 uri.arpa. GzQw+QzwLDJr13REPGVmpEChjD1D2XlX0ie1DnWHpgaEw1E/dhs3lCN3 +BmHd4Kx3tffTRgiyq65HxR6feQ5v7VmAifjyXUYB1DZur1eP5q0Ms2y gCB3byoeMgCNsFS1oKZ2LdzNBRpy3oace8xQn1SpmHGfyrsgg+WbHKCT 1dY= -uri.arpa. 86400 IN NS a.iana-servers.net. -uri.arpa. 86400 IN NS b.iana-servers.net. -uri.arpa. 86400 IN NS c.iana-servers.net. -uri.arpa. 86400 IN NS ns2.lacnic.net. -uri.arpa. 86400 IN NS sec3.apnic.net. -uri.arpa. 86400 IN RRSIG NS 8 2 86400 20210217232440 20210120232440 37444 uri.arpa. M+Iei2lcewWGaMtkPlrhM9FpUAHXFkCHTVpeyrjxjEONeNgKtHZor5e4 V4qJBOzNqo8go/qJpWlFBm+T5Hn3asaBZVstFIYky38/C8UeRLPKq1hT THARYUlFrexr5fMtSUAVOgOQPSBfH3xBq/BgSccTdRb9clD+HE7djpqr LS4= -uri.arpa. 600 IN MX 10 pechora.icann.org. -uri.arpa. 600 IN RRSIG MX 8 2 600 20210217232440 20210120232440 37444 uri.arpa. kQAJQivmv6A5hqYBK8h6Z13ESY69gmosXwKI6WE09I8RFetfrxr24ecd nYd0lpnDtgNNSoHkYRSOoB+C4+zuJsoyAAzGo9uoWMWj97/2xeGhf3PT C9meQ9Ohi6hul9By7OR76XYmGhdWX8PBi60RUmZ1guslFBfQ8izwPqzu phs= -uri.arpa. 3600 IN NSEC ftp.uri.arpa. NS SOA MX RRSIG NSEC DNSKEY ZONEMD -uri.arpa. 3600 IN RRSIG NSEC 8 2 3600 20210217232440 20210120232440 37444 uri.arpa. dU/rXLM/naWd1+1PiWiYVaNJyCkiuyZJSccr91pJI673T8r3685B4ODM YFafZRboVgwnl3ZrXddY6xOhZL3n9V9nxXZwjLJ2HJUojFoKcXTlpnUy YUYvVQ2kj4GHAo6fcGCEp5QFJ2KbCpeJoS+PhKGRRx28icCiNT4/uXQv O2E= -uri.arpa. 3600 IN DNSKEY 256 3 8 AwEAAbMxuFuLeVDuOwIMzYOTD/bTREjLflo7wOi6ieIJhqltEzgjNzmW Jf9kGwwDmzxU7kbthMEhBNBZNn84zmcyRSCMzuStWveL7xmqqUlE3swL 8kLOvdZvc75XnmpHrk3ndTyEb6eZM7slh2C63Oh6K8VR5VkiZAkEGg0u ZIT3NjsF -uri.arpa. 3600 IN DNSKEY 257 3 8 AwEAAdkTaWkZtZuRh7/OobBUFxM+ytTst+bCu0r9w+rEwXD7GbDs0pIM hMenrZzoAvmv1fQxw2MGs6Ri6yPKfNULcFOSt9l8i6BVBLI+SKTY6XXe DUQpSEmSaxohHeRPMQFzpysfjxINp/L2rGtZ7yPmxY/XRiFPSO0myqwG Ja9r06Zw9CHM5UDHKWV/E+zxPFq/I7CfPbrrzbUotBX7Z6Vh3Sarllbe 8cGUB2UFNaTRgwB0TwDBPRD5ER3w2Dzbry9NhbElTr7vVfhaGWeOGuqA UXwlXEg6CrNkmJXJ2F1Rzr9WHUzhp7uWxhAbmJREGfi2dEyPAbUAyCjB qhFaqglknvc= -uri.arpa. 3600 IN DNSKEY 257 3 8 AwEAAenQaBoFmDmvRT+/H5oNbm0Tr5FmNRNDEun0Jpj/ELkzeUrTWhNp QmZeIMC8I0kZ185tEvOnRvn8OvV39B17QIdrvvKGIh2HlgeDRCLolhao jfn2QM0DStjF/WWHpxJOmE6CIuvhqYEU37yoJscGAPpPVPzNvnL1HhYT aao1VRYWQ/maMrJ+bfHg+YX1N6M/8MnRjIKBif1FWjbCKvsn6dnuGGL9 oCWYUFJ3DwofXuhgPyZMkzPc88YkJj5EMvbMH4wtelbCwC+ivx732l0w /rXJn0ciQSOgoeVvDio8dIJmWQITWQAuP+q/ZHFEFHPlrP3gvQh5mcVS 48eLX71Bq7c= -uri.arpa. 3600 IN RRSIG DNSKEY 8 2 3600 20210217232440 20210120232440 12670 uri.arpa. DBE2gkKAoxJCfz47KKxzoImN/0AKArhIVHE7TyTwy0DdRPo44V5R+vL6 thUxlQ1CJi2Rw0jwAXymx5Y3Q873pOEllH+4bJoIT4dmoBmPXfYWW7Cl vw9UPKHRP0igKHmCVwIeBYDTU3gfLcMTbR4nEWPDN0GxlL1Mf7ITaC2I oabo79Ip3M/MR8I3Vx/xZ4ZKKPHtLn3xUuJluPNanqJrED2gTslL2xWZ 1tqjsAjJv7JnJo2HJ8XVRB5zBto0IaJ2oBlqcjdcQ/0VlyoM8uOy1pDw HQ2BJl7322gNMHBP9HSiUPIOaIDNUCwW8eUcW6DIUk+s9u3GN1uTqwWz sYB/rA== -uri.arpa. 3600 IN RRSIG DNSKEY 8 2 3600 20210217232440 20210120232440 30577 uri.arpa. Kx6HwP4UlkGc1UZ7SERXtQjPajOF4iUvkwDj7MEG1xbQFB1KoJiEb/ei W0qmSWdIhMDv8myhgauejRLyJxwxz8HDRV4xOeHWnRGfWBk4XGYwkejV zOHzoIArVdUVRbr2JKigcTOoyFN+uu52cNB7hRYu7dH5y1hlc6UbOnzR pMtGxcgVyKQ+/ARbIqGG3pegdEOvV49wTPWEiyY65P2urqhvnRg5ok/j zwAdMx4XGshiib7Ojq0sRVl2ZIzj4rFgY/qsSO8SEXEhMo2VuSkoJNio fVzYoqpxEeGnANkIT7Tx2xJL1BWyJxyc7E8Wr2QSgCcc+rYL6IkHDtJG Hy7TaQ== -uri.arpa. 3600 IN ZONEMD 2018100702 1 1 0DBC3C4DBFD75777C12CA19C337854B1577799901307C482E9D91D5D 15CD934D16319D98E30C4201CF25A1D5A0254960 -uri.arpa. 3600 IN RRSIG ZONEMD 8 2 3600 20210217232440 20210120232440 37444 uri.arpa. QDo4XZcL3HMyn8aAHyCUsu/Tqj4Gkth8xY1EqByOb8XOTwVtA4ZNQORE 1siqNqjtJUbeJPtJSbLNqCL7rCq0CzNNnBscv6IIf4gnqJZjlGtHO30o hXtKvEc4z7SU3IASsi6bB3nLmEAyERdYSeU6UBfx8vatQDIRhkgEnnWU Th4= -ftp.uri.arpa. 604800 IN NAPTR 0 0 "" "" "!^ftp://([^:/?#]*).*$!\\1!i" . -ftp.uri.arpa. 604800 IN RRSIG NAPTR 8 3 604800 20210217232440 20210120232440 37444 uri.arpa. EygekDgl+Lyyq4NMSEpPyOrOywYf9Y3FAB4v1DT44J3R5QGidaH8l7ZF jHoYFI8sY64iYOCV4sBnX/dh6C1L5NgpY+8l5065Xu3vvjyzbtuJ2k6Y YwJrrCbvl5DDn53zAhhO2hL9uLgyLraZGi9i7TFGd0sm3zNyUF/EVL0C cxU= -ftp.uri.arpa. 3600 IN NSEC http.uri.arpa. NAPTR RRSIG NSEC -ftp.uri.arpa. 3600 IN RRSIG NSEC 8 3 3600 20210217232440 20210120232440 37444 uri.arpa. pbP4KxevPXCu/bDqcvXiuBppXyFEmtHyiy0eAN5gS7mi6mp9Z9bWFjx/ LdH9+6oFGYa5vGmJ5itu/4EDMe8iQeZbI8yrpM4TquB7RR/MGfBnTd8S +sjyQtlRYG7yqEu77Vd78Fme22BKPJ+MVqjS0JHMUE/YUGomPkAjLJJw wGw= -http.uri.arpa. 604800 IN NAPTR 0 0 "" "" "!^http://([^:/?#]*).*$!\\1!i" . -http.uri.arpa. 604800 IN RRSIG NAPTR 8 3 604800 20210217232440 20210120232440 37444 uri.arpa. eTqbWvt1GvTeXozuvm4ebaAfkXFQKrtdu0cEiExto80sHIiCbO0WL8UD a/J3cDivtQca7LgUbOb6c17NESsrsVkc6zNPx5RK2tG7ZQYmhYmtqtfg 1oU5BRdHZ5TyqIXcHlw9Blo2pir1Y9IQgshhD7UOGkbkEmvB1Lrd0aHh AAg= -http.uri.arpa. 3600 IN NSEC mailto.uri.arpa. NAPTR RRSIG NSEC -http.uri.arpa. 3600 IN RRSIG NSEC 8 3 3600 20210217232440 20210120232440 37444 uri.arpa. R9rlNzw1CVz2N08q6DhULzcsuUm0UKcPaGAWEU40tr81jEDHsFHNM+kh CdOI8nDstzA42aee4rwCEgijxJpRCcY9hrO1Ysrrr2fdqNz60JikMdar vU5O0p0VXeaaJDfJQT44+o+YXaBwI7Qod3FTMx7aRib8i7istvPm1Rr7 ixA= -mailto.uri.arpa. 604800 IN NAPTR 0 0 "" "" "!^mailto:(.*)@(.*)$!\\2!i" . -mailto.uri.arpa. 604800 IN RRSIG NAPTR 8 3 604800 20210217232440 20210120232440 37444 uri.arpa. Ch2zTG2F1plEvQPyIH4Yd80XXLjXOPvMbiqDjpJBcnCJsV8QF7kr0wTL nUT3dB+asQudOjPyzaHGwFlMzmrrAsszN4XAMJ6htDtFJdsgTMP/NkHh YRSmVv6rLeAhd+mVfObY12M//b/GGVTjeUI/gJaLW0fLVZxr1Fp5U5CR jyw= -mailto.uri.arpa. 3600 IN NSEC urn.uri.arpa. NAPTR RRSIG NSEC -mailto.uri.arpa. 3600 IN RRSIG NSEC 8 3 3600 20210217232440 20210120232440 37444 uri.arpa. fQUbSIE6E7JDi2rosah4SpCOTrKufeszFyj5YEavbQuYlQ5cNFvtm8Ku E2xXMRgRI4RGvM2leVqcoDw5hS3m2pOJLxH8l2WE72YjYvWhvnwc5Rof e/8yB/vaSK9WCnqN8y2q6Vmy73AGP0fuiwmuBra7LlkOiqmyx3amSFiz wms= -urn.uri.arpa. 604800 IN NAPTR 0 0 "" "" "/urn:([^:]+)/\\1/i" . -urn.uri.arpa. 604800 IN RRSIG NAPTR 8 3 604800 20210217232440 20210120232440 37444 uri.arpa. CVt2Tgz0e5ZmaSXqRfNys/8OtVCk9nfP0zhezhN8Bo6MDt6yyKZ2kEEW JPjkN7PCYHjO8fGjnUn0AHZI2qBNv7PKHcpR42VY03q927q85a65weOO 1YE0vPYMzACpua9TOtfNnynM2Ws0uN9URxUyvYkXBdqOC81N3sx1dVEL cwc= -urn.uri.arpa. 3600 IN NSEC uri.arpa. NAPTR RRSIG NSEC -urn.uri.arpa. 3600 IN RRSIG NSEC 8 3 3600 20210217232440 20210120232440 37444 uri.arpa. JuKkMiC3/j9iM3V8/izcouXWAVGnSZjkOgEgFPhutMqoylQNRcSkbEZQ zFK8B/PIVdzZF0Y5xkO6zaKQjOzz6OkSaNPIo1a7Vyyl3wDY/uLCRRAH RJfpknuY7O+AUNXvVVIEYJqZggd4kl/Rjh1GTzPYZTRrVi5eQidI1LqC Oeg= diff --git a/daemon/zimport.test/tz-rfc-a5.zone b/daemon/zimport.test/tz-rfc-a5.zone deleted file mode 100644 index 246f5e237..000000000 --- a/daemon/zimport.test/tz-rfc-a5.zone +++ /dev/null @@ -1,48 +0,0 @@ -root-servers.net. 3600000 IN SOA a.root-servers.net. ( - nstld.verisign-grs.com. 2018091100 14400 7200 1209600 3600000 ) -root-servers.net. 3600000 IN NS a.root-servers.net. -root-servers.net. 3600000 IN NS b.root-servers.net. -root-servers.net. 3600000 IN NS c.root-servers.net. -root-servers.net. 3600000 IN NS d.root-servers.net. -root-servers.net. 3600000 IN NS e.root-servers.net. -root-servers.net. 3600000 IN NS f.root-servers.net. -root-servers.net. 3600000 IN NS g.root-servers.net. -root-servers.net. 3600000 IN NS h.root-servers.net. -root-servers.net. 3600000 IN NS i.root-servers.net. -root-servers.net. 3600000 IN NS j.root-servers.net. -root-servers.net. 3600000 IN NS k.root-servers.net. -root-servers.net. 3600000 IN NS l.root-servers.net. -root-servers.net. 3600000 IN NS m.root-servers.net. -a.root-servers.net. 3600000 IN AAAA 2001:503:ba3e::2:30 -a.root-servers.net. 3600000 IN A 198.41.0.4 -b.root-servers.net. 3600000 IN MX 20 mail.isi.edu. -b.root-servers.net. 3600000 IN AAAA 2001:500:200::b -b.root-servers.net. 3600000 IN A 199.9.14.201 -c.root-servers.net. 3600000 IN AAAA 2001:500:2::c -c.root-servers.net. 3600000 IN A 192.33.4.12 -d.root-servers.net. 3600000 IN AAAA 2001:500:2d::d -d.root-servers.net. 3600000 IN A 199.7.91.13 -e.root-servers.net. 3600000 IN AAAA 2001:500:a8::e -e.root-servers.net. 3600000 IN A 192.203.230.10 -f.root-servers.net. 3600000 IN AAAA 2001:500:2f::f -f.root-servers.net. 3600000 IN A 192.5.5.241 -g.root-servers.net. 3600000 IN AAAA 2001:500:12::d0d -g.root-servers.net. 3600000 IN A 192.112.36.4 -h.root-servers.net. 3600000 IN AAAA 2001:500:1::53 -h.root-servers.net. 3600000 IN A 198.97.190.53 -i.root-servers.net. 3600000 IN MX 10 mx.i.root-servers.org. -i.root-servers.net. 3600000 IN AAAA 2001:7fe::53 -i.root-servers.net. 3600000 IN A 192.36.148.17 -j.root-servers.net. 3600000 IN AAAA 2001:503:c27::2:30 -j.root-servers.net. 3600000 IN A 192.58.128.30 -k.root-servers.net. 3600000 IN AAAA 2001:7fd::1 -k.root-servers.net. 3600000 IN A 193.0.14.129 -l.root-servers.net. 3600000 IN AAAA 2001:500:9f::42 -l.root-servers.net. 3600000 IN A 199.7.83.42 -m.root-servers.net. 3600000 IN AAAA 2001:dc3::35 -m.root-servers.net. 3600000 IN A 202.12.27.33 -root-servers.net. 3600000 IN SOA a.root-servers.net. ( - nstld.verisign-grs.com. 2018091100 14400 7200 1209600 3600000 ) -root-servers.net. 3600000 IN ZONEMD 2018091100 1 1 ( - f1ca0ccd91bd5573d9f431c00ee0101b2545c97602be0a97 - 8a3b11dbfc1c776d5b3e86ae3d973d6b5349ba7f04340f79 ) diff --git a/daemon/zimport.test/zimport.test.lua b/daemon/zimport.test/zimport.test.lua deleted file mode 100644 index f6abc02ed..000000000 --- a/daemon/zimport.test/zimport.test.lua +++ /dev/null @@ -1,47 +0,0 @@ --- unload modules which are not related to this test --- SPDX-License-Identifier: GPL-3.0-or-later - -if ta_signal_query then - modules.unload('ta_signal_query') -end -if priming then - modules.unload('priming') -end -if detect_time_skew then - modules.unload('detect_time_skew') -end - --- do not listen, test is driven by config code -env.KRESD_NO_LISTEN = true - - -cache.size = 5*MB -log_groups({'prefil'}) - ---[[ This test checks ZONEMD computation on some model cases. (no DNSSEC validation) - https://www.rfc-editor.org/rfc/rfc8976.html#name-example-zones-with-digests ---]] - - -local function test_zone(file_name, success) return function() - local import_res = require('ffi').C.zi_zone_import({ - zone_file = file_name, - zonemd = true, - downgrade = true, - }) - if success == nil or success then - is(import_res, 0, 'zone import should start OK for file ' .. file_name) - else - isnt(import_res, 0, 'zone import should fail for file ' .. file_name) - end - worker.sleep(0.2) -- zimport is delayed by 100 ms from function call -end end - -return { - test_zone('tz-rfc-a1.zone'), - test_zone('tz-rfc-a1-bad.zone', false), - test_zone('tz-rfc-a2.zone'), - test_zone('tz-rfc-a3.zone'), - test_zone('tz-rfc-a4.zone'), - test_zone('tz-rfc-a5.zone'), -} diff --git a/distro/config/apkg.toml b/distro/config/apkg.toml deleted file mode 100644 index dcf5e5e1b..000000000 --- a/distro/config/apkg.toml +++ /dev/null @@ -1,13 +0,0 @@ -[project] -name = "knot-resolver" -# needed for make-archive -make_archive_script = "scripts/make-archive.sh" - -[upstream] -# needed for get-archive -archive_url = "https://secure.nic.cz/files/knot-resolver/knot-resolver-{{ version }}.tar.xz" -signature_url = "https://secure.nic.cz/files/knot-resolver/knot-resolver-{{ version }}.tar.xz.asc" -version_script = "scripts/upstream-version.sh" - -[apkg] -compat = 2 diff --git a/distro/pkg/arch/PKGBUILD b/distro/pkg/arch/PKGBUILD deleted file mode 100644 index 6771c61ce..000000000 --- a/distro/pkg/arch/PKGBUILD +++ /dev/null @@ -1,99 +0,0 @@ -# Maintainer: Tomas Krizek -# Contributor: Ondřej Surý -# SPDX-License-Identifier: GPL-3.0-or-later - -pkgname=knot-resolver -pkgver={{ version }} -pkgrel={{ release }} -pkgdesc='Caching DNSSEC-validating DNS resolver' -arch=('x86_64' 'armv7h') -url='https://www.knot-resolver.cz/' -license=('GPL3') -depends=( - 'dnssec-anchors' - 'gnutls' - 'knot' - 'libedit' - 'libuv' - 'lmdb' - 'luajit' - 'systemd' - 'libcap-ng' - 'libnghttp2' - 'jemalloc' - 'python' - 'python-yaml' - 'python-aiohttp' - 'python-typing_extensions' - 'python-prometheus_client' - 'python-jinja' - 'supervisor' -) -makedepends=( - 'cmocka' - 'meson' - 'systemd-libs' - 'python-build' - 'python-installer' - 'python-poetry' -) -optdepends=( - 'lua51-basexx: experimental_dot_auth module' - 'lua51-cqueues: http and dns64 module, policy.rpz() function' - 'lua51-http: http and prefill modules, trust_anchors bootstrap' - 'lua51-psl: policy.slice_randomize_psl() function' -) -backup=('etc/knot-resolver/config.yaml') -options=(debug strip) -source=("knot-resolver-${pkgver}.tar.xz") -sha256sums=('SKIP') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - meson setup build \ - --buildtype=release \ - --prefix=/usr \ - --sbindir=bin \ - -D keyfile_default=/etc/trusted-key.key \ - -D systemd_files=enabled \ - -D malloc=jemalloc \ - -D unit_tests=enabled - ninja -C build - pushd build/python - python -Pm build --wheel --no-isolation - popd - pushd manager - python -Pm build --wheel --no-isolation - popd -} - -check() { - cd "${srcdir}/${pkgname}-${pkgver}" - meson test -C build -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - DESTDIR=${pkgdir} ninja -C build install - - # add knot-resolver.service to multi-user.target.wants to support enabling the service - install -d -m 0755 "${pkgdir}/usr/lib/systemd/system/multi-user.target.wants" - ln -s ../knot-resolver.service ${pkgdir}/usr/lib/systemd/system/multi-user.target.wants/knot-resolver.service - - # remove modules with missing dependencies - rm "${pkgdir}/usr/lib/knot-resolver/kres_modules/etcd.lua" - - # install knot-resolver metadata Python module - pushd build/python - python -Pm installer --destdir="$pkgdir" dist/*.whl - popd - - # install knot-resolver-manager - pushd manager - python -Pm installer --destdir="$pkgdir" dist/*.whl - install -m 644 -D etc/knot-resolver/config.yaml ${pkgdir}/etc/knot-resolver/config.yaml - install -m 644 -D shell-completion/client.bash ${pkgdir}/usr/share/bash-completion/completions/kresctl - install -m 644 -D shell-completion/client.fish ${pkgdir}/usr/share/fish/completions/kresctl.fish - popd - -} diff --git a/distro/pkg/deb/changelog b/distro/pkg/deb/changelog deleted file mode 100644 index e1e7de919..000000000 --- a/distro/pkg/deb/changelog +++ /dev/null @@ -1,6 +0,0 @@ -knot-resolver ({{ version }}-cznic.{{ release }}) unstable; urgency=medium - - * upstream package - * see NEWS or https://knot-resolver.cz - - -- Jakub Ružička {{ now }} diff --git a/distro/pkg/deb/clean b/distro/pkg/deb/clean deleted file mode 100644 index 574b40f8a..000000000 --- a/distro/pkg/deb/clean +++ /dev/null @@ -1 +0,0 @@ -build_deb/ diff --git a/distro/pkg/deb/compat b/distro/pkg/deb/compat deleted file mode 100644 index 48082f72f..000000000 --- a/distro/pkg/deb/compat +++ /dev/null @@ -1 +0,0 @@ -12 diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control deleted file mode 100644 index 55ab26b6c..000000000 --- a/distro/pkg/deb/control +++ /dev/null @@ -1,149 +0,0 @@ -Source: knot-resolver -Section: net -Priority: optional -Maintainer: Knot Resolver -Build-Depends: - debhelper (>= 12~), - dh-python, - libcmocka-dev (>= 1.0.0), - libedit-dev, - libfstrm-dev, - libgnutls28-dev, - libknot-dev (>= 3.0.2), - liblmdb-dev, - libluajit-5.1-dev, - libnghttp2-dev, - libprotobuf-c-dev, - libsystemd-dev (>= 227) [linux-any], - libcap-ng-dev, - libuv1-dev, - libjemalloc-dev, - luajit, - pkg-config, - meson (>= 0.49), - protobuf-c-compiler, - python3, - python3-dev, - python3-setuptools, - libssl-dev, -Homepage: https://www.knot-resolver.cz/ - -Package: knot-resolver-manager -Architecture: any -Provides: - knot-resolver6, -Depends: - knot-resolver-core (= ${binary:Version}), - python3-aiohttp, - python3-jinja2, - python3-yaml, - supervisor, - ${misc:Depends}, - ${python3:Depends}, -Recommends: - python3-prometheus-client, -Section: python -Description: caching, DNSSEC-validating DNS resolver - config manager - Knot Resolver is a caching full resolver implementation written in C and - LuaJIT, including both a resolver library and a daemon. - . - This package contains Knot Resolver Manager - a configuration tool for Knot - Resolver. The Manager hides the complexity of running several independent - resolver processes while ensuring zero-downtime reconfiguration with YAML/JSON - declarative configuration and an optional HTTP API for dynamic changes. - -Package: knot-resolver-core -Architecture: any -Depends: - adduser, - dns-root-data, - systemd, - ${misc:Depends}, - ${shlibs:Depends}, -Breaks: - knot-resolver (<< 6), -Replaces: - knot-resolver (<< 6), -Recommends: - lua-basexx, - lua-cqueues, - lua-http, - lua-psl, -Suggests: - knot-resolver-module-http, -Description: caching, DNSSEC-validating DNS resolver - core binaries - Knot Resolver is a caching full resolver implementation - written in C and LuaJIT, including both a resolver library and a - daemon. Modular architecture of the library keeps the core tiny and - efficient, and provides a state-machine like API for - extensions. There are three built-in modules - iterator, cache, - validator, and many external. - . - The Lua modules, switchable and shareable cache, and fast FFI - bindings makes it great to tap into resolution process, or be used - for your recursive DNS service. It's the OpenResty of DNS. - . - The server adopts a different scaling strategy than the rest of the - DNS recursors - no threading, shared-nothing architecture (except - MVCC cache that may be shared). You can start and stop additional - nodes depending on the contention without downtime. - . - This package contains the core resolver binaries. - -Package: knot-resolver-core-dbg -Architecture: any -Depends: - knot-resolver-core (= ${binary:Version}), - ${misc:Depends} -Recommends: gdb -Section: debug -Priority: optional -Description: Debug symbols for Knot Resolver - This package provides the debug symbols for Knot Resolver needed - for properly debugging errors in Knot Resolver with gdb. - -Package: knot-resolver-module-dnstap -Architecture: any -Multi-Arch: same -Depends: - knot-resolver-core (= ${binary:Version}), - libfstrm0, - libprotobuf-c1, - ${misc:Depends}, - ${shlibs:Depends}, -Description: dnstap module for Knot Resolver - The Knot Resolver is a caching full resolver implementation - written in C and LuaJIT, including both a resolver library and a - daemon. Modular architecture of the library keeps the core tiny and - efficient, and provides a state-machine like API for - extensions. There are three built-in modules - iterator, cache, - validator, and many external. - . - This package contains dnstap module for logging DNS responses - to a unix socket in dnstap format. - -Package: knot-resolver-module-http -Architecture: all -Depends: - knot-resolver-core (= ${binary:Version}), - libjs-bootstrap, - libjs-d3, - libjs-jquery, - lua-cqueues (>= 20171014), - lua-http, - lua-mmdb, - systemd, - ${misc:Depends}, - ${shlibs:Depends}, -Breaks: - knot-resolver-module-tinyweb (<< 1.1.0~git20160713-1~), -Description: HTTP module for Knot Resolver - The Knot Resolver is a caching full resolver implementation - written in C and LuaJIT, including both a resolver library and a - daemon. Modular architecture of the library keeps the core tiny and - efficient, and provides a state-machine like API for - extensions. There are three built-in modules - iterator, cache, - validator, and many external. - . - This package contains HTTP/2 module for local visualization of the - resolver cache and queries. diff --git a/distro/pkg/deb/copyright b/distro/pkg/deb/copyright deleted file mode 100644 index 96e23ca29..000000000 --- a/distro/pkg/deb/copyright +++ /dev/null @@ -1,440 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: knot-resolver -Source: https://www.knot-resolver.cz/ - -Files: * -Copyright: CZ.NIC -License: GPL-3.0+ - -Files: contrib/ccan/asprintf/* -Copyright: Rusty Russell -License: Expat - -Files: contrib/ccan/compiler/* -Copyright: Rusty Russell -License: CC0 - -Files: tests/config/tapered/* -Copyright: 2012-2017, Peter Aronoff -License: BSD-3-clause - -Files: contrib/lmdb/* -Copyright: 1999-2003 The OpenLDAP Foundation -License: OpenLDAP - -Files: tests/deckard/contrib/libfaketime/* -Copyright: 2003-2017 Wolfgang Hommel -License: GPL-2 - -Files: tests/deckard/contrib/libswrap/* -Copyright: 2005,2008 Jelmer Vernooij - 2006-2009 Stefan Metzmacher - 2013 Andreas Schneider -License: BSD-3-clause - -Files: contrib/murmurhash3/* -Copyright: Austin Appleby -License: CC0-1.0 - -Files: debian/missing-sources/dygraph-combined.js - modules/http/static/dygraph-combined.js -Copyright: 2006-2014 Dan Vanderkam - 2016 Paul Miller - 2011 Robert Konigsberg - 2013 David Eberlein -License: MIT - -Files: contrib/ucw/* -Copyright: 1997-2015 Martin Mares - 2005-2014 Tomas Valla - 2006 Robert Spalek - 2007-2015 Pavel Charvat -License: LGPL-2.1 - -Files: contrib/ccan/json/* -Copyright: 2011 Joey Adams -License: Expat - -Files: modules/policy/lua-aho-corasick/* -Copyright: 2013 CloudFlare, Inc. -License: BSD-3-CloudFlare - -Files: modules/http/static/jquery.js -Copyright: 2005-2011 John Resig, Brandon Aaron & Jörn Zaefferer -License: GPL-2 or Expat - -Files: modules/http/static/d3.js - modules/http/static/topojson.js -Copyright: 2010-2015 Michael Bostock -License: BSD-3-clause - -Files: modules/http/static/epoch.* - debian/missing-sources/epoch/* - debian/missing-sources/epoch.* -Copyright: 2014 Fastly, Inc. -License: Expat - -Files: modules/http/static/datamaps.world.min.js -Copyright: 2012 Mark DiMarco -License: Expat - -Files: modules/http/static/bootstrap.min.css - modules/http/static/bootstrap.min.js - modules/http/static/bootstrap-theme.min.css - modules/http/static/glyphicons-halflings-regular.woff2 -Copyright: 2012-2016 Thomas Park - 2011-2015 Twitter, Inc. -License: Expat - -Files: modules/http/static/selectize.bootstrap3.min.css - modules/http/static/selectize.min.css - modules/http/static/selectize.min.js -Copyright: 2013–2015 Brian Reavis & contributors -License: Apache-2.0 - -Files: debian/* -Copyright: 2015 Ondřej Surý -License: GPL-3.0+ - -License: LGPL-2.1 - This library is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation; either version 2.1 of the - License, or (at your option) any later version. - . - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - . - You should have received a copy of the GNU Lesser General Public - License along with this library. If not, see . - . - On Debian systems, the complete text of the GNU General - Public License version 3 can be found in "/usr/share/common-licenses/LGPL-2.1". - -License: GPL-3.0+ - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - . - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - . - On Debian systems, the complete text of the GNU General - Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". - -License: Expat - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - . - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -License: CC0 - Statement of Purpose - . - The laws of most jurisdictions throughout the world automatically - confer exclusive Copyright and Related Rights (defined below) upon - the creator and subsequent owner(s) (each and all, an "owner") of an - original work of authorship and/or a database (each, a "Work"). - . - Certain owners wish to permanently relinquish those rights to a Work - for the purpose of contributing to a commons of creative, cultural - and scientific works ("Commons") that the public can reliably and - without fear of later claims of infringement build upon, modify, - incorporate in other works, reuse and redistribute as freely as - possible in any form whatsoever and for any purposes, including - without limitation commercial purposes. These owners may contribute - to the Commons to promote the ideal of a free culture and the further - production of creative, cultural and scientific works, or to gain - reputation or greater distribution for their Work in part through the - use and efforts of others. - . - For these and/or other purposes and motivations, and without any - expectation of additional consideration or compensation, the person - associating CC0 with a Work (the "Affirmer"), to the extent that he - or she is an owner of Copyright and Related Rights in the Work, - voluntarily elects to apply CC0 to the Work and publicly distribute - the Work under its terms, with knowledge of his or her Copyright and - Related Rights in the Work and the meaning and intended legal effect - of CC0 on those rights. - . - 1. Copyright and Related Rights. A Work made available under CC0 may - be protected by copyright and related or neighboring rights - ("Copyright and Related Rights"). Copyright and Related Rights - include, but are not limited to, the following: - . - i. the right to reproduce, adapt, distribute, perform, display, - communicate, and translate a Work; - ii. moral rights retained by the original author(s) and/or - performer(s); - iii. publicity and privacy rights pertaining to a person's image or - likeness depicted in a Work; - iv. rights protecting against unfair competition in regards to a - Work, subject to the limitations in paragraph 4(a), below; - v. rights protecting the extraction, dissemination, use and reuse - of data in a Work; - vi. database rights (such as those arising under Directive 96/9/EC - of the European Parliament and of the Council of 11 March 1996 - on the legal protection of databases, and under any national - implementation thereof, including any amended or successor - version of such directive); and - vii. other similar, equivalent or corresponding rights throughout - the world based on applicable law or treaty, and any national - implementations thereof. - . - 2. Waiver. To the greatest extent permitted by, but not in - contravention of, applicable law, Affirmer hereby overtly, fully, - permanently, irrevocably and unconditionally waives, abandons, and - surrenders all of Affirmer's Copyright and Related Rights and - associated claims and causes of action, whether now known or - unknown (including existing as well as future claims and causes of - action), in the Work (i) in all territories worldwide, (ii) for - the maximum duration provided by applicable law or treaty - (including future time extensions), (iii) in any current or future - medium and for any number of copies, and (iv) for any purpose - whatsoever, including without limitation commercial, advertising - or promotional purposes (the "Waiver"). Affirmer makes the Waiver - for the benefit of each member of the public at large and to the - detriment of Affirmer's heirs and successors, fully intending that - such Waiver shall not be subject to revocation, rescission, - cancellation, termination, or any other legal or equitable action - to disrupt the quiet enjoyment of the Work by the public as - contemplated by Affirmer's express Statement of Purpose. - . - 3. Public License Fallback. Should any part of the Waiver for any - reason be judged legally invalid or ineffective under applicable - law, then the Waiver shall be preserved to the maximum extent - permitted taking into account Affirmer's express Statement of - Purpose. In addition, to the extent the Waiver is so judged - Affirmer hereby grants to each affected person a royalty-free, non - transferable, non sublicensable, non exclusive, irrevocable and - unconditional license to exercise Affirmer's Copyright and Related - Rights in the Work (i) in all territories worldwide, (ii) for the - maximum duration provided by applicable law or treaty (including - future time extensions), (iii) in any current or future medium and - for any number of copies, and (iv) for any purpose whatsoever, - including without limitation commercial, advertising or - promotional purposes (the "License"). The License shall be deemed - effective as of the date CC0 was applied by Affirmer to the - Work. Should any part of the License for any reason be judged - legally invalid or ineffective under applicable law, such partial - invalidity or ineffectiveness shall not invalidate the remainder - of the License, and in such case Affirmer hereby affirms that he - or she will not (i) exercise any of his or her remaining Copyright - and Related Rights in the Work or (ii) assert any associated - claims and causes of action with respect to the Work, in either - case contrary to Affirmer's express Statement of Purpose. - . - 4. Limitations and Disclaimers. - . - a. No trademark or patent rights held by Affirmer are waived, - abandoned, surrendered, licensed or otherwise affected by this - document. - b. Affirmer offers the Work as-is and makes no representations or - warranties of any kind concerning the Work, express, implied, - statutory or otherwise, including without limitation warranties - of title, merchantability, fitness for a particular purpose, non - infringement, or the absence of latent or other defects, - accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under - applicable law. - c. Affirmer disclaims responsibility for clearing rights of other - persons that may apply to the Work or any use thereof, including - without limitation any person's Copyright and Related Rights in - the Work. Further, Affirmer disclaims responsibility for - obtaining any necessary consents, permissions or other rights - required for any use of the Work. - d. Affirmer understands and acknowledges that Creative Commons is - not a party to this document and has no duty or obligation with - respect to this CC0 or use of the Work. - -License: BSD-3-CloudFlare - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - . - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - . - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - . - 3. Neither the name of CloudFlare, Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -License: BSD-3-clause - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - . - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - . - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - . - 3. Neither the name of the author nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - -License: GPL-2 - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - . - On Debian systems, the complete text of the GNU General Public - License version 2 can be found in "/usr/share/common-licenses/GPL-2". - -License: Apache-2.0 - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - . - https://www.apache.org/licenses/LICENSE-2.0 - . - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - . - On Debian systems, the full text of the Apache Software License version 2 can - be found in the file `/usr/share/common-licenses/Apache-2.0'. - -License: MIT - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - . - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -License: OpenLDAP - Redistribution and use of this software and associated documentation - ("Software"), with or without modification, are permitted provided - that the following conditions are met: - . - 1. Redistributions in source form must retain copyright statements - and notices, - . - 2. Redistributions in binary form must reproduce applicable copyright - statements and notices, this list of conditions, and the following - disclaimer in the documentation and/or other materials provided - with the distribution, and - . - 3. Redistributions must contain a verbatim copy of this document. - . - The OpenLDAP Foundation may revise this license from time to time. - Each revision is distinguished by a version number. You may use - this Software under terms of this license revision or under the - terms of any subsequent revision of the license. - . - THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS - CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S) - OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - . - The names of the authors and copyright holders must not be used in - advertising or otherwise to promote the sale, use or other dealing - in this Software without specific, written prior permission. Title - to copyright in this Software shall at all times remain with copyright - holders. - . - OpenLDAP is a registered trademark of the OpenLDAP Foundation. - -License: CC0-1.0 - This work is licensed under the "Creative Commons Zero" license. - . - On debian systems, a copy of the Creative Commons Zero license may be - found at /usr/share/common-licenses/CC0-1.0. - -License: public-domain - This work has been released into the public domain. The map - implementation builds off of prior public domain work from Dan - Bernstein (qhasm) and Adam Langley (critbit). diff --git a/distro/pkg/deb/knot-resolver-core.dirs b/distro/pkg/deb/knot-resolver-core.dirs deleted file mode 100644 index f8981d8db..000000000 --- a/distro/pkg/deb/knot-resolver-core.dirs +++ /dev/null @@ -1,2 +0,0 @@ -/var/lib/knot-resolver -/var/cache/knot-resolver diff --git a/distro/pkg/deb/knot-resolver-core.docs b/distro/pkg/deb/knot-resolver-core.docs deleted file mode 100644 index 8e919d0c8..000000000 --- a/distro/pkg/deb/knot-resolver-core.docs +++ /dev/null @@ -1,4 +0,0 @@ -debian/tmp/usr/share/doc/knot-resolver/AUTHORS -debian/tmp/usr/share/doc/knot-resolver/COPYING -debian/tmp/usr/share/doc/knot-resolver/NEWS -debian/tmp/usr/share/doc/knot-resolver/examples diff --git a/distro/pkg/deb/knot-resolver-core.install b/distro/pkg/deb/knot-resolver-core.install deleted file mode 100644 index 1e57ac9bd..000000000 --- a/distro/pkg/deb/knot-resolver-core.install +++ /dev/null @@ -1,34 +0,0 @@ -usr/lib/*.so.* -usr/lib/tmpfiles.d/knot-resolver.conf -usr/lib/knot-resolver/*.so -usr/lib/knot-resolver/*.lua -usr/lib/knot-resolver/kres_modules/bogus_log.so -usr/lib/knot-resolver/kres_modules/edns_keepalive.so -usr/lib/knot-resolver/kres_modules/extended_error.so -usr/lib/knot-resolver/kres_modules/hints.so -usr/lib/knot-resolver/kres_modules/nsid.so -usr/lib/knot-resolver/kres_modules/refuse_nord.so -usr/lib/knot-resolver/kres_modules/stats.so -usr/lib/knot-resolver/kres_modules/daf.lua -usr/lib/knot-resolver/kres_modules/daf/* -usr/lib/knot-resolver/kres_modules/detect_time_jump.lua -usr/lib/knot-resolver/kres_modules/detect_time_skew.lua -usr/lib/knot-resolver/kres_modules/dns64.lua -usr/lib/knot-resolver/kres_modules/experimental_dot_auth.lua -usr/lib/knot-resolver/kres_modules/graphite.lua -usr/lib/knot-resolver/kres_modules/policy.lua -usr/lib/knot-resolver/kres_modules/predict.lua -usr/lib/knot-resolver/kres_modules/prefetch.lua -usr/lib/knot-resolver/kres_modules/prefill.lua -usr/lib/knot-resolver/kres_modules/priming.lua -usr/lib/knot-resolver/kres_modules/rebinding.lua -usr/lib/knot-resolver/kres_modules/renumber.lua -usr/lib/knot-resolver/kres_modules/serve_stale.lua -usr/lib/knot-resolver/kres_modules/ta_sentinel.lua -usr/lib/knot-resolver/kres_modules/ta_signal_query.lua -usr/lib/knot-resolver/kres_modules/ta_update.lua -usr/lib/knot-resolver/kres_modules/view.lua -usr/lib/knot-resolver/kres_modules/watchdog.lua -usr/lib/knot-resolver/kres_modules/workarounds.lua -usr/sbin/kresd -usr/sbin/kres-cache-gc diff --git a/distro/pkg/deb/knot-resolver-core.manpages b/distro/pkg/deb/knot-resolver-core.manpages deleted file mode 100644 index f9ca908fd..000000000 --- a/distro/pkg/deb/knot-resolver-core.manpages +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/share/man/man8/kresd.8* diff --git a/distro/pkg/deb/knot-resolver-core.postinst b/distro/pkg/deb/knot-resolver-core.postinst deleted file mode 100644 index e98529876..000000000 --- a/distro/pkg/deb/knot-resolver-core.postinst +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-3.0-or-later -set -e - -if [ "$1" = "configure" ]; then - adduser --quiet --system --group --no-create-home --home /var/cache/knot-resolver knot-resolver -fi - -if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then - systemctl daemon-reload || true - systemd-tmpfiles --create /usr/lib/tmpfiles.d/knot-resolver.conf - systemctl try-restart knot-resolver.service || true -fi - -#DEBHELPER# diff --git a/distro/pkg/deb/knot-resolver-core.postrm b/distro/pkg/deb/knot-resolver-core.postrm deleted file mode 100644 index e58149548..000000000 --- a/distro/pkg/deb/knot-resolver-core.postrm +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-3.0-or-later -set -e - -if [ "$1" = "remove" ]; then - deb-systemd-invoke stop system-kresd.slice || true -fi - -#DEBHELPER# diff --git a/distro/pkg/deb/knot-resolver-manager.install b/distro/pkg/deb/knot-resolver-manager.install deleted file mode 100644 index 91068501b..000000000 --- a/distro/pkg/deb/knot-resolver-manager.install +++ /dev/null @@ -1,4 +0,0 @@ -etc/knot-resolver/config.yaml -usr/lib/systemd/system/knot-resolver.service -usr/share/bash-completion/completions/kresctl -usr/share/fish/completions/kresctl.fish diff --git a/distro/pkg/deb/knot-resolver-manager.links b/distro/pkg/deb/knot-resolver-manager.links deleted file mode 100644 index c5467e848..000000000 --- a/distro/pkg/deb/knot-resolver-manager.links +++ /dev/null @@ -1 +0,0 @@ -lib/systemd/system/knot-resolver.service lib/systemd/system/multi-user.target.wants/knot-resolver.service diff --git a/distro/pkg/deb/knot-resolver-manager.manpages b/distro/pkg/deb/knot-resolver-manager.manpages deleted file mode 100644 index a453f7e92..000000000 --- a/distro/pkg/deb/knot-resolver-manager.manpages +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/share/man/man8/kresctl.8* diff --git a/distro/pkg/deb/knot-resolver-module-dnstap.install b/distro/pkg/deb/knot-resolver-module-dnstap.install deleted file mode 100644 index ae5404e02..000000000 --- a/distro/pkg/deb/knot-resolver-module-dnstap.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/knot-resolver/kres_modules/dnstap.so diff --git a/distro/pkg/deb/knot-resolver-module-http.install b/distro/pkg/deb/knot-resolver-module-http.install deleted file mode 100644 index ffa04d01a..000000000 --- a/distro/pkg/deb/knot-resolver-module-http.install +++ /dev/null @@ -1,7 +0,0 @@ -usr/lib/knot-resolver/kres_modules/http*.lua -usr/lib/knot-resolver/kres_modules/prometheus.lua -usr/lib/knot-resolver/kres_modules/http/*.css -usr/lib/knot-resolver/kres_modules/http/*.ico -usr/lib/knot-resolver/kres_modules/http/*.js -usr/lib/knot-resolver/kres_modules/http/*.tpl -usr/lib/knot-resolver/kres_modules/http/*.woff2 diff --git a/distro/pkg/deb/knot-resolver-module-http.links b/distro/pkg/deb/knot-resolver-module-http.links deleted file mode 100644 index 4963c5cb9..000000000 --- a/distro/pkg/deb/knot-resolver-module-http.links +++ /dev/null @@ -1,5 +0,0 @@ -usr/share/javascript/bootstrap/css/bootstrap-theme.min.css usr/lib/knot-resolver/kres_modules/http/bootstrap-theme.min.css -usr/share/javascript/bootstrap/css/bootstrap.min.css usr/lib/knot-resolver/kres_modules/http/bootstrap.min.css -usr/share/javascript/bootstrap/js/bootstrap.min.js usr/lib/knot-resolver/kres_modules/http/bootstrap.min.js -usr/share/javascript/d3/d3.min.js usr/lib/knot-resolver/kres_modules/http/d3.js -usr/share/javascript/jquery/jquery.min.js usr/lib/knot-resolver/kres_modules/http/jquery.js diff --git a/distro/pkg/deb/not-installed b/distro/pkg/deb/not-installed deleted file mode 100644 index ceb8f20dd..000000000 --- a/distro/pkg/deb/not-installed +++ /dev/null @@ -1,6 +0,0 @@ -usr/lib/knot-resolver/kres_modules/http/LICENSE -usr/lib/knot-resolver/kres_modules/etcd.lua -usr/include/libkres/*.h -usr/lib/*.so -usr/lib/pkgconfig/libkres.pc -usr/lib/sysusers.d/knot-resolver.conf diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules deleted file mode 100755 index cc925bf01..000000000 --- a/distro/pkg/deb/rules +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/make -f -# SPDX-License-Identifier: GPL-3.0-or-later - -# see FEATURE AREAS in dpkg-buildflags(1) -export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -# see ENVIRONMENT in dpkg-buildflags(1) -# package maintainers to append CFLAGS -export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic -fno-omit-frame-pointer -# package maintainers to append LDFLAGS -export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed - -export PYKRES_NAME=knot_resolver -export PYKRES_DEST=debian/knot-resolver-core/ -export KRES_MANAGER_NAME=knot_resolver_manager -export KRES_MANAGER_DEST=debian/knot-resolver-manager/ - -# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* -DPKG_EXPORT_BUILDFLAGS = 1 -include /usr/share/dpkg/default.mk - -export ARCH=$(DEB_HOST_GNU_CPU) - - -%: - dh $@ --with python3 - -override_dh_auto_build: - meson build_deb \ - --buildtype=plain \ - --prefix=/usr \ - --libdir=lib \ - -Dsystemd_files=enabled \ - -Ddnstap=enabled \ - -Dkeyfile_default=/usr/share/dns/root.key \ - -Droot_hints=/usr/share/dns/root.hints \ - -Dunit_tests=enabled \ - -Dmalloc=jemalloc \ - -Dc_args="$${CFLAGS}" \ - -Dc_link_args="$${LDFLAGS}" - ninja -v -C build_deb - PYBUILD_NAME="$${PYKRES_NAME}" PYBUILD_DESTDIR="$${PYKRES_DEST}" \ - dh_auto_build --buildsystem=pybuild --sourcedirectory build_deb/python - PYBUILD_NAME="$${KRES_MANAGER_NAME}" PYBUILD_DESTDIR="$${KRES_MANAGER_DEST}" \ - dh_auto_build --buildsystem=pybuild --sourcedirectory manager - -override_dh_auto_install: - DESTDIR="${PWD}/debian/tmp" ninja -v -C build_deb install - PYBUILD_NAME="$${PYKRES_NAME}" PYBUILD_DESTDIR="$${PYKRES_DEST}" \ - dh_auto_install --buildsystem=pybuild --sourcedirectory build_deb/python - PYBUILD_NAME="$${KRES_MANAGER_NAME}" PYBUILD_DESTDIR="$${KRES_MANAGER_DEST}" \ - dh_auto_install --buildsystem=pybuild --sourcedirectory manager - install -m 644 -D manager/etc/knot-resolver/config.yaml debian/tmp/etc/knot-resolver/config.yaml - install -m 644 -D manager/shell-completion/client.bash debian/tmp/usr/share/bash-completion/completions/kresctl - install -m 644 -D manager/shell-completion/client.fish debian/tmp/usr/share/fish/completions/kresctl.fish - -override_dh_auto_test: - meson test -C build_deb - -override_dh_missing: - dh_missing --fail-missing - -override_dh_strip: - dh_strip --dbg-package=knot-resolver-core-dbg diff --git a/distro/pkg/deb/source/format b/distro/pkg/deb/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/distro/pkg/deb/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/distro/pkg/nix/default.nix b/distro/pkg/nix/default.nix deleted file mode 100644 index 535106f39..000000000 --- a/distro/pkg/nix/default.nix +++ /dev/null @@ -1,125 +0,0 @@ -{ lib, stdenv, fetchurl -# native deps. -, runCommand, pkg-config, meson, ninja, makeWrapper -# build+runtime deps. -, knot-dns, luajitPackages, libuv, gnutls, lmdb -, jemalloc, systemd, libcap_ng, dns-root-data, nghttp2 # optionals, in principle -# test-only deps. -, cmocka, which, cacert -, extraFeatures ? false /* catch-all if defaults aren't enough */ -}: -let # un-indented, over the whole file - -result = if extraFeatures then wrapped-full else unwrapped; - -inherit (lib) optional optionals optionalString; -lua = luajitPackages; - -unwrapped = stdenv.mkDerivation rec { - pname = "knot-resolver"; - version = "{{ version }}"; - - src = fetchurl { - url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz"; - sha256 = "{{ src_hash }}"; - }; - - outputs = [ "out" "dev" ]; - - # Path fixups for the NixOS service. - postPatch = '' - patch meson.build < daemon/lua/trust_anchors.test/bootstrap.test.lua - sed -E '/^[[:blank:]]*test_(dstaddr|headers),?$/d' -i \ - tests/config/doh2.test.lua modules/http/http_doh.test.lua - ''; - - preConfigure = '' - patchShebangs scripts/ - ''; - - nativeBuildInputs = [ pkg-config meson ninja ]; - - # http://www.knot-resolver.cz/documentation/latest/build.html#dependencies - buildInputs = [ knot-dns lua.lua libuv gnutls lmdb ] - ++ optionals stdenv.isLinux [ systemd libcap_ng ] - ++ [ jemalloc nghttp2 ] - ## optional dependencies; TODO: dnstap - ; - - mesonFlags = [ - "-Dkeyfile_default=${dns-root-data}/root.ds" - "-Droot_hints=${dns-root-data}/root.hints" - "-Dinstall_kresd_conf=disabled" # not really useful; examples are inside share/doc/ - "-Dmalloc=jemalloc" - "--default-library=static" # not used by anyone - ] - ++ optional doInstallCheck "-Dunit_tests=enabled" - ++ optional (doInstallCheck && !stdenv.isDarwin) "-Dconfig_tests=enabled" - ++ optional stdenv.isLinux "-Dsystemd_files=enabled" # used by NixOS service - #"-Dextra_tests=enabled" # not suitable as in-distro tests; many deps, too. - ; - - postInstall = '' - rm "$out"/lib/libkres.a - '' + optionalString stdenv.targetPlatform.isLinux '' - rm -r "$out"/lib/sysusers.d/ # ATM more likely to harm than help - ''; - - doInstallCheck = with stdenv; hostPlatform == buildPlatform - && !(isDarwin && isAarch64); # avoid luarocks, as it's broken ATM on the platform - installCheckInputs = [ cmocka which cacert lua.cqueues lua.basexx lua.http ]; - installCheckPhase = '' - meson test --print-errorlogs - ''; - - meta = with lib; { - description = "Caching validating DNS resolver, from .cz domain registry"; - homepage = "https://knot-resolver.cz"; - license = licenses.gpl3Plus; - platforms = platforms.unix; - maintainers = [ maintainers.vcunat /* upstream developer */ ]; - }; -}; - -wrapped-full = runCommand unwrapped.name - { - nativeBuildInputs = [ makeWrapper ]; - buildInputs = with luajitPackages; [ - # For http module, prefill module, trust anchor bootstrap. - # It brings lots of deps; some are useful elsewhere (e.g. cqueues). - http - # psl isn't in nixpkgs yet, but policy.slice_randomize_psl() seems not important. - ]; - preferLocalBuild = true; - allowSubstitutes = false; - } - '' - mkdir -p "$out"/bin - makeWrapper '${unwrapped}/bin/kresd' "$out"/bin/kresd \ - --set LUA_PATH "$LUA_PATH" \ - --set LUA_CPATH "$LUA_CPATH" - - ln -sr '${unwrapped}/share' "$out"/ - ln -sr '${unwrapped}/lib' "$out"/ # useful in NixOS service - ln -sr "$out"/{bin,sbin} - - echo "Checking that 'http' module loads, i.e. lua search paths work:" - echo "modules.load('http')" > test-http.lua - echo -e 'quit()' | env -i "$out"/bin/kresd -a 127.0.0.1#53535 -c test-http.lua - ''; - -in result diff --git a/distro/pkg/nix/top-level.nix b/distro/pkg/nix/top-level.nix deleted file mode 100644 index bdd336049..000000000 --- a/distro/pkg/nix/top-level.nix +++ /dev/null @@ -1,12 +0,0 @@ -with import {}; - -(callPackage ./. { -}).overrideAttrs (attrs: { - src = ./knot-resolver-{{ version }}.tar.xz; - - # This just breaks in our GitLab CI (not locally and not on hydra.nixos.org) - installCheckPhase = '' - meson test --print-errorlogs --no-suite snowflake - ''; -}) - diff --git a/distro/pkg/rpm/knot-resolver.spec b/distro/pkg/rpm/knot-resolver.spec deleted file mode 100644 index 5fd08f8dd..000000000 --- a/distro/pkg/rpm/knot-resolver.spec +++ /dev/null @@ -1,354 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -%global _hardened_build 1 -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}} - -%define GPG_CHECK 0 -%define repodir %{_builddir}/%{name}-%{version} -%define NINJA ninja-build - -Name: knot-resolver -Version: {{ version }} -Release: cznic.{{ release }}%{?dist} -Summary: Caching full DNS Resolver - -License: GPL-3.0-or-later -URL: https://www.knot-resolver.cz/ -Source0: knot-resolver-%{version}.tar.xz -%if 0%{GPG_CHECK} -Source1: knot-resolver-%{version}.tar.xz.asc -# PGP keys used to sign upstream releases -# Export with --armor using command from https://fedoraproject.org/wiki/PackagingDrafts:GPGSignatures -# Don't forget to update %%prep section when adding/removing keys -# This key is from: https://secure.nic.cz/files/knot-resolver/kresd-keyblock.asc -Source100: kresd-keyblock.asc -BuildRequires: gnupg2 -%endif - -%description -The Knot Resolver is a DNSSEC-enabled caching full resolver implementation -written in C and LuaJIT, including both a resolver library and a daemon. -Modular architecture of the library keeps the core tiny and efficient, and -provides a state-machine like API for extensions. - - -%package core -Summary: Caching full DNS Resolver - core binaries -Conflicts: knot-resolver < 6 - -# LuaJIT only on these arches -ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 - -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: meson -BuildRequires: pkgconfig(cmocka) -BuildRequires: pkgconfig(gnutls) -BuildRequires: pkgconfig(libedit) -BuildRequires: pkgconfig(libknot) >= 3.0.2 -BuildRequires: pkgconfig(libzscanner) >= 3.0.2 -BuildRequires: pkgconfig(libdnssec) >= 3.0.2 -BuildRequires: pkgconfig(libnghttp2) -BuildRequires: pkgconfig(libsystemd) -BuildRequires: pkgconfig(libcap-ng) -BuildRequires: pkgconfig(libuv) -BuildRequires: pkgconfig(luajit) >= 2.0 -BuildRequires: jemalloc-devel -BuildRequires: python3-devel - -Requires: systemd -Requires(post): systemd - -# dnstap module dependencies -# SUSE is missing protoc-c protobuf compiler -%if "x%{?suse_version}" == "x" -BuildRequires: pkgconfig(libfstrm) -BuildRequires: pkgconfig(libprotobuf-c) -%endif - -# Distro-dependent dependencies -%if 0%{?rhel} == 7 -BuildRequires: lmdb-devel -# Lua 5.1 version of the libraries have different package names -Requires: lua-basexx -Requires: lua-psl -Requires: lua-http -Requires(pre): shadow-utils -%endif -%if 0%{?fedora} || 0%{?rhel} > 7 -BuildRequires: pkgconfig(lmdb) -Requires: lua5.1-basexx -Requires: lua5.1-cqueues -Requires: lua5.1-http -Recommends: lua5.1-psl -Requires(pre): shadow-utils -%endif - -# we do not build HTTP module on SuSE so the build requires is not needed -%if "x%{?suse_version}" == "x" -BuildRequires: openssl-devel -%endif - -%if 0%{?suse_version} -%define NINJA ninja -BuildRequires: lmdb-devel -BuildRequires: python3-setuptools -Requires(pre): shadow -%endif - -%description core -The Knot Resolver is a DNSSEC-enabled caching full resolver implementation -written in C and LuaJIT, including both a resolver library and a daemon. -Modular architecture of the library keeps the core tiny and efficient, and -provides a state-machine like API for extensions. - -%package devel -Summary: Development headers for Knot Resolver -Requires: %{name}-core%{?_isa} = %{version}-%{release} - -%description devel -The package contains development headers for Knot Resolver. - -%if "x%{?suse_version}" == "x" -%package module-dnstap -Summary: dnstap module for Knot Resolver -Requires: %{name}-core = %{version}-%{release} - -%description module-dnstap -dnstap module for Knot Resolver supports logging DNS responses to a unix socket -in dnstap format using fstrm framing library. This logging is useful if you -need effectively log all DNS traffic. -%endif - -%if "x%{?suse_version}" == "x" -%package module-http -Summary: HTTP module for Knot Resolver -Requires: %{name}-core = %{version}-%{release} -%if 0%{?fedora} || 0%{?rhel} > 7 -Requires: lua5.1-http -Requires: lua5.1-mmdb -%else -Requires: lua-http -Requires: lua-mmdb -%endif - -%description module-http -HTTP module for Knot Resolver can serve as API endpoint for other modules or -provide a web interface for local visualization of the resolver cache and -queries. It can also serve DNS-over-HTTPS, but it is deprecated in favor of -native C implementation, which doesn't require this package. -%endif - -%package -n knot-resolver-manager -Summary: Configuration tool for Knot Resolver -Provides: knot-resolver6 = %{version}-%{release} -Requires: %{name}-core = %{version}-%{release} -Requires: python3 -Requires: python3-aiohttp -Requires: supervisor -%if 0%{?suse_version} -Requires: python3-PyYAML -Requires: python3-typing_extensions -%else -Requires: python3-pyyaml -Requires: python3-typing-extensions -%endif -Recommends: python3-prometheus_client - -%description -n knot-resolver-manager -Knot Resolver Manager is a configuration tool for Knot Resolver. The Manager -hides the complexity of running several independent resolver processes while -ensuring zero-downtime reconfiguration with YAML/JSON declarative -configuration and an optional HTTP API for dynamic changes. - -%prep -%if 0%{GPG_CHECK} -export GNUPGHOME=./gpg-keyring -mkdir -m 700 ${GNUPGHOME} -gpg2 --import %{SOURCE100} -gpg2 --verify %{SOURCE1} %{SOURCE0} -%endif -%setup -q -n %{name}-%{version} - -%build -CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" meson build_rpm \ - -Dsystemd_files=enabled \ -%if "x%{?suse_version}" == "x" - -Ddnstap=enabled \ -%endif - -Dunit_tests=enabled \ - -Dmanaged_ta=enabled \ - -Dkeyfile_default="%{_sharedstatedir}/knot-resolver/root.keys" \ - -Dinstall_root_keys=enabled \ - -Dmalloc=jemalloc \ - --buildtype=plain \ - --prefix="%{_prefix}" \ - --sbindir="%{_sbindir}" \ - --libdir="%{_libdir}" \ - --includedir="%{_includedir}" \ - --sysconfdir="%{_sysconfdir}" \ - -%{NINJA} -v -C build_rpm - -pushd build_rpm/python -%py3_build -popd - -pushd manager -%py3_build -popd - -%install -DESTDIR="${RPM_BUILD_ROOT}" %{NINJA} -v -C build_rpm install - -# add knot-resolver.service to multi-user.target.wants to support enabling kresd services -install -m 0755 -d %{buildroot}%{_unitdir}/multi-user.target.wants -ln -s ../knot-resolver.service %{buildroot}%{_unitdir}/multi-user.target.wants/knot-resolver.service - -# remove modules with missing dependencies -rm %{buildroot}%{_libdir}/knot-resolver/kres_modules/etcd.lua - -# remove unused sysusers -rm %{buildroot}%{_prefix}/lib/sysusers.d/knot-resolver.conf - -%if 0%{?suse_version} -rm %{buildroot}%{_libdir}/knot-resolver/kres_modules/experimental_dot_auth.lua -rm -r %{buildroot}%{_libdir}/knot-resolver/kres_modules/http -rm %{buildroot}%{_libdir}/knot-resolver/kres_modules/http*.lua -rm %{buildroot}%{_libdir}/knot-resolver/kres_modules/prometheus.lua -%endif - -# rename doc directory for centos 7, opensuse -%if 0%{?suse_version} || 0%{?rhel} == 7 -install -m 755 -d %{buildroot}/%{_pkgdocdir} -mv %{buildroot}/%{_datadir}/doc/%{name}/* %{buildroot}/%{_pkgdocdir}/ -%endif - -pushd build_rpm/python -%py3_install -popd - -# install knot-resolver-manager -pushd manager -%py3_install -install -m 644 -D etc/knot-resolver/config.yaml %{buildroot}%{_sysconfdir}/knot-resolver/config.yaml -install -m 644 -D shell-completion/client.bash %{buildroot}%{_datarootdir}/bash-completion/completions/kresctl -install -m 644 -D shell-completion/client.fish %{buildroot}%{_datarootdir}/fish/completions/kresctl.fish - -popd - -%pre core -getent group knot-resolver >/dev/null || groupadd -r knot-resolver -getent passwd knot-resolver >/dev/null || useradd -r -g knot-resolver -d %{_sysconfdir}/knot-resolver -s /sbin/nologin -c "Knot Resolver" knot-resolver - -%post core -# systemd_post macro is not needed for anything (calls systemctl preset) -%tmpfiles_create %{_tmpfilesdir}/knot-resolver.conf -%if "x%{?fedora}" == "x" -/sbin/ldconfig -%endif - -%preun manager -%systemd_preun knot-resolver.service - -%postun manager -%systemd_postun_with_restart knot-resolver.service -%if "x%{?fedora}" == "x" -/sbin/ldconfig -%endif - - -%files core -%dir %{_pkgdocdir} -%license %{_pkgdocdir}/COPYING -%doc %{_pkgdocdir}/AUTHORS -%doc %{_pkgdocdir}/NEWS -%doc %{_pkgdocdir}/examples -%dir %{_sysconfdir}/knot-resolver -%config(noreplace) %{_sysconfdir}/knot-resolver/root.hints -%{_sysconfdir}/knot-resolver/icann-ca.pem -%attr(750,knot-resolver,knot-resolver) %dir %{_sharedstatedir}/knot-resolver -%attr(640,knot-resolver,knot-resolver) %{_sharedstatedir}/knot-resolver/root.keys -%dir %{_unitdir}/multi-user.target.wants -%{_unitdir}/multi-user.target.wants/knot-resolver.service -%{_tmpfilesdir}/knot-resolver.conf -%ghost /run/%{name} -%ghost %{_localstatedir}/cache/%{name} -%attr(750,knot-resolver,knot-resolver) %dir %{_libdir}/%{name} -%{_sbindir}/kresd -%{_sbindir}/kres-cache-gc -%{_libdir}/libkres.so.* -%{_libdir}/knot-resolver/*.so -%{_libdir}/knot-resolver/*.lua -%dir %{_libdir}/knot-resolver/kres_modules -%{_libdir}/knot-resolver/kres_modules/bogus_log.so -%{_libdir}/knot-resolver/kres_modules/edns_keepalive.so -%{_libdir}/knot-resolver/kres_modules/extended_error.so -%{_libdir}/knot-resolver/kres_modules/hints.so -%{_libdir}/knot-resolver/kres_modules/nsid.so -%{_libdir}/knot-resolver/kres_modules/refuse_nord.so -%{_libdir}/knot-resolver/kres_modules/stats.so -%{_libdir}/knot-resolver/kres_modules/daf -%{_libdir}/knot-resolver/kres_modules/daf.lua -%{_libdir}/knot-resolver/kres_modules/detect_time_jump.lua -%{_libdir}/knot-resolver/kres_modules/detect_time_skew.lua -%{_libdir}/knot-resolver/kres_modules/dns64.lua -%if "x%{?suse_version}" == "x" -%{_libdir}/knot-resolver/kres_modules/experimental_dot_auth.lua -%endif -%{_libdir}/knot-resolver/kres_modules/graphite.lua -%{_libdir}/knot-resolver/kres_modules/policy.lua -%{_libdir}/knot-resolver/kres_modules/predict.lua -%{_libdir}/knot-resolver/kres_modules/prefetch.lua -%{_libdir}/knot-resolver/kres_modules/prefill.lua -%{_libdir}/knot-resolver/kres_modules/priming.lua -%{_libdir}/knot-resolver/kres_modules/rebinding.lua -%{_libdir}/knot-resolver/kres_modules/renumber.lua -%{_libdir}/knot-resolver/kres_modules/serve_stale.lua -%{_libdir}/knot-resolver/kres_modules/ta_sentinel.lua -%{_libdir}/knot-resolver/kres_modules/ta_signal_query.lua -%{_libdir}/knot-resolver/kres_modules/ta_update.lua -%{_libdir}/knot-resolver/kres_modules/view.lua -%{_libdir}/knot-resolver/kres_modules/watchdog.lua -%{_libdir}/knot-resolver/kres_modules/workarounds.lua -%{python3_sitelib}/knot_resolver.py -%{python3_sitelib}/knot_resolver-* -%if 0%{?suse_version} -%pycache_only %{python3_sitelib}/__pycache__/knot_resolver.* -%else -%{python3_sitelib}/__pycache__/knot_resolver.* -%endif -%{_mandir}/man8/kresd.8.gz -%{_mandir}/man8/kresctl.8.gz - -%files devel -%{_includedir}/libkres -%{_libdir}/pkgconfig/libkres.pc -%{_libdir}/libkres.so - -%if "x%{?suse_version}" == "x" -%files module-dnstap -%{_libdir}/knot-resolver/kres_modules/dnstap.so -%endif - -%if "x%{?suse_version}" == "x" -%files module-http -%{_libdir}/knot-resolver/debug_opensslkeylog.so -%{_libdir}/knot-resolver/kres_modules/http -%{_libdir}/knot-resolver/kres_modules/http*.lua -%{_libdir}/knot-resolver/kres_modules/prometheus.lua -%endif - -%files -n knot-resolver-manager -%{python3_sitearch}/knot_resolver_manager* -%config(noreplace) %{_sysconfdir}/knot-resolver/config.yaml -%{_unitdir}/knot-resolver.service -%{_bindir}/kresctl -%{_bindir}/knot-resolver -%{_datarootdir}/bash-completion/completions/kresctl -%{_datarootdir}/fish/completions/kresctl.fish - -%changelog -* {{ now }} Jakub Ružička - {{ version }}-{{ release }} -- upstream package -- see NEWS or https://www.knot-resolver.cz/ diff --git a/distro/tests/extra/all/control b/distro/tests/extra/all/control deleted file mode 100644 index b13cc27d2..000000000 --- a/distro/tests/extra/all/control +++ /dev/null @@ -1,2 +0,0 @@ -{# This adds all tests for manager's packaging #} -{% include 'manager/tests/packaging/control' %} diff --git a/doc/README.md b/doc/README.md deleted file mode 100644 index eedc60f3a..000000000 --- a/doc/README.md +++ /dev/null @@ -1,39 +0,0 @@ -## Documentation - -Each directory contains a README.md with the basic information, examples and usage. -It does not however contain API documentation, which is built separately in this directory. - -### Requirements - -To generate documentation you need to install [meson][meson] and [ninja][ninja]. - -The code is documented with [Doxygen][doxygen] JavaDoc style, a prettified documentation -also requires [breathe][breathe], [Sphinx][sphinx], [Sphinx tabs][sphinx-tabs] and [Sphinx Read the Docs theme][sphinx_rtd_theme] for building sane documentation pages. - -[meson]: https://mesonbuild.com/ -[ninja]: https://ninja-build.org/ -[doxygen]:https://www.stack.nl/~dimitri/doxygen/manual/index.html -[breathe]: https://github.com/michaeljones/breathe -[sphinx]: http://sphinx-doc.org/ -[sphinx-tabs]: https://sphinx-tabs.readthedocs.io/ -[sphinx_rtd_theme]: https://sphinx-rtd-theme.readthedocs.io/en/stable/ - -You can install dependencies with pip: - -```sh -pip install -U Sphinx sphinx-tabs sphinx_rtd_theme breathe -# Alternatively -pip install -r doc/requirements.txt -``` - -### Building documentation - -If you satisfy the requirements, the documentation will be generated to `doc/html` directory. -You must be in the root directory of the project. - -It may be needed to initialize git submodules `git submodule update --init --recursive`. - -```sh -$ meson setup build_dir -Ddoc=enabled -$ ninja -C build_dir doc -``` diff --git a/doc/_static/css/dev.css b/doc/_static/css/dev.css deleted file mode 100644 index 2c9fe5b7f..000000000 --- a/doc/_static/css/dev.css +++ /dev/null @@ -1,31 +0,0 @@ -/* SPDX-License-Identifier: GPL-3.0-or-later */ - -.wy-side-nav-search { - background-color: #b92929; /* RED FOR DEVELOPERS :-) */ -} -.wy-side-nav-search input[type=text] { - border-color: #a42424; -} -.wy-side-nav-search div.version { - color: hsla(0,0%,100%,0.4); -} -.wy-nav-top { - background-color: #b92929; -} - -.wy-nav-content-wrap a { - color: #b92929; -} -.wy-nav-content-wrap a:hover { - color: #d13030; -} -.wy-nav-content-wrap a:visited { - color: #780001; -} -.wy-nav-content-wrap a:visited:hover { - color: #d13030; -} - -.wy-menu-vertical p.caption { - color: #d95555; -} diff --git a/doc/_static/css/main.css b/doc/_static/css/main.css deleted file mode 100644 index e9ec7946e..000000000 --- a/doc/_static/css/main.css +++ /dev/null @@ -1,6 +0,0 @@ -/* SPDX-License-Identifier: GPL-3.0-or-later */ -@import "theme.css"; - -table.docutils blockquote { - margin-left: 0; -} diff --git a/doc/_static/logo-negativ-dev.svg b/doc/_static/logo-negativ-dev.svg deleted file mode 100644 index 5bd4b771e..000000000 --- a/doc/_static/logo-negativ-dev.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - diff --git a/doc/_static/package-lock.json b/doc/_static/package-lock.json deleted file mode 100644 index eb5f9fb70..000000000 --- a/doc/_static/package-lock.json +++ /dev/null @@ -1,2484 +0,0 @@ -{ - "name": "_static", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "@adobe/jsonschema2md": "^7.1.5" - } - }, - "node_modules/@adobe/helix-log": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@adobe/helix-log/-/helix-log-6.0.0.tgz", - "integrity": "sha512-+9gpf49sFDmZLV3gtjY+RmEUistqYJdVWpiqlRYpxE59x5bHFzYf93dZ7fljSTBtZdVq8lm97HxrTUloh5HvRg==", - "dependencies": { - "big.js": "^6.1.1", - "colorette": "^2.0.2", - "ferrum": "^1.9.3", - "phin": "^3.6.0", - "polka": "^0.5.2" - } - }, - "node_modules/@adobe/jsonschema2md": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@adobe/jsonschema2md/-/jsonschema2md-7.1.5.tgz", - "integrity": "sha512-uybF3Ryn0xz5lzGz6sb6Th5nkX9H60zOnKVYCUXunUtWENGb7Ut+8CYPzPA9sjY8+gLK8pQq3rbmsKprcjkN0A==", - "dependencies": { - "@adobe/helix-log": "6.0.0", - "@types/json-schema": "^7.0.8", - "@types/mdast": "^3.0.4", - "es2015-i18n-tag": "1.6.1", - "ferrum": "1.9.4", - "fs-extra": "11.1.0", - "github-slugger": "2.0.0", - "js-yaml": "4.1.0", - "json-schema": "^0.4.0", - "mdast-builder": "1.1.1", - "mdast-util-to-string": "3.1.0", - "readdirp": "3.6.0", - "remark-gfm": "^3.0.0", - "remark-parse": "10.0.1", - "remark-stringify": "10.0.2", - "unified": "10.1.2", - "unist-util-inspect": "7.0.1", - "yargs": "17.6.2" - }, - "bin": { - "jsonschema2md": "cli.js" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@arr/every": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", - "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@polka/url": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz", - "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==" - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==", - "engines": { - "node": "*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/centra": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/centra/-/centra-2.6.0.tgz", - "integrity": "sha512-dgh+YleemrT8u85QL11Z6tYhegAs3MMxsaWAq/oXeAmYJ7VxL3SI9TZtnfaEvNDMAPolj25FXIb3S+HCI4wQaQ==" - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/es2015-i18n-tag": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/es2015-i18n-tag/-/es2015-i18n-tag-1.6.1.tgz", - "integrity": "sha512-MYoh9p+JTkgnzBh0MEBON6xUyzdmwT6wzsmmFJvZujGSXiI2kM+3XvFl6+AcIO2eeL6VWgtX9szSiDTMwDxyYA==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/fastestsmallesttextencoderdecoder": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", - "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==" - }, - "node_modules/ferrum": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/ferrum/-/ferrum-1.9.4.tgz", - "integrity": "sha512-ooNerLoIht/dK4CQJux93z/hnt9JysrXniJCI3r6YRgmHeXC57EJ8XaTCT1Gm8LfhIAeWxyJA0O7d/W3pqDYRg==", - "dependencies": { - "fastestsmallesttextencoderdecoder": "1.0.22", - "lodash.isplainobject": "4.0.6", - "xxhashjs": "0.2.2" - } - }, - "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/matchit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/matchit/-/matchit-1.1.0.tgz", - "integrity": "sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==", - "dependencies": { - "@arr/every": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mdast-builder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/mdast-builder/-/mdast-builder-1.1.1.tgz", - "integrity": "sha512-a3KBk/LmYD6wKsWi8WJrGU/rXR4yuF4Men0JO0z6dSZCm5FrXXWTRDjqK0vGSqa+1M6p9edeuypZAZAzSehTUw==", - "dependencies": { - "@types/unist": "^2.0.3" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", - "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", - "dependencies": { - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", - "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", - "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", - "dependencies": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", - "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.2.tgz", - "integrity": "sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.6.tgz", - "integrity": "sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag==", - "dependencies": { - "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", - "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.4.0.tgz", - "integrity": "sha512-IjXARf/O8VGx/pc5SZ7syfydq1DYL9vd92orsG5U0b4GNCmAvXzu+n7sbzfIKrXwB0AVrYk3NV2kXl0AIi9LCA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", - "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", - "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", - "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", - "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", - "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", - "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", - "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", - "dependencies": { - "micromark-util-types": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", - "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", - "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/phin": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.0.tgz", - "integrity": "sha512-DqnVNrpYhKGBZppNKprD+UJylMeEKOZxHgPB+ZP6mGzf3uA2uox4Ep9tUm+rUc8WLIdHT3HcAE4X8fhwQA9JKg==", - "dependencies": { - "centra": "^2.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/polka": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/polka/-/polka-0.5.2.tgz", - "integrity": "sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==", - "dependencies": { - "@polka/url": "^0.5.0", - "trouter": "^2.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", - "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trouter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/trouter/-/trouter-2.0.1.tgz", - "integrity": "sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==", - "dependencies": { - "matchit": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-inspect": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.1.tgz", - "integrity": "sha512-gEPeSrsYXus8012VJ00p9uZC8D0iogtLLiHlBgvS61hU22KNKduQhMKezJm83viHlLf3TYS2y9SDEFglWPDMKw==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", - "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", - "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/vfile": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz", - "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.3.tgz", - "integrity": "sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dependencies": { - "cuint": "^0.2.2" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - }, - "dependencies": { - "@adobe/helix-log": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@adobe/helix-log/-/helix-log-6.0.0.tgz", - "integrity": "sha512-+9gpf49sFDmZLV3gtjY+RmEUistqYJdVWpiqlRYpxE59x5bHFzYf93dZ7fljSTBtZdVq8lm97HxrTUloh5HvRg==", - "requires": { - "big.js": "^6.1.1", - "colorette": "^2.0.2", - "ferrum": "^1.9.3", - "phin": "^3.6.0", - "polka": "^0.5.2" - } - }, - "@adobe/jsonschema2md": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@adobe/jsonschema2md/-/jsonschema2md-7.1.5.tgz", - "integrity": "sha512-uybF3Ryn0xz5lzGz6sb6Th5nkX9H60zOnKVYCUXunUtWENGb7Ut+8CYPzPA9sjY8+gLK8pQq3rbmsKprcjkN0A==", - "requires": { - "@adobe/helix-log": "6.0.0", - "@types/json-schema": "^7.0.8", - "@types/mdast": "^3.0.4", - "es2015-i18n-tag": "1.6.1", - "ferrum": "1.9.4", - "fs-extra": "11.1.0", - "github-slugger": "2.0.0", - "js-yaml": "4.1.0", - "json-schema": "^0.4.0", - "mdast-builder": "1.1.1", - "mdast-util-to-string": "3.1.0", - "readdirp": "3.6.0", - "remark-gfm": "^3.0.0", - "remark-parse": "10.0.1", - "remark-stringify": "10.0.2", - "unified": "10.1.2", - "unist-util-inspect": "7.0.1", - "yargs": "17.6.2" - } - }, - "@arr/every": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", - "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==" - }, - "@polka/url": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz", - "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==" - }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "requires": { - "@types/ms": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "requires": { - "@types/unist": "*" - } - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" - }, - "big.js": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", - "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==" - }, - "ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" - }, - "centra": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/centra/-/centra-2.6.0.tgz", - "integrity": "sha512-dgh+YleemrT8u85QL11Z6tYhegAs3MMxsaWAq/oXeAmYJ7VxL3SI9TZtnfaEvNDMAPolj25FXIb3S+HCI4wQaQ==" - }, - "character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "requires": { - "character-entities": "^2.0.0" - } - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "es2015-i18n-tag": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/es2015-i18n-tag/-/es2015-i18n-tag-1.6.1.tgz", - "integrity": "sha512-MYoh9p+JTkgnzBh0MEBON6xUyzdmwT6wzsmmFJvZujGSXiI2kM+3XvFl6+AcIO2eeL6VWgtX9szSiDTMwDxyYA==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "fastestsmallesttextencoderdecoder": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", - "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==" - }, - "ferrum": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/ferrum/-/ferrum-1.9.4.tgz", - "integrity": "sha512-ooNerLoIht/dK4CQJux93z/hnt9JysrXniJCI3r6YRgmHeXC57EJ8XaTCT1Gm8LfhIAeWxyJA0O7d/W3pqDYRg==", - "requires": { - "fastestsmallesttextencoderdecoder": "1.0.22", - "lodash.isplainobject": "4.0.6", - "xxhashjs": "0.2.2" - } - }, - "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" - }, - "markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==" - }, - "matchit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/matchit/-/matchit-1.1.0.tgz", - "integrity": "sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==", - "requires": { - "@arr/every": "^1.0.0" - } - }, - "mdast-builder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/mdast-builder/-/mdast-builder-1.1.1.tgz", - "integrity": "sha512-a3KBk/LmYD6wKsWi8WJrGU/rXR4yuF4Men0JO0z6dSZCm5FrXXWTRDjqK0vGSqa+1M6p9edeuypZAZAzSehTUw==", - "requires": { - "@types/unist": "^2.0.3" - } - }, - "mdast-util-find-and-replace": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz", - "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==", - "requires": { - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - } - }, - "mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - } - }, - "mdast-util-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", - "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", - "requires": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" - } - }, - "mdast-util-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", - "requires": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" - } - }, - "mdast-util-gfm-footnote": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", - "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" - } - }, - "mdast-util-gfm-strikethrough": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.2.tgz", - "integrity": "sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-gfm-table": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.6.tgz", - "integrity": "sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag==", - "requires": { - "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-gfm-task-list-item": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", - "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" - } - }, - "mdast-util-to-markdown": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.4.0.tgz", - "integrity": "sha512-IjXARf/O8VGx/pc5SZ7syfydq1DYL9vd92orsG5U0b4GNCmAvXzu+n7sbzfIKrXwB0AVrYk3NV2kXl0AIi9LCA==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" - }, - "micromark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", - "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", - "requires": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", - "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", - "requires": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-extension-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-footnote": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", - "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", - "requires": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-strikethrough": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", - "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-table": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", - "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-extension-gfm-tagfilter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", - "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", - "requires": { - "micromark-util-types": "^1.0.0" - } - }, - "micromark-extension-gfm-task-list-item": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", - "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "requires": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==" - }, - "micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==" - }, - "micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "requires": { - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-sanitize-uri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", - "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==" - }, - "micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==" - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "phin": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.0.tgz", - "integrity": "sha512-DqnVNrpYhKGBZppNKprD+UJylMeEKOZxHgPB+ZP6mGzf3uA2uox4Ep9tUm+rUc8WLIdHT3HcAE4X8fhwQA9JKg==", - "requires": { - "centra": "^2.6.0" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "polka": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/polka/-/polka-0.5.2.tgz", - "integrity": "sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==", - "requires": { - "@polka/url": "^0.5.0", - "trouter": "^2.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" - } - }, - "remark-parse": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - } - }, - "remark-stringify": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", - "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "unified": "^10.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "requires": { - "mri": "^1.1.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" - }, - "trouter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/trouter/-/trouter-2.0.1.tgz", - "integrity": "sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==", - "requires": { - "matchit": "^1.0.0" - } - }, - "unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unist-util-inspect": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-7.0.1.tgz", - "integrity": "sha512-gEPeSrsYXus8012VJ00p9uZC8D0iogtLLiHlBgvS61hU22KNKduQhMKezJm83viHlLf3TYS2y9SDEFglWPDMKw==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", - "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - } - }, - "unist-util-visit-parents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz", - "integrity": "sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "requires": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - } - }, - "vfile": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz", - "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.3.tgz", - "integrity": "sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "requires": { - "cuint": "^0.2.2" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" - }, - "zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" - } - } -} diff --git a/doc/_static/package.json b/doc/_static/package.json deleted file mode 100644 index 7e3d4e4ad..000000000 --- a/doc/_static/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "@adobe/jsonschema2md": "^7.1.5" - } -} diff --git a/doc/architecture-manager.drawio b/doc/architecture-manager.drawio deleted file mode 100644 index aa8c4e7ed..000000000 --- a/doc/architecture-manager.drawio +++ /dev/null @@ -1 +0,0 @@ -5ZhbU6MwFMc/TR91gADWx17cVUdnnNGZ3fUtQgrRwMEQevHT76GEUqBWdre2dfZFk39Obuf8TkjTI6No/l3SJLwFn4meZfjzHhn3LMs0+w7+y5VFoZxZdiEEkvvaqBLu+RvToqHVjPssrRkqAKF4Uhc9iGPmqZpGpYRZ3WwCoj5rQgPWEu49KtrqD+6rsFD7jlHpl4wHYTmzaeiWiJbGWkhD6sNsTSIXPTKSAKooRfMRE7nzSr8U/b6907pamGSx6tLh+eHx4bb/OibXl9cW4dGgf+Wf6FGmVGR6wxGNcU9Sr1ktSkdIyGKf5WMZPTKchVyx+4R6eesMQ49aqCKBNROLEy7ECARIrMcQo9EwRWMeBw+Q6CEEfWLiDlKuOMSoebgPnJcMp0wqjhG4aRiovOuQCh5sNB/ohidQCqJqRpROLAfreqtozubv+tBcRQaRZhAxJRdoUnY408HUNJtlcGcVG26phWtcWCUWVPMYrMauQoYFHbU/ieBZK4SYCxMe5EkR0hjxtlyByxg+YVDdIC9J9pqxVLVizHxkX1dBqhACiKm4qNRhnYLK5gaWcc1j/8yUWuhEppmCOhnoaLn4qfsvK7/yyqlTVsfz9cbxYp2WIfVeguUSGnAVO8mXvz2wuFvIpMe2+NPShwyVAVNb7MhWUE6MU8N1dWgkE1TxaX1tm0DQw90Bx1VXJjCZpEy1SFnN+vfwWC12WkzgsZXkxSwSA0/BtgRdZV4zJYvMXaMAMiV4zEarQ9vYfGjsIGWtRsaetzOWbEhY97Py9fwrZd0O84p0zCt7czQ759A/BYe08mFwd7XzT+FOqP4Ya3ufWJf3tf1yvUM+7Y58Oofk027xiVtN80vOMTLa/5hRd6+Mki/OqNORUdM6JKROC1Iscp8ubwn559il0fImv/yLSgwyQos3bXF8JJMOJJubrv2fhnK/5eM0S5ic8hSkf4wudO2GC+1Du9C0v/hpYHb9qdI/5Glguv+Lm82DXg3KZe7hKWcHx4HTPA4Ofjdof7VeJEv93vJpsXhOCVjM5NF+pJonrPWJJyxWq4fL4jGiev4lF78B \ No newline at end of file diff --git a/doc/architecture-manager.svg b/doc/architecture-manager.svg deleted file mode 100644 index 4408bfb55..000000000 --- a/doc/architecture-manager.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
manager
manager
config change
request
config change...
API
API
parsing
parsing
validation & normalization
validation & normali...
supervisord
supervisord
manager
manager
kresd config generation
kresd config generat...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/doc/architecture-schema.drawio b/doc/architecture-schema.drawio deleted file mode 100644 index c58a4b9bb..000000000 --- a/doc/architecture-schema.drawio +++ /dev/null @@ -1 +0,0 @@ -7Vlbb5swGP01eezENSGPbZptmlZpUqXu8uaAA14MRsaQsF8/G0zAkNIkLQlaF1WKffwZ2+ccm8/NxFyEu08UxMED8SCeGJq3m5j3E8PQ9emcfwkkLxF7apeAT5Eng2rgEf2BEtQkmiIPJkogIwQzFKugS6IIukzBAKVkq4atCVZHjYEPO8CjC3AX/Y48FpSoY8xq/DNEfsDaCw5BFSxXkgTAI9sGZC4n5oISwspSuFtALMireCn7fXymdT8xCiN2TIdsY66fwiewZpuHmy9LB/7arm4cOTeWVwuGHl+/rBLKAuKTCOBljd5RkkYeFE/VeO13GsZVfEQiEVB3+0pIzHFdxEHGcqkvSBnhUMBCLFu7i5HrS0hKXdizgsoUgPqQ9cSZZZxYXmMASdUnSELIaM4DKMSAoUyVH0gX+fs42fWWUpA3AmKCIpY0nvxNADxAbgjDkm6Q22HW0uykcF4ox69qjYXUUGGDEywxfzeWsEZhCXN6kiX6w4exRHUYvwNP2KPwhOWoIs/7PdEfPpAn9HfjCWMUntA1VWSn3xP94QN5ohwxAziVJCRpDGmGEkK9jl1UM2wDxOBjDArFtjyZPFLlDFIGd726VLtEJaTKy7Z1WmfJw1QLGild1e2QkA06z2DLGMkOclOaFY8UlTXCeEEwocWMzPUaTl2X4wmjZAMbLd5svtLEJDyQBPvu5+9G48jdqI9jN1onndCGdoUT2jzDX4oXhjCb4pbTzTa8v8ZxUWj7S3/ppmD0xg/kMOsfdBg3Fs1/iBl9MOyq/lM+rqjc7+R8y1oua8Nbc5gLS/eK0fae3XoFlhOVvWqTvdrjL6Q0nXldJKex/3v8kh4f5gLWvTK1rtG6Pr+Mx1+6ytm98cN4XGrTyNtDEAEf0o71r5yz6weS9j12kaTd7FA1MaaYiS2JMl70RXFDYeLpVQMfp9F2dUrbqeghTp1LUmodTakxUkrNdvJ1bUrtDqW+e3WWLHNkLOmzZ523JuJQLu3l8jIlOKnaVrQ23t6OzQ4dpjlBTKVTfTXLPID/AYz8iCMup5kfv+adoBe5AN/KhhB5XpFiHNJLVVRM6dDLH4MVxHfA3fhFfHsSrxdab73D5gf+03JAZ2MwnZ2OzjElLkwSkZBQCM8VrJl4SegtBewXqiWvVnzeRsCWfs5g+vFq/QNomc3UPyOby78= \ No newline at end of file diff --git a/doc/architecture-schema.svg b/doc/architecture-schema.svg deleted file mode 100644 index e32251bad..000000000 --- a/doc/architecture-schema.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -
supervisord
supervisord
manager
manager
kresd1
kresd1
kresd2
kresd2
gc
gc
controls
control...
process tree
process...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/doc/config-debugging.rst b/doc/config-debugging.rst deleted file mode 100644 index 520c2dbd8..000000000 --- a/doc/config-debugging.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Debugging options -================= - -In case the resolver crashes, it is often helpful to collect a coredump from -the crashed process. Configuring the system to collect coredump from crashed -process is out of the scope of this documentation, but some tips can be found -`here `_. - -Kresd uses its own mechanism for assertions. They are checks that should always -pass and indicate some weird or unexpected state if they don't. In such cases, -they show up in the log as errors. By default, the process recovers from those -states if possible, but the behaviour can be changed with the following options -to aid further debugging. - -.. envvar:: debugging.assertion_abort = false|true - - :return: boolean (default: false in meson's release mode, true otherwise) - - Allow the process to be aborted in case it encounters a failed assertion. - (Some critical conditions always lead to abortion, regardless of settings.) - -.. envvar:: debugging.assertion_fork = milliseconds - - :return: int (default: 5 minutes in meson's release mode, 0 otherwise) - - If a process should be aborted, it can be done in two ways. When this is - set to nonzero (default), a child is forked and aborted to obtain a coredump, - while the parent process recovers and keeps running. This can be useful to - debug a rare issue that occurs in production, since it doesn't affect the - main process. - - As the dumping can be costly, the value is a lower bound on delay between - consecutive coredumps of each process. It is randomized by +-25% each time. diff --git a/doc/dev/Doxyfile b/doc/dev/Doxyfile deleted file mode 100644 index bb88c1ac4..000000000 --- a/doc/dev/Doxyfile +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -PROJECT_NAME = Knot Resolver library -GENERATE_HTML = NO -GENERATE_XML = YES -GENERATE_LATEX = NO -GENERATE_MAN = NO -GENERATE_RTF = NO -CASE_SENSE_NAMES = NO -INPUT = ../../lib ../../daemon -FILE_PATTERNS = *.h -QUIET = YES -RECURSIVE = YES -JAVADOC_AUTOBRIEF = YES -AUTOLINK_SUPPORT = YES -XML_OUTPUT = doxyxml -HIDE_UNDOC_MEMBERS = YES -HIDE_UNDOC_CLASSES = YES -OPTIMIZE_OUTPUT_FOR_C = YES -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = YES -PREDEFINED = NDEBUG KR_CONST= KR_EXPORT= KR_PURE= lru_t(type)=see_source_code KR_PRINTF(n)= KR_COLD= array_t(type)=see_source_code __attribute__(x)= -EXCLUDE_SYMBOLS = static_assert uint set_walk_cb module_api_cb kr_prop_cb kr_straddr_split diff --git a/doc/dev/architecture-gc.rst b/doc/dev/architecture-gc.rst deleted file mode 100644 index b57c857c3..000000000 --- a/doc/dev/architecture-gc.rst +++ /dev/null @@ -1,12 +0,0 @@ -***************** -``kres-cache-gc`` -***************** - -The garbage collector is a simple component which keeps the shared cache from overfilling. -Every second it estimates cache usage and if over 80%, records get deleted in order to free 10%. (Parameters can be configured.) - -The freeing happens in a few passes. First all items are classified by their estimated usefulness, in a simple way based on remaining TTL, type, etc. -From this histogram it's computed which "level of usefulness" will become the threshold, so that roughly the planned total size gets freed. -Then all items are passed to collect the set of keys to delete, and finally the deletion is performed. -As longer transactions can cause issues in LMDB, all passes are split into short batches. - diff --git a/doc/dev/architecture-kresd.rst b/doc/dev/architecture-kresd.rst deleted file mode 100644 index 783fbb8ad..000000000 --- a/doc/dev/architecture-kresd.rst +++ /dev/null @@ -1,3 +0,0 @@ -********* -``kresd`` -********* \ No newline at end of file diff --git a/doc/dev/architecture-manager.rst b/doc/dev/architecture-manager.rst deleted file mode 100644 index 4e3371a92..000000000 --- a/doc/dev/architecture-manager.rst +++ /dev/null @@ -1,54 +0,0 @@ -**************** -``kres-manager`` -**************** - -The manager is a component written in Python and a bit of C used for native extension modules. The main goal of the manager is to ensure the system is set up according to a given configuration, provide a user-friendly interface. Performance is only secondary to correctness. - -The manager is mostly modelled around config processing pipeline: - -.. image:: ../architecture-manager.svg - :width: 100% - :alt: Diagram showing a configuration change request processing pipeline inside of the manager. The request goes first through an API server, then through parsing, validation and normalization steps, then into an actual system manager, which commands supervisord and other system components such as kresd. - - -API -=== - -The API server is implemented using `aiohttp `_. This framework provides the application skeleton and manages application runtime. The manager is actually a normal web application with the slight difference that we don't save the data in a database but rather modify state of other processes. - -Code of the API server is located only in a `single server.py source code file `_. It also contains description of the manager's startup procedure. - -Config processing -================= - -From the web framework, we receive data as simple strings and we need to parse and validate them. Due to packaging issues in distros, we rolled our own solution not disimilar to Python library `Pydantic `_. - -Our tool lets us model config schema similarly to how Python's native dataclasses are constructed. As input, it takes Python's dicts taken from PyYAML or JSON parser. The dict is mapped onto predefined Python classes while enforcing typing rules. If desired, the mapping step is performed multiple times onto different classes, which allows us to process intermediary values such as ``auto``. - -There are two relevant places in the source code - `our generic modelling tools `_ and the actual `configuration data model `_. Just next to the data model in the ``templates`` directory, there are Jinja2 templates for generating Lua code from the configuration. - - -Actual manager -============== - -The actual core of the whole application is originally named the manager. It keeps a high-level view of the systems state and performs all necessary operations to change the state to the desired one. In other words, manager is the component handling rolling restarts, config update logic and more. - -The code is contained mainly in a `single kres_manager.py source code file `_. - - -Interactions with supervisord -============================= - -.. note:: - Let's make a sidestep and let's talk about abstractions. The manager component mentioned above interacts with a general backend (or as we call sometimes call it - a subprocess manager). The idea is that the interactions with the backend are not dependent on the backend's implementation and we can choose which one we want to use. Historically, we had two different backend implementations - systemd and supervisord. However, systemd turned out to be inappropriate, it did not fit our needs, so we removed it. The `abstraction remains `_ though and it should be possible to implement a different subprocess manager if it turns out useful. Please note though, the abstraction might be somewhat leaky in practice as there is only one implementation. - -Communication with supervisord happens on pretty much all possible levels. We edit its configuration file, we use its XMLRPC API, we use Unix signals and we even attach to it from within its Python runtime. The interface is honestly a bit messy and we had to use all we could to make it user friendly. - -First, we `generate supervisord's configuration file `_. The configuration file sets stage for further communication by specifying location of the pidfile and API Unix socket. It prepares configuration for subprocesses and most significantly, it loads our custom extensions. - -`The extensions `_ don't use a lot of code. There are four of them - the simplest one provides a speedier XMLRPC API for starting processes, it removes delays that are not necessary for our usecase. Another one implements systemd's ``sd_notify()`` API for supervisord, so we can track the lifecycle of ``kresd`` instances more precisely. Another extension changes the way logging works and the last extension monitors the lifecycle of the manager and forwards some signals. - -.. note:: - The extensions mentioned above use monkeypatching to achieve their design goals. We settled for this approach, because supervisord's codebase appears mostly stable. The code we patch has not been changed for years. Other option would be forking supervisord and vendoring it. We decided against that mainly due to packaging complications it would cause with major Linux distributions. - -For executing subprocesses, we don't actually change the configuration file, we only use XMLRPC API and tell supervisord to start already configured programs. For one specific call though, we use our extension instead of the build-in method of starting processes as it is significantly faster. diff --git a/doc/dev/architecture.rst b/doc/dev/architecture.rst deleted file mode 100644 index 79084e5b2..000000000 --- a/doc/dev/architecture.rst +++ /dev/null @@ -1,48 +0,0 @@ -******************* -System architecture -******************* - -Knot Resolver is split into several components, namely the manager, ``kresd`` and the garbage collector. In addition to these custom components, we also rely on `supervisord `_. - -.. image:: ../architecture-schema.svg - :width: 100% - :alt: Diagram showing process tree and contol relationship between Knot Resolver components. Supervisord is a parent to all processes, namely manager, kresd instances and gc. Manager on the other hand controls every other component and what it does. - - -There are two different control structures in place. Semantically, the manager controls every other component in Knot Resolver. It processes configuration and passes it onto every other component. As a user you will always interact with the manager (or kresd). At the same time though, the manager is not the root of the process hierarchy, Supervisord sits at the top of the process tree and runs everything else. - -.. note:: - The rationale for this inverted process hierarchy is mainly stability. Supervisord sits at the top because it is a reliable and stable software we can depend upon. It also does not process user input and its therefore shielded from data processing bugs. This way, any component in Knot Resolver can crash and restart without impacting the rest of the system. - - -Knot Resolver startup -===================== - -The inverted process hierarchy complicates Resolver's launch procedure. You might notice it when reading manager's logs just after start. What happens on cold start is: - -1. Manager starts, reads its configuration and generates new supervisord configuration. Then, it starts supervisord by using ``exec``. -2. Supervisord loads it's configuration, loads our extensions and start a new instance of manager. -3. Manager starts again, this time as a child of supervisord. As this is desired state, it loads the configuration again and commands supervisord that it should start new instances of ``kresd``. - - -Failure handling -================ - -Knot Resolver is designed to handle failures automatically. Anything except for supervisord will automatically restart. If a failure is irrecoverable, all processes will stop and nothing will be left behind in a half-broken state. While a total failure like this should never happen, it is possible and you should not rely on single instance of Knot Resolver for a highly-available system. - -.. note:: - The ability to restart most of the components without downtime means, that Knot Resolver is able to transparently apply updates while running. - - -Individual components -===================== - -You can learn more about architecture of individual Resolver components in the following chapters. - -.. toctree:: - :titlesonly: - :maxdepth: 1 - - architecture-manager - architecture-kresd - architecture-gc diff --git a/doc/dev/build.rst b/doc/dev/build.rst deleted file mode 100644 index b6bfd9f43..000000000 --- a/doc/dev/build.rst +++ /dev/null @@ -1,357 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _build: - -********************** -Cloning the repository -********************** - -.. note:: Latest up-to-date packages for various distribution can be obtained - from web ``_. - -Knot Resolver is written for UNIX-like systems using modern C standards. -Beware that some 64-bit systems with LuaJIT 2.1 may be affected by -`a problem `_ --- Linux on x86_64 is unaffected but `Linux on aarch64 is -`_. - -.. code-block:: bash - - $ git clone --recursive https://gitlab.nic.cz/knot/knot-resolver.git - -****************** -Building with apkg -****************** - -Knot Resolver uses `apkg tool `_ for upstream packaging. -It allows build packages localy for supported distributions, which it then installs. -``apkg`` also takes care of dependencies itself. - -First, you need to install and setup ``apkg``. - -.. tip:: - Install ``apkg`` with `pipx `_ to avoid version conflicts. - -.. code-block:: bash - - $ pip3 install apkg - $ apkg system-setup - -Clone and change dir to ``knot-resolver`` git repository. - -.. code-block:: bash - - $ git clone --recursive https://gitlab.nic.cz/knot/knot-resolver.git - $ cd knot-resolver - -.. tip:: The ``apkg status`` command can be used to find out some useful information, such as whether the current distribution is supported. - -When ``apkg`` is ready, a package can be built and installed. - -.. code-block:: bash - - # takes care of dependencies - apkg build-dep - - # build package - apkg build - - # (build and) install package, builds package when it is not already built - apkg install - -After that Knot Resolver should be installed. - -******************* -Building with Meson -******************* - -Knot Resolver uses `Meson Build system `_. -Shell snippets below should be sufficient for basic usage -but users unfamiliar with Meson might want to read introductory -article `Using Meson `_. - - -Dependencies -============ - -.. note:: This section lists basic requirements. Individual modules - might have additional build or runtime dependencies. - -The following dependencies are needed to build and run Knot Resolver with core functions: - -.. csv-table:: - :header: "Requirement", "Notes" - - "ninja", "*build only*" - "meson >= 0.49", "*build only* [#]_" - "C and C++ compiler", "*build only* [#]_" - "`pkg-config`_", "*build only* [#]_" - "libknot_ 3.0.2+", "Knot DNS libraries" - "LuaJIT_ 2.0+", "Embedded scripting language" - "libuv_ 1.7+", "Multiplatform I/O and services" - "lmdb", "Memory-mapped database for cache" - "GnuTLS", "TLS" - -Additional dependencies are needed to build and run Knot Resolver with ``manager``: -All dependencies are also listed in `pyproject.toml `_ which is our authoritative source. - -.. csv-table:: - :header: "Requirement", "Notes" - - "python3_ >=3.7", "Python language interpreter" - "Jinja2_", "Template engine for Python" - "PyYAML_", "YAML framework for Python" - "aiohttp_", "HTTP Client/Server for Python." - "prometheus-client_", "Prometheus client for Python" - "typing-extensions_", "Compatibility module for Python" - - -There are also *optional* packages that enable specific functionality in Knot -Resolver: - -.. TODO cqueues is really used on multiple places, sometimes indirectly - -.. csv-table:: - :header: "Optional", "Needed for", "Notes" - - "jemalloc_", "``daemon``", "Improve long-term memory consumption." - "nghttp2_", "``daemon``", "DNS over HTTPS support." - "libsystemd_", "``daemon``", "Systemd watchdog support." - "`libcap-ng`_", "``daemon``", "Linux capabilities: support dropping them." - "`lua-basexx`_", "``config tests``", "Number base encoding/decoding for Lua." - "`lua-http`_", "``modules/http``", "HTTP/2 client/server for Lua." - "`lua-cqueues`_", "some lua modules", "" - "cmocka_", "``unit tests``", "Unit testing framework." - "dnsdist_", "``proxyv2 test``", "DNS proxy server" - "Doxygen_", "``documentation``", "Generating API documentation." - "Sphinx_, sphinx-tabs_ and sphinx_rtd_theme_", "``documentation``", "Building this - documentation." - "breathe_", "``documentation``", "Exposing Doxygen API doc to Sphinx." - "libprotobuf_ 3.0+", "``modules/dnstap``", "Protocol Buffers support for - dnstap_." - "`libprotobuf-c`_ 1.0+", "``modules/dnstap``", "C bindings for Protobuf." - "libfstrm_ 0.2+", "``modules/dnstap``", "Frame Streams data transport - protocol." - "luacheck_", "``lint-lua``", "Syntax and static analysis checker for Lua." - "`clang-tidy`_", "``lint-c``", "Syntax and static analysis checker for C." - "luacov_", "``check-config``", "Code coverage analysis for Lua modules." - -.. [#] If ``meson >= 0.49`` isn't available for your distro, check backports - repository or use python pip to install it. -.. [#] Requires ``__attribute__((cleanup))`` and ``-MMD -MP`` for - dependency file generation. We test GCC and Clang, and ICC is likely to work as well. -.. [#] You can use variables ``_CFLAGS`` and ``_LIBS`` - to configure dependencies manually (i.e. ``libknot_CFLAGS`` and - ``libknot_LIBS``). - -.. note:: Some build dependencies can be found in - `home:CZ-NIC:knot-resolver-build - `_. - -On reasonably new systems most of the dependencies can be resolved from packages, -here's an overview for several platforms. - -* **Debian/Ubuntu** - Current stable doesn't have new enough Meson - and libknot. Use repository above or build them yourself. Fresh list of dependencies can be found in `Debian control file in our repo `_, search for "Build-Depends". - -* **CentOS/Fedora/RHEL/openSUSE** - Fresh list of dependencies can be found in `RPM spec file in our repo `_, search for "BuildRequires". - -* **FreeBSD** - when installing from ports, all dependencies will install - automatically, corresponding to the selected options. -* **Mac OS X** - the dependencies can be obtained from `Homebrew formula `_. - -Compilation -=========== - -Folowing meson command creates new build directory named ``build_dir``, configures installation path to ``/tmp/kr`` and enables static build (to allow installation to non-standard path). -You can also configure some :ref:`build-options`, in this case enable ``manager``, which is disabled by default. - -.. code-block:: bash - - $ meson build_dir --prefix=/tmp/kr --default-library=static -Dmanager=enabled - -After that it is possible to build and install Knot Resolver. - -.. code-block:: bash - - $ meson setup build_dir --prefix=/tmp/kr --default-library=static - $ ninja -C build_dir - - # install Knot Resolver into the previously configured '/tmp/kr' path - $ ninja install -C build_dir - -At this point you can execute the newly installed binary using path ``/tmp/kr/sbin/kresd``. - -.. note:: When compiling on OS X, creating a shared library is currently not - possible when using luajit package from Homebrew due to `#37169 - `_. - -.. _build-options: - -Build options -============= - -It's possible to change the compilation with build options. These are useful to -packagers or developers who wish to customize the daemon behaviour, run -extended test suites etc. By default, these are all set to sensible values. - -For complete list of build options create a build directory and run: - -.. code-block:: bash - - $ meson setup build_dir - $ meson configure build_dir - -To customize project build options, use ``-Doption=value`` when creating -a build directory: - -.. code-block:: bash - - $ meson setup build_dir -Ddoc=enabled - -... or change options in an already existing build directory: - -.. code-block:: bash - - $ meson configure build_dir -Ddoc=enabled - - -.. _build-custom-flags: - -Customizing compiler flags --------------------------- - -If you'd like to use customize the build, see meson's `built-in options -`_. For hardening, see ``b_pie``. - -For complete control over the build flags, use ``--buildtype=plain`` and set -``CFLAGS``, ``LDFLAGS`` when creating the build directory with ``meson`` -command. - -.. include:: ../../tests/README.rst - -.. _build-html-doc: - -Documentation -============= - -To check for documentation dependencies and allow its installation, use -``-Ddoc=enabled``. The documentation doesn't build automatically. Instead, -target ``doc`` must be called explicitly. - -.. code-block:: bash - - $ meson configure build_dir -Ddoc=enabled - $ ninja -C build_dir doc - -Tarball -======= - -Released tarballs are available from ``_ - -To make a release tarball from git, use the following command. The - -.. code-block:: bash - - $ ninja -C build_dir dist - -It's also possible to make a development snapshot tarball: - -.. code-block:: bash - - $ ./scripts/make-archive.sh - -.. _packaging: - -Packaging -========= - -Recommended build options for packagers: - -* ``--buildtype=release`` for default flags (optimization, asserts, ...). For complete control over flags, use ``plain`` and see :ref:`build-custom-flags`. -* ``--prefix=/usr`` to customize - prefix, other directories can be set in a similar fashion, see ``meson setup - --help`` -* ``-Dsystemd_files=enabled`` for systemd unit files -* ``-Ddoc=enabled`` for offline documentation (see :ref:`build-html-doc`) -* ``-Dinstall_kresd_conf=enabled`` to install default config file -* ``-Dmanager=enabled`` to force build of the manager and its features -* ``-Dunit_tests=enabled`` to force build of unit tests - -Systemd -------- - -It's recommended to use the upstream system unit files. If any customizations -are required, drop-in files should be used, instead of patching/changing the -unit files themselves. - -To install systemd unit files, use the ``-Dsystemd_files=enabled`` build option. - -To support enabling services after boot, you must also link ``kresd.target`` to -``multi-user.target.wants``: - -.. code-block:: bash - - ln -s ../kresd.target /usr/lib/systemd/system/multi-user.target.wants/kresd.target - -Trust anchors -------------- - -If the target distro has externally managed (read-only) DNSSEC trust anchors -or root hints use this: - -* ``-Dkeyfile_default=/usr/share/dns/root.key`` -* ``-Droot_hints=/usr/share/dns/root.hints`` -* ``-Dmanaged_ta=disabled`` - -In case you want to have automatically managed DNSSEC trust anchors instead, -set ``-Dmanaged_ta=enabled`` and make sure both ``keyfile_default`` file and -its parent directories are writable by kresd process (after package installation!). - -************ -Docker image -************ - -Visit `hub.docker.com/r/cznic/knot-resolver -`_ for instructions how to run -the container. - -For development, it's possible to build the container directly from your git tree: - -.. code-block:: bash - - $ docker build -t knot-resolver . - -.. _jemalloc: https://jemalloc.net -.. _libuv: https://github.com/libuv/libuv -.. _LuaJIT: http://luajit.org/luajit.html -.. _Doxygen: https://www.doxygen.nl/manual/index.html -.. _breathe: https://github.com/michaeljones/breathe -.. _Sphinx: http://sphinx-doc.org/ -.. _sphinx-tabs: https://sphinx-tabs.readthedocs.io -.. _sphinx_rtd_theme: https://pypi.python.org/pypi/sphinx_rtd_theme -.. _pkg-config: https://www.freedesktop.org/wiki/Software/pkg-config/ -.. _libknot: https://gitlab.nic.cz/knot/knot-dns -.. _cmocka: https://cmocka.org/ -.. _dnsdist: https://dnsdist.org/ -.. _lua-basexx: https://github.com/aiq/basexx -.. _lua-http: https://luarocks.org/modules/daurnimator/http -.. _lua-cqueues: https://25thandclement.com/~william/projects/cqueues.html -.. _deckard: https://gitlab.nic.cz/knot/deckard -.. _nghttp2: https://nghttp2.org/ -.. _libsystemd: https://www.freedesktop.org/wiki/Software/systemd/ -.. _`libcap-ng`: https://people.redhat.com/sgrubb/libcap-ng/ -.. _dnstap: http://dnstap.info/ -.. _libprotobuf: https://developers.google.com/protocol-buffers/ -.. _libprotobuf-c: https://github.com/protobuf-c/protobuf-c/wiki -.. _libfstrm: https://github.com/farsightsec/fstrm -.. _luacheck: http://luacheck.readthedocs.io -.. _clang-tidy: http://clang.llvm.org/extra/clang-tidy/index.html -.. _luacov: https://lunarmodules.github.io/luacov/ -.. _lcov: http://ltp.sourceforge.net/coverage/lcov.php -.. _python3: https://www.python.org/ -.. _Jinja2: https://jinja.palletsprojects.com/ -.. _PyYAML: https://pyyaml.org/ -.. _aiohttp: https://docs.aiohttp.org/ -.. _prometheus-client: https://github.com/prometheus/client_python -.. _typing-extensions: https://pypi.org/project/typing-extensions/ diff --git a/doc/dev/cache-prefetch.rst b/doc/dev/cache-prefetch.rst deleted file mode 100644 index ec933ae76..000000000 --- a/doc/dev/cache-prefetch.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _cache-prefetch: - -Prefetching cache records -========================= - -Following modules and configuration help to keep the cache hot by prefetching records. - -.. include:: ../../modules/prefetch/README.rst - -.. include:: ../../modules/predict/README.rst diff --git a/doc/dev/conf.py b/doc/dev/conf.py deleted file mode 100644 index 3960e5440..000000000 --- a/doc/dev/conf.py +++ /dev/null @@ -1,102 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- coding: utf-8 -*- - -import os -import re -import subprocess - -import sphinx_rtd_theme - -# -- General configuration ----------------------------------------------------- - -if os.environ.get('READTHEDOCS', None) == 'True': - subprocess.call('doxygen') - -# Add any Sphinx extension module names here, as strings. -extensions = [ - 'sphinx.ext.todo', - 'sphinx.ext.viewcode', - 'breathe', -] - -theme_major = sphinx_rtd_theme.__version__.partition('.')[0] -if theme_major == '2': - extensions.append('sphinxcontrib.jquery') - -# Breathe configuration -breathe_projects = {"libkres": "doxyxml"} -breathe_default_project = "libkres" -breathe_domain_by_extension = {"h": "c"} - -# The suffix of source filenames. -source_suffix = '.rst' -master_doc = 'index' - -# General information about the project. -project = u'Knot Resolver' -copyright = u'CZ.NIC labs' -with open('../../meson.build') as f: - for line in f: - match = re.match(r"\s*version\s*:\s*'([^']+)'.*", line) - if match is not None: - version = match.groups()[0] -release = version - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' -highlight_language = 'c' -primary_domain = 'py' - -# -- Options for HTML output --------------------------------------------------- - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['../_static'] - -# Output file base name for HTML help builder. -htmlhelp_basename = 'apidoc' - -# Theme -html_theme = 'sphinx_rtd_theme' -html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] - -html_theme_options = { - 'logo_only': True, # if we have a html_logo below, this shows only the logo with no title text - # ToC options - 'collapse_navigation': False, - 'sticky_navigation': True, -} -html_logo = '../_static/logo-negativ-dev.svg' -html_css_files = [ - 'css/custom.css', - 'css/dev.css', -] -# -- Options for LaTeX output -------------------------------------------------- - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'format.tex', u'Knot Resolver', - u'CZ.NIC Labs', 'manual'), -] - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'libkres', u'libkres documentation', - [u'CZ.NIC Labs'], 1) -] - -# reStructuredText that will be included at the beginning of every source file that is read. -# This is a possible place to add substitutions that should be available in every file. -rst_prolog = """ -.. |yaml| replace:: YAML -.. |lua| replace:: Lua -""" diff --git a/doc/dev/config-answer-reordering.rst b/doc/dev/config-answer-reordering.rst deleted file mode 100644 index 624e7d4e9..000000000 --- a/doc/dev/config-answer-reordering.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Answer reordering -================= -Certain clients are "dumb" and always connect to first IP address or name found -in a DNS answer received from resolver instead of picking randomly. -As a workaround for such broken clients it is possible to randomize -order of records in DNS answers sent by resolver: - -.. function:: reorder_RR([true | false]) - - :param boolean new_value: ``true`` to enable or ``false`` to disable randomization *(optional)* - :return: The (new) value of the option - - If set, resolver will vary the order of resource records within RR sets. - It is enabled by default since 5.3.0. - diff --git a/doc/dev/config-lua-dnssec.rst b/doc/dev/config-lua-dnssec.rst deleted file mode 100644 index 7be496301..000000000 --- a/doc/dev/config-lua-dnssec.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _dnssec-config: - -************************* -DNSSEC, data verification -************************* - -Good news! Knot Resolver uses secure configuration by default, and this configuration -should not be changed unless absolutely necessary, so feel free to skip over this section. - -.. include:: ../../daemon/lua/trust_anchors.rst - -DNSSEC is main technology to protect data, but it is also possible to change how strictly -resolver checks data from insecure DNS zones: - -.. include:: ../../lib/layer/mode.rst diff --git a/doc/dev/config-lua-experimental.rst b/doc/dev/config-lua-experimental.rst deleted file mode 100644 index f709c1c7e..000000000 --- a/doc/dev/config-lua-experimental.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -********************* -Experimental features -********************* - -Following functionality and APIs are in continuous development. -Features in this section may changed, replaced or dropped in any release. - -.. toctree:: - :maxdepth: 1 - - daemon-scripting - modules-experimental_dot_auth diff --git a/doc/dev/config-lua-logging-monitoring.rst b/doc/dev/config-lua-logging-monitoring.rst deleted file mode 100644 index c0b026b33..000000000 --- a/doc/dev/config-lua-logging-monitoring.rst +++ /dev/null @@ -1,99 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -******************************** -Logging, monitoring, diagnostics -******************************** - -To read service logs use commands usual for your distribution. -E.g. on distributions using systemd-journald use command ``journalctl -u kresd@* -f``. - -Knot Resolver supports 6 logging levels - ``crit``, ``err``, ``warning``, -``notice``, ``info``, ``debug``. All levels with the same meaning as is defined -in ``syslog.h``. It is possible change logging level using -:func:`log_level` function. - -.. code-block:: lua - - log_level('debug') -- too verbose for normal usage - -Logging level ``notice`` is set after start by default, -so logs from Knot Resolver should contain only couple lines a day. -For debugging purposes it is possible to use the very verbose ``debug`` level, -but that is generally not usable unless restricted in some way (see below). - -In addition to levels, logging is also divided into the -:ref:`log groups `. All groups -are logged by default, but you can enable ``debug`` level for selected groups using -:func:`log_groups` function. Other groups are logged to the log level -set by :func:`log_level`. - -It is also possible to enable ``debug`` logging level for particular requests, -with :ref:`policies ` or as :ref:`an HTTP service `. - -Less verbose logging for DNSSEC validation errors can be enabled by using :ref:`mod-bogus_log` module. - -.. py:function:: log_level([level]) - - :param: string ``'crit'``, ``'err'``, ``'warning'``, ``'notice'``, - ``'info'`` or ``'debug'`` - :return: string Current logging level. - - Pass a string to set the global logging level. - - .. py:function:: verbose([true | false]) - - .. deprecated:: 5.4.0 - Use :func:`log_level` instead. - - :param: ``true`` enable ``debug`` level, ``false`` switch to default level (``notice``). - :return: boolean ``true`` when ``debug`` level is enabled. - - Toggle between ``debug`` and ``notice`` log level. Use only for debugging purposes. - On busy systems verbose logging can produce several MB of logs per - second and will slow down operation. - -.. py:function:: log_target(target) - - :param: string ``'syslog'``, ``'stderr'``, ``'stdout'`` - :return: string Current logging target. - - Knot Resolver logs to standard error stream by default, - but typical systemd units change that to ``'syslog'``. - That setting logs directly through systemd's facilities - (if available) to preserve more meta-data. - -.. py:function:: log_groups([table]) - - :param: table of string(s) representing :ref:`log groups ` - :return: table of string with currently set log groups - - Use to turn-on debug logging for the selected groups regardless of the global - log level. Calling with no argument lists the currently active log groups. To - remove all log groups, call the function with an empty table. - - .. code-block:: lua - - log_groups({'io', 'tls'} -- turn on debug logging for io and tls groups - log_groups() -- list active log groups - log_groups({}) -- remove all log groups - -Various statistics for monitoring purposes are available in :ref:`mod-stats` module, including export to central systems like Graphite, Metronome, InfluxDB, or Prometheus format. - -Resolver :ref:`mod-watchdog` is tool to detect and recover from potential bugs that cause the resolver to stop responding properly to queries. - -Additional monitoring and debugging methods are described below. If none of these options fits your deployment or if you have special needs you can configure your own checks and exports using :ref:`async-events`. - -.. toctree:: - :maxdepth: 1 - - modules-bogus_log - modules-stats - daemon-bindings-worker - modules-nsid - modules-http-trace - modules-watchdog - modules-dnstap - modules-ta_sentinel - modules-ta_signal_query - modules-detect_time_skew - modules-detect_time_jump diff --git a/doc/dev/config-lua-network.rst b/doc/dev/config-lua-network.rst deleted file mode 100644 index 241b67ff7..000000000 --- a/doc/dev/config-lua-network.rst +++ /dev/null @@ -1,63 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _config-lua-network: - -************************ -Networking and protocols -************************ - -This section describes configuration of network interfaces -and protocols. Please keep in mind that DNS resolvers act -as *DNS server* and *DNS client* at the same time, -and that these roles require different configuration. - -This picture illustrates different actors involved DNS resolution process, -supported protocols, and clarifies what we call *server configuration* -and *client configuration*. - -.. image:: ../server_terminology.svg - -*Attribution: Icons by Bernar Novalyi from the Noun Project* - -For *resolver's clients* the resolver itself acts as a DNS server. - -After receiving a query the resolver will attempt to find -answer in its cache. If the data requested by resolver's -client is not available in resolver's cache (so-called *cache-miss*) -the resolver will attempt to obtain the data from servers *upstream* -(closer to the source of information), so at this point the resolver -itself acts like a DNS client and will send DNS query to other servers. - -By default the Knot Resolver works in recursive mode, i.e. -the resolver will contact authoritative servers on the Internet. -Optionally it can be configured in forwarding mode, -where cache-miss queries are *forwarded to another DNS resolver* -for processing. - -Server (communication with clients) -=================================== - -.. toctree:: - :maxdepth: 2 - - daemon-bindings-net_server - daemon-bindings-net_tlssrv - modules-http - -Client (retrieving answers from servers) -======================================== - -Following chapters describe basic configuration of how resolver retrieves data from other *(upstream)* servers. Data processing is also affected by configured policies, see chapter :ref:`policies` for more advanced usage. - -.. toctree:: - :maxdepth: 2 - - daemon-bindings-net_client - -DNS protocol tweaks -=================== - -.. toctree:: - :maxdepth: 2 - - daemon-bindings-net_dns_tweaks diff --git a/doc/dev/config-lua-overview.rst b/doc/dev/config-lua-overview.rst deleted file mode 100644 index c710f90ac..000000000 --- a/doc/dev/config-lua-overview.rst +++ /dev/null @@ -1,89 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _config-lua-syntax: - -Syntax -====== - -The configuration file syntax allows you to specify different kinds of data: - - - ``group.option = 123456`` - - ``group.option = "string value"`` - - ``group.command(123456, "string value")`` - - ``group.command({ key1 = "value1", key2 = 222, key3 = "third value" })`` - - ``globalcommand(a_parameter_1, a_parameter_2, a_parameter_3, etc)`` - - ``-- any text after -- sign is ignored till end of line`` - -Following **configuration file snippet** starts listening for unencrypted and also encrypted DNS queries on IP address 192.0.2.1, and sets cache size. - -.. code-block:: lua - - -- this is a comment: listen for unencrypted queries - net.listen('192.0.2.1') - -- another comment: listen for queries encrypted using TLS on port 853 - net.listen('192.0.2.1', 853, { kind = 'tls' }) - -- 10 MB cache is suitable for a very small deployment - cache.size = 10 * MB - -.. tip:: - When copy&pasting examples from this manual please pay close - attention to brackets and also line ordering - order of lines matters. - - The configuration language is in fact Lua script, so you can use full power - of this programming language. See article - `Learn Lua in 15 minutes`_ for a syntax overview. - -When you modify configuration file on disk restart resolver process to get -changes into effect. See chapter :ref:`systemd-zero-downtime-restarts` if even short -outages are not acceptable for your deployment. - -.. [#] If you decide to run binary ``/usr/sbin/kresd`` manually (instead of - using systemd) do not forget to specify ``-c`` option with path to - configuration file, otherwise ``kresd`` will read file named ``config`` from - its current working directory. - -Documentation Conventions -========================= - -Besides text configuration file, Knot Resolver also supports interactive and dynamic configuration using scripts or external systems, which is described in chapter :ref:`runtime-cfg`. Through this manual we present examples for both usage types - static configuration in a text file (see above) and also the interactive mode. - -The **interactive prompt** is denoted by ``>``, so all examples starting with ``>`` character are transcripts of user (or script) interaction with Knot Resolver and resolver's responses. For example: - -.. code-block:: lua - - > -- this is a comment entered into interactive prompt - > -- comments have no effect here - > -- the next line shows a command entered interactively and its output - > log_level() - 'notice' - > -- the previous line without > character is output from log_level() command - -Following example demonstrates how to interactively list all currently loaded modules, and includes multi-line output: - -.. code-block:: lua - - > modules.list() - { - 'iterate', - 'validate', - 'cache', - 'ta_update', - 'ta_signal_query', - 'policy', - 'priming', - 'detect_time_skew', - 'detect_time_jump', - 'ta_sentinel', - 'edns_keepalive', - 'refuse_nord', - 'watchdog', - } - - -Before we dive into configuring features, let us explain modularization basics. - -.. include:: ../../daemon/bindings/modules.rst - -Now you know what configuration file to modify, how to read examples and what modules are so you are ready for a real configuration work! - -.. _`Learn Lua in 15 minutes`: http://tylerneylon.com/a/learn-lua/ \ No newline at end of file diff --git a/doc/dev/config-lua-performance.rst b/doc/dev/config-lua-performance.rst deleted file mode 100644 index 5f273a71f..000000000 --- a/doc/dev/config-lua-performance.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _config-lua-performance: - -************************** -Performance and resiliency -************************** - -For DNS resolvers, the most important parameter from performance perspective -is cache hit rate, i.e. percentage of queries answered from resolver's cache. -Generally the higher cache hit rate the better. - -Performance tunning should start with cache :ref:`cache_sizing` -and :ref:`cache_persistence`. - -It is also recommended to run :ref:`systemd-multiple-instances` (even on a -single machine!) because it allows to utilize multiple CPU threads and -increases overall resiliency. - -Other features described in this section can be used for fine-tunning -performance and resiliency of the resolver but generally have much smaller -impact than cache settings and number of instances. - -.. toctree:: - :maxdepth: 1 - - daemon-bindings-cache - systemd-multiinst - cache-prefetch - modules-prefill - modules-serve_stale - modules-rfc7706 - modules-priming - modules-edns_keepalive - daemon-bindings-net_xdpsrv diff --git a/doc/dev/config-lua-policy.rst b/doc/dev/config-lua-policy.rst deleted file mode 100644 index 2b34a541d..000000000 --- a/doc/dev/config-lua-policy.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _policies: - -***************************************** -Policy, access control, data manipulation -***************************************** - -Features in this section allow to configure what clients can get access to what -DNS data, i.e. DNS data filtering and manipulation. - -:ref:`mod-policy` specify global policies applicable to all requests, -e.g. for blocking access to particular domain. :ref:`mod-view` allow -to specify per-client policies, e.g. block or unblock access -to a domain only for subset of clients. - -It is also possible to modify data returned to clients, either by providing -:ref:`mod-hints` (answers with statically configured IP addresses), -:ref:`mod-dns64` translation, or :ref:`mod-renumber`. - -Additional modules offer protection against various DNS-based attacks, -see :ref:`mod-rebinding` and :ref:`mod-refuse_nord`. - -At the very end, module :ref:`mod-daf` provides HTTP API for run-time policy -modification, and generally just offers different interface for previously -mentioned features. - - -.. toctree:: - :maxdepth: 1 - - modules-policy - modules-view - modules-hints - modules-dns64 - modules-renumber - config-answer-reordering - modules-rebinding - modules-refuse_nord - modules-daf - diff --git a/doc/dev/daemon-bindings-cache.rst b/doc/dev/daemon-bindings-cache.rst deleted file mode 120000 index 99af6dfad..000000000 --- a/doc/dev/daemon-bindings-cache.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/bindings/cache.rst \ No newline at end of file diff --git a/doc/dev/daemon-bindings-net_client.rst b/doc/dev/daemon-bindings-net_client.rst deleted file mode 120000 index 1a4e688c4..000000000 --- a/doc/dev/daemon-bindings-net_client.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/bindings/net_client.rst \ No newline at end of file diff --git a/doc/dev/daemon-bindings-net_dns_tweaks.rst b/doc/dev/daemon-bindings-net_dns_tweaks.rst deleted file mode 120000 index 223686e29..000000000 --- a/doc/dev/daemon-bindings-net_dns_tweaks.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/bindings/net_dns_tweaks.rst \ No newline at end of file diff --git a/doc/dev/daemon-bindings-net_server.rst b/doc/dev/daemon-bindings-net_server.rst deleted file mode 120000 index b8eb02591..000000000 --- a/doc/dev/daemon-bindings-net_server.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/bindings/net_server.rst \ No newline at end of file diff --git a/doc/dev/daemon-bindings-net_tlssrv.rst b/doc/dev/daemon-bindings-net_tlssrv.rst deleted file mode 120000 index 4b2af0f8d..000000000 --- a/doc/dev/daemon-bindings-net_tlssrv.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/bindings/net_tlssrv.rst \ No newline at end of file diff --git a/doc/dev/daemon-bindings-net_xdpsrv.rst b/doc/dev/daemon-bindings-net_xdpsrv.rst deleted file mode 120000 index e92e0cacc..000000000 --- a/doc/dev/daemon-bindings-net_xdpsrv.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/bindings/net_xdpsrv.rst \ No newline at end of file diff --git a/doc/dev/daemon-bindings-worker.rst b/doc/dev/daemon-bindings-worker.rst deleted file mode 120000 index f54f2da09..000000000 --- a/doc/dev/daemon-bindings-worker.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/bindings/worker.rst \ No newline at end of file diff --git a/doc/dev/daemon-scripting.rst b/doc/dev/daemon-scripting.rst deleted file mode 120000 index c8ba7ea5f..000000000 --- a/doc/dev/daemon-scripting.rst +++ /dev/null @@ -1 +0,0 @@ -../../daemon/scripting.rst \ No newline at end of file diff --git a/doc/dev/flowcharts/io_and_worker.dia b/doc/dev/flowcharts/io_and_worker.dia deleted file mode 100644 index 8c5a755563d374e7fafbaa5382afbaad43f21520..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 13771 zc-jHWH8jc}iwFP!000021MPinbK6Lg=6C)IggfHay$4rU)_X0tXJco2Hg4iJW;(We zKHPp$&=O?xnj$qMWw$3b?pNI}xL}QUw$|F=d=0jpYZ=5*0YNOe`C3! zSKq(+xZPg<(|6x}{`^@izHDaO)mkj(S7K9r_kU)K#q2v=^xd1^O^V{~2b|5eGkULi zcedTG=kKq!Rk561RNudOKRf;9!+LeKJbP2GYSx{u7OQpfX}0+O%{S-GpEut%AN1Y5 zPkQ9jFJ~XB_v>o*OZ$gQ{1fATAAVV_AAaz~CEG8TUoC0*9QyB_HO;CGE?R#0 z-8cVgzNs&%dE@r8c3o(zknP26{b9cRS`OZwMSUxj2udlu9X5t2z435;Po6LC{kY;5 zNc>)Cw!waE9Y)uNg$YpL7yRkgpI&FO4`kJw||>amOS`F6W{;`+~L zi%pje)NkLMw&$MQ59|5a;|KTNik43~`+|SZPqTg{pXX=Wk0-xo`bz3g|B~s`Kg~Du z_ls)R)z6pP!9M=WFdzT$2}m~L_SbtparLLQ8lkgL*~;!?gg#u&&#KK65A*#sEuZwU zS@zvi_x<6zp10;~zPVh?zC6B#hl^T1Yqs3ZQHRYo)!9IrrcG5YXP57`t9K9dL`F%g z_y4;(&8+`Fu0D6!(Ew6TSIZ@C2Vv;D%M~8i%`hUnK8p2Q4-jgSiVs<}Zm#tAx7f63 zv`up*MRWbLJ8#W!JD;v!-Fe>YFRpox|824QeEM;=-WKnQpR4u7d^uaZxr4~x6!Ww1 z-~2`1KMfCWA$}wxg0D_=x|8+&dZ(lCK8Et06w<^PgMWBnzrJ~GqTauMC}~Z5Uw&9r zx6(o*4M;#3g(C z^}W2YwNA(g%F63Ms)wwP)%?T9ZM!i1UgX_Bu%|FYjMY;c!>2;t{{uaQk>R{rfBj_K z_vxg(HK)%Laz0-yItY2_l|D}hX~B~n&hOL8@7ecjv;DHD9tx$;T2D6B zhO~F_Q;Vbih=FW-0$0oJt}CJUi*s~37GLm!XUol-B7M2^B{skMKdQy2YCAuj-ThXd ze+6G@kDXs)c{Wbg=pM@NN9n+2sj7&Y#|XJ0Z8Qm@RMvXJ3jL9@URk zac$~9&)3!atMl_}Jz1`bWmTOO+Z8&6mtSbvMNy%``TVh3SCh?lwXTZGs#^cUrodaY z#!sM6y8#Ww`Mg@3F?1LQI#^$#mlZ(=Mh{P;hhc1&>TSD>6bh6ogYY&4lhbyQC|8S; zC<<+t644ucY&7~TnQhk~`|M=9ynx_y8ZRT%ed86_c;z-;3tawb@&Vn_8$+`^D>n1L zSH1nIhWO?3KALh#?MO)Eyk?Xb7 ze4$Tu$AGb!%5J8t6xv%=0wUGm*@+s+O#Osf{%p2BLo4;~^JTTeOqu=xK=OZ8O2|s7 zbk+c%5|Yf6LO(`An38PmB9umipkYr9OF8$GYI*h*VW9g~+t$i-X(@Hq!9@*o-0dJS6Q>Mm>L?*^%tQ$*VK9Up zZU_YAEP>Y)%FPXc48-J?Td!&W1i{o<$v6f8+PTw~rBPicYdzy1KI*slC(BWPIwt4) zA9W|9cdAqfO`?oh&$<^om8U9MNBlrs97;=p0GQMd`xn^I}?O0?s!+E`(=Fi2QU>4w_obAw8c z7!pMp7i;lBs1}HgzOrQ%}2hAP4d9q%%!4&*XOSoQEVzI$b+>M%xA_jpE_$ z+-loerq&9Deq0IUXJzHg4YJ2hl(`_l zaf^kcV#zh^xRZt*hfmvbb9GU*vR>g9){YZtaD7ZNNSe^bt zFPaam)&-Toept`9U)bJ`VQ(X9h3SD=FKw8(6<557HlyTb2; zbj`Z@G_O8$XR++6rtN{{kkZH@rGXetZitY#0#&BcV3QL%8!Mdgx=cmTE>Or@dl^b2 zTm+q)&eXck9ZM}afQl~6Nb8u+bY%4^y$V(Ut?kQnJODq$S*HiPj;flxXWbjANs_l( z(^)r8H{PoXBb@b}``it^rO~xNulTGV+gaDW&boQ2)J^X~RBaLAQB4&HrCiRA2PDbV zlEAw-wbTH?#8O#-W64L*)3{ zSnU)b4uDueg01r_5HcfHO+YXTu;3D6wLaFiW#5i7&q1ua_t^q&sha}X+rS-4j}5V! zUWhfkkaMc!5YB0!x>UlA)@MHI3Lr^R)~BOxjHilN1#*O=zI&f7OI4r?1Gn#m@lik6 zqaOMkb*FM4^_Hxe>RnXll#o`bQliNXE@#^8RuUNP?9@x4WAvp)9}D0$(5#cQF;C9M z-Ne~Nn#)sdXY)mM_AUA$tvP=7FLL`At&cM&)ebPJ*0FS0^)4pyh73KFsU3MvCFiw> zwID!2Qy+zkGE$~%Z@Gt1I6TDt>sB{xr4QOe2uj-!vrcj4x?!#x=DK078$LJ?K&Dkq@O6(#nu~rcvuYcP~|%u1iX1If-&)6ODR}G*UJ@!|%r#Rk&1()ra-$V%M4P zU4-Pkh&}>6;U+-VbP7sRX>cooGqBTOg^NL#QRuk0woU z&Pw70BFH^mT`kUv_rw=OoSf?8CT~~g1^#ncTrJP%%Q=1zXWte-{Q0Ni0>#ZfR2#;` zW5mZm`_c)B8aP5W9wv4JU}7JoPgcs?+?W`AvWJFdv=Amv?IBX+#OKGvyZ5QW)L1%3=Mj;HT6iK2%sVRh^(8>V*?ac@gjGfzTd6=V0*QNFit#Ab6U?Uh0 zV-WgzO?tu$6-Vjbb&$b}kUBvI$l12zS_}jir`Io{HsHhfmLUb(GTROsJ=DIo~0fa9sd`?>!)|L~u) z4-dTE8wlLHa<={g^%(X>qr*u&XBWMjlH5?sReM{T)q4B!pKg zFR5(g>vhlG;%Ys=|ENA$;MnpAxBuRAu4#6)U7=~(RdzL0#S%OA1332jLHAwNhnWyY z>Taa<5CJ@|T%rcZ2)P4zPE&uOXhW<6crn(=n=nEEZ|62!0(f+tl+N;j19(Rk!1KK* zNG}$@>s^6E<~7iBO|F-UdBMxIB#=H%gF!G8La8*BiN1nB-k(=IMK*sdukCr{aNc2$ z{Aklqz3YV#5unq9Cfb9{%2&CT17OwE2kN1nUI(ZA;cKV=#bp&Ea1wSui>#YoZ|5}K zyI>xPfYU#!x1^qh&;N2yiu3ibftE&OOwQu!q`XxUYBRoD^CAGXM{RT*&ApQ8*z5gszMWKD+ZG>P`GnTGfmhF1+AD;>3XT=rKnf0?MR3)= zl^vUv_GWsQt>VFRwp39BrE(7Mype-q{FEjlBvMHf(eK-tgh?gG=Z^1s7MWD?DhY3< zfBmWvY7E_UBPZ!5^eaKVCf)Ss6|1HZlEjKt)6uA=-ldKpgRo#r5XOVfSr>FI2_Jgz zG)w`s@Kk{)oYDbaU0F5js@%G&_1R=?^?KR4rgteL09h}Z%d4Flkci7nR_N!1s>ewxl!VAH3Zv0ot!HlJ#byI+vTM6@YrJ>f zx)`0^cicrMXokDFKWfhLsJUYpH8=TXx!Rsw{<1yUPTm#E)$($--c)Ck`L?*gFJe=i z;c?Hrtk}+7vr()O1{g6{Gt!YC=evdsf`;uExgo$Ff!gMa>_rwIM5%wZi)( zNZOE)EP}lf-?fNn^CH>)TkHg64T8(N)nGPjj4^6|R~WZ6&W<$`raY+|7<1}vtZ-uHEzpma9}M$Je76$ zV*uQZLP;)q8CBrnk7I+%`4T@F|5Y@ROdbI_4z3Kk)cE|Hz#||tj2dnUSH%8I(I})% zJqDaNJ}XlcCCOTnGJXo+g$z&{5J4HA)z}QN$u7pm3p6y|dWBFK%?%jCskftwSj@No zuqkH6vie;7?W$UTna~)fv#Zl8y|tZfewqCD^v`vLKi_OmPPe~K-fpTY{jB)ofBe8< zj{N3`GT_D#j13Syo1<|jHCZ`?1C-nnBb?PSs{^E{)H6wvI!X&5e9ELS9rSnXrx+;ppLZpdp z#(OaNdGNAvnZiG16?hEgGX)QV7~(mpFG6(#wQBth_I z3OWe%B1Y}*1#Gh8P zi^=4CzC0^7tE=^C?f$aoo89x(i2i*VG@^rIg6PYs zDk+}=7~w&YWEYj@K5Ptf9(x|Sfyk?DcVzn)*JuzH3_TGVWLCn|wIqd#$vVVM3X!%a z$;N5mZfvZe9(f#DLA~A%N7fC|;V4Q~+90B~HgkicP)iCZX$s1s$kIW2`MTR1^}d6h z$B(KgW7N{R5T)bpM%>+qyBi${h~dGbqZNy}(n(?ODO-*ub8n+#>21`KJoZB{*sS!W zRU&%OnM-(#ttBbYsf0(x(pqY9nZ1Ok_Z~atj?vlH%Jv3G9nqM-uV}drJi9$l-001= zx@4<9idFZzv_@EPJWhP<3~?AD8$$%&x@^W~=0?YuBzbRaQwr`%gKB^8f}O71=$1`B zvXrdQ(@aJ8td(e5z41Kmi&M=brEFj5$hA$z+EMUu3WArWCf zg+|GltV*tJlaDMV)n#I5E!S~rQgepY9ILr;)ZB=Qs-+af$w5j%ys91TygBEjqC81* zUN$&PL!AZLm+bbuQjlHyY||$prJaKJTnchrpv3wwvh=NyL&x+~=vtEC{7S%nHng*kTu87KHVvii{2leCmLo7nrFKf>8#7(KgD+ zgH&I4Z>;6z)%JP_!6c2kDsG3WGN2d*P()QaVQn;y0mWFuu3Z0q4)oR8QVXM9R)#am zQBtEI9c=JZdL5OoEz7>`x4JWHcJH!fp*MJ0Dn`$vQjd&R<9dxsbuTq4)%9I`a!^C6PSn+a>GfjP!jkMLk%abYgE4<15WPR=Oa&ZGKWmmJ~lwv zYj~=A$>FK4e|@a+LVA}*S7ffsAW14oGG5l8l1j%EwGi+sFQ^<~lO3n0N(t8a2u4bT zd^#hj^a9WmwjPYOT5H(1pCV6B9Vlv9Y}bhOE?4XAWWFhW{=<(vOLZKi>3s=QM5TF_ z>Uc;q4udpR9aYF{dTiZ_0VOFfO@lORbKpk7nLBpbvNSXn(niLaM}{+d&4zN}g#wqp zf9)?KJ?T`bi~z`*pddkz1W9KRVFo@`g3X@ohz7Q5xx(a3oV22eqGucP9q zB6%_-)%8q<~4@2vW6 z8{m1M9R6$ze}+EcPcL7nADY)gD5hvAL#06F)=MPF3kN=;S^^QhBEi~O!{b01X+H8a za>ujcpr?Vhq+z`oBn=x}&BIao34f6!Ijia{tkcxB#@jKnu)8+d=8C1uaxroimSM=< z7R>6!aL52v=on9UNX^?x!4NaN<#QZ02Xv$FLNhlMH zK)9P4nm(W_FawGiP`{0aroMksrKk9hF0GIXKxg$+qi|N2MnsR25cmb*V@X{=_ZHj{ znhmkXF361dUEbVwG_^U)`3W(%sa)=8`U*?A@b4?s0)Jbdq#jhw%ccj_$?5jj3HLW0 z8DA*sZwk%4iE3@t+R)ZsKrYo;XGDX1-t$=>0#ZJ#Ym zO-RO9?#rHGlFGs6S^9Bh;|sM42>t6ey~iVt*N<(BAbhs3FXZ zcab{71Ta3cnemV$d1pMD8GKlEsg%n4K{_YFqs$l}WVA6xcxknkGT0De z1gW{@;S1TE?~5P*<1at_^$&mKCWqt1F1#r%aPcjp??isw8A)g zsP@+05G#_^>Bp+k(*BsnI@ z9(o<_4$7%zlaDL~;VnE(FN*%_rGslHctkr%)=o#QogOF{HCDK9fci=$ob;tO0u1EU zER7^BtZ@|8*TSTp>@pht8hYtW*on%Y9&C9WIp}xT-E`U%RR1cV2xz}UY6cT*)+(S| zN$4kOgg#1W4fHx{AGql#YpBPbN7hgWo|b55;YB$N3s0rdIo7J|EWBEhq}HRv!c)35 zh;TvL{6xH-n`9y$6Y<)Kct8B*&wnib>%WSB``17HJG1e|VdFVZ6TY-mJaRY#_j`9T zJoYayiaNE#*G@R?vW_ApNh(RQ!P%4y*DjViihB&s9J%lT_Si8Ou8mh9gNYvfP8GPi z=%~`-sgd6~bt#+wz2a>6SlMt_TNbIme8~6gxmAjqY~HO?mN}hC+H{?6gL9 zNwRVK7L#;8>TUaMft)u>6(9BEI_j}k*Y60~yHPw6q%?yBDbd_oKs*S!J5o5CBzX%i z1u3b7*P;t)UCbV&?7K-0QgV>;Yaeore%$41T_0PDR{r&eA2~=lPLL9GNpp5gD$I9sJ z2=kF~4bcrTu0ca6ofpce%)=T~EeMQCqZ+hvrI+;bb&qQ3d;hwCSBp+=P*KLHrFEfS z>oy+Lz=IliP{WX}1{yQ=D@O4vf+}4Q!ElC(r!*Yll!g}e$sjWXZE1s0GA}3FlRrm- zz*k3Gk-0Q3Q8<1Gx_%T=?T^ z@ue+f7zRsH8EQwImq~9$sN>2Y4NQ|{N?Jv+cmIb=yfqyvo!j=<@-&C~BCRt|F7>+C z^>Ykxh!~)G5X4hmVu0%UxBUx^Jc#{k^@0;IKtfF>nFdL(PD5oJUBGZ!iMo>`pkeFU>p{;hr=gO3#($x>en@r z2-BFD{5l&wNp@l1f;H~raD-u^ozElpaX9QwGmk=y{>4wX5YdCr-Dr=pkATM8q?vtM zrevfunE}S`9X^^M-TRstGYo+lVy~(Nm%Bje(IcscKn{K5nw_f_j5p~>D(R;~JpWw- z!n?P~XYz2*q(AI4*^1=N5FOd1jf9-ElO}UVwj@aj?`&-(Q`8qR8>sjidPXvkAEP1L z&c~5~{DC)Q`*F6OEf&>c^Mf!q_6*x+a-U~lW3|99p~cn zd|kc2IzO-0YzuSSLSsb?3VnMKg0VbZb+l4RkiAQ%j6;KAeKHt6=4{4+PYJ4U6y$;n zVTyt^J}zaT%E^6Eb>~va)@|-yYE+;LlZIPy9GL@6=&nzxq<+z;R&NHq#{=NKrD-S9 z*_@H)pebVHO9;X$7p74OgE)>P<9Cpi=-9f+ub1LgfdQ448qiNI)u698#Ao=$&am1m z2zH&#*7@7%JndrkCMr(q( z7dxMa>wJbj&ZqJ(k6fWYof_~kI-rTw%K5Bi+$0HVN#OMqR79MYhA27kI%~Pk5S#2& zuA@ZIUU}!Oi_zK4{UBAm_a`uNJrd+PsqyOM6z}^f^}Lub3q-M}>-lz$TdGibt~Zmn zA7<IP7zyays{C~st^3>!-XPXXBk(w6_U`U`cjl#f8-N?)v`3d5ljuXteA*jH zI_QX}U5XeJF%C3vmomm~k3Nsw+~Bagl(nj;{-akEjZQD|zgF)%IlZHXss$+#jfN>G zBZAQ+*zFxh;pQvHrk{2{jI5qsd+!zKKgoljjj^S1=+Bs}X)&O_%t?~*#-OV5!e~`e z4;F7sUJAwlo9q(FjzSXe!swvDOB;I)rFtrojmNoFkubgZH8x|xyNi0@Z|gL0VA8x? zSAV;zHrtca?XQzt0y108QMew6>W!x+^W3IoM6O31gzMpaKil#QvPVdgQ191d53*_q z$UWFG$R4})*|O9_x-bRI_BgtDV6R#^djPd^s(-DViNa|^yn1h9)>=7~WJ8kVBBcQ= zS_u`1rf*`*%O@UUlZV$xkh?q_Gni$#njNmv7_1&FSXI5s-aO>aUAG?f{v~fT z8Ul0~g!T8TlQYb&(WzF2`tQjY)1VCNLJ2Z8P04-M+xFSA6c0OHnDWe2IkLm$QAIPEYT7Rbo7(qqt;|+a*U?3~hMMG?>Y^bMwTklE>6y@}zBr$euvpwHI7bd~+SwFUnrS3IJ z{J~k5gXb`Qzxs9OQTIb+F2M9m8+J}z$XH8KL8U?BD(Vt6kpO(|+(qwAc1m6t+@iVD z5#DBvvqbIh3RADVN9U`cy{#^b*m>mz!EWYNIAN zBc?a<0=6Oc*>O^kaXBN8R>W7-n&vnnkK5DB6MURMz5RA_HrvjM*#b9k_T_r^n#ZDqbKZduWj<*Ha#6%n7&gS`Agzk5+ssE0m(tkz6>9tSE!Q#vc$ z5q4`k1ln_(rRrVB`_4!atv03gG<+v(*usF2vKFO+p}2)gwJN0p5u(f5f?}9`cCu7K zICm$sAR%k9j|BzBLX=(^6CkkF%5Ak4xct-P1G=P5?M*RTo)w$<-z%!eIbT<3xzJ~= ziuv-|giYS!x=XRsh!u?$OCPdb;Ty>oqA{Cu%d~N97uD=oV(VC@(2i)ldRL~ub53|d z9%NCh%<5*Lr~r*9)alcAhDPK88ZT-M(X066Y2!7>KD!t%g>F{#R*n)Fw*t+Uh2U-U z#s+PHjaP2tRj1uf(0ZZSLBDH$e&c3cQ4#6S|Nc{1tgG$SdbugmBUqQ6-nU%u{@aJ` zlsvZ+{FHK%{H&r{p03W&4NKC#aP;C+#E_XFR$ z)m>`|)T>BqJve_rM}D(KXDZjBzw_bwj{RLBLmhlpj5!pe?pG$JUrsUFL6DHKu3t>L zI}!q4hriMPO-P6up*Go6KL!%oxz(1n)UTw@GAqVHeB|#PdHG^T-VJi(1Jry8aJf&s z_JKs%c{TLw)q5 z&wA{QFpVgKqNeXuK#S{5=}mg$H8b{yxQpG|eWCM+y3>NQ3akvCDf>*>XUaae`}&QM z74T2#wSartmUAr3%0H5RUu_evb?<`gcS_QvX((yvxiK*(f#HU}#{# z;j8n1EH?AyX;oaET{iVsn}-SZ$>)#wgcU#h`KRKd+H7VYD$3)pt75(>?l7`1a4oH$ zTvqFM*HnW$dHmE-g2XgG6E{U(iDW=4iDW>{DXwOV#h02lkh)!eUafz@552qWnn>5e zCZKDZ-T&e44-u39xvn;6#b)-Y+T7pcs%ZHgq5)1W*Q?XI9rt`&yqPbH)slYa>h$9q zQT$AeGcNE{;^lvwZHvzpI#!>m>)SQK<#-D>4Fhm?PV@-8H7CT1fBS8L$8dq)#WjP1 zNe%f8ZmY&P4ukt!9z?DOsQ9-u0x*_FgrL018bUx(wicyP)byS5DBFe7iKzFM-POq- zVxNaMzmex+ylN`rvf7d%PR5c=;TXQBSAi6c^xiYSZ#;gVkwc`oytI+5g$fFC=eUe9 zC@Odls^Ryc^$5Z{spAMauH9R0ji&^))RucB8t5%LO{{v(xozvne(eeniwb|BA{A2Nr?dhHP#{B#?P%^6vE*>eJxKl+)MHmwbzu?AG%^`lw@@DyU zy#qc2Hw`?mYb7Rsx|X?I)e`T5r<;#BU0u#AszO}P2!qrgg}*m>@NtZ`#t1y@KEE7z zcybMSp$rK!UNux(DQ$97yfccE&dSr|Jf(^MlmYS?8T3FJdFeXg5_xNbBmh z*!#*oh>^Mj+`n!V+Yp@6L4h;cYRwaMnPSTn+kB||`AwgiSPt#P>9BmI2I*~qW1K}Zd*s*;u zq7S1C`C&w4F&UjO+{-I!de5ndr)POK{f6(Q_a|?!8|zndVgV4PV7sU*IfzPtNc4V! z|6BGlvU?eb3N!%-Bi!APFMAn7<>7yr&n{M|i+0(&{v)QT@w!ZX!erK2e<;W}5=0d! zYD&p>k0{q^;eBR~v zt44^Z?A+(>rGXlHqD>6Oazy3WA}X$5L?wS~s+NfsrgupxSmBK|rI$3(IqT4PODw7+ z$wXzR%He6Jes4-RZL^NE7-W;3pd|{>exy-MRQ9A1$2tWOvFzRr!+DxTcPQC(TPW_< zUDP2A29=|L%DQ!>w~;aBXqeLWE(fKrPDRt`dYc(jMoofjsFQRCsDBlW{_!?9q-@*f z?xoH`x-i2O%;STU{YE|52NX;-Dg)EP01QkWZS41WcY~Eds78`RNmHdo&;~U?NUvWt z3A6t#cNOsj@)@4)&dNvtxvcUIMsl&@0; z-sw8Br(p#DZs$JRf)!1)Gf$%*#s1w3`ggux${@Z}%E0z6sZ~})DFdAX2qq`@5+w!O zNJ5`(s+}-e>(b#BXp@zUGRP)7rVLEzm6JHG_7BIAC#ZWP)ojS~_3EM-XPxMelY0%5 zID;@A%GV&kC@7tw0l=D3{@^KuA6JVntvJ&Rf-`Gck@hBM7b2oPDzHhCa(0SOj)_sx zlVkU`JePQLPP&22U7OtfJS#BuQg5GH+C2LEZ-AlW%RxtVlN!*uyF@;Eh;N)es0Ns`uq4lzXKN*9EKeFM+k4sq)ycQ1tqbX5>^2d6U9Qe_QKEPla5{M9Mc z&pX5qJG6||>DBhGyz{~tFLi06PGHH2yNXU(e2TVM8G5C_+nJ@9uKPl)nX~3}~`8bGbQ0SL`mpBdNmy%>Kc#e3w+25`~XiVgw(0UC_Q}_rHIm{R>0P0XC<_6 zwPme}HgzeE{*anOjS8$d2sTI%tRD%&nHM8L^dH3;tpHF!#me3*msP)@sNj<*hi4W& zOD{~&l=g{11e)Rt>+39I@x#iI7NS=zeK>Fx@-v;(nh6<9l*fH0CP-k>PS#62v7G-8T<`8>^Bnr(I z*)e>>k!(k7UYFO94YAKIhAfJ3Pu+vg%k8slx{j@gZPk^oFxiWI-lEz^i<>FgtO52kUH8L7r`iGf}LA!(<(C6qd02=`;hEI z?(aiB<^*=}A=OKf37i>*OkkiP3}xpMM5y^cp`j9_N#H(c$WJBcxk+Xca5`pmCc$E{ zI-TJ!G#MFoSH@u!_|iHN9`w;=ZzV5Qwgcr`l0}gLvZq_LBT-H_v|9*@xN5=pk+Lmc zZ}bs{OfME417!xvJ884}d99^m-`3Lg>&5I#wf^0teu4j|S+BpF{D1p=K65+20{|ib BCnNv> diff --git a/doc/dev/flowcharts/task_ERD.dia b/doc/dev/flowcharts/task_ERD.dia deleted file mode 100644 index 2bc065b83c1c3fadd556f945a585259654a0d8f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 2700 zc-n1_c{mde1IOiPjv;d=jK(MtDVf`xm8;xGMp$XcopTgJ!{%6wkRy>yB~0#Hjxb7& zFq6#>>*q?&-uL&s$Me3=`+h&q^L;+g_ph%smXqbLu(GYYxdqV3!ZAhe9uIFznjC_9 zhUKx$daUxr9+q`xt-(xcX}VH`oTm70aa+rTDahp=$_ez1xOBSz#+tP@q$eumht4Dg zrx)YKQEDm)jTM?pR}JbtEBUE3QCc~m4}EyNO3*l7VRqqo+>a2kPv1JH4GDN;wlqoV zm96Y2t**X&2^B&K5=>ON4|%U`@1X5YRoowEL`Ls=s86pWif|MOb`F%6Ah{CM&r{J6+Wyl1i_p5sJRZAZ>*13X4?SYaaU+ znAylZB%*btTB?@3JFX5>J&qEF_{m#GAA0)HotbJsMf-TeYmDJ4*y_FcA{QMwt7F-i z+}OI1Yft7Ho<^d#1<@i5cxI3f1y={G^Nw<#qIZP+VhYDTQ_rqBgPgfMH2$#1~FA^9%`Zvan2*u9sFUIT= zp-QsGwdmDG?_+dw;q=g5mh1>2j1R1rx5e4C*EP!nJmcT9So$O>uQbo1oEB83*S23? zn&~%?kvgzZRe;MTexhwP6&&4uMh=qxecq00*n=JW%*c|?E4}?JkoM#NJF|gA&YyZ! zg^axPNq;zZ%UDShC)+0&WXKhiJXjUx>|QIMJN5br2ziSyCtf*&6QrzRCT2d=oo3+E zEhudg9$JLi3SElEcEh~ zAG)?SwNPaL>?sEK7AJ>G9N4)XCzZj8&|3u5e=kkFZn+ixLmg_nm;~L#g@1F!i zWUn@LNOhjc(zXq245h!hR|v@GmfeiEv5e=Jv5mz=_eUlU%m!5)HXY|NM`e^(M%S+= zozWz9^(T-y@A%#_mFe&JDlFJ3&{x>3iei|d=6Ei#H{xR~IS+0X-=bv`hJ#(guBp&(c7`wyvZT>mZkD~nGK-k6fNs=VJ&c8|` zoBPn4Oi3E~nYcB;LzNcMd(FYr-4;H);zppA3e(Y7hXcr%X2kOAEdN=%!SAhunhY)*1BBC$xU~+rfd1P zZSIeIv-eV`q&q*4*u43r&2y;N1nPrv*HUGEyOmTIhh= z-6X6;U|{@xTH4QI@85byBf=|jWs?eFujyqDQR-l3t*J^Vjk}=KG#%pxV zd~FSsM{_533g1BqD3+ZDzCX#e`Jwu zI+)5^&sHB?z7FZ-Dq5|So-;-0A@smvEjk@$d|)vynk9WV0@7KI@WPv6Y-h=;qN!&( zp{Zai&Y4J?-Pse)_KHbGNv#6Vn|3C9WT= z(bZjvdmJdh-=VLmB+F%NY>6PW5!&Fqww3@gg5n_WIhA#D>t*fD92cP!$DiQt#d}r$ z$Em30+=erng@b1(sa8s=qDzbB4a$DE%qdV)3#)= z%1GzC#Hkd02x|tXk?eoS+y^r+C8fE}f>E#opz(u7ZdGYaaHvye3P_VGRia$)MDfEj zE`fR%O=OdTWT2#C$JFYlA^d6|uPAEyvMPG+N~se7kYwt3$gl%Yfreq1gfO0`N~ne4 ziys3ey%=CPKpfUTYJg!5doxJ$0VeS~t!^jbnPyHCeVo2qVdB7u5`E9Y=NjFPg!~p{ za^$1wAqAk?#{d#1LoJ-Fb5oa_>!jI5{YNK2Ks+Ljoed%e?qK=%WX;Mhr~l8gwfed- z$E79e(L4JZhS3z7x$(8JKZ67GU1%PWk}Pyp<;0>}hKu|fCKr;;Vu0cM-;e*AvRPuP h#1j`|p4Y=#53HM2^#&cQnYxGkiz^pyE_`EQ`5QGy9k~Di diff --git a/doc/dev/flowcharts/tcp_task.dia b/doc/dev/flowcharts/tcp_task.dia deleted file mode 100644 index 6ad58f3a130162b4cf74209e91e3d19d1f2812ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 10812 zc-jFxD#O(uiwFP!000021MPiXb0f)(?Yn*jqy2Elj+&eVGLawVjvec;9qR~RdtyDi z5q?szTcsB7P@dG-ApQ2NcJzIwMjn_s>E{>^{=_~&oKo8SNL?Ypzh zW;K6%v#BRnv&;JXH*aU}etN%J-dvr%X|CE{_injZt|mXv7T>@5)%o_%oA0(?^xeI0 zdgR-$XYcE`t9tfR`}`P z?pObAf7RU5_KnZqwd+P(g={WotM~J(FXiylSu~FVRX{|3927&;-g>xwCeIi5c3g3b zamB616*pg>UN2Xh)oi}`Qsmp^a#7E&8mXJrO})RI^}E@Ex7cIL>amLR`DU|x;{MNP zi*=U;G;e>>w&!Z@`_=sHamBrNMa#FGedNFA@3Q_%KFrTH7pK2u`js@_{xQ?H|2$vM z-!AH1cR#<{4EFUOhxz)4J0SUp&mZr(7mJ#$ezJWlj&Vc~n|O2i}^>C}S+Rhl={;Lu-@s_U%J4D_Qf^`$hdg6e@2b zxG5=?=xt>c2Iuw^y^#m=gmr#!P1{yWkon$q5771I-Sz2aw*KjKy{WHHT9Ec5JG>3+ zEUz}Z#LD}Vb4Cq|k9>EttM!}7dh=2C5JzIoNB^T<{9JG5?`C(m`}6PMqMpCM*m)11 zeY;jc-~VI#3BA8DpSL;pk$2y#J`&(*{n@wfCyKqw`>V@(_pi0Sy1Cr0ucMTmhU$50 z@^iYShl=v~R?HLH*Sy(Sr#5r-=f(2FyNlUslkC;%a(*>i?66tT*Jc4K9h_%7fzlWdp{?KSZ3v$W`F@zKW{X9=SW1|D2lweM?!&&g z&nqN$>Qzvvou`brk0t3w5)ez8qEXJcicu4h3ps(=AZzRb%)oI>h3Hv`i_sB6MqtJf ze!TZ595TXKU(~bJY1$6$OY%A!j-bQG4gB{F8-f2>rF_WAhxw|0dvktXuO^%2X{st4|m8)%(Yj5!6@2lj)9*5>>C?F>>;Pfze{AL3(7jmdXzB00y_n)EXVhXh@U<_@b@t~ z9&(g=EP>?mdNNxqwgnNB`I2MDwdmmbghNUB$*1sfa?YW~=3>5{NYGg#$T70k$s0Qr zT!|lti65VKIj*nEAw||noelrPxSY6>qq4Y_WEtX3`EQORZG};em$N2H2U%n%zY~?i z0gm-Lxgf*%yiLiA3(Dkz>e=eu1^blM`+75(U$Kj+C%3uFPtNGW#hfpit?J2#*<4Pa zk~jK{I#0e?ESEo}H@BZj|873EeMeo_^=k6{_n&03C*z0z>*C7BaAhQh$tf2g6lXS8 zGSm-|Bw^g&1TvN~CrQXAL100WB+h$RaUkV9gb|V?JD0ipQXNCOF$7z(B*&E{p*~rX zm?al_7qk9xKD%6|8uy2)9{Qi}gC!d)11cigtmpeWZY2eeHl6QVLzQuiTdmD|z(2qu zJ09>`8#G67nj+g46SE%hOO+=-JMU~T5NvqmxYdv$`uyyCJbWDcAG39WuD9^>ZCwin z<;VE@0x-t_m@cvfVNLMH7JxZcwj}oVI&!d_P+ne-gN+mvZ$qAA5#$$nT}{uGb#^m3 zv-0dG2PvyADUoLo-J1Nw_mlJaYQ358npW&oCg-c=<-P34r__9LFk?6v4OAgRRw&h6 zqa`pv50SxObe!xxM3*^(;dPQkE;cEQXhM@CAEV4;=Q7(4mbRw`rOe~V5*V>h0>iyf zF&DrPYECgWXJ15_t2Q-al4QuHaxSFMq!bK|pyxZ+*%B0yZPF~JWGatL(On-!57{%7 zyW>UZO+)$?#d{g7$SVNI88wQiuoa~p_-SB|NiI|r)9akk<1owYSlN}gu&acSFW4(( zdt83{S)act2j1DkMWeJ0z=k3yq`Uc_5-$!EFaEGxd~5@ggHV7{I$0RwA?HyTM{C}q z2nx}fX*!;ArXmziv!|W8=0|hd2}tf-(M^q4p7^x|Wi-01Y_uU3d2qCV!c03b zTEN!v)MuXw0;T@{fZY~)4sXRQu+~Oj$ZX@LL)r#^SA`BjIm`bvu zhXN$W%t4|a0!(h>0B4QKT;Gq*izKqqPn*O-kdh`soizv9y2zHct`X8*#u%TxG}wL% zDEM#)eCT@>Wzh@aL+s7YK~x@0gPm;FqAcORxki$X!A}jUm|n;9IwwFJWRV>KBHSP7 zQLy51V#UkZPj$hGqbD4b77I=+C064l91(}Wh+Ybvg7Rn~Z^F?!Ln6s}<0at;!Nb<{ zhY=EvJJ-4UQj~i9<12 zhf{k~)Z|weWbRvX8=2{)0fkS>lBAwe=weQ0zNMxDF*8nWUFUAXwA=Ps2nD4c+2kqH z>sTCL9;NnY{}^F*Lqcy}XJ!8w>8{*JLhYvDrRTmECG3&??^c32#3BnsEfBRp)T23a z-yS@AphEi@526l2`SFx88wAnj?waY6f3hxw)J{+92BMOQBec`oxz3guA+c%5rT48s zC?NG1S{?+}l$3;HD$F<{g&8ci<5UP$|C?)!b%0DBse1$(Ne6&&;+ zP&)||TyV4ca#uWt7M>&Ie7;z85OTi#bI3tMdR_^ewtEo$g*m(vB4rCF2HFr~h8OJ5 zN@y|4L_zHV(0cO;6tI&}Yo&*(T%8^k- z)VOrxbB{l1TjkEfNU6zd^xT)}C&%W}@v!y$N6999nW;6WXy(=(DhT!bsXJYi}(6$6{yGo7_M_fo7M6Voh|;J~1pwHs)G`ORaM|zG1kzDq}xK8T$!nD=ED& zRC*VeYUd-Vc79G12Gg75MqWihEeu}R!{@A#Vo8A-Nyw6>j+6$7m9+N9ed{ngLbD+j z*#(+;rHQmht-Z0syD!Dy8#fzDjqj1w_!`%z z#@D=9Eq@$B(~Y*>B?VTj<4fFl{#W6W>o;7$gUizMxB3hp4_79*Jvg1epT zY`HX0x-sp`SoCA#YTG`+9fwyh!_~IEnULNq?|hVcRrHXv>-%R(+90@T@GO!z98%uL zeH$8;@z`Gvq-))(rBwFymde`Rbjc7@AT(0wnHQ_DAm0dLXhPFSie$hdDQEW`TX+a* zsUe^l`2`Oudhnh_U4}l#}JHsuUDmDc1%nmNptC7PIoOuK^2)#T6#AskYAnkQpOs6&T`o(Syqc8$ao(y%6S5*g)lZVXdPmaoj@z9=&b__KoCIh+rPgPXceklAY|j^ZIFupg9fb~ zaHS!`NWnw~`v$%7@zspP{Xgr;V!qx?mgf_}o9mNp+nUKagOfGeIsW&_d_AczuQwlm zU$EyG*wZkO0H-{;Le?4&d-@@;Ct}#`BD!I%eIm*_-WLVKg9|e7h>=^ zq30lr>;yf7V$ejrPxm@OPpdHA`x9O{^n3*=&2JNsoP17Yt`oYPEf$kow3)Ey^yJ&g zs=i$QT&JI<_a^77<>lnf4pjOkU69bLe2|~iolk9+_dml(@&oVo&mSpBHaC(DpdbPX z&n#fcq7H>*JNUQWWaMC#amG}JO}~pd$;cuJwvr&)DQK;<4waFvi7{_#Wr#&~@^6x- zwRe3^IS)K;|F(5U$=N*ViB9C>tljg=dcB!lUQfRHa8X}P7PIwc@|V9eY+mz!*Vpw` zeO8L1N6Ei9-Aq6OYm3(!EB``zkh4GIQd-`4n>qgy$)wOIcq0iIf)JA{@j8rg`nPMH zE!A-W(~aT2H&zlb2b+ND)h)-y+$^gfmWz*V>JCGwd&-o1#&KE4-v;(WC>?V=t2^0g zb126OXi_h#J)sXjo6}CZzH^bg(8{d9Oq4ergA9Aq1I z(_lyiGsuyc519NlHghBO-ce>Z1#VsA&P!2Ks4%E#@JYY!$acO|hkk1f`Ad^!;r&{rlXchA_CL|~y79(ThlvP0x%Tyu)IcT3@}nb-gbBFR&1GO>nyKZx|K zOzf^@?!M9s24zed_Z^^F60rvx+QmMJSTZlv?uvTztw2X*Y)DO~Of(ra{j((Sfi;~& zJZ01Ch|Zc<)b8qX_ETM2U5yInTDNIwb@h5%T~Tie89-DNNjgv=>YPVNBFQF6MkGxE zoszx>qzKHuk`Ey#HOM0@?XF5rs^p|fyQ>0Zo&++;rb$C(6@aHg4=h=!udv}2`C))x zoem%vMk6%7L;HgKpMpu_ZIvdVAgMm-Ef)p=pj0T1i@QpGvYE1_6PBdrQ6j( zcDpM0VGR5bQ0974aJHOkjaS~@n{=Fhbzb^o%OIYd^sBQ^NYUQD*ls}c2q8#^s zH6#>=gG6;rLyQ0+WDe`dfJpK#geI&LdcIcP0FDvX?OJF1rF>&9?0aJ+t~=Pct``jj z489N##r5tk046GnzLJJqq)JYzuuuw+ zc@oHwQAAi7sU0dTl#-VE8d)fgh5&v>X2x1ad3z^_ASsizAWc#d?9;+RNw0GQv%X6# zER@1R8D$n`0S;pT2M0nwaiEW{561!5$o21)A(+n#Da2rOS?MP%2}Kb4AT@IQGA0hC zb&eqSVM^OFTQ;-C#;um=mdAFO;(ATDWOVp4>=W0Y9BnnDDbtLXwOP+iMG_`ShHRLE zbIRLvl4-rmOOGC6k)7BlP9~d;H2uq^a$Rqub?6xon=;*U1op{xX5}r{Bu%W`pKWqo zUoqVHSAB0QRY`k$TJ8jli!~F=JsaOSKPbP^s~+CWAmd`y8J7#O!jDrG(xo>x|eZvv+Fyh1hSm?b3?L8pCAm+@Qr|yUzIElko!m)`tT(gG&AOn8G0+5SY~__GZ#jM+t)$oYr)~=n3|0~d z#>K4t#)4rPktKyd(N9IPb0)bJXJYQd-?nwO>}GI{tKIj;%Hi*!9{zgM=kV9t>_xqQ zoX;+oj3jobdw=q)_ljgr1H&K8OMYcZmXajrrPd>ErzDA!2q7zA9b%DP04o?}y$xQ- zaN0>mF(Y7Q%SC7$S++@}HO1FHkjaoCGA8m;40_|^;bY9ZWViWxvc7ruj#20N&Eoe3 zWR8-uvaSMBCi;@H8VF=QO~m&7iP+I8u&JERMV<9rpC#$oNU}Oik=>2MAfrmG)p@X?@z;y z+sW3XP-9kQ7fB{b0u!gGy+TNU*4uq~zSsO{PM=ovwl%hREog4?KGUz&zx4v-MSlm- z-v=6KyQnYTe)s`d2S;Mtg#N_3DDw%}E3wZ+%$jWdEJ>r6WUEoy$xH9;E6A(;ZCT)c z_WW7fZY;IyueWwR^ri%&HYx;P8LtAGoCm-n$v2WbOJaNxWqxpFb$b1JYu5*Pgr(C< zsa-F%>!s66fiWGjmIPHAL1#+)$Wpof)wFsE*dOdkN@RN)YO-QIr)(5KM&|Q1sU(vS zlHV60bxs?%t@06L(g(Sfyz#;2oqF|o;n*re;_2yni_o8s>_HhXE;2ZsHDfG-FbM+f zrVv@pb*OA=?d$=xs7ex^PvH4dW| z4LVy{P+C(d8q82M*j}z4>=5PZo*2qS6(h#XdR^Q*V{rJ~^NRj%@x;`uA=_7d>HW-3^i=P>* zmM#p#fV8n8CS|Xs6EV)arjQP8WA%+2gZ;Q;jcwc5G=9)f$%q_xCC)Q5BKCzk--iCg z$3O}w$czzo<#~C|TSkBQ0rd-ZEdq5F|-*!MZ7Gsp+>8>SC~Yv$jJlvQwxmMrY2>xyT~UuGH=I972G4J;Yg@gm_c1k)tt zJW*LoxtS*3lStB0#(O5ekX{GyHg`1Kw$9xSEBQ*kltSqRbY$Uh=tV3G{-wg<0Z3(_ zEPAohPJ76z>YpTOK$r>*LHYvmYfsUYc(|a3$M$21hbOOb7EIJbB<#pxW%#dXW9Eci zl4O+xiYZ}d4T)rL_XQ(`J$HNwyPeyy7^uTGP%Y6?gh9>?9W@mqE_>%xoeWekZreFk z;uk4?v|)_1!(HoaueM6{p!?ofiI$EuS~A%?r|!8d85+&7x^p%r;Pd?07_1l~C^Lll+&br{;QOemu zsH{`k1yj=aW2Nz<83dU6EeXfw#--py5;+YGF11?+G72o+vC6is3|pUCO4^PMmGN=xoBzI;IuuOt(oP7ZWdem5vJRPGNg@Zy*{RHOh&sKF zKE~`bCR$e6He@0-w{WJ^2OL}ZX}=j0m_yH>E)NhaF+k}lU}!+J$z6M@eb}Pnrufvd zraO?{shGR?wD%%A)dw&dz%pmz*c+C8m~Gx&oGsr^HuKARb+WEE>0kWA%j?NE@=vK0 zSj^U&$zT3HSzgzxndttnODb=aRG!7kX=OsdlFA#aCRMQRAT7LoatL{w8A&1uAqheq zwu~o|!!~|7N+M~;G9SrH_c;VCnDbCE=cAdR4n?UU$6&Lkn*s?>uWxW^Kv6UmFoHqI zI>GRhB+y+tuJJVCHKk_q*^{4U*2%XD{{8$nuNtz`w^7C>STE*sdUTikNBD-KSt1NL~6`etX zz-TFF`#50JH-vW_2V|@->e=cv?T7XydHq!%!xSpzh~PonDkzNJl{qjYo~QW!4oiTa zsfgojojFxO%GglJG&~KK9hOttL-HcV=RQzrU1!^N_Q|svD&=}dccMZMPE_pk>h;_U z_4xoD`k$%D@FkGe_N)Yu^-M*kDM6aF;3KfMTcw?;j91=A$O=z~SY*e^gZ%vjF&c)B z24X4XIW7dbs&|$0ObVjRf3Ox*aK185k+)C~<#>oP4uL3LbWI`xDL0}7Vo91HmE zbF9M(oYF*@bLaysvg0Tg;>87P$vH=RPqFIQEIViyy+>~YM?4-&z%#nLc_aOckmko^FyWu3c}J@rhH8C^`o*-JhF}apjG_gGV$2*) zdUPU5$c|HyEY21@>z~E!+TOCx-NC09S~cGoxZ>N3w%^lsq!-in{`??9<(;W8$b`eJ zK;Fu5h(?kIpOQzxG*yw-W%uoE>)d4+K&J6Fm7*aOZ7)dvUb%I6$uTzoeu!oep7*yj zGyuTN%^+MO$*`oUoDl|yRVtI)SMs4WgXsMT%b=Um45BoHD1&awIY9?DCs8GYoqNW% zoD-B*5XU{}2B1H~&a!27*znw3UbLr`mbi%}F<40qI~y>8Bm*vcI;UlwyDqf?+Y&6@ zcOFQI?+%y#5c=hAeeP^dTZ>YNLsXguDaRoSnafOrBu=9Oq6Nm$!J8#OZ5LF$wVhaf6d{8k-Z3Z-??^U+NZxQ zi+Re==Wf}K#X`MO3)P>c!;yoFrZT|6L9|&d)K(I2e2zt?a=c8AL^64Z#X=Pe^~iQC z7V4E+sQyF`iL@|EF)Buvm)O3Q6qMHxr$|~R3ZybvyRU657V6kSyq4`)EYx9JsJ3J? z4nPZl)BvO58)wB()+-%EkaJ#&iCD0wCfAJFJMFYBbC;4xJIUKzvoFc!V=E?tSDI|b z{3p3J^(ORwq2MDLR>k1wsX7!Fc#!^Qm|8g&i!uPDbQ(h*mJsCn#5p#+J(Sq7ZS(7*{r8`A_*Ev zV8b-kJM(5l;J0nwwq-*svJ;CRl{PriNNZN*R`XGs#N_d*jqj^x>>$Ojv2VTW_>i`(OTA++6-7CMgV5L6oU^p_J~8 z+FAztvx6`wYe8tPK4yjZEJ!#vBFNG-O_4MqcCaYkz@gZ+tV^1GAv$r6Z|yeII&?KC0@9C8R` zq;+~~=MeP1S=#RD?gliepFCgcbvZ0LI&F8aw5tsEXC@e@G+K%1h%tOt z-!8la5oDvZkTU!aqNdG+$v)MuZJE29$`}gUfn-J3i>{B*Wun8uu+c+wkRq4-YapF_ z=JZw)(w1^aF{z)-zbjm%k`s7rKbF(h*I7zyV2J*;7E^UKWHwQ^lGxuQ6Ga?_kQ2$K zn5bf+p4gAYL>+iR$PcsCY_X^p%lE6<<*wMt^sf5{h|00aK&`xioX2oUl1`Fb0Gcw2 zRp4WVm|o{RhZ|&(T@K>d{Ce~dok4=&t;=~32XYWMKvSb}4&v4q^=x&T_Cx!Uy#AW& zPPS#1#UtkSh`=@{NG=pq@Q%ts-e?DTrZ)|w`Q6>RjhtkEkwn%fNk#{DSVpmNuaJ}m z%H4CQb)CB}jbP;?+V!6f(Y#*FKGv(>ois1_KLMq`JNf_F{ooH2 G@d5z52U#2d diff --git a/doc/dev/flowcharts/udp_task.dia b/doc/dev/flowcharts/udp_task.dia deleted file mode 100644 index 6fb86284170518897c554fd7c6683ca834981db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 4316 zc-jHn5F_s&iwFP!000021MOW~Z{x_Ze%G&Hyg;xEaC-WFi8HfEkOT>El5CJY4|x)3 zi?*4eL@h~;$9c$aKh;gm*pf(#64|n?(+0)^$*rz#s;la&YybAgFY`S5oR(EqEIwQi zgfF6Wab3)^#qEcS|NZ$-@ASowA1A+^Wyx>g-)))9BlyIkvadc|+|~8+H}Buy-`}JB zp-SqaM0vJCRr>zFNuDR~VbJ@FkCP~RI>9Wd6Z_u!-K4I|>}pk~(IT0rA1rc03 zv0BV7no;X<*F|2G(dQ)paPi&E`sd>PdZPCmGd(l=GPzB!$~5`ZJvoLSV~(4AnU>oV z&zD7&!I1i4xih3=9{c;rnDwX%1}$zse)l{6U9+V18;^6fEwqzJJx|KpY_UrRo=)C8 z3W_wP6ds2#+F->M`T9%_CwFyPa`|b=m8T__Rnuir)@72_yCkoQB2SY=L$xkf>G5=` z>m-LG_T07x?BXV?>tfIPZ<4&~vw`OAZ`^h$=iZjt?0LrB7|}7y>;eAIuDyOG_t~tz zn||^1l{B+Ic$)olR%KUt+P3;^QI9tL!#LA#p8%&L9zQZDxsN9MJkR_Lbt1I zmR5TX^X8b2neNuZ-tT+v+v5g4npsvY^W@?AEo=|!m@8S-8OX4tN@pWUnl4efNS5#F z;@y^<@JOk+`geNmS^nP@_kDIW0+s7xv4HIW41KpOfL*I`NcKI7&0AXt)lr2*mX_<4 z{{9i0Mr&!aUP-iGfAZw51h(_}>#HZ{z4_wS=lGv>vX~|1EP5CHoPMboy;)ZLv&8NH1tc%Rm)i#yVZh3K=r<;^8(#B|c z33vx_PGSnb6+4o0Z6C`X*}OHT>!3NnyfJPITd!uzX`NJ`rd6FTCmlHZne*L+bc#jY zM%KO`-2i6DA7FLKqPmEx`oW$cu)~^<{yEJ*r*(FnJU#4(ui!4tZtq&x@Tl40Tf>__ zd>GNqV|mcgJcit+N`1z z!uBv<^JXKOx@6U#^5XvbE-7m#tjc+|Nb(keMFtBjst~3!cEUpvuM&$&WE?5xNL^CK zkYXxkNH8ktair&Io$M1?vka8?QM0FcI-gz_T3A+Uv-myzsZPY`^E|b}86Cn6H5U0d6fH2ECKpF2) zhJg-Y6tFJHCPL2*%8=7R8GG=j);ZY1i>(VfNJ{3}a(Y*k*?-``0(^N+fNdG-2a^G0 zWRJTyBGu~3dT7&&qXprisPCtwO!7R<3u`7nfqr-m{pfJ$2mHfXED@863$MtJB5WKb z0+aywX(XtK2}TOu@C(gG*km7MMx+% z6!r!r#OntR@c#;=z%Qk9iA?UZGQC>e+@xhx7tvK3RiHE`c~;d?aTBeUFg#7>)#THn zsHe+M^)!Hv(|`_aVub{uPbEnJ9Ya*!6Q}I|fGN_V=-6OIw}y)h@#FmrJr$inMgk$G zDZjLIrRI(95l4z>>+GJUi`kB+zV|LWh7!~0V|Ju?gp+f<++I&x@b4h)x0p?nvMlbq z!6>Bzr=I5N;`Vu8gcwRj$5I zPO7NBOQT;_Y55S{XZ4+XS;5CA|M>Y|Km9TKbuwRGM*sNR@BaG7Ns_~MXAgi%(?x?z zzt7TWR;0}&7x0{CaEK!dWTW&8VAdag4CwSE=v0D9t&k>01#~(NI_(*T6Jvzoq+zkJ zjuAt=LR2td8cG}}H9&67E&ARHwL#UN(c=xxDbO2 zF}Q9t14dYY8>fI9Qm9zM5!n#70d9l{+_^;HeqVfPaZ(Ry|nI076a=Vc`V(&eu@#c*emMB5rDAa3aTd-Q=4LzzHwj0TL_G;uFCY6sdXw$ zmaE#i7@TJT&RXGKeT|B3I3B710lY&17t~j=l_`>kBplxmfR3Qu_6OV4D8V*LhUIqj z54I^sNlHbVa2sel>l~NIMzszLx3%rFD>A3t!U&@w+;(2!wr3({`@?PAOSo-6pX)I^ zmRzwIw1Ci5dF6A42yQ45YAc--5}Y}3$&dAi_2=`heYOpSg(|l&q6i6meqMaehw!=d z9#(I+R?QgtTms5dNGsvhSha+xBSZygb1p!?s+ifhgz#&vj$8)5R~Vbd`Sp!#<1kKFJ*BZ%o$74Olwv@6M2o?(eeeI}jwF(n6_^#=+O?SCVAr09T}y_S_A`bsn416uCH#2Rgg^;X2RV&2VAx8elynNp2=9Qm zYoBdHVPROVb+!zEHvrymfY2ezBAfygp#mu( zorE&Snv|!MP=70efbt&+>^P1=K)r4O)nzM)NNn2TNvzv`e z0v4QjHra#$!;l_O;)f)e$z?D-1}G=BEk+5-W&CsNe`;zyrd7Ag&_Y!XCf1cBMePXSrm z_SrSmEsSWz0%kq4W-ww1Xl4ARK&u)Bw8F7ANO8ulXWmKkh32n#j3WMY*kuWCY{*f*YHql zfVRa=v;;{9(=8wY?FdB~3>l|-v^JhgGBk69h+fwf z6Bl)nd!_6}R z%M_3=;r*0%5|f=R&bT zx3u(d#*eVcUY-juzfHJr=B#UXC+nWQ3z&b$c@ea||5QS-5v6lofN2%(nLCd{2RghX zg$>Pc5i=x|;a+c_07}?!OUYW^m-e+LfImTxouJmCYoA@wDgq0Wnh+7H9nS2Q89bDLTAlUvXPiWYajP!hTuZ-i)XmrAtRv3mgABz6kXIKJVCM+fY~$(+=L!WAi@( zpTAl@Cqww0zSMnERE?7;MqSGaU_9T6VxnoyfeCfCsagB)rPjV#y=$LstS*oi(k%=J zm40^p^|w_zJBZcUOR@U!GG(O^!?MwKe)DHEqO4J?n6OK#sZE@5Ni9Uua z`&O;d^Nv!<^TsN;VwxaT(TzlTf6JzI6pQ{-k;OE z_SrGiI>r@ZNB0K`to~|Qeb8;NjJ{A;0yez5S7W5KiHSyrF|TI&BPGVP0#+xk1w1jf zbu10H=7h+>bLTNMA&B1MtvPIXC7Oa`$fc7Lh6&G(L`TV9_MpY3b=fImEM@u@uJsC+ z=A0srspB*T`Si-0q_ijJuo23N3}V7rEKGZC>tqQz14L^L@JS*g?d=vsYrh@#N7!JW zyc~sucv?@SRY=k~t0W!U((9qQRJ%;8B41g1XkuSat2$kN|3gq;r>H3+AVf40nuY%Q z=aHAghF23=Hyl-KZNfa~Q$iXe1tlKAD@Syrum7=EQJn_7R(EMqPThHU2K?jy&&YU@ z-fwm5kFL`CK1~-5QU>;)fDCde?VDFpIrto9RRlzn>$`Lotux=h&g1@`XH{rAccSk8 zH0BgZO+`T0`_c7C09cH2!Ib^#oJ!)}FPJip5>tGAB`RHC2Xm4;QQP*}c~?bqKaL3i z_{;z>A9N|IdU*gmJVRY-gpG71A=qn@izURREAhY*OkR!*i3wPidQdBf9wn8-ci0pB zD#;|qfPIB#!fVgz0DjL5{PqF90rbA=Zi`CCHd!|GbvPmBRihMRD()1K^4sDUC=sk3 zC2Ckxj0u?6_T5#-7DyacjM=u&u3}8>7DfpVp!du`uN>s{B`*(phu3gO()0&ah!MYr zuBF5rB`U3Ij~PKyD()Bejp<c6f5;jH zYpt!i0uX$X-aT#me1=tq=+OXzU#$mN4*|j3oqy=T7`S`_. - -##################################### -Knot Resolver developer documentation -##################################### - -Welcome to Knot Resolver's documentation for developers and advanced users! - -.. toctree:: - :caption: Building for sources - :name: build-chapter - :maxdepth: 1 - - build - -.. toctree:: - :caption: Lua configuration - :name: configuration-lua-chapter - :maxdepth: 1 - - config-lua-overview - config-lua-network - config-lua-performance - config-lua-policy - config-lua-logging-monitoring - config-lua-dnssec - config-lua-experimental - modules-http-custom-services - -.. toctree:: - :caption: C API - :name: c-api-chapter - :maxdepth: 1 - - lib - modules_api - worker_api - logging_api - -.. toctree:: - :caption: Architecture - :name: architecture-chapter - :maxdepth: 1 - - manager-dev - architecture - -.. toctree:: - :caption: Infrastructure - :name: infra-chapter - :maxdepth: 1 - - infra-pages - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/doc/dev/infra-pages.rst b/doc/dev/infra-pages.rst deleted file mode 100644 index 0ca53a553..000000000 --- a/doc/dev/infra-pages.rst +++ /dev/null @@ -1,73 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. include:: infra-warning.rst - -.. _infra-pages: - -Documentation in GitLab Pages -============================= - -Since version 6.0 (but also back-ported to later versions of 5.x), the Knot -Resolver documentation is generated by the GitLab CI/CD pipeline. This way we -control the build environment as opposed to ReadTheDocs, which we have been -using in the past. - -The relevant CI jobs can be found in the ``docs`` section of -``.gitlab-ci.yml`` in the project root directory (jobs ``docs:build``, -``docs:develop``, ``docs:release``, etc.). - -To keep the advantages of having multiple versions of the docs available for -users that cannot update to the latest Knot Resolver, we are leveraging multiple -GitLab features, namely the ability of *Pages* to serve project artifacts -(`currently under-documented by GitLab, but mentioned `_), -and *Environments* to automate the creation of links to said artifacts. - -A ``docs:public`` job is also in place to publish our desired version of the -docs directly at https://www.knot-resolver.cz/documentation/latest -(reverse-proxied to https://knot.pages.nic.cz/knot-resolver). - -.. note:: - - The published version will generally be the latest stable, but we can - theoretically choose anything -- the job is configured to be available from - any pipeline. - -.. _gitlab-pages-artifacts: https://docs.gitlab.com/ee/ci/jobs/job_artifacts.html#browse-the-contents-of-the-artifacts-archive - - -Automatic generation --------------------- - -The ``docs:build`` job takes care of building the documentation from sources and -exposing it as its artifacts, which are then inherited by subsequent jobs: - -* For each commit on a branch, the ``docs:develop`` job is executed to publish - the docs as a development version. This may be used by users who work with - nightlies, as well as the development team for making sure the docs look the - way they want them to. For each branch, an environment is created with the - name `docs-develop/ `_. - -* For each tag, the ``docs:release`` job is executed to publish the docs as a - release version. These go into environments named - `docs-release/ `_. - -.. _docs-develop: https://gitlab.nic.cz/knot/knot-resolver/-/environments/folders/docs-develop -.. _docs-release: https://gitlab.nic.cz/knot/knot-resolver/-/environments/folders/docs-release - - -Environment removal -------------------- - -GitLab environments may be un-published using the `Stop` button on the -`Environments screen `_. This will hide the environment away, but not -delete it. Stopped environments can be found on the -`Stopped environments tab `_, from which they may also be -re-published or permanently deleted. - -Outdated artifacts get automatically deleted by GitLab, but in the case where -the branch does not exist anymore, the environment will stay and the link will -lead to nowhere. These need to be cleaned up manually at the moment, but we may -want to introduce an automated mechanism for this at some point. - -.. _envs: https://gitlab.nic.cz/knot/knot-resolver/-/environments -.. _stopped-envs: https://gitlab.nic.cz/knot/knot-resolver/-/environments?page=1&scope=stopped&search= diff --git a/doc/dev/infra-warning.rst b/doc/dev/infra-warning.rst deleted file mode 100644 index 3018df0ef..000000000 --- a/doc/dev/infra-warning.rst +++ /dev/null @@ -1,5 +0,0 @@ -.. warning:: - - This section documents semi-public parts of the internal infrastructure for - `CZ.NIC `_ developers. It is probably not very useful to - external users (but do feel free to study). diff --git a/doc/dev/lib.rst b/doc/dev/lib.rst deleted file mode 100644 index 89e29df56..000000000 --- a/doc/dev/lib.rst +++ /dev/null @@ -1,76 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _lib_index: - -.. include:: ../../lib/README.rst - -API reference -============= - -.. warning:: This section is generated with doxygen and breathe. Due to their - limitations, some symbols may be incorrectly described or missing entirely. - For exhaustive and accurate reference, refer to the header files instead. - -.. contents:: - :depth: 1 - :local: - -.. _lib_api_rplan: - -Name resolution ---------------- - -.. doxygenfile:: resolve.h - :project: libkres -.. doxygenfile:: rplan.h - :project: libkres - -.. _lib_api_cache: - -Cache ------ - -.. doxygenfile:: cache/api.h - :project: libkres - -.. doxygenfile:: cache/impl.h - :project: libkres - -Rules ------ - -.. doxygenfile:: rules/api.h - :project: libkres - -.. _lib_api_nameservers: - -Nameservers ------------ - -.. doxygenfile:: selection.h - :project: libkres -.. doxygenfile:: zonecut.h - :project: libkres - -.. _lib_api_modules: - -Modules -------- - -.. doxygenfile:: module.h - :project: libkres - -.. doxygenfile:: layer.h - :project: libkres - -Utilities ---------- - -.. doxygenfile:: utils.h - :project: libkres -.. doxygenfile:: defines.h - :project: libkres - -.. _lib_generics: - -.. include:: ../../lib/generic/README.rst diff --git a/doc/dev/logging_api.rst b/doc/dev/logging_api.rst deleted file mode 100644 index 09b705c8b..000000000 --- a/doc/dev/logging_api.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Logging API reference -===================== - -.. _config_log_groups: - -.. doxygenfile:: lib/log.h - :project: libkres diff --git a/doc/dev/manager-dev.rst b/doc/dev/manager-dev.rst deleted file mode 100644 index cdf65267b..000000000 --- a/doc/dev/manager-dev.rst +++ /dev/null @@ -1,115 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -=========================== -Manager's development guide -=========================== - -In this guide, we will setup a development environment, discuss tooling and high-level code architecture. - - -Development environment -======================= - -The Manager is written in Python 3 with the goal of supporting multiple versions of Python available in current Linux distributions. For example, at the time of writing, this means we support Python 3.7 and newer. These compatibility requirements also force us not to rely heavily on modern runtime libraries such as Pydantic. - -Tools ------ - -To start working on the Manager, you need to install the following tools: - -- Python, preferably the oldest supported version. You can use `pyenv `_ to install and manage multiple Python versions on your system. Alternatively, some distros ship packages for older Python versions as well. -- `Poetry `_. We use it to manage our dependencies and virtual environments. - - -First run of the Manager from source ------------------------------------- - -1. clone `the Knot Resolver repository `_ -2. enter the directory ``manager/`` in the repository, all following tasks will be performed from within that directory -3. run ``poetry env use $(which python3.7)`` to configure Poetry to use a different Python interpreter than the default -4. run ``poetry install`` to install all dependencies into a newly created virtual environment -5. run ``./poe run`` to run the Manager in dev mode (Ctrl+C to exit) - -Helper scripts --------------- - -In the previous section, you saw the use of the ``./poe`` command. `PoeThePoet `_ is a task runner which we use to simplify invoking common commands. You can run it by invoking ``./poe``, or you can install it system-wide via ``pip install poethepoet`` and invoke it just by calling ``poe`` (without the leading ``./``). When invoked globally, you don't have to worry about virtual environments and such, PoeThePoet figures that out for you and commands always run in the appropriate virtual environment. - -To list the available commands, you can run ``poe help``. The most important ones for everyday development are: - -- ``poe run`` to compile ``kresd`` and run the Manager -- ``poe run-debug`` same as ``run``, but also injects ``debugpy`` into the process to allow remote debugging on port 5678 -- ``poe kresctl`` to run the Manager's CLI tool -- ``poe check`` to run static code analysis (enforced by our CI) -- ``poe test`` to run unit tests (enforced by our CI) -- ``poe format`` to autoformat the source code - - -The commands are defined in the ``pyproject.toml`` file. - - -Code editor ------------ - -Feel free to use any text editor you like. However, we recommend using `Visual Studio Code `_ with `Pylance `_ extension. That's what we use to work on the Manager and we know that it works really well for us. Just make sure to configure the extension so that it uses Poetry's virtual environment. We have a helper for that - ``poe config-vscode``, but your mileage may vary when using it. - - -Code structure -============== - -The Manager's code is split into several distinct logical components: - -- controllers - - the HTTP API server (*the server*, ``server.py``) - - high-level coordinator of ``kresd``'s (*the manager*, ``kres_manager.py``) - - subprocess controller for launching and stopping ``kresd`` processes (*the subprocess controller*, ``kresd_controller/``) -- data - - schema validation and definition (*the datamodel*, ``datamodel/``) - - utilities, mainly general schema validation and parsing logic (*utils*, ``utils/``) -- ``kresctl`` utility (*kresctl*, ``cli/``) - -When running, *the server* receives all inputs from the outside, passes them onto *the manager*, which applies the requested changes through the use of *the subprocess controller*. In all stages, we use *the datamodel* to pass current configuration around. - - -The subprocess controllers --------------------------- - -Internally, the subprocess controllers are hidden behind an interface and there can be multiple implementations. In practice, there is only one and that is `supervisord `_. Historically, we tried to support systemd as well, but due to privilege escalation issues, we started focusing only on supervisord. - -The supervisord subprocess controller actually extends supervisord with new functionality, especially it reimplements ``sd_notify`` semantics from systemd. Supervisord is extended through loading plugins, which in turn modify few internal components of supervisord. Due to the maturity of the supervisord project, we believe this will be reasonably stable even with updates for supervisord. - -We want to have the Manager restarted if it fails, so that one mishandled API request can't bring everything down. We want the subprocess controllers to control the execution of the Manager and restart it, if needed. Therefore, there is a circular dependency. To solve it, the subprocess controller implementations are allowed to ``exec()`` into anything else while starting. To give an example of how the startup works with supervisord: - -1. *the server* loads the config, initiates *the manager* and *the supervisord subprocess controller* -2. *the supervisord subprocess controller* detects, that there is no supervisord running at the moment, generates new supervisord config and exec's supervisord -3. supervisord starts, loads its config and starts *the server* again -4. *the server* loads the config, initiates *the manager* and *the supervisord subprocess controller* -5. *the supervisord subprocess controller* detects, that there is a supervisord instance running, generates new config for it and reloads it -6. *the manager* starts new workers based on the initial configuration -7. *the server* makes it's API available to use and the Manager is fully running - - -Processing of config change requests ------------------------------------- - -1. a change request is received by *the server* -2. the raw text input is parsed and verified into a configuration object using *the datamodel* -3. *the manager* is asked to apply new configuration -4. *the manager* starts a canary process with the new config (Lua config generated from the configration object), monitoring for failures -5. *the manager* restarts all ``kresd`` instances one by one -6. *the server* returns a success - - -Packaging -========= - -Packaging is handled by `apkg `_ cooperating with Poetry. To allow for backwards compatibility with Python tooling not supporting `PEP-517 `_, we generate ``setup.py`` file with the command ``poe gen-setuppy``, so our project is compatible with ``setuptools`` as well. - - -Testing -======= - -The manager has two suits of tests - unit tests and packaging tests, all residing in the ``manager/tests/`` directory. The units tests are run by `pytest `_, while the packaging tests are distro specific and are using `apkg test `_. - - - diff --git a/doc/dev/modules-bogus_log.rst b/doc/dev/modules-bogus_log.rst deleted file mode 120000 index 6d98f43ff..000000000 --- a/doc/dev/modules-bogus_log.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/bogus_log/README.rst \ No newline at end of file diff --git a/doc/dev/modules-daf.rst b/doc/dev/modules-daf.rst deleted file mode 120000 index d91d699bd..000000000 --- a/doc/dev/modules-daf.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/daf/README.rst \ No newline at end of file diff --git a/doc/dev/modules-detect_time_jump.rst b/doc/dev/modules-detect_time_jump.rst deleted file mode 120000 index 8b4150ffc..000000000 --- a/doc/dev/modules-detect_time_jump.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/detect_time_jump/README.rst \ No newline at end of file diff --git a/doc/dev/modules-detect_time_skew.rst b/doc/dev/modules-detect_time_skew.rst deleted file mode 120000 index 67f7bf545..000000000 --- a/doc/dev/modules-detect_time_skew.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/detect_time_skew/README.rst \ No newline at end of file diff --git a/doc/dev/modules-dns64.rst b/doc/dev/modules-dns64.rst deleted file mode 120000 index 374a1b95f..000000000 --- a/doc/dev/modules-dns64.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/dns64/README.rst \ No newline at end of file diff --git a/doc/dev/modules-dnstap.rst b/doc/dev/modules-dnstap.rst deleted file mode 120000 index a284f204b..000000000 --- a/doc/dev/modules-dnstap.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/dnstap/README.rst \ No newline at end of file diff --git a/doc/dev/modules-edns_keepalive.rst b/doc/dev/modules-edns_keepalive.rst deleted file mode 120000 index 91307a4f0..000000000 --- a/doc/dev/modules-edns_keepalive.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/edns_keepalive/README.rst \ No newline at end of file diff --git a/doc/dev/modules-experimental_dot_auth.rst b/doc/dev/modules-experimental_dot_auth.rst deleted file mode 120000 index 677cb1e65..000000000 --- a/doc/dev/modules-experimental_dot_auth.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/experimental_dot_auth/README.rst \ No newline at end of file diff --git a/doc/dev/modules-hints.rst b/doc/dev/modules-hints.rst deleted file mode 120000 index a67befde1..000000000 --- a/doc/dev/modules-hints.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/hints/README.rst \ No newline at end of file diff --git a/doc/dev/modules-http-custom-services.rst b/doc/dev/modules-http-custom-services.rst deleted file mode 120000 index 223b22d46..000000000 --- a/doc/dev/modules-http-custom-services.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/http/custom_services.rst \ No newline at end of file diff --git a/doc/dev/modules-http-trace.rst b/doc/dev/modules-http-trace.rst deleted file mode 120000 index 1c4f666c1..000000000 --- a/doc/dev/modules-http-trace.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/http/trace.rst \ No newline at end of file diff --git a/doc/dev/modules-http.rst b/doc/dev/modules-http.rst deleted file mode 120000 index 9713c5e72..000000000 --- a/doc/dev/modules-http.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/http/README.rst \ No newline at end of file diff --git a/doc/dev/modules-nsid.rst b/doc/dev/modules-nsid.rst deleted file mode 120000 index 349fabd1e..000000000 --- a/doc/dev/modules-nsid.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/nsid/README.rst \ No newline at end of file diff --git a/doc/dev/modules-policy.rst b/doc/dev/modules-policy.rst deleted file mode 120000 index 5a9a1edbf..000000000 --- a/doc/dev/modules-policy.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/policy/README.rst \ No newline at end of file diff --git a/doc/dev/modules-prefill.rst b/doc/dev/modules-prefill.rst deleted file mode 120000 index 33cac078a..000000000 --- a/doc/dev/modules-prefill.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/prefill/README.rst \ No newline at end of file diff --git a/doc/dev/modules-priming.rst b/doc/dev/modules-priming.rst deleted file mode 120000 index 738f810e0..000000000 --- a/doc/dev/modules-priming.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/priming/README.rst \ No newline at end of file diff --git a/doc/dev/modules-rebinding.rst b/doc/dev/modules-rebinding.rst deleted file mode 120000 index f8b05dad4..000000000 --- a/doc/dev/modules-rebinding.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/rebinding/README.rst \ No newline at end of file diff --git a/doc/dev/modules-refuse_nord.rst b/doc/dev/modules-refuse_nord.rst deleted file mode 120000 index 4713ba5cc..000000000 --- a/doc/dev/modules-refuse_nord.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/refuse_nord/README.rst \ No newline at end of file diff --git a/doc/dev/modules-renumber.rst b/doc/dev/modules-renumber.rst deleted file mode 120000 index c413055e8..000000000 --- a/doc/dev/modules-renumber.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/renumber/README.rst \ No newline at end of file diff --git a/doc/dev/modules-rfc7706.rst b/doc/dev/modules-rfc7706.rst deleted file mode 120000 index 27a0c7072..000000000 --- a/doc/dev/modules-rfc7706.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/rfc7706.rst \ No newline at end of file diff --git a/doc/dev/modules-serve_stale.rst b/doc/dev/modules-serve_stale.rst deleted file mode 120000 index 6a37d0dbf..000000000 --- a/doc/dev/modules-serve_stale.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/serve_stale/README.rst \ No newline at end of file diff --git a/doc/dev/modules-stats.rst b/doc/dev/modules-stats.rst deleted file mode 120000 index b65f2952b..000000000 --- a/doc/dev/modules-stats.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/stats/README.rst \ No newline at end of file diff --git a/doc/dev/modules-ta_sentinel.rst b/doc/dev/modules-ta_sentinel.rst deleted file mode 120000 index ab255d755..000000000 --- a/doc/dev/modules-ta_sentinel.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/ta_sentinel/README.rst \ No newline at end of file diff --git a/doc/dev/modules-ta_signal_query.rst b/doc/dev/modules-ta_signal_query.rst deleted file mode 120000 index e0d6929a8..000000000 --- a/doc/dev/modules-ta_signal_query.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/ta_signal_query/README.rst \ No newline at end of file diff --git a/doc/dev/modules-view.rst b/doc/dev/modules-view.rst deleted file mode 120000 index 048f41460..000000000 --- a/doc/dev/modules-view.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/view/README.rst \ No newline at end of file diff --git a/doc/dev/modules-watchdog.rst b/doc/dev/modules-watchdog.rst deleted file mode 120000 index 648513a4a..000000000 --- a/doc/dev/modules-watchdog.rst +++ /dev/null @@ -1 +0,0 @@ -../../modules/watchdog/README.rst \ No newline at end of file diff --git a/doc/dev/modules_api.rst b/doc/dev/modules_api.rst deleted file mode 100644 index ea23a3e24..000000000 --- a/doc/dev/modules_api.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _modules: - -.. include:: ../../modules/README.rst - diff --git a/doc/dev/rename_ln.sh b/doc/dev/rename_ln.sh deleted file mode 100644 index 4dd26469f..000000000 --- a/doc/dev/rename_ln.sh +++ /dev/null @@ -1,9 +0,0 @@ - -for name in $(find . -type l -name "modules-*"); do - tgt=`readlink "$name"` - ln -f -s ../$tgt $name -done - - - - diff --git a/doc/dev/server_terminology.fodg b/doc/dev/server_terminology.fodg deleted file mode 100644 index 8fecf0206..000000000 --- a/doc/dev/server_terminology.fodg +++ /dev/null @@ -1,869 +0,0 @@ - - - - Petr Špaček2020-01-09T14:38:06.40621582518PT27M21S2020-02-14T17:28:07.033132897Petr ŠpačekLibreOffice/6.4.0.3$Linux_X86_64 LibreOffice_project/40$Build-3Basic DNS terminologySPDX-License-Identifier: GPL-3.0-or-later - - - 2884 - -318 - 23019 - 23865 - - - view1 - false - false - true - true - false - false - false - false - true - 1500 - false - Hw== - Hw== - - false - true - true - 0 - 0 - true - true - true - 4 - 0 - 2884 - -318 - 23020 - 23866 - 1000 - 1000 - 100 - 100 - 100 - 1 - 100 - 1 - false - 1500 - false - false - - - - - true - $(brandbaseurl)/share/palette%3B$(user)/config/standard.sob - 0 - $(brandbaseurl)/share/palette%3B$(user)/config/standard.soc - $(brandbaseurl)/share/palette%3B$(user)/config/standard.sod - 1250 - true - true - false - true - false - - - cs - CZ - - - - - - $(brandbaseurl)/share/palette%3B$(user)/config/standard.sog - $(brandbaseurl)/share/palette%3B$(user)/config/standard.soh - false - false - true - true - false - false - true - false - false - false - $(brandbaseurl)/share/palette%3B$(user)/config/standard.soe - false - 3 - 4 - false - 0 - low-resolution - HP_LaserJet_M2727nf_MFP - false - 1wH+/0hQX0xhc2VySmV0X00yNzI3bmZfTUZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpIUF9MYXNlckpldF9NMjcyN25mX01GUAAAAAAWAAMA8wAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9SFBfTGFzZXJKZXRfTTI3MjduZl9NRlAKb3JpZW50YXRpb249UG9ydHJhaXQKY29waWVzPTEKY29sbGF0ZT1mYWxzZQptYXJnaW5kYWp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKcGRmZGV2aWNlPTEKY29sb3JkZXZpY2U9MApQUERDb250ZXhEYXRhClBhZ2VTaXplOkE0AER1cGxleDpEdXBsZXhOb1R1bWJsZQBIUEVjb25vTW9kZTpGYWxzZQBJbnB1dFNsb3Q6QXV0bwAAEgBDT01QQVRfRFVQTEVYX01PREUUAER1cGxleE1vZGU6OkxvbmdFZGdl - true - false - 1 - 1 - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+ - CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgog - ICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpy - ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHht - bG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8v - d3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9k - aS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2Fw - ZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZGF0 - YS1uYW1lPSJMYXllciAxIgogICB2aWV3Qm94PSIwIDAgNjAgODUiCiAgIHg9IjBweCIKICAg - eT0iMHB4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc0MCIKICAgc29kaXBvZGk6ZG9j - bmFtZT0ibm91bl9TZXJ2ZXJfMTY1MzA2NC5zdmciCiAgIHdpZHRoPSI2MCIKICAgaGVpZ2h0 - PSI4NSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40IDVkYTY4OWMzMTMsIDIwMTktMDEt - MTQiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQ2Ij4KICAgIDxyZGY6UkRGPgog - ICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1h - dD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAg - ICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdl - IiAvPgogICAgICAgIDxkYzp0aXRsZT5kYXRhLCBzZXJ2ZXIsIGRhdGFiYXNlLCByb3V0ZXIs - IGhhcmR3YXJlPC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgog - IDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczQ0IiAvPgogIDxzb2RpcG9kaTpu - YW1lZHZpZXcKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2 - NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMSIKICAgICBvYmplY3R0b2xlcmFuY2U9IjEw - IgogICAgIGdyaWR0b2xlcmFuY2U9IjEwIgogICAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAg - ICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIy - IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iOTU2IgogICAgIGlua3NjYXBlOndpbmRv - dy1oZWlnaHQ9IjEwNTQiCiAgICAgaWQ9Im5hbWVkdmlldzQyIgogICAgIHNob3dncmlkPSJm - YWxzZSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAi - CiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIK - ICAgICBpbmtzY2FwZTp6b29tPSIxLjg4OCIKICAgICBpbmtzY2FwZTpjeD0iLTE0LjY0NjAx - MyIKICAgICBpbmtzY2FwZTpjeT0iMjkuNSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iOTYy - IgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhp - bWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNDAiIC8+CiAgPHRp - dGxlCiAgICAgaWQ9InRpdGxlMiI+ZGF0YSwgc2VydmVyLCBkYXRhYmFzZSwgcm91dGVyLCBo - YXJkd2FyZTwvdGl0bGU+CiAgPHJlY3QKICAgICB4PSIxMCIKICAgICB5PSIzNiIKICAgICB3 - aWR0aD0iNCIKICAgICBoZWlnaHQ9IjYiCiAgICAgaWQ9InJlY3Q0IiAvPgogIDxyZWN0CiAg - ICAgeD0iMTgiCiAgICAgeT0iMzYiCiAgICAgd2lkdGg9IjQiCiAgICAgaGVpZ2h0PSI2Igog - ICAgIGlkPSJyZWN0NiIgLz4KICA8cmVjdAogICAgIHg9IjI2IgogICAgIHk9IjM2IgogICAg - IHdpZHRoPSI0IgogICAgIGhlaWdodD0iNiIKICAgICBpZD0icmVjdDgiIC8+CiAgPHJlY3QK - ICAgICB4PSIzNCIKICAgICB5PSIzNiIKICAgICB3aWR0aD0iNCIKICAgICBoZWlnaHQ9IjYi - CiAgICAgaWQ9InJlY3QxMCIgLz4KICA8Y2lyY2xlCiAgICAgY3g9IjQ4IgogICAgIGN5PSIz - OSIKICAgICByPSIyIgogICAgIGlkPSJjaXJjbGUxMiIgLz4KICA8cGF0aAogICAgIGQ9Im0g - NTUsMjQgYSA1LDUgMCAwIDAgNSwtNSBWIDUgQSA1LDUgMCAwIDAgNTUsMCBIIDUgQSA1LDUg - MCAwIDAgMCw1IHYgMTQgYSA1LDUgMCAwIDAgNSw1IGggMSB2IDMgSCA1IGEgNSw1IDAgMCAw - IC01LDUgdiAxNCBhIDUsNSAwIDAgMCA1LDUgaCAxIHYgMyBIIDUgYSA1LDUgMCAwIDAgLTUs - NSB2IDE0IGEgNSw1IDAgMCAwIDUsNSBoIDEgdiA3IGggNDggdiAtNyBoIDEgYSA1LDUgMCAw - IDAgNSwtNSBWIDU5IGEgNSw1IDAgMCAwIC01LC01IGggLTEgdiAtMyBoIDEgYSA1LDUgMCAw - IDAgNSwtNSBWIDMyIEEgNSw1IDAgMCAwIDU1LDI3IEggNTQgViAyNCBaIE0gNTAsODEgSCAx - MCB2IC0zIGggNDAgeiBtIDUsLTIzIGEgMSwxIDAgMCAxIDEsMSB2IDE0IGEgMSwxIDAgMCAx - IC0xLDEgSCA1IEEgMSwxIDAgMCAxIDQsNzMgViA1OSBBIDEsMSAwIDAgMSA1LDU4IFogTSAx - MCw1NCB2IC0zIGggNDAgdiAzIHogTSA1NSwzMSBhIDEsMSAwIDAgMSAxLDEgdiAxNCBhIDEs - MSAwIDAgMSAtMSwxIEggNSBBIDEsMSAwIDAgMSA0LDQ2IFYgMzIgQSAxLDEgMCAwIDEgNSwz - MSBaIE0gMTAsMjcgdiAtMyBoIDQwIHYgMyB6IE0gNSwyMCBBIDEsMSAwIDAgMSA0LDE5IFYg - NSBBIDEsMSAwIDAgMSA1LDQgaCA1MCBhIDEsMSAwIDAgMSAxLDEgdiAxNCBhIDEsMSAwIDAg - MSAtMSwxIHoiCiAgICAgaWQ9InBhdGgxNCIKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3Vy - dmF0dXJlPSIwIiAvPgogIDxyZWN0CiAgICAgeD0iMTAiCiAgICAgeT0iOSIKICAgICB3aWR0 - aD0iNCIKICAgICBoZWlnaHQ9IjYiCiAgICAgaWQ9InJlY3QxNiIgLz4KICA8cmVjdAogICAg - IHg9IjE4IgogICAgIHk9IjkiCiAgICAgd2lkdGg9IjQiCiAgICAgaGVpZ2h0PSI2IgogICAg - IGlkPSJyZWN0MTgiIC8+CiAgPHJlY3QKICAgICB4PSIyNiIKICAgICB5PSI5IgogICAgIHdp - ZHRoPSI0IgogICAgIGhlaWdodD0iNiIKICAgICBpZD0icmVjdDIwIiAvPgogIDxyZWN0CiAg - ICAgeD0iMzQiCiAgICAgeT0iOSIKICAgICB3aWR0aD0iNCIKICAgICBoZWlnaHQ9IjYiCiAg - ICAgaWQ9InJlY3QyMiIgLz4KICA8Y2lyY2xlCiAgICAgY3g9IjQ4IgogICAgIGN5PSIxMiIK - ICAgICByPSIyIgogICAgIGlkPSJjaXJjbGUyNCIgLz4KICA8cmVjdAogICAgIHg9IjEwIgog - ICAgIHk9IjYzIgogICAgIHdpZHRoPSI0IgogICAgIGhlaWdodD0iNiIKICAgICBpZD0icmVj - dDI2IiAvPgogIDxyZWN0CiAgICAgeD0iMTgiCiAgICAgeT0iNjMiCiAgICAgd2lkdGg9IjQi - CiAgICAgaGVpZ2h0PSI2IgogICAgIGlkPSJyZWN0MjgiIC8+CiAgPHJlY3QKICAgICB4PSIy - NiIKICAgICB5PSI2MyIKICAgICB3aWR0aD0iNCIKICAgICBoZWlnaHQ9IjYiCiAgICAgaWQ9 - InJlY3QzMCIgLz4KICA8cmVjdAogICAgIHg9IjM0IgogICAgIHk9IjYzIgogICAgIHdpZHRo - PSI0IgogICAgIGhlaWdodD0iNiIKICAgICBpZD0icmVjdDMyIiAvPgogIDxjaXJjbGUKICAg - ICBjeD0iNDgiCiAgICAgY3k9IjY2IgogICAgIHI9IjIiCiAgICAgaWQ9ImNpcmNsZTM0IiAv - Pgo8L3N2Zz4K - - - - - iVBORw0KGgoAAAANSUhEUgAAAD0AAABWCAYAAAB8UZ5wAAABO0lEQVR4nO2Z7Q6CMAxFJeH9 - XxmtyUzFgRtf2t5zfikjccduDnvHaZpuaoz+zTAMab+BR3GH8volnVnYML8iPpYLv53SNRTx - sTbol0Jklor5IZ1F2DCXmni10tlBWoVm6fnemO/9s8ePhEpHw6+OnpURWnorSEdj649ds/S3 - Dzh7/EhCV3orSKuAtKHQUKDSKjyllzoM2XhrDPoLhSv/6h1Bz3x1l7cazUdWtD1f5ltb5ulj - nZo8sU52iHU8WYQNYh0H0ioQ66gQWlou1tnzQBVWek/jI6y0QazTQehKbwVpFZA2FBoKVFoF - Yh1/A7FOMpA2iHUSQKxDrDPj34+nVoh1HBxZKiC9BrFOcEJLE+t0EFaaWKcTYh0VkFYBaUOh - oUClVSDW8TcQ6yQD6TUy7XkqrQLSnn8/ovZwB2IfDVe+8hdvAAAAAElFTkSuQmCC - - - data, server, database, router, hardware - - - - authoritativeserver - - - - - - - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6 - IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuNiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZl - cnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2 - YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJo - dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94 - PSIwIDAgMjA2IDIwOSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjA2IDIw - OTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0 - MHtmaWxsOiMwMEEyRTI7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjA2LDEw - NC42YzAsMzEuNC0xMy45LDU5LjUtMzYsNzguNmMxLjItNi4zLDEuOS0xMi45LDEuOS0xOS42 - YzAtMjAuNS02LjEtMzkuNy0xNi41LTU1LjgKCWMtNC4xLDUuNy04LjgsMTEtMTMuOSwxNS44 - YzYuNiwxMS44LDEwLjMsMjUuNSwxMC4zLDQwYzAsNS45LTAuNiwxMS42LTEuOCwxNy4yYy0w - LjEsMC42LTAuMywxLjItMC40LDEuOGMtMC4xLDAuNi0wLjMsMS4yLTAuNCwxLjgKCWMtMC42 - LTAuMi0xLjItMC4zLTEuOC0wLjVjLTAuNi0wLjItMS4yLTAuMy0xLjctMC42Yy0xOS02LjIt - MzUtMTkuMS00NS4yLTM1LjljLTAuMy0wLjUtMC42LTEuMS0xLTEuNmMtMC4zLTAuNS0wLjYt - MS4xLTAuOS0xLjYKCWMtMy4yLTUuOS01LjctMTIuMi03LjQtMTguOGMtMC4xLTAuNi0wLjMt - MS4yLTAuNC0xLjhjLTAuMi0wLjYtMC4zLTEuMi0wLjQtMS44Yy0xLjItNS41LTEuOC0xMS4z - LTEuOC0xNy4yczAuNi0xMS42LDEuOC0xNy4yCgljLTYuMy0xLjgtMTMtMi44LTE5LjktMi45 - Yy0xLjMsNi41LTIsMTMuMi0yLDIwYzAsNi45LDAuNywxMy42LDIsMjAuMWMwLjEsMC42LDAu - MiwxLjIsMC40LDEuOGMwLjEsMC42LDAuMywxLjIsMC40LDEuOAoJYzEuNiw2LjgsMy45LDEz - LjQsNi45LDE5LjdjMC4zLDAuNiwwLjUsMS4yLDAuOCwxLjdjMC4zLDAuNiwwLjYsMS4yLDAu - OSwxLjhjMTIuMSwyMy41LDMzLDQxLjgsNTguNCw1MC40CgljLTExLjIsNC4xLTIzLjMsNi40 - LTM1LjksNi40Yy01MS41LDAtOTQuMi0zNy41LTEwMi4zLTg2LjdjMC41LDAuNCwwLjksMC44 - LDEuNCwxLjJjMTguMSwxNS45LDQxLjgsMjUuNSw2Ny43LDI1LjUKCWMxLjcsMCwzLjQsMCw1 - LjEtMC4xYy0yLjktNi40LTUuMS0xMy02LjctMjBjLTIwLjYtMC40LTM5LjMtOC4zLTUzLjYt - MjEuMmMtMC41LTAuNC0wLjktMC44LTEuNC0xLjJjLTAuNS0wLjQtMC45LTAuOC0xLjMtMS4z - CgljMC40LTAuNCwwLjgtMC45LDEuMy0xLjNjMC40LTAuNCwwLjktMC44LDEuMy0xLjJjMTQu - My0xMi45LDMzLTIwLjgsNTMuNi0yMS4yYzAuNSwwLDEuMSwwLDEuNiwwaDAuM2MwLjYsMCwx - LjMsMCwxLjksMAoJYzYuOSwwLjIsMTMuNiwxLjIsMjAsM2MwLjYsMC4yLDEuMiwwLjMsMS43 - LDAuNWMwLjYsMC4yLDEuMiwwLjQsMS43LDAuNWMxMS4xLDMuNiwyMS4yLDkuNSwyOS42LDE3 - LjJjNC44LTQuNyw5LTEwLDEyLjUtMTUuOAoJYy0xMC04LjgtMjEuOC0xNS43LTM0LjctMjAu - MWMtMC42LTAuMi0xLjItMC40LTEuNy0wLjZjLTAuNi0wLjItMS4yLTAuNC0xLjgtMC42Yy02 - LjYtMi0xMy40LTMuMy0yMC41LTMuOQoJYy0wLjYtMC4xLTEuMy0wLjEtMS45LTAuMmMtMC43 - LDAtMS4zLTAuMS0yLTAuMWMtMS43LTAuMS0zLjQtMC4xLTUuMS0wLjFjLTI1LjksMC00OS42 - LDkuNi02Ny43LDI1LjVjLTAuNSwwLjQtMC45LDAuOC0xLjQsMS4yCglDOC4xLDM4LjQsNTAu - OCwwLjksMTAyLjMsMC45YzEyLjYsMCwyNC43LDIuMywzNS45LDYuNGMwLDAsMCwwLDAsMEMx - MTIuOCwxNS45LDkyLDM0LjEsNzkuOCw1Ny42YzcuMSwwLjcsMTQsMi4xLDIwLjcsNC4yCglj - MTAuMi0xNi44LDI2LjItMjkuNyw0NS4yLTM1LjljMC42LTAuMiwxLjItMC40LDEuNy0wLjZj - MC42LTAuMiwxLjItMC4zLDEuOC0wLjVjMC4xLDAuNiwwLjMsMS4yLDAuNCwxLjhjMC4xLDAu - NiwwLjMsMS4yLDAuNCwxLjgKCWMxLjIsNS41LDEuOCwxMS4zLDEuOCwxNy4yYzAsMTQuNS0z - LjcsMjguMS0xMC4zLDQwYy0wLjMsMC41LTAuNiwxLjEtMC45LDEuNmMtMC4zLDAuNS0wLjYs - MS4xLTEsMS42Yy0zLjUsNS43LTcuOCwxMS4xLTEyLjYsMTUuOAoJYy0wLjQsMC40LTAuOSww - LjktMS4zLDEuM2MtMC40LDAuNC0wLjksMC44LTEuMywxLjJjLTguNSw3LjYtMTguNiwxMy41 - LTI5LjcsMTcuMmMxLjcsNi42LDQuMiwxMi45LDcuNSwxOC43CgljMTIuOS00LjQsMjQuNi0x - MS4zLDM0LjYtMjAuMWMwLjUtMC40LDAuOS0wLjgsMS40LTEuMmMwLjUtMC40LDAuOS0wLjgs - MS40LTEuM2M1LjEtNC44LDkuNy0xMC4xLDEzLjctMTUuOAoJYzAuNC0wLjUsMC43LTEuMSwx - LjEtMS42YzAuNC0wLjUsMC43LTEuMSwxLjEtMS42YzEwLjQtMTYuMSwxNi41LTM1LjIsMTYu - NS01NS43YzAtNi43LTAuNi0xMy4zLTEuOS0xOS42CglDMTkyLDQ1LDIwNiw3My4yLDIwNiwx - MDQuNiIvPgo8L3N2Zz4K - - - - - iVBORw0KGgoAAAANSUhEUgAAAM4AAADRCAYAAACEn42KAAAKW0lEQVR4nO2dW3LkNgxFPVXe - RpaW1WVpWYhTmik6sppQUyQeF+A9n1NTbjaAI0BsPT6/vr4+CCHP+IxeAPn4+PXPv0NHr6+/ - //plvRYyBsUxZlQKrb9FuXygOApoyrHK3VoolR4UZxIkWUa5rpkizUNxHpBRljt634cyjUFx - bqgmygjsSmNQnAs7ynLHEQ/K8wrF+aAsEhRGZltxKEsfyjLGduJQmD4U5hnbiENh+lCYOUqL - Q1lkKMwaJcWhMH0oix5lxKEsMhRGn/TiUBgZCmNHanEojQylsSWtOJRGhtLYk1IcStOHwviR - ShwKI0NpfEkjDqWRoTT+pBCH0vShMHFAi0NhZChNLLDiUBoZShMPpDiUpg+FwQFOHErTJ4M0 - LXcZ1roKjDgURga9EK+52+F2awhxKI0McgF65g1NxnBxKI0MUqE0IvOFJE+oOJRGBqVAGii5 - QpEnTByURCCCUBgNxDwhyBMiDmIyUIguiAPE/BxxOa8rWh53cRCTgkK0NNlyEymPqzjZEuNJ - NWm8ijpKHjdxKI1MpDQV8hIhj4s4FZJjBaXRwVsec3EqJUebKGmq5sRTHlNxqiZIA0pjg5c8 - ZuJUT9AKEdLslA8PeUzE2SlJT6E0PljLoy7OjkkahdL4YilP+EWexI5q0lyvHhjBSh5Vcaol - ShPvboOQi+jLYixREwchUajsKA0SFgJzVCsGpfFBRRwmS8az2zAPMtpdZ1kcJkuG0mChKQ9H - tQJQGn+WxGHCZLy6DXPwDK2uMy0OEyZDaf5QdSv6gKNaUtClQUaj60yJw6TJeN31aP0Z5J7H - 4jBpsTD+Oqx2HY5qilh3m92lQXouwiNxdk/cHZVPhMkr7DhJ4EHLhtmuMywOEyfDEe2V6h2Y - HWcRSpOfma5DcRbpFXb1o21FnsozJA6Pes94F6/RBDHuuLDjBHAWQpKI0vjzpOu8Fad6AjXG - qpUY9SSqHvMKlO44Xucavc+ZKX4Kk4dbcTIkEvVEXEumjFjkxCt2o+Nayo6DKss7dpapGinE - ySrKCJQpJ6I4kcmrLMoI3CSIZWRcg+k4u8vS4xwTSoRFVxyvJFGWcbJ0ocwbA08I6TgUZp4s - AmXn3bjmJg5l0YVjXCwv4mgngcLYg9KFdsq1WcfZKYgooAhUhbtxTVUcyoJBpTEOdf0/xJld - JIXBxasL7VYDSx1nt2BlZuZtZkQe16bFoTT5sJLHqhaQRZ8Sh9LkhRsIOnyLMxJIClMHjm7j - 9Ma14Y5DaeqhIc+OY9rBkDiUpi4c3ea4FaeiMKhH2GiQRjeUdZy5jmuf7R+v/zFjgXgE/O4z - MsbszFN5sn/fFV46TrZgIB2dKhyAOLqN8UOcLEnOlFRpreixjhrdsuT2sy0UPZHeAbV+FkCG - uN/Jg7xuD353HNQgoB19LB5diy4Q0qZBNOcNgk/EhGVP1Ey3GnksbgSe522Z8g7zsI6DTIGz - BKULVdjssAJCHArTJ1Ig75xkq4EwcZADhXZU9R7juCHwHndxkIXJQFQXsvy8jDXhJk7G4CBj - JRDPa8YwF4fC2DL71mTpb13/je847WMqTtagZENDHl4lMEaLtZk4GYOSmZXRjZsBzzERh9L8 - xDMeT7tPlDTZa0RdnOwBqcDq6MZO8x41cSgMFiPyRO2gVagVFXEqBKIid+c93HZeY1mcatJU - LJ5r94nMWZV6WRKnShB24F2uKh4wrDhiOS0OpamDlzSVauaxOJW+PKE0szwSp9qX3x1KM88j - cXgbLSF/eDyqUZ78eG4EVK2VpbcVVA1KVbx3zirXx/KLpSoHpxKURpflH0ApDz4Iv9FUmlLU - biuoJI/mjWHRRH2Pay1UiecZtYs8K8lTAVRpqtSJyevaKwQmM6jSVMLkRrYqR5WMZCjWCvVh - dut0heBo4RGLaGF26jYHpg/roDw+RBfpjDTZa8P88VA877ElozTn/5utLr7fVuD9gdkChUq0 - MAe7jWdn3B+BS4HWQClOLWkydp2DsIeuo9zKmwEUWRrMF8hrPtC6EMrVAwhruGLxkI+MXQdC - nAaaQFEgCnPAJ+P8D5Q4jR0FQi9Aa2mydR3ot05XOg+SCgMx7mf4XOk+ny2hKHO9RCWJGsjx - PvCOM3rXOefrx6iGLk+jokRojLwlO0OtWPFyjoM8uvWwksijMBCLL/pAhN51Gr/F6S0WManv - GFlvZFLQiwJ5bWjc7qpllOcdM0/w34GZ712xPkZ5ux2dbXTTZIdxDfFAgdiZrzka/h0nOsFV - QCoKlHVk5FuckYTu0H2QCtsSre9odUBFz8PUlQM7dZ9q4xpyMaLSy83Saz52kUebqKNpNmmQ - u47Ki6UoED6WBbjjQfSHOLOGVxco87iGesTOgpQT1aujqwjk9VQaq8+IGgOz5/0JJrcVVBHI - m9Xiq9hdUM9zXsTRXGglgSyOqFqxRiysCtzl2+VGtowCoR7pGohr22lcc70DNKNA1lwFfVd8 - iMLsSFcc66NtVoEifyWnML68y3PoMwfOxYAoEX+ofA7yuaAmojjei814P74miMVBZCCfctNA - eMTq03MQkp+R/EKLc2X3rkRwuBUnw/hwtz5KRaxI1XGeMiL9zLtcdr0HZZTMGwSj634rTpVk - SqB9t+rxrkLpjmOJ5SYB5cFnSBwm0h/G3J8nB0J2nAW4NV2Hp3mkOItwZNuTYXGYRBnKk5uZ - 3LHjJCCjPNXH2EfiZEygF9ULpSqzOWPHUYQjWy5WcvVYHCYwjt1jj/T9pzoO0hdAw3pkY+x1 - WM0RR7WEUJ54psVh8mQ8NgoY/3k0crPUcZg8GcqDudOotR6OaslBl6cqy+IwcTJeR1zmYAzN - XKh0HCZOhvLUhKNaISiPjPbBS00cJk3G8ySZeXjFIvaqHYdJk6E8teCoVhQEeRC2oq3WoC4O - QsJQ8f5do31WlXw8/R6WsTbpOJRHJuJHwR3zYR1js1Ftx2SNEiVP+2zPz43AI7am5ziURybq - cpTqOfGKqfnmQPVErRApT/t878+2xDOWLrtqlEcm8kLISnnxjqHbdnSlJGkTLU9bQ8TnaxAR - O9ffcSiPTPQl+FlzExUz9x9AsybIAwR52jq0/pYlkbEKuXKA8shEy3OAOL4hvJ3vTNglN5RH - BkGeg/MakHKFEJvQa9UojwyKPA2ULoQSk/CLPCmPDJo8B5ECIcUiXJwDyiODKM+B9xiHFgMI - cQ5QRgFEUOVp7HjggxGnsWMSRsggT/QaPIET54Dy9Gkx2a1IEYEU54DyyKB3nx2AFeeA5z0y - lCcWaHEa7D59OLrFkUKcA8ojw+7jTxpxDji6yVAeX1KJ02D36cPRzY+U4hxQHhl2H3vSinNA - eWQojy2pxTngeY8MRzc70ovTQL13BAEKpE8Zcc6wC/U5x4MSrVFSnAYFkmEXWqO0OA2OcTIU - aI4txDnDLtSHAj1jO3Ea7EJ9eB40xrbinKFEfdiFZCjOBUr0E0rTh+LcsKtElOU9FGeQazFV - E4myPIPiTJK9G1GUNSiOAndFiCQVZdGD4hgzUqwrclGGGCgOACz+fPwHwrxYlCRUiFQAAAAA - SUVORK5CYII= - - - - - - Knot Resolver - - - - - - - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+ - CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgog - ICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpy - ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHht - bG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8v - d3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9k - aS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2Fw - ZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZGF0 - YS1uYW1lPSJMYXllciAxIgogICB2aWV3Qm94PSIwIDAgODggODUuMDAwMDAzIgogICB4PSIw - cHgiCiAgIHk9IjBweCIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMTIzIgogICBzb2Rp - cG9kaTpkb2NuYW1lPSJub3VuX3NlcnZlcnNfMTY1MzA4My5zdmciCiAgIHdpZHRoPSI4OCIK - ICAgaGVpZ2h0PSI4NSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40IDVkYTY4OWMzMTMs - IDIwMTktMDEtMTQiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTEyOSI+CiAgICA8 - cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAg - IDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBl - CiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUv - U3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+ZGF0YSwgc2VydmVyLCBkYXRhYmFz - ZSxkYiwgaG9zdGluZzwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJE - Rj4KICA8L21ldGFkYXRhPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxMjciIC8+CiAgPHNvZGlw - b2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xv - cj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5j - ZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEw - IgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFk - b3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSI2MzYiCiAgICAgaW5rc2NhcGU6 - d2luZG93LWhlaWdodD0iMTA1NCIKICAgICBpZD0ibmFtZWR2aWV3MTI1IgogICAgIHNob3dn - cmlkPSJmYWxzZSIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxl - ZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRv - bT0iMCIKICAgICBpbmtzY2FwZTp6b29tPSIxLjg4OCIKICAgICBpbmtzY2FwZTpjeD0iNDQi - CiAgICAgaW5rc2NhcGU6Y3k9IjMwLjUwMDAwNCIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0i - NjQyIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyIgogICAgIGlua3NjYXBlOndpbmRvdy1t - YXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTIzIiAvPgog - IDx0aXRsZQogICAgIGlkPSJ0aXRsZTk3Ij5kYXRhLCBzZXJ2ZXIsIGRhdGFiYXNlLGRiLCBo - b3N0aW5nPC90aXRsZT4KICA8cmVjdAogICAgIHg9IjEwIgogICAgIHk9IjkiCiAgICAgd2lk - dGg9IjQiCiAgICAgaGVpZ2h0PSI2IgogICAgIGlkPSJyZWN0OTkiIC8+CiAgPHJlY3QKICAg - ICB4PSIxOCIKICAgICB5PSI5IgogICAgIHdpZHRoPSI0IgogICAgIGhlaWdodD0iNiIKICAg - ICBpZD0icmVjdDEwMSIgLz4KICA8cmVjdAogICAgIHg9IjI2IgogICAgIHk9IjkiCiAgICAg - d2lkdGg9IjQiCiAgICAgaGVpZ2h0PSI2IgogICAgIGlkPSJyZWN0MTAzIiAvPgogIDxyZWN0 - CiAgICAgeD0iMTAiCiAgICAgeT0iMzYiCiAgICAgd2lkdGg9IjQiCiAgICAgaGVpZ2h0PSI2 - IgogICAgIGlkPSJyZWN0MTA1IiAvPgogIDxyZWN0CiAgICAgeD0iMTgiCiAgICAgeT0iMzYi - CiAgICAgd2lkdGg9IjQiCiAgICAgaGVpZ2h0PSI2IgogICAgIGlkPSJyZWN0MTA3IiAvPgog - IDxyZWN0CiAgICAgeD0iMjYiCiAgICAgeT0iMzYiCiAgICAgd2lkdGg9IjQiCiAgICAgaGVp - Z2h0PSI2IgogICAgIGlkPSJyZWN0MTA5IiAvPgogIDxyZWN0CiAgICAgeD0iMTAiCiAgICAg - eT0iNjMiCiAgICAgd2lkdGg9IjQiCiAgICAgaGVpZ2h0PSI2IgogICAgIGlkPSJyZWN0MTEx - IiAvPgogIDxyZWN0CiAgICAgeD0iMTgiCiAgICAgeT0iNjMiCiAgICAgd2lkdGg9IjQiCiAg - ICAgaGVpZ2h0PSI2IgogICAgIGlkPSJyZWN0MTEzIiAvPgogIDxyZWN0CiAgICAgeD0iMjYi - CiAgICAgeT0iNjMiCiAgICAgd2lkdGg9IjQiCiAgICAgaGVpZ2h0PSI2IgogICAgIGlkPSJy - ZWN0MTE1IiAvPgogIDxwYXRoCiAgICAgZD0iTSA2MS41LDcgSCA2MCBWIDUgQSA1LDUgMCAw - IDAgNTUsMCBIIDUgQSA1LDUgMCAwIDAgMCw1IHYgMTQgYSA1LDUgMCAwIDAgNSw1IGggMSB2 - IDMgSCA1IGEgNSw1IDAgMCAwIC01LDUgdiAxNCBhIDUsNSAwIDAgMCA1LDUgaCAxIHYgMyBI - IDUgYSA1LDUgMCAwIDAgLTUsNSB2IDE0IGEgNSw1IDAgMCAwIDUsNSBoIDEgdiA3IGggNDgg - diAtNyBoIDEgYSA1LDUgMCAwIDAgNSwtNSB2IC0xIGggMS41IEMgNzQuMjYsNzIgODgsNjku - MDkgODgsNjIuNzEgdiAtNDYuODEgMCBDIDg3Ljg0LDkuNzkgNzQuMTksNyA2MS41LDcgWiBN - IDUsMjAgQSAxLDEgMCAwIDEgNCwxOSBWIDUgQSAxLDEgMCAwIDEgNSw0IGggNTAgYSAxLDEg - MCAwIDEgMSwxIFYgNy4xOCBDIDQ1LjE1LDcuODcgMzUuMTMsMTAuNjcgMzUsMTUuOSB2IDAg - NC4xIHogbSAzMCw0IHYgMyBIIDEwIFYgMjQgWiBNIDUsNDcgQSAxLDEgMCAwIDEgNCw0NiBW - IDMyIGEgMSwxIDAgMCAxIDEsLTEgaCAzMCB2IDE2IHogbSAzMCw0IHYgMyBIIDEwIFYgNTEg - WiBNIDUwLDgxIEggMTAgdiAtMyBoIDQwIHogbSA2LC04IGEgMSwxIDAgMCAxIC0xLDEgSCA1 - IEEgMSwxIDAgMCAxIDQsNzMgViA1OSBhIDEsMSAwIDAgMSAxLC0xIGggMzAgdiA0LjcxIGMg - MCw1LjQ3IDEwLjA4LDguMzggMjEsOS4xMSB6IE0gODQsNjIuNzEgQyA4NCw2NC4yOSA3Ni4z - NCw2OCA2MS41LDY4IDQ2LjY2LDY4IDM5LDY0LjI5IDM5LDYyLjcxIFYgNTIuOSBDIDQ0LDU1 - LjY5IDUzLDU3IDYxLjUsNTcgNzAsNTcgNzksNTUuNjkgODQsNTIuOSBaIE0gODQsNDcuNjQg - QyA4NCw0OS4yNSA3Ni4zNCw1MyA2MS41LDUzIDQ2LjY2LDUzIDM5LDQ5LjI1IDM5LDQ3LjY0 - IFYgMzcgYyA1LDIuNzEgMTQsNCAyMi41LDQgQyA3MCw0MSA3OSwzOS43MiA4NCwzNyBaIE0g - ODQsMzEuODkgQyA4NCwzMy4zNyA3Ni4xMiwzNyA2MS41LDM3IDQ2Ljg4LDM3IDM5LDMzLjM3 - IDM5LDMxLjg5IFYgMjEuMDYgQyA0NCwyMy43NCA1MywyNSA2MS41LDI1IDcwLDI1IDc5LDIz - Ljc0IDg0LDIxLjA2IFogTSA2MS41LDIxIEMgNDYsMjEgMzksMTcuMTYgMzksMTYgMzksMTQu - ODQgNDYsMTEgNjEuNSwxMSA3NywxMSA4NCwxNC44NCA4NCwxNiBjIDAsMS4xNiAtNyw1IC0y - Mi41LDUgeiIKICAgICBpZD0icGF0aDExNyIKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3Vy - dmF0dXJlPSIwIiAvPgo8L3N2Zz4K - - - - - iVBORw0KGgoAAAANSUhEUgAAAFkAAABWCAYAAACkXTp6AAACgUlEQVR4nO2d0Y6EIAwAz8T/ - /+Xd44GNIYIg2E5r5+2yd2sZK0JtvP3z+fwFz7Iff9i2za3x/2TatI79k+xZcCKNT0v0ngPQ - OLg0WqL32geal9cqKMlzKtmD4EQaB0F0NZODdbxOciuzn7qCXUq+O0X0/N2dEzEkuQyiPODs - 5zOxSHF23KtxmMhkws2rRY6vJhsveYXg3itm9lg12WjJvYNedcO6+p7eeMpND1ZybUCaa/iz - Y9fiPIpGSr5zc9Eix9XK8iHJVwOd/TxhSfCRs91lzmZkJh+xIDhT28bjJWuWKEepTRl4yYmr - dag2V6sOE5IzK3eMK+O44lQyfYeVOcb5tPAZJ6YyuQU5MfCSe9ahBFpx7vkXrAwioxnv6NT0 - y+SeLaPEjWZlveLOiXhijPjpYgbKks+1ZApDSzj6vE3lNW1amrymTUuTV7VpaYFr0/J4wl23 - aVHAL+GinixE1JMFcVVP7v1yzTat8vuiniyA9qrkstRJ5pih2iJLeq8evOQjBOGPt86SiHoy - BMqSD9em5RHXmUwhJAsQkgUIyQKYbtOyQmSyAHjJburJ9DYtN/VkC21ar6gn04h6sjDa091w - PZnUpkUob9a4VU+mDaKEIHyqnkwXXGKunmxNcC+UJV+0aQkQbVoCuFnCkQnJAoRkAUy3aVkB - l8llRdByqRP9epwSN6VOErX6NmW6GX0TIlJyoudBArXUaeq9cCNPbAg7xSVvONRo06I/Gku4 - eFcn6TUMmZGEMSG5pDXAp07AzJxvUnIL4gbInWQi0aYlQGSyACFZABNtWqtQ/bdEtQAId+Ze - yLHGdCFASBZg6slI0EdksgAhWYCQLEBTMmkZZJkvMtHRb/cyBPsAAAAASUVORK5CYII= - - - data, server, database,db, hosting - - - - upstreamresolver - - - - - - - client - - - - - PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+ - CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgog - ICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpy - ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHht - bG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8v - d3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9k - aS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2Fw - ZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgZGF0 - YS1uYW1lPSJMYXllciAxIgogICB2aWV3Qm94PSIwIDAgNzAgNjYiCiAgIHg9IjBweCIKICAg - eT0iMHB4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcxNDEiCiAgIHNvZGlwb2RpOmRv - Y25hbWU9Im5vdW5fdGVybWluYWxfMTY1MzA2MC5zdmciCiAgIHdpZHRoPSI3MCIKICAgaGVp - Z2h0PSI2NiIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40IDVkYTY4OWMzMTMsIDIwMTkt - MDEtMTQiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTE0NyI+CiAgICA8cmRmOlJE - Rj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpm - b3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAg - ICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJ - bWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+ZGF0YSwgc2VydmVyLCBkYXRhYmFzZSwgbW9u - aXRvciwgdGVybWluYWw8L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpS - REY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTQ1IiAvPgogIDxzb2Rp - cG9kaTpuYW1lZHZpZXcKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29s - b3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMSIKICAgICBvYmplY3R0b2xlcmFu - Y2U9IjEwIgogICAgIGdyaWR0b2xlcmFuY2U9IjEwIgogICAgIGd1aWRldG9sZXJhbmNlPSIx - MCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMCIKICAgICBpbmtzY2FwZTpwYWdlc2hh - ZG93PSIyIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iOTU2IgogICAgIGlua3NjYXBl - OndpbmRvdy1oZWlnaHQ9IjEwNTQiCiAgICAgaWQ9Im5hbWVkdmlldzE0MyIKICAgICBzaG93 - Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjAiCiAgICAgZml0LW1hcmdpbi1s - ZWZ0PSIwIgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjAiCiAgICAgZml0LW1hcmdpbi1ib3R0 - b209IjAiCiAgICAgaW5rc2NhcGU6em9vbT0iNy41NTIiCiAgICAgaW5rc2NhcGU6Y3g9IjUy - LjIwNTQ4OCIKICAgICBpbmtzY2FwZTpjeT0iMzMuODcwMTc2IgogICAgIGlua3NjYXBlOndp - bmRvdy14PSI5NjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjIiCiAgICAgaW5rc2NhcGU6 - d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcx - NDEiIC8+CiAgPHRpdGxlCiAgICAgaWQ9InRpdGxlMTMxIj5kYXRhLCBzZXJ2ZXIsIGRhdGFi - YXNlLCBtb25pdG9yLCB0ZXJtaW5hbDwvdGl0bGU+CiAgPHBhdGgKICAgICBkPSJNIDgsMzkg - SCA2MiBWIDggSCA4IFogTSAxMiwxMiBIIDU4IFYgMzUgSCAxMiBaIgogICAgIGlkPSJwYXRo - MTMzIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPHBhdGgK - ICAgICBkPSJtIDAsMCB2IDQ3IGggMjggdiA3LjA4IGMgLTMuNDQwOTI3LDAuNDk2NjUzIC01 - Ljk5NTkyNSwzLjQ0MzQxOCAtNiw2LjkyIHYgNSBIIDQ4IFYgNjEgQyA0Ny45OTU5LDU3LjUy - MzQxOCA0NS40NDA5MjcsNTQuNTc2NjUzIDQyLDU0LjA4IFYgNDcgSCA3MCBWIDAgTSA0NCw2 - MSB2IDEgSCAyNiB2IC0xIGMgMCwtMS42NTY4NTQgMS4zNDMxNDYsLTMgMywtMyBoIDEyIGMg - MS42NTY4NTQsMCAzLDEuMzQzMTQ2IDMsMyB6IE0gMzIsNTQgdiAtNyBoIDYgdiA3IHogTSA3 - MCw1LjU5IFYgMCBNIDQsNDMgViA0IGggNjIgdiAzOSB6IgogICAgIGlkPSJwYXRoMTM1Igog - ICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc29kaXBvZGk6bm9k - ZXR5cGVzPSJjY2NjY2NjY2NjY2NzY2Nzc3NzY2NjY2NjY2NjY2NjIiAvPgo8L3N2Zz4K - - - - - iVBORw0KGgoAAAANSUhEUgAAAEcAAABDCAYAAADOIRgJAAABJklEQVR4nO3ZyRKCMBAAUVPF - //8yGk8WhGadJGD3wZO4PMcQimEcx5eVG/JDSkmhSZ+hSUPrD9Fz4kAznDxOLT5I60pLi5MD - iQOJA63iPPU0v2VtdXIgcSBxoN04d90HHVk7nRxIHEgcSBxIHEgcSBxIHEgcSBxIHEgcSBxI - HEgcSBxIHEgcSBxIHEgcSBxoN85Tbw+XcnIgcSBxoFWcu97+vSInBxIHEgea4fzTPmYtJwcS - BxIH+uLU3MtM17Sl9976vMicHEgcSBxIHEgcSByoOU7PlytVcc5A5GNr73Wq4Fw1Hb+vUwMq - HCfqb1NjkkJxSjBHv1CLtanqmnPml87HToGipycMJ+LCsQQUWfNTec9Vw+l5P7OUkwOJA4kD - heE84TbyGynKUBIg/xD7AAAAAElFTkSuQmCC - - - data, server, database, monitor, terminal - - - - - - - - - - - - - - recursion - unencrypted DNS - - - - - (optional) - forwarding - unencrypted DNS - DNS-over-TLS - - - - - - - - - recursion - - - - - - client asking questions - unencrypted DNSDNS-over-TLSDNS-over-HTTPS - HTTP management API - - - - - - - - - - - ... as server - - - - - ... as client - - - - - - \ No newline at end of file diff --git a/doc/dev/systemd-multiinst.rst b/doc/dev/systemd-multiinst.rst deleted file mode 120000 index 7a6a86a45..000000000 --- a/doc/dev/systemd-multiinst.rst +++ /dev/null @@ -1 +0,0 @@ -../../systemd/multiinst.rst \ No newline at end of file diff --git a/doc/dev/worker_api.rst b/doc/dev/worker_api.rst deleted file mode 100644 index ea971f415..000000000 --- a/doc/dev/worker_api.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Worker API reference -==================== - -.. doxygenfile:: daemon/worker.h - diff --git a/doc/kresctl.8.in b/doc/kresctl.8.in deleted file mode 100644 index 538356afc..000000000 --- a/doc/kresctl.8.in +++ /dev/null @@ -1,67 +0,0 @@ -.TH "kresctl" "8" "@date@" "CZ.NIC" "Knot Resolver @version@" -.\" -.\" kresctl.8 -- Knot Resolver control tool manpage -.\" -.\" Copyright (c) CZ.NIC. All rights reserved. -.\" -.\" SPDX-License-Identifier: GPL-3.0-or-later -.\" -.\" -.SH "NAME" -.B kresctl -\- Control Knot Resolver @version@, the full caching DNSSEC-enabled resolver -.SH "SYNOPSIS" -.B kresctl -.RB [ \-s | \-\-socket -.IR API_SOCKET ] -.IR -.IR -.SH "DESCRIPTION" -.B \fIkresctl\fR is a control tool for Knot Resolver, a DNSSEC-enabled full caching resolver. -.P - -\fBkresctl\fR may be used to control and inspect the configuration of running -Knot Resolver via its HTTP API. - -Full documentation is available at -\fIhttps://www.knot-resolver.cz/documentation/latest/\fR or in package -documentation (available as knot-resolver-doc package in most distributions. -.SH OPTIONS -The available options are: -.TP -.B \-s\fI \fR, \fB\-\-socket \fI - -Specify how to connect to a running Knot Resolver. Accepts path to Unix-domain -socket or \fIhost:port\fR. Defaults to \fI/var/run/knot-resolver/manager.sock\fR - -Some commands do not require communication with the running resolver. In such -cases, the value of this option is ignored and the command may succeed even -if the socket is invalid. -.B \-h, --help -Print help message and exit. -.SH COMMANDS -.TP -.B config [-d|--delete] [--stdin] \fIjson_ptr\fR \fI[new_value]\fR -Get or modify resolver's runtime configuration. - -\fIjson_ptr\fR follows \fBRFC 6901\fR and specifies, which part of the configuration -will the tool operate on. This argument is required. When not given any additional -options or arguments, prints the current configured value. Equivalent to GET method -in the underlying HTTP API. - -When \fB-d\fR or \fB--delete\fR is provided, \fBkresctl\fB tries to remove -the runtime configuration subtree. The operation fails if it renders the -configuration invalid. Equivalent to the DELETE method in the HTTP API. - -When \fB--stdin\fR or \fInew_value\fR are provided, the new value (from the -argument or from reading stdin) is put into the configuration at the given -\fIjson_ptr\fR. The operation fails if it renders the configuration invalid. -Equivalent to PUT method in the underlying HTTP API. -.TP -.B stop -Gracefully stops the running resolver. -.SH "SEE ALSO" -\fBkresd(8)\fR, @man_seealso_systemd@\fIhttps://www.knot-resolver.cz/documentation/latest/\fR -.SH "AUTHORS" -.B kresd -developers are mentioned in the AUTHORS file in the distribution. diff --git a/doc/kresd.8.in b/doc/kresd.8.in deleted file mode 100644 index 29d4ed9b4..000000000 --- a/doc/kresd.8.in +++ /dev/null @@ -1,122 +0,0 @@ -.TH "kresd" "8" "@date@" "CZ.NIC" "Knot Resolver @version@" -.\" -.\" kresd.8 -- kresd daemon manpage -.\" -.\" Copyright (c) CZ.NIC. All rights reserved. -.\" -.\" SPDX-License-Identifier: GPL-3.0-or-later -.\" -.\" -.SH "NAME" -.B kresd -\- full caching DNSSEC-enabled Knot Resolver @version@. -.SH "SYNOPSIS" -.B kresd -.RB [ \-a | \-\-addr -.IR addr[@port] ] -.RB [ \-t | \-\-tls -.IR addr[@port] ] -.RB [ \-S | \-\-fd -.IR fd ] -.RB [ \-T | \-\-tlsfd -.IR fd ] -.RB [ \-c | \-\-config -.IR config ] -.RB [ \-n | \-\-noninteractive ] -.RB [ \-q | \-\-quiet ] -.RB [ \-v | \-\-verbose ] -.RB [ \-V | \-\-version ] -.RB [ \-h | \-\-help ] -.IR [rundir] -.SH "DESCRIPTION" -.B Knot Resolver is a DNSSEC-enabled full caching resolver. -.P -Default mode of operation: when it receives a DNS query it iteratively -asks authoritative nameservers starting from root zone (.) and ending -with a nameservers authoritative for queried name. Automatic DNSSEC means -verification of integrity of authoritative responses by following -keys and signatures starting from root. Root trust anchor is automatically -bootstrapped from IANA, or you can provide a file with root trust anchors -(same format as Unbound or BIND9 root keys file). - -The daemon also caches intermediate answers into cache, which by default -uses LMDB memory-mapped database. This has a significant advantage over -in-memory caches as the process may be stopped and restarted without -loss of cache entries. In multi-user scenario a shared cache -is potential privacy/security issue, with kresd each user can have resolver cache -in their private directory and use it in similar fashion to keychain. - -.P -To use a locally running -.B kresd -for resolving put -.sp -.RS 6n -nameserver 127.0.0.1 -.RE -.sp -into -.IR resolv.conf (5) -and start -.B kresd - -.P -The daemon may be configured also as a plain forwarder using query policies. -This requires using a config file. Please refer to documentation for -configuration file options. It is available at -\fIhttps://www.knot-resolver.cz/documentation/latest/\fR or in package -documentation (available as knot-resolver-doc package in most distributions). - -The available CLI options are: -.TP -.B \-a\fI addr[@port]\fR, \fB\-\-addr=\fI -Listen on given address (and port) pair. If no port is given, \fI53\fR is used as a default. -Option may be passed multiple times to listen on more addresses. -.TP -.B \-t\fI addr[@port]\fR, \fB\-\-tls=\fI -Listen using TLS on given address (and port) pair. If no port is -given, \fI853\fR is used as a default. Option may be passed multiple -times to listen on more addresses. -.TP -.B \-S\fI fd\fR, \fB\-\-fd=\fI -Listen on given file descriptor(s), passed by supervisor. -Option may be passed multiple times to listen on more file descriptors. -.TP -.B \-T\fI fd\fR, \-\-tlsfd=\fI -Listen using TLS on given file descriptor(s), passed by supervisor. -Option may be passed multiple times to listen on more file descriptors. -.TP -.B \-c\fI config\fR, \fB\-\-config=\fI -Set the config file with settings for kresd to read instead of reading the -file at the default location (\fIconfig\fR). -.TP -.B \-f\fI N\fR, \fB\-\-forks=\fI -This option is deprecated since 5.0.0! - -With this option, the daemon is started in non-interactive mode and instead creates a -UNIX socket in \fIrundir\fR that the operator can connect to for interactive session. -A number greater than 1 forks the daemon N times, all forks will bind to same addresses -and the kernel will load-balance between them on Linux with \fISO_REUSEPORT\fR support. - -If you want multiple concurrent processes supervised in this way, -they should be supervised independently (see \fBkresd.systemd(7)\fR). -.TP -.B \-n\fR, \fB\-\-noninteractive -Daemon will refrain from entering into read-eval-print loop for stdin+stdout. -.TP -.B \-q\fR, \fB\-\-quiet -Daemon will refrain from printing the command prompt. -.TP -.B \-v\fR, \fB\-\-verbose -Increase logging to debug level. -.TP -.B \-h -Show short command-line option help. -.TP -.B \-V -Show the version. -.SH "SEE ALSO" -@man_seealso_systemd@\fIhttps://www.knot-resolver.cz/documentation/latest/\fR -.SH "AUTHORS" -.B kresd -developers are mentioned in the AUTHORS file in the distribution. diff --git a/doc/meson.build b/doc/meson.build deleted file mode 100644 index 0dfa3cb3e..000000000 --- a/doc/meson.build +++ /dev/null @@ -1,85 +0,0 @@ -# documentation -# SPDX-License-Identifier: GPL-3.0-or-later - -# man page -man_config = configuration_data() -man_config.set('version', meson.project_version()) -man_config.set('date', run_command('../scripts/get-date.sh', check: true).stdout()) - -man_config.set('man_seealso_systemd', '') -if systemd_legacy_units == 'enabled' - man_config.set('man_seealso_systemd', '\\fIkresd.systemd(7)\\fR, ') -endif - -man_kresd = configure_file( - input: 'kresd.8.in', - output: 'kresd.8', - configuration: man_config, -) -install_man(man_kresd) - -man_kresctl = configure_file( - input: 'kresctl.8.in', - output: 'kresctl.8', - configuration: man_config, -) -install_man(man_kresctl) - -# html and info documentation -if get_option('doc') == 'enabled' - message('--- doc dependencies ---') - doxygen = find_program('doxygen') - sphinx_build = find_program('sphinx-build-3', required: false) - if not sphinx_build.found() - sphinx_build = find_program('sphinx-build') - endif - - # python dependencies: breathe, sphinx_rtd_theme - python_breathe = run_command('python3', '-c', 'import breathe', check: false) - if python_breathe.returncode() != 0 - python_breathe = run_command('python2', '-c', 'import breathe', check: false) - if python_breathe.returncode() != 0 - error('missing doc dependency: python breathe') - endif - python = 'python2' - else - python = 'python3' - endif - - python_sphinx_rtd_theme = run_command(python, '-c', 'import sphinx_rtd_theme', check: false) - if python_sphinx_rtd_theme.returncode() != 0 - error('missing doc dependency: python sphinx_rtd_theme') - endif - - python_sphinx_tabs = run_command(python, '-c', 'import sphinx_tabs', check: false) - if python_sphinx_tabs.returncode() != 0 - error('missing doc dependency: python python-sphinx-tabs') - endif - - jsonschemaforhumans = run_command(python, '-c', 'import json_schema_for_humans', check: false) - if jsonschemaforhumans.returncode() != 0 - error('missing doc dependency: python json-schema-for-humans') - endif - - message('------------------------') - - # install html docs - install_subdir( - meson.current_source_dir() / 'html', - install_dir: doc_dir, - ) - -endif - - -make_doc = find_program('../scripts/make-doc.sh') -run_target( - 'doc', - command: make_doc -) - - -run_target( - 'doc-strict', - command: [make_doc, '-W'] -) diff --git a/doc/requirements.txt b/doc/requirements.txt deleted file mode 100644 index 6a2487f5f..000000000 --- a/doc/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -Sphinx>=3.0.0 -sphinx-tabs -breathe -json-schema-for-humans -sphinx_rtd_theme diff --git a/doc/resolution.png b/doc/resolution.png deleted file mode 100644 index 65d50275ec3721e594f037912835bfd63c850c31..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 95991 zc-pkPg!Ha(+Z!?jL&FH8tVFRDg+gx;`zwy zD1VbUsrIPh04D52hlqVSX?W;W2daCKx!p@f2j@l-$i*`;2B9pgi;r&xXU<2j6Rep> z_)~KI-V7Y0KJ~hf>CI~xosQQu(tdKlL;LVfwv~Pn;sSmOqC#H@e-Pu~T+IJ}9^#?B z0reSy{?E{Eax{g~ZgSO$^#3zZp>$U8e}4nUn|_A6fE+%fdCWcgpGW_U2PS;@|Hp)_ zUl|~vwiW%Ihs*({!e9RRTQVbvsx6iA%N)=BfIHaY)$JO}pBfsV=5Pc35b^JrXz){n zAhp+6Q7^q}7ub?7MK)d?pXa#Y_~IHr-#g#Q{@>M6_rt6=XT$EN(uIH#Up^p*QU1~r znRi>dmo6Ls$Qfj>&jKXI=06%#f(J@gu ze%IV!u{?eNC`kF${U$T6wzbzFKNLX-y1(SmrrwwPr20D}1#hyQ)c=*A^j>?UXrH%7 z3=9m;PsK{49h#tSDUyM=sL;^RCiT2gWtigB1+n2=3jvE5Q{Xha9Z^p zq;1;(GbfA^xyfvSGNPuY{u?l>&-}?JMSZ*EY{|!gEOY}JM_z+ws2~_4C6pE*17A0% zM_mv4OWb`-HHkO)_mIiZ0ei5&DmPs?5B!C)iLoMw{pslL?&i=g($}KuyI9+3^%Zhk zM`@vEW#F_E`hlKemmUGiw174?SzuN=mX+fkBQ_pRO#kR&@s42;to_;qR}{hty?BqD zZAG1bSI=X~^j;1N@;P277IvCVP8Ih%o6pmgxS(IeED8Ee)Te~tM2{3rwl@mHXS=#i)GYpnwy(*nQ-m3e;`8iAW2hQH@?Y%wmFIib;%}7Hyyan8GIIwi7S8Cc8 zK}kVz28olN$VNKibsSy*8x!1ZI-ge{7?R3T^>)G0=3KkF)j`@CkcDO}+jq!zToIcov~U3!8$)EeaI(hxdk?s<(@4%7|U96PPlf@|Q)%1YFWT=fI`>}>Vz?-%~JLu{GxY42pe zU;(C5fF*22q%j?2N^WsRtFmqk0Ugj~JB0o4+8HmpI;h*oPzu|e`+L{g+S&)Kaz{L9 zwbcF|TWnAi|8xb(S}le1QVULF=jiykCE)7pLNV`Z=mV2~8iMYr20R1Uaf^a}+QC&4 zAOH49*9HqF1LE?PoIfeFD)F@HC0v3ebg6_O=(Kg?3gvGn*79_IH-zxza}O`Cmg(ch zzA)Qfp5uCXhk(=PZl0Ms(eDnfp!`3-vJdP3Oes$AT8{p#4)R|JWZ@6Q_++|H_~+uf zNkfEQxK{Ry;{C=Hg}=4i?Gd#7vaTp0iPIuef|tYHLzsjuBcHXXvd-d|Cn)BAsSX$g zyRk#FHQB3bHhl1d=zroSSL8{omY zSt_(8-j5SS!Afn1vMnNckry0#rSMJ-MK0Y6Yg}-hgCIf*0`jJ>BOVd#rZQnA+AoO9 zYp@dmF%tu>$4tEMO6!;e)`oys2#2_(-)6IlbRLVv77j;gz~ADKlJf_0K63yK6AmfD zrdeSssB32Hw=A4+GcuZ?>1kixkEU$7#+2tT;F%-(2ft0qofpm}`%$GYvzlHx-1LL$ zE*ba_Y$Ssn{-piQnJ;ht8Pc;Q1z|+r2#eGj;6J(AP z0V?;dui|XdD?`{P5YH)};{t7;J7a*=gF`})c$U_-1i0ki8DX@XBoPY-yStrbq5`@} z6qJ-&5}6CL)6*i7%(|tvY`OIsd80XrR0&8!1%;n0YXOXcmA?v&kiGgHs8YtP04ax? zsH{T86y^0BMYecz^2Q?@z7*^Pb=k3o9pX5*`uh6)`BJloUmtqfBKbRJ0qd@rIAc;5 zuc+~h+~M%#br$ZX(qknu^>8nehdlTHN!^woC+;@#nc_awQ_TK!8094_RAxT5&K=!L zMk1w%PG-l)#~C=EDGuO&Wt|xsQj4Rs`H|)f0XZ{dTX_~bbny7=kUt2v9J~$qJq)=0 zPRhl^*@01aGIp|$D8HA2+USALJWY3UNAiV$^;_9l=WFY9eg=#Nh)#m#YEG#d(ZEj{&5s%cf_R~TXl_XLZ8K3m@Mxci zh)70=s;!&bu}NWC;fZURu9)ZEbd@Ty1ohAg-!jiqhPH}xlD?s)&^K%T7_u%R2X@A4r?Nv>5`75u#Phh5)B!gygq*tHfn#dxPR5nhTeaYHH4F&2!LgQSK3dPJL^sgaAKr4O z2;<=-oYE)Q7^Q%c{S3R`hf|-xRb$_sG+-B0ThSPzxrs=+{8l=3If)!-D(V&CkfU|Rr)xtvjp;f^)p+jW4REAbX=An*=B{niRSwXQ zgK0(vQwy)#*hy~W5KTeV?Fi$mF5DVyFk_1bA$joF@G!!Apdwzq1R6)mf6NTMh}iI< zH31yD`Od-){LDKxWrJ`C+niH6_G3;cmKs#{Q}KYSH|+&e z1VyxIflF_F+7JEHOPbrB|QDlgNa7D_83g*LWQ+kSE@R#gmOBexD}iRej6CO3o3 zAU926^;qXkA&;=RYciR$zwXnFM>#s_&eHw9;)D9|7wWB@k5AVlJTs?65Lz>SO&UyI z4*Q``Swlous$a5s47)I&0hX+mJG!x}vZ|GU3}&Y1WY86zJy{>jG?|#4y|(e=_eJ{y zEAQ~`6<$;9i8DH&Oz}xU7J@rU-T9R*>0!^`&a?7yIb3c3D4)7&#!s(`MOshid4wTb z2;bkZ8w90A-$Z_XV|x;zhlD4 zA1Svw%Y)-g?v(U#UkrAcK7JWRccJ?2)%OwPdl^>r9taS7h&i2~cL%MLn#-(^{_YP` z-lvXMs6~ewk%ZD4hOfD5Hv)N+v_!AM`coH?Z$QM#!6RsTUX}djW8@fKQEu*9>%hQ3 zAkJw@gG>Q7kTLTeB;`fZ7~8g|t6$H&r4(}9)CVxxY<;~*ELWm<^ z4B}w(b-ZfIS7lwiO<*LWdrBwKBYy)2(4XDw*G8*8^V{A-Yut7(cs`2w!G?i-yPvRv z5!|{F1pB<_`@&h|`7zCzs9n}d+X zQnB*-bI(E8$ve$oe==bF_z!j?y$>LTYar9pdKg1<_MNbP-@eiqKy3w?bXt&3R?yM zsF`eMaw0)21qH<=@TJf$F`irF!~f}Dr?MRuZK}dPyCOjb?imcld~D<#dErka*D|Tc z{^la`m!ZE2W(SWQF@-CdRnV3!d(DhYe{2|QuMlJiyHMvyN+=Xd`nPHbZ5g@66Lumj zqyd>DfExI6N6+_YfbD}RiURfHm!FN0Z08g2Vi1YG9Ev1GH3K`Et^ua8zvDyGX>Z|hlQUEOIxUk3au#sMh4N>( zB#x8jYUWFCS}om?1C8@rvLBcT(KbRF6#!Zo_{#cuQqtf22T9b+?eJA}sE;Pw=^L1c zKKvy`wip?^UZaLX6sgKYKH0scd%LkGQ_RnshDyl7tHXLa6!Q>BqIRB;n75-`6c>U=;62(<&uQlyO_L{8iXTs{|?q( zE;i^_PGNyoKIOP_JSch4W;qXJEP_4CELSC^zAPa2%v@ewWfmWPj=OZvj3EFBvq>+? z`zmIRcQC9cFGuAo*;?uTp{u;97^Zeg*L5ck&H=f3{qJI#qTg+bxUxj%3t6QNdpVXx zPm~gUs&zT{Nf#den)S=U3u}F9rG16(P}K5Nzb9ZJ@FD*KxxvzI1VcUzUGQNE4DlQ3 z#eck&$S9%1NwQI|Zk!|M`zFQ<Yyn za2E%bMvgVSrvI8w6(C-n7o&Le66BdJSjRn(QD= zK>-1(f_U_@dY*m$;vCGfA$O4|G9Dzkq&fgls9tgSJi`+T#UT*jj&=DFrDS`ak_(7C zXxxw>0{TW2Bo{$KO)EE)j%s9KhQSQvR!?NI9=xWXuzwhoW$0>=`V752qH8&C%iY)I zF77Du<5Rf1G@q<4yqPd`>B@gWl8C}kw1ViO`HmLl-w*jjG1?q1sl;CPGf-Bj+M~ap zC{8YnPq6n1MuF+1Z%AO})XWMA<$G1!!DGmEpq}~SxqXqDxce#gPxmpE{TDz?dNS`M z@S)Wy0-$xyEHF?V%ZzB{_{3iIm(j^~wLkf~oDvfHdckIiJ_ny(N%#y)T0VmFg{xN@O|-p4RE* z!dFhv3ws$1>?e3c>+<7y4ubFAF+ISJ;$;#p+3@i=s+42A6=#B#Q9jL$4-b5`B9=Q! zWr4DIFM}pM+w)6S=mgyY6{nad9?1(i_ZJDz{t(3*!#MXE*-H?&27bJt*Jfdma|kWC zjAq-{REMdZqI08_CEMEBRlmD_r6%+p0Jm*fhHlc3FP$ncjLmD&2NE0)Ams1CPA$(J zq6jnwm~=6bTJDhyx>}XwPV9I=TaoWPa!;0mC`vx11SSt|e0mbQg%e~j!+2j>WKn(f z`{P&Xy#lOni~X6BEk|7n-!AmQ=ej?ktt$q`R#AD1RwKY*`A#Nbn z;<(4hI|H>o&p_Yk(ZP#M+4%8Xd-g@As`YXs5VV@FVe&xWd6$x9_5KWfuON(O;q(B4 zgx(i)vHvOP(gWB&{3&tmeeGvMU=(m7#dUQTgX7}08o+895jzX?i{QkD z$Nv;s73jc-2;LtRhAJW_Bfe4vzivybjHBeQ?DbccNrVOOi@$=k4QkZ?UoHAD;7;B8 zHi$|0<(2*CBagYL`;xW%ha}PI{}i$F3DHJD*KGWmT(Ciry@Ku8uXA?V06Bfxus6Q_ z&xmi_=&by1_|T?Q_X`b@ z{;TG$5qeMIA2(4>{%;vRXe%6eIO1V5SN~r%_hi2NIt1V5TT@|AT!o}vhVlJfmL zZghM6__32wjnf?eh=;}f{}KkhJGfGS44nfpu;9LC$ZU=?@%`V~@W9GX+prL(n9u;W z@N8iZcX!8R``^GJVnB^3<%V{E;PF;??AUch6l9MXq|EG=qP{)z@Zm%5gWcV09j^Yl z{;_{0U`8i=Sqg;G;FJSal8B$hMh%{GmQS31lr5Wo=}un3e%~ITAxElN1 z1a$}GCM&EytD(Vf|MGOFrn0hjis4J!WEpz3!F!XIVfv!siJ{ ze^H!{!Ep#1xt*w#{@Y(D?h-VFT$yMEkmaRFou3Vl*AD^?6LcgGY>0$Yo8M;O8iPOZ z0}?`Xg=T?rNWOT8@_#vnaB4Mp>)^1{7q9-vx>+8+PB5g0x-Rc5YwAuW%wg3}Q_TH? zx{e*cEMKMcxQ^xTHq>P$y5*h~D$p)se=L2d4ZF-h`YXVjv*Yc_$jH3iInf#vs69pt zQ}}I!$Staa$f~QWn`e*3I#Zf-9B!Icrwg?#ijY)Pp-Ym7dceYH85=k41cPlIa;s?8 zZ!5-qbE3=|5|Hzqr~>$E2mGX${z-@fV9?Epin*5`81nup>*bZy|E)N>rP!OKHD({) zIthlKgaEu!8e%95KiJ*hmw<4S5Q<)goEd9?IKYTcVVg+<`r=s=Av?487aEU)Fj;gl zvyWA*<(1(E=1+E_cr#O;w1OEnczSZu_%$zYO9r%N zfpazT?lin73I6p@GIPh)3A#qZ1Q@s*0~`65FVe&zV0xGhsW;w5a-OSuxdJTwELqoY5PJ z%mv5u=NHX^O-N2)Pm(d`xL=LfJd%+pHN{hMi?6Dzvx4!WgUxgbc$JP-&{9Wcp_<$1)YQ0H+Eba0XdgEH_-4~1}@}s$~&d1Zj!U6yXTnTSk zI9(k^^%rOiQe90px3=`a=Xt!}W{w*@F8pu9jwTBd6BBO$ZE#xPd{@sa3VX{D)JDB> zA6cO2pX5ukSud;Av7Cx3!hR^hqp>?6&KJ4sSGNYq7k=L0+>xz1#k{K{FAJ0$5G}g@ z%0J$bVoyM%nY)(hHu5AW-jF%{{PQ<4Srsz002tE~ci zy~9K-p2OX#pmPSCBqfJpgUB8l@GmRt!n_(P?3t;buD1|;WwGn#9uzH6oL@VSf54w) zW#*CMczwJABeGChD!ZbFm5t^D4AiwJte&;(b^$;aMDu`^8|IGUOMP5fdCm9p=7o+v z^QStp6t6XIG+8spPcqGRkr$Qf+qiId-||3c-77W^C*XJzHQC=gkc^Ko_%C4aei%C` zEq|*tp|%TqXl7??TZ=#@GG8%ezp^Wm)My@fgiX@;G(nNNI6j{=P9%49P;PY`ux}5M z^ll|px$)`F^G5YZsOp^)>~bCQ)C}buL&OYe8I3n6jh49FBv(;Up;gpJ9LZRih*eir zR?^A-;g;RQe{QFtL1@06fxh1g_#Gj{LMN1EA79dUJMa7aGru!O!Re-UDoP59CpwC4 zm(RQdy3QYM{F$XbP<86B3T^!gEi^CtYc+VR&&jJ_>bW;9jZG{SvBGo+3D5rVB>m-` z7Q7g<10sAw4XERyQGL4uFug`ic8>}q4)H53tT$HcO`pcU{!;+QN@SS*+M=};DlLgE z{6e=Vl2->vImTCu!T6q6&4E1plIZFTFk!YEc~H>*^aA7-^LL{FCx~IZlK8hY-v022 zqdQr2mnxK+M%W*;;hW**f^am}VkK%8n0;~7PwU3Xpw13PuYH1Fkmxv|=$aY1Qd+a+ zeyIR=w-=*%4&rYKMViw4zZkAZi};A7dv{rtXv;w9!N70w?zo*tZ1DUhE#)G9et!Pp z_Rh}I@+}(w)rEg^X@%g_LEAauvG)UQ-B?WP=Go};-9#<}ycvg*rqb_z5j~HsGn@x6 zh>K-mzNsky-zjfyZnijRxw|bwZZKpoOiC| zQhbrlATDl_h>wc7hdj;zqpIUFsCEa;J0}3sd;{RjuUp~_waapU74Ntgoely7OeRp(iWBz8&&IjCFK6ozafNXsrNbU}n5Yx#}9E>`zDF8(fSc=Q1PGm$@?Uca83I2MBx zlfIs=+-jYwurWzw?nDsE@pwT{6-8r23*`P@ zrthU27ZqIl35LQH^9~50$ibGsJV;?%Um{OI}D}mLby`hyw`K8t|7&1e^=!P^y>@M!~%6j3;5b zMOg@4!cH3u(q3J#HY{Vud96$fP^W02I}f(BI)sq}{l>6-~L|xVgFcIX*Ua z(^j8rx+ZsR@*?R6xJTTg_NN!n9B%KDgJD8iF!Ew1ue`i?fmrK!Z!&?;ysMc$- z`Dls9kz3V^?@*U^N zLOC6L6?QQVL&WKHYso{;PGeG_pumrE`R;B}&VONl)&TraaF4&8ou5bSr3v9J&_9s4 zi2X5&NO)@V`#pNZ`-3Z%&JcW1A3>2pVc#F2*;WI6{adaC#U|=9HP8Lt70CGzMd(uI z(K~sZ=OXFyv$)F^F0$fTEiHjj{qdho>|)*9sq4I!e<9>nW22+-IjKiU82ckYNt$xeD;ri(q{U#qG7zdjxRnPf^f!Xo2?I+8OxN9mlH`YN=7Qr zV9n0Cx?JXU7|Di_evW~Sj1mkCGIPgIQsaHJj`SgMwPMh7h~ljYiq{P1HMTC~pmB{Z z{oAYq7Ygse89X*!de7Or@XP2>*68;O#3OOOD?V+SOfrLmCo(8avQX!A$-uYyb#>&4 z`47W3hk}BF7(_%xVR!wgDAz^`!}rwG)JT58=7T#0 zCO=|>G_SKq#Br~1h((r~M*$)t8im;nx#@W6P~4}36IirR$1C)g6r-& z%uCT6b?P7V`O7;k6IblXl&K zoL$lO6y?WggA;laYA?1Kq9^j{u&XV{7_%n?g@pD+Lx?L^&xqoJ=^i1TzObH`OewPF zpK8Y7h)j5@_dWjd^7*(v>@q9CHV?egpC&9>J7MhChN!Mlx1R?XT3AyCca->CnC*nh?2%n%3P)Bm!u0XqWGJzx4qO z#&;>#uJdoj+|t#~_$K6sCy4p8>D0T$202h7W#@~4Mu2&Ffa|&ZM7z_j9tH#i^w90T zZ0tgyX6axH9|Q}oLsP-s;zn>GD75_AX{OR{Bpp!OGbsMU+|l;Q=?6P6%XC3gSJC5_ z+gQS2=epm6GG83oaxjD~VD)7M1suY_XlI^dH5b~)((h{1OQ1vOFhtt14jiPj$PU^k z7@Fn5;g(!awn*LC*^yL)Z!DWxU%?lT&ef3h6%`dk+!kC`u_1p|nS?j^l;cv!8+Z=K zqm)@DIMFea21TIH=*fHVptAskY^r0QKV}UdI1ejtm4ebOK)YN!MTA-vXELL8iaD=HZ-x2fOcS8Isjq=EV5DFp$ zJypl3QW~u~w-x}tHUYiwU~+lOp5V*HZvsBI0l=$l4;>>+cVnJ>kkC~Q6=@j(Evo7f zQqEOJGUS6-Zf|ctZEtVK2Kmt~7q#?{QwBb9cA&?#}4)bJs~?Dj5zZTpRFS-@YN{*8-LOG=2gS{LF$wNa7_mR$h*k3 z z=XjV>*lCv%mn6}@ywg#ZsU55rdF+1aJ3xb}Q|I6ZXWmkh8@ovsi9^kzxkZo?#Z@fl7D zUFG!%aG_Nlkm5vz948;tknyoL6v_kutcdXC(;z=TKaOrP2O!Dfq9VykwHugYiEDeD z0PC#BK1yUT62L^99(8wj)1Cozp8Tsi+*-ye6SYli&yuOwt1%sWK-C}gQhQO(BU7B}Aa zV}9s6p3(S{|KuwrxAU7431~K1_Br`B1b6Yy{=WPagmtb(oh^Z{yYV?(3Iwwb&AuIhq2uPmLO7y$15*SY5~s_pBBqR9 z=rlSffI1JRiI)e8K|vwj&P{#oMIc_UNZD3;2*ds6$&T03*^+engf5$7+Q)2?94uAV zu9w>fKIH|B&Claa5Q6Br`ML!NpucLqoY7->tlT|!Y`qf)InF$=x{jFS1B=5-X;baI zfJpz^&dF&WCt^Z#`RSB}C_-=wdEnm&hXnyk78kizxPmps(X~`c9j664p#}Q-54QfW z-p-DV3D$g^jD1ndZeDeyqkLj;zV$tG-haZ#>$QV}LjwW1J1X*NCaE6meSk*TY2uwE z<|9M8TAD1=8?Ye*>FaXp(y85`8h zFo*%DE>*m983K+bR*vflHJ+=yfq{W2e~$N|9z4Xn&Q(^Wkp_0j&3fK}6&9GoiufbET=)eMed*~( z-|-|oyHXu%+9m?NnhSU5fl{jrF+Qhok8ehy%$_6#qu*9KhBY<7aAY@y>V)LLmDSZW z2R<~6T+IZbW`<#A;npjm_ts{Q83h^gDr^{db1G|9yEM&F_h@Ejh7y1=v1-pfJUn6*4^zmQ zg1?LqHQ@PyJk*mVmEjkLPcUBR+D#B(Ex#=C3-=;zZ$;ryHE)BR^Waka<`7I@4!8rLLCd{$5-r=5L<0 z1uE+Yt}Z9Z9iK&aq-L3}CV(sq($dm$_V@Qww%jQY1=tZ?FwQ(m^*l`@AdgmLYzV^D zPN+xImGc{PMpEYt@2?WJ+##6+KeDQ?-8ZB3k&nWBl`MQc;=+$s}l#y{uPRX5v% zH=6WP{6Yo55QSRTxL*q}zY>?zbten(uQcunJ%QXTk#&NzX&G(43~Wi#G0DJd@U-#^ zE@R*D-*b-qNB2DpRxJ76G<$n{EMZ{H;*Fn2+ORh)h8{mCy^i~Zol|&J}Aq3 zcy8c8LK7eB|Da8jH>r=l<2NSn%T;D&(*-Urt}RXWM{9ngJEC#O3~1a)GC3p0_)x&^ zA@blM8pU=qal=Pf)*f|VBwJ3gU6_AD)oR^ZO7UNuua0TRT{hU9VxATZ9ee+w8d1Qv zoScWb@rM7NwkX~GJr$j2cY_q-Vo>Bk4&s;!5@Ws zIHP8`8|v!^ny&U6YMy-*OleTN&}}}TEs7V3M@o&xQ8$JlRqbuvcI~UjnRQuK{M0|5 zFk&cu{JIoP?u-ze4Io%)6$$l??)lgx5}qvxFoYPL=xEX5`+J(=`&%$0FHfrRD(|D^ zoRkaM>Papd*kD)>1?=)yI5EdtVLaK$`iSc4YK^c>8EdDQSJvweN!%v4#cE#bFDJD? zPt*FFp-&89G69mEePg`GCaMRo;Aa-rwH~f}trWx#*|-Xk9|LIzrZpvObU$ZQh2Vx@ zkQep~(Zf8kv$<>0>9G+j7CQXv8gHQCU?94B7v`+m6UFVJ8g0y5SFc0MeS;j^0HbR4 zs%!mg)YLe8ffqD=Z+6r3Etu&61_m=)5Y?(+x_wMn?acnQH!Uf@gA_I!i;8gZ-H{D4 zfgDb>fVr_+?&`k>(|vh+b+&h$ppL7U_Y(jbqmktN;Q)eX56`xMf8F#k)*+JPwqCD@ zS7-Hb57Aox+4S&8<*zU^$r=OxhA-tnyXIR7B$V;lmy%Go-zKE|lFpGq*BG)FNsKh?ll1X4bk_#GE4U)k;{M%dV~oRd4z8a^-*W@=>4eA5p8C1ikwC2N+T|b>=0uk9Pq}>mmlpe@%hIh0rY4r&h*JESOoBcPxn2>pYVK6 z@oT-0%yk7N6yYu%ZHkAsL~=>a^NknH_Nw_92-cxbFTW4!CAB>h{?B4}z=& zUiNlBl6EOW(*3w=Qe=AtH|#A%gbF63%T)^i2+Dwk~qppUX!N1>KRj` zAF0)VM|CW=o2@Gq@`))P`lqL~B=oI8A~aM~9!Wo-E}QyonO{(#p_r$>p2Pc?B#wyR znUf@f+srzakq8pVV5mP{5Bft?lRoB6bsd=kRUpD{!_&cd6Z3Zl> zW=q$3Mfit^=g}!kZ%~vL)~vZ1h85PhmU!O+un~*mus1ON%ph@P)67Vg4v(o;R3?D_ zGE>gJ)IJgcd0K#|+NPs~1ApXl8#j`%Z!eUZXV*&5y?5~xtbP0;^#Cxk=$c=DO1e6X z;fdeX^Y9nm^l?$LI5@=or(AzP8b=a~*U6!GPRXep1w&V1HVvZ{b2NKxUmi3`#{zDC zoW(}%oQtW-=Qe?T^%MIinvP>JnDSz zttm$qhzmnYT7n8!&3B@?MB%gx2Am|cwD?>!An}&JUEK0m;`WQu&YPLt$u%X0b$>R- zID>xA&)-5p3kF`~e4X>DeQQosG5x?$qqAq|x?l+9>KwUM%-qpw^RmfE{n)6es6l{6 zB%7D@0QyqpQs7McI%0>kZ~rsO&%^UT-7}JRy#xSaF%zjfPGV;PjhFA>kN7*7{`&d_ zFqc4M_2V;qUy+4QL{B6a(*iNziwML8R3LI@Hd+BjEIJE4pngKPyTWeW%$qrAA~{aL zVe{Fw8*R(|l7b`X0S5-n=xYw0V)#3!Dxn`ugD@C4Gdr3dJYEvXdtg%chKZ9q$0>q@ zYnoEu1WZxG_*gqbQGXYUVu)HN(MQSy{MjE<0I6EuY-zr*n%bGSI{XI*X&MyCyTlJZ;Kwpfxe&5|zGR zMZ=@uT!O*GQ8<0{$gxb*IKJ-ddR5lKBK^a;PWkszLTOFttC>i=mxd;Pi5GZdQc4Ck zj(g@k?j`@>df!fSge$fbLU^{jx7VZtkFIPRdO-^6By3@UwM^)D1PC~a?p2PYZtv_Y zJluL{9oqGH>yQ+{JSL;)aHT{}pB&!xpD3L7F1nyE6Q^5>>og#=@~LPdD2SHDBKMuu zkUe7?`};4hwJX25o?-45~%!xH0+7) z-?DRG`Sm@$-}=rva;jx^*_=y%(#H0PPU>R9jI2GqTK4`dTux)ce)PX}@iQ`->k^)G zClpA?Z?3ATktKM5h)$N|t4)+sJL#QqZn@ctV?MaLZ7Stq%e4;c34()ks0>56H5BLU zB7?@&%5*uMv=mSMGK5Et8#j{c?u&$7{r&x~uFq;(-v9XOfEN@F?Xj+)C5TfB+l2V3 z7rL9k4tt{eH;#XU-2PGi{fm_OZ7P&bzoa3JNk|DxIp&p)Un@bk%RcjL1v(}2s>i0H z8=u|Q<f3xEJVG@ak@UAWaMJ8zV*gpO0@5Hl z@V)24=lX3CG~S__Vk8HZQ0eu8THI#B)>K$;CSIsLSN z%R&Z1BY?ad)qj=xSzfT?bH8;ALEOT0YWPtA`9c#~k)Wm6zvqK<4^`be%BOaXVQ*a6 z6D}tJW)zgMLEpS#7r!NS*{E)x6@`JNMmx}rS!A^?3pJ&d8+xevj5O}kYh~i)_oWL+ zYW;6j@{MDr2IZE$Xx*IQkV5zUgkGpU_A^m}qm)`#aH(rN} z)tK_IO6PrUh6c?gnm&?#S59LG;-IuJMMEd)`75Ks8=k$n#x8!4C&wXptqGN*9ahN}6I+dfp?D~^>f=UkRzJIt(Bzz=x zaQJ7kSIuJ=&l9i|X5yeNc^LKe zQrLK5YD#ZR#8~j*;Zx<&^MFy^YXp-nEndeV$I9=$${iROF##Roel2FU%RXCJHE%P` zHO|#T&!YnU;e#LswLL_MjgavV+LLvijyjf^As{-luGllATD20Y zaZ2M!hM{|z4aEFFle|2D)8pObSrnCS`~;{}aY2IAO)9!?^Cs>|wPhOf>uq zuf#h&hJ&;lo!=>Uud2h}l7-T*;wTn1HBoC9ctN0?x~1zky~mBhD%NeQM}ISPN$JZO z)ZEF(yJEOZnyE-Wetb4mm8U=lM(@Pw)^p_sP`6~qc52YURSXZm4DoW3v?cNK)%HK0 zy9OQ=Yg1e_cmsvyM5kEj&?|nTdtz?_5;ypxx(|yq3i1ZaN|PhfL~FqcTTiHd$?0OL z);Kl&lv}k{N>#Pk7rpSOv9y)Zhk)o@L}z11woc~H=e%eIJQep=KfNl>eCEa+F80&8 zk6JOWX3lq~2w%D9EAx*LCZ$9wj3BigntkFpY_$e%fLgl^SFua|^J+D#r<-_gRkznj zl^Mj=&MpN2_(9|pg@>h@3m*qJxZS_pD|{@f)g7jrBjcMLJX_@6ey0l)bTc(wtREN{ zc%gNLhj_529bGeCS1U9>Q8k{)j!{rlw1)+|Bq+3Ykq+lnm5HTSQFq>GIP!McK#VJrG)m^kh=#(_>QZV7($iMX|bdhznSg z4ZVS@Er0liEXj_`u=en`Ci^KR4B7^T3InDarN8+M|0V}hk@2?BxxxBhIZ9Xt*M=g{U53Ih64Xzcy>Bz(pj5s^< zgm8ccWjxXKVkUqf*&{Rxm(8QHzD-3Mf|7n9ZLN(z_N|%rz9~|KfDv>9i(QePzby(r zvT3ggAm|RmY^&0#_`bw_tx$8Ip5QI~<*F?9Gwy4QSRP!JlZHpdW;Z}ip;$bziotNO(B zK*V0AvQSbk8K>ZlDb{-T?%>MAavh(U;Ek`?py*p5YC3Q{ougj9@5bW0Z*=8bBos7+ zfEGgdJoWDAbb4O;8%bm?3duU;HF+k;2ki>_MisV!A4Wc@7YhmNgR8d&tE8 z23}*9aW9%vb>;DoAbl(!(Um97^Lqxk`|)g{r-7#R(bd3mP@t}+ocGlLo>XvKH11B}zt|^h2lv@38*YzD|@;B=`4IVs)ffJ_Y zH#FgvWn8Za$8FPDL3^eNrlI}Rp`ET__@qm6j&EIvTtPa*w=2E>t;9ZT1i%E~2Uc|} zC%wt5DR`K~%VyT=JF?{_0t8ouACN$WP3NLqOR@>y;>A$x6K_^H)wP|4{cj6{4jbz3 zFTYsf0ZKyr<~ODc__&JTOBzUy#W&vB>YFj6qMeOIeh}_jZ;p+8`(tE44|jxH@6i;!_2X>y=@$LEvvLm$3h3`P->To=3b7N!3YGv5y0rov?|5s~k>&d+T z!C+a8ffzsl&$3?V>wBRQggsZ>5{C`KEA;4zI^cf818*%BD`<$b(D-$d2Zk6s<<@{5 zF?VyMygiZRAQ=I|>DI)juRfU~W|K2wzTh-MX0N_nPz`PYk|SgUq=ugVWn0fbyBrU_ z{N&aN4e{TqmqL&LiL@UDC6<#7$H&K~!Eut5$#~~+t3G+{M_6M^54WoCU?Ab#HsPj6X@)9{9b8DG3oxEdcZ2apR#$OC#Q)zTX4SDskabIro?O*Fb9K0X2 z_2Q6h$7BQ%QxE+wQa+;w&?L?8H+=z&Snf-cs>bV=bpx!RYbKkTCGV%U*LHGwLEnC= zdf43xdKWXjpTO8(u}_meBX z3_7vLqphel-l`+70ikT^zFU)sf7`&pt(@C_&afBA0O?3VJ-4UM(Cp$U+}Q-R4?ZQMOoZXpfPk$N05>H0W#o}UCVNY#IDcSRWJb_#=yW}_tB`);Q@8#psgtEO&&>vnhd()MsmCQPE)?a z?XEY6xeVUSDL_mD(3IcT7&YO3V2IPaah!13(aCDc1O00cSZUjB^D6z(4-Cj5QjFip zh{t0T@Ut6Zmt1e|_P012)QzC)P2$LE6v4mI1cnXX>)l=lTSCOpM%>Lw-UlrqH-)b! zwvCYf3IAaZ=k2aSPTJq=V*!4C7n>@7{59V!@zr!ie;v*^QyZ2!z$h>CZ5a~IngR@i zj1}fGO#7{PUna=%s2coYDO1_P2nG}rywJRtD{XM=cr3k`nwPyI*hCY)tA6=!*=TdP zb3f&yOpO5_O!ddlFCl@DS0ue)bn*ZH!zXS(JgT2|ZMR#6W=dxE3H*jK>4erQ7l6AY z6M-hp;!?nVRezOAzJNdsDxc4K>cyf_CMTB%!$EsfUDskSKLZzhVtji94SON}rxlAC zqk`(lJ2lvIDL$F3!Q2P1Q)5QIqhhRY7a*ux^Qnn_-Y@N57LQZIn}i~}DQ}y%lsM)U zy}3Rs8EPft>+j)z?&_f^dv@)$Adr`Z*P_vd^3h*ge*v}i+YiAm88NS&S^M=dv^3?} z(`uH!%&e@eO?rCzu#5!Je#RddXIP=$h0AmC`3)c2>vI4uy4u~>5sme7NUDW7n|Vbr z>osqD-;8Oh?25-d#kbb+vJ~jry^y<$3uJz|Cu!W#`CGZKPp`Yb8@CR`s7r`;86xA@ zsiywhJ##CHkMHn5SrjH|rJ@#(fhk;c8I3bSw#xg~7~CYG11GeEQNjqr#dsXvPUs z&pwUDo`*KJz5ABa!Y>xKJ2@Yfq@6HfWt&)bI{Y~N_>?&)0ek-CTTU&*AhgEscH{9* z$4y(qIpBU0izI|Z8|o5CBIw;}Rfq!ER_^NYvC^oXO- zM*r;__z5}WW&PgSTa-UPaqmr89965K6kZ9zt!qdK$gb1v)@`!vjR@~g53*W$k+`h} ze;)Ph9r{m}$5!2)f4p7Szg6J@Qk1U)XK4>8iqpx6iDeGz^R9?fg{MkzZjaY_enALn z;U-p2#F!tK&5YN_FQZp7rK;PF$2qp|Dw%#i-{ zQoU-EGrP#6L#6JMD;i-@Yy971zE*r(LLGXKUR5YUR;l24qjNvssbFGv>5N8c>v@TL z-*Y;uIw=7m4@{bsr<&VY^KZ2k0MQcmx*OQpZ&!$-(zhbm8+}vLxzv@FmBAWs-BFP_oqoFD)YQ}xcPWyX z{gXzleuCRcn~hhz#dhki9qMgxIz68Mg82Xj9Irx*y|ScLf{!=4D*Qei*K+RMtZw_% z*w|?L7_KIK@aj_-DM}|>fjmLy`sNSul6SQk#3w9+g(3;5@+YIDq(sfB{hun=o;2x& zSgL@LvGJ;3?$n3I2-H?{tDCX0u{r5eF~}>TUYEZHE2~4(klT?$wRmf>>2IA_5AS;` zjE50&qRHKn1|qpxS&ut>K&ot8!l7Rux%TFL05@AXo^Vp4@9FIV1JoA^gVw#fOsxh~ zofB~=nL&(k#@P?pzJfs7gRQ0Hx%DEoI|A)_!UxEU^K(*@+g)izyDv{g`F#A;;bv43 zi$Mu?3vEbqAPm*gyI3F$xPWSR8%q>Rj>KZ6uuhpF(@zqhzW}$BapobO$#f{>KxQ;XiyQiFSg%Mj0b&f`TjX+Y$115a%M%c5j#wfqcAjTEm0&{VJu(s#Kx91 zDOp7Jd1aLDTZ^mYjA5bvEpu+ld_hSkeolk`HmKp^Ihy|Ze+K96qMN_KIJhG#YVddj zV3DUOdE4<%U?cx6I$&Wde4jyAjb%5yq7uC^gm+2^3GJOSdCk@yEyV~rHD8}^LY#Hy zHNq#M1!ME`^CMGJ`s75_6%~FQkTVSNG}YR#zUp4)2dtNtuiVT12hJ;dSqhWEI?$#P$UTwoK$5=OG^E(`me{+z@HJ92teK7{p^5+CGH)@WJ!Fq%nLa7VH3@J48LHo>NMr1 z+)*Ebh|tK&$`WPJWn|3du2%h6J<$4TmArc~74vmpsbKHmR7RSh*=3a*eI6@}0N%ly zP$adMAG!gQMmq^{@sc9$8S)6|v8a=9kCBX!kc)wx9oNcL$S0S@&ul3Of?y#v?ZZ+a z9FY&cO&kZ@fNbZ5CaEi};vd-#yGzY2`OLrmazz!>C-3g*naYPw^s!vYBOk@Lr0tiA znjIT^W6zuN*$Y?C&?@%Kjzh1R74)p1C=YvntRY0d-M9h5+C$t1ZntGxsj`A_4HRD* zl46b8{6@G(UpqSw8|T8BzYs(s!lCj39%T5;C7b74DVFWE@+#HWD8n|IX7Gj8~T8+oU_fBBKKjJe+u;)!}x$HO-r%ffMOy zNz1%=Ay+5Sr3Q~o8HUoSc^r!=il2} z&RxBFkT;wbmZ`V|$bRr{(K{=s?GW|(yumZd+qo#wzoiDR;WO{Xq|wCmSxr@&wmGqH z{g5Yklp}`JE05S}_1L@)4+>Zym^QCWHcB5})h-fu5;pYLL6SV+qYraicnU8&d_F&4 z(Rl5NL~cTIR~4s7ChyD9;`M~X_DO72pIE+;XU4ha=jT6&U@QD@TVP2Er}b00aH|37 zSNRS3qakbY|2t~WN~OEcB95x%M)qSz#}zx|3?!;NUr6c90b|8K13=D3V!{6))s(?< z)$ac+2l0~??OHIZ|GgCc=PqbIs>OtqE`p*OX~(Z6AtKt)^^Oc{9%ku%&m^#1hj$pm zkCLTG+AZ9o7Tq1jcnOO-6fiTXBq20{SvfCG5tJ(OfDd9#lp6Z*!&;=28*P!YA=dBz zzs)S5Yqgg>H1I#zD&wY3M{K1btHJFCoHnhs3w_udipszmspzjZ0RaI6^FcRP##Ora zrW-lly$wvK^SdyDwSJ*p=0QJa3@Fpv+T2v0HL;S)i9i!74atAj;!W|DjD~^Rr4_Kg zzP@JrzeCAh1}RtzuorHAkAguwJiNSEngg%Sqd&4Sv>n}t8NEyYz5g^zyu)!Q`%$yN zG4p3$J(vO99bs<1(0;Mob@S-Iqup5UIweMTdu;pU+Qps`i{@F?8qn;fp=A0oiA;(Y z!KhghM+sY1n@~C2wWe z?+dvwe$&JY+Uf)j&D8dLWOohBD=(FrP?Z)dzuvSk&OUvQP31G(=Y#}P{cZn}-?g=| zA$79TwmUDL#9o0$bL42C6;k~#5@peCZ5Q9@L~SoA+=6YmbDnjn@EqxCMwtEeVgB+W zs}hZ*1Er#}K_S-sFv+9kEOE#4v7!VyLVlqTf#gQj0I!SV?S+WOyX@+4xo;SG>ZAsb zvkpiqSF>iX&|$zr7rq{63=uhrh|#7zN#mo=-Cbok*{{H$_JE7y2Z~Pr=MW@f**a%Y zQ4|G=pfdb`ue^DRHq-+Xa6E07Hkcv0ng(}gjP?g6#e;55xHXxr9HSdPDfZ=YWn)MR zisz5SmXUAz8JGHNT9rGp>SF}yE$oc1?{lCq(h466xqUkjgjNz%|Jzvn&9_dH2HX5X z_@fT5*ziF+!uG>|TW>0L;xNR8=ZY{Xs^(He`9~FP9as(Za2xP5%n}XmucPpE;)<~J z)@mo9ULZeBlk%3(wy;cL!#T+1s}s)4w^T*I?EwCH`^=Pb8*1L%IQ4 zOt4)cn`iD@DaWMd-JEcMn-w(uKZU_qYnxx2H9JC#K=UdkVL;>lEh@W1h29kPB!f&HWaDceGP zq8B-N_TVc_Y5JEnLcAcPaR08NHl@nCmUa;Lj-M$+G4quXK4l-t7tf)bhtvfgiW4wo zK?C~nIJ@YH|II4X@ZgPSrp-Is;YY*0%31S%JCAldGA@QrIukkXnl;s?dNF-#PJFum-n&=8#$N>W;@T2$_tjdz{8MUd77!yu( zCAm_*(Vk%Eu5+vb#TMM!#Yw#;g!MFYS(2Mwffr2DurPoLVlUL-v3azj!d}_ZLWif^ zR_zxvTCOO8M`Dn`wj_Pzw{S8XYyVcEJ@D-&-O@>X;+^JdKPpIoVCEZ5c5;1no?VfP ztM=qN;k;otK5FGJP8wjmkB-xIXmoqKjMLX|$tD6`)|#4{id;7RZ$Wy^p5R8{6(x2l zD%Fw=?VGbRZnQwcj?ag?hT5LWNDWyujJ)Iqd^>jEDh5PMB1!ctu1 zq^l9Y+d9wP^9}(EF#xC8)ld7yoY?RZX*nU0#$p~D6HSVuRCqncnORwWaRL$atoA)3 z8JPEr*-`K%DIS~PbVYe;4s+la2aGAahEU#W<-&iVtC$NTJM4CF=5NDC9m-5H+G^i` zB9HpQfzYu3A{D}#&J=y_*A^sOb$4J0@M=YA5111c;y|pt4~yIeb7dK- zviBHS7?~r>l9S(HHzq6ccsiY6NeU{^Xc7@i2jP9| zBmqYh%jC^7yZ>)w_hg)@5&WZ+P~T;hF-qzN7~aOlhOH)#JZ?Z67#8oms0cQx_c>S@ zIM;}aWlyvprAQbMe2%R5P!DM}T{_ei{Vn zX;s%~5z(lT84hjs&nTCw3=hC@cVHF#=gr7$i=tFSy0-u+Hk_NBnejDMQBm>WqxOq2 zl-@D6Otu)mgSaq-wLbh{F0y$e$4gBzsuI2D$Jx;e)(udnZE52ohD^6oBCTe~sabYdnG!siJr|lGzk4Bf zXxb~z*F!IEzx{<8Cq{uX_>tQRBf`wA^F?_xhe3cmn}>(Tja4DtY2`cyBiA@N?=&)ke*CEv=5ip^wi znQM7?Lz%?e=jHl_hCV)ieisEJg2D#_F-3f=Jpa5e@7s3jBRgQQh}~B+GNO4A)S^j; z(*RJ9@El3T5>TLMkM|gP83%)r!0gC+Sxd{iDo5D}28{=6zrleS=<0^&CI!42O02$Y zjk=RN*Bg@f60cf6O~K@|`x5NMzb1OT2_0EatvDa>(Ot`}O~pRfQ%2Buwk#9TJ~uj> zq^nlwDQ{S_0?&~`R2SaJT7i@(pBy-}v55PhZ+I^dACS?p0idB4BOqE5>R5`l7hyt7 zjj)qkXjMf;XpEFhpap02u!D{)KRr=-Pp;nV$jIBTcrtMof~=OG=wkZh+!q2)sNQcV z$|{%m?p46?w0Pj(umJnF143BNiK-|%FP7&dkMe>*8jzMe@`WbctLCYLwxh^|LD93f z*mJJw*VLn_Yj=`Pc_39UGy*12-;y?3SsNtY9)*IJI;*Rz-G4HSq({U4PL+1Od;Gu* z4u5PLAx>wcysOh9bF+0PJpFF2GlZ-vFpq~K>GG~`L1ENwmD^g3$2AU_ z+;yxaFu>!(RSvuJrESLlMSrp|nv#zpVou@}3M>C|{P$n!fOGfaz&b`Rk*j*bQy}3m6!>Oe~ z)Qh=n*6ROW3*c)1@p*YfXUNghr%%HXr@~UdkK?gwLUJlB%HT@#!j0> zA!6BSjcznhAxb=?qymYUKU_yHdtQIE(Ktkm(Q9nz6{H4qhy+Fiw}Bo!1BcFi28g zf1B95%H98D$Wk=4L-0umvYWSsK*fl14Jh6d(cb9N6dN0xnBA6DW=c@(S&{~t^=E`O zCpICKUo(`o+41l96hX4prCvg5$%c=H_4nrWJY#Wj#l*zMm;RmB8*Mh()*Djd#Ga!J z{88#!{g&owPa&kzUygAB)w=_Jd*2d_=K@uuFpU)$a4orA_Df~yNsA}YdAek%2v(RS z^>Ws+53o7g|0@wo^Hu@eh;^Y<+oYS_O!bxtToIBejJVHpSv?DQ=g{9T#LV_G?Kfi^ zXj`!-S0%MIUFzX~YW&PqPLTJp2F(|qB-Fu=-*(ToxM__V72(Ow#OzHx;S9~2wgekA zyFkDH?cxcO?1!H?y+$H0hLp)|LlJ~no)H800s zjKAa1v~U#`P*qm$J;TI$3Pz^mn`b{ORc!Y3VnyH=ihuNm*us?j8|080|KrtqCnPoxc?^O zmreYE5+EymuK6GUAE>En>OA`CAU(idoRct!U%If*_Gy}jo?>8Nn~~gvjA58 z0_zRgNZ`ueHX0DXO|^)d^Rv>og`~THymJW(M18j`7047nnGW4_4VLQ=YFC_qpx_=Q z^sG74z$3dddd`H2yEce0uL1{6(CA}$leoBeU|_MB5L@HIH_sg46Ym-s8JTTt1{Oly zfim7-^Z3BJ7j)5xhZLFjXtRsy=7s{HHLG*sNr+_s@z9?cO%+%5V<=C)tNp_VLOe>< zBHBU3cP|0sPg}!QNOZu*l7a$DW@6R2NjQP1xguO%vveFxzl(jVs|;Lz67gN08-1_p zDZ>XJPo!wCcik(Lj3{+X%Id+{5KymHEiPNz(w?xB(>&(U7daRRSh%s)ItU-IuW}x; zt4hdlNQge7@*B<~|&t@7``$xJW&V>{Xf!a_NAECtN|x4=leR(Cm@mk8@st?>*L zx?RA_5q6sW&wB=gA^DLec(d*8>yId(SXV;*RRTQ>ig5f)rG!$8EQ}U<-50{0huA0z z?XxLcq1!r&+-#@Nl5zdGzyD_K^!EiNlNS$qeqMj#{_3*~5wry!22%yp3f(U0I5-UF z&4uaZb7X+3c-ECE%fRf1-uSZ2=^P)6E1iI zs48Rs?6MY#tvvH1TU~6vp;9ubZp{5PI~xmPobd|y;=iaoJWS|a`Iu)J!xx3h@To}N z_Y1APsR2Yh_l@*NK*Vc^fMK;5?%j44sT5t)(b2IH#g+ThY4Kd}cFl;C9x_gcH&%7g zKS&wi&2jHhLFgM1$C-wTsI_NMyqT3tV-OAtAEo5hF(~Uk5%fI3=ftD7Ak(f%;$av? zx@=W26(J!JihEm6GwGCkcT&jct?qiw(fnhY}KGr<(B`2Fj-{zsmW5sn!W`F+DMYo!5bJWkE!Fkw%-nz+25edxD^d za!S;svJxuvN&O$^;_+8M#baZF^&Y_wRct%SQxY+is4{5IGqNZgd-YgPiK~Y?2eBzx z2*5OzElb{5uS}uV;OL2nwHbh=I{Vi3Axl+;DapnpsUvpKwB=~n7Lh7Zmz zaTD`kA>lzzIvS?rPvwu{HTl1y`(Ey{6_OploqmtG*4*k-WX{JIG47B?slJpXQUx_ItY5n{-sY^Y{zZ_)$&iP$EIB91S=$k z2x^v!$d!7AQ7x~o-jU(qh^C7_-MvVb?;Mu9n5}hRA5((oH{pmZOOn2pseT}};;d0_ zr6qf$qck&+c-W|fDvh%5#J2JQ(7iA=wr}K}3ng8kP-0}dj?GvAs1E^dzFrZ&Is{KD z_HL|o(*&Ps@c2KbeP?+b*D#*|xceM_e*U|hV^D40aQBE9@uYmNx7w(uf(#+g?zetZ zVda3kLm>ePsQ3}1(pWoVGo-9^)}UPYBbi}k4!*B5Rq@OI9KdI5!cP$%aR@?4UFSW- z+l4+FVwhB?K|{RlSgpas{W6Zm7j#Md@G*T;?klFt(ze)d1w6V~ zRaHd;b+9yh*T$!X3{V3^wq|r4uuYOGtRO`U=YaHzAL!9f|lTQppe_jV3q{BsK{#9fbSmD1jN+Tw9BN;bNc~n zEJCBQMWAlwBV=?}G=mtWACwXV#c6%Rx)}{laBMNzN$-4OK@s&O38-aWo}SE%2?K(O zh(O1S<89F&-@nf+{qqhk4&M9p>C@2dL>xmERIlq*c^GLJf^$RRjNb3R z&jh!rH57j+#A4d==5P8ZWLZUp^!@V(uuLQf8+zt{y^-=jzjK!1GN~@;Au z-B%u=Od{q;^GlT;_Mcoi2AB{{DZ1^A&&VA}X6^j;2RM&A=h7|4_qbCdl&;uq@vJogFg%4riRSljlCUQQ^y3f2n^ot*HHx?7O_-|l#q9_{QzRnlH7Q2INn2q>i53s(zsH#7k#cy6GLoYbz>R&MzZTgeAQVnK><{9FON*$-A2b>DS7)h~;Q5Bz16W9A@L`!L-b%KJ&G#;n z$AbilE;?>*qP%!TkQ&_DhpR==HAAk9pgoC?MvWgFxeGUdfbJW=OsEAJ;6>ow{^K+z zD!iU&0Y~X)>I)}H;tgye-S{*n&rS98?%lvnBcRboCYi;Fo?DpajaxU~y%%;}_i(3_GQZk8_BL zuK21@1Jll~L~MK(TCzHnD&u`M2wN#qAN+f8wl4e1IbV%1O!#nLZ5}Fz>1eH9 z*O;iai)K|jJG-YoK9BbBr!UeGyoaT~)@7zVhM|RdY^}w~tzSLnE>LUjFGHxP2Guy5 z8#_9#G*ePiMEx$9BzROStw=??=<#|U)f!;PDyWNM{>hMGS>(SA=O_HCwHi1B;1nlG zUNY?m(-=^_^Y*-z2`xXJtDq+?dh^tBQ|w@P+n?>--O2)+_%WHg^k^z(hf!InR1EUt?l*c*Avu16KN` zc*0H_mnEC{jX%BaZl%IlZb3SuzJ`HuN&ox|@`|o$ZKcz!|ObCq|^h4Qa_+<}@#^!cG}xrAiKlTNxX6Nz85q@|=fA*#iRsabLX=jDKp z7}X(G8t|enbZG>B;+Mnj)x-gk*mwWN|7cP_=Ps$_Zx5qQhNv=&a7$R|V1cuaaL;F9 zRpN#1!XXSxcPGl;Q=9&s0}`2#guvA*CRa=+yf#$?64EfEuJYyy)SUCD2a50>QRPOiNyL;KD=|BFG zI=*`4L)Ql~+Vs}f*VpBv{-vqW;swS7K(rjN6!PXkg)TJaAknPR2>Hfr4XFVUQ{B?k zuMK?L&WopCEXzvrTn;9trp)gZ2=H!TV*c8pl#0jKF9tr_Zfcolrqccj5%plGo> zr<)|pxAv;)hy$Sk8gBv&h^STVPth7t9u8TDmCg9m#-=8g+h)FT(6gPD_V{4c7GUTS z?@`zEhXj3JO33%-6uftCV6<(+5Xk5U@_%?-9)tXOvR~-p60CVVq#*Eearu1 zGR|0GzHu2h8N;hAZ>bdErS3V1jo>|%U*j^~JzTf#^wGg2UXjGu-Cz@76obkKtS6Dc zKpw3%Al@V;QP6&RMpT)FV&1BvhZxoJyeP^3jB(4L!}WvbjHvBP+*aGkaV`0{GHadP z#^K}bUt~KRWB2NaL_F`cmjFmL)zH**>*NwMpzjC@W>n!1o*w4QgEm;z9?UrJyK+9TzKMV8S_@h|9vC!@#n*A|JN$I}aJ^Ed7WR?8b#6;MK795gvKZmN#jI)HR#%CYO z%cn)DV|0PLn|&*QaCfUS z=4~UJ6aT+90Rl-foIkCE3J3%5sh`&;?+1iVN|D@a{vpuzI-$B+fL0Thqw6ANx1t9N z5jtC5cc)($kmkdE&y1s4!+FJKfl~uqtDgwh!^5LGncUHR-v0cNl1$tozVFplQF(d! z^JqDfB7l|bVH%keB!#aQpCi6MNCPD81x~L^RqqfILQ8hrD`VbyXIk`MNdD^=i)NgO zD8ErE*y~C^Q-q!OJowmN=TwIGbLE}4mW#4-?<=Ft`llLT^wpxmefi63jq2(;iE)?^ z9k>P$DKcx*rgrpI_?7Yjp)mm#h zNWmikm>w4)lr>O**!CLx$?=!m-d-=6GKFmxZgRd0$y>Ui4t7O#hu{;%#|mW%dD?%-$WCmFMlduUIYarv||P7X~~f))b8byTxFm zO}hByd}roDV*;UrK={M);wwV_$6;V~nnF6!*oTm#5I3o>Q}j^0^PVdsWJhgz`8V<9 zT!mrO-1o1y9pA6NUw?cFh(0ae%21B9vW8);v#^S+rRI1K=z;GjGSZ!_zTCo>${8JUbYJ}7nn*?*OkWIL2V2$lPSDWw=KP0F1x z%1a!yts=VQUib^pRw(0uqQhy3`im`Xv&qwr_N%uHT_;YnRWgS^6lWH{vLzIwHPco` z9#YTC0Evu@)B*<+?LChrzT=xJ z9DUBL$6OZ5{=R5i=kAS-x}Z$h`^BrVnHj17w{1-Q5N~(#!Vx6c@k0mr@?5R&{hgG{ zzAW{{{P^U&5QxG`sluJ#A^IDze!n@05Grs#@F>7U@u+=-#-ZND>b&1Bf79#fLjLtk z1G0CkK44vCRKP!%c6Lr`BMMsyR)aXWdoK3eWBN6YLB)u9xOT1Pr9p{q*zkIlG8jvr>s^)#N!k4leE@yM6qzK3=Nz z!&+o`cjz8}&kWPyR!avAkhhVFN^*Yj25i|grBDO!_4aw42L+G$uj6SPgY7eJmeY<6 zZ6k(<#xeduhKAFr8yg#gC~w2B1M+~|375)ys!_ha9Hiz+z`^<)WpN+6qNArbB(RfW z?=Js~BI=7S;`>JrPfzC89){9I4qwL?!oi}Lt}P`-lc^3I(hH-_6YKhE=OY($7Zy3L zu+x;?i!Ood6FBT2gy(N*1Gdz<-jH^JS{0Tg`B-C`@!Av_U?`r|A>rEzm246|Ak%K) zMa#U)FlR4(x@R(O)azAcs$s|)h+(u_k%iR4i{31p=-waJPKcbqVuw5#2~s{%8EtMx z{jVqO!ULHrOjbI2t>}yj=AHuT`YItb7wP0Qk5=@BB{kCzFUB)TKl=c-df_#3x^)<4y*4`DgVBPFc4eF~U@pHW^SsDyz1V4UT&Q=wy!6R! z8vJ?pwYEmVR1OmbOR$iNH#Z`9G|kj~Gk0~6M(Hvn<9*w~=NyzvYqcK~a-{>pS$e1i za)k?|NjIR;fBRgz{%5JJ|NVUkpvL&vSlxKq7`HYICh`8;@1HKenPnB=c9g@LtvhK^ zYaQxLgixoKD@UEXZKD^oB{XfVtaRZlXBjCh99aB&RHS z2Aso{q`t)vm%g-c+lBhF>`M8||L4h-AdP97%y8QakgFpY&rUi%H2L+nqWXF_)ziP- zj{p-yFZ5$$qu;2+patyX_;w?T$ac%SNGn|*YW=VUQ)4DjRptGpxhVb8&|T(-e$2;Djg5oEFQQnP zZu_17)L!oHjEASo32Z-DpI_18;ndy#%OK%28`O1md?7WK++wmr!q3k?7k|we-9UO0 zpD~*GO5SQfTLn(^#KDc~3G!)cHPt65;yXGTR zFjH*vJhCn^HR70Tx4<|B!5TL@nlm(CXY<3-Z>MGTiLJnUgr4xhHR8K-ktVKaQ2!Q% zSqBqBgZAKBnI~M`1Zre^UysMDmwB8E_vq+|2j&|Cep&EJih()dIj@|0P$V@I=F;y{ z9u%SrEsRE!`Ok$;hW12@KO$DwprR*sB*_@ zCH4Dv4QGHb#~BCCBoHQjNgv=a*QDe(Xz)^#MtS|`w16-jcwU23NUA!!nIIb8TKS0H zhPWuYV6WrTr(@y)*TB%qkll+Lif7au2BU|tYgvTi3`GIm;d^sqW9cc^Y~4QOy0g;o z0X?x|hbqre4l{_FP(*+aOQbZm)Vfm-Z)jSU6xFLT!hiR3vj(rCOWN|LLmv-Ou0tnU zG-fRa85H*Yuy<-sJ}RGnCJp3%I`8_h)R;!l%;aA$%Qe`yVkvmFCXxCH8bOtllT*e` z2>_V$=Uq-nPaOTLa3PQ8-iDLYL@@0Avr^+NM|ycsm^g`TU)lro4xM~O(*q`U+&R1o z$t%hnLI1}@P^ae_0r)o&H1d!t4j8-x;$x@^9}ffDQL4Epz>AXuCy+ld=IO(UxseK$ zi7Vtv`S>H$@JW}aRY#Re?g;q{kNw%2_;-!%LrR`jT@PVn(rhK(w z{XKIL4d&d{4mHp}66lvl8a$OONgwzilXuAMKcLpc&=Xon2M69K?1X_-}n`a9q0$v81 znnbU83fW?#Cl7TJp=iFfP(}Bc#xU8ApBkp`WrtuRaSFUCQqdV{V2GRysp!q#J1{Qv zVmOo8mVe#dw>yOolK$%3JC4IY@3lH1Egmoys ze7F!2>fAUjUbGX-G}X_FxO=$On`SET1qvlT&O-TDRf-OY{8jGv&WX)b)!ZIspzl*ohr zT*&eM(x@ftCStMPvoF3*rz_qNT{KC;Z)c2d0c!F^akBZHv;BaZF`t8#rz)9bkPcQ* zJX~tXW6n61Y}zjcVIFtcku@7(O&EWp2+m%Y98!YKeCx!Snlf7G!FZi0)hIbmwRE5Z zy_V%zMSP4NP8xnT!5`xeldLZVm5tg#rJB`%to=0DqWrtLohcro`+2S=aw`@{fCdP< zxA^7_`(P}YfKG-#Z_YEaNHxMjw|)~X`=2%>ViE@e`NtoWMTD;b;UE83h0Bg z){L=mqX}(RJ)bFuS=aamWMsZ?Ga?`WLDAgV%C-k=5m;AibvJ3IfZkd=_7wTs?h#WwpjCF2x`g zib%+Zx?Dm5^4mv98e3$34?a;UHZDooUbpOC&>ZVkLd<@VS1K;dfAe_>40VPSn$u5o z8&&Ca^I{owb#>^Ic|Yex8vo{gfIg2s7+0UbeDk7g3uLHYJ^{CnkFP)EC626`8*tf1 ziVPxO(|`60bDq1Yzl&+5#1%OCDExKdX#|s2? zvR&Dw7#(iJ0%Lzm6vXJ0O91mReTb%?mTpkd7d?3M@P@OHefA(=AyS}H2(Xz+s7~%M zg_(a3FZtemCSkLy4+EQz8nKZ?ZS=&cYy0L#+O7Q-BAJf7S0ODs8(LDXL+kly2%h;| zNVJG@JNvO%PzeA{LqOW{lqq7@%v>pjzx-cp{dHK=-y1)UBO;96kOqN`F6oet5dw-# zMLGn>00HUla7c-c7)XPPw3KuyIZBWYk(QPQf!}k!-k;C!`@OC&*TrAkPTuEnKOX1Y z_c;x`VaxT~Vyy%jAPk~=^x%$A+iz;<`OYjzQd06=CvGQfr5CMLyO@%KHpK7wY0-R& zii&biJr#!%1*x|0;crdVW%FBuf~bXin0r{nLmYu_T)+D$MooYJ&CdC3(>k$eoT5hv z2oMTh`D^I4cs(BXJ_3FA(FHV3QcB7^cf=Q7P?$1fSuQWY0`waG#%mTea9jhc2?>vl zbJ0X^l6E5lL;lU*+Adr3C--7=}v~I0(@c2gUMWK=!J0 zT^HfZA9^MD;VjEaCPCC*fwp;bGX0@HijE`Vga@KJQb&9Cya40UP2iEW6RDDce!qAH z^fTEj6yUOAQv?01?=goGT7qUO?amCf;`BhmoxG8OLmHPHKRW>-- zlE!L_BVuCa?H0Vsf%@@a^N#xN+=aNvjREZ&mbJG(tu<~Rq>t4bsmwW9TMbMWTu=tF z4O@hkdp#kJN_;o>-49~=vI%nd2C+Tz@RjJB-f4}IQ5Is^4}iO{Z2z^qyv+ALENPGe zNxY5r=>kAsjeeqvDvWA#B|bjhC4%2#W*U%$S-)keU>@aQLRUHR;qO2nn8mfPHXi4546dZ2O~L2_{9AvbH+9rz`u zsI2TI)uw}Nr&g)wL%EF0_7|4Z1In@hhR-q&|N0rZ&so&L%$i(~39KH|Xuje(=Bh%Q z!tsseFF_^DYN29ZH{e7$vW;20zqAUNVGkJp7v(+iP5TGOp(fl?22wV(%(@!z{rKX_ z)11MeTsLp{=IiR--d+uW@ur;y<8SwO9$vak|oGl*xAp`uQVLG*a zAkKTc)dDGzFEeLjj#7l-0xT$eZWLQ_z;zNvyS?{C868k{v0Vy?4y#gv;7N5 z@f^ZeyY5#|whqmOfG$B}x~LXs+DfAqmTAsZYC!=Pkg;?AWjqpOH9_<7<;GI=nB86e zy@Ej3J-?2NDUczlcQ+e?nUIo_GDTwliWK@FiUJYOdaw+*xLpKB+571FJz4=x>n67#eS@s-mvOvkrK#hcezRvKG05<_d~qDOOnBuZwsfmD-O3!98=f)U9;& z0&B%qPllX+rRnhqVoyntW7faRKHT%mJf?zveWHHxm~Uy^Bv?7U9~L;Zs6r-zPYQWT zS918I08<_>%K+)xCBo6gd=p2@whsV3;s|RRL8ErqMoktk2xX2|S-X7ifWk`Z%t}jg za|w}|cS<~)8ygiEsJwL67nxs<6=Fnsaw|8 z)=qi=g>lL3rocwii`!2P0-Cvv)Z^BO(#uLqw}WG|X$O0eHkji`IzhwM&_G;leZ8E| z*T#;3@K6Z_lih%5baUGM5B|^l#3sJ^XVx0)x0ao#m0=B2ov`H>sEUOE-B>PfyUY`h18Exq@K1nvo(ctC4rVH|7pd0gV?Y z3005Pr1U?QVT;QtHkuU&`@|}_U^y7KsKci=j&8c;onsfNkBTaY91*kI-(|>mk^!Vq zUknjolYADW>UgmY@T;Y)uIGHRNjf{7c@rBHdH9xyq@mwH z1?a2+L7;-!pLTK)1wOWf;3*>xjD$pQ(MEb&S|(%1#>;8>-Ye^XS4vSFMlGWzE%-;y z@9B|90YPsZl#_Wsh`bPJ#a5Ne>1BdV4veznl6?incI)L8? z?fgSbFJvUjNgvZjLcZNO^i;72$39VIKe9v2*(*b*_0d5UzDcc9_^|8GWmm`4kR=u2 z;?Q&2dJb4xN{_7BBEi82f$T}2 z3JxyQX(uM`Q7IE9TTv=^E^d>pW(8kj{`_%++YiZ8l%P1!=I`!*2v%Z~9vK>Xkvw*$ z#YZk}zQ1wU^?n0t$U!m7at+r$Q0>zbFIv$n;$}M+y2V1X3V@r9gc5qJRRE z6Q~2)3$mf2z_q0H*ec0Jq%hum7^?kkaZjRZY?)&lp(7bE*H<j!cUIAhV^;a8oZQLvN{|5J0r7-SuCh4?Etdbxv(y%GSsxPK{lLU304MOjw zS(vVMM1oqY^A>^>SK8Q?2o(p_jlHXA+)EI@ zE!Jj2Y*FTgkGRbu3ouW}p+Cz;X%e~yS+zMG02dJ>t@1ueH`GO=f4`HQ-o`Vdbff*? z&-KK^wzr^llzbFHsI9o~b%|gTP$)?96~apN%zFNKPfvez0f&{aQywvSrX@tLKB!ya z@I&C_*Q7Os(G_nyuH9XiHyCc4`Mg?`MG3x$UC;2eF*Tj`1{h<`Kt+omRPP3t+_Z>9 zl0z_Wt|P!~t{(KBDGvI#xHf5?k+FYod8Cu{y*UT7z9n`=SAUg^zMl}%rc?Ofz*%gH z63=ifn-@8mYlUBYGt^nI`*%vh84<#5#7T7EQ?IA4-f?I5wfGUmpks-M-1e8n%PQNR zH?EvuClpFH3)>&p^Ts{hXZE*jE z%L6o+%Bh6ei~1)p4)4IfKHy@jq=TLqV54iegjK0y#U21GMTXtDoDqd1%-e9?w4imbN!FkS(Lxuxj zYL!!YxP3I*@dO($LQ-ohjvY)=DpLH8KZw)8+mMbVZ>QNKOUtVu7$K7?tzGq^EW^C_ zeBhe2lC!3{`78vXlWGhL`%zfk9Mlm-sr=mDeto!0(BwxHjspVyCT?^OY~dk#CsNf> z9+Kn1YFn(rh0`t1w&ToYlqeIkunB&H2$Ff*^VeyHK(RY=AVdDx$;9!IA3f~$F6vKU zuz2+gex^H;e>_=9=A664_j@$UgF;-9JDD%h9JXB&hmsP(5BP7yK;-cUq6TVsz$Oe5 zvaG@LN_YT{Icvy7#KFOV*<0k|k-!gFgvz?|C$!So*w|4?X2jVG`j=kIEp0`r38(`O zF1z6@jjNe)jhggc5!QVHi53Tod}RzmiH@kv9iY@-6-r-j)Jwq+&|sJz`F#^g`q(Ft z;FO!g)@tZgEYlB+E6lG6oZIPRKa;(8Bev75$M#QafKtMmT|63mH-m}j znt*WvLG&9$b1TkHe4iEO7ar~P%UI1XND#91xN18yGg6IwEN_6tj5P|wnp9EwbI#9HE#yY11_{}KRg$a`3Qa=Az>LVVuM7%2ynuYp~jl;91Pi< z4h;Q-b?!qBwR<{+L&MEW7yg+tS=bM1YXi70@bD-H=mB5I=mdp2?!JVG9XPL&GBG?x zDM%!5xMHqU{xyi{d;XU!^mk9jIAbQrvs5Ok`CxBW-YwYyuP#>$pQS{t*Ke3>tPv3{ z)Z-D7rHis!WhT|XBdr@y(Ki?8>`UzA;=@;0UW6OJK~p_lF+oO!uug=FYNS8X+R+Lg z?!Gh(uX{oLf)b267;Wr74wMwH?ZCqW3EuNkIe*s{aUIUp=yE7oV2WI$h6&45RaZ;J z@#YQNkGwa(2lr-1RN<|p%I7|M za!3e^ZP9~2u~x?g{4dF)b>1GApexekv14}o@fq7NA+ZscjcBR~HHt`d<^j zd)1A*Zd36rexu$l?147_Rc^KBG83BE;|XdfoR3nQ2$8@M%K?w%yT|TxKwrS06mcl& z$)CvnS~7oTm;KTV9K_-uBTD!3!0AiSCg~ExmDX3#Dn~)opw!%wmswgu~3 z=6;e=DyY)u1gjG{-03d8TN~7Oe8Efnr+Cr^@3d9Kv5g-a8~@7Sb5A zD7{FFZ4XVI^KAVfhZG8-E~3k?e~TBH_vpzJ?@SC0T{s7`4@po!R^U;c&HDEOML(-U zFKV;#3l>P*S20$3^x7?~-pX8s&-|ImL%=345xsqAP)RrkPB|To6yKLaZKC<~D8q(A zaM{7;sA4&zc3MRjj^?KYQ>GZTsa(gkt&?9cLa;DAW0ze(^H>TVcmt6KKiJUY*}vF3 zqL?_m{~RA%;%@{dy34oK8U~_<`c+WLUGa#vRg`nNb=YZqzKoNFkrT^H6 zv-ykCZ4|R&FdXEX?yCw*3px1tP|;ZOpwcT^n;vpchE088f&H=0;cqhK6s&;w6f`DTnTTx=*bpTXgn9}L}p>IOP9Yd`{f%%CefR3 zxZRC3yYD{QtE$RJ>?McBY9RCx`J7GX5}kdmXjqhTc=o~$I*87M5$j={sza0`SS1if zABS%5zBxep@a31U5}M>k?EK5T0A9>0blbIMA|Z@#L8+iaQ@#8{5uHNixSq)SpEV{y zV_Xdj*C(9?lIm4Ku8tG0Q?O-IfRdZVo12BLjdONF?%0_d|MD>|hN*O7X9oDJ%-gOX z{mRqBqg7czFHe;uAAndcLT53-_p`FIK{MPLq3+2C_?xH^s=ih#%E^! zo@Db@@=`J3g(ef`rb{mQ?JwE&#l@QlSp6)#!s6-5JSHg#9}B({3G&0m?hh&ln;08U z#vyt);$+XCl^lL3!03*wOTz9qD8@#1l*MI&>TjK>3LgbtHP2=Syt(&Uk0$|%L~jYV zrP&_OIeV``UYIjj9<=LBH(uy5`^Az-L412?qucgpqMbh5CibiN7ExF@-=Gfdb*QX*^XTnU|WiyLMI8uQD0 zD`DAq$ntqo=oMrWABaXALQrg?r%E$0g;Gu+CYTdtb08fP4U;!`Us_hyq6cz)$klZv z0Xqwl%ZQ3Xj%op1A^>*w5lk4rx_e)3BW3hO_3>Svx8NpTJ?hpMSL_dUpx^DZNb#}V zlz)3(Q3ZZL{BGcW=S+={v4`Q|SDKwfH|7-W{C{Er$~#vAncRzX3J@IBDXCF4-TU*x z1<_Y)kJc#?E7`fv<4hY4*ccf}>dci}9!aSOO|Kqfw+HyU zVO~>OT3Yzxo^0<`$8Z5g?V*Ld4!m_=A>U;|GGXrvAlSJx9jGh+b=fD=n<sjUcn8ou8B$#z1??i z|6)}g4~Eorc6Ym7m1TmS)U>Vp1Y~cf3I7+<2*>a3`8?EmstXk6QF2&-(8*tGpL2a7 z9~_D;8#i%rXI(AykZUr{2b61DHOs}XQd=avID2wZeuh&b*m1hXiQVU9;bjhKC7vMu z7j$Vuculvw^Q#kMR*X@(Ra?cL&)?_B<{rkxsK*{G!{?OGPS$k0aE?!kjrP9dgN@Vg zxFgE}hkB5_;hHUc&(qV>SVQAR-ph=!vpBd%{Q3Pz%fjhc1}rEwom0bn$~@ht$OE+cqYW|W*M0bbo>JD8lMsCoy_yFp zG?OaK$`ba8EG)aj^_|TF(wi~gR6ZWrt~`V^iHDuN_-z*n))(8iOA)b*msa|>$$(Gu z*093ijXAY}d(mCB@DbV4S_zz}Oy~fs{&4Q2$Rmc>cr?h6jN{2Q2^VPYeWX$d+5}sd zhDMS?hgL-#dvhKoEVRCPob;`8>$b@xlffB$U$E^r!VYHHY}WXyN~g z>lDJX(@9f_Acka}f}zS?m6Ah>F4sAM2o;YF0_0o*8ktsQNzg|RCHfwT>WuyT6y9`c z58ro;0AH!6361SG@YPF?f(^o#@CI$Ry~pw z6|(Ak1$g}$zr){lI`SQCQV__l!p=)IP?cG|1%IUGum9=~B@JywLyF(tms{uSa-~W{ zIM3ENO)ui(QRh12@1pTcF%8?I4)+FN&y)vB-~b0U3a za4WuZPgFnmhqb)N)CbK7&D|dTXI%&3t>riIS)=$II^<>O&iNDU;R9IWNeJdoCGOop zpe5yA25fM@xgD1R$in`r_3l}%+V}5~X^XP>x6GdXiyvOYUjB1Y?LSz#Vh@FI8kuZVR!(k~y=whn zD{dT`WnaS1nHwxnFeK#T{VGzlMFR}{P@ul1RyB{T4O^CVH69K8hZ2- zpY$mGd?Mu1Bb+JkemU+;p7)i6uXZ`HAA5{T=Bh6XJ|uR~(oknhCY9y+Ak!88eva|W zp}H&#qT|w6^3tGE9+KSdiw1+#5pjv8HG z0ZX;qAv%3|6@z%T=ppDeNgpZ}3XoSRTtNP!Y(Jo=*2OA5-fct!Q>JKNp8KVt)L$49 zc$xIX;*KrAtB=W{Qw13IF_Wv&M;u=4rPa+s>HTvoiopZ#?u^(}Ot9o*mhsmR2E4|m zoHhsB2lIE~>Bp@uRlldo{M;TKm8rgRkfu!RmASF8uT#~+i+lI_tpVTGseOYsISe(O zq*K^AH8mx{+I1QS{>A!8H|^|XQle>Io+E$$*IDXE9Q_D))=$DVK$ut=Lyl}M+aZhXANAnbeQOdJ^>wqKk>kU_1-7izxVfGAasU!38O zK=EaoItIE+r)yLdjpH}b;2z#CB%=F{0Q4hub#>(h=FP?fl_3j$Vb~lE6KI4_G`cx< zl%WcV=v9Y;5^$3_)t4ZNE1c`Qw+n+wealpi_V&JGp0oPk;SyXUo3c!otjUHx%`kvg zwSomdy=He*3M>`au0p}T8h5R%wBR3dOk%Lq2Z6z+Mw6t7kJUlu(&>Rx3QAl?d`jJ` z`?X)6R`B{a>{=1+WUl7)RNAaiU=S5SGDzyw*Psd7g^0!yuZMXNAyA`};;xgXo%7c= z6JoFMkdmh8?`8b>@eg8H*w5`S4$ymDerjlLUL@GXYUSphsHnT9&gqY%qa)7udf4wz zJ>;nG@-viKG%?Q^Gv08bL+CZ{G(^K;&;m23?g4i-&}&9ZkZV2WPx^&M{|gIX0CV6G z-3*9;bnK}wQb|MSl;Bd4S$JQ8n#&mr<*|@Xzi{{2`FZ@<+??`Fm4V}h6F>J<&{FkS z;dAL2w3+G`_V?7-Q;!nQ^hH@?_l*4l%*UEyu3RP@#gmQw)KlsCW98v_iC_QX{x;Ak z{mN!RIXStYy{|X*pKHN&K@|x*=PjcCRD$w52%RQHW~jvZ$p`Q+tl4dE4F$H~5NsBm z+NLU8N)0WI)YO3H1}d|l80DC&tyXT&ANQS4r(YaLza)U=-MV#48xobJYGzhk3aATz`cTOhlBJVI*`U33J2+eBL<^7LsEqY@X*t&_a!301v2pLSl{bG{uqZ1c zvELWJ*jVrILjYX{wH28lAW{|8*QqlD?a9m^C+f%h8F}6mLSEj61WtorP3MifnjeE; zembB%Xu+tR?l-|iZK2l)*z!x)IK-!hCVj?9Re`dXo(m^eU2`cRU5}G4T6XFr-sU?Q z^};YE-LMC*B45{eBidetaD0}+mXjI|pA~YPK!5X^nkzHB&=`G{#qqgnYcwIShBAKISgS zVRQk}cs4Cv6-FXZaCG;>NCsm-c>q$q=gCRkUK=y1Ns_;l0-JI?_6mn1tE7e8iiXGI zUx>9p=t+PWi8Rp!AbKIr(+>2hh-SEy8bR03KNT<|ZP*zpq;PQAZ65F~J9aA@8cV3b zeXGm!1VfebKVNM`!?k#xeQIEjDVt|qG<`5=vK=OTCm*U{_8sm6gSwx zYTdeUa@WwYvl%^}>kn;R$fbR z?!}Zjzf@B}!E#-5`?p0`IBj!Lb+we@1Zz82wrE>@X}XNlk&|eThqreJSA(~{{@{v{ zP%>LAK|5|@cDBhSwK`A|G!{z2W>k$&V-!|+WEp&Mco*P`T5{wgJYYhAfPo=xmDw_H z<@JWvJ)3nbW9lGrskh^}FBwN+?#Mi=GK@b!QB|CE*cp}O9YBw=Cnf~M; z%@9u18EG|H6UZphaV?-#yPf0Ju4d|hP~RE%yKm=x?QHPb3{2nh?N@Nv3)IfE3dQXw zI)M!F``1(V{dP#*9x1ZCN#GEF5sd02le4(^6(cf$-^H?ah95k=4}YB$l+d~-A8fBZ zz}j^u0Ub1AIkwO7d(SsO6MimOP_s8I@Qwn;n1qlZlk&LON(%W4Ei}8_;zqMZ#IlpU zn^Qk6Cw}6S>0P@hJ48#79PYqEX{fri5R6e^-oDgO34La)-`YZTEGp4{U{_UD)tWK@ z^j&55R@>a57N#Ap4Yy+olM0m%#s2=tN$@7}K4l%VC#trnV-IFT0x>8;2gttdnVHSX zuW`y6zpeGW+7r;&>5duw>p9^>SpfA!6VKHCWX`8CB4_7A2ARXNRdrU}>ISsA!UD|a$w-Y~ z%wBnVd(R(qb0%=mh_Pc)#$!9~bu)EEh9y%x>CUOdq1g11^@Hm`d%AJE&?4$i5-~!} z+M3$hd8rw-AF7Y&UtF*A*XLkg+3jkzoistc714HaO+!ED%1y#GK40vNYnk;NH%|!n zea!FaA(t^nREHeQG*9nawy;{s`cmru?P#+G;F<5yDkI|?6F6Mlx`*HC(ShAIza`NM z4l7YmROBcDiL{rK!{YOV{nGz>Ez7HO)~U8~hz>&-8N#HdI9mF}m)#h@r@LT7` zDh2vE7ps4R1_v*yM0v=?MHHx?#l}g$?^vh4bV`19NW0R{JP^1bb$EE#pZsirV5>h| z1HKBov!Q(^Hf~5v7{3@HrL{i@g{W3|)7r`Ob69~zK^R5CXLrkc*$zqNu64P_!*WT` zC>?@pFzxw``t6RJv~Nfiow{7hFW;(zQ%`$5pHAknn66e7Dlm1g7pDFb5v8%lXX;0xzu$%%gf$kc|Y(prBk zmt~YOoWG}4I1;tLY7l9R{j+nuwA3OL(h2B4MTE+v5-u!v@JV#H>A4K1mfM(%0+(O+9-ZKF< zLmc{9Gh2w%P=RgUlK+qbvRpMr0!Tx) z8>`4ELD*UDM*Td0foCYzIYIGA7Uwyu72VD5IElX}(cXA$1onN&cTRk|rp#_dpM-0J zYH)wxmWzANqO3k3>*vPC#!|>v+2L^|T)EmGE38%~!*6}0q@-*xP3ERnI{E2n6IZYv z9PrOc0BS`L5?RP(HKsJ+IZL-F7|rybHN`3sKGQ1Ct^hduMl=dxXSZsBzkMg%zo*Ja z;nKNaloRGwxazCS>evRf%FZbHFcr2^PGN50=%rg&?Buvf@YH@|5MV(es#eb-eDYy*30(<>I@Jy(Ew6iQo8@bE zV;jAvYm_^2EnK;R=HnNg-TsV|x1enT9tZkdG*YlXT#&7zY9$fCCrE#`n4kL*zjy#1 z_8a%47Tn}#OJL8#gth#LZ=0VVHOWfrv1Qwo&s~(Yc(YcX{Zy(ncmMfH8w^}V}KCuz8~leKVViFIva`;k|qHy+QU%K^|XLvUYpt*5}&qQZX|9QZ0&rlGW9)5-I>vouK0iijrqE7Rl0 zkB>`?Dslq}J08$H6p;xl0EBiEdbGB-R^PPN`IaPixb#xbl>LVcpXJ`9iRa<(Z?{$h zuI-^sMe6*>$i9QAsi{}?z=C7-xP`w)^;n&U+$@vDs_eiA^cpejENY|v2^BZHQkI0> z{rt+xeH3y|-*ML3cSW98ao~sQYESc1T)VadnC})5Gcz;QZlH1w#>7s*mNwYD_mx#B!H==A_8k9Nt3oEi zt{p%x+eP!?C}vBmGv_QHnFj`5DCrdLi0>OOyg_&8wyG+O)qI9__QbKk-J z(vF=r)6@PAZlm}`95mOTYzgO0&i?+1h41nRi}dpe9@|^C#SIPT4@wR*;Z;d!aI};% zKntrKetdG$835!Jc@kpW+uM7m!SC?5t2>Q1D+#i37EVNT(kPn92cm}v+pGk*T0&Ht zOY5L`5S*4^j=Llu&bbl4n*nosjCR>;5!VbGR?BX|UE%^9P6hqjY&`G_*acV%-MAL&%c$^M zOKVL-f0x|qu=tyeD6)Qxj}Lwp+R%qr`L|Wapg$&}x82PdzUsbIGJtzLmQDwha9rj+ zxaVtC#|t$818VV43Ekna;q!{=$k%neQ1AQf{KKTB7x&`9l^6RPlGQ_U^qO5@4nm4esIi!BU+1E~Ucg|~}k5vHHT{?_9U>)}iM*O_G z?mp_T!9_vZg7Y+oUz`G@rOPDwP(@qs`Lt3fc85~CEga^i!ShzN{u(8XI-J@s^Ee>{ zy_|POJZ0Cd|6_Jm5irC|N&D}WxW+uRS$Kd7jD{}JJPEcW(FMJh-Rwg|M5T0FCPuq`U%|Wa2!By-%h=f5Tz?^L{C9fPSGio^i2T89C=P3RRvs z?wp2$CIMW^fP1__FI7K*ANXYlZv41S987)j%kLN_;T_YxV?N%0Q)firX6U8(`FV4& z8{j?I1>HN5hQy&2>I6hF=%3^0qw-bXkNfr}5D1@O*o`gC>>hgop~UMyK0Y(-xuMqwU&z!Z+}+vTPZNLEJC9{jy1$P`1*6`gQAXV6XW(KdNi9{^=?_(7 zPXr36$lM-7SuR%LOHgE~fzD$nr@USyKt&vpxKuIHAiEb7gUCvf+Un}2N9C5pTt*Uh z12as_;xNC0_wSLNujmA`?=sgSr;p@QnLbDP7t4#@h`g%_CGUQ`z(#SiQi&VJ;FCEn z?M#>++Ib6Lx>Ve`k0Vv7lb_wHc3akIJV{03eJ%m;$v_w#QLU)^n5TK_{5?S!;j(7= z1CFDcaE!hl(|ZTdTYsA2W3%z5=L8CMrKQ^$!zhod`1p7`o_lErPDrIffVX66vH21W zjG@qt8&cnHz}FN(2P{I?c7XlI1N9M&;4fUf!yH!%NgO}d+=;w@)@{*`I~R2yQStp0 z*4=LNd2-XV!sz+q*I#a~beFp-uqkWtN9s*z^U38^SJN$r|Ctw=u4%c6I=Jm>eysIv z!X|#Pm5UtPp%Sj9cH>I$2(Rj zGKbZ)w8hlI4hsaL4ESM-JC%ZiSj??9GTjb>ZP7^-I53%)0fu<;k(p9S{)RzdPI&#! z`MjadEdqB_qcVIl$7_`2tB7~y)*UGuwo9MGqGPaSWZlyY?SEvf9U?h$!M^W@+$NtN z1rDQVgG{arBIG>2Gb9F!?K2}g1HHXHJu|4^cz=ax>6I21hMK*&Y?52sQ3Sqw`B27X z^0SVl^Wp!A1z3jBcErJ9T_joTjLr>eT1RJRXT*J8aS%BE*f(=LY{qie?)Rz*TtV%+hqZP& zpeoR4nbz%;H8q9$&jcFMLdAdjExzda4lzi3RfCnNDL2`S+h$*90R<$`dV}Y zTOpmo;Q8M~Ew(ySN#+Y8iNQ$H>q{zdm0w_E^jWZ@!k|C-Mf>0@tOPEgZlk_sO}+eS zb#?U>L5@mVw2wki2;#Tn?haW$O0~uN;NT#?ede+1wRK(i5^KI}>$}ubuZV>xNP=~~ zmFhYxTrPK1&xNfFvK=SZz*-QX!dN}lYAyQa4pKZdJ|;mW^sPT1#az98D-Q^Z{;?&Mi~h|_d}sDxYA zLL7^T!0E5Kf2xC1i-0~>n=6dLt9RMWo09jZ<5FI#d{hjeUpq8<&14)vLPq5(!oYt= z!q(4l>Xk@x2IT5s7JG)YQ(BAjtQ?%_tniUQEFWvN>piW4XcbuE37AVFt?0WMJ7*Fg z-^v34O2w*qN4H3Q66yw9`1!eNqEUXOLtAZ{1sX7GIgdN4`kga{ExDU^9?4cqmOx(^?Y6u>2K-Ux_By$sPld~XN(x^wQoP~6^VYz_-sDjUqzdyQ_C zw*Q{rGVj(We2beb6w>#vZHz=bvVc6kw@WEHHIgOoU20=YPbQORCDr}o_C;)k*w7=W z`b9ik5{tH=fuw>QulLhenO6L?bYXynJ)Lk7-LHoIK?x-F#vZZi1^<&C_(u9P0ONP) z1(7^Hh7FC5Vr-F*+_QAy4fHA_@fZg90RuAV)?K5$mYwr5k|4vk7=#GT@FUpN`0>R@ zghLwQlPdg3UCa@tCKuOE{HDePUiu6vlBAQfooD}ltKcKWk3;k`J{Rbl9$P(lDg4ME zsmT*?@-T8M0T(-C+0u=y6q)f|&2YiL=6Uu$-5KD?^HCS6GUPmOdwy?kZwJh_8wo|Z zX>>bz!2-UJIWT&Wef}*L3{gcDKI$F4Ewoc&n=kWkYlJQwFfF=D%r~sII5r>!Eo8Og z2UEkcOWN9M{ra&3hJ5a=EkG1z)7<`JPT~JaG70ES)v(?y_wA4SJ z6vxns_y2F;DF`(*TEWG+?Ur-lyl;DCA%Q9A_|P%_)P803N4jeEhlRA=KTtBLT4YSO z81C;q7@=!;8NFUq0(kfXqHy$Vm~HgH?tdi_hbD4ZfyT6l#K({DXYl$oi6S|&E^98_ zu$IWe+w?KQjaxO-(h1yVcA35_x09b`wBoYJtBl`HLx(X2daK@EB7#8_|%iGfg z+P0_JNZ9G<>>QMZ4xmwbqIwod1u<^N^#RqJFW&jKva&+`s@oUt;oSBm80F%kyqf91 zJ^567%%?Pp>HpZ58Zb}d{?>4iq_i|!sM;8AhL-kY&_lQhdaa&YH+e=mcR+Lf*ZcQ8 z7?ZjX?As=m^wX$sF$}>-OqA&Ce{K1!%8{u3&cM|4eAR!aX?%%H=+`Hvu*dM-KG(JP z@864v?$=(QTsS6DE-C{?Mw!7~>E6A2yVo1QOpD}8Uxbo$0?Sg}uoaZ}9i&zt*wE0> zi;$gj(t^=?54k2kg)V6uCp>l_wJ2CZ@qLQvu0^9vevUTBqm|z26#O)^7>#;53@mKT zSLmYXHQH2SjiqM=qgo6i7JonFlGzdeXC;dfD(dR$fwxoShdvjNdB`~t26d7iUq*=$ z6`_Boj10xa#YtcgmOQZ3h1`$SYv-4L@1;vCetG)sl^H+o2De}C@S3kqVILYK1zre` zM0dt?@#R*~zIU?yZ%%xPo=*pnKr%wI;)sh*(%ZqszsgjNwTC7qPM8Wt6R!9F;DOW` zJ6<$B>q~}S_wT9d?CexeJzd289p;cw(AoVPf(-_G^ZMT0|MsX7L0mMX82+M;rPMm% zjQh&Qi8qDc-USAhhy1ag7z+zaqQ=EbRdIt&rhGNoB3ixhi-qqqGXc+E8(&`dB;HK? zmZ-fH<2~cr74`HNs#E%3BWCK08T7i-$q2Vx5yMcGz&J9~* zdT{daT-+7l+{V8b=uy9luS@&i| z-=GUjw2@%4F(_BcL#ABer%%71 z<||ntF}bR9MZSfPejhIr;BP@@lWsvG6<&bX(E;X`!X%S%vH$JsXlg(QGG4=I1_bv3lHpL#&B}i(+c0(Ilm3l zWzhy(@jH>|AiC}{4cnZZ^Kl`|=D$DOUI*uPr)qO$(kC7_lsblid3tlxed9?9;}<1k zv?($q+!HqHW4dfPM%K&0sjrFpYPR}PPaRczL%oof2)T^Q<#KSk3PVQV(d0M8$2m`Rx--82%MN8<-oXM6h7Sea^wO zf9Et_u-DpLO8M1uq_u!w)&4L7(iAVz2If95m zg*HCGJs2UUa1VQb|8tS;y4B2W*w#3Nk_E1ksRKvntGbPTNcFw^^)2Q~IyWBo%_a)4 zQyJ*8R<>%hD~?$F77Gy%0e+u&45rT*7D-X7QK8HAdyl+W$xz3 z``jGKkT#A7HTca`iR!Vp*C`FPqyF~q zA6RJu!jD_E_9O2T#P+?>C=%H(G2QFB$wK!0yhAGk84X#_j32yZzYljochlki?mrT^ z5%G5w2C0QX@iO=PrD= z_WTGKOV^L-hPFh%_D<+@__@M08oqnZy8QpBy2`Mqx@avhbj^U$3Jge>45>6jh#(=| zND2~y2uSx35|V?`B}k`)q?8N-0)x`s-OWAoec!#$b9o;A%z-)Q?7j9{@4MGp`@L(x z3Tu|lDuK8#tV%%oGB;5?Wt%gGXi6@(dG0jxhZGTR3VANU%kU-m;Ne{OaoyzB-)aZn z+03uCRM7WA6cKHl44|C|U;qyShg>{@qzVq^Qh2;l>oi33HDB!Y+zrdpe-6q@IRaH{G`)x6XI?TAI~@~dxNa@4YZ+Ivqfjv zr-_LPmB+DqMRTIbu3|C4FQ?9&<^=523rGH}{sT!TF(C3!|LL{mn+jzZ)Hszb>FDj*aTgHgu3UlC+VM zarmyoi5v8W4sst3SKi#ig36h4q|(be2|RB?sJ^r@kId;{k`lL3e1B((JV9G;&%<~` zQzqGzGT!9Ympjw}`=#)o3#KPtQVbq(cxIfv<7CoYal$q;KT+vte*yBWivJpjj%ESf z?BC2kpf5`DpQR+5>R-n$ z2jYq}7mqm8}BRefEg8CKSnRsv7invsK^6%l=oZ0D@dZ5a6n3kA+Bg;KGjrBA`4s zT#sXLw%;fhHyV$J8chEe_8|n?ciTH60Ww;EU@DcF;h_ODG;?+e5d;O_X3zhOB)F<> zQ~()fHb)42X$YsEf0EQHAn)nz^TtYBJ+YKYENA|Sw#u<;hQ#?ifXb)~ zzEwHdrn{r(4IP%E<#IGfnVa*zfA@XWaK_I(yjIq<^PU-IMqhGS4G)pfM^>4p5KdvM0or7NA4Or`vV-%(Q_tVzk8T@odN`D3TfE1rO-s}o6g+Hc+3mEd zX|F0tZ)|FswRdpv_RHBtS_u-qbXNz*6R1s*7HJc`qW_tbtxX2=H-lHOzueojU0KoQ zvW7aSnB(5>3Dl*&J=m2m+ti&p`~or;f&K%;<+2tY*eNl*`LWcOz<#R?|0rvZBlF20 z5!I`fvFcl*te-Mn!I8`Zm9|=uuo?REs`S?OZ*lT?Cz19jYFtZ z5dv&tDjtnk$&){~9YVb*fx?#J#IzS|eTog0mHYC6>JNT9Fu}UUUKBpRKIsT0RwFBc z?)s!UH#Ihb2O<$BLMFgZ?aMAAI~BEmSE+TZOcw=DNwni6G4h-e_v_u2(vD{Tg~pvO z>((Gki9n_SEQZPW@-Ommzdlq-%KN*f8f)kM@V9C%h;n9VD*mmLmQeJ50j=Vx(gUw0 zKOG$%dLsVqot=!9_s1KnVQ-ome*BwWmB7BIRuSL_jsIp0Ux5tY$b!tiaae#x9+hpD z@th}deGHIgdkem2jySnA=JV(}SnhxJ*hJpaa&dUC^`*^{Zcy^l4sZdZuxG|gk!bS= z8`HBO{JpX9VqK1u3UYt0aYrPtKj2?(^7CF`B)k562M|Z4?Mu~pl;iGET`C+5d^H{? zg(atK8pa@}060l88cCc`8rj<;;xy&?tSHS*LrK%&+9H3HKlm=~?cI3w*Hhp22lKfO zQ+Z7z-jSH~JxyR^4s=e97Hx9hM5m9J7`!+cu760>@DER>u?4Y_v}2d;dtPDZkJ?78 zA?D^tuchk{y&HBy?{DPEC57g5@h^AUnZ7>Rpl=ZsD3^@((E`xi{+pTdPC7oMs@(HY zjhbNhu+Pea74P)#r$%)%1mciORM?N3cqm*X4y|%ky;g~MT%u3^qmvw7Zu2|s6^CzVuR8i^uC^PaJeGWNaGajnTEywz4JYINT z%?ou&_i=rmcSTx6H}1XRC&lQCPbx*B!0NEE7*WB&S{5Vg)p6cd8+V5wus>A&=b*MA z0J0O~7NvSc&tvl1Y&AOhN%Jt(LDP%~1MC zF*nmn(2EK(9oPZ~O~gqXCA$ygC`4ts!%9QI6^`C8*zR3K2z1GP{cYn`WJC%$Pw_71 zZXw{*3J|wG&N~Kt_YEo23brtF(hAv6X=z!1o1&4iBm^jDZM( zCG+tXVPQ0ENIK=j<>`?RgF`EI;bi39K`R?nlQMsM7(3N)9CaqY;q*Op@&Ie{-12MNJ{^OHIyz#IgC9n$$(4j5UR&72BFdiUYpq8#$Spr|n5@fw1Lyki zl=;y+6OZwOxEbYFU=B%)9QH{x9J))+>fLeJT=zS{bwOF13>4)!8AiA(*n83vzAA6;n9Hp2N)}qo4z=soo^w8?g58?$FLaIb=~u{*qF489t;!h4K|znRd%rR6P?sFH zcR%uw7!tMAhGN$_iiQb$ARBtzr@NBG23?UOsgM$bYMX6s9Ub9Vq_jNzyA6X~w#1;@ zCAPMiS!=A;MpIw|=WQi|=Rjh2>f!=GZB#$L1IDc;MCY4~C6HHEome=u7CtHu-}IfG4Mi57wai)@pe>*s@yehOdnE`GXIp1Z zgYn%pHssm_-coJVN0GSys1yZ8^epx~I{Y1EmAl=t%Q!kQap8(o>q0nS_D&b}#UiIz z_VC%{nk#q!wo(wJ5U*>iNf-U{RJLy)_7 z<3&YZ|EU;1S|4$KxxxnVia?%{biX%+w~%ksz;@Z8OrAXrWe!z-&Z}XnYza(C9K|1u z4TdDpckMWa9AX0`AF(81_a^Z}d)KCUq27Y94LP*n;ag}>UG>m9t)b#o3&Vr}^)E}kGNAfMwS%Z3LtQyQH-g-J zfT^d1OoL;-)=CK{^i7%U5bH-CbZXZ-O*iJ&qVWX|IT0tFDJ|p%8_Tm6l8phL$I}S{ zEYJ=T+)rkJqfmrDK-pB6U+;Ld!df2Zf5QsnOmLjc4D%B0ZH#U5fj;hYH(Anw{Z|aJ z@9E>8ul*hI0}dMerNcJi7s3>?u$-$>LG*bzlT=8S9xvgZ&5w-@d%MhcyU#oUl1dA# zVy?MAE&2TI&>VKRhN(heO;QGbz#^sk{REyn92)|929G(E*e%aR&>b1+4my8|81Um2ZvX0+B-pe#nfDh&tWT7vT0J3@08DK*D z&(5RqMHC_=K6o4I`o(LpEc#fun#LdWda}Fvo=TLDuL;E9Q=ip?`~FW+2pMxB!ek;9 zv(aVO1{S?iLt(2M(#bka37QDJ`bYE~!@fTgIsM61y$*e5&F)c@@EX-!Rn*m;yn-08 zLq)msH7aQ7*B|GPE*SH%$17WXM5rG4-VO|W60I*aYi((2X=wo%MH2jN{bplfc+8Fs zeKaw)&y3gV*vZk66)+I2{Z%vf&R#J4qaUD14xR8}ouW>`T3nl#H*BTHY09j>(^c|k zLPjn*3Vmo&B0kCDDc+INSK&<5Cknn_qRc9IogMxFJ6q(xnW=N!m4WY>4B*EgdfnL4 zhY4gEy84wqm=9z~Hla_ikD&*O7=^1qGI^^s9hLj6P#2q)&q#G3zD}&hD?O0SQ4s>y zcDX2%`?dZ)y`JRl4^mwG3B0mTeO(=uVYFTinm9?T6&(LWVla4c&|hc?cYSBaj}4Wn z0H1X+IsK{mW9V(IFTq|PdnUstL2DwP9gZXw*#rglOdr=V$1AGeT8Nbl_I+~@*u8Vd6l`Su__%o|_Y48V%Zb&j)r zs95Xjzs{ie;BoJa@n;nnesRUuv~^%5t8MQ8_0HkqvAeswuz;?(tdp+$o`|Nl0NbKH$}l~PRZ;KaJ)bYC8l^~1}M}WoPeC{ zLHbPmZ!N&@^_r*FFY<)x-Gg-Uyq3a4uf6({c_k3{4W)Wi%CU>>Iew_ldk&rV+~DAS+r*VD>lpj&8Y!*;>46MbCv|f zxBuULauETJlOHlxdGB}esp+x6+rT9dY#TmNg1b0@fE^g1eC*f~8ouwXzU+P3eI<$= zvxpiql+Nt4(xp`eo)VLD>huHRdnfAF#bliO;a|3oJdvz8X=77-Vi}WHgC>liWpex;s&j5VWv=`mO9zb5v8P zjRvGbh&5R^SjV&3kerJT? zZIx-@TbqC<%H)hW%N4bU#*1k`~3 zE3Ut*W=eg3-x)?~GC3>nHM1`Et3G0F1% zO^berCwG3HA#4BHs_9UA3LxD+o{ zQ(7x-yqx>gJo;Hw!0##wNhy9d7wk3P5&HN1a8;>L?bAxRQ9U2_fDBg>m-qG^)r}|H zHI(JX4OPAzZWLvuWn~$3QC(LV85w$$6BAYc!fJ=oSREBd5`W+k$ejj*UYhOJj+<(h zy7Q$!_aGa?x08O@d+9v*`mV_(hap0`%p3`}rR zMfnO*L`(sG;=o=^_um>)B+7UI#a}S;s+nM=l^S?SerTqqN;-WRDf;yOu4fO4jg$tQ z=C%e+UT#=Rbhzo*W(&BB5omnxbJXWC!&XDA!Ncr2g)V=m$&>I$PX`bEUhF6E&J*fN zv{yM^!fpJ@HyicH^SV74Rwx<**hs|{l zISv1>h9l;>1`V)t(HgY+Zu8+U`@@xiMh0a) z;BB7p_Fu3<0B~O%jQeWbPK?S$yHwu&dj?{AgfiHfwHx=8ss53#yb}_nPUz>>sei zE61*SIUkSvOFX#!thM2ty$QhkFOYaf%HdGovheObt8sTdv45f|Vl5ceEC+8v*lJ5( z`;WL!bMKv+-{;A*V`2_^sbci|XL8wZLaHY*hk6j? zf>*}$tUQYtD3dDw89*~F_V(IwT&>$X_iy1#!ZuP>bLRG^zPA-rJ1Tl+3xJ|z z>vT3Z02&BGnC}!rbFTM2pznhbdrhJ8qWb(-K|+={jzS%Ogiwl z5xbYC;nGcIm$~!Gq#YIp=uCv&Y0x7V4pE9>-?Ggh&-IG(xjTw)8Op*Xr0>PILNq@k z`KjaU#!bDqubZ~(CMiSnh(a_Ru8D2@6gfjXZ#*(qO_s#SgbYsu>>>$-)LS9(11d$n z0)?V8o|YFePj)Mc3j( zeB+UU=U&j?*Aouq+x3?_P36ov8LveycUrKBWaq#c3TI?npZb>{19p&xd}J%pQ-Mb= zcsPUdp?0xdVSz76wlh>dKf^zm2u)Fh^l{{~&7Uj6MZGdkiF@A26nFT#)gz|DsXxt~ zzsuTeWE227h|L!N{>~P!9AN(Dar&>;Da=;Hj7U43vZPeNQ;SaqWCbTX9w%KTeH zy*I-ow?oKq0ChF-_P$IRFEtvc^m}0EJzn6UQc~{Gi&nh?=ms!$_vakc=()yRWQ(O^QHNY z*UYNCBh}KdA)}=MRn0f1XP1J9a$p{aIGMLR=dm)Dv0g*jW$Sf(o~MLgn3lb`%L|qC z)aQlcvEv?{(J(0jna%af8{{AFWb0{h2I_$Q_}2>`1YZZ;`*ON}C+#On4CT}*Pe?wm zF)c}wAU6YfD`vmz!WkyWO|lPWNW`Q7-#{;LXR_qgWahp_*3Wj8Z7%R;otCx?;@q-$ zvV`>6u-c?W)O4-tNk@`@U;h!TT?)9 zNVrA00eB)k9$X?rnWUckyZ$zCFYp!*Hv5~AuuT#Ov(sWjvK5J1Ostj0eD%(ZA5?ce z)ZtD+Pss}ufB+Lnt|LS@9gFk`SC2=${##)o-+#0|A{+PI+1WW$S9y)7=f~*>1Q{`b zuAayzUt1$1`m0YIiBD4XvZ+YYULRfW0~0#~@K8HbCcBET1nk^6bJ-_FiT0$uLl#I? zydV6t3_XG8_kQh-?0L5n8)qovrpRs*4$LqEjN;3$U%%X66sZ0k8ef|57|5E|Rxx01 z|83~coY2>{TiTkeeu|aD30>`!UhQRx{Tx=yl;gpXzgKmrKJNY~)-Th$>+Cu5ky01{ za`ERk!BflkS|mP{u)7^kDwrz=;o9~|p8Q$lf?l{v2TwB=CxlyS1=L}%fQ$Wot?hKc z9LTJ7X?j!gWqx51>U!=SJ;D#k9%lsj`&>K9A7+C>jG@sjS+!0Rrb>(TO`iEa{x4p< z_=t>U&uM_yI0Tjm%(oR?@T0CClfAjxy}a2B%p7CQzk4-R5Y&9x!l1fqz`rduN~v_6?LAO5@ERg2`&Wiq-E~#n(f>ZJ#)S-?iYM1 z{r4N}$BKL8)O48M`I#*2pA9qF4gKmEEcyDC`0{FB=GSag?wLQeT3fuJ>%3NpXcd!WqiMu zT@`!4|1>L{c{B^eeYQ|W_~1ap+bqAfTb>S|@b&2{3H{BDjpCf)wKz6hpEnT%lMzLKEvVP@yS(z7y}|NmTYQj@?cbXf_KYj(^BBP zG_N72bFkWHCCCQV>%gLxx*sU5BepCJt*$^^K|c+&xU8mov^;X2Y2Ntc)L7IC_TL(4 zHV{Cn>H>h3B`5A>CC!!ER$B_;MD)Gj;1>!|`aQqM(7qq$3(kCq+{&x1X)y@D- zF7IgQ@315mGd(?hjnZK2h~u!X{!0$e9X6VKVZ7FlUOguyeL0h;FCzs(#fd6)zpUhk z9p*zndW4amYGtWSmP%J)#HLPs84U|pr&*b)k zaEU#)Cu)@*!9J(YH%EVAPo*9Pd;KY>z1gU;?(Y^>y6XeV9k#o1)P!$H4E8%P4FwI( zwUIKWH|I9|(=UNlNC{uM1E)fdjoqjCpg5mOKy%(klBHF>%r?!7$+FvcOTq`--T9@@s3YVOO_TF6TPCM>S*mbY;Fy^?yRAX z>XPa~-3HrsB=Z{a6_=KVzBp;b64Dn?+Mdb0walWuCHg$9u;iXf0}M*aoDATXhLzjF zy=P7~VG*Qcw_a7^;C3#iZ@2TTyJEiz=l<|QGi_HG1HQ?u;~o-Ttz_|jP|QV?fCxj@ zU4LotKeyP3#ty3OaG!RwFpcV2+_hY>-dkpc#`Tilqv-fsZ99I^5_?P%OeRoY7Do`? zE~-yidK@l@B)LLso0v@R#4EFsC0Oo#+#h%?(!^9jgrbSr)t|klIP16(A`rME9%`2H z2;$V!S#;N_{anK9V2RBpY^5*=C1Dy(qP&G>H4Q`$?RA zLtCCp3t&kjomfI&CZ1>`$?G_vuE$_}ls~uxoBgEk@9UGex;hcNz7DE1f=Y3G->9$U z<^HYK2B);{7p>XP*b+R~I!|$ah)wCaybhD@5!EWv=Ko96#ZOmbRILCKu8&i>^MlmS zP=K~${q#kVw!K8UXZEXxWW>#rKZ`@UOy<}{cVtpK@V2*8L>(vIc4Btv?%OERg$r!F z-kq~OTQzo?6!}dhkvw423bErX!*3_@e-LRd+n=3CG;5yCX-sui+fGgZfc zDEDj7^o2VOVnj6$IA0Vr173osTS=(J)*GIG{zWQ>Lxe8#fk*3wWGC3ANqGN8>IL>vKk-g?Fq z1bT-EX`fuZcrD_s&q^WgFUA%MVE$}?K8!#=E92{UvqWOFOY8)yu_3;r?$e*}+DrM{ ze_P~1W~?szu7fxI18~S&WQB!=*-xmM5je`6N#xbLJ3ASsYnz%O!aNsoeO3pokiZkH zKDNUfT`0Dj{Nw+M(YuBEkCC<+4N=wxh{WK(I1?pLWq;y>n-{f;?gj~Vf7NBcBw7j+ zgStTls&OAz6_(TmdJu@oi3uX<(q@T3^pOuF(2N!(iP&kB78qV)*_^9R?q4n=Qy$X+ zmagdhpa45*Ef#j6>rzNsRNO7oPtqlF!}xH7o!V@(s;nVCJf}T625%vNpq`N$ste7`a<1SABlW3NC|Z<+`XhZEmCGZV7F;8 zf%}LJoC4M z%jErOC8*!j95Gern3|S-O|QFN)$wM(3Seb?>xWh1qjiFrDFWCW3Awdlc+bYs=$jLa zICKQZCPmn5RXBZ|`8^-3Rp-A|%PaTa{jo4B6=q1u<|Hth@i+g*h6_X&y0dtaq7yR8 zg?qmmrK>x@T~77P`oKf00A5>L(-(H%7~KINM^Ve}V)j+AOxes@ z=Ocr3!L^!(2HK|&;#DaNc=F8F!0`_SV)L{(&nBXc9GskPvJjt@-~uBd+vMBZ+pAM< zgOa^%(x$8qQ!B1cJyz7i@}d>`km7#|!$OX;QxL-^P7} z&#(5ipB-5cv1bzsHS@iAUymDc{uiD6Q-h4OpIHCPerlOhKkYV*sAd*yj}{cLrSfU) zQSq8F#v)oWRPwM%P_JV!>sp(G<@2!#4T9SCNw$K%&+4w^!SY{YP z;QOs(O0NJ4A5O`82_lG+45t)S$c(D4>0;CGLe|nAJ2DUb`9na-^*O{MOdfIhe)e?L zd7@^$T}zx*BZr;tLq=huoD|onOb9s@l#c&FE~2|Ww5Y*rff=0KLFi_tCILc4_Yeij zky0^CtEqKV%Dvz7BW>p*+p(6kx3pZe4SGHFNBR?d$)@!96o}bjBwG(h=;-O=4d)h7 z(Gu#tB(W3{2#V`BTuE{wUcg9o$uXf|XFJ)&ig%yMz?{yZ0e2ZH^|@${_Pd(4lpJ2ahHnHi;`PBR{o{z{OSA+?Pw<`G++aixS*j&m8#o~b3=!}a z&z}1pOqylD(C08|#3i1zbZqS^K)OlnF+H$^*kR@$2uqUwa>`A3Ogf6fW1*)Mk%G6+ z9InltrSK_y{K+ie85OD`h`gfsyc=94sjPUhug#UD?&**wn?*x#_ss16qSu21gMXTQ zv}yiHq69sT35F-1DnaABEH(W%jz-jHfzkAXDF5d;UVv&tsLOsUY$mXj{4R7@u?45PU{W5k&oY!*HEQl5QSqM~U@)`K z&kJAV3U^rvia&!V=P>dA|E3Bhhv>?+RTOLxel4=p-pH}nWf-M;Loe!d^{hy2Iku}= zEfdob@I&#R4j>&J_u0sM+!O2~6kW*g%=%sJz9_{HJ&QdY`40&2)*z5Bl*^hT))b@j zZd+l-`;ENf;^L_IivXl%B%W9K3IHFgddo2?+E}H>vb4Cye*YG< zx^8R{WJ~CygI)+jm>r%>9O(0i?4pgFeH}_xVRYB*34NUKqpvc4yij7_*;bqLgXQuV z#oO!SN4CE{W4HmW@)ygE0U&mq z{|74hpPD7xZ2f9$1JM%W28tr~|EjWY0|AOnmcjea0SN2+Jnx-#S!4hMB$^?LfG_w# z#LLVh1@6BbV2pr6Z6%I|$C3ol#9U%tb>pp0kaHKSS zMnW`=gy4_-DYln?2Qm3fAq{%)nJ!d+ z{BFPdwDocopW<^&lgkn0OL_UMJg2+Qp4{oT%|`Or8;*jWY_I^xfg|MSm0RLNEfr?9 z_6O}2v9#{E;TM?-OR$Vp=CO_}$DOGL%;wt*=wlMrKm?zov-52iCZ{c^alnfRkVryM z;r>|Ww8?1o++S!tW^Y~;^M9Cw#M1S~h1+rWK9_O2n88yU(U>jlaF8jo{m|%oBgI_4Vu&T9~wk6axaMcT^fX@zyy-cpkxa+hxMYU3vD<~v6zkWs5 z>qryPe;QZz^t5mZhm-{`{siGqW-}emFqiMqr)(SaXU&{9dl|uPF)L|oLxW=$qA!{P3qQ- z0(`F=`|s8`oC7+v6o4SN~p|qnIo3y{*|J z4^1~5b-(f`ZnSRl5Q-=mW-x9I5By)JjKeOWdPUB7)PVdWzULBOr zE13#Y4VCm7yWyNFtta@xcQv=X)S>paE6)4?BKc%li+kbb8r~6(kfAVlk~eC-|9qzd zrJS&D0G$X&%!HuX*T~yRnAk#>9Kt{ET5kmR-sTy#6Y(--ZAqP+xX!7@7s)ue`O1u`4|#RTWfj zIp4{O9W&hY0U;43fDgmJXdxfzzfmcQjUrIx5|eoMv8{4>b~dVcmz0d(PAZEupbqPF z-oN?pVnEPSd^%3!rck5@5n0Dj`voafE@xoKpQCkUuhn9OUA85tA<*S>{PV)yUE5$c z0LA&kV7&xZuPS*qx1Q{L%Pk?R?(XgmPSo0a8ie=N$ia6%jFjHV-ob%;UBZ;bYYsF~ z_gw+B{+NQpniaYVDiY2h_F1cNmeF{}xrfu)awj`b9K0gE#keINw-@+%zkU*qkQ_t_ z)aN*F70FfIOOv|%*b<0<-jKaKCxTr6aG&0d1;N}(WwU+*F7K<5Zq083s-DID$Ng2{ zlN&b()_(h>B!ka>SSBTe)i~IZ?uM}(H-cT(a8Dx^&yU0NSs2W1J}@}*4S2Dw508z} zIJk9wrrBR*E;h*F5t;G}KNR*taIkr}IYVk75&4Js8-|^nz#8)NL422wcqx-~49(~L z@TG)|)#Fbc*+oU`#6xEwoU&oV%vvDqgKMhn`>d*X_5H!o|JNyGiThR%S(D*^bMAA2 z5AnK}rd}%SQ$2V4RzM7(^ZJ`O73wu;bp_~c?009Z*somUrn3{U24SpM{iVw5vhcjN z>;mNXLfjw3Dw;BBs^7FB@F-}|7f*$v2jmZ80~V%>l_0WduZXb?%a!8ls!#GNWjMKV zju6H~`Mg4o38<~(>%k`_>HZ$6Q|x`L2Af_7HGNy(PYib_s!y9*`Y*dymR!XndlqAn zAMi3B;=Uqu8*~g@0=>LqQXkffdjbo#8iNeuvc221qg)MF!*59$7NMzUFEO};410uv z&8pYebKS@P_;J%>jl0jjl%o|u+4|1jsy&SLsETpa!kokY03Mczrqg9baiTs({VJEH z_&pxeFxsee$+^5h;IV`&KMaQTU%W>iDKsm>Drr`{Aienjh>qMsGaTuPlvFhqob&{>;102i#b|5Qy`4naXv)j>6*X(XnNnt2`tSX z5@7z?jC5Ahr_f@VxA$Y}54=o-QwXj|LLXCizerSD9=z?a`QaZL3)f!kUsi(kYCj`% z&+>TM-@gj%PB7nYQt;>8B-Z8oc06|yOmCA`=^5JeK91StseU>URb_S~LDbH(FIBUp ziSN~mF5QQ76vmE^j|l?8hd2zI5)XX2bxS-eI(Bz`!^S5j8o}7P-D+W5ZNw34tLty+ z^8VBjDczZnidoD9zvw`%QVdsihf0luZS=<%Dv~X@Alz@>+Auj(@N@=w;Ve+WkR(T) zud4}E=|D^(j?J8&nnxV@aac~1G%Ny~1iB!Y;WrnH+~KwJ7BKd2(04w$QsG`AWuhb5 z3pYqu(T2P$gpL}&L=vZwfV2pwGT5D{EOipG1}{BsW$0;8ckun3=o*f`khSUF@#SA= z5fCN4RpY_C&$1?T9g2Kp3zCwSfg|`kQiv)=Lzz6F_HuDeklw4b#H#kZwZ#cU?Kv@# zn5`gE%EXVCmp6roxkV0+IF-}Y+r%h>b~$|5=ao3?&)4Eal$8lB-CM|_CSu;9=ZJFI z)2mR5p~l95QSQdZMsr`uBK{OlLI=SNTnz-3@nCWI zfV>C6oXw?Q_4-o?MrfssFi~l`CkjdXH{OMOp@F)1Eqop;A8wQ>T2Ue&q{Nnh)M#{0 zaCy3&$b(Hu1l*Zz)Rok?B4agBBfvP6KT(by{`MIdBx+UtSGG$tTVD`13x|h_@!GT) zI9wNvebtkeJktDdO-pU;(vH<&Oop|CTP+S!oSc}Lkv?Im)Z+=g!$qphIa}d({a*QL zw4waFdysTX!IC}xsdJnp=Ab0vzin|YvM3f6urGk`Uo+GOPQ+le3JGHa9_my25ng5l zta?SIomL`A3eJxSCWuoM?DHX?W<9BEBoD)vJo z>~A=YN>N%oV)#cjWfj#eQ;zyG&M~`$&dMKMru`U2J#mas2SaD%cKe}3a}6I?vEFI& zeDMVx5(iYrNMfO6bHfZVFX;4-&Jf+NqRe$HdUar6 z;1J@k04FACZ)DFLG;;;0uf!9>@tSKgvOp`r^Y=C_)Jl}Y{?>v>b29Ol3vRc2w#Dnne<3maCY`fWER!$PLzSuqs zWqu5%J4waCw}EpXN9SD20HImsUY>Y>X(N-@@q_b58(6N~9{9E<9{ogI)Uz9bc(9jc z+bBv7=JYkcduC9hCy9G%bvSjtlt}%4hc>Vk*4EK6k%5~D>GFKBzbz{+-iVxZY9if< zk9>tWHv|RHY4T^B77t~42C5A=H}ewvN7ie2leDn7m%Sb=$z{C=tpn`R4D|vx`fOQV zfavh{VTjEAZqd7h={vctU8viTe5aGGzo#U6bLc|}{VP8D!PMGFV}d6fQ8J+zTMFe> z77ttWnvn{eL|s|To;q_W&8}JQFLY%j9!M%yVbSXO-;?uUPk)}WO}9+rz?Bq4_IrCR z3JIY;H0pU%W>WbQx5TMV=MHw+W)9eU&1q)k($8NQkK6pmHTnGL3-!|7jg1SUyUQOq zoV6c3WHkayD?E&_twA&P*;Gr@Z~dU+(RYbNUr1R>w&-)>u0tjtonu^Tdhj0*a3>}Q0qvA6(xfU1x5*%@27IO)e>#iZgAM^g3}K*gIcQqd;3N> zNG-<@F<6VPSLSqnS~${r|HCF}-Jmwtv51Y-Ac4yBV23zlt3E(8MpWD^$=*FrIR2J1 zaECkp1o9)DhEMtd+3EB zTY@afr~mgnaN3WAo@Truo?nM2dg$@{a&u{C#$^Jt@ijBRs;cvK_Mge4-Ye zXv9O{5HPt4XE|NJ ze&NGs$y?(iBW}^)mqp+l^Y4}`Ch#R6aT4aQvY@|Bep zO9aPLxTisT8kNYye4kUyae057j6#_)N^|3e04Bk$XCeqrJour?2D4@r!kA|rnvNEs zl-efDXRk~gCdH{0mvsV9rXAr&TnP>J`B( zZZUKqoqGNNdNB+P*QpBO>`^&@%{1V?z-e!JH2lBIx5g{uQNM@Quz7l&uYX$W{hBiBud&1oRn zCr!&EI(-W+(`Hz~*1@F~_ozUtNEBf3aatV;)CGCY)N&GCD8}E0t!rYxa#RVqi^4izy61ow0>ErGH#<@MEoYUpS1Y0j!s=2vjHJ>)+%FEgnOB{qNe0;?3`Z5w z8ED|XwloKK@vefcvgiH60`_2vV$^>tr{Qni*b*Av4pCR(8)DSNf`FiHiG4WQ&?~`Tp*;GTrS$h-cp7D`RwHabQ|lgGfHCR`tjyX)q;+HN%N7$NM`@)qtG zheV;v&0#m2;|Zq`8Of{jvmDU(wetzTn~8<-_yYo|lilcrAto&6!#mj^WD= zEsOoCM5$KllZ4p&+bA{@M(%V(-V^zz`oMbS*0jNOInhsCJAz9aN7m`UGRa6#bc z^P(6ry40xN0yI7$HB#JAToI=;v?S=T9NY>a%-P|{h$oS59){X zJr2?4!gU342|*aaooLYskq{+1!FSF5Jn#3t$MOB}!@6A@g)PalWO)Q0^1ieWZ;W-TaZ%ih}j*}69qs0tLs=9Jd8W}@x1lNPS=Gi zYQQ;D8Gkk0vXP0CV=}`tsDvjC)Vw(5{4eP3Ksx2o_hel~v9ys(P}YduuN_Zw^vid7bzqEGpcUC5^R!<^c$t^t?{*r~I>Z&V!e z$ZCG~@MeV}E>H|QD&eZMdA*#|Pr-D{uq|$KYj*>7V;U-fds*JN*oGg0{UnZ0iU?2> zv@8_$Kdd@&b`sW%zxs2`STu5Vcpu^7+TNZ%{0fDFpZZ2n7k&M^Vj&Xu7+JA4p~3lJ zBu#WorGcq730RBBk21`z*1uNbpT^{9RBbgu^|g27lh0IO{SjTeN_W)6GseF(ft(Pc zOBgnJ;U{&4dBw$iX=6XO*arPxMHeGFn^dtSkr_U86L-*y@FEA;$SFuJ<*kLEijU zEQnhoZJYUJ3++Cfd5!8yeD?)xO|~x6TPc?0&@YLhdAP5A$doh##N5s1pne#~7L&{5RE4>Pc#!Od%ET?^2B&e8WIWhYl?awL+cej$dyu)CuV#e)od8YIYP6 zNc_zD%t#_bKt>pw3G+N`m>NQ2ltpb=plcCJFxt2!YmdlAN@M%K6xwTaxH##-!Spjg z6qT`4QBloV@3Rgw^N!T&tvPJG>+HOIyq=!?!;ce!2sCx-70}}p15o(lG%&YtPJ45>XAnV^UBIRvaHsfjlWNZoG4_yd2?;w z_pb#EM6Slv++a}VRU@6{HT8tbXTfW_>dl)sG!(FSJ~$84wgcACgS~%ssUVHamZv@a zOdsx_mC-$l8=IV*RPY}WZq{L0XdM_BXhR7d)4%u>xTG`%(TCVnj64qGk}hb$O(<`z zx9tRAH>3U?I3`qA(Z_2(ZJs&yBU4URHix5x^TKbP3or94BG{wVtcGFBZ9DeJ!^)xl zq$RPrlgr=-GGaJP@+Y3x%I_i~aC2gwj8o=@>ZftL7lNd*qpKfd6$U-xtv7sbKEGSg z-#SOBqFljU5%mQF(Um-SiNyG7qMG(@_|gA8ltRCJgY|~TCS`Ey6n~lRjdy`_I)E8t zT(1F^`+^7qo^uxY!a*@Ncp;MNW~8B+Vv?pAyy!1lBu%a^U6bAGtN!H0Zg=<2=4Sfq zsSnZq)u^z$`j0=y&%wpWAbavOtLaP{#R%j*dkGel>3cJ6-sFRH7FQKWw%82kzFxbN zlM@Y_*0!~_wss8m-J9+i>{X;Me1Oz-;5q_HE_qFO4H%q`==!o`gRo_UldCrb%CCNjNY*MUOFv_U^~2$B z9ac*}c)nCa2HS4z0!fW;r{myrHk0`a{n3Qrzqb8P7@85Cx}fP|gVMJK=0-*g zHXqF32q`f;Zp8G81$XryG8mFK`=O8FDyx)~6bEbUN9u7C)gE65K+;tXrrqsVn*91z zr@E|++~40n=aoqU98_LbU++1!F`5Y#yuJL*i;WaMvXyEO9Pb_TJ? z9dex-X-~RA(zX5NNcW%!(GXd-Zvk-Hs;jg>6jySBI`Y)pm`L80F4;R7Q z(iY%}q=&^67_0PGZ-hvcxLi zzeks*{AtVoqiVjeuuy-`b^g@MSLGo8I!3_E@>Ei?dN1gjC~@?Wu0pE!&OF(lqsRSq z(21=+19L#NtWq2u9bJdbnF<(Tg^|JWYk_8955I}RtNauqS4|$sWxti0Zo$BSdJAOb zbI=pHtJ5`_lJfF^4rwW8u$Alqu-q1p9z9}stpz&J7T85*)amfnCr~gKCSnyWOiktP zHB|ZML_ND%^I?a(`2$YrTbtLGy(Ai!2q=J^Npq~Fr#VwJ;}R2s-hsx)1u(P6R{%7Y z_&@uA$0;xMv}+>cGZgS+1NkKZ?g;{!KU5nr0^5uC+MqW%7bH+6k4g=R2&WL(WNt6= zJcelz%<0$*S*qtoJ0x3E2(%*0Yv_CUjn#%_i9luWe&`F?S7|?68aF9&GwxBqxb!+y zwftHjt6G&uS>vz2x9zYX4=E&3kj2ahNHyS58Xd-R)&RIwzxrjU#`h7Y>*MXsu`oVP z@aMp*=&M)Gk5I#)1-7V`wj~vk8*kL$vRVQWHb);pTZhh47h47)w`ikNQtDo1JSwu; zmmdqrh1keQTK>9FEa6$mw5fC6K@Zo6BI+mQ2&`y$$9gqKBLD*MvZ@)=3H-19$tBVmT`z&lP-o%7!ABNa^T@q-djw6 zSe#@nz42TSaG4si@i#t%;|A-4mUionpGst4ZjonXI&vCmsSt5HK6@tn(Ie{uKE!x9kkV%ywq$9qi4`*C~j(2r)(|9#Sm?_Z4 zK`Xm_NCp3J^pGZO+0#I4lg{GJ$hyVc#6+#GOkLtQ?7(Apv6H6HUmaP(LIFRgL&x7t zs#Oyw@{L9ZfHmHG$#-^qmYx0i1Y{n)_Z*T9MZuIC|bK3`X2p55p<%_Q1 zs}8>d>bSu*4akIw`d8m+AmdDH3#<*S`{>n{IKY#9qhMP1mrhjE_zb6mNk%?bnYU9f zbofbX64})JTHQZgI}5z>AM~(D7|S>_@7le7fiJ?kyTJN;4Ya@milr&flmMunR99A- z^AsU%NX^VY->ogcX@%}zWsmSAVZI*KDm?*=XP~5K74*$-p9mXhodLEFuZ!tR&*jQLtZ5$!6 zH;t>z&MqX((V7bl4GkUa>*m;!$I5T8T?6a#mb{0PvNbLEksDwC~d4F>Y0^2n_)B`=`n`%wnV8}^jJ z=$Ney>sRy$=db`_##or5a{$048+`p5s@jvz*shJ|t+s%Y_>=SFlGd0H*3Y6P(64+n zheJWJN`kp#V{hapuSm+8bpJCOm;?-ba4y%4 zkqrZE03vIW>C4YUx54Eioe+Au)o#hS$v2b(RrsNAOr=GFt$fqxxPv`4H|E_P}0;H)g|N* z+S)fIv_UVndF%JStSq%ip z#ME@@6RzYD*5;@08}5*c?4K`Kd)L>#=?VD{#A z-OG~kd`2zv9nvozl$DViyc*4i=6rd&QlpbSfU6F>TUJ}UpYAIk|NL(HjS3a_?j6+{ z`LT8ju*VaDFe4#l*3YAM{4WPv2FZ8ou!1xgV#ewdCesux>ovc{fC$J?*Om(|Fnsr- z#8k%WK;Dgv=&FEcF!3D?AQEnkS6Od7L){PON~iJi_r!J6LFc_S2_SibNm#MmfVQ@_ zMdJLJ?a^=FOzi5V=%70hfj&Mb6~BHxqvs=y4tTO0XnBM4XCNuaj-DEj+w{tf<|hBn zPM$!%Yi;$bN}*NRcklbSa+^HN>gVzAxn0f}=AVx7&|CgM8lV+e*MR1RHv}e6oaX5d zJ8t{PCW@6*Rw_K!I%8*J9wu>~tt%SwGDpQjmN4C_=#|usYc8S3?Nt;RVNt3-i6JJo zoig{dYL*R%A(s*wmdOHE@MF{;YQLkQ?aTj{2BXATHeh>_XeJ1y+NoVn5aNGU)^L~^x zi#A8iLh+k5Wm}F#RPbg@48{4Ju4^}3 zjH)%XXEZ~SZz)ZU;nZcej##Ov41DOd` zV>e{LUIB#$!-|<&TrZDj9XNr^RV_&i)(qA#?|oxbZVbEZG`RV7kwz@Tv&0r0b|hH% z2Y-TligPY9I;6BO%4%Q5$&zZrAXTeI-Ki_Q*G_tHCThlAul@(VBx$eKb0FVBRyH93 z^>UEN2>O+tdSpY_Qg3+M3ocnLv6>K&n6DIcez=t;YME31{b@F!k4Qh-h;Lfuy`Z$I zl@dP~Y;u`9?oOpmvHWy;B;KSKyEWhY%#zAG-nyns;H+NPFRS-hoP6-rw?GZ+iU<+m zURGf{mu|eMcn1LjOrGOf35L|9U2Qen!N$kO2UC}Y3p^jsaL9S`*xdXQrpXC`&X z(!gfIbV#Q1+oK&b4SwarvhF>LivJU+VLuNrAbCa8Bm8`Nez0#&l!@yXoQyd{2tc&b zO)bvk%bA1Ea&8YHAh4@aWe*~wyX*P-upr-XhYF-|>Yk>6C=_8x29pJH;L`$gtbhKp z?F9x=n)lS zt0lp=@{3$tT*f`>TpYplLOKYn?9z!!%SkCzx}l1-#d_CR`y+Ogv z=Twv;S@D^7<$lTU=Aet?6Uam`1tY2G_3z2`ic@7 zB%1wD*P8-|dBQC>{s;e->#U|h;R!w);kz@Iz_3MUGj{Rq;r6z+_XSqlV(nRm#YF}J zQ5i~3!*4^Z6ktX2K_6onf^#(K?&7<-&h%hNK4?&DW##X-=sTox#<4ws{Qx=DXwI(T zA6H)$__Nng#5)V~ndAPoeVLP`;A_tU?}_M1@y3RRKnzw{9m3VM=#h2c+I@M<$NSHn zx0#ui!bN7nm=NM}Q>V*3{0&Mi1qB89ULCx&1Kt&>;UTwBsr8KBJdB|Nu^~VF?vcav zUNG(>f&E1 zDgPq+%RXBS1gur&^Ved$C3S)eUsp0t#(E~ouT@-UqE^6gv{w)fanrh>+ z#_S~IV(vG<3TZN9gN*@iynN9xB>o%lF6QxTfp4)=eGfk4YMxJ9$Dy4SOtz?IoxRt6 zX^%HSLcOdfbFWa+{DFzc&u23n@`i!dFrh5@tO7Nld6}IerJEO-)Qn&nQNUX z>nHf3Uq)i{zr8S5f$+@D%>^X5I6DKrY(D`EyDINLv;6h*=b5^uO)QuZ?YOUAnn8yZ1NG+wL2q{CtXbs(qop4l(>(Efu*;!;)Pl>qd&n}0;z#g>Lj zURz)|$6C(k|LJ@AKmqasS8s1`o88r4P2;*F>$!o`#%}t&djFi8S8y&BV*rjSpv}|u z0FEpoL$=!ZPxi|-dmV&}Ppb%+U z4lxsnBJfEWQIQ`z`G)V`(Xu67d7^`KH)3b#jGQ`8ah3{D0*`f`EZ%IXnv2AcS02%B z#>&JWyx>hHoVX2I%ys`j_60CmRg4I;o5y{)&Z#%Ohkywwjbxif4*pL8&9uq+=WROb z^n2gsA!9GlB5CbzC5+kpr9VY$Isl_H?kj(l0$F8+fu6yxBx1Bn&+gp4n+>)Rz?>o> zpl*U*q8(hvM~^HoY0_?o`q{a?YixU+!V75R)??ld^~RgpHR=o&bFFwc#tZ^hmlqmT zvpG{OSj4L%zSfKLU^;)^?tY3uKp6vUiu(24r(|&|OH6T=b@{3Zw$mOKw|jHmw%8GAPDWc{J}V zby4!eZ<1dOvoLJLyGP6{i{3ES1<7L7OqNS6CP#!SlY9cN+ivcHumFZc)lm8t@(5F6A8Gi z5IAfuj=0=P{|@1w7SVVpLjKLjdi<-8HoH7Q^vMs=R#+1`=;CoUjA!a=ht=5eeLAhu8ZLJ~(L135l3JTwx0y1Y{)Oj` z1#iU5?UXpSMs94N`#FMAv5d+{M$r#}iou`QedhO_Wzx7`2#6mX0L(IOCi3{M%eMyZ z3>M4_rAjXvNjI#?bF=BrnU4OO-1iy2`z?w_K(JJQ^LHC>tIn_Q| zYZCzz9X6gj-4iTYKK|Y8*!;uK4UKM*-*wpNhD;RHU_RQ^W-BNt$jQpe9;dWnVRsUh zLxt1}b}tg*Qmp)PqI7z1>P#(qRBbJi+;b|`>B)Cu5JDlaR7i~TKN|UkI25N!+lp4_ zL#NIsTG2DO5@M%Zk&Lsa@G#%sOL01Vzi(JS`5aKy-32h9VBv2sJed#z`muSLw&6{A zS011wdcYo{?nb>XM>#HYO$!EEB_7H>gUbY8^}m{Q1AD8=&2#ZTjbXwk>ALd!{f`YF zKX!|58Ppox6V(z(`6YmjX{(Bbe^V0jpHK~?-zir*?MgW9(F>vP-_k%}eYjr^pIn|q ziXPBj9&$L%TRav&FoBn)8Xzpo$U&u@o$SV$FFzScM-L1P%*L;=@fIQT`^q!?IG}ek z$Ex+Tg1Db=<9y|*DL8DhlzWmoo4wxM;_L}y81RMB(KqrWsJ!d?;Ropz#u5t_buCTb zeK))#{dvt@kamKk--W@nQ+~`8)6H}QZM3@N0f%j|4bHZDZA~!^Gj~ft?x(dl?dU zNHQK3Iyd1ZmJz|{Tb&ulrhOUU2^?hz)nlt7?EbtwMEpXm=A0@_!*5AfRdyhOJZ`UZ)I} z{U=zRAD@ z7ZJ;_sj*S$!*!RJm9?!l&AEo#cz<1(+=MaPz{L)5n_6b1loHg4N_0}UHXR*J79Q7;m!&pJ z7u`Qsm?9Xxd6c1p9)ec|y<&M&larHk^PcNG_-SNXW2@(nse53Uq1ruVs&m6NlxJTFH=u5%sXwD`d+@=#MG?ZQt(gS5iHv2&{PifGMz`m&?; zk2wpdm)$_i&h9EaL*@1LeI!?aDU2@ESE}D0@F*wF^DWSC?rX-%@}N(&6@+d~0r+aN z6|_VLWKc>Ex;4gxP^KV*zxux|hhxxUgVJX413%=8c!&+FS@_TZ0H5=ps8;dJw{IDH z>>C13c9baLT|YG|k0gWaSE(3B00;K+A~e(ObC%56bJ7zU??49cEJ=sYS*KiKU#;_k zSj4MpT2t8KZ=vX{Q@5G_6$8p-Ae|mLqSm}p`f#Z?kX0W9*6kJPCzG}pPXjNGf9F6} z`;ZMYlq|$4bN^{MWH9V-sR!$j0Ve1z?T9nqQ(#MVj6rzcP|!G~cS}P|;+af-+(@{= zaQOgyN}%8C)9YIoM~8>XJkLuZtF(W!Gkl=XUjsoR*$?OHG?I^a8xHCig#u_${{r9> zR@u|DUa$zsl08iZ(}Uady=<5&IXY=JDmT8gz4K!MUwd6m)p^fS@znZ}!LUy?fP>Yf zrYE5H^h8r(cZ=T4J)8m-HofA1HSFnIgFs8FNG1QB)*l=qp4&8wob&isW0glg2W~M7 zSHv}39{lt3#SgoW^PflH2Fa9LmmT_imifWPlrX5Tx?Au*i#lv+LXVeN zTz`ooY#EAP#Mh!7-iVm9X5Mu&u5q5NQyghjZhDuOmsj@weI)F`yT+I7&}>34B5nn) z2OX2K$iv2_rlzelVN>3VEzh!wsO%qK)qqDRZ9n$jU<{2x0H*xqs|={*i&g`2mAR%@ z1fg%}@8RO|dupDk#QwYwKkp7yyuLsQO>tqATi*WEBKYZN$X$~O<)cX~_vX*wtiPP+= zNICz0n(%Bjfh$!jl&v!Y`!4m!1ct0k@&xlu_gU#86AcJj$)dB}#?4E>jO z@env4rX>Cyk-hidm!uWexGW$(jre(F_Iv9kYrt_3Lcl73-zhBor?o%lhdB(>(%VlN zgcLYBN;-KKKtSX^>9W}2*EMx+gglh8yC8#63&OQwDC>Df9!BMkm?fw?x7MSYGqTDf z-8`+Fk@cMRi=B3BmU{d_4lyt)%-)R{Un88yH&xz-^}j-MaiJ{PPgEY%5f&N<@Y`_y zw~-ADvs#c%$)MrQe=_i!^rLeJ)3OMXEM3I*=)9fm?NSKstrCHf|8}xbF#$k+ugW$k zLtW&I-OSVBz0q9c!WeoVUp-1j3;ae35z#RbjvZLs5%tosNi%rX9W9p`!zuIsx1)u< zoPr?@`*7{ij;xYyNd_BXTr*XTFZmf`y^6p5WP%(j(te7nakZoeVmN*G!ZNeOUjO#X z$=?KnY{1$Lussh@!IL>N@Xr!gyc5qZ>a|M4g|%#B2!u@3&~9{@dGN8t;xhxuKW`)OiG=CKS6-#*oHAwg4>GBID@cp0bjdQ z)xejs-y)KRy9JB#!%|gu$8+>+!8pKVbO9z~7q|Vw+xs&)g?M{atkqvj3YcPP%DF^^ z8S?NO;C1R_vg6oiYVeD12E&ZtMgo_jh})folQh}bL8055o6OUN6xubzO@&R|_-$$d z0F3mEuyHA@wac^F7gzaeZRPx1XQvxMp__u zZ0y(OX8Iq(L%dC-oA`w5nDk(C%o0ZYWtCJ?MPidKR3RWGH#fInu71f3ovCM)-RemG zR7?kPOYj!9B#}xBdAjH_+vGBL!V$17ZWnPpryP&3CdxYI*h{eVZ+2FUW=IyJrz)Nh zGburTn>V{IRMAHD#ymkSbq1Vp90OdG`XEs%N%L=e${)hYqsM@YjekV}JH~jX84P4R zu>lM-pso9Kcn|Eb3|iWRoM=T8@IJX@!b9{T4+fPv_Tw@>p4#p!^~~*a7>Uw#jzWM) zlEIa}z|jvv2U{9EDf99G09grTAh+2_HSp#CCPfA%=*6G*qkwf)r?kEIjp57jT@~c; zT@KBTMiPx(xq1J$_U4%kiOJI`ovvh+A^ZNUe&SAFF6@dtyN;o2*OCh}4y{l<2`F{i zXm4+KNd0h%p?jEaY;GP@w>MiF`_}0M@O^H$AUo*CJy9LjxRsq?k}B8@?dN~-YbqbC}O@IWmY9OnuMPGxdf4Vl1;-x4Z zG2u@?j(KFKC`A!H5AnIsf`mRVdhqNy=tG*KWc6Xt^`9=HO@*;=v0vQ(X?ZmKaq`st z@&E37W3QNdUwv1+aFw9)uHlx?2N%QpTTCX0Ier@%HxLLACH_WeO|3IxSid;4sATT$ z#ntcAYpYMrFLLxJEKx()O-3|{-?^z`?vh2^!Tum;u(G*1yCzwMgVN8Poi19&p&H$T zvncH50d8L3)O2ehV7D{0_72szFa`_K%i|TP_}4f@#(-)FQLP0R z=XKI3I&a;`(LEGc7NJxF3x{X7BRRcNzuaYk3Gdo&G_8QV+N&-&;OBV)Ra9G(?buBT zNh`bHD+fSiT4-ntep%sx+Z|_i?OqQm`^@OXcHUe9uRk};_BL0V;B_krx z3_S5Z1@STDb$|ashYtnprL)j$MVlJz=DXfDusHR!SGO`USJ?jJhoBW{>O0?L+uPcx zgO@`|EttupV<8pCR|6n8N5Wt(Yut)MAxOKeilXOR-R!o)3L;&!M;u?1nXPQxaFz;q zd?(%G>hIa$eSstaqzdG3YeB({_f0`V>fb4jU6xLiq{k6V!8w{d%hd|wCzoSUvDA!a zj~;o-L)jy1VFWv+#X0Arc~Knx3Q%D^t@k{gan5*-#x>HFy>A?`01wDX4OU%h@2xO!AvvYN?O8Ggp!ryDf#kkF)2 zgW)r^U)_0@C*nn49Y%?yxI?Pj+F0}bt{E1NFw?s`JBs-G04eG;w9f8V9%Un6IKBup z*}4TJ<|dV(FBT>hiat+(Brdae zGR`a{7ZYw5xqgs*Ut0Q;e$ZnlwvE<&THzJ;L;jb?&T~yJXSfVWQF?@s!^YUtN;fYy z(hMJSTwv4gMc-{bmz+#~o%nZuR`IhKyd1xp|F=12Wkxr0>_N+9;8M3Q7n3oxmo>!# z)gN{w2?V^jpRA+>K;?AMjq`Fdk!G^Y3+&xL<2yS$ z;Ut>sA(MwRzG?On8A{YqR@Op*NHA{^diIh0K8<1mr1L`%FGka`QZ&3#M@#1BCjuNL zSt6oGQNC2GREg@fRo<8zWP+5mk4zm|gHWIYgIFzvE0i3&iOLxf^4iD;xWM~>JH{8$ zL^%@r3?kV3687j~KVHRP1L1AS8J07(wuAa#igh*6$WIkf061)c?8>Jox{^sls1UR@ zRq08sc)GmH9o{3hpC}gUmrps!y@9^af`HsS+4$IR8Hvd_ReD@06{eg>94zo!SoQpv zP;Re433=B+R_Bu9+Zv{F(HpsP@!?}H6Gzr90A$N@Bygu!@2%T!xQQS1X-X2y*lsLc zbOkFIWKvnr4L1DrTO`GKCGrp$nD~Z9(D1la+R(@gB~JW`3Xlpyo z@_paHs3ZygCs%w)nz%HB$jlXV(br$0i9*)B-{?WT>%V{h4&L6H=O?@^OJdyTCFUF= zEfaq*YBNjhD}%xG4XV9Z3e@hG0cJx+oMX9=~YM{kGT4$e0 z64}O|>h&t+PyW%?w33q|&HXw3uHE(NubE;VHD@heF{$74aTLD$G2#s%L`LV zZjk0jrOaoWI5}qHc=Ok}P`JMXD4`};M|>}O6j-pd!;>P`%{*(RW^mSvf9{ihe=g&A zMlV5{(aOh>z**=0`nPU!iCS_Nj+bQ&CzxVT)4;?kb#`=gl<;;`JjbKiH;0tw(@$UY zS=V*cp7a4Cinu@_cg&I__TyhdO^aStF$g(Kh7Q3dR3uN!#)VKnCQFa>d0$>m;qj=Z z3$}3m00D2bqiz&Xm)}2s&Wg{E(_&`6PEEl} zI7m{eT;`fabHr^2njb9j*-5ZCs--&T!3ZLgfDm=NV^g2m7dJ>qh-F)D+bPCw%A&Xd z>ZPhhZ4014o~`pv+^hNe+E44(q`@;wU9JnVdnsuj6={@f#-}x~oBsX2&AD5AmOx(E)@)Aih$FxFwp`nz7K~N#OodYk77?sz8x>k)9m4Mi%)oe9! zu76AC_Pt?YnVkNNXMs7kwah}dyi_1P3NuinWGWv%G&IIb!BtP|(r4dGeyop)#DszG z`@tDW!KgmvU&UgE1x&;ilA8HWZ%n%T#e#hv67z|~FQZGlWk^9mq1e#K$od3B@VSds z=wUUI3ytaV-kGick@)S~w=LX*Yhkz+i@^&yN$x#Po}aoiG63!xzaf+rI4E(H+EcMO zvs*bedIR#iV9PgtjEZTEQ%gw(a1n}q zlj;u#RsZcwPM`4uBBxAMa*MU{?y93(|3PdrHdAYD;?sZ1>Nf4*;M_7a&a#8eRh_SWmf&_kU z-ybx6Gna96rlPd;Nsax;n;GjUcE+W82VFqqjb5ohIuKfC6@ItmMMjl}T=w;Cx$w5n&rmG7<-uN?d1qExf z5fn^QPb=4e%{!_^QF`rM9N96@P?=d%a+z~0-rKJ@LZ1UM%j4FPRNfMM?kAWynn+O^<_^^@EjET~l z{zV8ft`1tk2Or+olHp4mVYjzwaHsq5Bd#SBLGH@G@$6i-CPi1qVESjZ^#HcjI^atv zX+R&o&+Q|)rHZ1_zC)<*4;{a~hf2x1E%YWEeu}m-fh34SrErAyhVb6NWO|tJf{?No_g?vy?;+JZrR1x5I!b@BU$0q1_;Q@K~=SHDgA6$ zzd6MtAX~8LZ@i!WwIi@lX{nFuNLgkKw4Ci~&p7nX-zA*bGC#VgJIN4NpNG_<89pd@ z?=D`Zjc^lMd{SBxKKMNE*4o)1((Dhg1sHB*zOiM{-{0SLz6FR;mdLN_ zIyH#Kh0r@N`7tL3L`6?58-{~-Xkb7cb##3+)dT6MXy&i=`B zrVguM;*N!&N88$DA-4@3qt1+&!x}$&WNAb|GS4Xr1=YUCp!Tc|Wyxb@(#?&7L4pPv zrG+gyKm4%Ps>(b%GZ!t)ug(|`gacXNAm?hB`pPSkrC?Z*R9!tnerB$IR;cc&ovrPf zN-atVhUuvy-g>0>h32mAIqmh$e-<9U*sHT2`3`*DS*4FxJa;td3iNaR`A^Y4{6`eX>H@~Fy-6#eatKI^SN z$xN(DGFYr^>>@Pwh5N^3?9Kz)jTKa$=Kq-~qKdvkbmgKrpWx!!xJHx=))ii{W3VPk zT)*<6Phl?&Aogr&+W|@lCo1YXAp=@|m@>u6K?Z78x(Vt9D8yT}qA@Qo^kjS1Gd|_d zGxUHu+X-DwN1q+dRcUUIs~s6{I?HUd5fT*3{JJS|1BO`n*S4tnPtwb_y{SF$M*i?!14v$<}d zp)ghvs@#;E*WB~teo46R+VYd)AF_`Gm?zX5D>0NTc3g1p%0xeFS2V~Xl6Uz^LYRD^ z4{i*w{ln8KZuGDE6a)S#nQb&UwPiCuwhX{a5N1kN9r^G1aHqnjwmI%@+ZxERx9qod z22K%wFGFrnC(3zmkH2|A6+m`-wck!6I!eM$n-v%04Ty5d44o!832G&LPoAbW?b_a~ z!qPC0yL)N7^YB_@=clrlUu8@(CEbU-KUA_UV0FYv51n1 zRXcPqkGh!+L~(v=h;2qT@i>WW_@V(qq&SP%@7FWsP8+GjBCk(gqc+i2)2kPX{Y&Ii z6a@a`Dx|{P`M1#17feI)-=DYMvG{B-{K~{>6RlwNopgix-EgcZOW1RJ9qB}k1Md-%Uk zwr{o_9}KHn^@b7eelg*$ue>)DRCD{E)O(q=>`D7v%NNX*3#Sf6^e;A@1^t`UiOOSb zU4)GpL+iN3Y{DX-q2k=WuKbEleRWT{*zw&gm$tPi{3)Lyg{%#pA_%^319Plq?$rmpEIJmiNTxV6UzOto)3eyCCr@1h2#gg80v z*MU>mL+c$Oo|1MK3M@#olinpw0N>e!&#QLmMCB_+);?wq}K5uDpo z1#;df#ER(>SvD>9N70w3TNZD*e4wk;?1Q1{qQgjQVIPTu(pl%Jw&rt`DxDlCR2y~N z7joRFCD7k7V@wp__Ji@h!5(?4gDP^8X!3S44pKpTR(Oy!li-F5Cur(L=h$UuIV3jC;XC zW-a3sVFaNq#7r>B!_}ijB&NYFFu%>49=m-3%bu?0WuUm;L?hqvnb32{Cj;xsh zo+ujsM9444jWk51hGj7sNedtqrOipq6B}vjSys)AtCu2a0jr0y#LRUbVTSsWo5VR%3F9x#926Q{4?OIO&5d!C*3dpGLEXNL_pomnTDq| zX=u#*RfHHlr>o4Jrhi{ov)G8Q{E3pH`SpL=`|fwRx~OerMn+2zQAZo1M<=5O8Bv00 zBYJN!x*(zj!6+HM_s%F$f+*30AVjq2El7wSop{gWd#?BUCtlb2$(*zI+Uu-+-}k!C zUV9U*Q1^KgEP_9bT`O@PwGo@FMAGUN4m@_*{~1Y}%Ggtg`!1}~@_tpSMwjP^-u5v} zA%UF0^X{l-D-E`f9IePO2n108V;l5Erw7ApEAIXA0esSb0@KsYpPQUc;uZDpZ zN1GF+QZ`0l7;YCHOIvo^j;p8!8ilwtHA2-99o+iY!!$Z!>i$~rJK_gCEcz|=lbi!Sp&M)F=GA(1z`!bl`?(4}R&LF@jK@36$ikSlaU6s8bCs$aJm{o@8?fnn^I zs4%G+hXWj(g0(EpRO1j3q)r!%BDYZ*W*BMqStZjDPHRm}Ye)4`d?^hzR*9hi|6SZ? zvMVxWPWvumI|MInZl>pGH{q(+HZxlk`{sC{n)QzHnGJ5kD4VLmH&7%BwZ)KnrmaIm zT6{J?)EbZ0D;axErNdY^IWzN$P~;J3WiGSrjDVDs)QDM~?HB$hwY`qqgsorm6{E1; zzrT+%_}Xn|<|W?YVN)x!<>57d6ilXi>UYbOn46vb&0JaHtBpj0Pa2ajL3vztL@>W` z5m`%9(-{b+V4;?{D&G`BlS=2A_3xDL-9D>UV4AtmC>YyEn$U#FAr_rcsEehS(S4?M zE;zaI>sDf*LP)6FM{QyiQl0#Jlo52=0}ttgmcDiwqU$Yf-yU$3)`fpF*C8O6QidvA4s6wJTf;Tt*p zYjHzf=>+5G|UHE+=Yx$GI=?ODdE+NdaI`;n+S3-BWpMKbCsk)GX5fkYxHx(wP zzaQb8^1RMKS0Rea-SETc%|pNG4P63Rqf5Fg$@81I)mVREf@#d=DS3{Oo!2Z3M5=-U>_qZ{Z__wBsxswuIaN1fo}= zxmsq#T_1zAgN8qAc+yfetA=Romb_bI7-|q)Z7tJaH_SgJE|_ky<%Jg*Wky1s5(TDoZ6gK!g&CtjXYbtOvjZTVbW$AY>-n<(%CogL^w-DuhZsJ-wMH4BWJWh92XahLY|z$ zYj#14;@z``zpG8UcB$63%EcwSS=VLx#lPlcV-}m{uXcC+ZhP2JDPD^b8n-5blv%(a z;d|A=ET@%1>&j+1Tc3l1f>vMo`Z8;D$`(3DmSlO&@B(2daKuesT*|Xa+~Do$nfF7b zK-}6l$0k}no3#+{b;r5O#vIth#N@X4W+7*HYnPz38M0l}x{^6E|7XT?lRyBPE;2o? zHv?ZUDfOGnsJAmgZ^}XyDI$|@pPSUg;SpI!$=QPR$U$87qw8OG1v_&n6i3q?ot~{$ z6zlUbm19j{!P<-?Wt;cv>_*xw0Y*7pvH#v+{W(4)Jw4rg0`axm@$_feCTD}=^g-QY zw*eRZm#gp^7Kp5UbW^h}1RXb)&(-`K8qSzfweck*B}d4rcMbch>RMX0Hz>BNIlwBq zi9a%*z4G&ip^&V2JR&u|AT>w@3xr>^mnEL;lcn2xSGy)-SvSj3Tkk)gqG;M32NJnY z4?ZX(G;v2E$ZGN=1*C={yam|Mgo`4x85n?&xE-EcBTuhO9lMZKtAhp z^V>f^+M;U`>ujL`by}*iIwhC0K&p@vjS-OA(MOuBi-wdGM4c~l(0md3kV#%~pj#C= zmLmdQ(r)ImP42%bmbYSflLp?{-X1ykuk$-QU|WHQd0a@f)-RW%rm7S*a&$!@h|^wu z)QCJ2%u3D0!{bn@w}sr3XUR3bfJ2juN>dj|YVG{B+*-vy+lBTiQ=Pv@`^iMY;7xVF zJ6D4dlu_%4Dp-V}rL*7|?B+?aTAI6Cz2SU&ON;MZEn2|%gR34uc9?~Qg|OoX^zSZS z0+}u6y1PW;@yigJhK=3tHLIIO&P{7)`}7`W$6IVH7TiHGO!>{`Ci>IU(-DTQj_lP& z1fdGc^)Pozm=@9#)4!x-UseWu1r$zrTn9a3!0hEJJl4br|3OawU}>K{oe z*e`71LnLcr2vC#F-ZCMp=osx`EE<}NJ(V->Z?dHv^wXbHg`|>n8PdkL;0(ZpcJ^ ziJ^>>k%J=hY|&omZ$-vGI|})T8P_${@0`ejZnTs$eS-6`L`dJEqIEl}-pHmD=7&7-F|V2gL+HV}mm zF;-M9GINGo?oGx|0|VPblSpsuHZBH?WqMfNcemOs&qz-{XE`5ObB_-)rsg+3J$QwN zj~~xAd-B#gn>k0P;hSP#&CJxJTFi(GBVK*^R`lfd$eMfqG+6%cdu)InqKYR;RV5%_ z=;?jZ?m&-W{~kkM9blgM4>9h6$sVzgcAwB%{T<*eR+PxVqDfB-@R()cCd+-`0Kcrh zpKD>$k2T(aI1=TsV7)xemkH>^JJ&a_YWewzE<48pRnW?#qWu^aAx)@4(t#u2{*%a((I>XVO;j1NFkwt;NRO7f%>do5#o!TwpE>xXkkv6 z7y4wd=Tk|lMR@~{ibx-pJRwM9i**PJoreT3IUqw7!6>@R8+mKsevMr=(6VV1TO%GG zwFGW00D+rW<~zi8@g#960!nsQAMXCXW&?vrAb0e6qqIwa zLqo&i>Pgdw?2isyVv)v(;*0C`9yjT`tm82EW^DG-YUw@+l^KSdl8Y|`%^}^}zD(m- zhn2Oc^jAaX^xUk$uF$$UK>IQd&MueTpdy+W*_)le|IDZ|JVmG}JE z7agO5isR;w6#50!PGZz>{i#?l3*RDbALKS-W_I==I4UM^$9ZF}wyLVickCF$MIH6A zH+8l8vDMIq*YEFcYxeDY8zVW3b8~aiQ{AKOBNC0RB_*79eLB81JY5xAWPzBMb=?ME z{!HEJquW%CJvG|aoe<$kBF5rX0|*$~fyNEDx=WBWFb~`BA1cfhqKGJRiMy#5+S#=yi7x5UK{>8}1H5e}6oIS=mdhsWH0vB!K_ zRDm6dRCY(8%?2(m*t!g(=(58#Lp~8RpZd5ob*JEEGrupSwOUFzR=AbT8fv3N>GYX~ zl(NCuV|W`@9r+0s&>7ehD8%~tr;B^jT-kHp)Za0Xc2soQZPxoR8ZR%e{EE-HXC8&r zAbijXAGB|!t$aV6;aAb+2@(6(Z{H{ZY-T4=bV&K(FZ{Tws8mU zbW5FpJywArja+}pl#6Nr_HE?^FPZC9&97Cv%&$o6< z2>=&Qd)@eyrAFuGNc((G%^C0Xx#<8@(+kJg^}0#(rVPs5?b|1SJVMTM!8p6<77SZP zX>UZ$0|c4j-vb3PVh(RDe4$uoUgm9RVe3+iqE=56ccPD!W*g<2Aw+G50|6MKJT(3u zgTa861vl?&l9!XuE(#>6vW1O@TcFwU8_z#2&?$~)=+y10h>uQAPTm2ujAL{s)3TD% z_U)KAkKLiE2(UMH^KOzVm|7JeQhdsnDj;FDY7N=5AKhL%b7vQYxLj98E#c($Ix5FhOKU}DN>y0_oTce zVZ&%W-TC#a=_7x_Itv@69H!Z!o_K4VCR*s-pJWR-w!1k4+TQL;nhK5ZHS2i-;OZ1Q zWRC!63oSTk2*OuUUsSY~FgX*rH@qG)coOI95|#h6L2Ga6UI7bk*|=4vM?W3-n(ee8 ztI?_tQ#E=n@YWLT_7N2E__p+3hX>*Z@$TGh3yieBj4wSL65PmO70-iTD&~!9GG^l2 z?$QgyVVja6>S54pGMBtA3aMbRB`LU-^7zhDpZwc*92!eG6md7-3YCA;OE3BRUIGTh zzdn(*s<}^`XKVej2J^N^|BX1eCSzw)nFGXI&l}%f`UBpmZU$2m>^?evt6lcyJz1GO zR}ve{Onc&FRaR?486l}!M9F8+-5^LRppgGL-Om@_^B`??AL z(nCfc*&zL?2e6Li@HB-alQY5C8^DW3Ifg{cxR&b9epi1C@!J&@{~0wi;EvK$9EnZ|%O zcIq=T-4eH-e&GGc{1FWGt#=IB9av=fZ`{FAeanYSTrSb_^ic^q@s7H<;$y2y#U7Rl zShcu`sPFObLA`gTGLBB4Ss-op(eldIxoro5Cw~^`xGlC*oh$Q*9O6obI7`&u&>!Q) zBs6vQ{d8l#7v9${*vm3-%w#q63_G!DrBkBu<>=_>ivP2xxXVK8<@@Jjw*ZYo9{x0O z&;~8*^!&L5OUmGvpnIPUqdMZuBsWa$Dnr4y@o)9#dAZaZ%3#aNh&t&@HSzFo?f;?Q zT@|G%DygX7-NUCz<)vKGn11vtZNBJUnT^yRdh}C7gQZK`eOOGd+vP-dHWOm97KiL| zCPdbHKxBtPx^7SEHup9DI^jtgNb@Yp?CkVQzX5M3;Ai`0%BC~4$ z(^5dy{HSxEr2^WbK1vS4$7C5HkCb2poSXjlsvlR}s?I1(c_hSf^_xFtCKvuEK#9vu zR5XpFhd4XLRUs17S=d@i$^ugXZZ`y9N#rd6gJMl!K(B1A|adq?uk zz|G6S0R2k6hb;kD=V2OCUneKMq%Yqg3MWV+Gs-76CAOyC1zHxa-IRY_+CBF1DLH2C zYnTj-iXu^)P8wE0!CcBpR8E#Xt5|xvG0Kd&GLKVe6N0A6lYT5^|0d|6{^l;|rm2)M zgF5Bx4CZ=ie3@EzweinY!D9VZ*n(_zg(3qoA7xUBYi2h^~?RDLTj- z9)-Tq*BSt~FcPHE=#$X!`yuNM6`!YehTT4KZ<5wl@B00F4_;NM&zEf%-Skz8xjWkR zIQhO&)yM6I*`gH>oaq{5OxukaUUUEA23@=dtJ{A8?W<EplxVTK8N~BB6%P^`TQkawsv!ns8{`i)s$}3c1XVYx0rpvI(a8 zw<_juzwWvckX>jO$o1OdAoK>nhMH^O~3=0YY7 zb@5&Tljmcng!cy;Ph|nOR5Y{_i|z@rakB5+vxtFQ?OR(SyD2Q347jDkM#jvS57Kkv zY0eKQ66^M#A*Z4spq2T_88Lr<{}`9K4-`bM|4@^~1H=*9F)&vp)*rlZv2da>vTwXX9-^{5a8zYUA*;_I5*{;JT4wWV*JV~xpVw=<; zdF?j)pD2ES+;)}bM?oeZT$j5-udc3UJ(}iR5-1;*@(6lvj!O(n;Oa2e*}pmey*v{+ zJiCNa_|$n+ElPODprJvOIsgwanBSjm@~~SRFVn#tty_bu)Hrla&5`g}A8cu9QIht` zVgW&uL4f_eS$N>d4{XE7cu!LJ$tvpYE)vPABj@a*&rY<<#x?In0@8{v^}(xzJD4v4 znS*QmrggSt70y-;7PQWq6RY8^5IrdLi~obj{3NT*SegU?LGXyIF?e9T^@jIQ8=$C|MIptYmw)VuzLgEQgFkUdvz6th7 zOhGbstAI;E-tnI%0rGp**953|=gT%zuNwUxp=G*W+8>I-!%e8l`l)2qqQdt>ZA|XE zS9ha6d6#dxpDO#e`wq1h8<9xY*p zNPZ=#3~%a`I7tHp_S*{rJ=(A*x?(E!8E`+&>FGGNLy;uaHHHgIzGHb@%j~gC1XTLJ zrpv=}e%0CxV!Vd^$7n@HXhZsI?4pI*-%pzEY5QfFZU#TA&=)FbZ@)h3r9D;13JHis zYa__lya7bxX&-O%K516Sb8SNB?zuXN&M&QD&o5MqgzcxT*zj>~N`->BsyX^(r<{_U zoSeX@`vX5&ZjP&24UL_SNQ4^(wr_22zH*i39Gjdxenmm#Z+J_8ES}l`wb*X^h5koA zeF`9sF)9x?QKUQZemcnOTJ16xlr#hGjmCDcv&aRB5s5b~JmI5`DwSyLih};oQ1I16 zx=_dMIxe)HWsh4 zQ8)8D=w*&sAh9D`_vh#51=t}>SLHtUa6O3<;uBZ&eh(k|lCRI#HX-3%Tu-g^LM4$= zwf#~HIpR6&^oR-2EbpJ?m+14Ya0v^*cAp{jD=f&bvABvp0~mULb{Zz-VZp`*fy*T1Q`GZ2N?H#o zCumS z^snBn(2mkuX;z<6Y|MFLUtM%`bgXAMHxnfbH6&6%f|m%ahG?$dKV(wWI)K~oF24ZG zSMH!C=34-Ja%%EXYt`*(Zp_Iy8ShY8kyaRmmu_~#gr}G<@<_>cosr>zV>E z7GAxI)P=>xhnkgoX1Hx`H|`|D0w;M9)>y18FYKax^U>r?5FFDexv}Hy;P9$Vmq+GC z$%%jFLC~zIJSdn&Zm(ND;FL3;OY&uKahCgD;1 z+GU_8$p-K3M-z>lo4{=ba7pVymLS~TkG=2Di#(OI-m`=Z{)h+Sg@XvNPo;L$n1e`E z61c;aDwDl<9!U5C-pbky$KXQBOX)R1)CnOV>mHHkb~vD&me_&+9#a4h`h()9&f^N7ufss+-035*zNV>}{N@l5ue00v!)^? zdZ}rX13Y5|TLM$p{^86~iHujJ(zojBj{=-Zj|Q0Mh7)0l0zpEO91681Kim}VC&6z1 zvu=`UbbkJ-$J(aL6JV*r4B*D*lbAZrAT@G(CnuRsi763lArgReyuAOBjxrU1I%!2xv7NMsj#P?c^p@_KARPEb#{mPR z4cd1HC~qHddMA)|KASqO!det*NA%huj#Y8)S_NJz>hgQ79dMTrITsai5IPZMW?AX< zYiDOcFwFTS_dg&70rrP|C)5ZADdT~<1TUMg+2}slLHnBf8GAe{j#WhgzpJiRxec?& zS`a8t1F>CSQnFD+DvZtFB= z`mdE(xhr6DOyo!?vE%>O(Epk9f9Cu%XYV?zU&#q8Qy`BA{HZ8vAgUD1gYo_cK4co0 diff --git a/doc/server_terminology.svg b/doc/server_terminology.svg deleted file mode 100644 index 07502d20c..000000000 --- a/doc/server_terminology.svg +++ /dev/null @@ -1,1106 +0,0 @@ - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - data, server, database, router, hardware - - - - - - - - - - - - - - - - - - - - - - - - - authoritativeserver - - - - - - - - - - - - - - - - - - - - Knot Resolver - - - - - - - data, server, database,db, hosting - - - - - - - - - - - - - - - - - - - upstreamresolvers - - - - - - - - - clients - - - - - data, server, database, monitor, terminal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - recursionunencrypted DNS - - - - - - - (optional)forwardingunencrypted DNSDNS-over-TLS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - recursion - - - - - - - - clients asking questionsunencrypted DNSDNS-over-TLSDNS-over-HTTPSHTTP management API - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ... as server - - - - - - - ... as client - - - - - - - - - \ No newline at end of file diff --git a/doc/user/NEWS.rst b/doc/user/NEWS.rst deleted file mode 100644 index 8a93bc778..000000000 --- a/doc/user/NEWS.rst +++ /dev/null @@ -1,36 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _release_notes: - -************* -Release notes -************* - -Version numbering -================= -Version number format is ``major.minor.patch``. -Knot Resolver does not use semantic versioning even though the version number looks similar. - -Leftmost number which was changed signalizes what to expect when upgrading: - -Major version - * Manual upgrade steps might be necessary, please follow instructions in :ref:`Upgrading` section. - * Major releases may contain significant changes including changes to configuration format. - * We might release a new major also when internal implementation details change significantly. - -Minor version - * Configuration stays compatible with the previous version, except for undocumented or very obscure options. - * Upgrade should be seamless for users who use modules shipped as part of Knot Resolver distribution. - * Incompatible changes in internal APIs are allowed in minor versions. Users who develop or use custom modules - (i.e. modules not distributed together with Knot Resolver) need to double check their modules for incompatibilities. - :ref:`Upgrading` section should contain hints for module authors. - -Patch version - * Everything should be compatible with the previous version. - * API for modules should be stable on best effort basis, i.e. API is very unlikely to break in patch releases. - * Custom modules might need to be recompiled, i.e. ABI compatibility is not guaranteed. - -This definition is not applicable to versions older than 5.2.0. - -.. include:: ../../NEWS - :end-before: 5.x branch longterm support diff --git a/doc/user/conf.py b/doc/user/conf.py deleted file mode 100644 index ddd3e5edf..000000000 --- a/doc/user/conf.py +++ /dev/null @@ -1,66 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -import os -import re - -import sphinx_rtd_theme - -# -- General configuration ----------------------------------------------------- - -# General information about the project. -project = u'Knot Resolver' -copyright = u'CZ.NIC labs' -with open('../../meson.build') as f: - for line in f: - match = re.match(r"\s*version\s*:\s*'([^']+)'.*", line) - if match is not None: - version = match.groups()[0] -release = version - -# Add any Sphinx extension module names here, as strings. -extensions = [ - 'sphinx.ext.todo', - 'sphinx.ext.viewcode', - 'sphinx_tabs.tabs', -] - -theme_major = sphinx_rtd_theme.__version__.partition('.')[0] -if theme_major == '2': - extensions.append('sphinxcontrib.jquery') - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'friendly' - -# -- Options for HTML output --------------------------------------------------- - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['../_static'] - -# Theme -html_theme = 'sphinx_rtd_theme' -html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] - -html_theme_options = { - 'logo_only': True, # if we have a html_logo below, this shows only the logo with no title text - # ToC options - 'collapse_navigation': False, - 'sticky_navigation': True, -} -html_logo = '../_static/logo-negativ.svg' -html_css_files = [ - 'css/custom.css', - 'css/user.css', -] - -# reStructuredText that will be included at the beginning of every source file that is read. -# This is a possible place to add substitutions that should be available in every file. -rst_prolog = """ -.. |yaml| replace:: YAML -.. |lua| replace:: Lua -""" diff --git a/doc/user/config-cache-predict.rst b/doc/user/config-cache-predict.rst deleted file mode 100644 index b270bbbd2..000000000 --- a/doc/user/config-cache-predict.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _config-cache-predict: - -Prefetching cache records -========================= - -Prefetching cache records helps to keep the cache hot. -You can use two independent mechanisms to select the records which should be refreshed. - -Expiring records ----------------- - -Any time the resolver answers with records that are about to expire, -they get refreshed. Record is expiring if it has less than 1% TTL (or less than 5s). -That improves latency for records which get frequently queried, relatively to their TTL. - -.. code-block:: yaml - - cache: - prefetch: - # enabling prefetching of expiring records, 'false' is default - expiring: true - - -Prediction ----------- - -The resolver can learn usage patterns and repetitive queries, -though this mechanism is a prototype and **not recommended** for use in production or with high traffic. - -.. code-block:: yaml - - cache: - prefetch: - # this mode is NOT RECOMMENDED for use in production - prediction: - window: 15m # 15 minutes sampling window - period: 24 # track last 6 hours - - -Window length is in minutes, period is a number of windows that can be kept in memory. -e.g. if a ``window`` is 15 minutes, a ``period`` of "24" means 6 hours (360 minutes, 15*24=360). - -For example, if it makes a query every day at 18:00, -the resolver expects that it is needed by that time and prefetches it ahead of time. -This is helpful to minimize the perceived latency and keeps the cache hot. - -.. tip:: - - The tracking window and period length determine memory requirements. - If you have a server with relatively fast query turnover, keep the period low (hour for start) and shorter tracking window (5 minutes). - For personal slower resolver, keep the tracking window longer (i.e. 30 minutes) and period longer (a day), as the habitual queries occur daily. - Experiment to get the best results. - - -Exported metrics -**************** - -To visualize the efficiency of the predictions, following statistics are exported. - -* ``/predict/epoch`` - current prediction epoch (based on time of day and sampling window) -* ``/predict/queue`` - number of queued queries in current window -* ``/predict/learned`` - number of learned queries in current window diff --git a/doc/user/config-cache-prefill.rst b/doc/user/config-cache-prefill.rst deleted file mode 100644 index b0a24578e..000000000 --- a/doc/user/config-cache-prefill.rst +++ /dev/null @@ -1,51 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _config-cache-prefill: - -Cache prefilling -================ - -This provides ability to periodically prefill the DNS cache by importing root zone data obtained over HTTPS. - -Intended users of this module are big resolver operators which will benefit from decreased latencies and smaller amount of traffic towards DNS root servers. - -.. option:: cache/prefill: - - .. option:: origin: - - Name of the zone, only root zone import is supported at the moment. - - .. option:: url: - - URL of a file in :rfc:`1035` zone file format. - - .. option:: refresh-interval: - - :default: /var/cache/knot-resolver - -.. option:: cache/size-max: - - :default: 100M - -.. note:: Use ``B, K, M, G`` bytes units prefixes. - -Opens cache with a size limit. The cache will be reopened if already open. -Note that the maximum size cannot be lowered, only increased due to how cache is implemented. - -.. code-block:: yaml - - cache: - storage: /var/cache/knot-resolver - size-max: 400M - -.. option:: cache/ttl-max:
| - - IP address(es) of a forward server. - - .. option:: transport: tls - - Optional, transport protocol for a forward server. - - .. option:: hostname: - - Hostname of the Forward server. - - .. option:: ca-file: - - Optional, path to CA certificate file. - - .. option:: options: - - .. option:: authoritative: true|false - - :default: false - - The forwarding target is an authoritative server. - For those we only support specifying the address, i.e. TLS, ports and IPv6 - scope IDs (``%interface``) are **not** supported. - - .. option:: dnssec: true|false - - :default: true - - Enable/disable DNSSEC for a subtree. diff --git a/doc/user/config-local-data.rst b/doc/user/config-local-data.rst deleted file mode 100644 index 242931058..000000000 --- a/doc/user/config-local-data.rst +++ /dev/null @@ -1,215 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -.. _config-local-data: - -Local Data and RPZ -================== - -Local overrides for DNS data may be defined in the :option:`local-data ` configuration tree. -It provides various input formats described in following subsections. - -.. code-block:: yaml - - # Some typical use cases: - local-data: - addresses: - a1.example.com: 2001:db8::1 - a2.example.org: [ 192.0.2.2, 192.0.2.3, 2001:db8::4 ] - addresses-files: - - /etc/hosts - records: | - www.google.com. CNAME forcesafesearch.google.com. - rpz: - - file: /tmp/blocklist.rpz - - -.. option:: local-data: - - .. option:: ttl:
- - Optional, IP address(es) to pair with hostname(s). - - .. code-block:: yaml - - local-data: - rules: - # hostname and IP address pair - - name: a3.example.com - address: 2001:db8::3 - tags: [example] - ttl: 10m - - .. option:: subtree: empty|nxdomain|redirect - - Optional, type of this subtree: - - - ``empty`` is an empty zone with just SOA and NS at the top - - ``nxdomain`` replies ``NXDOMAIN`` everywhere, though in some cases that looks slightly weird - - ``redirect`` answers with local-data records from the top of the zone, inside the whole virtual subtree - - .. code-block:: yaml - - local-data: - rules: - - name: [ evil.example.org, malware.example.net ] - subtree: empty - tags: [ malware ] - - name: a5.example - subtree: redirect - address: 2001:db8::5 - - .. option:: file: - - Optional, direct addition of hostname and IP address pairs from files in ``/etc/hosts`` like format. - - .. code-block:: yaml - - local-data: - rules: - - file: custom.hosts - tags: [ malware ] - ttl: 20m - nodata: false - - .. option:: records: - - Optional, direct addition of records in DNS zonefile format. - The zonefile syntax is more flexible, e.g. it can define any type of records. - - .. code-block:: yaml - - local-data: - rules: - - records: | - www.google.com. CNAME forcesafesearch.google.com. - tags: [ adult ] - - .. option:: tags: - - Optional, restrict when this rule applies. See :ref:`config-policy-new-tags`. - - .. option:: ttl: ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ -return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*\s*$/g,ia={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("