diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
new file mode 100644
index 0000000..e8cfadf
--- /dev/null
+++ b/.github/dependabot.yaml
@@ -0,0 +1,15 @@
+version: 2
+updates:
+  - package-ecosystem: github-actions
+    directory: "/"
+    schedule:
+      interval: weekly
+      time: "13:00"
+    open-pull-requests-limit: 10
+
+  - package-ecosystem: gomod
+    directory: "/"
+    schedule:
+      interval: weekly
+      time: "10:00" # 2am Pacific, after github.com/zonedb/zonedb
+    open-pull-requests-limit: 10
diff --git a/.github/workflows/automerge.yaml b/.github/workflows/automerge.yaml
new file mode 100644
index 0000000..a3ecbe0
--- /dev/null
+++ b/.github/workflows/automerge.yaml
@@ -0,0 +1,26 @@
+name: Merge
+
+on:
+  pull_request_review:
+    types:
+      - submitted
+
+jobs:
+  merge:
+    name: Merge pull request
+    if: |
+      github.event.review.state == 'approved' &&
+      github.event.pull_request.user.login == 'dependabot[bot]'
+    runs-on: ubuntu-latest
+    steps:
+      - name: Merge
+        uses: actions/github-script@v4.0.2
+        with:
+          github-token: ${{ secrets.DOMAINRBOT_RW_GITHUB_ACCESS_TOKEN }}
+          script: |
+            github.pulls.merge({
+              owner: context.payload.repository.owner.login,
+              repo: context.payload.repository.name,
+              pull_number: context.payload.pull_request.number,
+              merge_method: 'merge'
+            })
diff --git a/.github/workflows/go.yaml b/.github/workflows/go.yaml
new file mode 100644
index 0000000..b55bdfd
--- /dev/null
+++ b/.github/workflows/go.yaml
@@ -0,0 +1,52 @@
+name: Go
+
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+
+jobs:
+  test:
+    name: Test
+    runs-on: ubuntu-latest
+    timeout-minutes: 15
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v2
+        with:
+          submodules: recursive
+
+      - name: Set up Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: ^1
+
+      - name: Vet Go code
+        run: go vet ./...
+
+      - name: Run Go tests
+        run: go test -mod=readonly -v -race ./...
+
+      - name: Verify repo is unchanged
+        run: git diff --exit-code HEAD
+
+  review:
+    name: Review pull request
+    needs: test
+    if: |
+      github.event.pull_request.user.login == 'dependabot[bot]' &&
+      contains(github.head_ref, 'dependabot/go_modules/github.com/zonedb/zonedb')
+    runs-on: ubuntu-latest
+    steps:
+      - name: Approve pull request
+        uses: actions/github-script@v4.0.2
+        with:
+          github-token: ${{ secrets.DOMAINRBOT_RW_GITHUB_ACCESS_TOKEN }}
+          script: |
+            github.pulls.createReview({
+              owner: context.payload.repository.owner.login,
+              repo: context.payload.repository.name,
+              pull_number: context.payload.pull_request.number,
+              event: 'APPROVE'
+            })
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..558daab
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,26 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+
+# OS X
+.DS_Store
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d4e2955
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Domainr
+
+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.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..92a2b13
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+# Whois Test Data
+
+`go get github.com/domainr/whoistest`
+
+Shared test data for developing whois parsers. Extracted from [@domainr/whois](https://github.com/domainr/whois).  Responses organized by query into per-server directories.
+
+## Dependencies
+
+- [Go](http://golang.org/) version 1.2+
+- [Go whois](https://github.com/domainr/whois)
diff --git a/cmd/enum/main.go b/cmd/enum/main.go
new file mode 100644
index 0000000..c1ac482
--- /dev/null
+++ b/cmd/enum/main.go
@@ -0,0 +1,461 @@
+// This command enumerates unique keys/values found in testdata/responses.
+// To use: go run cmd/enum/main.go
+
+package main
+
+import (
+	"bufio"
+	"flag"
+	"fmt"
+	"os"
+	"regexp"
+	"sort"
+	"strings"
+
+	"github.com/domainr/whois"
+	"github.com/domainr/whoistest"
+	"github.com/wsxiaoys/terminal/color"
+)
+
+func main() {
+	flag.Parse()
+	if err := main1(); err != nil {
+		fmt.Fprintln(os.Stderr, err)
+		os.Exit(1)
+	}
+}
+
+func main1() error {
+	wd, err := os.Getwd()
+	if err != nil {
+		return err
+	}
+	wd = wd + "/"
+
+	fns, err := whoistest.ResponseFiles()
+	if err != nil {
+		return err
+	}
+
+	for _, fn := range fns {
+		res, err := whois.ReadMIMEFile(fn)
+		if err != nil {
+			color.Fprintf(os.Stderr, "@{|r}Error reading response file %s: %s\n", fn, err)
+			continue
+		}
+		if res.MediaType != "text/plain" {
+			continue
+		}
+		scan(res, strings.TrimPrefix(fn, wd))
+	}
+
+	logKeys()
+
+	return nil
+}
+
+var (
+	reEmptyLine = regexp.MustCompile(`^\s*$`)
+
+	reKey         = `([^,a-z\:\],][^\:\]]{0,39}\S|[a-z-]{3,40})`
+	reBareKey     = regexp.MustCompile(`^[ \t]{0,3}` + reKey + `\s*\:\s*$`)
+	reKeyValue    = regexp.MustCompile(`^[ \t]{0,3}` + reKey + `\s*\:\s*(.*\S)\s*$`)
+	reAltKey      = regexp.MustCompile(`^\[` + reKey + `\]\s*$`)
+	reAltKeyValue = regexp.MustCompile(`^\[` + reKey + `\]\s*(.*\S)\s*$`)
+	reBareValue   = regexp.MustCompile(`^      \s+(.*\S)\s*$`)
+
+	reUnavailable = regexp.MustCompile(strings.Join([]string{
+		`^Above domain name is not available for registration\.$`,
+	}, "|"))
+
+	reReserved = regexp.MustCompile(strings.Join([]string{
+		`^Domain reserved$`,
+	}, "|"))
+
+	reNotFound = regexp.MustCompile(strings.Join([]string{
+		`^No match\!\!$`,
+		`^NOT FOUND$`,
+		`^no matching record.$`,
+		`^Not found\: .+$`,
+		`^No match for "([^"]+)"\.$`,
+		`^% No match for domain "([^"]+)"$`,
+		`^% No entries found for query "([^"]+)"\.$`,
+		`^Domain (\S+) is available for purchase$`,
+		`^%% No entries found in the .+ Database\.$`,
+		`^Above domain name is not registered to [^\.]+\.$`,
+	}, "|"))
+
+	reNotice = regexp.MustCompile(strings.Join([]string{
+		`^%`,                // whois.de, whois.registro.br
+		`^# `,               // whois.kr
+		`^\[ .+ \]$`,        // whois.jprs.jp
+		`^>>>.+<<<$`,        // Database last updated...
+		`^[^\:]+https?\://`, // Line with an URL
+		`^NOTE: |^NOTICE: |^TERMS OF USE: `,
+	}, "|"))
+)
+
+func scan(res *whois.Response, fn string) {
+	color.Printf("@{|g}%s\n", fn)
+
+	r, err := res.Reader()
+	if err != nil {
+		return
+	}
+
+	off := len(res.Header())
+	line := 0
+	s := bufio.NewScanner(r)
+	for s.Scan() {
+		line++
+		color.Printf("@{|.}% 4d  ", line)
+
+		// Get next line
+		text := s.Text()
+
+		// Empty lines
+		if reEmptyLine.MatchString(text) {
+			color.Printf("@{|w}EMPTY\n")
+			continue
+		}
+
+		// Status messages
+		if m := reNotFound.FindStringSubmatch(text); m != nil {
+			color.Printf("@{|y}%- 16s  %s\n", "NOT_FOUND", text)
+			continue
+		}
+		if m := reUnavailable.FindStringSubmatch(text); m != nil {
+			color.Printf("@{|y}%- 16s  %s\n", "UNAVAILABLE", text)
+			continue
+		}
+		if m := reReserved.FindStringSubmatch(text); m != nil {
+			color.Printf("@{|y}%- 16s  %s\n", "UNAVAILABLE", text)
+			continue
+		}
+
+		// Notices
+		if m := reNotice.FindStringSubmatch(text); m != nil {
+			color.Printf("@{|w}%- 16s  %s\n", "NOTICE", text)
+			continue
+		}
+
+		// Keys and values
+		if m := reAltKeyValue.FindStringSubmatch(text); m != nil && known(m[1], fn, line+off) {
+			color.Printf("@{|w}%- 16s  @{c}%- 40s @{w}%s\n", "ALT_KEY_VALUE", m[1], m[2])
+			continue
+		}
+		if m := reAltKey.FindStringSubmatch(text); m != nil && known(m[1], fn, line+off) {
+			color.Printf("@{|w}%- 16s  @{c}%s\n", "BARE_ALT_KEY", m[1])
+			continue
+		}
+		if m := reKeyValue.FindStringSubmatch(text); m != nil && known(m[1], fn, line+off) {
+			color.Printf("@{|w}%- 16s  @{c}%- 40s @{w}%s\n", "KEY_VALUE", m[1], m[2])
+			continue
+		}
+		if m := reBareKey.FindStringSubmatch(text); m != nil && known(m[1], fn, line+off) {
+			color.Printf("@{|w}%- 16s  @{c}%s\n", "BARE_KEY", m[1])
+			continue
+		}
+		if m := reBareValue.FindStringSubmatch(text); m != nil {
+			color.Printf("@{|w}%- 16s  @{c}%- 40s @{w}%s\n", "BARE_VALUE", "", m[1])
+			continue
+		}
+
+		// Text (unknown)
+		color.Printf("@{|.}%- 16s  @{|.}%s\n", "TEXT", text)
+	}
+
+	fmt.Printf("\n")
+}
+
+func known(k, fn string, line int) bool {
+	_, ok := knownKeys[transformKey(k)]
+	if !ok {
+		addKey(k, fn, line)
+	}
+	return ok
+}
+
+var (
+	reStrip = regexp.MustCompile(`[[:punct:]]`)
+	reSpace = regexp.MustCompile(`\s+`)
+)
+
+func transformKey(k string) string {
+	k = strings.ToUpper(k)
+	k = reStrip.ReplaceAllLiteralString(k, " ")
+	k = strings.TrimSpace(k)
+	k = reSpace.ReplaceAllLiteralString(k, "_")
+	return k
+}
+
+var (
+	keys = make(map[string]string)
+)
+
+func addKey(k, fn string, line int) {
+	keys[k] = fmt.Sprintf("%s:%d", fn, line)
+}
+
+func logKeys() {
+	sorted := make([]string, 0, len(keys))
+	for k, _ := range keys {
+		sorted = append(sorted, k)
+	}
+	sort.Strings(sorted)
+	for _, k := range sorted {
+		color.Printf("@{|.}%- 80s @{|c}%s  \n", keys[k], strings.TrimSpace(k))
+	}
+	color.Printf("@{|w}%d potential new keys\n", len(keys))
+}
+
+var knownKeys = map[string]bool{
+	"AC_E_MAIL":                               true,
+	"AC_PHONE_NUMBER":                         true,
+	"ADDRESS":                                 true,
+	"ADMINISTRATIVE_CONTACT_AC":               true,
+	"ADMINISTRATIVE_CONTACT_ADDRESS1":         true,
+	"ADMINISTRATIVE_CONTACT_CITY":             true,
+	"ADMINISTRATIVE_CONTACT_COUNTRY":          true,
+	"ADMINISTRATIVE_CONTACT_COUNTRY_CODE":     true,
+	"ADMINISTRATIVE_CONTACT_EMAIL":            true,
+	"ADMINISTRATIVE_CONTACT_FACSIMILE_NUMBER": true,
+	"ADMINISTRATIVE_CONTACT_ID":               true,
+	"ADMINISTRATIVE_CONTACT_NAME":             true,
+	"ADMINISTRATIVE_CONTACT_ORGANIZATION":     true,
+	"ADMINISTRATIVE_CONTACT_PHONE_NUMBER":     true,
+	"ADMINISTRATIVE_CONTACT_POSTAL_CODE":      true,
+	"ADMINISTRATIVE_CONTACT_STATE_PROVINCE":   true,
+	"ADMIN_C":                             true,
+	"ADMIN_CITY":                          true,
+	"ADMIN_COUNTRY":                       true,
+	"ADMIN_EMAIL":                         true,
+	"ADMIN_FAX":                           true,
+	"ADMIN_FAX_EXT":                       true,
+	"ADMIN_ID":                            true,
+	"ADMIN_NAME":                          true,
+	"ADMIN_ORGANIZATION":                  true,
+	"ADMIN_PHONE":                         true,
+	"ADMIN_PHONE_EXT":                     true,
+	"ADMIN_POSTAL_CODE":                   true,
+	"ADMIN_STATE_PROVINCE":                true,
+	"ADMIN_STREET":                        true,
+	"ADMIN_STREET1":                       true,
+	"ADMIN_STREET2":                       true,
+	"ADMIN_STREET3":                       true,
+	"ALGORITHM_1":                         true,
+	"ALGORITHM_2":                         true,
+	"ANNIVERSARY":                         true,
+	"ANONYMOUS":                           true,
+	"AUTHORIZED_AGENCY":                   true,
+	"BILLING_C":                           true,
+	"BILLING_CONTACT_ADDRESS1":            true,
+	"BILLING_CONTACT_ADDRESS2":            true,
+	"BILLING_CONTACT_CITY":                true,
+	"BILLING_CONTACT_COUNTRY":             true,
+	"BILLING_CONTACT_COUNTRY_CODE":        true,
+	"BILLING_CONTACT_EMAIL":               true,
+	"BILLING_CONTACT_FACSIMILE_NUMBER":    true,
+	"BILLING_CONTACT_ID":                  true,
+	"BILLING_CONTACT_NAME":                true,
+	"BILLING_CONTACT_ORGANIZATION":        true,
+	"BILLING_CONTACT_PHONE_NUMBER":        true,
+	"BILLING_CONTACT_POSTAL_CODE":         true,
+	"BILLING_CONTACT_STATE_PROVINCE":      true,
+	"CHANGED":                             true,
+	"CITY":                                true,
+	"CONTACT":                             true,
+	"CONTACT_INFORMATION":                 true,
+	"COUNTRY":                             true,
+	"COUNTRYCODE":                         true,
+	"CREATED":                             true,
+	"CREATED_BY_REGISTRAR":                true,
+	"CREATED_ON":                          true,
+	"CREATION_DATE":                       true,
+	"DESCR":                               true,
+	"DIGEST_1":                            true,
+	"DIGEST_2":                            true,
+	"DIGEST_TYPE_1":                       true,
+	"DIGEST_TYPE_2":                       true,
+	"DNSKEY":                              true,
+	"DNSSEC":                              true,
+	"DOMAIN":                              true,
+	"DOMAIN_EXPIRATION_DATE":              true,
+	"DOMAIN_ID":                           true,
+	"DOMAIN_INFORMATION":                  true,
+	"DOMAIN_LAST_UPDATED_DATE":            true,
+	"DOMAIN_NAME":                         true,
+	"DOMAIN_REGISTRATION_DATE":            true,
+	"DOMAIN_STATUS":                       true,
+	"DSLASTOK":                            true,
+	"DSRECORD":                            true,
+	"DSSTATUS":                            true,
+	"DS_CREATED_1":                        true,
+	"DS_CREATED_2":                        true,
+	"DS_KEY_TAG_1":                        true,
+	"DS_KEY_TAG_2":                        true,
+	"DS_MAXIMUM_SIGNATURE_LIFE_1":         true,
+	"DS_MAXIMUM_SIGNATURE_LIFE_2":         true,
+	"DS_RDATA":                            true,
+	"ELIGDATE":                            true,
+	"ELIGSOURCE":                          true,
+	"ELIGSTATUS":                          true,
+	"EMAIL":                               true,
+	"EXPIRATION_DATE":                     true,
+	"EXPIRES":                             true,
+	"EXPIRY":                              true,
+	"E_MAIL":                              true,
+	"FAX":                                 true,
+	"FAX_NO":                              true,
+	"FAX番号":                               true,
+	"FLAGS":                               true,
+	"HOLD":                                true,
+	"HOLDER_C":                            true,
+	"HOST_NAME":                           true,
+	"IP_ADDRESS":                          true,
+	"IP_주소":                               true,
+	"KEYS":                                true,
+	"KEYTAG":                              true,
+	"LANGUAGE":                            true,
+	"LAST_TRANSFERRED_DATE":               true,
+	"LAST_UPDATE":                         true,
+	"LAST_UPDATED_BY_REGISTRAR":           true,
+	"LAST_UPDATED_DATE":                   true,
+	"LAST_UPDATED_ON":                     true,
+	"NAME":                                true,
+	"NAMESERVERS":                         true,
+	"NAME_SERVER":                         true,
+	"NIC_HDL":                             true,
+	"NIC_HDL_BR":                          true,
+	"NOTIFY":                              true,
+	"NOT_FOUND":                           true,
+	"NSERVER":                             true,
+	"NSLASTAA":                            true,
+	"NSL_ID":                              true,
+	"NSSTAT":                              true,
+	"NS_1":                                true,
+	"NS_2":                                true,
+	"NS_3":                                true,
+	"NS_4":                                true,
+	"NS_5":                                true,
+	"NS_LIST":                             true,
+	"OBSOLETED":                           true,
+	"ORGANISATION":                        true,
+	"OWNER":                               true,
+	"OWNERID":                             true,
+	"OWNER_C":                             true,
+	"PERSON":                              true,
+	"PHONE":                               true,
+	"POSTALCODE":                          true,
+	"POSTAL_ADDRESS":                      true,
+	"PUBLISHES":                           true,
+	"QUERY":                               true,
+	"REACHDATE":                           true,
+	"REACHMEDIA":                          true,
+	"REACHSOURCE":                         true,
+	"REACHSTATUS":                         true,
+	"REFERRAL_URL":                        true,
+	"REGISTERED":                          true,
+	"REGISTERED_DATE":                     true,
+	"REGISTRANT":                          true,
+	"REGISTRANT_ADDRESS":                  true,
+	"REGISTRANT_ADDRESS1":                 true,
+	"REGISTRANT_CITY":                     true,
+	"REGISTRANT_CONTACT_EMAIL":            true,
+	"REGISTRANT_COUNTRY":                  true,
+	"REGISTRANT_COUNTRY_CODE":             true,
+	"REGISTRANT_EMAIL":                    true,
+	"REGISTRANT_FACSIMILE_NUMBER":         true,
+	"REGISTRANT_FAX":                      true,
+	"REGISTRANT_FAX_EXT":                  true,
+	"REGISTRANT_ID":                       true,
+	"REGISTRANT_NAME":                     true,
+	"REGISTRANT_ORGANIZATION":             true,
+	"REGISTRANT_PHONE":                    true,
+	"REGISTRANT_PHONE_EXT":                true,
+	"REGISTRANT_PHONE_NUMBER":             true,
+	"REGISTRANT_POSTAL_CODE":              true,
+	"REGISTRANT_STATE_PROVINCE":           true,
+	"REGISTRANT_STREET":                   true,
+	"REGISTRANT_STREET1":                  true,
+	"REGISTRANT_STREET2":                  true,
+	"REGISTRANT_STREET3":                  true,
+	"REGISTRANT_ZIP_CODE":                 true,
+	"REGISTRAR":                           true,
+	"REGISTRAR_TECHNICAL_CONTACTS":        true,
+	"REGISTRAR_URL_REGISTRATION_SERVICES": true,
+	"REGISTRATION_DATE":                   true,
+	"REGISTRY_EXPIRY_DATE":                true,
+	"REMARKS":                             true,
+	"RESPONSIBLE":                         true,
+	"ROID":                                true,
+	"ROLE":                                true,
+	"RRC":                                 true,
+	"SERVER_NAME":                         true,
+	"SIGNING_KEY":                         true,
+	"SOURCE":                              true,
+	"SPONSORING_REGISTRAR":                true,
+	"SPONSORING_REGISTRAR_IANA_ID":        true,
+	"STATUS":                              true,
+	"TECHNICAL_CONTACT_ADDRESS1":          true,
+	"TECHNICAL_CONTACT_CITY":              true,
+	"TECHNICAL_CONTACT_COUNTRY":           true,
+	"TECHNICAL_CONTACT_COUNTRY_CODE":      true,
+	"TECHNICAL_CONTACT_EMAIL":             true,
+	"TECHNICAL_CONTACT_FACSIMILE_NUMBER":  true,
+	"TECHNICAL_CONTACT_ID":                true,
+	"TECHNICAL_CONTACT_NAME":              true,
+	"TECHNICAL_CONTACT_ORGANIZATION":      true,
+	"TECHNICAL_CONTACT_PHONE_NUMBER":      true,
+	"TECHNICAL_CONTACT_POSTAL_CODE":       true,
+	"TECHNICAL_CONTACT_STATE_PROVINCE":    true,
+	"TECH_C":              true,
+	"TECH_CITY":           true,
+	"TECH_COUNTRY":        true,
+	"TECH_EMAIL":          true,
+	"TECH_FAX":            true,
+	"TECH_FAX_EXT":        true,
+	"TECH_ID":             true,
+	"TECH_NAME":           true,
+	"TECH_ORGANIZATION":   true,
+	"TECH_PHONE":          true,
+	"TECH_PHONE_EXT":      true,
+	"TECH_POSTAL_CODE":    true,
+	"TECH_STATE_PROVINCE": true,
+	"TECH_STREET":         true,
+	"TECH_STREET1":        true,
+	"TECH_STREET2":        true,
+	"TECH_STREET3":        true,
+	"TROUBLE":             true,
+	"TYPE":                true,
+	"UPDATED_DATE":        true,
+	"VARIANT":             true,
+	"WEBSITE":             true,
+	"WEB_PAGE":            true,
+	"WHOIS":               true,
+	"WHOIS_SERVER":        true,
+	"ZONE_C":              true,
+	"住所":                  true,
+	"参考":                  true,
+	"名前":                  true,
+	"最終更新":                true,
+	"有効期限":                true,
+	"状態":                  true,
+	"登録年月日":               true,
+	"登録者名":                true,
+	"郵便番号":                true,
+	"電話番号":                true,
+	"도메인이름":               true,
+	"등록대행자":               true,
+	"등록인":                 true,
+	"등록인_우편번호":            true,
+	"등록인_주소":              true,
+	"등록일":                 true,
+	"사용_종료일":              true,
+	"정보공개여부":              true,
+	"책임자":                 true,
+	"책임자_전자우편":            true,
+	"책임자_전화번호":            true,
+	"최근_정보_변경일":           true,
+	"호스트이름":               true,
+}
diff --git a/cmd/gen/main.go b/cmd/gen/main.go
new file mode 100644
index 0000000..c8f6981
--- /dev/null
+++ b/cmd/gen/main.go
@@ -0,0 +1,210 @@
+package main
+
+import (
+	"bufio"
+	"time"
+
+	"flag"
+	"fmt"
+	"os"
+	"path/filepath"
+	"regexp"
+	"runtime"
+	"strings"
+	"sync"
+
+	"github.com/domainr/whois"
+	"github.com/domainr/whoistest"
+	"github.com/zonedb/zonedb"
+	"golang.org/x/net/idna"
+)
+
+var (
+	v, quick       bool
+	oneZone        string
+	maxAge         time.Duration
+	concurrency    int
+	zones          []string
+	prefixes       []string
+	firstLabel     = regexp.MustCompile(`^[^\.]+\.`)
+	_, _file, _, _ = runtime.Caller(0)
+	_dir           = filepath.Dir(_file)
+)
+
+func init() {
+	flag.BoolVar(&v, "v", false, "verbose output (to stderr)")
+	flag.BoolVar(&quick, "quick", false, "Only query a shorter subset of zones")
+	flag.StringVar(&oneZone, "zone", "", "Only query a specific zone")
+	flag.IntVar(&concurrency, "concurrency", 32, "Set maximum number of concurrent requests")
+	flag.DurationVar(&maxAge, "maxage", (24 * time.Hour * 30), "Set max age of responses before re-fetching")
+}
+
+func main() {
+	flag.Parse()
+
+	if err := main1(); err != nil {
+		fmt.Fprintln(os.Stderr, err)
+		os.Exit(1)
+	}
+}
+
+func main1() error {
+	var zones []string
+	switch {
+	case oneZone != "":
+		fmt.Fprintf(os.Stderr, "Querying single zone: %s\n", oneZone)
+		zones = []string{oneZone}
+
+	case quick:
+		zones = strings.Fields(`com net org co io nr kr jp de in`)
+		fmt.Fprintf(os.Stderr, "Quick mode enabled, operating on %d zones\n", len(zones))
+
+	default:
+		for _, z := range zonedb.Zones {
+			zones = append(zones, z.Domain)
+		}
+	}
+
+	prefixes, err := readLines("prefixes.txt")
+	if err != nil {
+		return err
+	}
+
+	domains := make(map[string]bool, len(zones)*len(prefixes))
+	for _, zone := range zones {
+		for _, prefix := range prefixes {
+			domain := prefix + "." + zone
+			domains[domain] = true
+			host, _, err := whois.Server(domain)
+			if err == nil {
+				parent := firstLabel.ReplaceAllLiteralString(host, "")
+				if _, ok := domains[parent]; !ok && parent != "" {
+					fmt.Fprintf(os.Stderr, "  + %s\n", parent)
+					domains[parent] = true
+				}
+			}
+		}
+	}
+
+	fmt.Fprintf(os.Stderr, "Querying whois for %d domains (%d prefixes × %d zones + extras)\n", len(domains), len(prefixes), len(zones))
+
+	responses := make(chan *whois.Response)
+	var limiter = make(chan struct{}, concurrency)
+	var hostLimiters = make(map[string](chan struct{}))
+	m := &sync.RWMutex{}
+	for domain, _ := range domains {
+		go func(domain string) {
+			req, err := whois.NewRequest(domain)
+			if err != nil {
+				return
+			}
+
+			// Only re-fetch responses > 1 month old
+			res, err := whois.ReadMIMEFile(whoistest.ResponseFilename(req.Query, req.Host))
+			if err == nil && time.Since(res.FetchedAt) < maxAge {
+				if v {
+					fmt.Fprintf(os.Stderr, "Skipping %s from %s\n", req.Query, req.Host)
+				}
+				responses <- nil
+				return
+			}
+
+			// Per-host semaphore to limit concurrency
+			m.RLock()
+			hostLimiter, ok := hostLimiters[req.Host]
+			m.RUnlock()
+			if !ok {
+				m.Lock()
+				hostLimiters[req.Host] = make(chan struct{}, 1)
+				hostLimiter = hostLimiters[req.Host]
+				m.Unlock()
+			}
+			// Acquire
+			hostLimiter <- struct{}{}
+			limiter <- struct{}{}
+			// Release
+			defer func() {
+				responses <- res
+				<-hostLimiter
+				<-limiter
+			}()
+
+			if v {
+				fmt.Fprintf(os.Stderr, "Fetching %s from %s\n", req.Query, req.Host)
+			}
+			res, err = whois.DefaultClient.Fetch(req)
+			if err != nil {
+				fmt.Fprintf(os.Stderr, "Error fetching whois for %s: %s\n", req.Query, err)
+				return
+			}
+		}(domain)
+	}
+
+	// Collect from goroutines
+	var wg sync.WaitGroup
+	wg.Add(len(domains))
+	for i := 0; i < len(domains); i++ {
+		go func() {
+			res := <-responses
+			defer wg.Done()
+
+			if res == nil {
+				return
+			}
+
+			if res.Host == "" {
+				fmt.Fprintf(os.Stderr, "Response for %q had no host\n", res.Query)
+				return
+			}
+
+			if len(res.Body) == 0 {
+				fmt.Fprintf(os.Stderr, "Response for %q had empty body\n", res.Query)
+				return
+			}
+
+			fn := whoistest.ResponseFilename(res.Query, res.Host)
+
+			dir := filepath.Dir(fn)
+			err := os.MkdirAll(dir, os.ModePerm)
+			if err != nil {
+				fmt.Fprintf(os.Stderr, "Error creating response directory for %s: %s\n", res.Host, err)
+				return
+			}
+
+			f, err := os.Create(fn)
+			if err != nil {
+				fmt.Fprintf(os.Stderr, "Error creating response file for %s: %s\n", res.Query, err)
+				return
+			}
+			defer f.Close()
+			res.WriteMIME(f)
+		}()
+	}
+	wg.Wait()
+
+	return nil
+}
+
+var whitespaceAndComments = regexp.MustCompile(`\s+|#.+$`)
+
+func readLines(fn string) ([]string, error) {
+	fmt.Fprintf(os.Stderr, "Reading %s\n", fn)
+	f, err := os.Open(filepath.Join(_dir, "..", "..", "testdata", fn))
+	if err != nil {
+		return nil, err
+	}
+	defer f.Close()
+
+	var out []string
+	s := bufio.NewScanner(f)
+	for s.Scan() {
+		line := whitespaceAndComments.ReplaceAllLiteralString(s.Text(), "")
+		if line == "" {
+			continue
+		}
+		if line, ierr := idna.ToASCII(line); ierr == nil {
+			out = append(out, line)
+		}
+	}
+	return out, s.Err()
+}
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..313079b
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,12 @@
+module github.com/domainr/whoistest
+
+go 1.2
+
+require (
+	github.com/domainr/whois v0.0.0-20180714175948-975c7833b02e
+	github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32
+	github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca // indirect
+	github.com/wsxiaoys/terminal v0.0.0-20160513160801-0940f3fc43a0
+	github.com/zonedb/zonedb v1.0.3248
+	golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..3808996
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,31 @@
+github.com/PuerkitoBio/goquery v1.6.1 h1:FgjbQZKl5HTmcn4sKBgvx8vv63nhyhIpv7lJpFGCWpk=
+github.com/PuerkitoBio/goquery v1.6.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
+github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
+github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE=
+github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY=
+github.com/domainr/whois v0.0.0-20180714175948-975c7833b02e h1:iZ+fhG8+rFlxdqv88o5tMyH89H6AWx0WJgUXhiSxkhA=
+github.com/domainr/whois v0.0.0-20180714175948-975c7833b02e/go.mod h1:gtNPHEJSqhDlO2zVW0ai2b4voo5NWzFyNFPBMB0fDs0=
+github.com/miekg/dns v1.1.42/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
+github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32 h1:W6apQkHrMkS0Muv8G/TipAy/FJl/rCYT0+EuS8+Z0z4=
+github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
+github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxTvN8n+Kvkn6TrbMyxQiuvKdEwFdR9vI=
+github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU=
+github.com/wsxiaoys/terminal v0.0.0-20160513160801-0940f3fc43a0 h1:3UeQBvD0TFrlVjOeLOBz+CPAI8dnbqNSVwUwRrkp7vQ=
+github.com/wsxiaoys/terminal v0.0.0-20160513160801-0940f3fc43a0/go.mod h1:IXCdmsXIht47RaVFLEdVnh1t+pgYtTAhQGj73kz+2DM=
+github.com/zonedb/zonedb v1.0.3248 h1:RLwfcs0zAxXSfdC+d0LwBmloXluRVnmvpygbzfUrvp0=
+github.com/zonedb/zonedb v1.0.3248/go.mod h1:jU65gYFb97Tx/ZQtpOyY8kyBvGYHNfBQCevsH/gEO9s=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
diff --git a/testdata/prefixes.txt b/testdata/prefixes.txt
new file mode 100644
index 0000000..62ad961
--- /dev/null
+++ b/testdata/prefixes.txt
@@ -0,0 +1,6 @@
+# Domains possibly registered
+nic
+google
+
+# Domains unlikely registered
+zx5v7d4v2k50l3pq
diff --git a/testdata/responses/.gitkeep b/testdata/responses/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/testdata/responses/cenpac.net.nr/dns.nr.mime b/testdata/responses/cenpac.net.nr/dns.nr.mime
new file mode 100644
index 0000000..7db60cc
--- /dev/null
+++ b/testdata/responses/cenpac.net.nr/dns.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: ab39b195ccb157feb83bbcdfac60dd28cdb2d96a
+Content-Length: 5675
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2014-09-29T12:26:19Z
+Host: cenpac.net.nr
+Query: dns.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="dns" />&nbsp;.&nbsp;<select name="tld"><option value="info.nr" >info.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option><option value="biz.nr" >biz.nr</option><option value="com.nr" >com.nr</option><option value="nr" selected="selected">nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+</body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/cenpac.net.nr/google.nr.mime b/testdata/responses/cenpac.net.nr/google.nr.mime
new file mode 100644
index 0000000..e078968
--- /dev/null
+++ b/testdata/responses/cenpac.net.nr/google.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: 80fda9a72bc502f18e121b07b0853a1372fe939a
+Content-Length: 9061
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2014-10-04T11:15:51Z
+Host: cenpac.net.nr
+Query: google.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="google" />&nbsp;.&nbsp;<select name="tld"><option value="info.nr" >info.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option><option value="biz.nr" >biz.nr</option><option value="nr" selected="selected">nr</option><option value="com.nr" >com.nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+<table border="0"><tr><td><b>Domain Name: </b></td><td><b><a href="domreg.html?subdom=google&tld=nr">google.nr</b> (modify)</a></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td><b>Organisation:</b> </td><td>Google Inc.</td></tr><tr><td>Address: </td><td>2400 E. Bayshore Pkwy</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Mountain View CA</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>94043</td></tr><tr><td>Phone: </td><td>+1 650 330 0100</td></tr><tr><td>Fax: </td><td>+1 650 618 1499</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Administrative Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=US-RH1"><b>US-RH1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Rose</td></tr><tr><td>Last Name: </td><td>Hagan</td></tr><tr><td>Organisation: </td><td>Google Inc.</td></tr><tr><td>Address: </td><td>2400 E. Bayshore Pkwy</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Mountain View</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>94043</td></tr><tr><td>Phone: </td><td>+1 650 330 0100</td></tr><tr><td>Fax: </td><td>+1 650 618 1499</td></tr><tr><td>Email: </td><td>dns-admin@google.com</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>US-RH1</td></tr><tr><td>Date: </td><td>2013-05-07</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Technical Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=US-JJ1"><b>US-JJ1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Rana</td></tr><tr><td>Last Name: </td><td>Kulpreet</td></tr><tr><td>Organisation: </td><td>Google Inc.</td></tr><tr><td>Address: </td><td>2400 E. Bayshore Pkwy</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Mountain View</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>94043</td></tr><tr><td>Phone: </td><td>+16503300100</td></tr><tr><td>Fax: </td><td>+16506181499</td></tr><tr><td>Email: </td><td>dns-admin@google.com</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>US-JJ1</td></tr><tr><td>Date: </td><td>2013-05-07</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Billing Details</b></td></tr><tr><td>Title: </td><td>Domain Billing</td></tr><tr><td>Organisation: </td><td>Markmonitor</td></tr><tr><td>Address: </td><td>PMB 155, 10400 Overland Rd.</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Boise, ID</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>83709-1433</td></tr><tr><td>Phone: </td><td>+1 208 3895740</td></tr><tr><td>Fax: </td><td>+1 208 3895771</td></tr><tr><td>Email: </td><td>ccops@markmonitor.com</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Registration</b></td></tr><tr><td>Registration Date: </td><td>2004-09-15</td></tr><tr><td>Start Domain: </td><td>2004-10-06</td></tr><tr><td>Expiration: </td><td>2015-10-06</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Record Modification</b></td><tr><td>Modifier: </td><td>US-RH1</td></tr><tr><td>Date: </td><td>2004-09-15</td></tr></table></body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/cenpac.net.nr/net.nr.mime b/testdata/responses/cenpac.net.nr/net.nr.mime
new file mode 100644
index 0000000..1e710b9
--- /dev/null
+++ b/testdata/responses/cenpac.net.nr/net.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: cae4f985a9564dee248b2f2c6082b027b525bd62
+Content-Length: 5675
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2014-09-29T12:26:04Z
+Host: cenpac.net.nr
+Query: net.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="net" />&nbsp;.&nbsp;<select name="tld"><option value="info.nr" >info.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option><option value="biz.nr" >biz.nr</option><option value="com.nr" >com.nr</option><option value="nr" selected="selected">nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+</body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/cenpac.net.nr/nic.nr.mime b/testdata/responses/cenpac.net.nr/nic.nr.mime
new file mode 100644
index 0000000..eac9ec4
--- /dev/null
+++ b/testdata/responses/cenpac.net.nr/nic.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: 9c8fa41487fc6ebd8f218bc99c50b786cc83030a
+Content-Length: 5675
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2014-09-29T12:26:01Z
+Host: cenpac.net.nr
+Query: nic.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="nic" />&nbsp;.&nbsp;<select name="tld"><option value="info.nr" >info.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option><option value="biz.nr" >biz.nr</option><option value="com.nr" >com.nr</option><option value="nr" selected="selected">nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+</body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/cenpac.net.nr/whois.nr.mime b/testdata/responses/cenpac.net.nr/whois.nr.mime
new file mode 100644
index 0000000..19171a8
--- /dev/null
+++ b/testdata/responses/cenpac.net.nr/whois.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: acdd73228180ab75ef9e8a898181d73406ca5dd9
+Content-Length: 5677
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2014-09-29T12:26:21Z
+Host: cenpac.net.nr
+Query: whois.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="whois" />&nbsp;.&nbsp;<select name="tld"><option value="info.nr" >info.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option><option value="biz.nr" >biz.nr</option><option value="com.nr" >com.nr</option><option value="nr" selected="selected">nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+</body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/cenpac.net.nr/www.nr.mime b/testdata/responses/cenpac.net.nr/www.nr.mime
new file mode 100644
index 0000000..cf1794f
--- /dev/null
+++ b/testdata/responses/cenpac.net.nr/www.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: 9a9f3e6afb73f520fa87d6cad7f8d67f7241edd3
+Content-Length: 8953
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2014-09-29T12:26:11Z
+Host: cenpac.net.nr
+Query: www.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="www" />&nbsp;.&nbsp;<select name="tld"><option value="info.nr" >info.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option><option value="biz.nr" >biz.nr</option><option value="com.nr" >com.nr</option><option value="nr" selected="selected">nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+<table border="0"><tr><td><b>Domain Name: </b></td><td><b><a href="domreg.html?subdom=www&tld=nr">www.nr</b> (modify)</a></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td><b>Organisation:</b> </td><td>CenpacNet</td></tr><tr><td>Address: </td><td>Civic Center</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Aiwo</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td>1234</td></tr><tr><td>Phone: </td><td>+674 444 3809</td></tr><tr><td>Fax: </td><td>+674 444 3868</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Administrative Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=NR-RD1"><b>NR-RD1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Robbie</td></tr><tr><td>Last Name: </td><td>Detudamo</td></tr><tr><td>Organisation: </td><td>CENPACNET INC</td></tr><tr><td>Address: </td><td>Civic center</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Aiwo</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td></td></tr><tr><td>Phone: </td><td>+674 444 3809</td></tr><tr><td>Fax: </td><td>+674 444 3868</td></tr><tr><td>Email: </td><td>management@cenpac.net.nr</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>NR-RD1</td></tr><tr><td>Date: </td><td>2002-05-26</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Technical Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=NR-JL1"><b>NR-JL1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Jon</td></tr><tr><td>Last Name: </td><td>Leeman</td></tr><tr><td>Organisation: </td><td>CENPACNET</td></tr><tr><td>Address: </td><td>Telecom Offices</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Nauru</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td></td></tr><tr><td>Phone: </td><td>+674 444 3370</td></tr><tr><td>Fax: </td><td></td></tr><tr><td>Email: </td><td>technician@cenpac.net.nr</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>NR-JL1</td></tr><tr><td>Date: </td><td>2003-11-06</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Billing Details</b></td></tr><tr><td>Title: </td><td>CenpacNet Manager</td></tr><tr><td>Organisation: </td><td>CenpacNet</td></tr><tr><td>Address: </td><td>Civic Center</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Aiwo</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td>1234</td></tr><tr><td>Phone: </td><td>+674 444 3809</td></tr><tr><td>Fax: </td><td>+674 444 3868</td></tr><tr><td>Email: </td><td>technician@cenpac.net.nr</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Registration</b></td></tr><tr><td>Registration Date: </td><td>2005-08-21</td></tr><tr><td>Start Domain: </td><td>2006-01-09</td></tr><tr><td>Expiration: </td><td>2010-12-31</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Record Modification</b></td><tr><td>Modifier: </td><td>NR-JL1</td></tr><tr><td>Date: </td><td>2005-08-21</td></tr></table></body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/cenpac.net.nr/zx5v7d4v2k50l3pq.nr.mime b/testdata/responses/cenpac.net.nr/zx5v7d4v2k50l3pq.nr.mime
new file mode 100644
index 0000000..1394ba5
--- /dev/null
+++ b/testdata/responses/cenpac.net.nr/zx5v7d4v2k50l3pq.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: ffd04c27aa0e0773ee1495b17ac19253ae7a0e0c
+Content-Length: 5688
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2014-10-04T11:15:57Z
+Host: cenpac.net.nr
+Query: zx5v7d4v2k50l3pq.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="zx5v7d4v2k50l3pq" />&nbsp;.&nbsp;<select name="tld"><option value="info.nr" >info.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option><option value="biz.nr" >biz.nr</option><option value="nr" selected="selected">nr</option><option value="com.nr" >com.nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+</body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/whois.auda.org.au/auda.org.au.mime b/testdata/responses/whois.auda.org.au/auda.org.au.mime
new file mode 100644
index 0000000..482b9bf
--- /dev/null
+++ b/testdata/responses/whois.auda.org.au/auda.org.au.mime
@@ -0,0 +1,52 @@
+MIME-Version: 1.0
+Content-Checksum: d01e975d83938b399c05653448f628e2e61031c9
+Content-Length: 1939
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:53:53Z
+Host: whois.auda.org.au
+Query: auda.org.au
+
+Domain Name: AUDA.ORG.AU
+Registry Domain ID: D407400000002227050-AU
+Registrar WHOIS Server:
+Registrar URL:
+Last Modified: 2018-07-03T21:33:06Z
+Registrar Name: auDA Account
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Reseller Name:
+Status: serverDeleteProhibited
+Status: serverRenewProhibited
+Status: serverUpdateProhibited
+Registrant Contact ID: AUDA
+Registrant Contact Name: CEO
+Tech Contact ID: AUDA
+Tech Contact Name: CEO
+Name Server: KARL.NS.CLOUDFLARE.COM
+Name Server: INGRID.NS.CLOUDFLARE.COM
+DNSSEC: signedDelegation
+Registrant: .au Domain Administration Ltd
+Registrant ID: ACN 079 009 340
+Eligibility Type: Company
+
+>>> Last update of WHOIS database: 2018-07-14T17:53:44Z <<<
+
+
+
+Afilias Australia Pty Ltd (Afilias), for itself and on behalf of .au Domain Administration Limited (auDA), makes the WHOIS registration data directory service (WHOIS Service) available solely for the purposes of:
+
+(a) querying the availability of a domain name licence;
+
+(b) identifying the holder of a domain name licence; and/or
+
+(c) contacting the holder of a domain name licence in relation to that domain name and its use.
+
+The WHOIS Service must not be used for any other purpose (even if that purpose is lawful), including:
+
+(a) aggregating, collecting or compiling information from the WHOIS database, whether for personal or commercial purposes;
+
+(b) enabling the sending of unsolicited electronic communications; and / or
+
+(c) enabling high volume, automated, electronic processes that send queries or data to the systems of Afilias, any registrar, any domain name licence holder, or auDA.
+
+The WHOIS Service is provided for information purposes only. By using the WHOIS Service, you agree to be bound by these terms and conditions. The WHOIS Service is operated in accordance with the auDA WHOIS Policy (available at https://www.auda.org.au/policies/index-of-published-policies/2014/2014-07/ ).
diff --git a/testdata/responses/whois.auda.org.au/google.com.au.mime b/testdata/responses/whois.auda.org.au/google.com.au.mime
new file mode 100644
index 0000000..9d515ed
--- /dev/null
+++ b/testdata/responses/whois.auda.org.au/google.com.au.mime
@@ -0,0 +1,57 @@
+MIME-Version: 1.0
+Content-Checksum: 3b0bc6f24279952e4202cf2d5eba9072577432fa
+Content-Length: 2082
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:53:52Z
+Host: whois.auda.org.au
+Query: google.com.au
+
+Domain Name: GOOGLE.COM.AU
+Registry Domain ID: D407400000001774763-AU
+Registrar WHOIS Server:
+Registrar URL:
+Last Modified:
+Registrar Name: MarkMonitor Corporate Services Inc
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Reseller Name:
+Status: clientDeleteProhibited
+Status: clientUpdateProhibited
+Status: serverDeleteProhibited
+Status: serverRenewProhibited
+Status: serverUpdateProhibited
+Registrant Contact ID: MMR-122026
+Registrant Contact Name: Domain Administrator
+Tech Contact ID: MMR-87489
+Tech Contact Name: DNS Admin
+Name Server: NS1.GOOGLE.COM
+Name Server: NS2.GOOGLE.COM
+Name Server: NS3.GOOGLE.COM
+Name Server: NS4.GOOGLE.COM
+DNSSEC: unsigned
+Registrant: Google INC
+Eligibility Type: Trademark Owner
+Eligibility Name: GOOGLE
+Eligibility ID: TM 788234
+
+>>> Last update of WHOIS database: 2018-07-14T17:53:43Z <<<
+
+
+
+Afilias Australia Pty Ltd (Afilias), for itself and on behalf of .au Domain Administration Limited (auDA), makes the WHOIS registration data directory service (WHOIS Service) available solely for the purposes of:
+
+(a) querying the availability of a domain name licence;
+
+(b) identifying the holder of a domain name licence; and/or
+
+(c) contacting the holder of a domain name licence in relation to that domain name and its use.
+
+The WHOIS Service must not be used for any other purpose (even if that purpose is lawful), including:
+
+(a) aggregating, collecting or compiling information from the WHOIS database, whether for personal or commercial purposes;
+
+(b) enabling the sending of unsolicited electronic communications; and / or
+
+(c) enabling high volume, automated, electronic processes that send queries or data to the systems of Afilias, any registrar, any domain name licence holder, or auDA.
+
+The WHOIS Service is provided for information purposes only. By using the WHOIS Service, you agree to be bound by these terms and conditions. The WHOIS Service is operated in accordance with the auDA WHOIS Policy (available at https://www.auda.org.au/policies/index-of-published-policies/2014/2014-07/ ).
diff --git a/testdata/responses/whois.auda.org.au/nic.com.au.mime b/testdata/responses/whois.auda.org.au/nic.com.au.mime
new file mode 100644
index 0000000..623eabd
--- /dev/null
+++ b/testdata/responses/whois.auda.org.au/nic.com.au.mime
@@ -0,0 +1,51 @@
+MIME-Version: 1.0
+Content-Checksum: 62da704e627a04d09ea8a06c1bdafdf35dfdb6c1
+Content-Length: 1853
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:53:52Z
+Host: whois.auda.org.au
+Query: nic.com.au
+
+Domain Name: NIC.COM.AU
+Registry Domain ID: D407400000003789725-AU
+Registrar WHOIS Server:
+Registrar URL:
+Last Modified: 2018-07-14T05:27:03Z
+Registrar Name: DROP.com.au Pty Ltd
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Reseller Name:
+Status: inactive
+Status: serverRenewProhibited
+Status: transferPeriod
+Registrant Contact ID: DS1
+Registrant Contact Name: Anthony Peake
+Tech Contact ID: DS1
+Tech Contact Name: Anthony Peake
+Name Server:
+DNSSEC: unsigned
+Registrant: VPE Pty Ltd
+Registrant ID: ABN 95618027384
+Eligibility Type: Company
+
+>>> Last update of WHOIS database: 2018-07-14T17:53:42Z <<<
+
+
+
+Afilias Australia Pty Ltd (Afilias), for itself and on behalf of .au Domain Administration Limited (auDA), makes the WHOIS registration data directory service (WHOIS Service) available solely for the purposes of:
+
+(a) querying the availability of a domain name licence;
+
+(b) identifying the holder of a domain name licence; and/or
+
+(c) contacting the holder of a domain name licence in relation to that domain name and its use.
+
+The WHOIS Service must not be used for any other purpose (even if that purpose is lawful), including:
+
+(a) aggregating, collecting or compiling information from the WHOIS database, whether for personal or commercial purposes;
+
+(b) enabling the sending of unsolicited electronic communications; and / or
+
+(c) enabling high volume, automated, electronic processes that send queries or data to the systems of Afilias, any registrar, any domain name licence holder, or auDA.
+
+The WHOIS Service is provided for information purposes only. By using the WHOIS Service, you agree to be bound by these terms and conditions. The WHOIS Service is operated in accordance with the auDA WHOIS Policy (available at https://www.auda.org.au/policies/index-of-published-policies/2014/2014-07/ ).
diff --git a/testdata/responses/whois.auda.org.au/zx5v7d4v2k50l3pq.com.au.mime b/testdata/responses/whois.auda.org.au/zx5v7d4v2k50l3pq.com.au.mime
new file mode 100644
index 0000000..5787015
--- /dev/null
+++ b/testdata/responses/whois.auda.org.au/zx5v7d4v2k50l3pq.com.au.mime
@@ -0,0 +1,28 @@
+MIME-Version: 1.0
+Content-Checksum: 1f58f6069c7e966deb281439ab5208044e95a0c4
+Content-Length: 1281
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:53:53Z
+Host: whois.auda.org.au
+Query: zx5v7d4v2k50l3pq.com.au
+
+NOT FOUND
+>>> Last update of WHOIS database: 2018-07-14T17:53:43Z <<<
+
+Afilias Australia Pty Ltd (Afilias), for itself and on behalf of .au Domain Administration Limited (auDA), makes the WHOIS registration data directory service (WHOIS Service) available solely for the purposes of:
+
+(a) querying the availability of a domain name licence;
+
+(b) identifying the holder of a domain name licence; and/or
+
+(c) contacting the holder of a domain name licence in relation to that domain name and its use.
+
+The WHOIS Service must not be used for any other purpose (even if that purpose is lawful), including:
+
+(a) aggregating, collecting or compiling information from the WHOIS database, whether for personal or commercial purposes;
+
+(b) enabling the sending of unsolicited electronic communications; and / or
+
+(c) enabling high volume, automated, electronic processes that send queries or data to the systems of Afilias, any registrar, any domain name licence holder, or auDA.
+
+The WHOIS Service is provided for information purposes only. By using the WHOIS Service, you agree to be bound by these terms and conditions. The WHOIS Service is operated in accordance with the auDA WHOIS Policy (available at https://www.auda.org.au/policies/index-of-published-policies/2014/2014-07/ ).
diff --git a/testdata/responses/whois.cnnic.cn/cnnic.cn.mime b/testdata/responses/whois.cnnic.cn/cnnic.cn.mime
new file mode 100644
index 0000000..7109238
--- /dev/null
+++ b/testdata/responses/whois.cnnic.cn/cnnic.cn.mime
@@ -0,0 +1,25 @@
+MIME-Version: 1.0
+Content-Checksum: e99318032499d5b99888b4bcbd0046bb28791a8f
+Content-Length: 566
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2014-10-05T20:38:13Z
+Host: whois.cnnic.cn
+Query: cnnic.cn
+
+Domain Name: cnnic.cn
+ROID: 20030310s10001s00012956-cn
+Domain Status: serverDeleteProhibited
+Domain Status: serverUpdateProhibited
+Domain Status: serverTransferProhibited
+Registrant ID: s1255673574881
+Registrant: 中国互联网络信息中心
+Registrant Contact Email: servicei@cnnic.cn
+Sponsoring Registrar: 北京中科三方网络技术有限公司
+Name Server: a.cnnic.cn
+Name Server: b.cnnic.cn
+Name Server: c.cnnic.cn
+Name Server: d.cnnic.cn
+Name Server: e.cnnic.cn
+Registration Date: 2003-03-10 19:06:34
+Expiration Date: 2018-03-10 19:06:34
+DNSSEC: unsigned
diff --git a/testdata/responses/whois.cnnic.cn/dns.cn.mime b/testdata/responses/whois.cnnic.cn/dns.cn.mime
new file mode 100644
index 0000000..65c9094
--- /dev/null
+++ b/testdata/responses/whois.cnnic.cn/dns.cn.mime
@@ -0,0 +1,21 @@
+MIME-Version: 1.0
+Content-Checksum: 196d5c3c50fbb5f94e4ef5d1bf21422409ea8dab
+Content-Length: 412
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2014-10-05T20:38:13Z
+Host: whois.cnnic.cn
+Query: dns.cn
+
+Domain Name: dns.cn
+ROID: 20030310s10001s00012964-cn
+Domain Status: ok
+Registrant ID: s1255673574881
+Registrant: 中国互联网络信息中心
+Registrant Contact Email: servicei@cnnic.cn
+Sponsoring Registrar: 北京中科三方网络技术有限公司
+Name Server: a.dns.cn
+Name Server: b.dns.cn
+Name Server: c.dns.cn
+Registration Date: 2003-03-10 19:06:38
+Expiration Date: 2015-03-10 19:06:38
+DNSSEC: unsigned
diff --git a/testdata/responses/whois.cnnic.cn/google.cn.mime b/testdata/responses/whois.cnnic.cn/google.cn.mime
new file mode 100644
index 0000000..fb40c1a
--- /dev/null
+++ b/testdata/responses/whois.cnnic.cn/google.cn.mime
@@ -0,0 +1,27 @@
+MIME-Version: 1.0
+Content-Checksum: 69fa7af8d75e0773b7d54bdc28aa6e8ed2fb23dc
+Content-Length: 645
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:38:12Z
+Host: whois.cnnic.cn
+Query: google.cn
+
+Domain Name: google.cn
+ROID: 20030311s10001s00033735-cn
+Domain Status: clientDeleteProhibited
+Domain Status: serverDeleteProhibited
+Domain Status: clientUpdateProhibited
+Domain Status: serverUpdateProhibited
+Domain Status: clientTransferProhibited
+Domain Status: serverTransferProhibited
+Registrant ID: cnnic-zdmd-022
+Registrant: Google Ireland Holdings
+Registrant Contact Email: dns-admin@google.com
+Sponsoring Registrar: MarkMonitor Inc.
+Name Server: ns2.google.com
+Name Server: ns1.google.com
+Name Server: ns3.google.com
+Name Server: ns4.google.com
+Registration Date: 2003-03-17 12:20:05
+Expiration Date: 2015-03-17 12:48:36
+DNSSEC: unsigned
diff --git a/testdata/responses/whois.cnnic.cn/nic.cn.mime b/testdata/responses/whois.cnnic.cn/nic.cn.mime
new file mode 100644
index 0000000..e755e9b
--- /dev/null
+++ b/testdata/responses/whois.cnnic.cn/nic.cn.mime
@@ -0,0 +1,9 @@
+MIME-Version: 1.0
+Content-Checksum: 521401f0b0d2b9d349c97737a369344a3f2d83e3
+Content-Length: 45
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:14Z
+Host: whois.cnnic.cn
+Query: nic.cn
+
+the domain you want to register is reserved.
diff --git a/testdata/responses/whois.cnnic.cn/whois.cn.mime b/testdata/responses/whois.cnnic.cn/whois.cn.mime
new file mode 100644
index 0000000..ac4c93e
--- /dev/null
+++ b/testdata/responses/whois.cnnic.cn/whois.cn.mime
@@ -0,0 +1,18 @@
+MIME-Version: 1.0
+Content-Checksum: 46b9e041ea2594f87be02fca2d1e029ef3723879
+Content-Length: 354
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2014-10-05T20:38:11Z
+Host: whois.cnnic.cn
+Query: whois.cn
+
+Domain Name: whois.cn
+ROID: 20030310s10001s00012963-cn
+Domain Status: inactive
+Registrant ID: s1255673574881
+Registrant: 中国互联网络信息中心
+Registrant Contact Email: servicei@cnnic.cn
+Sponsoring Registrar: 北京中科三方网络技术有限公司
+Registration Date: 2003-03-10 19:06:38
+Expiration Date: 2015-03-10 19:06:38
+DNSSEC: unsigned
diff --git a/testdata/responses/whois.cnnic.cn/www.cn.mime b/testdata/responses/whois.cnnic.cn/www.cn.mime
new file mode 100644
index 0000000..b747bbc
--- /dev/null
+++ b/testdata/responses/whois.cnnic.cn/www.cn.mime
@@ -0,0 +1,20 @@
+MIME-Version: 1.0
+Content-Checksum: 74370f55c07a289bd36be6eb0fbb6afca3d80997
+Content-Length: 412
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2014-10-05T20:38:14Z
+Host: whois.cnnic.cn
+Query: www.cn
+
+Domain Name: www.cn
+ROID: 20030310s10001s00012962-cn
+Domain Status: ok
+Registrant ID: s1255673574881
+Registrant: 中国互联网络信息中心
+Registrant Contact Email: servicei@cnnic.cn
+Sponsoring Registrar: 北京中科三方网络技术有限公司
+Name Server: ns3.sanfront.com.cn
+Name Server: ns5.sanfront.com.cn
+Registration Date: 2003-03-10 19:06:37
+Expiration Date: 2016-03-10 19:06:37
+DNSSEC: unsigned
diff --git a/testdata/responses/whois.cnnic.cn/zx5v7d4v2k50l3pq.cn.mime b/testdata/responses/whois.cnnic.cn/zx5v7d4v2k50l3pq.cn.mime
new file mode 100644
index 0000000..a7ae5f6
--- /dev/null
+++ b/testdata/responses/whois.cnnic.cn/zx5v7d4v2k50l3pq.cn.mime
@@ -0,0 +1,9 @@
+MIME-Version: 1.0
+Content-Checksum: f624a962df9a7c239678f6dc932d1fb5050157dd
+Content-Length: 20
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:12Z
+Host: whois.cnnic.cn
+Query: zx5v7d4v2k50l3pq.cn
+
+no matching record.
diff --git a/testdata/responses/whois.denic.de/denic.de.mime b/testdata/responses/whois.denic.de/denic.de.mime
new file mode 100644
index 0000000..cb639d6
--- /dev/null
+++ b/testdata/responses/whois.denic.de/denic.de.mime
@@ -0,0 +1,33 @@
+MIME-Version: 1.0
+Content-Checksum: c4389a4b36c015dcb053fcda04955e321975d067
+Content-Length: 1153
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.denic.de
+Query: denic.de
+
+% Restricted rights.
+% 
+% Terms and Conditions of Use
+% 
+% The above data may only be used within the scope of technical or
+% administrative necessities of Internet operation or to remedy legal
+% problems.
+% The use for other purposes, in particular for advertising, is not permitted.
+% 
+% The DENIC whois service on port 43 doesn't disclose any information concerning
+% the domain holder, general request and abuse contact.
+% This information can be obtained through use of our web-based whois service
+% available at the DENIC website:
+% http://www.denic.de/en/domains/whois-service/web-whois.html
+% 
+% 
+
+Domain: denic.de
+Nserver: ns1.denic.de 2001:668:1f:11:0:0:0:106 77.67.63.106
+Nserver: ns2.denic.de 2a02:568:0:2:0:0:0:54 81.91.164.6
+Nserver: ns3.denic.de 195.243.137.27 2003:8:14:0:0:0:0:106
+Nserver: ns4.denic.net
+Dnskey: 257 3 8 AwEAAb/xrM2MD+xm84YNYby6TxkMaC6PtzF2bB9WBB7ux7iqzhViob4GKvQ6L7CkXjyAxfKbTzrdvXoAPpsAPW4pkThReDAVp3QxvUKrkBM8/uWRF3wpaUoPsAHm1dbcL9aiW3lqlLMZjDEwDfU6lxLcPg9d14fq4dc44FvPx6aYcymkgJoYvR6P1wECpxqlEAR2K1cvMtqCqvVESBQV/EUtWiALNuwR2PbhwtBWJd+e8BdFI7OLkit4uYYux6Yu35uyGQ==
+Status: connect
+Changed: 2020-05-11T15:36:21+02:00
diff --git a/testdata/responses/whois.denic.de/dns.de.mime b/testdata/responses/whois.denic.de/dns.de.mime
new file mode 100644
index 0000000..26faa7e
--- /dev/null
+++ b/testdata/responses/whois.denic.de/dns.de.mime
@@ -0,0 +1,77 @@
+MIME-Version: 1.0
+Content-Checksum: da7c6753a10eaf6c9778d14fcaee8c8bfac56b41
+Content-Length: 2461
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T11:15:50Z
+Host: whois.denic.de
+Query: dns.de
+
+% Copyright (c) 2010 by DENIC
+% Version: 2.0
+% 
+% Restricted rights.
+% 
+% Terms and Conditions of Use
+% 
+% The data in this record is provided by DENIC for informational purposes only.
+% DENIC does not guarantee its accuracy and cannot, under any circumstances,
+% be held liable in case the stored information would prove to be wrong,
+% incomplete or not accurate in any sense.
+% 
+% All the domain data that is visible in the whois service is protected by law.
+% It is not permitted to use it for any purpose other than technical or
+% administrative requirements associated with the operation of the Internet.
+% It is explicitly forbidden to extract, copy and/or use or re-utilise in any
+% form and by any means (electronically or not) the whole or a quantitatively
+% or qualitatively substantial part of the contents of the whois database
+% without prior and explicit written permission by DENIC.
+% It is prohibited, in particular, to use it for transmission of unsolicited
+% and/or commercial and/or advertising by phone, fax, e-mail or for any similar
+% purposes.
+% 
+% By maintaining the connection you assure that you have a legitimate interest
+% in the data and that you will only use it for the stated purposes. You are
+% aware that DENIC maintains the right to initiate legal proceedings against
+% you in the event of any breach of this assurance and to bar you from using
+% its whois service.
+% 
+% The DENIC whois service on port 43 never discloses any information concerning
+% the domain holder/administrative contact. Information concerning the domain
+% holder/administrative contact can be obtained through use of our web-based
+% whois service available at the DENIC website:
+% http://www.denic.de/en/domains/whois-service/web-whois.html
+% 
+
+Domain: dns.de
+Nserver: ns0.dnsmadeeasy.com
+Nserver: ns1.dnsmadeeasy.com
+Nserver: ns2.dnsmadeeasy.com
+Nserver: ns3.dnsmadeeasy.com
+Status: connect
+Changed: 2007-01-15T16:57:05+01:00
+
+[Tech-C]
+Type: PERSON
+Name: Thomas Seel
+Organisation: digital nervous systems GmbH
+Address: Krugstr. 12
+PostalCode: 90419
+City: Nuernberg
+CountryCode: DE
+Phone: +49.9115170950
+Fax: +49.91151709511
+Email: rechnungsstelle@dns.de
+Changed: 2010-02-03T19:53:33+01:00
+
+[Zone-C]
+Type: PERSON
+Name: Thomas Seel
+Organisation: digital nervous systems GmbH
+Address: Krugstr. 12
+PostalCode: 90419
+City: Nuernberg
+CountryCode: DE
+Phone: +49.9115170950
+Fax: +49.91151709511
+Email: rechnungsstelle@dns.de
+Changed: 2010-02-03T19:53:33+01:00
diff --git a/testdata/responses/whois.denic.de/google.de.mime b/testdata/responses/whois.denic.de/google.de.mime
new file mode 100644
index 0000000..a191c61
--- /dev/null
+++ b/testdata/responses/whois.denic.de/google.de.mime
@@ -0,0 +1,32 @@
+MIME-Version: 1.0
+Content-Checksum: b96dff6ab2abd2613ff2b4dbd2f9af2a7dde5fe7
+Content-Length: 771
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.denic.de
+Query: google.de
+
+% Restricted rights.
+% 
+% Terms and Conditions of Use
+% 
+% The above data may only be used within the scope of technical or
+% administrative necessities of Internet operation or to remedy legal
+% problems.
+% The use for other purposes, in particular for advertising, is not permitted.
+% 
+% The DENIC whois service on port 43 doesn't disclose any information concerning
+% the domain holder, general request and abuse contact.
+% This information can be obtained through use of our web-based whois service
+% available at the DENIC website:
+% http://www.denic.de/en/domains/whois-service/web-whois.html
+% 
+% 
+
+Domain: google.de
+Nserver: ns1.google.com
+Nserver: ns2.google.com
+Nserver: ns3.google.com
+Nserver: ns4.google.com
+Status: connect
+Changed: 2018-03-12T21:44:25+01:00
diff --git a/testdata/responses/whois.denic.de/nic.de.mime b/testdata/responses/whois.denic.de/nic.de.mime
new file mode 100644
index 0000000..96fdc92
--- /dev/null
+++ b/testdata/responses/whois.denic.de/nic.de.mime
@@ -0,0 +1,33 @@
+MIME-Version: 1.0
+Content-Checksum: 681f264af8281039c6f478d1b442cf03e87eae28
+Content-Length: 1042
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.denic.de
+Query: nic.de
+
+% Restricted rights.
+% 
+% Terms and Conditions of Use
+% 
+% The above data may only be used within the scope of technical or
+% administrative necessities of Internet operation or to remedy legal
+% problems.
+% The use for other purposes, in particular for advertising, is not permitted.
+% 
+% The DENIC whois service on port 43 doesn't disclose any information concerning
+% the domain holder, general request and abuse contact.
+% This information can be obtained through use of our web-based whois service
+% available at the DENIC website:
+% http://www.denic.de/en/domains/whois-service/web-whois.html
+% 
+% 
+
+Domain: nic.de
+Nserver: ns1.denic.de
+Nserver: ns2.denic.de
+Nserver: ns3.denic.de
+Nserver: ns4.denic.net
+Dnskey: 257 3 8 AwEAAb/xrM2MD+xm84YNYby6TxkMaC6PtzF2bB9WBB7ux7iqzhViob4GKvQ6L7CkXjyAxfKbTzrdvXoAPpsAPW4pkThReDAVp3QxvUKrkBM8/uWRF3wpaUoPsAHm1dbcL9aiW3lqlLMZjDEwDfU6lxLcPg9d14fq4dc44FvPx6aYcymkgJoYvR6P1wECpxqlEAR2K1cvMtqCqvVESBQV/EUtWiALNuwR2PbhwtBWJd+e8BdFI7OLkit4uYYux6Yu35uyGQ==
+Status: connect
+Changed: 2020-05-28T14:29:55+02:00
diff --git a/testdata/responses/whois.denic.de/whois.de.mime b/testdata/responses/whois.denic.de/whois.de.mime
new file mode 100644
index 0000000..c0d693b
--- /dev/null
+++ b/testdata/responses/whois.denic.de/whois.de.mime
@@ -0,0 +1,75 @@
+MIME-Version: 1.0
+Content-Checksum: 16d6b7fe4ffb34060d4e277586ac838e6937de98
+Content-Length: 2375
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T11:15:39Z
+Host: whois.denic.de
+Query: whois.de
+
+% Copyright (c) 2010 by DENIC
+% Version: 2.0
+% 
+% Restricted rights.
+% 
+% Terms and Conditions of Use
+% 
+% The data in this record is provided by DENIC for informational purposes only.
+% DENIC does not guarantee its accuracy and cannot, under any circumstances,
+% be held liable in case the stored information would prove to be wrong,
+% incomplete or not accurate in any sense.
+% 
+% All the domain data that is visible in the whois service is protected by law.
+% It is not permitted to use it for any purpose other than technical or
+% administrative requirements associated with the operation of the Internet.
+% It is explicitly forbidden to extract, copy and/or use or re-utilise in any
+% form and by any means (electronically or not) the whole or a quantitatively
+% or qualitatively substantial part of the contents of the whois database
+% without prior and explicit written permission by DENIC.
+% It is prohibited, in particular, to use it for transmission of unsolicited
+% and/or commercial and/or advertising by phone, fax, e-mail or for any similar
+% purposes.
+% 
+% By maintaining the connection you assure that you have a legitimate interest
+% in the data and that you will only use it for the stated purposes. You are
+% aware that DENIC maintains the right to initiate legal proceedings against
+% you in the event of any breach of this assurance and to bar you from using
+% its whois service.
+% 
+% The DENIC whois service on port 43 never discloses any information concerning
+% the domain holder/administrative contact. Information concerning the domain
+% holder/administrative contact can be obtained through use of our web-based
+% whois service available at the DENIC website:
+% http://www.denic.de/en/domains/whois-service/web-whois.html
+% 
+
+Domain: whois.de
+Nserver: dan.ns.cloudflare.com
+Nserver: gina.ns.cloudflare.com
+Status: connect
+Changed: 2012-07-03T09:26:31+02:00
+
+[Tech-C]
+Type: ROLE
+Name: IT Service
+Organisation: EuroDNS SA
+Address: 2 rue Leon Laval
+PostalCode: L-3372
+City: Leudelange
+CountryCode: LU
+Phone: +352 26372525
+Fax: +352 26372537
+Email: itservice@eurodns.com
+Changed: 2009-05-19T10:45:13+02:00
+
+[Zone-C]
+Type: PERSON
+Name: BUCK Xavier
+Organisation: EuroDNS S.A.
+Address: 2, rue Leon Laval
+PostalCode: L-3372
+City: Leudelange
+CountryCode: LU
+Phone: +352.2637251
+Fax: +352.26372537
+Email: xbuck@eurodns.com
+Changed: 2010-06-11T10:48:25+02:00
diff --git a/testdata/responses/whois.denic.de/www.de.mime b/testdata/responses/whois.denic.de/www.de.mime
new file mode 100644
index 0000000..a55d765
--- /dev/null
+++ b/testdata/responses/whois.denic.de/www.de.mime
@@ -0,0 +1,75 @@
+MIME-Version: 1.0
+Content-Checksum: 468a756637bc67b4f88d66a3772ee1abbccc0f2b
+Content-Length: 2431
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T11:15:41Z
+Host: whois.denic.de
+Query: www.de
+
+% Copyright (c) 2010 by DENIC
+% Version: 2.0
+% 
+% Restricted rights.
+% 
+% Terms and Conditions of Use
+% 
+% The data in this record is provided by DENIC for informational purposes only.
+% DENIC does not guarantee its accuracy and cannot, under any circumstances,
+% be held liable in case the stored information would prove to be wrong,
+% incomplete or not accurate in any sense.
+% 
+% All the domain data that is visible in the whois service is protected by law.
+% It is not permitted to use it for any purpose other than technical or
+% administrative requirements associated with the operation of the Internet.
+% It is explicitly forbidden to extract, copy and/or use or re-utilise in any
+% form and by any means (electronically or not) the whole or a quantitatively
+% or qualitatively substantial part of the contents of the whois database
+% without prior and explicit written permission by DENIC.
+% It is prohibited, in particular, to use it for transmission of unsolicited
+% and/or commercial and/or advertising by phone, fax, e-mail or for any similar
+% purposes.
+% 
+% By maintaining the connection you assure that you have a legitimate interest
+% in the data and that you will only use it for the stated purposes. You are
+% aware that DENIC maintains the right to initiate legal proceedings against
+% you in the event of any breach of this assurance and to bar you from using
+% its whois service.
+% 
+% The DENIC whois service on port 43 never discloses any information concerning
+% the domain holder/administrative contact. Information concerning the domain
+% holder/administrative contact can be obtained through use of our web-based
+% whois service available at the DENIC website:
+% http://www.denic.de/en/domains/whois-service/web-whois.html
+% 
+
+Domain: www.de
+Nserver: ns1.above.com
+Nserver: ns2.above.com
+Status: connect
+Changed: 2014-09-19T15:31:39+02:00
+
+[Tech-C]
+Type: PERSON
+Name: visions4tomorrow Hostmaster
+Organisation: visions4tomorrow marketing GmbH
+Address: Joesserstrasse 12
+PostalCode: 8430
+City: Tillmitsch
+CountryCode: AT
+Phone: +43.3452.74606
+Fax: +43.3452.7460620
+Email: domain@domain.at
+Changed: 2013-06-20T14:16:58+02:00
+
+[Zone-C]
+Type: PERSON
+Name: visions4tomorrow Hostmaster
+Organisation: visions4tomorrow marketing GmbH
+Address: Joesserstrasse 12
+PostalCode: 8430
+City: Tillmitsch
+CountryCode: AT
+Phone: +43.3452.74606
+Fax: +43.3452.7460620
+Email: domain@domain.at
+Changed: 2013-06-20T14:16:58+02:00
diff --git a/testdata/responses/whois.denic.de/zx5v7d4v2k50l3pq.de.mime b/testdata/responses/whois.denic.de/zx5v7d4v2k50l3pq.de.mime
new file mode 100644
index 0000000..7b4010b
--- /dev/null
+++ b/testdata/responses/whois.denic.de/zx5v7d4v2k50l3pq.de.mime
@@ -0,0 +1,10 @@
+MIME-Version: 1.0
+Content-Checksum: cecb9c10e41e5dccfed453fab42664270d096cdf
+Content-Length: 41
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:24Z
+Host: whois.denic.de
+Query: zx5v7d4v2k50l3pq.de
+
+Domain: zx5v7d4v2k50l3pq.de
+Status: free
diff --git a/testdata/responses/whois.dns.be/dns.be.mime b/testdata/responses/whois.dns.be/dns.be.mime
new file mode 100644
index 0000000..3e451fa
--- /dev/null
+++ b/testdata/responses/whois.dns.be/dns.be.mime
@@ -0,0 +1,85 @@
+MIME-Version: 1.0
+Content-Checksum: 5224bf7c9c9059190e84d56d73a894be16ce7cf7
+Content-Length: 3197
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:05Z
+Host: whois.dns.be
+Query: dns.be
+
+% .be Whois Server 6.1
+%
+% The WHOIS service offered by DNS Belgium and the access to the records in the DNS Belgium
+% WHOIS database are provided for information purposes only. It allows
+% persons to check whether a specific domain name is still available or not
+% and to obtain information related to the registration records of
+% existing domain names.
+%
+% DNS Belgium cannot, under any circumstances, be held liable where the stored
+% information would prove to be incomplete or inaccurate in any sense.
+%
+% By submitting a query you agree not to use the information made available
+% to:
+%   - allow, enable or otherwise support the transmission of unsolicited,
+%     commercial advertising or other solicitations whether via email or otherwise;
+%   - target advertising in any possible way;
+%   - to cause nuisance in any possible way to the domain name holders by sending 
+%     messages to them (whether by automated, electronic processes capable of
+%     enabling high volumes or other possible means).
+% 
+% Without prejudice to the above, it is explicitly forbidden to extract, copy
+% and/or use or re-utilise in any form and by any means (electronically or
+% not) the whole or a quantitatively or qualitatively substantial part
+% of the contents of the WHOIS database without prior and explicit permission
+% by DNS Belgium, nor in any attempt thereof, to apply automated, electronic
+% processes to DNS Belgium (or its systems).
+%
+% You agree that any reproduction and/or transmission of data for commercial
+% purposes will always be considered as the extraction of a substantial
+% part of the content of the WHOIS database.
+%
+% By submitting the query you agree to abide by this policy and accept that
+% DNS Belgium can take measures to limit the use of its whois services in order to
+% protect the privacy of its registrants or the integrity of the database.
+%
+
+Domain:	dns.be
+Status:	NOT AVAILABLE
+Registered:	Mon Jan 1 1996
+
+Registrant:
+	Not shown, please visit www.dns.be for webbased whois.
+
+Registrar Technical Contacts:
+	Name:	DNS BE Technical Staff
+	Organisation:	DNS Belgium vzw
+	Language:	en
+	Phone:	+32.16284970
+	Fax:	+32.16284971
+	Email:	tech@dns.be
+
+
+Registrar:
+	Name:	 DNS BE vzw/asbl
+	Website: http://www.dns.be
+
+Nameservers:
+	c.ns.dns.be (194.0.43.1)
+	c.ns.dns.be (2001:678:68:0:0:0:0:1)
+	d.ns.dns.be (194.0.44.1)
+	a.ns.dns.be (194.0.6.1)
+	x.ns.dns.be (194.0.1.10)
+	x.ns.dns.be (2001:678:4:0:0:0:0:a)
+	a.ns.dns.be (2001:678:9:0:0:0:0:1)
+	b.ns.dns.be (194.0.37.1)
+	b.ns.dns.be (2001:678:64:0:0:0:0:1)
+	d.ns.dns.be (2001:678:6c:0:0:0:0:1)
+	y.ns.dns.be (2001:dcd:7:0:0:0:0:8)
+	y.ns.dns.be (120.29.253.8)
+
+Keys:
+	keyTag:64156 flags:KSK protocol:3 algorithm:RSA-SHA256 pubKey:AwEAAcUMaeEPrigxGE1niu6Z3jZFL4DmPWYHAXpmOP1tTQhx7y+6gyhxe3Od3qQgnWwSZeEkMdLkaPtnu93Etvom1Sjum859LjSg/z+AomNT//xMyTe23RPINOV7dWuq35Z5v3LeTZ1q4cgtexpNk++iHW6weATPmex/J7KNbhbmhWrOrv7Z6HG5CdQOLlF+ezUIr+dBHzdwj7ZD/gOTV/SI0etjf8MO6tLH/FHT919SMdZ8pfgOD3rMnrVRKT8/N7kd9p6j9FSxDMdcvxjx9U9czuYiM4tiJYvnFwgsy+RlTD4S6qVj3i6xKztzyhkEE1oPbglWjMDF3m4El8UsvIWW1Jk=
+
+Flags:
+	clientTransferProhibited
+
+Please visit www.dns.be for more info.
diff --git a/testdata/responses/whois.dns.be/google.be.mime b/testdata/responses/whois.dns.be/google.be.mime
new file mode 100644
index 0000000..4ef6c4a
--- /dev/null
+++ b/testdata/responses/whois.dns.be/google.be.mime
@@ -0,0 +1,75 @@
+MIME-Version: 1.0
+Content-Checksum: b5af80db1880b656858cf6be353f0c506974da72
+Content-Length: 2458
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:07Z
+Host: whois.dns.be
+Query: google.be
+
+% .be Whois Server 6.1
+%
+% The WHOIS service offered by DNS Belgium and the access to the records in the DNS Belgium
+% WHOIS database are provided for information purposes only. It allows
+% persons to check whether a specific domain name is still available or not
+% and to obtain information related to the registration records of
+% existing domain names.
+%
+% DNS Belgium cannot, under any circumstances, be held liable where the stored
+% information would prove to be incomplete or inaccurate in any sense.
+%
+% By submitting a query you agree not to use the information made available
+% to:
+%   - allow, enable or otherwise support the transmission of unsolicited,
+%     commercial advertising or other solicitations whether via email or otherwise;
+%   - target advertising in any possible way;
+%   - to cause nuisance in any possible way to the domain name holders by sending 
+%     messages to them (whether by automated, electronic processes capable of
+%     enabling high volumes or other possible means).
+% 
+% Without prejudice to the above, it is explicitly forbidden to extract, copy
+% and/or use or re-utilise in any form and by any means (electronically or
+% not) the whole or a quantitatively or qualitatively substantial part
+% of the contents of the WHOIS database without prior and explicit permission
+% by DNS Belgium, nor in any attempt thereof, to apply automated, electronic
+% processes to DNS Belgium (or its systems).
+%
+% You agree that any reproduction and/or transmission of data for commercial
+% purposes will always be considered as the extraction of a substantial
+% part of the content of the WHOIS database.
+%
+% By submitting the query you agree to abide by this policy and accept that
+% DNS Belgium can take measures to limit the use of its whois services in order to
+% protect the privacy of its registrants or the integrity of the database.
+%
+
+Domain:	google.be
+Status:	NOT AVAILABLE
+Registered:	Tue Dec 12 2000
+
+Registrant:
+	Not shown, please visit www.dns.be for webbased whois.
+
+Registrar Technical Contacts:
+	Name:	MarkMonitor Inc.
+	Organisation:	MarkMonitor Inc.
+	Language:	en
+	Phone:	+1.2083895740
+	Fax:	+1.2083895771
+	Email:	ccops@markmonitor.com
+
+
+Registrar:
+	Name:	 MarkMonitor Inc.
+	Website: http://www.markmonitor.com
+
+Nameservers:
+	ns4.google.com
+	ns3.google.com
+	ns1.google.com
+	ns2.google.com
+
+Keys:
+
+Flags:
+
+Please visit www.dns.be for more info.
diff --git a/testdata/responses/whois.dns.be/nic.be.mime b/testdata/responses/whois.dns.be/nic.be.mime
new file mode 100644
index 0000000..ce204ed
--- /dev/null
+++ b/testdata/responses/whois.dns.be/nic.be.mime
@@ -0,0 +1,74 @@
+MIME-Version: 1.0
+Content-Checksum: 1d4d4d3e2589d5cb617adc3ec5f390de8dbcffe8
+Content-Length: 2454
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:06Z
+Host: whois.dns.be
+Query: nic.be
+
+% .be Whois Server 6.1
+%
+% The WHOIS service offered by DNS Belgium and the access to the records in the DNS Belgium
+% WHOIS database are provided for information purposes only. It allows
+% persons to check whether a specific domain name is still available or not
+% and to obtain information related to the registration records of
+% existing domain names.
+%
+% DNS Belgium cannot, under any circumstances, be held liable where the stored
+% information would prove to be incomplete or inaccurate in any sense.
+%
+% By submitting a query you agree not to use the information made available
+% to:
+%   - allow, enable or otherwise support the transmission of unsolicited,
+%     commercial advertising or other solicitations whether via email or otherwise;
+%   - target advertising in any possible way;
+%   - to cause nuisance in any possible way to the domain name holders by sending 
+%     messages to them (whether by automated, electronic processes capable of
+%     enabling high volumes or other possible means).
+% 
+% Without prejudice to the above, it is explicitly forbidden to extract, copy
+% and/or use or re-utilise in any form and by any means (electronically or
+% not) the whole or a quantitatively or qualitatively substantial part
+% of the contents of the WHOIS database without prior and explicit permission
+% by DNS Belgium, nor in any attempt thereof, to apply automated, electronic
+% processes to DNS Belgium (or its systems).
+%
+% You agree that any reproduction and/or transmission of data for commercial
+% purposes will always be considered as the extraction of a substantial
+% part of the content of the WHOIS database.
+%
+% By submitting the query you agree to abide by this policy and accept that
+% DNS Belgium can take measures to limit the use of its whois services in order to
+% protect the privacy of its registrants or the integrity of the database.
+%
+
+Domain:	nic.be
+Status:	NOT AVAILABLE
+Registered:	Wed Apr 1 1998
+
+Registrant:
+	Not shown, please visit www.dns.be for webbased whois.
+
+Registrar Technical Contacts:
+	Name:	Telenet Hostbasket
+	Organisation:	Telenet NV Hostbasket
+	Language:	nl
+	Phone:	+32.93269090
+	Fax:	+32.93269098
+	Email:	support@hostbasket.com
+
+
+Registrar:
+	Name:	 Telenet NV
+	Website: http://www.hostbasket.com
+
+Nameservers:
+	ns.fr.hostbasket.com
+	ns.nl.hostbasket.com
+	ns.be.hostbasket.com
+
+Keys:
+
+Flags:
+
+Please visit www.dns.be for more info.
diff --git a/testdata/responses/whois.dns.be/whois.be.mime b/testdata/responses/whois.dns.be/whois.be.mime
new file mode 100644
index 0000000..665089f
--- /dev/null
+++ b/testdata/responses/whois.dns.be/whois.be.mime
@@ -0,0 +1,81 @@
+MIME-Version: 1.0
+Content-Checksum: 44566103fffd31f005f0650b6e2b6cb62f16db63
+Content-Length: 2653
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:06Z
+Host: whois.dns.be
+Query: whois.be
+
+% .be Whois Server 6.1
+%
+% The WHOIS service offered by DNS Belgium and the access to the records in the DNS Belgium
+% WHOIS database are provided for information purposes only. It allows
+% persons to check whether a specific domain name is still available or not
+% and to obtain information related to the registration records of
+% existing domain names.
+%
+% DNS Belgium cannot, under any circumstances, be held liable where the stored
+% information would prove to be incomplete or inaccurate in any sense.
+%
+% By submitting a query you agree not to use the information made available
+% to:
+%   - allow, enable or otherwise support the transmission of unsolicited,
+%     commercial advertising or other solicitations whether via email or otherwise;
+%   - target advertising in any possible way;
+%   - to cause nuisance in any possible way to the domain name holders by sending 
+%     messages to them (whether by automated, electronic processes capable of
+%     enabling high volumes or other possible means).
+% 
+% Without prejudice to the above, it is explicitly forbidden to extract, copy
+% and/or use or re-utilise in any form and by any means (electronically or
+% not) the whole or a quantitatively or qualitatively substantial part
+% of the contents of the WHOIS database without prior and explicit permission
+% by DNS Belgium, nor in any attempt thereof, to apply automated, electronic
+% processes to DNS Belgium (or its systems).
+%
+% You agree that any reproduction and/or transmission of data for commercial
+% purposes will always be considered as the extraction of a substantial
+% part of the content of the WHOIS database.
+%
+% By submitting the query you agree to abide by this policy and accept that
+% DNS Belgium can take measures to limit the use of its whois services in order to
+% protect the privacy of its registrants or the integrity of the database.
+%
+
+Domain:	whois.be
+Status:	NOT AVAILABLE
+Registered:	Tue Dec 12 2000
+
+Registrant:
+	Not shown, please visit www.dns.be for webbased whois.
+
+Registrar Technical Contacts:
+	Name:	InterNLnet, Accounts Payable
+	Organisation:	Totaalnet Internet Works BV
+	Language:	nl
+	Phone:	+31.247070707
+	Fax:	+31.263844900
+	Email:	tech-adm@internl.net
+
+	Name:	afd. Sales Totaalnet Internet Services
+	Organisation:	Totaalnet Internet Services BV
+	Language:	nl
+	Phone:	+31.263844944
+	Fax:	+31.263844900
+	Email:	sales@totaalnet.nl
+
+
+Registrar:
+	Name:	 Totaalnet Internet Services BV
+	Website: http://www.tiw.be
+
+Nameservers:
+	ns.totaal.net
+	ns.totaalnet.com
+	ns.totaalnet.org
+
+Keys:
+
+Flags:
+
+Please visit www.dns.be for more info.
diff --git a/testdata/responses/whois.dns.be/www.be.mime b/testdata/responses/whois.dns.be/www.be.mime
new file mode 100644
index 0000000..d7f063c
--- /dev/null
+++ b/testdata/responses/whois.dns.be/www.be.mime
@@ -0,0 +1,67 @@
+MIME-Version: 1.0
+Content-Checksum: 3d9f014f978ba0dea44c43f7410bbe4825dc0a55
+Content-Length: 2285
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:06Z
+Host: whois.dns.be
+Query: www.be
+
+% .be Whois Server 6.1
+%
+% The WHOIS service offered by DNS Belgium and the access to the records in the DNS Belgium
+% WHOIS database are provided for information purposes only. It allows
+% persons to check whether a specific domain name is still available or not
+% and to obtain information related to the registration records of
+% existing domain names.
+%
+% DNS Belgium cannot, under any circumstances, be held liable where the stored
+% information would prove to be incomplete or inaccurate in any sense.
+%
+% By submitting a query you agree not to use the information made available
+% to:
+%   - allow, enable or otherwise support the transmission of unsolicited,
+%     commercial advertising or other solicitations whether via email or otherwise;
+%   - target advertising in any possible way;
+%   - to cause nuisance in any possible way to the domain name holders by sending 
+%     messages to them (whether by automated, electronic processes capable of
+%     enabling high volumes or other possible means).
+% 
+% Without prejudice to the above, it is explicitly forbidden to extract, copy
+% and/or use or re-utilise in any form and by any means (electronically or
+% not) the whole or a quantitatively or qualitatively substantial part
+% of the contents of the WHOIS database without prior and explicit permission
+% by DNS Belgium, nor in any attempt thereof, to apply automated, electronic
+% processes to DNS Belgium (or its systems).
+%
+% You agree that any reproduction and/or transmission of data for commercial
+% purposes will always be considered as the extraction of a substantial
+% part of the content of the WHOIS database.
+%
+% By submitting the query you agree to abide by this policy and accept that
+% DNS Belgium can take measures to limit the use of its whois services in order to
+% protect the privacy of its registrants or the integrity of the database.
+%
+
+Domain:	www.be
+Status:	NOT AVAILABLE
+Registered:	Tue Dec 12 2000
+
+Registrant:
+	Not shown, please visit www.dns.be for webbased whois.
+
+Registrar Technical Contacts:
+
+Registrar:
+	Name:	 NameWeb
+	Website: http://www.nameweb.biz
+
+Nameservers:
+	ns1.sunhost.be
+	ns2.sunhost.be
+
+Keys:
+
+Flags:
+	clientTransferProhibited
+
+Please visit www.dns.be for more info.
diff --git a/testdata/responses/whois.dns.be/zx5v7d4v2k50l3pq.be.mime b/testdata/responses/whois.dns.be/zx5v7d4v2k50l3pq.be.mime
new file mode 100644
index 0000000..250dd97
--- /dev/null
+++ b/testdata/responses/whois.dns.be/zx5v7d4v2k50l3pq.be.mime
@@ -0,0 +1,47 @@
+MIME-Version: 1.0
+Content-Checksum: 635a51e49ea8cad01ed2e7110f7e0c02c166bff3
+Content-Length: 1959
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:38:07Z
+Host: whois.dns.be
+Query: zx5v7d4v2k50l3pq.be
+
+% .be Whois Server 6.1
+%
+% The WHOIS service offered by DNS Belgium and the access to the records in the DNS Belgium
+% WHOIS database are provided for information purposes only. It allows
+% persons to check whether a specific domain name is still available or not
+% and to obtain information related to the registration records of
+% existing domain names.
+%
+% DNS Belgium cannot, under any circumstances, be held liable where the stored
+% information would prove to be incomplete or inaccurate in any sense.
+%
+% By submitting a query you agree not to use the information made available
+% to:
+%   - allow, enable or otherwise support the transmission of unsolicited,
+%     commercial advertising or other solicitations whether via email or otherwise;
+%   - target advertising in any possible way;
+%   - to cause nuisance in any possible way to the domain name holders by sending 
+%     messages to them (whether by automated, electronic processes capable of
+%     enabling high volumes or other possible means).
+% 
+% Without prejudice to the above, it is explicitly forbidden to extract, copy
+% and/or use or re-utilise in any form and by any means (electronically or
+% not) the whole or a quantitatively or qualitatively substantial part
+% of the contents of the WHOIS database without prior and explicit permission
+% by DNS Belgium, nor in any attempt thereof, to apply automated, electronic
+% processes to DNS Belgium (or its systems).
+%
+% You agree that any reproduction and/or transmission of data for commercial
+% purposes will always be considered as the extraction of a substantial
+% part of the content of the WHOIS database.
+%
+% By submitting the query you agree to abide by this policy and accept that
+% DNS Belgium can take measures to limit the use of its whois services in order to
+% protect the privacy of its registrants or the integrity of the database.
+%
+
+Domain:	zx5v7d4v2k50l3pq.be
+Status:	AVAILABLE
+
diff --git a/testdata/responses/whois.fi/google.fi.mime b/testdata/responses/whois.fi/google.fi.mime
new file mode 100644
index 0000000..2c5ea2f
--- /dev/null
+++ b/testdata/responses/whois.fi/google.fi.mime
@@ -0,0 +1,52 @@
+MIME-Version: 1.0
+Content-Checksum: 7c9ec848a37d56204652c3f6fb6c8ca504376937
+Content-Length: 1114
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2018-07-14T17:54:54Z
+Host: whois.fi
+Query: google.fi
+
+
+domain.............: google.fi
+status.............: Registered
+created............: 30.6.2006 00:00:00
+expires............: 4.7.2019 10:15:55
+available..........: 4.8.2019 10:15:55
+modified...........: 2.6.2018
+holder transfer....: 20.10.2016
+RegistryLock.......: no
+
+Nameservers
+
+nserver............: ns3.google.com [OK]
+nserver............: ns4.google.com [OK]
+nserver............: ns1.google.com [OK]
+nserver............: ns2.google.com [OK]
+dnssec.............: unsigned delegation
+
+Holder
+
+name...............: Google Inc.
+register number....: 3582691
+address............: 1600 Amphitheatre Parkway
+address............: 94043
+address............: Mountain View
+country............: United States of America
+phone..............: +1.6502530000
+holder email.......: 
+
+Registrar
+
+registrar..........: MarkMonitor Inc.
+www................: www.markmonitor.com
+
+Tech
+
+name...............: Google Inc.
+email..............: ccops@markmonitor.com
+
+>>> Last update of WHOIS database: 14.7.2018 20:45:14 (EET) <<<
+
+
+Copyright (c) Finnish Communications Regulatory Authority
+
diff --git a/testdata/responses/whois.fi/nic.fi.mime b/testdata/responses/whois.fi/nic.fi.mime
new file mode 100644
index 0000000..921b9de
--- /dev/null
+++ b/testdata/responses/whois.fi/nic.fi.mime
@@ -0,0 +1,46 @@
+MIME-Version: 1.0
+Content-Checksum: 27bae881cb510698a6dfb3e7daab8af5dd7b35f4
+Content-Length: 944
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2018-07-14T17:54:54Z
+Host: whois.fi
+Query: nic.fi
+
+
+domain.............: nic.fi
+status.............: Registered
+created............: 16.2.1999 00:00:00
+expires............: 2.3.2019 14:08:22
+available..........: 2.4.2019 14:08:22
+modified...........: 31.1.2018
+holder transfer....: 7.11.2014
+RegistryLock.......: no
+
+Nameservers
+
+nserver............: ns4.sci.fi [OK]
+nserver............: ns5.sci.fi [213.192.189.2] [OK]
+nserver............: ns6.sci.fi [195.74.0.59] [OK]
+dnssec.............: unsigned delegation
+
+Holder
+
+name...............: Elisa Oyj
+register number....: 0116510-6
+address............: PL 1
+address............: 00061
+address............: ELISA
+country............: Finland
+phone..............: 01026000
+holder email.......: 
+
+Registrar
+
+registrar..........: Ascio Technologies
+www................: www.ascio.com
+
+>>> Last update of WHOIS database: 14.7.2018 20:45:08 (EET) <<<
+
+
+Copyright (c) Finnish Communications Regulatory Authority
+
diff --git a/testdata/responses/whois.fi/zx5v7d4v2k50l3pq.fi.mime b/testdata/responses/whois.fi/zx5v7d4v2k50l3pq.fi.mime
new file mode 100644
index 0000000..8a5a796
--- /dev/null
+++ b/testdata/responses/whois.fi/zx5v7d4v2k50l3pq.fi.mime
@@ -0,0 +1,13 @@
+MIME-Version: 1.0
+Content-Checksum: 39134f0187067ae18c318e24d5a53801e43374da
+Content-Length: 83
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2018-07-14T17:54:54Z
+Host: whois.fi
+Query: zx5v7d4v2k50l3pq.fi
+
+
+Domain not found
+
+Copyright (c) Finnish Communications Regulatory Authority
+
diff --git a/testdata/responses/whois.iana.org/fi.mime b/testdata/responses/whois.iana.org/fi.mime
new file mode 100644
index 0000000..6025657
--- /dev/null
+++ b/testdata/responses/whois.iana.org/fi.mime
@@ -0,0 +1,59 @@
+MIME-Version: 1.0
+Content-Checksum: 952570335dff1e4f1b72de4bc9dd47710d969fc8
+Content-Length: 1627
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2018-07-14T17:54:53Z
+Host: whois.iana.org
+Query: fi
+
+% IANA WHOIS server
+% for more information on IANA, visit http://www.iana.org
+% This query returned 1 object
+
+domain:       FI
+
+organisation: Finnish Communications Regulatory Authority
+address:      PO Box 313
+address:      Helsinki  FI-00181
+address:      Finland
+
+contact:      administrative
+name:         Domain Names
+organisation: Finnish Communications Regulatory Authority
+address:      PO Box 313
+address:      Helsinki  FI-00181
+address:      Finland
+phone:        +358 295 390 200
+fax-no:       +358 295 390 270
+e-mail:       firootadmin@ficora.fi
+
+contact:      technical
+name:         Sami Salmensuo
+organisation: Finnish Communications Regulatory Authority
+address:      P.O. Box 313
+address:      Helsinki  FI-00181
+address:      Finland
+phone:        +358 295 390 200
+fax-no:       +358 295 390 270 
+e-mail:       firootadmin@ficora.fi
+
+nserver:      A.FI 193.166.4.1 2001:708:10:53:0:0:0:53
+nserver:      B.FI 194.146.106.26 2001:67c:1010:6:0:0:0:53
+nserver:      C.FI 194.0.11.104 2001:678:e:104:0:0:0:53
+nserver:      D.FI 2a01:3f0:0:302:0:0:0:53 77.72.229.253
+nserver:      E.FI 194.0.1.14 2001:678:4:0:0:0:0:e
+nserver:      F.FI 2a00:13f0:0:3:0:0:0:aaaa 87.239.127.198
+nserver:      G.FI 2001:500:14:6098:ad:0:0:1 204.61.216.98
+nserver:      H.FI 2001:678:a0:0:0:0:0:aaaa 87.239.120.11
+nserver:      I.FI 162.88.44.1 2600:2000:3008:0:0:0:0:1
+ds-rdata:     48592 8 2 8194468a0c3a0d49e2c9c038cffc79e7190401b454f3c15b12d2fb13de0d975b
+
+whois:        whois.fi
+
+status:       ACTIVE
+remarks:      Registration information: https://domain.fi
+
+created:      1986-12-17
+changed:      2017-04-26
+source:       IANA
+
diff --git a/testdata/responses/whois.iana.org/kr.mime b/testdata/responses/whois.iana.org/kr.mime
new file mode 100644
index 0000000..63d22d4
--- /dev/null
+++ b/testdata/responses/whois.iana.org/kr.mime
@@ -0,0 +1,53 @@
+MIME-Version: 1.0
+Content-Checksum: 87b84d3b257185a585396a75c88fa7ac1cea0b48
+Content-Length: 1445
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:24Z
+Host: whois.iana.org
+Query: kr
+
+% IANA WHOIS server
+% for more information on IANA, visit http://www.iana.org
+% This query returned 1 object
+
+domain:       KR
+
+organisation: Korea Internet & Security Agency (KISA)
+address:      9, Jinheung-gil, Naju-si, Jeollanam-do, 58324
+address:      Korea, Republic Of
+
+contact:      administrative
+name:         Kilnam Chon
+organisation: Korea Network Information Center (KRNIC)
+address:      9, Jinheung-gil, Naju-si, Jeollanam-do, 58324
+address:      Korea, Republic Of
+phone:        +82 10 8581 3514
+fax-no:       +82 61 820 2611
+e-mail:       chonkn@gmail.com
+
+contact:      technical
+name:         KRNIC Tech Team Manager
+organisation: Korea Internet & Security Agency (KISA)
+address:      9, Jinheung-gil, Naju-si, Jeollanam-do, 58324
+address:      Korea, Republic Of
+phone:        +82 61 820 1161
+fax-no:       +82 61 820 2611
+e-mail:       techc@kisa.or.kr
+
+nserver:      B.DNS.KR 210.101.60.1
+nserver:      C.DNS.KR 210.101.61.1
+nserver:      D.DNS.KR 2001:dcc:4:0:0:0:0:1 203.83.159.1
+nserver:      E.DNS.KR 2001:dcc:5:0:0:0:0:100 202.30.124.100
+nserver:      F.DNS.KR 2001:dcc:6:0:0:0:0:1 210.101.62.1
+nserver:      G.DNS.KR 2001:dc5:a:0:0:0:0:1 202.31.190.1
+ds-rdata:     61615 8 2 ED570AADC88713CE2775FB8AFFB2AD782D056EA21D0677E147F2FB7BF54404DA
+
+whois:        whois.kr
+
+status:       ACTIVE
+remarks:      Registration information: http://www.nic.or.kr/
+
+created:      1986-09-29
+changed:      2020-07-16
+source:       IANA
+
diff --git a/testdata/responses/whois.inregistry.net/dns.in.mime b/testdata/responses/whois.inregistry.net/dns.in.mime
new file mode 100644
index 0000000..9e7ee68
--- /dev/null
+++ b/testdata/responses/whois.inregistry.net/dns.in.mime
@@ -0,0 +1,93 @@
+MIME-Version: 1.0
+Content-Checksum: 85109fc1a860359510fa46d3d130d172d933bfb4
+Content-Length: 2839
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T11:15:44Z
+Host: whois.inregistry.net
+Query: dns.in
+
+Access to .IN WHOIS information is provided to assist persons in 
+determining the contents of a domain name registration record in the 
+.IN registry database. The data in this record is provided by 
+.IN Registry for informational purposes only, and .IN does not 
+guarantee its accuracy.  This service is intended only for query-based 
+access. You agree that you will use this data only for lawful purposes 
+and that, under no circumstances will you use this data to: (a) allow, 
+enable, or otherwise support the transmission by e-mail, telephone, or 
+facsimile of mass unsolicited, commercial advertising or solicitations 
+to entities other than the data recipient's own existing customers; or 
+(b) enable high volume, automated, electronic processes that send 
+queries or data to the systems of Registry Operator, a Registrar, or 
+Afilias except as reasonably necessary to register domain names or 
+modify existing registrations. All rights reserved. .IN reserves 
+the right to modify these terms at any time. By submitting this query, 
+you agree to abide by this policy. 
+
+Domain ID:D482567-AFIN
+Domain Name:DNS.IN
+Created On:16-Feb-2005 06:32:17 UTC
+Last Updated On:13-Apr-2014 18:20:59 UTC
+Expiration Date:16-Feb-2015 06:32:17 UTC
+Sponsoring Registrar:Webiq Domains Solutions Pvt. Ltd. (R131-AFIN)
+Status:CLIENT TRANSFER PROHIBITED
+Registrant ID:WIQ_28117124
+Registrant Name:Domain Manager
+Registrant Organization:India Portals
+Registrant Street1:16A, Narayan Dhruv Lane,
+Registrant Street2:Off Abdul Rehman Street
+Registrant Street3:
+Registrant City:Mumbai
+Registrant State/Province:Maharashtra
+Registrant Postal Code:400003
+Registrant Country:IN
+Registrant Phone:+91.9619628312
+Registrant Phone Ext.:
+Registrant FAX:
+Registrant FAX Ext.:
+Registrant Email:info@indiaportals.org
+Admin ID:WIQ_28117124
+Admin Name:Domain Manager
+Admin Organization:India Portals
+Admin Street1:16A, Narayan Dhruv Lane,
+Admin Street2:Off Abdul Rehman Street
+Admin Street3:
+Admin City:Mumbai
+Admin State/Province:Maharashtra
+Admin Postal Code:400003
+Admin Country:IN
+Admin Phone:+91.9619628312
+Admin Phone Ext.:
+Admin FAX:
+Admin FAX Ext.:
+Admin Email:info@indiaportals.org
+Tech ID:WIQ_28117124
+Tech Name:Domain Manager
+Tech Organization:India Portals
+Tech Street1:16A, Narayan Dhruv Lane,
+Tech Street2:Off Abdul Rehman Street
+Tech Street3:
+Tech City:Mumbai
+Tech State/Province:Maharashtra
+Tech Postal Code:400003
+Tech Country:IN
+Tech Phone:+91.9619628312
+Tech Phone Ext.:
+Tech FAX:
+Tech FAX Ext.:
+Tech Email:info@indiaportals.org
+Name Server:ORANGE.INDIAPORTALS.ORG
+Name Server:APPLE.INDIAPORTALS.ORG
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+
diff --git a/testdata/responses/whois.inregistry.net/google.in.mime b/testdata/responses/whois.inregistry.net/google.in.mime
new file mode 100644
index 0000000..51aab66
--- /dev/null
+++ b/testdata/responses/whois.inregistry.net/google.in.mime
@@ -0,0 +1,80 @@
+MIME-Version: 1.0
+Content-Checksum: 15812ada5863f86688cb77879f4c6fcd86021364
+Content-Length: 2808
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2015-04-29T01:31:43Z
+Host: whois.inregistry.net
+Query: google.in
+
+Access to .IN WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the .IN registry database. The data in this record is provided by .IN Registry for informational purposes only, and .IN does not guarantee its accuracy.  This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. .IN reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+Domain ID:D21089-AFIN
+Domain Name:GOOGLE.IN
+Created On:14-Feb-2005 20:35:14 UTC
+Last Updated On:13-Jan-2015 10:22:36 UTC
+Expiration Date:14-Feb-2016 20:35:14 UTC
+Sponsoring Registrar:Mark Monitor (R84-AFIN)
+Status:CLIENT DELETE PROHIBITED
+Status:CLIENT TRANSFER PROHIBITED
+Status:CLIENT UPDATE PROHIBITED
+Registrant ID:mmr-108695
+Registrant Name:Christina Chiou
+Registrant Organization:Google Inc.
+Registrant Street1:1600 Amphitheatre Parkway
+Registrant Street2:
+Registrant Street3:
+Registrant City:Mountain View
+Registrant State/Province:CA
+Registrant Postal Code:94043
+Registrant Country:US
+Registrant Phone:+1.6502530000
+Registrant Phone Ext.:
+Registrant FAX:+1.6502530001
+Registrant FAX Ext.:
+Registrant Email:dns-admin@google.com
+Admin ID:mmr-108695
+Admin Name:Christina Chiou
+Admin Organization:Google Inc.
+Admin Street1:1600 Amphitheatre Parkway
+Admin Street2:
+Admin Street3:
+Admin City:Mountain View
+Admin State/Province:CA
+Admin Postal Code:94043
+Admin Country:US
+Admin Phone:+1.6502530000
+Admin Phone Ext.:
+Admin FAX:+1.6502530001
+Admin FAX Ext.:
+Admin Email:dns-admin@google.com
+Tech ID:mmr-108695
+Tech Name:Christina Chiou
+Tech Organization:Google Inc.
+Tech Street1:1600 Amphitheatre Parkway
+Tech Street2:
+Tech Street3:
+Tech City:Mountain View
+Tech State/Province:CA
+Tech Postal Code:94043
+Tech Country:US
+Tech Phone:+1.6502530000
+Tech Phone Ext.:
+Tech FAX:+1.6502530001
+Tech FAX Ext.:
+Tech Email:dns-admin@google.com
+Name Server:NS1.GOOGLE.COM
+Name Server:NS2.GOOGLE.COM
+Name Server:NS3.GOOGLE.COM
+Name Server:NS4.GOOGLE.COM
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+
diff --git a/testdata/responses/whois.inregistry.net/nic.in.mime b/testdata/responses/whois.inregistry.net/nic.in.mime
new file mode 100644
index 0000000..5187ef2
--- /dev/null
+++ b/testdata/responses/whois.inregistry.net/nic.in.mime
@@ -0,0 +1,78 @@
+MIME-Version: 1.0
+Content-Checksum: 79272e1f18855433b252ac43c79e77a4a0cf151f
+Content-Length: 2610
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2015-04-29T01:31:44Z
+Host: whois.inregistry.net
+Query: nic.in
+
+Access to .IN WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the .IN registry database. The data in this record is provided by .IN Registry for informational purposes only, and .IN does not guarantee its accuracy.  This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. .IN reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+Domain ID:D12482-AFIN
+Domain Name:NIC.IN
+Created On:23-Dec-2004 20:45:40 UTC
+Last Updated On:23-Dec-2014 22:30:21 UTC
+Expiration Date:23-Dec-2015 20:45:40 UTC
+Sponsoring Registrar:National Informatics Centre (R12-AFIN)
+Status:OK
+Registrant ID:R-R04122327215
+Registrant Name:National Informatics Centre
+Registrant Organization:
+Registrant Street1:A Block CGO Complex
+Registrant Street2:
+Registrant Street3:
+Registrant City:New Delhi
+Registrant State/Province:Delhi
+Registrant Postal Code:110003
+Registrant Country:IN
+Registrant Phone:
+Registrant Phone Ext.:
+Registrant FAX:
+Registrant FAX Ext.:
+Registrant Email:rsm@hub.nic.in
+Admin ID:A-R04122327215
+Admin Name:R S Mani
+Admin Organization:
+Admin Street1:A Block CGO Complex
+Admin Street2:
+Admin Street3:
+Admin City:New Delhi
+Admin State/Province:Delhi
+Admin Postal Code:110003
+Admin Country:IN
+Admin Phone:+91.911124361609
+Admin Phone Ext.:
+Admin FAX:
+Admin FAX Ext.:
+Admin Email:rsm@hub.nic.in
+Tech ID:T-R04122327215
+Tech Name:BK DAS
+Tech Organization:
+Tech Street1:A Block CGO Complex
+Tech Street2:
+Tech Street3:
+Tech City:New Delhi
+Tech State/Province:Delhi
+Tech Postal Code:110003
+Tech Country:IN
+Tech Phone:+91.911124366681
+Tech Phone Ext.:
+Tech FAX:
+Tech FAX Ext.:
+Tech Email:bkd@hub.nic.in
+Name Server:NICNET.NIC.IN
+Name Server:NS1.NIC.IN
+Name Server:NS6.NIC.IN
+Name Server:NS8.NIC.IN
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+
diff --git a/testdata/responses/whois.inregistry.net/whois.in.mime b/testdata/responses/whois.inregistry.net/whois.in.mime
new file mode 100644
index 0000000..e229770
--- /dev/null
+++ b/testdata/responses/whois.inregistry.net/whois.in.mime
@@ -0,0 +1,97 @@
+MIME-Version: 1.0
+Content-Checksum: d52fcfafa58359efefdd5a5f414b1ce5d6a67d29
+Content-Length: 2993
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T11:15:42Z
+Host: whois.inregistry.net
+Query: whois.in
+
+Access to .IN WHOIS information is provided to assist persons in 
+determining the contents of a domain name registration record in the 
+.IN registry database. The data in this record is provided by 
+.IN Registry for informational purposes only, and .IN does not 
+guarantee its accuracy.  This service is intended only for query-based 
+access. You agree that you will use this data only for lawful purposes 
+and that, under no circumstances will you use this data to: (a) allow, 
+enable, or otherwise support the transmission by e-mail, telephone, or 
+facsimile of mass unsolicited, commercial advertising or solicitations 
+to entities other than the data recipient's own existing customers; or 
+(b) enable high volume, automated, electronic processes that send 
+queries or data to the systems of Registry Operator, a Registrar, or 
+Afilias except as reasonably necessary to register domain names or 
+modify existing registrations. All rights reserved. .IN reserves 
+the right to modify these terms at any time. By submitting this query, 
+you agree to abide by this policy. 
+
+Domain ID:D15338-AFIN
+Domain Name:WHOIS.IN
+Created On:31-Dec-2004 18:21:24 UTC
+Last Updated On:31-Dec-2004 18:21:29 UTC
+Expiration Date:31-Dec-2009 18:21:24 UTC
+Sponsoring Registrar:National Informatics Centre (R12-AFIN)
+Status:INACTIVE
+Status:DELETE PROHIBITED
+Status:RENEW PROHIBITED
+Status:TRANSFER PROHIBITED
+Status:UPDATE PROHIBITED
+Registrant ID:RESERVED-1
+Registrant Name:Vir Bikram Kumar
+Registrant Organization:National Informatics Centre, Ministry of Communication & IT
+Registrant Street1:Government of India
+Registrant Street2:A4B3- NIC, A-Block, CGO Complex, Lodhi Road
+Registrant Street3:
+Registrant City:New Delhi
+Registrant State/Province:
+Registrant Postal Code:110003
+Registrant Country:IN
+Registrant Phone:+91.1124305257
+Registrant Phone Ext.:
+Registrant FAX:+91.1124368854
+Registrant FAX Ext.:
+Registrant Email:virbk@nic.in
+Admin ID:RESERVED-2
+Admin Name:Neeta Verma
+Admin Organization:NIC, Ministry of Communication & IT
+Admin Street1:Government of India
+Admin Street2:A4B4- NIC, A-Block, CGO Complex, Lodhi Road
+Admin Street3:
+Admin City:New Delhi
+Admin State/Province:
+Admin Postal Code:110003
+Admin Country:IN
+Admin Phone:+91.1124363692
+Admin Phone Ext.:
+Admin FAX:+91.1124368854
+Admin FAX Ext.:
+Admin Email:neeta@nic.in
+Tech ID:RESERVED-2
+Tech Name:Neeta Verma
+Tech Organization:NIC, Ministry of Communication & IT
+Tech Street1:Government of India
+Tech Street2:A4B4- NIC, A-Block, CGO Complex, Lodhi Road
+Tech Street3:
+Tech City:New Delhi
+Tech State/Province:
+Tech Postal Code:110003
+Tech Country:IN
+Tech Phone:+91.1124363692
+Tech Phone Ext.:
+Tech FAX:+91.1124368854
+Tech FAX Ext.:
+Tech Email:neeta@nic.in
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+
diff --git a/testdata/responses/whois.inregistry.net/www.in.mime b/testdata/responses/whois.inregistry.net/www.in.mime
new file mode 100644
index 0000000..8db03a2
--- /dev/null
+++ b/testdata/responses/whois.inregistry.net/www.in.mime
@@ -0,0 +1,97 @@
+MIME-Version: 1.0
+Content-Checksum: 00b0d25261b1c3fe6ad46c311512822d98833dde
+Content-Length: 2991
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T11:15:49Z
+Host: whois.inregistry.net
+Query: www.in
+
+Access to .IN WHOIS information is provided to assist persons in 
+determining the contents of a domain name registration record in the 
+.IN registry database. The data in this record is provided by 
+.IN Registry for informational purposes only, and .IN does not 
+guarantee its accuracy.  This service is intended only for query-based 
+access. You agree that you will use this data only for lawful purposes 
+and that, under no circumstances will you use this data to: (a) allow, 
+enable, or otherwise support the transmission by e-mail, telephone, or 
+facsimile of mass unsolicited, commercial advertising or solicitations 
+to entities other than the data recipient's own existing customers; or 
+(b) enable high volume, automated, electronic processes that send 
+queries or data to the systems of Registry Operator, a Registrar, or 
+Afilias except as reasonably necessary to register domain names or 
+modify existing registrations. All rights reserved. .IN reserves 
+the right to modify these terms at any time. By submitting this query, 
+you agree to abide by this policy. 
+
+Domain ID:D15339-AFIN
+Domain Name:WWW.IN
+Created On:31-Dec-2004 18:21:31 UTC
+Last Updated On:31-Dec-2004 18:21:36 UTC
+Expiration Date:31-Dec-2009 18:21:31 UTC
+Sponsoring Registrar:National Informatics Centre (R12-AFIN)
+Status:INACTIVE
+Status:DELETE PROHIBITED
+Status:RENEW PROHIBITED
+Status:TRANSFER PROHIBITED
+Status:UPDATE PROHIBITED
+Registrant ID:RESERVED-1
+Registrant Name:Vir Bikram Kumar
+Registrant Organization:National Informatics Centre, Ministry of Communication & IT
+Registrant Street1:Government of India
+Registrant Street2:A4B3- NIC, A-Block, CGO Complex, Lodhi Road
+Registrant Street3:
+Registrant City:New Delhi
+Registrant State/Province:
+Registrant Postal Code:110003
+Registrant Country:IN
+Registrant Phone:+91.1124305257
+Registrant Phone Ext.:
+Registrant FAX:+91.1124368854
+Registrant FAX Ext.:
+Registrant Email:virbk@nic.in
+Admin ID:RESERVED-2
+Admin Name:Neeta Verma
+Admin Organization:NIC, Ministry of Communication & IT
+Admin Street1:Government of India
+Admin Street2:A4B4- NIC, A-Block, CGO Complex, Lodhi Road
+Admin Street3:
+Admin City:New Delhi
+Admin State/Province:
+Admin Postal Code:110003
+Admin Country:IN
+Admin Phone:+91.1124363692
+Admin Phone Ext.:
+Admin FAX:+91.1124368854
+Admin FAX Ext.:
+Admin Email:neeta@nic.in
+Tech ID:RESERVED-2
+Tech Name:Neeta Verma
+Tech Organization:NIC, Ministry of Communication & IT
+Tech Street1:Government of India
+Tech Street2:A4B4- NIC, A-Block, CGO Complex, Lodhi Road
+Tech Street3:
+Tech City:New Delhi
+Tech State/Province:
+Tech Postal Code:110003
+Tech Country:IN
+Tech Phone:+91.1124363692
+Tech Phone Ext.:
+Tech FAX:+91.1124368854
+Tech FAX Ext.:
+Tech Email:neeta@nic.in
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+
diff --git a/testdata/responses/whois.inregistry.net/zx5v7d4v2k50l3pq.in.mime b/testdata/responses/whois.inregistry.net/zx5v7d4v2k50l3pq.in.mime
new file mode 100644
index 0000000..ff190f2
--- /dev/null
+++ b/testdata/responses/whois.inregistry.net/zx5v7d4v2k50l3pq.in.mime
@@ -0,0 +1,9 @@
+MIME-Version: 1.0
+Content-Checksum: 3f6efe7888b3b63852fce716cee9834f6c870636
+Content-Length: 10
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2015-04-29T01:31:42Z
+Host: whois.inregistry.net
+Query: zx5v7d4v2k50l3pq.in
+
+NOT FOUND
diff --git a/testdata/responses/whois.isnic.is/dns.is.mime b/testdata/responses/whois.isnic.is/dns.is.mime
new file mode 100644
index 0000000..5688f15
--- /dev/null
+++ b/testdata/responses/whois.isnic.is/dns.is.mime
@@ -0,0 +1,60 @@
+MIME-Version: 1.0
+Content-Checksum: a52955f6d771f651ec565d5ee04f4999602c8cb9
+Content-Length: 1219
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:39:33Z
+Host: whois.isnic.is
+Query: dns.is
+
+% This is the ISNIC Whois server.
+%
+% Rights restricted by copyright.
+% See https://www.isnic.is/en/about/copyright
+
+domain:       dns.is
+descr:        Premis ehf.
+descr:        H�degism�ar 4
+descr:        IS-110 Reykjav�k
+e-mail:       info@nethonnun.is
+admin-c:      NE51-IS
+tech-c:       NH3-IS
+zone-c:       XH3-IS
+billing-c:    NE51-IS
+nserver:      a.x.is
+nserver:      b.x.is
+nserver:      c.x.is
+nserver:      d.x.is
+dnssec:       unsigned delegation
+created:      March  8 2000
+expires:      March  8 2015
+source:       ISNIC 
+
+role:         Premis ehf.
+address:      H�degism�um 4
+address:      IS-110 Reykjav�k
+phone:        +354 517 3400
+e-mail:       domains@premis.is
+nic-hdl:      NE51-IS
+created:      February 19 2003
+source:       ISNIC 
+
+role:         NH Hostmaster
+address:      Premis ehf.
+address:      H�degism�ar 4
+address:      IS-110 Reykjav�k
+phone:        +354 547 0000
+e-mail:       domains@premis.is
+nic-hdl:      NH3-IS
+created:      September  5 2002
+source:       ISNIC 
+
+role:         Xpress hosting
+address:      H�degism�ar 4
+address:      IS-110 Reykjav�k
+phone:        +354 547 0000
+e-mail:       domains@x.is
+nic-hdl:      XH3-IS
+created:      June  2 2010
+source:       ISNIC 
+
+
diff --git a/testdata/responses/whois.isnic.is/google.is.mime b/testdata/responses/whois.isnic.is/google.is.mime
new file mode 100644
index 0000000..5cfb665
--- /dev/null
+++ b/testdata/responses/whois.isnic.is/google.is.mime
@@ -0,0 +1,65 @@
+MIME-Version: 1.0
+Content-Checksum: d690d3d42994ff239eda2e276fcf60b91bc04fd0
+Content-Length: 1405
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:39:33Z
+Host: whois.isnic.is
+Query: google.is
+
+% This is the ISNIC Whois server.
+%
+% Rights restricted by copyright.
+% See https://www.isnic.is/en/about/copyright
+
+domain:       google.is
+descr:        Google Inc
+descr:        1600 Ampitheatre Parkway
+descr:        Mountain View, California 94043
+descr:        US
+e-mail:       dns-admin@google.com
+admin-c:      GI58-IS
+tech-c:       MTC2-IS
+zone-c:       AG49-IS
+billing-c:    MTC2-IS
+nserver:      ns1.google.com
+nserver:      ns2.google.com
+dnssec:       unsigned delegation
+created:      May 22 2002
+expires:      May 22 2015
+source:       ISNIC 
+
+person:       Markmonitor Tech Contact
+address:      391 N. Ancestor Pl.
+address:      Boise, ID 83704
+address:      US
+phone:        +1 208 3895740
+fax-no:        
+e-mail:       ccops@markmonitor.com
+nic-hdl:      MTC2-IS
+created:      July 22 2004
+source:       ISNIC 
+
+role:         Google Inc.
+address:      1600 Amphitheatre Parkway
+address:      Mountain View, CA 94043
+address:      US
+phone:         
+fax-no:        
+e-mail:       ccops@markmonitor.com
+nic-hdl:      GI58-IS
+created:      October  9 2012
+source:       ISNIC 
+
+person:       Amit Garg
+address:      Google Inc.
+address:      1600 Amphitheatre Parkway
+address:      Mountain View, CA 94043
+address:      US
+phone:        +1 650 3300100
+fax-no:       +1 650 6188571
+e-mail:       dns-admin@google.com
+nic-hdl:      AG49-IS
+created:      October  3 2004
+source:       ISNIC 
+
+
diff --git a/testdata/responses/whois.isnic.is/isnic.is.mime b/testdata/responses/whois.isnic.is/isnic.is.mime
new file mode 100644
index 0000000..a3d6e6a
--- /dev/null
+++ b/testdata/responses/whois.isnic.is/isnic.is.mime
@@ -0,0 +1,61 @@
+MIME-Version: 1.0
+Content-Checksum: 4ae4694f6ca2787759c2ac869b36e18b1e5719cd
+Content-Length: 1298
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:39:34Z
+Host: whois.isnic.is
+Query: isnic.is
+
+% This is the ISNIC Whois server.
+%
+% Rights restricted by copyright.
+% See https://www.isnic.is/en/about/copyright
+
+domain:       isnic.is
+descr:        Internet � �slandi hf.
+descr:        Katr�nart�ni 2
+descr:        IS-105 Reykjav�k
+e-mail:       isnic@isnic.is
+admin-c:      JENS-IS
+tech-c:       ISHM-IS
+zone-c:       ISHM-IS
+billing-c:    ISBC-IS
+nserver:      aker.isnic.is
+nserver:      hathor.isnic.is
+nserver:      ns.colo-a.isnic.is
+dnssec:       signed delegation
+created:      September  5 2000
+expires:      September  5 2015
+source:       ISNIC 
+
+role:         Internet � �slandi hf.
+address:      Katr�nart�ni 2
+address:      IS-105 Reykjav�k
+phone:        +354 578 2030
+fax-no:       +354 578 2031
+e-mail:       bokhald@isnic.is
+nic-hdl:      ISBC-IS
+created:      November  6 2000
+source:       ISNIC 
+
+person:       Jens P�tur Jensen
+address:      Bauganesi 8
+address:      IS-101 Reykjav�k
+phone:         
+fax-no:        
+e-mail:       jens@isnic.is
+nic-hdl:      JENS-IS
+created:      December 15 1999
+source:       ISNIC 
+
+role:         ISNIC Hostmaster
+address:      Katr�nart�ni 2
+address:      IS-105 Reykjav�k
+phone:        +354 578 2030
+fax-no:       +354 578 2031
+e-mail:       hostmaster@isnic.is
+nic-hdl:      ISHM-IS
+created:      May 15 2002
+source:       ISNIC 
+
+
diff --git a/testdata/responses/whois.isnic.is/nic.is.mime b/testdata/responses/whois.isnic.is/nic.is.mime
new file mode 100644
index 0000000..d1cab6c
--- /dev/null
+++ b/testdata/responses/whois.isnic.is/nic.is.mime
@@ -0,0 +1,61 @@
+MIME-Version: 1.0
+Content-Checksum: 81b8ce7f38916e6e125b158f2477eadf9c7ae90a
+Content-Length: 1334
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:39:34Z
+Host: whois.isnic.is
+Query: nic.is
+
+% This is the ISNIC Whois server.
+%
+% Rights restricted by copyright.
+% See https://www.isnic.is/en/about/copyright
+
+domain:       nic.is
+descr:        Internet � �slandi hf.
+descr:        Katr�nart�ni 2
+descr:        IS-105 Reykjav�k
+e-mail:       hostmaster@isnic.is
+admin-c:      MO33
+tech-c:       ISHM-IS
+zone-c:       ISHM-IS
+billing-c:    ISBC-IS
+nserver:      aker.isnic.is
+nserver:      hathor.isnic.is
+nserver:      ns.colo-a.isnic.is
+dnssec:       unsigned delegation
+created:      September  5 2000
+expires:      September  5 2015
+source:       ISNIC 
+
+person:       Mar�us �lafsson
+address:      ISNIC - Internet � �slandi hf
+address:      Katr�nart�n 2 - 17h
+address:      IS-105 Reykjav�k
+phone:         
+e-mail:       marius@isgate.is
+nic-hdl:      MO33
+created:      February  1 1995
+source:       ISNIC 
+
+role:         Internet � �slandi hf.
+address:      Katr�nart�ni 2
+address:      IS-105 Reykjav�k
+phone:        +354 578 2030
+fax-no:       +354 578 2031
+e-mail:       bokhald@isnic.is
+nic-hdl:      ISBC-IS
+created:      November  6 2000
+source:       ISNIC 
+
+role:         ISNIC Hostmaster
+address:      Katr�nart�ni 2
+address:      IS-105 Reykjav�k
+phone:        +354 578 2030
+fax-no:       +354 578 2031
+e-mail:       hostmaster@isnic.is
+nic-hdl:      ISHM-IS
+created:      May 15 2002
+source:       ISNIC 
+
+
diff --git a/testdata/responses/whois.isnic.is/whois.is.mime b/testdata/responses/whois.isnic.is/whois.is.mime
new file mode 100644
index 0000000..cb6e4aa
--- /dev/null
+++ b/testdata/responses/whois.isnic.is/whois.is.mime
@@ -0,0 +1,57 @@
+MIME-Version: 1.0
+Content-Checksum: 9b3d702bb76fe5d0c0bb9fd27d7eab8708cdda6b
+Content-Length: 1191
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:39:33Z
+Host: whois.isnic.is
+Query: whois.is
+
+% This is the ISNIC Whois server.
+%
+% Rights restricted by copyright.
+% See https://www.isnic.is/en/about/copyright
+
+domain:       whois.is
+descr:        Name.com LLC
+descr:        2500 East Second Avenue
+descr:        Second Floor
+descr:        Denver, CO 80206
+descr:        US
+e-mail:       notify@name.com
+admin-c:      NI42-IS
+tech-c:       NI42-IS
+zone-c:       NL8-IS
+billing-c:    NI42-IS
+nserver:      ns1.name.com
+nserver:      ns2.name.com
+dnssec:       unsigned delegation
+created:      May  3 2006
+expires:      May  3 2015
+source:       ISNIC 
+
+person:       Name.com Inc.
+address:      Name.com Inc.
+address:      2500 East Second Avenue
+address:      Second floor
+address:      Denver, Colorado 80206
+address:      Denver, USA 80206
+address:      US
+phone:        +720 937 6321
+e-mail:       notify@name.com
+nic-hdl:      NI42-IS
+created:      March 12 2014
+source:       ISNIC 
+
+person:       Name.com LLc
+address:      2500 East Second Avenue
+address:      Second Floor
+address:      Denver, CO 80206
+address:      US
+phone:        +1 720 2492374
+fax-no:       +1 303 3643646
+e-mail:       dns@name.com
+nic-hdl:      NL8-IS
+created:      May  2 2006
+source:       ISNIC 
+
+
diff --git a/testdata/responses/whois.isnic.is/www.is.mime b/testdata/responses/whois.isnic.is/www.is.mime
new file mode 100644
index 0000000..89bebea
--- /dev/null
+++ b/testdata/responses/whois.isnic.is/www.is.mime
@@ -0,0 +1,48 @@
+MIME-Version: 1.0
+Content-Checksum: eb6b34faeabb3dd106eaf2967d3c725e8291c33f
+Content-Length: 1004
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:39:32Z
+Host: whois.isnic.is
+Query: www.is
+
+% This is the ISNIC Whois server.
+%
+% Rights restricted by copyright.
+% See https://www.isnic.is/en/about/copyright
+
+domain:       www.is
+descr:        H��inn Karl Magn�sson
+descr:        Illugagata 56
+descr:        IS-900 Vestmannaeyjar
+admin-c:      HM13-IS
+tech-c:       HM13-IS
+zone-c:       DFA10-IS
+billing-c:    HM13-IS
+nserver:      forwarding00.isnic.is
+nserver:      forwarding01.isnic.is
+dnssec:       unsigned delegation
+created:      November 28 2002
+expires:      November 28 2014
+source:       ISNIC 
+
+person:       H��inn Karl Magn�sson
+address:      [address withheld]
+address:      IS Vestmannaeyjar
+phone:        [withheld]
+e-mail:       hkarl@44.is
+nic-hdl:      HM13-IS
+created:      June 25 2002
+source:       ISNIC 
+
+role:         Domain Forwarding
+address:      Katrinartuni 2, 18. h.
+address:      IS-105 Reykjav�k
+phone:        +354 578 2030
+fax-no:       +354 578 2031
+e-mail:       forwadm@isnic.is
+nic-hdl:      DFA10-IS
+created:      November 12 2009
+source:       ISNIC 
+
+
diff --git a/testdata/responses/whois.isnic.is/zx5v7d4v2k50l3pq.is.mime b/testdata/responses/whois.isnic.is/zx5v7d4v2k50l3pq.is.mime
new file mode 100644
index 0000000..0191c19
--- /dev/null
+++ b/testdata/responses/whois.isnic.is/zx5v7d4v2k50l3pq.is.mime
@@ -0,0 +1,15 @@
+MIME-Version: 1.0
+Content-Checksum: 1937727dad9910c99d2ac5f8ecbe760be4ef5e77
+Content-Length: 171
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:39:33Z
+Host: whois.isnic.is
+Query: zx5v7d4v2k50l3pq.is
+
+% This is the ISNIC Whois server.
+%
+% Rights restricted by copyright.
+% See https://www.isnic.is/en/about/copyright
+
+%
+% No entries found for query "zx5v7d4v2k50l3pq.is".
diff --git a/testdata/responses/whois.jprs.jp/dns.jp.mime b/testdata/responses/whois.jprs.jp/dns.jp.mime
new file mode 100644
index 0000000..a30d558
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/dns.jp.mime
@@ -0,0 +1,57 @@
+MIME-Version: 1.0
+Content-Checksum: 8e612e99205d5bb44a43110bac46b65212ca5dd2
+Content-Length: 2726
+Content-Type: text/plain; charset=iso-2022-jp
+Fetched-At: 2014-10-04T11:15:40Z
+Host: whois.jprs.jp
+Query: dns.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+[                                                                             ]
+[ Notice -------------------------------------------------------------------- ]
+[ JPRS will change JPRS WHOIS (web-based and port 43 Whois service) about the ]
+[ following two points on January 18, 2015.                                   ]
+[                                                                             ]
+[  1) Change of the format of response about gTLD domain name                 ]
+[  2) Change of the character encoding                                        ]
+[                                                                             ]
+[ For further information, please see the following webpage.                  ]
+[ http://jprs.jp/whatsnew/notice/2014/20140319-whois.html (only in Japanese)  ]
+[ --------------------------------------------------------------------------- ]
+
+Domain Information: [$B%I%a%$%s>pJs(B]
+[Domain Name]                   DNS.JP
+
+[$BEPO?<TL>(B]                      $B3t<02q<RF|K\%l%8%9%H%j%5!<%S%9(B
+[Registrant]                    Japan Registry Services Co., Ltd.
+
+[Name Server]                   nsa.dns.jp
+[Name Server]                   nsb.dns.jp
+[Name Server]                   nsd.dns.jp
+[Name Server]                   nse.dns.jp
+[Name Server]                   nsf.dns.jp
+[Name Server]                   nsg.dns.jp
+[Signing Key]                   
+
+[$BEPO?G/7nF|(B]                    2003/06/05
+[$BM-8z4|8B(B]                      2015/06/30
+[$B>uBV(B]                          Active
+[$B:G=*99?7(B]                      2014/07/01 01:05:11 (JST)
+
+Contact Information: [$B8x3+O"MmAk8}(B]
+[$BL>A0(B]                          $B3t<02q<RF|K\%l%8%9%H%j%5!<%S%9(B
+[Name]                          Japan Registry Services Co.,Ltd.
+[Email]                         dom-admin@jprs.co.jp
+[Web Page]                       
+[$BM9JXHV9f(B]                      101-0065
+[$B=;=j(B]                          $BEl5~ET@iBeED6h@>?@ED;0CzL\(B8$BHV(B1$B9f(B
+                                $B@iBeED%U%!!<%9%H%S%kEl4[(B 13F
+[Postal Address]                Chiyoda First Bldg. East 13F,
+                                3-8-1 Nishi-Kanda Chiyoda-ku,
+                                Tokyo 101-0065, JAPAN
+[$BEEOCHV9f(B]                      03-5215-8451
+[FAX$BHV9f(B]                       03-5215-8452
+
diff --git a/testdata/responses/whois.jprs.jp/google.co.jp.mime b/testdata/responses/whois.jprs.jp/google.co.jp.mime
new file mode 100644
index 0000000..40a118a
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/google.co.jp.mime
@@ -0,0 +1,32 @@
+MIME-Version: 1.0
+Content-Checksum: 7f0edbc3402030407b5d51ffc988f57ee5b511e0
+Content-Length: 1267
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2018-07-14T17:55:14Z
+Host: whois.jprs.jp
+Query: google.co.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+
+Domain Information: [ドメイン情報]
+a. [ドメイン名]                 GOOGLE.CO.JP
+e. [そしきめい]                 ぐーぐるかぶしきかいしゃ
+f. [組織名]                     グーグル株式会社
+g. [Organization]               Google Japan
+k. [組織種別]                   株式会社
+l. [Organization Type]          corporation
+m. [登録担当者]                 DL152JP
+n. [技術連絡担当者]             TW124137JP
+p. [ネームサーバ]               ns1.google.com
+p. [ネームサーバ]               ns2.google.com
+p. [ネームサーバ]               ns3.google.com
+p. [ネームサーバ]               ns4.google.com
+s. [署名鍵]                     
+[状態]                          Connected (2019/03/31)
+[登録年月日]                    2001/03/22
+[接続年月日]                    2001/03/22
+[最終更新]                      2018/04/01 01:06:23 (JST)
+
diff --git a/testdata/responses/whois.jprs.jp/google.jp.mime b/testdata/responses/whois.jprs.jp/google.jp.mime
new file mode 100644
index 0000000..bc5e27a
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/google.jp.mime
@@ -0,0 +1,45 @@
+MIME-Version: 1.0
+Content-Checksum: b41f937ff66f465bab91f1a0925321173f92975a
+Content-Length: 1588
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.jprs.jp
+Query: google.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+
+Domain Information: [ドメイン情報]
+[Domain Name]                   GOOGLE.JP
+
+[登録者名]                      Google LLC
+[Registrant]                    Google LLC
+
+[Name Server]                   ns1.google.com
+[Name Server]                   ns2.google.com
+[Name Server]                   ns3.google.com
+[Name Server]                   ns4.google.com
+[Signing Key]                   
+
+[登録年月日]                    2005/05/30
+[有効期限]                      2021/05/31
+[状態]                          Active
+[最終更新]                      2020/08/06 13:20:20 (JST)
+
+Contact Information: [公開連絡窓口]
+[名前]                          Google LLC
+[Name]                          Google LLC
+[Email]                         dns-admin@google.com
+[Web Page]                       
+[郵便番号]                      94043
+[住所]                          Mountain View
+                                1600 Amphitheatre Parkway
+                                CA
+[Postal Address]                Mountain View
+                                1600 Amphitheatre Parkway
+                                CA
+[電話番号]                      16502530000
+[FAX番号]                       16502530001
+
diff --git a/testdata/responses/whois.jprs.jp/jprs.jp.mime b/testdata/responses/whois.jprs.jp/jprs.jp.mime
new file mode 100644
index 0000000..874283e
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/jprs.jp.mime
@@ -0,0 +1,46 @@
+MIME-Version: 1.0
+Content-Checksum: 491752ebfff56b6888e63f7f133822c6822e8b14
+Content-Length: 1890
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.jprs.jp
+Query: jprs.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+
+Domain Information: [ドメイン情報]
+[Domain Name]                   JPRS.JP
+
+[登録者名]                      株式会社日本レジストリサービス
+[Registrant]                    Japan Registry Services Co.,Ltd.
+
+[Name Server]                   ns1.jprs.jp
+[Name Server]                   ns2.jprs.jp
+[Name Server]                   ns3.jprs.jp
+[Name Server]                   ns4.jprs.jp
+[Signing Key]                   43519 8 2 (
+                                F1253DCC0CEE00CFB6518894AD23F135
+                                E1801D67D67D9CCDA81AADA9954109DC )
+
+[登録年月日]                    2001/02/02
+[有効期限]                      2021/02/28
+[状態]                          Active
+[最終更新]                      2020/03/17 16:55:04 (JST)
+
+Contact Information: [公開連絡窓口]
+[名前]                          株式会社日本レジストリサービス
+[Name]                          Japan Registry Services Co.,Ltd.
+[Email]                         dom-admin@jprs.co.jp
+[Web Page]                       
+[郵便番号]                      101-0065
+[住所]                          東京都千代田区西神田三丁目8番1号
+                                千代田ファーストビル東館 13F
+[Postal Address]                Chiyoda First Bldg. East 13F,
+                                3-8-1 Nishi-Kanda Chiyoda-ku,
+                                Tokyo 101-0065, JAPAN
+[電話番号]                      03-5215-8451
+[FAX番号]                       03-5215-8452
+
diff --git a/testdata/responses/whois.jprs.jp/nic.co.jp.mime b/testdata/responses/whois.jprs.jp/nic.co.jp.mime
new file mode 100644
index 0000000..88534a2
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/nic.co.jp.mime
@@ -0,0 +1,30 @@
+MIME-Version: 1.0
+Content-Checksum: 829a5b426946d754a136a52009e7aef27e209aa0
+Content-Length: 1157
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2018-07-14T17:55:14Z
+Host: whois.jprs.jp
+Query: nic.co.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+
+Domain Information: [ドメイン情報]
+a. [ドメイン名]                 NIC.CO.JP
+e. [そしきめい]                 かぶしきがいしゃえぬあいしー
+f. [組織名]                     株式会社NIC
+g. [Organization]               NIC Co.,Ltd.
+k. [組織種別]                   株式会社
+l. [Organization Type]          corporation
+m. [登録担当者]                 AH4927JP
+n. [技術連絡担当者]             TW68976JP
+p. [ネームサーバ]               uns01.lolipop.jp
+p. [ネームサーバ]               uns02.lolipop.jp
+s. [署名鍵]                     
+[状態]                          Connected (2018/11/30)
+[登録年月日]                    2010/11/01
+[接続年月日]                    2010/11/01
+[最終更新]                      2017/12/01 01:12:25 (JST)
+
diff --git a/testdata/responses/whois.jprs.jp/nic.jp.mime b/testdata/responses/whois.jprs.jp/nic.jp.mime
new file mode 100644
index 0000000..75a39bd
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/nic.jp.mime
@@ -0,0 +1,41 @@
+MIME-Version: 1.0
+Content-Checksum: bd42512f8381241f88633d3fe1b06fb14d01c684
+Content-Length: 1647
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.jprs.jp
+Query: nic.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+
+Domain Information: [ドメイン情報]
+[Domain Name]                   NIC.JP
+
+[登録者名]                      一般社団法人日本ネットワークインフォメーションセンター
+[Registrant]                    Japan Network Information Center
+
+[Name Server]                   ns.nic.jp
+[Signing Key]                   
+
+[登録年月日]                    2003/07/31
+[有効期限]                      2021/07/31
+[状態]                          Active
+[最終更新]                      2020/08/01 01:05:08 (JST)
+
+Contact Information: [公開連絡窓口]
+[名前]                          一般社団法人日本ネットワークインフォメーションセンター
+[Name]                          Japan Network Information Center
+[Email]                         secretariat@nic.ad.jp
+[Web Page]                       
+[郵便番号]                      101-0047
+[住所]                          東京都千代田区内神田3-6-2
+                                アーバンネット神田ビル4F
+[Postal Address]                Urbannet-Kanda Bldg. 4F
+                                3-6-2 Uchi-Kanda
+                                Chiyoda-ku, Tokyo, Japan
+[電話番号]                      03-5297-2311
+[FAX番号]                       03-5297-2312
+
diff --git a/testdata/responses/whois.jprs.jp/whois.jp.mime b/testdata/responses/whois.jprs.jp/whois.jp.mime
new file mode 100644
index 0000000..7fb386e
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/whois.jp.mime
@@ -0,0 +1,54 @@
+MIME-Version: 1.0
+Content-Checksum: 68dfffd163754b62487d3a56875196f4b653ec0b
+Content-Length: 2607
+Content-Type: text/plain; charset=iso-2022-jp
+Fetched-At: 2014-10-04T11:15:56Z
+Host: whois.jprs.jp
+Query: whois.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+[                                                                             ]
+[ Notice -------------------------------------------------------------------- ]
+[ JPRS will change JPRS WHOIS (web-based and port 43 Whois service) about the ]
+[ following two points on January 18, 2015.                                   ]
+[                                                                             ]
+[  1) Change of the format of response about gTLD domain name                 ]
+[  2) Change of the character encoding                                        ]
+[                                                                             ]
+[ For further information, please see the following webpage.                  ]
+[ http://jprs.jp/whatsnew/notice/2014/20140319-whois.html (only in Japanese)  ]
+[ --------------------------------------------------------------------------- ]
+
+Domain Information: [$B%I%a%$%s>pJs(B]
+[Domain Name]                   WHOIS.JP
+
+[$BEPO?<TL>(B]                      $B3t<02q<RF|K\%l%8%9%H%j%5!<%S%9(B
+[Registrant]                    Japan Registry Services Co.,Ltd.
+
+[Name Server]                   ns1.jprs.co.jp
+[Name Server]                   ns2.jprs.co.jp
+[Name Server]                   ns3.jprs.co.jp
+[Signing Key]                   
+
+[$BEPO?G/7nF|(B]                    2001/06/02
+[$BM-8z4|8B(B]                      2015/06/30
+[$B>uBV(B]                          Active
+[$B:G=*99?7(B]                      2014/07/01 01:05:11 (JST)
+
+Contact Information: [$B8x3+O"MmAk8}(B]
+[$BL>A0(B]                          $B3t<02q<RF|K\%l%8%9%H%j%5!<%S%9(B
+[Name]                          Japan Registry Services Co.,Ltd.
+[Email]                         dom-admin@jprs.co.jp
+[Web Page]                       
+[$BM9JXHV9f(B]                      101-0065
+[$B=;=j(B]                          $BEl5~ET@iBeED6h@>?@ED;0CzL\(B8$BHV(B1$B9f(B
+                                $B@iBeED%U%!!<%9%H%S%kEl4[(B 13F
+[Postal Address]                Chiyoda First Bldg. East 13F,
+                                3-8-1 Nishi-Kanda Chiyoda-ku,
+                                Tokyo 101-0065, JAPAN
+[$BEEOCHV9f(B]                      03-5215-8451
+[FAX$BHV9f(B]                       03-5215-8452
+
diff --git a/testdata/responses/whois.jprs.jp/www.jp.mime b/testdata/responses/whois.jprs.jp/www.jp.mime
new file mode 100644
index 0000000..c922949
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/www.jp.mime
@@ -0,0 +1,54 @@
+MIME-Version: 1.0
+Content-Checksum: 2b914826bfb24b0aacf8f662214d50f71582015a
+Content-Length: 2495
+Content-Type: text/plain; charset=iso-2022-jp
+Fetched-At: 2014-10-04T11:15:51Z
+Host: whois.jprs.jp
+Query: www.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+[                                                                             ]
+[ Notice -------------------------------------------------------------------- ]
+[ JPRS will change JPRS WHOIS (web-based and port 43 Whois service) about the ]
+[ following two points on January 18, 2015.                                   ]
+[                                                                             ]
+[  1) Change of the format of response about gTLD domain name                 ]
+[  2) Change of the character encoding                                        ]
+[                                                                             ]
+[ For further information, please see the following webpage.                  ]
+[ http://jprs.jp/whatsnew/notice/2014/20140319-whois.html (only in Japanese)  ]
+[ --------------------------------------------------------------------------- ]
+
+Domain Information: [$B%I%a%$%s>pJs(B]
+[Domain Name]                   WWW.JP
+
+[$BEPO?<TL>(B]                      $BEEDL4X@>;Y<R(B
+[Registrant]                    Dentsu,Inc KANSAI
+
+[Name Server]                   dns1.onamae.com
+[Name Server]                   dns2.onamae.com
+[Signing Key]                   
+
+[$BEPO?G/7nF|(B]                    2001/03/26
+[$BM-8z4|8B(B]                      2015/03/31
+[$B>uBV(B]                          Active
+[$B:G=*99?7(B]                      2014/04/01 01:05:12 (JST)
+
+Contact Information: [$B8x3+O"MmAk8}(B]
+[$BL>A0(B]                          $B3t<02q<R%/%m%9%a%G%#%"%$%s%U%)%a!<%7%g%s%;%s%?!<(B
+[Name]                          Crossmedia Information Center Inc.
+[Email]                         itoh@cm-ic.jp
+[Web Page]                       
+[$BM9JXHV9f(B]                      104-0045
+[$B=;=j(B]                          $BEl5~ETCf1{6h(B
+                                $BC[CO(B2-4-10
+                                $B%F%s%O%&%9#3(BF
+[Postal Address]                Chuo-ku
+                                2-4-10 Tsukiji
+                                TenHouse 3F
+[$BEEOCHV9f(B]                      03-3545-0960
+[FAX$BHV9f(B]                       03-3545-0961
+
diff --git a/testdata/responses/whois.jprs.jp/zx5v7d4v2k50l3pq.co.jp.mime b/testdata/responses/whois.jprs.jp/zx5v7d4v2k50l3pq.co.jp.mime
new file mode 100644
index 0000000..253954a
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/zx5v7d4v2k50l3pq.co.jp.mime
@@ -0,0 +1,29 @@
+MIME-Version: 1.0
+Content-Checksum: c0291194776c96da32c95eae586e37df2b446d8b
+Content-Length: 934
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2018-07-14T17:55:14Z
+Host: whois.jprs.jp
+Query: zx5v7d4v2k50l3pq.co.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+
+No match!!
+
+JPRS WHOISは、JPRSが管理している以下のドメイン名に関する情報を確認でき
+るサービスです。
+    ・登録されているJPドメイン名
+    ・JPRSを管理レジストラとするgTLD等ドメイン名
+詳しくは https://jprs.jp/about/dom-search/jprs-whois/ を参照してください。
+
+参考: IPアドレスのWHOISサーバ
+   ・JPNIC WHOIS(whois.nic.ad.jp)
+   ・APNIC WHOIS(whois.apnic.net)
+   ・ARIN WHOIS(whois.arin.net)
+   ・RIPE WHOIS(whois.ripe.net)
+   ・LACNIC WHOIS(whois.lacnic.net)
+   ・AfriNIC WHOIS(whois.afrinic.net)
+
diff --git a/testdata/responses/whois.jprs.jp/zx5v7d4v2k50l3pq.jp.mime b/testdata/responses/whois.jprs.jp/zx5v7d4v2k50l3pq.jp.mime
new file mode 100644
index 0000000..4fafbb3
--- /dev/null
+++ b/testdata/responses/whois.jprs.jp/zx5v7d4v2k50l3pq.jp.mime
@@ -0,0 +1,29 @@
+MIME-Version: 1.0
+Content-Checksum: c0291194776c96da32c95eae586e37df2b446d8b
+Content-Length: 934
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.jprs.jp
+Query: zx5v7d4v2k50l3pq.jp
+
+[ JPRS database provides information on network administration. Its use is    ]
+[ restricted to network administration purposes. For further information,     ]
+[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
+[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]
+
+No match!!
+
+JPRS WHOISは、JPRSが管理している以下のドメイン名に関する情報を確認でき
+るサービスです。
+    ・登録されているJPドメイン名
+    ・JPRSを管理レジストラとするgTLD等ドメイン名
+詳しくは https://jprs.jp/about/dom-search/jprs-whois/ を参照してください。
+
+参考: IPアドレスのWHOISサーバ
+   ・JPNIC WHOIS(whois.nic.ad.jp)
+   ・APNIC WHOIS(whois.apnic.net)
+   ・ARIN WHOIS(whois.arin.net)
+   ・RIPE WHOIS(whois.ripe.net)
+   ・LACNIC WHOIS(whois.lacnic.net)
+   ・AfriNIC WHOIS(whois.afrinic.net)
+
diff --git a/testdata/responses/whois.kr/dns.kr.mime b/testdata/responses/whois.kr/dns.kr.mime
new file mode 100644
index 0000000..49c6dca
--- /dev/null
+++ b/testdata/responses/whois.kr/dns.kr.mime
@@ -0,0 +1,55 @@
+MIME-Version: 1.0
+Content-Checksum: 4f508fc78031f665cc0bb8d808bee3dc4f00f02e
+Content-Length: 1705
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2014-10-04T18:28:41Z
+Host: whois.kr
+Query: dns.kr
+
+query : dns.kr
+
+
+# KOREAN(UTF8)
+
+도메인이름                  : dns.kr
+등록인                      : 한국인터넷진흥원
+등록인 주소                 : 서울시 송파구 중대로 109 대동빌딩 한국인터넷진흥원
+등록인 우편번호             : 138803
+책임자                      : 도메인관리자
+책임자 전자우편             : domain-manager@kisa.or.kr
+책임자 전화번호             : 02-405-5014
+등록일                      : 2007. 08. 21.
+최근 정보 변경일            : 2009. 12. 15.
+사용 종료일                 : 9999. 12. 31.
+정보공개여부                : Y
+등록대행자                  : 한국인터넷진흥원(http://www.kisa.kr)
+
+네임서버 이름이 .kr이 아닌 경우는 IP주소가 보이지 않습니다.
+
+
+# ENGLISH
+
+Domain Name                 : dns.kr
+Registrant                  : Korea Internet & Security Agency
+Registrant Address          : KISA, Daedong-B/D, Jungdaero 109, Songpa-gu, Seoul, Korea
+Registrant Zip Code         : 138803
+Administrative Contact(AC)  : Domain Manager
+AC E-Mail                   : domain-manager@kisa.or.kr
+AC Phone Number             : 02-405-5014
+Registered Date             : 2007. 08. 21.
+Last Updated Date           : 2009. 12. 15.
+Expiration Date             : 9999. 12. 31.
+Publishes                   : Y
+Authorized Agency           : KISA(http://www.kisa.kr)
+
+
+상기 정보는 UTF-8 인코딩되어 서비스되고 있습니다.
+EUC-KR 인코딩 서비스는 oldwhois.kisa.or.kr에서 서비스 되고 있습니다.
+The above information is encoded with UTF-8
+EUC-KR encoding WHOIS is being serviced in this URL:oldwhois.kisa.or.kr
+
+
+- KISA/KRNIC Whois Service -
+
+
+
diff --git a/testdata/responses/whois.kr/google.kr.mime b/testdata/responses/whois.kr/google.kr.mime
new file mode 100644
index 0000000..1ed65d8
--- /dev/null
+++ b/testdata/responses/whois.kr/google.kr.mime
@@ -0,0 +1,61 @@
+MIME-Version: 1.0
+Content-Checksum: 480385aaceaf58484dc671285bb18038ba2699a6
+Content-Length: 1790
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.kr
+Query: google.kr
+
+query : google.kr
+
+
+# KOREAN(UTF8)
+
+도메인이름                  : google.kr
+등록인                      : 구글코리아유한회사
+등록인 주소                 : 서울시 강남구 역삼동 737 강남파이낸스센터 22층
+등록인 우편번호             : 135984
+책임자                      : Domain Administrator
+책임자 전자우편             : dns-admin@google.com
+책임자 전화번호             : 82.25319000
+등록일                      : 2007. 03. 02.
+최근 정보 변경일            : 2010. 10. 04.
+사용 종료일                 : 2021. 03. 02.
+정보공개여부                : Y
+등록대행자                  : (주)후이즈(http://whois.co.kr)
+DNSSEC                      : 미서명
+
+1차 네임서버 정보
+   호스트이름               : ns1.google.com
+
+2차 네임서버 정보
+   호스트이름               : ns2.google.com
+
+네임서버 이름이 .kr이 아닌 경우는 IP주소가 보이지 않습니다.
+
+
+# ENGLISH
+
+Domain Name                 : google.kr
+Registrant                  : Google Korea, LLC
+Registrant Address          : 22nd Floor Gangnam Finance Center, 737 Yeoksam-dong Kangnam-ku Seoul
+Registrant Zip Code         : 135984
+Administrative Contact(AC)  : Domain Administrator
+AC E-Mail                   : dns-admin@google.com
+AC Phone Number             : 82.25319000
+Registered Date             : 2007. 03. 02.
+Last Updated Date           : 2010. 10. 04.
+Expiration Date             : 2021. 03. 02.
+Publishes                   : Y
+Authorized Agency           : Whois Corp.(http://whois.co.kr)
+DNSSEC                      : unsigned
+
+Primary Name Server
+   Host Name                : ns1.google.com
+
+Secondary Name Server
+   Host Name                : ns2.google.com
+
+
+- KISA/KRNIC WHOIS Service -
+
diff --git a/testdata/responses/whois.kr/nic.kr.mime b/testdata/responses/whois.kr/nic.kr.mime
new file mode 100644
index 0000000..3693d2a
--- /dev/null
+++ b/testdata/responses/whois.kr/nic.kr.mime
@@ -0,0 +1,24 @@
+MIME-Version: 1.0
+Content-Checksum: 7cf23eec3b8010341c8ff3fe9ba23affc6112ecc
+Content-Length: 366
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.kr
+Query: nic.kr
+
+query : nic.kr
+
+
+# KOREAN(UTF8)
+
+상기 도메인이름은 도메인이름의 안정적 관리와 공공의 이익 등을 위하여 
+등록자격이 제한된 도메인이름입니다.
+
+
+# ENGLISH
+
+This request domain name is restricted to specifically qualified registrants for stable management of domain names and public interest.
+
+
+- KISA/KRNIC WHOIS Service -
+
diff --git a/testdata/responses/whois.kr/whois.kr.mime b/testdata/responses/whois.kr/whois.kr.mime
new file mode 100644
index 0000000..410777c
--- /dev/null
+++ b/testdata/responses/whois.kr/whois.kr.mime
@@ -0,0 +1,79 @@
+MIME-Version: 1.0
+Content-Checksum: 930656b6fc684209a09812573c4a196ea4c6c53d
+Content-Length: 2567
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2014-10-04T18:28:47Z
+Host: whois.kr
+Query: whois.kr
+
+query : whois.kr
+
+
+# KOREAN(UTF8)
+
+도메인이름                  : whois.kr
+등록인                      : 한국인터넷진흥원
+등록인 주소                 : 서울시 송파구 중대로 109 대동빌딩 한국인터넷진흥원
+등록인 우편번호             : 138803
+책임자                      : 도메인관리자
+책임자 전자우편             : domain-manager@kisa.or.kr
+책임자 전화번호             : 02-405-5014
+등록일                      : 2007. 08. 21.
+최근 정보 변경일            : 2009. 12. 15.
+사용 종료일                 : 9999. 12. 31.
+정보공개여부                : Y
+등록대행자                  : 한국인터넷진흥원(http://www.kisa.kr)
+
+1차 네임서버 정보
+   호스트이름               : ns0.nida.or.kr
+   IP 주소                  : 202.30.50.52
+
+2차 네임서버 정보
+   호스트이름               : ns1.nida.or.kr
+   IP 주소                  : 202.30.50.51
+   호스트이름               : ns2.nida.or.kr
+   IP 주소                  : 61.74.72.161
+   호스트이름               : ns0.nida.or.kr
+   IP 주소                  : 2001:dc5:0:10:202:30:50:52
+
+네임서버 이름이 .kr이 아닌 경우는 IP주소가 보이지 않습니다.
+
+
+# ENGLISH
+
+Domain Name                 : whois.kr
+Registrant                  : Korea Internet & Security Agency
+Registrant Address          : KISA, Daedong-B/D, Jungdaero 109, Songpa-gu, Seoul, Korea
+Registrant Zip Code         : 138803
+Administrative Contact(AC)  : Domain Manager
+AC E-Mail                   : domain-manager@kisa.or.kr
+AC Phone Number             : 02-405-5014
+Registered Date             : 2007. 08. 21.
+Last Updated Date           : 2009. 12. 15.
+Expiration Date             : 9999. 12. 31.
+Publishes                   : Y
+Authorized Agency           : KISA(http://www.kisa.kr)
+
+Primary Name Server
+   Host Name                : ns0.nida.or.kr
+   IP Address               : 202.30.50.52
+
+Secondary Name Server
+   Host Name                : ns1.nida.or.kr
+   IP Address               : 202.30.50.51
+   Host Name                : ns2.nida.or.kr
+   IP Address               : 61.74.72.161
+   Host Name                : ns0.nida.or.kr
+   IP Address               : 2001:dc5:0:10:202:30:50:52
+
+
+상기 정보는 UTF-8 인코딩되어 서비스되고 있습니다.
+EUC-KR 인코딩 서비스는 oldwhois.kisa.or.kr에서 서비스 되고 있습니다.
+The above information is encoded with UTF-8
+EUC-KR encoding WHOIS is being serviced in this URL:oldwhois.kisa.or.kr
+
+
+- KISA/KRNIC Whois Service -
+
+
+
diff --git a/testdata/responses/whois.kr/www.kr.mime b/testdata/responses/whois.kr/www.kr.mime
new file mode 100644
index 0000000..ea23653
--- /dev/null
+++ b/testdata/responses/whois.kr/www.kr.mime
@@ -0,0 +1,79 @@
+MIME-Version: 1.0
+Content-Checksum: 7d6acf22c342f9f60d58cbe7ddf7d6db4c7e6517
+Content-Length: 2561
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2014-10-04T18:28:46Z
+Host: whois.kr
+Query: www.kr
+
+query : www.kr
+
+
+# KOREAN(UTF8)
+
+도메인이름                  : www.kr
+등록인                      : 한국인터넷진흥원
+등록인 주소                 : 서울시 송파구 중대로 109 대동빌딩 한국인터넷진흥원
+등록인 우편번호             : 138803
+책임자                      : 도메인관리자
+책임자 전자우편             : domain-manager@kisa.or.kr
+책임자 전화번호             : 02-405-5014
+등록일                      : 2006. 09. 18.
+최근 정보 변경일            : 2009. 12. 15.
+사용 종료일                 : 9999. 12. 31.
+정보공개여부                : Y
+등록대행자                  : 한국인터넷진흥원(http://www.kisa.kr)
+
+1차 네임서버 정보
+   호스트이름               : ns0.nida.or.kr
+   IP 주소                  : 202.30.50.52
+
+2차 네임서버 정보
+   호스트이름               : ns1.nida.or.kr
+   IP 주소                  : 202.30.50.51
+   호스트이름               : ns2.nida.or.kr
+   IP 주소                  : 61.74.72.161
+   호스트이름               : ns0.nida.or.kr
+   IP 주소                  : 2001:dc5:0:10:202:30:50:52
+
+네임서버 이름이 .kr이 아닌 경우는 IP주소가 보이지 않습니다.
+
+
+# ENGLISH
+
+Domain Name                 : www.kr
+Registrant                  : Korea Internet & Security Agency
+Registrant Address          : KISA, Daedong-B/D, Jungdaero 109, Songpa-gu, Seoul, Korea
+Registrant Zip Code         : 138803
+Administrative Contact(AC)  : Domain Manager
+AC E-Mail                   : domain-manager@kisa.or.kr
+AC Phone Number             : 02-405-5014
+Registered Date             : 2006. 09. 18.
+Last Updated Date           : 2009. 12. 15.
+Expiration Date             : 9999. 12. 31.
+Publishes                   : Y
+Authorized Agency           : KISA(http://www.kisa.kr)
+
+Primary Name Server
+   Host Name                : ns0.nida.or.kr
+   IP Address               : 202.30.50.52
+
+Secondary Name Server
+   Host Name                : ns1.nida.or.kr
+   IP Address               : 202.30.50.51
+   Host Name                : ns2.nida.or.kr
+   IP Address               : 61.74.72.161
+   Host Name                : ns0.nida.or.kr
+   IP Address               : 2001:dc5:0:10:202:30:50:52
+
+
+상기 정보는 UTF-8 인코딩되어 서비스되고 있습니다.
+EUC-KR 인코딩 서비스는 oldwhois.kisa.or.kr에서 서비스 되고 있습니다.
+The above information is encoded with UTF-8
+EUC-KR encoding WHOIS is being serviced in this URL:oldwhois.kisa.or.kr
+
+
+- KISA/KRNIC Whois Service -
+
+
+
diff --git a/testdata/responses/whois.kr/zx5v7d4v2k50l3pq.kr.mime b/testdata/responses/whois.kr/zx5v7d4v2k50l3pq.kr.mime
new file mode 100644
index 0000000..e14d8fc
--- /dev/null
+++ b/testdata/responses/whois.kr/zx5v7d4v2k50l3pq.kr.mime
@@ -0,0 +1,27 @@
+MIME-Version: 1.0
+Content-Checksum: d9065b42c7654e2d956f0ada0ca258307712117d
+Content-Length: 368
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.kr
+Query: zx5v7d4v2k50l3pq.kr
+
+query : zx5v7d4v2k50l3pq.kr
+
+
+# KOREAN(UTF8)
+
+상기 도메인이름은 등록되어 있지 않습니다.
+상기 도메인이름의 사용을 원하실 경우 도메인이름 등록대행자를 통해 
+등록 신청하시기 바랍니다.
+
+
+
+# ENGLISH
+
+The requested domain was not found in the Registry or Registrar’s WHOIS Server.
+
+
+
+- KISA/KRNIC WHOIS Service -
+
diff --git a/testdata/responses/whois.nic.co/dns.co.mime b/testdata/responses/whois.nic.co/dns.co.mime
new file mode 100644
index 0000000..709af10
--- /dev/null
+++ b/testdata/responses/whois.nic.co/dns.co.mime
@@ -0,0 +1,98 @@
+MIME-Version: 1.0
+Content-Checksum: f5a245d3a205aed30dff23d347e456013884bd46
+Content-Length: 5604
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-03T16:33:45Z
+Host: whois.nic.co
+Query: dns.co
+
+Domain Name:                                 DNS.CO
+Domain ID:                                   D734280-CO
+Sponsoring Registrar:                        RESTRICTED AND RESERVED NAMES .COINTERNET
+Sponsoring Registrar IANA ID:                672943168
+Registrar URL (registration services):       www.cointernet.com.co
+Domain Status:                               serverTransferProhibited
+Domain Status:                               inactive
+Variant:                                     DNS.CO
+Registrant ID:                               RESTRICTEDNAME
+Registrant Name:                             Restricted and Reserved Names .CO Internet SAS
+Registrant Address1:                         Calle 100# 8a-49 Torre B Oficina 507
+Registrant City:                             Bogota
+Registrant Postal Code:                      00000
+Registrant Country:                          Colombia
+Registrant Country Code:                     CO
+Registrant Phone Number:                     +571.6169916
+Registrant Email:                            soporte@cointernet.com.co
+Administrative Contact ID:                   RESTRICTEDNAME
+Administrative Contact Name:                 Restricted and Reserved Names .CO Internet SAS
+Administrative Contact Address1:             Calle 100# 8a-49 Torre B Oficina 507
+Administrative Contact City:                 Bogota
+Administrative Contact Postal Code:          00000
+Administrative Contact Country:              Colombia
+Administrative Contact Country Code:         CO
+Administrative Contact Phone Number:         +571.6169916
+Administrative Contact Email:                soporte@cointernet.com.co
+Billing Contact ID:                          RESTRICTEDNAME
+Billing Contact Name:                        Restricted and Reserved Names .CO Internet SAS
+Billing Contact Address1:                    Calle 100# 8a-49 Torre B Oficina 507
+Billing Contact City:                        Bogota
+Billing Contact Postal Code:                 00000
+Billing Contact Country:                     Colombia
+Billing Contact Country Code:                CO
+Billing Contact Phone Number:                +571.6169916
+Billing Contact Email:                       soporte@cointernet.com.co
+Technical Contact ID:                        RESTRICTEDNAME
+Technical Contact Name:                      Restricted and Reserved Names .CO Internet SAS
+Technical Contact Address1:                  Calle 100# 8a-49 Torre B Oficina 507
+Technical Contact City:                      Bogota
+Technical Contact Postal Code:               00000
+Technical Contact Country:                   Colombia
+Technical Contact Country Code:              CO
+Technical Contact Phone Number:              +571.6169916
+Technical Contact Email:                     soporte@cointernet.com.co
+Created by Registrar:                        INJECTCSR
+Last Updated by Registrar:                   RESTRICTED AND RESERVED NAMES .COINTERNET
+Domain Registration Date:                    Fri Apr 23 09:12:48 GMT 2010
+Domain Expiration Date:                      Wed Apr 22 23:59:59 GMT 2015
+Domain Last Updated Date:                    Fri Apr 25 16:32:10 GMT 2014
+Registrar Fields
+----------------
+RRC:                                         RESTRICTED-A
+DNSSEC:                                      false
+
+>>>> Whois database was last updated on: Fri Oct 03 16:32:37 GMT 2014 <<<<
+.CO Internet, S.A.S., the Administrator for .CO, has collected this
+information for the WHOIS database through Accredited Registrars.  
+This information is provided to you for informational purposes only 
+and is designed to assist persons in determining contents of a domain 
+name registration record in the .CO Internet registry database. .CO 
+Internet makes this information available to you "as is" and does not 
+guarantee its accuracy.
+ 
+By submitting a WHOIS query, you agree that you will use this data 
+only for lawful purposes and that, under no circumstances will you 
+use this data:  (1) to allow, enable, or otherwise support the transmission 
+of mass unsolicited, commercial advertising or solicitations via direct 
+mail, electronic mail, or by telephone; (2) in contravention of any 
+applicable data and privacy protection laws; or (3) to enable high volume, 
+automated,  electronic processes that apply to the registry (or its systems). 
+Compilation, repackaging, dissemination, or other use of the WHOIS 
+database in its entirety, or of a substantial portion thereof, is not allowed 
+without .CO Internet's prior written permission. .CO Internet reserves the 
+right to modify or change these conditions at any time without prior or 
+subsequent notification of any kind. By executing this query, in any manner 
+whatsoever, you agree to abide by these terms.  In some limited cases, 
+domains that might appear as available in whois might not actually be 
+available as they could be already registered and the whois not yet updated 
+and/or they could be part of the Restricted list. In this cases, performing a 
+check through your Registrar's (EPP check) will give you the actual status 
+of the domain. Additionally, domains currently or previously used as 
+extensions in 3rd level domains will not be available for registration in the 
+2nd level. For example, org.co,mil.co,edu.co,com.co,net.co,nom.co,arts.co,
+firm.co,info.co,int.co,web.co,rec.co,co.co. 
+ 
+NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT 
+INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME.   
+ 
+All domain names are subject to certain additional domain name registration 
+rules. For details, please visit our site at www.cointernet.co <http://www.cointernet.co>.
diff --git a/testdata/responses/whois.nic.co/google.co.mime b/testdata/responses/whois.nic.co/google.co.mime
new file mode 100644
index 0000000..20d9674
--- /dev/null
+++ b/testdata/responses/whois.nic.co/google.co.mime
@@ -0,0 +1,85 @@
+MIME-Version: 1.0
+Content-Checksum: f090b77233ee79bfbca75e23c0cd8da6e1f3a7e4
+Content-Length: 4996
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.nic.co
+Query: google.co
+
+Domain Name: google.co
+Registry Domain ID: D656843-CO
+Registrar WHOIS Server: whois.markmonitor.com
+Registrar URL: www.markmonitor.com
+Updated Date: 2020-01-28T10:35:17Z
+Creation Date: 2010-02-25T01:04:59Z
+Registry Expiry Date: 2021-02-24T23:59:59Z
+Registrar: MarkMonitor, Inc.
+Registrar IANA ID: 292
+Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
+Registrar Abuse Contact Phone: +1.2083895740
+Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
+Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
+Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+Registry Registrant ID:
+Registrant Name:
+Registrant Organization: Google Inc.
+Registrant Street:
+Registrant Street:
+Registrant Street:
+Registrant City:
+Registrant State/Province: CA
+Registrant Postal Code:
+Registrant Country: US
+Registrant Phone:
+Registrant Phone Ext:
+Registrant Fax:
+Registrant Fax Ext:
+Registrant Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
+Registry Admin ID:
+Admin Name:
+Admin Organization:
+Admin Street:
+Admin Street:
+Admin Street:
+Admin City:
+Admin State/Province:
+Admin Postal Code:
+Admin Country:
+Admin Phone:
+Admin Phone Ext:
+Admin Fax:
+Admin Fax Ext:
+Admin Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
+Registry Tech ID:
+Tech Name:
+Tech Organization:
+Tech Street:
+Tech Street:
+Tech Street:
+Tech City:
+Tech State/Province:
+Tech Postal Code:
+Tech Country:
+Tech Phone:
+Tech Phone Ext:
+Tech Fax:
+Tech Fax Ext:
+Tech Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
+Name Server: ns3.google.com
+Name Server: ns1.google.com
+Name Server: ns2.google.com
+Name Server: ns4.google.com
+DNSSEC: unsigned
+URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of WHOIS database: 2020-08-07T16:16:25Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+The above WHOIS results have been redacted to remove potential personal data. The full WHOIS output may be available to individuals and organisations with a legitimate interest in accessing this data not outweighed by the fundamental privacy rights of the data subject. To find out more, or to make a request for access, please visit: RDDSrequest.nic.co.
+
+.CO Internet, S.A.S., the Administrator for .CO, has collected this information for the WHOIS database through Accredited Registrars. This information is provided to you for informational purposes only and is designed to assist persons in determining contents of a domain name registration record in the .CO Internet registry database. .CO Internet makes this information available to you "as is" and does not guarantee its accuracy.
+
+By submitting a WHOIS query, you agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data:  (1) to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via direct mail, electronic mail, or by telephone; (2) in contravention of any applicable data and privacy protection laws; or (3) to enable high volume, automated,  electronic processes that apply to the registry (or its systems). Compilation, repackaging, dissemination, or other use of the WHOIS database in its entirety, or of a substantial portion thereof, is not allowed without .CO Internet's prior written permission. .CO Internet reserves the right to modify or change these conditions at any time without prior or subsequent notification of any kind. By executing this query, in any manner whatsoever, you agree to abide by these terms.  In some limited cases, domains that might appear as available in whois might not actually be available as they could be already registered and the whois not yet updated and/or they could be part of the Restricted list. In this cases, performing a check through your Registrar's (EPP check) will give you the actual status of the domain. Additionally, domains currently or previously used as extensions in 3rd level domains will not be available for registration in the 2nd level. For example, org.co, mil.co, edu.co, com.co, net.co, nom.co, arts.co, firm.co, info.co, int.co, web.co, rec.co, co.co.
+
+NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME. All domain names are subject to certain additional domain name registration rules. For details, please visit our site at www.cointernet.co <http://www.cointernet.co>.
+
diff --git a/testdata/responses/whois.nic.co/nic.co.mime b/testdata/responses/whois.nic.co/nic.co.mime
new file mode 100644
index 0000000..d264f43
--- /dev/null
+++ b/testdata/responses/whois.nic.co/nic.co.mime
@@ -0,0 +1,81 @@
+MIME-Version: 1.0
+Content-Checksum: a635945611fd9f37a094d3d327d42b76f5dcfa7d
+Content-Length: 4728
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:24Z
+Host: whois.nic.co
+Query: nic.co
+
+Domain Name: nic.co
+Registry Domain ID: D734276-CO
+Registrar WHOIS Server:
+Registrar URL: www.cointernet.com.co
+Updated Date: 2020-06-07T00:02:03Z
+Creation Date: 2010-04-23T09:12:48Z
+Registry Expiry Date: 2021-04-22T23:59:59Z
+Registrar: .COInternet Restricted and Reserved names
+Registrar IANA ID: 672943168
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+Domain Status: inactive https://icann.org/epp#inactive
+Registry Registrant ID:
+Registrant Name:
+Registrant Organization:
+Registrant Street:
+Registrant Street:
+Registrant Street:
+Registrant City:
+Registrant State/Province:
+Registrant Postal Code:
+Registrant Country: CO
+Registrant Phone:
+Registrant Phone Ext:
+Registrant Fax:
+Registrant Fax Ext:
+Registrant Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
+Registry Admin ID:
+Admin Name:
+Admin Organization:
+Admin Street:
+Admin Street:
+Admin Street:
+Admin City:
+Admin State/Province:
+Admin Postal Code:
+Admin Country:
+Admin Phone:
+Admin Phone Ext:
+Admin Fax:
+Admin Fax Ext:
+Admin Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
+Registry Tech ID:
+Tech Name:
+Tech Organization:
+Tech Street:
+Tech Street:
+Tech Street:
+Tech City:
+Tech State/Province:
+Tech Postal Code:
+Tech Country:
+Tech Phone:
+Tech Phone Ext:
+Tech Fax:
+Tech Fax Ext:
+Tech Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
+Name Server:
+DNSSEC: unsigned
+URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of WHOIS database: 2020-08-07T16:16:24Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+The above WHOIS results have been redacted to remove potential personal data. The full WHOIS output may be available to individuals and organisations with a legitimate interest in accessing this data not outweighed by the fundamental privacy rights of the data subject. To find out more, or to make a request for access, please visit: RDDSrequest.nic.co.
+
+.CO Internet, S.A.S., the Administrator for .CO, has collected this information for the WHOIS database through Accredited Registrars. This information is provided to you for informational purposes only and is designed to assist persons in determining contents of a domain name registration record in the .CO Internet registry database. .CO Internet makes this information available to you "as is" and does not guarantee its accuracy.
+
+By submitting a WHOIS query, you agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data:  (1) to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via direct mail, electronic mail, or by telephone; (2) in contravention of any applicable data and privacy protection laws; or (3) to enable high volume, automated,  electronic processes that apply to the registry (or its systems). Compilation, repackaging, dissemination, or other use of the WHOIS database in its entirety, or of a substantial portion thereof, is not allowed without .CO Internet's prior written permission. .CO Internet reserves the right to modify or change these conditions at any time without prior or subsequent notification of any kind. By executing this query, in any manner whatsoever, you agree to abide by these terms.  In some limited cases, domains that might appear as available in whois might not actually be available as they could be already registered and the whois not yet updated and/or they could be part of the Restricted list. In this cases, performing a check through your Registrar's (EPP check) will give you the actual status of the domain. Additionally, domains currently or previously used as extensions in 3rd level domains will not be available for registration in the 2nd level. For example, org.co, mil.co, edu.co, com.co, net.co, nom.co, arts.co, firm.co, info.co, int.co, web.co, rec.co, co.co.
+
+NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME. All domain names are subject to certain additional domain name registration rules. For details, please visit our site at www.cointernet.co <http://www.cointernet.co>.
+
diff --git a/testdata/responses/whois.nic.co/whois.co.mime b/testdata/responses/whois.nic.co/whois.co.mime
new file mode 100644
index 0000000..39a9236
--- /dev/null
+++ b/testdata/responses/whois.nic.co/whois.co.mime
@@ -0,0 +1,109 @@
+MIME-Version: 1.0
+Content-Checksum: f071bf61e32686eaa14cca4f0dd9509066dc00bb
+Content-Length: 6301
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-09-29T12:26:19Z
+Host: whois.nic.co
+Query: whois.co
+
+Domain Name:                                 WHOIS.CO
+Domain ID:                                   D626927-CO
+Sponsoring Registrar:                        NEUSTAR, INC.
+Sponsoring Registrar IANA ID:                1111112
+Registrar URL (registration services):       www.neustarregistry.biz
+Domain Status:                               serverDeleteProhibited
+Domain Status:                               serverTransferProhibited
+Domain Status:                               serverUpdateProhibited
+Domain Status:                               inactive
+Variant:                                     WHOIS.CO
+Registrant ID:                               CI_11307656
+Registrant Name:                             .CO Internet S.A.S.
+Registrant Organization:                     .CO Internet S.A.S.
+Registrant Address1:                         Calle 100 No. 8 A - 49, Torre B Of. 507
+Registrant City:                             Bogota
+Registrant State/Province:                   Distrito Capital de Santa Fe de Bogota
+Registrant Postal Code:                      110221
+Registrant Country:                          Colombia
+Registrant Country Code:                     CO
+Registrant Phone Number:                     +571.6169961
+Registrant Facsimile Number:                 +571.2191942
+Registrant Email:                            soporte@cointernet.co
+Administrative Contact ID:                   CI_11307656
+Administrative Contact Name:                 .CO Internet S.A.S.
+Administrative Contact Organization:         .CO Internet S.A.S.
+Administrative Contact Address1:             Calle 100 No. 8 A - 49, Torre B Of. 507
+Administrative Contact City:                 Bogota
+Administrative Contact State/Province:       Distrito Capital de Santa Fe de Bogota
+Administrative Contact Postal Code:          110221
+Administrative Contact Country:              Colombia
+Administrative Contact Country Code:         CO
+Administrative Contact Phone Number:         +571.6169961
+Administrative Contact Facsimile Number:     +571.2191942
+Administrative Contact Email:                soporte@cointernet.co
+Billing Contact ID:                          CI_11307656
+Billing Contact Name:                        .CO Internet S.A.S.
+Billing Contact Organization:                .CO Internet S.A.S.
+Billing Contact Address1:                    Calle 100 No. 8 A - 49, Torre B Of. 507
+Billing Contact City:                        Bogota
+Billing Contact State/Province:              Distrito Capital de Santa Fe de Bogota
+Billing Contact Postal Code:                 110221
+Billing Contact Country:                     Colombia
+Billing Contact Country Code:                CO
+Billing Contact Phone Number:                +571.6169961
+Billing Contact Facsimile Number:            +571.2191942
+Billing Contact Email:                       soporte@cointernet.co
+Technical Contact ID:                        CI_11307656
+Technical Contact Name:                      .CO Internet S.A.S.
+Technical Contact Organization:              .CO Internet S.A.S.
+Technical Contact Address1:                  Calle 100 No. 8 A - 49, Torre B Of. 507
+Technical Contact City:                      Bogota
+Technical Contact State/Province:            Distrito Capital de Santa Fe de Bogota
+Technical Contact Postal Code:               110221
+Technical Contact Country:                   Colombia
+Technical Contact Country Code:              CO
+Technical Contact Phone Number:              +571.6169961
+Technical Contact Facsimile Number:          +571.2191942
+Technical Contact Email:                     soporte@cointernet.co
+Created by Registrar:                        NEULEVELCSR
+Last Updated by Registrar:                   ASKINNER
+Domain Registration Date:                    Sat Feb 06 06:53:37 GMT 2010
+Domain Expiration Date:                      Thu Feb 05 23:59:59 GMT 2015
+Domain Last Updated Date:                    Tue May 20 18:08:48 GMT 2014
+DNSSEC:                                      false
+
+>>>> Whois database was last updated on: Mon Sep 29 12:22:40 GMT 2014 <<<<
+.CO Internet, S.A.S., the Administrator for .CO, has collected this
+information for the WHOIS database through Accredited Registrars.  
+This information is provided to you for informational purposes only 
+and is designed to assist persons in determining contents of a domain 
+name registration record in the .CO Internet registry database. .CO 
+Internet makes this information available to you "as is" and does not 
+guarantee its accuracy.
+ 
+By submitting a WHOIS query, you agree that you will use this data 
+only for lawful purposes and that, under no circumstances will you 
+use this data:  (1) to allow, enable, or otherwise support the transmission 
+of mass unsolicited, commercial advertising or solicitations via direct 
+mail, electronic mail, or by telephone; (2) in contravention of any 
+applicable data and privacy protection laws; or (3) to enable high volume, 
+automated,  electronic processes that apply to the registry (or its systems). 
+Compilation, repackaging, dissemination, or other use of the WHOIS 
+database in its entirety, or of a substantial portion thereof, is not allowed 
+without .CO Internet's prior written permission. .CO Internet reserves the 
+right to modify or change these conditions at any time without prior or 
+subsequent notification of any kind. By executing this query, in any manner 
+whatsoever, you agree to abide by these terms.  In some limited cases, 
+domains that might appear as available in whois might not actually be 
+available as they could be already registered and the whois not yet updated 
+and/or they could be part of the Restricted list. In this cases, performing a 
+check through your Registrar's (EPP check) will give you the actual status 
+of the domain. Additionally, domains currently or previously used as 
+extensions in 3rd level domains will not be available for registration in the 
+2nd level. For example, org.co,mil.co,edu.co,com.co,net.co,nom.co,arts.co,
+firm.co,info.co,int.co,web.co,rec.co,co.co. 
+ 
+NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT 
+INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME.   
+ 
+All domain names are subject to certain additional domain name registration 
+rules. For details, please visit our site at www.cointernet.co <http://www.cointernet.co>.
diff --git a/testdata/responses/whois.nic.co/www.co.mime b/testdata/responses/whois.nic.co/www.co.mime
new file mode 100644
index 0000000..559eac0
--- /dev/null
+++ b/testdata/responses/whois.nic.co/www.co.mime
@@ -0,0 +1,98 @@
+MIME-Version: 1.0
+Content-Checksum: e970b508ab5f5a88c69eb4590c70ad59c783191a
+Content-Length: 5605
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-03T16:12:55Z
+Host: whois.nic.co
+Query: www.co
+
+Domain Name:                                 WWW.CO
+Domain ID:                                   D734272-CO
+Sponsoring Registrar:                        RESTRICTED AND RESERVED NAMES .COINTERNET
+Sponsoring Registrar IANA ID:                672943168
+Registrar URL (registration services):       www.cointernet.com.co
+Domain Status:                               serverTransferProhibited
+Domain Status:                               inactive
+Variant:                                     WWW.CO
+Registrant ID:                               RESTRICTEDNAME
+Registrant Name:                             Restricted and Reserved Names .CO Internet SAS
+Registrant Address1:                         Calle 100# 8a-49 Torre B Oficina 507
+Registrant City:                             Bogota
+Registrant Postal Code:                      00000
+Registrant Country:                          Colombia
+Registrant Country Code:                     CO
+Registrant Phone Number:                     +571.6169916
+Registrant Email:                            soporte@cointernet.com.co
+Administrative Contact ID:                   RESTRICTEDNAME
+Administrative Contact Name:                 Restricted and Reserved Names .CO Internet SAS
+Administrative Contact Address1:             Calle 100# 8a-49 Torre B Oficina 507
+Administrative Contact City:                 Bogota
+Administrative Contact Postal Code:          00000
+Administrative Contact Country:              Colombia
+Administrative Contact Country Code:         CO
+Administrative Contact Phone Number:         +571.6169916
+Administrative Contact Email:                soporte@cointernet.com.co
+Billing Contact ID:                          RESTRICTEDNAME
+Billing Contact Name:                        Restricted and Reserved Names .CO Internet SAS
+Billing Contact Address1:                    Calle 100# 8a-49 Torre B Oficina 507
+Billing Contact City:                        Bogota
+Billing Contact Postal Code:                 00000
+Billing Contact Country:                     Colombia
+Billing Contact Country Code:                CO
+Billing Contact Phone Number:                +571.6169916
+Billing Contact Email:                       soporte@cointernet.com.co
+Technical Contact ID:                        RESTRICTEDNAME
+Technical Contact Name:                      Restricted and Reserved Names .CO Internet SAS
+Technical Contact Address1:                  Calle 100# 8a-49 Torre B Oficina 507
+Technical Contact City:                      Bogota
+Technical Contact Postal Code:               00000
+Technical Contact Country:                   Colombia
+Technical Contact Country Code:              CO
+Technical Contact Phone Number:              +571.6169916
+Technical Contact Email:                     soporte@cointernet.com.co
+Created by Registrar:                        INJECTCSR
+Last Updated by Registrar:                   RESTRICTED AND RESERVED NAMES .COINTERNET
+Domain Registration Date:                    Fri Apr 23 09:12:47 GMT 2010
+Domain Expiration Date:                      Wed Apr 22 23:59:59 GMT 2015
+Domain Last Updated Date:                    Fri Apr 25 16:53:26 GMT 2014
+Registrar Fields
+----------------
+RRC:                                         RESTRICTED-A
+DNSSEC:                                      false
+
+>>>> Whois database was last updated on: Fri Oct 03 16:09:04 GMT 2014 <<<<
+.CO Internet, S.A.S., the Administrator for .CO, has collected this
+information for the WHOIS database through Accredited Registrars.  
+This information is provided to you for informational purposes only 
+and is designed to assist persons in determining contents of a domain 
+name registration record in the .CO Internet registry database. .CO 
+Internet makes this information available to you "as is" and does not 
+guarantee its accuracy.
+ 
+By submitting a WHOIS query, you agree that you will use this data 
+only for lawful purposes and that, under no circumstances will you 
+use this data:  (1) to allow, enable, or otherwise support the transmission 
+of mass unsolicited, commercial advertising or solicitations via direct 
+mail, electronic mail, or by telephone; (2) in contravention of any 
+applicable data and privacy protection laws; or (3) to enable high volume, 
+automated,  electronic processes that apply to the registry (or its systems). 
+Compilation, repackaging, dissemination, or other use of the WHOIS 
+database in its entirety, or of a substantial portion thereof, is not allowed 
+without .CO Internet's prior written permission. .CO Internet reserves the 
+right to modify or change these conditions at any time without prior or 
+subsequent notification of any kind. By executing this query, in any manner 
+whatsoever, you agree to abide by these terms.  In some limited cases, 
+domains that might appear as available in whois might not actually be 
+available as they could be already registered and the whois not yet updated 
+and/or they could be part of the Restricted list. In this cases, performing a 
+check through your Registrar's (EPP check) will give you the actual status 
+of the domain. Additionally, domains currently or previously used as 
+extensions in 3rd level domains will not be available for registration in the 
+2nd level. For example, org.co,mil.co,edu.co,com.co,net.co,nom.co,arts.co,
+firm.co,info.co,int.co,web.co,rec.co,co.co. 
+ 
+NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT 
+INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME.   
+ 
+All domain names are subject to certain additional domain name registration 
+rules. For details, please visit our site at www.cointernet.co <http://www.cointernet.co>. 
diff --git a/testdata/responses/whois.nic.co/zx5v7d4v2k50l3pq.co.mime b/testdata/responses/whois.nic.co/zx5v7d4v2k50l3pq.co.mime
new file mode 100644
index 0000000..6f09619
--- /dev/null
+++ b/testdata/responses/whois.nic.co/zx5v7d4v2k50l3pq.co.mime
@@ -0,0 +1,22 @@
+MIME-Version: 1.0
+Content-Checksum: dd4f3c13ca4d327807e73a5e821c4a3be6afc01b
+Content-Length: 2836
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.nic.co
+Query: zx5v7d4v2k50l3pq.co
+
+No Data Found
+URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of WHOIS database: 2020-08-07T16:16:25Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+The above WHOIS results have been redacted to remove potential personal data. The full WHOIS output may be available to individuals and organisations with a legitimate interest in accessing this data not outweighed by the fundamental privacy rights of the data subject. To find out more, or to make a request for access, please visit: RDDSrequest.nic.co.
+
+.CO Internet, S.A.S., the Administrator for .CO, has collected this information for the WHOIS database through Accredited Registrars. This information is provided to you for informational purposes only and is designed to assist persons in determining contents of a domain name registration record in the .CO Internet registry database. .CO Internet makes this information available to you "as is" and does not guarantee its accuracy.
+
+By submitting a WHOIS query, you agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data:  (1) to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via direct mail, electronic mail, or by telephone; (2) in contravention of any applicable data and privacy protection laws; or (3) to enable high volume, automated,  electronic processes that apply to the registry (or its systems). Compilation, repackaging, dissemination, or other use of the WHOIS database in its entirety, or of a substantial portion thereof, is not allowed without .CO Internet's prior written permission. .CO Internet reserves the right to modify or change these conditions at any time without prior or subsequent notification of any kind. By executing this query, in any manner whatsoever, you agree to abide by these terms.  In some limited cases, domains that might appear as available in whois might not actually be available as they could be already registered and the whois not yet updated and/or they could be part of the Restricted list. In this cases, performing a check through your Registrar's (EPP check) will give you the actual status of the domain. Additionally, domains currently or previously used as extensions in 3rd level domains will not be available for registration in the 2nd level. For example, org.co, mil.co, edu.co, com.co, net.co, nom.co, arts.co, firm.co, info.co, int.co, web.co, rec.co, co.co.
+
+NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME. All domain names are subject to certain additional domain name registration rules. For details, please visit our site at www.cointernet.co <http://www.cointernet.co>.
+
diff --git a/testdata/responses/whois.nic.es/dns.es.mime b/testdata/responses/whois.nic.es/dns.es.mime
new file mode 100644
index 0000000..aca2fb3
Binary files /dev/null and b/testdata/responses/whois.nic.es/dns.es.mime differ
diff --git a/testdata/responses/whois.nic.es/google.es.mime b/testdata/responses/whois.nic.es/google.es.mime
new file mode 100644
index 0000000..3e27a55
Binary files /dev/null and b/testdata/responses/whois.nic.es/google.es.mime differ
diff --git a/testdata/responses/whois.nic.es/nic.es.mime b/testdata/responses/whois.nic.es/nic.es.mime
new file mode 100644
index 0000000..4b45403
Binary files /dev/null and b/testdata/responses/whois.nic.es/nic.es.mime differ
diff --git a/testdata/responses/whois.nic.es/whois.es.mime b/testdata/responses/whois.nic.es/whois.es.mime
new file mode 100644
index 0000000..8f660fe
Binary files /dev/null and b/testdata/responses/whois.nic.es/whois.es.mime differ
diff --git a/testdata/responses/whois.nic.es/www.es.mime b/testdata/responses/whois.nic.es/www.es.mime
new file mode 100644
index 0000000..7871da9
Binary files /dev/null and b/testdata/responses/whois.nic.es/www.es.mime differ
diff --git a/testdata/responses/whois.nic.es/zx5v7d4v2k50l3pq.es.mime b/testdata/responses/whois.nic.es/zx5v7d4v2k50l3pq.es.mime
new file mode 100644
index 0000000..870840b
Binary files /dev/null and b/testdata/responses/whois.nic.es/zx5v7d4v2k50l3pq.es.mime differ
diff --git a/testdata/responses/whois.nic.fr/dns.fr.mime b/testdata/responses/whois.nic.fr/dns.fr.mime
new file mode 100644
index 0000000..780e25f
--- /dev/null
+++ b/testdata/responses/whois.nic.fr/dns.fr.mime
@@ -0,0 +1,102 @@
+MIME-Version: 1.0
+Content-Checksum: 95d91619d39b59af17990ef131ee3d0332a69777
+Content-Length: 2542
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:37:49Z
+Host: whois.nic.fr
+Query: dns.fr
+
+%%
+%% This is the AFNIC Whois server.
+%%
+%% complete date format : DD/MM/YYYY
+%% short date format    : DD/MM
+%% version              : FRNIC-2.5
+%%
+%% Rights restricted by copyright.
+%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
+%%
+%% Use '-h' option to obtain more information about this service.
+%%
+%% [75.148.161.129 REQUEST] >> dns.fr
+%%
+%% RL Net [##########] - RL IP [########..]
+%%
+
+domain:      dns.fr
+status:      ACTIVE
+hold:        NO
+holder-c:    ANO00-FRNIC
+admin-c:     ANO00-FRNIC
+tech-c:      GR283-FRNIC
+zone-c:      NFC1-FRNIC
+nsl-id:      NSL33187-FRNIC
+registrar:   GANDI
+anniversary: 29/08
+created:     29/08/2011
+last-update: 29/08/2011
+source:      FRNIC
+
+ns-list:     NSL33187-FRNIC
+nserver:     b.dns.gandi.net
+nserver:     a.dns.gandi.net
+nserver:     c.dns.gandi.net
+source:      FRNIC
+
+registrar:   GANDI
+type:        Isp Option 1
+address:     63-65 boulevard Massena
+address:     PARIS
+country:     FR
+phone:       +33 1 70 37 76 61
+fax-no:      +33 1 43 73 18 51
+e-mail:      support-fr@support.gandi.net
+website:     http://www.gandi.net
+anonymous:   NO
+registered:  09/03/2004
+source:      FRNIC
+
+nic-hdl:     GR283-FRNIC
+type:        ROLE
+contact:     GANDI ROLE
+address:     Gandi
+address:     15, place de la Nation
+address:     75011 Paris
+country:     FR
+e-mail:      noc@gandi.net
+trouble:     -------------------------------------------------
+trouble:     GANDI is an ICANN accredited registrar
+trouble:     for more information:
+trouble:     Web:   http://www.gandi.net
+trouble:     -------------------------------------------------
+trouble:     - network troubles: noc@gandi.net
+trouble:     - SPAM:             abuse@gandi.net
+trouble:     -------------------------------------------------
+admin-c:     NL346-FRNIC
+tech-c:      NL346-FRNIC
+tech-c:      TUF1-FRNIC
+notify:      noc@gandi.net
+registrar:   GANDI
+changed:     03/03/2006 noc@gandi.net
+anonymous:   NO
+obsoleted:   NO
+source:      FRNIC
+
+nic-hdl:     ANO00-FRNIC
+type:        PERSON
+contact:     Ano Nymous
+remarks:     -------------- WARNING --------------
+remarks:     While the registrar knows him/her,
+remarks:     this person chose to restrict access
+remarks:     to his/her personal data. So PLEASE,
+remarks:     don't send emails to Ano Nymous. This
+remarks:     address is bogus and there is no hope
+remarks:     of a reply.
+remarks:     -------------- WARNING --------------
+registrar:   GANDI
+changed:     15/07/2011 anonymous@nowhere.xx.fr
+anonymous:   YES
+obsoleted:   NO
+eligstatus:  ok
+source:      FRNIC
+
diff --git a/testdata/responses/whois.nic.fr/google.fr.mime b/testdata/responses/whois.nic.fr/google.fr.mime
new file mode 100644
index 0000000..8e634ff
--- /dev/null
+++ b/testdata/responses/whois.nic.fr/google.fr.mime
@@ -0,0 +1,112 @@
+MIME-Version: 1.0
+Content-Checksum: 6eda6706b58ecc41c47feaf6ca46ba4b419c39de
+Content-Length: 2460
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:37:50Z
+Host: whois.nic.fr
+Query: google.fr
+
+%%
+%% This is the AFNIC Whois server.
+%%
+%% complete date format : DD/MM/YYYY
+%% short date format    : DD/MM
+%% version              : FRNIC-2.5
+%%
+%% Rights restricted by copyright.
+%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
+%%
+%% Use '-h' option to obtain more information about this service.
+%%
+%% [75.148.161.129 REQUEST] >> google.fr
+%%
+%% RL Net [#########.] - RL IP [#######...]
+%%
+
+domain:      google.fr
+status:      ACTIVE
+hold:        NO
+holder-c:    GIH6-FRNIC
+admin-c:     TT599-FRNIC
+tech-c:      CP4370-FRNIC
+zone-c:      NFC1-FRNIC
+nsl-id:      NSL4386-FRNIC
+registrar:   MARKMONITOR Inc.
+anniversary: 30/12
+created:     27/07/2000
+last-update: 30/12/2011
+source:      FRNIC
+
+ns-list:     NSL4386-FRNIC
+nserver:     ns1.google.com
+nserver:     ns2.google.com
+nserver:     ns3.google.com
+nserver:     ns4.google.com
+source:      FRNIC
+
+registrar:   MARKMONITOR Inc.
+type:        Isp Option 1
+address:     391 N. Ancestor Place
+address:     ID 83704 BOISE
+country:     US
+phone:       +1 208 389 5740
+fax-no:      +1 208 389 5771
+e-mail:      ccops@markmonitor.com
+website:     http://www.markmonitor.com
+anonymous:   NO
+registered:  10/01/2002
+source:      FRNIC
+
+nic-hdl:     TT599-FRNIC
+type:        PERSON
+contact:     Tu Tsao
+address:     Google France
+address:     38, avenue de l'Opera
+address:     75002 Paris
+country:     FR
+phone:       +33 6 50 33 00 10
+e-mail:      dns-admin@google.com
+registrar:   MARKMONITOR Inc.
+changed:     15/02/2011 nic@nic.fr
+anonymous:   NO
+obsoleted:   NO
+source:      FRNIC
+
+nic-hdl:     CP4370-FRNIC
+type:        PERSON
+contact:     Ccops Provisioning
+address:     MarkMonitor
+address:     10400 Overland Rd.
+address:     PMB 155
+address:     83709 Boise
+country:     US
+phone:       +1 2083895740
+fax-no:      +1 2083895771
+e-mail:      ccops@markmonitor.com
+registrar:   MARKMONITOR Inc.
+changed:     14/06/2011 nic@nic.fr
+anonymous:   NO
+obsoleted:   NO
+source:      FRNIC
+
+nic-hdl:     GIH6-FRNIC
+type:        ORGANIZATION
+contact:     Google Ireland Holdings
+address:     70 Sir John Rogersons Quay
+address:     2 Dublin
+country:     IE
+phone:       +353 14361000
+e-mail:      dns-admin@google.com
+registrar:   MARKMONITOR Inc.
+changed:     03/07/2013 nic@nic.fr
+anonymous:   NO
+obsoleted:   NO
+eligstatus:  ok
+eligsource:  REGISTRAR
+eligdate:    30/12/2011 18:15:32
+reachmedia:  email
+reachstatus: ok
+reachsource: REGISTRAR
+reachdate:   03/07/2013 01:49:01
+source:      FRNIC
+
diff --git a/testdata/responses/whois.nic.fr/nic.fr.mime b/testdata/responses/whois.nic.fr/nic.fr.mime
new file mode 100644
index 0000000..f8a081a
--- /dev/null
+++ b/testdata/responses/whois.nic.fr/nic.fr.mime
@@ -0,0 +1,29 @@
+MIME-Version: 1.0
+Content-Checksum: cbe41aa0b8a921a893918f2fc310ab196d7af389
+Content-Length: 479
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:37:49Z
+Host: whois.nic.fr
+Query: nic.fr
+
+%%
+%% This is the AFNIC Whois server.
+%%
+%% complete date format : DD/MM/YYYY
+%% short date format    : DD/MM
+%% version              : FRNIC-2.5
+%%
+%% Rights restricted by copyright.
+%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
+%%
+%% Use '-h' option to obtain more information about this service.
+%%
+%% [75.148.161.129 REQUEST] >> nic.fr
+%%
+%% RL Net [#########.] - RL IP [..........]
+%%
+%% Too many requests...
+%%
+
+%% No entries found in the AFNIC Database.
+
diff --git a/testdata/responses/whois.nic.fr/whois.fr.mime b/testdata/responses/whois.nic.fr/whois.fr.mime
new file mode 100644
index 0000000..0d9e70c
--- /dev/null
+++ b/testdata/responses/whois.nic.fr/whois.fr.mime
@@ -0,0 +1,90 @@
+MIME-Version: 1.0
+Content-Checksum: 21b300ba80d04749d56ea930bb11329e1de35f06
+Content-Length: 2070
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-05T20:37:50Z
+Host: whois.nic.fr
+Query: whois.fr
+
+%%
+%% This is the AFNIC Whois server.
+%%
+%% complete date format : DD/MM/YYYY
+%% short date format    : DD/MM
+%% version              : FRNIC-2.5
+%%
+%% Rights restricted by copyright.
+%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
+%%
+%% Use '-h' option to obtain more information about this service.
+%%
+%% [75.148.161.129 REQUEST] >> whois.fr
+%%
+%% RL Net [#########.] - RL IP [########..]
+%%
+
+domain:      whois.fr
+status:      ACTIVE
+hold:        NO
+holder-c:    AFNI2-FRNIC
+admin-c:     AFNI2-FRNIC
+tech-c:      GRST1-FRNIC
+tech-c:      AFNI2-FRNIC
+zone-c:      NFC1-FRNIC
+nsl-id:      NSL1-FRNIC
+registrar:   GIP RENATER
+anniversary: 21/04
+created:     21/04/2011
+last-update: 05/07/2011
+source:      FRNIC
+
+ns-list:     NSL1-FRNIC
+nserver:     ns1.nic.fr [192.134.4.1 2001:660:3003:2::4:1]
+nserver:     ns2.nic.fr [192.93.0.4 2001:660:3005:1::1:2]
+nserver:     ns3.nic.fr [192.134.0.49 2001:660:3006:1::1:1]
+source:      FRNIC
+
+registrar:   GIP RENATER
+type:        Isp Option 1
+address:     23-25 Rue Daviel
+address:     PARIS
+country:     FR
+phone:       +33 1 53 94 20 30
+fax-no:      +33 1 53 94 20 31
+e-mail:      domaine@renater.fr
+website:     http://www.renater.fr
+anonymous:   NO
+registered:  01/01/1998
+source:      FRNIC
+
+nic-hdl:     AFNI2-FRNIC
+type:        ORGANIZATION
+contact:     ASS FRANC NOMMAGE INTERNET EN COOP
+address:     2, rue Stephenson
+address:     immeuble international
+address:     78181 Saint Quentin en Yvelines Cedex
+country:     FR
+phone:       +33 1 39 30 83 00
+e-mail:      juridique@afnic.fr
+registrar:   GIP RENATER
+changed:     09/10/2008 whoismaster@nic.fr
+anonymous:   NO
+obsoleted:   NO
+eligstatus:  ok
+eligdate:    29/08/2008 00:00:00
+source:      FRNIC
+
+nic-hdl:     GRST1-FRNIC
+type:        PERSON
+contact:     Gip Renater Support Technique Dns
+address:     23-25, rue Daviel
+address:     75013 Paris
+country:     FR
+phone:       +33 1 53 94 20 40
+e-mail:      support-dns@support.renater.fr
+registrar:   GIP RENATER
+changed:     26/09/2011 nic@nic.fr
+anonymous:   NO
+obsoleted:   NO
+source:      FRNIC
+
diff --git a/testdata/responses/whois.nic.fr/www.fr.mime b/testdata/responses/whois.nic.fr/www.fr.mime
new file mode 100644
index 0000000..31b72da
--- /dev/null
+++ b/testdata/responses/whois.nic.fr/www.fr.mime
@@ -0,0 +1,29 @@
+MIME-Version: 1.0
+Content-Checksum: a0f4a46f3f84628d5498aa37012be24abc0be6f1
+Content-Length: 479
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:37:49Z
+Host: whois.nic.fr
+Query: www.fr
+
+%%
+%% This is the AFNIC Whois server.
+%%
+%% complete date format : DD/MM/YYYY
+%% short date format    : DD/MM
+%% version              : FRNIC-2.5
+%%
+%% Rights restricted by copyright.
+%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
+%%
+%% Use '-h' option to obtain more information about this service.
+%%
+%% [75.148.161.129 REQUEST] >> www.fr
+%%
+%% RL Net [#########.] - RL IP [..........]
+%%
+%% Too many requests...
+%%
+
+%% No entries found in the AFNIC Database.
+
diff --git a/testdata/responses/whois.nic.fr/zx5v7d4v2k50l3pq.fr.mime b/testdata/responses/whois.nic.fr/zx5v7d4v2k50l3pq.fr.mime
new file mode 100644
index 0000000..0ade3be
--- /dev/null
+++ b/testdata/responses/whois.nic.fr/zx5v7d4v2k50l3pq.fr.mime
@@ -0,0 +1,27 @@
+MIME-Version: 1.0
+Content-Checksum: 2da6695a7332793cb013ed2393e5d5c2e3d34db0
+Content-Length: 465
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:37:48Z
+Host: whois.nic.fr
+Query: zx5v7d4v2k50l3pq.fr
+
+%%
+%% This is the AFNIC Whois server.
+%%
+%% complete date format : DD/MM/YYYY
+%% short date format    : DD/MM
+%% version              : FRNIC-2.5
+%%
+%% Rights restricted by copyright.
+%% See http://www.afnic.fr/afnic/web/mentions-legales-whois_en
+%%
+%% Use '-h' option to obtain more information about this service.
+%%
+%% [75.148.161.129 REQUEST] >> zx5v7d4v2k50l3pq.fr
+%%
+%% RL Net [##########] - RL IP [#########.]
+%%
+
+%% No entries found in the AFNIC Database.
+
diff --git a/testdata/responses/whois.nic.io/dns.io.mime b/testdata/responses/whois.nic.io/dns.io.mime
new file mode 100644
index 0000000..8843a51
--- /dev/null
+++ b/testdata/responses/whois.nic.io/dns.io.mime
@@ -0,0 +1,21 @@
+MIME-Version: 1.0
+Content-Checksum: 29c5f53a5e9c41766913ce8d0234afdc44cb8340
+Content-Length: 205
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-04T11:15:41Z
+Host: whois.nic.io
+Query: dns.io
+
+
+Domain : dns.io
+Status : Live
+Expiry : 2015-04-06
+
+NS 1   : ns10.dnsmadeeasy.com
+NS 2   : ns11.dnsmadeeasy.com
+NS 3   : ns12.dnsmadeeasy.com
+NS 4   : ns13.dnsmadeeasy.com
+NS 5   : ns14.dnsmadeeasy.com
+
+
+
diff --git a/testdata/responses/whois.nic.io/google.io.mime b/testdata/responses/whois.nic.io/google.io.mime
new file mode 100644
index 0000000..4fd19d2
--- /dev/null
+++ b/testdata/responses/whois.nic.io/google.io.mime
@@ -0,0 +1,43 @@
+MIME-Version: 1.0
+Content-Checksum: 7b87498289374ec77e12714519808a794860afb5
+Content-Length: 2842
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.nic.io
+Query: google.io
+
+Domain Name: GOOGLE.IO
+Registry Domain ID: D503300000040517313-LRMS
+Registrar WHOIS Server: whois.markmonitor.com
+Registrar URL: http://www.markmonitor.com
+Updated Date: 2019-08-29T09:41:07Z
+Creation Date: 2002-10-01T01:00:00Z
+Registry Expiry Date: 2020-09-30T01:00:00Z
+Registrar Registration Expiration Date:
+Registrar: MarkMonitor Inc.
+Registrar IANA ID: 292
+Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
+Registrar Abuse Contact Phone: +1.2083895740
+Reseller:
+Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
+Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
+Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+Registrant Organization: Google LLC
+Registrant State/Province: CA
+Registrant Country: US
+Name Server: NS1.GOOGLE.COM
+Name Server: NS2.GOOGLE.COM
+Name Server: NS3.GOOGLE.COM
+Name Server: NS4.GOOGLE.COM
+DNSSEC: unsigned
+
+>>> Last update of WHOIS database: 2020-08-07T16:15:25Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to WHOIS information provided by Internet Computer Bureau Ltd. ICB is provided to assist persons in determining the contents of a domain name registration record in the ICB registry database. The data in this record is provided by ICB for informational purposes only, and ICB does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(i) allow, enable, or otherwise support the transmission by e-mail, telephone, facsimile or other electronic means of mass, unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (ii) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or ICB or its services providers except as reasonably necessary to register domain names or modify existing registrations. UK privacy laws limit the scope of information permitted for certain public access.  Therefore, concerns regarding abusive use of domain registrations in the ICB registry should be directed to either (a) the Registrar of Record as indicated in the WHOIS output, or (b) the ICB anti-abuse department at abuse@icbregistry.info.
+
+All rights reserved. ICB reserves the right to modify these terms at any time. By submitting this query, you agree to abide by these policies
diff --git a/testdata/responses/whois.nic.io/nic.io.mime b/testdata/responses/whois.nic.io/nic.io.mime
new file mode 100644
index 0000000..af3aa12
--- /dev/null
+++ b/testdata/responses/whois.nic.io/nic.io.mime
@@ -0,0 +1,40 @@
+MIME-Version: 1.0
+Content-Checksum: b7b626ae06a2ea2928e14fcce43dde0fe290c3a4
+Content-Length: 2498
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:24Z
+Host: whois.nic.io
+Query: nic.io
+
+Domain Name: NIC.IO
+Registry Domain ID: D503300000040453277-LRMS
+Registrar WHOIS Server:
+Registrar URL:
+Updated Date: 2019-03-05T14:41:54Z
+Creation Date: 2003-09-15T11:13:53Z
+Registry Expiry Date: 2027-05-01T00:00:02Z
+Registrar Registration Expiration Date:
+Registrar: Afilias GRS Test Account
+Registrar IANA ID: 119
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Reseller:
+Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+Registrant Organization: Internet Computer Bureau Ltd
+Registrant State/Province: Dorset
+Registrant Country: GB
+Name Server: B0.NIC.IO
+Name Server: A2.NIC.IO
+Name Server: A0.NIC.IO
+Name Server: C0.NIC.IO
+DNSSEC: unsigned
+
+>>> Last update of WHOIS database: 2020-08-07T16:15:24Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to WHOIS information provided by Internet Computer Bureau Ltd. ICB is provided to assist persons in determining the contents of a domain name registration record in the ICB registry database. The data in this record is provided by ICB for informational purposes only, and ICB does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(i) allow, enable, or otherwise support the transmission by e-mail, telephone, facsimile or other electronic means of mass, unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (ii) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or ICB or its services providers except as reasonably necessary to register domain names or modify existing registrations. UK privacy laws limit the scope of information permitted for certain public access.  Therefore, concerns regarding abusive use of domain registrations in the ICB registry should be directed to either (a) the Registrar of Record as indicated in the WHOIS output, or (b) the ICB anti-abuse department at abuse@icbregistry.info.
+
+All rights reserved. ICB reserves the right to modify these terms at any time. By submitting this query, you agree to abide by these policies
diff --git a/testdata/responses/whois.nic.io/whois.io.mime b/testdata/responses/whois.nic.io/whois.io.mime
new file mode 100644
index 0000000..975edf9
--- /dev/null
+++ b/testdata/responses/whois.nic.io/whois.io.mime
@@ -0,0 +1,25 @@
+MIME-Version: 1.0
+Content-Checksum: ae03ec217ec68983690236800b8c8298cce01d28
+Content-Length: 267
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-04T11:15:48Z
+Host: whois.nic.io
+Query: whois.io
+
+
+Domain : whois.io
+Status : Live
+Expiry : 2018-09-11
+
+NS 1   : ns1.dreamhost.com
+NS 2   : ns2.dreamhost.com
+NS 3   : ns3.dreamhost.com
+
+Owner  : Jothan Frakes
+Owner  : Domain Registrant
+Owner  : 313 South 219th Street
+Owner  : Normandy Park
+Owner  : WA
+Owner  : US
+
+
diff --git a/testdata/responses/whois.nic.io/www.io.mime b/testdata/responses/whois.nic.io/www.io.mime
new file mode 100644
index 0000000..d2c4510
--- /dev/null
+++ b/testdata/responses/whois.nic.io/www.io.mime
@@ -0,0 +1,11 @@
+MIME-Version: 1.0
+Content-Checksum: bd58939799bf9f72f02072da7f8a763b385b61a2
+Content-Length: 18
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-05T20:35:02Z
+Host: whois.nic.io
+Query: www.io
+
+
+Domain reserved
+
diff --git a/testdata/responses/whois.nic.io/zx5v7d4v2k50l3pq.io.mime b/testdata/responses/whois.nic.io/zx5v7d4v2k50l3pq.io.mime
new file mode 100644
index 0000000..dd3d3a7
--- /dev/null
+++ b/testdata/responses/whois.nic.io/zx5v7d4v2k50l3pq.io.mime
@@ -0,0 +1,14 @@
+MIME-Version: 1.0
+Content-Checksum: 7c0e9cf85967d728c7a5fb59a796f5b8886ae072
+Content-Length: 1539
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.nic.io
+Query: zx5v7d4v2k50l3pq.io
+
+NOT FOUND
+>>> Last update of WHOIS database: 2020-08-07T16:15:25Z <<<
+
+Access to WHOIS information provided by Internet Computer Bureau Ltd. ICB is provided to assist persons in determining the contents of a domain name registration record in the ICB registry database. The data in this record is provided by ICB for informational purposes only, and ICB does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(i) allow, enable, or otherwise support the transmission by e-mail, telephone, facsimile or other electronic means of mass, unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (ii) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or ICB or its services providers except as reasonably necessary to register domain names or modify existing registrations. UK privacy laws limit the scope of information permitted for certain public access.  Therefore, concerns regarding abusive use of domain registrations in the ICB registry should be directed to either (a) the Registrar of Record as indicated in the WHOIS output, or (b) the ICB anti-abuse department at abuse@icbregistry.info.
+
+All rights reserved. ICB reserves the right to modify these terms at any time. By submitting this query, you agree to abide by these policies
diff --git a/testdata/responses/whois.nic.name/google.name.mime b/testdata/responses/whois.nic.name/google.name.mime
new file mode 100644
index 0000000..9a785be
--- /dev/null
+++ b/testdata/responses/whois.nic.name/google.name.mime
@@ -0,0 +1,65 @@
+MIME-Version: 1.0
+Content-Checksum: d2d1d5d3910c6d3ad21eafbd3b92d2ec32d2b511
+Content-Length: 2857
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2018-07-14T05:46:34Z
+Host: whois.nic.name
+Query: google.name
+
+
+Disclaimer: VeriSign, Inc. makes every effort to maintain the
+completeness and accuracy of the Whois data, but cannot guarantee
+that the results are error-free. Therefore, any data provided
+through the Whois service are on an as is basis without any
+warranties.
+BY USING THE WHOIS SERVICE AND THE DATA CONTAINED
+HEREIN OR IN ANY REPORT GENERATED WITH RESPECT THERETO, IT IS
+ACCEPTED THAT VERISIGN, INC. IS NOT LIABLE FOR
+ANY DAMAGES OF ANY KIND ARISING OUT OF, OR IN CONNECTION WITH, THE
+REPORT OR THE INFORMATION PROVIDED BY THE WHOIS SERVICE, NOR
+OMISSIONS OR MISSING INFORMATION. THE RESULTS OF ANY WHOIS REPORT OR
+INFORMATION PROVIDED BY THE WHOIS SERVICE CANNOT BE RELIED UPON IN
+CONTEMPLATION OF LEGAL PROCEEDINGS WITHOUT FURTHER VERIFICATION, NOR
+DO SUCH RESULTS CONSTITUTE A LEGAL OPINION. Acceptance of the
+results of the Whois constitutes acceptance of these terms,
+conditions and limitations. Whois data may be requested only for
+lawful purposes, in particular, to protect legal rights and
+obligations. Illegitimate uses of Whois data include, but are not
+limited to, unsolicited email, data mining, direct marketing or any
+other improper purpose. Any request made for Whois data will be
+documented by VeriSign, Inc. but will not be used for any commercial purpose whatsoever.
+
+ ****
+
+   Registry Domain ID: 134538139_DOMAIN_NAME-VRSN
+   Domain Name: GOOGLE.NAME
+   Registrar: MarkMonitor Inc.
+   Registrar IANA ID: 292
+   Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
+   Registrar Abuse Contact Phone: +1.2083895740
+   Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+   Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+   Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+   Registry Registrant ID: 14447011_CONTACT_NAME-VRSN
+   Registry Admin ID: 14447011_CONTACT_NAME-VRSN
+   Registry Tech ID: 14447011_CONTACT_NAME-VRSN
+   Registry Billing ID: 14447011_CONTACT_NAME-VRSN
+   Name Server: NS1.GOOGLE.COM
+   Name Server ID: 69815439_HOST_NAME-VRSN
+   Name Server: NS2.GOOGLE.COM
+   Name Server ID: 69815440_HOST_NAME-VRSN
+   Name Server: NS3.GOOGLE.COM
+   Name Server ID: 69815441_HOST_NAME-VRSN
+   Name Server: NS4.GOOGLE.COM
+   Name Server ID: 69815442_HOST_NAME-VRSN
+   Created On: 2010-06-17T00:46:09Z
+   Expires On: 2019-06-17T00:46:12Z
+   Updated On: 2018-05-16T09:33:11Z
+   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+
+>>> Last update of whois database: 2018-07-14T05:46:23Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+To request access to data listed as “Redacted” or “Redacted for Privacy” in the
+above WHOIS result, please contact Customer Service at info@verisign-grs.com
\ No newline at end of file
diff --git a/testdata/responses/whois.nic.name/nic.name.mime b/testdata/responses/whois.nic.name/nic.name.mime
new file mode 100644
index 0000000..f6ad61a
--- /dev/null
+++ b/testdata/responses/whois.nic.name/nic.name.mime
@@ -0,0 +1,61 @@
+MIME-Version: 1.0
+Content-Checksum: adca0b1f49e840ce0c57e9f375fc1c80f29a8a4d
+Content-Length: 2618
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2018-07-14T05:46:34Z
+Host: whois.nic.name
+Query: nic.name
+
+
+Disclaimer: VeriSign, Inc. makes every effort to maintain the
+completeness and accuracy of the Whois data, but cannot guarantee
+that the results are error-free. Therefore, any data provided
+through the Whois service are on an as is basis without any
+warranties.
+BY USING THE WHOIS SERVICE AND THE DATA CONTAINED
+HEREIN OR IN ANY REPORT GENERATED WITH RESPECT THERETO, IT IS
+ACCEPTED THAT VERISIGN, INC. IS NOT LIABLE FOR
+ANY DAMAGES OF ANY KIND ARISING OUT OF, OR IN CONNECTION WITH, THE
+REPORT OR THE INFORMATION PROVIDED BY THE WHOIS SERVICE, NOR
+OMISSIONS OR MISSING INFORMATION. THE RESULTS OF ANY WHOIS REPORT OR
+INFORMATION PROVIDED BY THE WHOIS SERVICE CANNOT BE RELIED UPON IN
+CONTEMPLATION OF LEGAL PROCEEDINGS WITHOUT FURTHER VERIFICATION, NOR
+DO SUCH RESULTS CONSTITUTE A LEGAL OPINION. Acceptance of the
+results of the Whois constitutes acceptance of these terms,
+conditions and limitations. Whois data may be requested only for
+lawful purposes, in particular, to protect legal rights and
+obligations. Illegitimate uses of Whois data include, but are not
+limited to, unsolicited email, data mining, direct marketing or any
+other improper purpose. Any request made for Whois data will be
+documented by VeriSign, Inc. but will not be used for any commercial purpose whatsoever.
+
+ ****
+
+   Registry Domain ID: 134557330_DOMAIN_NAME-VRSN
+   Domain Name: NIC.NAME
+   Registrar: CSC Corporate Domains, Inc.
+   Registrar IANA ID: 299
+   Registrar Abuse Contact Email: domainabuse@cscglobal.com
+   Registrar Abuse Contact Phone: 8887802723
+   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+   Registry Registrant ID: 15852499_CONTACT_NAME-VRSN
+   Registry Admin ID: 15852504_CONTACT_NAME-VRSN
+   Registry Tech ID: 15852504_CONTACT_NAME-VRSN
+   Registry Billing ID: 14577680_CONTACT_NAME-VRSN
+   Name Server: A1.VERISIGNDNS.COM
+   Name Server ID: 70357723_HOST_NAME-VRSN
+   Name Server: A2.VERISIGNDNS.COM
+   Name Server ID: 70435655_HOST_NAME-VRSN
+   Name Server: A3.VERISIGNDNS.COM
+   Name Server ID: 70435656_HOST_NAME-VRSN
+   Created On: 2013-04-14T03:22:41Z
+   Expires On: 2019-04-14T03:22:41Z
+   Updated On: 2018-04-09T05:39:53Z
+   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+
+>>> Last update of whois database: 2018-07-14T05:46:23Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+To request access to data listed as “Redacted” or “Redacted for Privacy” in the
+above WHOIS result, please contact Customer Service at info@verisign-grs.com
\ No newline at end of file
diff --git a/testdata/responses/whois.nic.name/zx5v7d4v2k50l3pq.name.mime b/testdata/responses/whois.nic.name/zx5v7d4v2k50l3pq.name.mime
new file mode 100644
index 0000000..84eca2e
--- /dev/null
+++ b/testdata/responses/whois.nic.name/zx5v7d4v2k50l3pq.name.mime
@@ -0,0 +1,39 @@
+MIME-Version: 1.0
+Content-Checksum: 2982e72be20a70033b6678e28c7e4feab8cc1d22
+Content-Length: 1591
+Content-Type: text/plain; charset=utf-8
+Fetched-At: 2018-07-14T05:46:34Z
+Host: whois.nic.name
+Query: zx5v7d4v2k50l3pq.name
+
+
+Disclaimer: VeriSign, Inc. makes every effort to maintain the
+completeness and accuracy of the Whois data, but cannot guarantee
+that the results are error-free. Therefore, any data provided
+through the Whois service are on an as is basis without any
+warranties.
+BY USING THE WHOIS SERVICE AND THE DATA CONTAINED
+HEREIN OR IN ANY REPORT GENERATED WITH RESPECT THERETO, IT IS
+ACCEPTED THAT VERISIGN, INC. IS NOT LIABLE FOR
+ANY DAMAGES OF ANY KIND ARISING OUT OF, OR IN CONNECTION WITH, THE
+REPORT OR THE INFORMATION PROVIDED BY THE WHOIS SERVICE, NOR
+OMISSIONS OR MISSING INFORMATION. THE RESULTS OF ANY WHOIS REPORT OR
+INFORMATION PROVIDED BY THE WHOIS SERVICE CANNOT BE RELIED UPON IN
+CONTEMPLATION OF LEGAL PROCEEDINGS WITHOUT FURTHER VERIFICATION, NOR
+DO SUCH RESULTS CONSTITUTE A LEGAL OPINION. Acceptance of the
+results of the Whois constitutes acceptance of these terms,
+conditions and limitations. Whois data may be requested only for
+lawful purposes, in particular, to protect legal rights and
+obligations. Illegitimate uses of Whois data include, but are not
+limited to, unsolicited email, data mining, direct marketing or any
+other improper purpose. Any request made for Whois data will be
+documented by VeriSign, Inc. but will not be used for any commercial purpose whatsoever.
+
+ ****
+
+No match for "ZX5V7D4V2K50L3PQ.NAME".
+
+>>> Last update of whois database: 2018-07-14T05:46:23Z <<<
+
+To request access to data listed as “Redacted” or “Redacted for Privacy” in the
+above WHOIS result, please contact Customer Service at info@verisign-grs.com
\ No newline at end of file
diff --git a/testdata/responses/whois.nic.uk/google.co.uk.mime b/testdata/responses/whois.nic.uk/google.co.uk.mime
new file mode 100644
index 0000000..bbb2d74
--- /dev/null
+++ b/testdata/responses/whois.nic.uk/google.co.uk.mime
@@ -0,0 +1,48 @@
+MIME-Version: 1.0
+Content-Checksum: 20e5a6a4cc04859f94660ff11a89e50ca94b247f
+Content-Length: 1385
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:52:38Z
+Host: whois.nic.uk
+Query: google.co.uk
+
+
+    Domain name:
+        google.co.uk
+
+    Data validation:
+        Nominet was able to match the registrant's name and address against a 3rd party data source on 10-Dec-2012
+
+    Registrar:
+        Markmonitor Inc. t/a MarkMonitor Inc. [Tag = MARKMONITOR]
+        URL: http://www.markmonitor.com
+
+    Relevant dates:
+        Registered on: 14-Feb-1999
+        Expiry date:  14-Feb-2019
+        Last updated:  13-Jan-2018
+
+    Registration status:
+        Registered until expiry date.
+
+    Name servers:
+        ns1.google.com
+        ns2.google.com
+        ns3.google.com
+        ns4.google.com
+
+    WHOIS lookup made at 18:52:38 14-Jul-2018
+
+-- 
+This WHOIS information is provided for free by Nominet UK the central registry
+for .uk domain names. This information and the .uk WHOIS are:
+
+    Copyright Nominet UK 1996 - 2018.
+
+You may not access the .uk WHOIS or use any data from it except as permitted
+by the terms of use available in full at https://www.nominet.uk/whoisterms,
+which includes restrictions on: (A) use of the data for advertising, or its
+repackaging, recompilation, redistribution or reuse (B) obscuring, removing
+or hiding any or all of this notice and (C) exceeding query rate or volume
+limits. The data is provided on an 'as-is' basis and may lag behind the
+register. Access may be withdrawn or restricted at any time. 
diff --git a/testdata/responses/whois.nic.uk/nic.co.uk.mime b/testdata/responses/whois.nic.uk/nic.co.uk.mime
new file mode 100644
index 0000000..dea9a61
--- /dev/null
+++ b/testdata/responses/whois.nic.uk/nic.co.uk.mime
@@ -0,0 +1,43 @@
+MIME-Version: 1.0
+Content-Checksum: 4bae03f285d1059d0f9f349cf9dcacdcf70c7648
+Content-Length: 1261
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:52:37Z
+Host: whois.nic.uk
+Query: nic.co.uk
+
+
+    Domain name:
+        nic.co.uk
+
+    Data validation:
+        Nominet was able to match the registrant's name and address against a 3rd party data source on 10-Dec-2012
+
+    Registrar:
+        No registrar listed.  This domain is registered directly with Nominet.
+
+    Relevant dates:
+        Registered on: before Aug-1996
+        Last updated:  13-Jan-2012
+
+    Registration status:
+        No registration status listed.
+
+    Name servers:
+        No name servers listed.
+
+    WHOIS lookup made at 18:52:37 14-Jul-2018
+
+-- 
+This WHOIS information is provided for free by Nominet UK the central registry
+for .uk domain names. This information and the .uk WHOIS are:
+
+    Copyright Nominet UK 1996 - 2018.
+
+You may not access the .uk WHOIS or use any data from it except as permitted
+by the terms of use available in full at https://www.nominet.uk/whoisterms,
+which includes restrictions on: (A) use of the data for advertising, or its
+repackaging, recompilation, redistribution or reuse (B) obscuring, removing
+or hiding any or all of this notice and (C) exceeding query rate or volume
+limits. The data is provided on an 'as-is' basis and may lag behind the
+register. Access may be withdrawn or restricted at any time. 
diff --git a/testdata/responses/whois.nic.uk/nic.uk.mime b/testdata/responses/whois.nic.uk/nic.uk.mime
new file mode 100644
index 0000000..adc6150
--- /dev/null
+++ b/testdata/responses/whois.nic.uk/nic.uk.mime
@@ -0,0 +1,61 @@
+MIME-Version: 1.0
+Content-Checksum: b36a5315dcdc3bc64e24af35c9d8e4e00a7484dc
+Content-Length: 1827
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:52:37Z
+Host: whois.nic.uk
+Query: nic.uk
+
+    Domain name:
+        nic.uk
+
+    Registrant:
+        Nominet UK
+
+    Registrant type:
+        UK Limited Company, (Company number: 3203859)
+
+    Registrant's address:
+        Minerva House
+        Edmund Halley Road
+        Oxford Science Park
+        Oxford
+        OX4 4DQ
+        GB
+
+    Registrar:
+        No registrar listed.  This domain is directly registered with Nominet.
+
+    Relevant dates:
+        Registered on: before Aug-1996
+        Last updated:  16-Nov-2004
+
+    Registration status:
+        No registration status listed.
+
+    Name servers:
+        dns1.nic.uk.        213.248.216.1       2a01:618:400::1
+        dns2.nic.uk.        103.49.80.1       2401:fd80:400::1
+        dns3.nic.uk.        213.248.220.1       2a01:618:404::1
+        dns4.nic.uk.        43.230.48.1       2401:fd80:404::1
+        nsa.nic.uk.        156.154.100.3       2001:502:ad09::3
+        nsb.nic.uk.        156.154.101.3       
+        nsc.nic.uk.        156.154.102.3       
+        nsd.nic.uk.        156.154.103.3       
+
+
+    WHOIS lookup made at 18:52:37 14-Jul-2018
+
+-- 
+This WHOIS information is provided for free by Nominet UK the central registry
+for .uk domain names. This information and the .uk WHOIS are:
+
+    Copyright Nominet UK 1996 - 2018.
+
+You may not access the .uk WHOIS or use any data from it except as permitted
+by the terms of use available in full at https://www.nominet.uk/whoisterms,
+which includes restrictions on: (A) use of the data for advertising, or its
+repackaging, recompilation, redistribution or reuse (B) obscuring, removing
+or hiding any or all of this notice and (C) exceeding query rate or volume
+limits. The data is provided on an 'as-is' basis and may lag behind the
+register. Access may be withdrawn or restricted at any time. 
diff --git a/testdata/responses/whois.nic.uk/zx5v7d4v2k50l3pq.co.uk.mime b/testdata/responses/whois.nic.uk/zx5v7d4v2k50l3pq.co.uk.mime
new file mode 100644
index 0000000..40f18b4
--- /dev/null
+++ b/testdata/responses/whois.nic.uk/zx5v7d4v2k50l3pq.co.uk.mime
@@ -0,0 +1,28 @@
+MIME-Version: 1.0
+Content-Checksum: fb6814a3fa1c033051732529f302471cbe16f895
+Content-Length: 858
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2018-07-14T17:52:36Z
+Host: whois.nic.uk
+Query: zx5v7d4v2k50l3pq.co.uk
+
+
+    No match for "zx5v7d4v2k50l3pq.co.uk".
+
+    This domain name has not been registered.
+
+    WHOIS lookup made at 18:52:37 14-Jul-2018
+
+-- 
+This WHOIS information is provided for free by Nominet UK the central registry
+for .uk domain names. This information and the .uk WHOIS are:
+
+    Copyright Nominet UK 1996 - 2018.
+
+You may not access the .uk WHOIS or use any data from it except as permitted
+by the terms of use available in full at https://www.nominet.uk/whoisterms,
+which includes restrictions on: (A) use of the data for advertising, or its
+repackaging, recompilation, redistribution or reuse (B) obscuring, removing
+or hiding any or all of this notice and (C) exceeding query rate or volume
+limits. The data is provided on an 'as-is' basis and may lag behind the
+register. Access may be withdrawn or restricted at any time. 
diff --git a/testdata/responses/whois.pir.org/dns.org.mime b/testdata/responses/whois.pir.org/dns.org.mime
new file mode 100644
index 0000000..637467f
--- /dev/null
+++ b/testdata/responses/whois.pir.org/dns.org.mime
@@ -0,0 +1,77 @@
+MIME-Version: 1.0
+Content-Checksum: b2260f0543625fa2de83ff579491a862aea7f42c
+Content-Length: 2838
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T22:14:02Z
+Host: whois.pir.org
+Query: dns.org
+
+Domain Name:DNS.ORG
+Domain ID: D4806172-LROR
+Creation Date: 1997-12-29T05:00:00Z
+Updated Date: 2013-03-14T12:51:49Z
+Registry Expiry Date: 2018-12-28T05:00:00Z
+Sponsoring Registrar:Moniker Online Services LLC (R145-LROR)
+Sponsoring Registrar IANA ID: 228
+WHOIS Server: 
+Referral URL: 
+Domain Status: clientDeleteProhibited
+Domain Status: clientTransferProhibited
+Domain Status: clientUpdateProhibited
+Registrant ID:MONIKER4097814
+Registrant Name:DNS Administrator
+Registrant Organization:Kingweb Inc.
+Registrant Street: 11 Hargrove Lane
+Registrant City:Mississauga
+Registrant State/Province:Ontario
+Registrant Postal Code:M8W 4T7
+Registrant Country:CA
+Registrant Phone:+1.4165031253
+Registrant Phone Ext: 
+Registrant Fax: 
+Registrant Fax Ext: 
+Registrant Email:dnsadmin@kingweb.com
+Admin ID:MONIKER4097814
+Admin Name:DNS Administrator
+Admin Organization:Kingweb Inc.
+Admin Street: 11 Hargrove Lane
+Admin City:Mississauga
+Admin State/Province:Ontario
+Admin Postal Code:M8W 4T7
+Admin Country:CA
+Admin Phone:+1.4165031253
+Admin Phone Ext: 
+Admin Fax: 
+Admin Fax Ext: 
+Admin Email:dnsadmin@kingweb.com
+Tech ID:MONIKER4097814
+Tech Name:DNS Administrator
+Tech Organization:Kingweb Inc.
+Tech Street: 11 Hargrove Lane
+Tech City:Mississauga
+Tech State/Province:Ontario
+Tech Postal Code:M8W 4T7
+Tech Country:CA
+Tech Phone:+1.4165031253
+Tech Phone Ext: 
+Tech Fax: 
+Tech Fax Ext: 
+Tech Email:dnsadmin@kingweb.com
+Name Server:NS2.DNS.ORG
+Name Server:NS1.DNS.ORG
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+
diff --git a/testdata/responses/whois.pir.org/google.org.mime b/testdata/responses/whois.pir.org/google.org.mime
new file mode 100644
index 0000000..2c21805
--- /dev/null
+++ b/testdata/responses/whois.pir.org/google.org.mime
@@ -0,0 +1,43 @@
+MIME-Version: 1.0
+Content-Checksum: 5dad9aef3452c010ea82d2a53b3ecfb2eb931eb8
+Content-Length: 2806
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.pir.org
+Query: google.org
+
+Domain Name: GOOGLE.ORG
+Registry Domain ID: D2244233-LROR
+Registrar WHOIS Server: whois.markmonitor.com
+Registrar URL: http://www.markmonitor.com
+Updated Date: 2019-09-18T09:31:16Z
+Creation Date: 1998-10-21T04:00:00Z
+Registry Expiry Date: 2020-10-20T04:00:00Z
+Registrar Registration Expiration Date:
+Registrar: MarkMonitor Inc.
+Registrar IANA ID: 292
+Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
+Registrar Abuse Contact Phone: +1.2083895740
+Reseller:
+Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
+Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
+Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+Registrant Organization: Google Inc.
+Registrant State/Province: CA
+Registrant Country: US
+Name Server: NS2.GOOGLE.COM
+Name Server: NS1.GOOGLE.COM
+Name Server: NS3.GOOGLE.COM
+Name Server: NS4.GOOGLE.COM
+DNSSEC: unsigned
+URL of the ICANN Whois Inaccuracy Complaint Form https://www.icann.org/wicf/)
+>>> Last update of WHOIS database: 2020-08-07T16:15:26Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
diff --git a/testdata/responses/whois.pir.org/nic.org.mime b/testdata/responses/whois.pir.org/nic.org.mime
new file mode 100644
index 0000000..52dd3fa
--- /dev/null
+++ b/testdata/responses/whois.pir.org/nic.org.mime
@@ -0,0 +1,36 @@
+MIME-Version: 1.0
+Content-Checksum: ba5a524d347a953721bacef78d13093dd43114ac
+Content-Length: 2336
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.pir.org
+Query: nic.org
+
+Domain Name: NIC.ORG
+Registry Domain ID: D95991-LROR
+Registrar WHOIS Server: whois.namecheap.com
+Registrar URL: http://www.namecheap.com
+Updated Date: 2020-02-11T00:20:34Z
+Creation Date: 1995-06-11T04:00:00Z
+Registry Expiry Date: 2023-06-10T04:00:00Z
+Registrar Registration Expiration Date:
+Registrar: NameCheap, Inc.
+Registrar IANA ID: 1068
+Registrar Abuse Contact Email: abuse@namecheap.com
+Registrar Abuse Contact Phone: +1.6613102107
+Reseller:
+Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+Registrant Organization: WhoisGuard, Inc.
+Registrant State/Province: Panama
+Registrant Country: PA
+Name Server: DNS1.REGISTRAR-SERVERS.COM
+Name Server: DNS2.REGISTRAR-SERVERS.COM
+DNSSEC: unsigned
+URL of the ICANN Whois Inaccuracy Complaint Form https://www.icann.org/wicf/)
+>>> Last update of WHOIS database: 2020-08-07T16:15:25Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
diff --git a/testdata/responses/whois.pir.org/pir.org.mime b/testdata/responses/whois.pir.org/pir.org.mime
new file mode 100644
index 0000000..9d37721
--- /dev/null
+++ b/testdata/responses/whois.pir.org/pir.org.mime
@@ -0,0 +1,40 @@
+MIME-Version: 1.0
+Content-Checksum: c2fe42e5cdba6769edd5df469779f65391240535
+Content-Length: 2596
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.pir.org
+Query: pir.org
+
+Domain Name: PIR.ORG
+Registry Domain ID: D96207-LROR
+Registrar WHOIS Server: whois.godaddy.com
+Registrar URL: http://www.whois.godaddy.com
+Updated Date: 2020-02-20T01:32:24Z
+Creation Date: 1996-02-18T05:00:00Z
+Registry Expiry Date: 2021-02-19T05:00:00Z
+Registrar Registration Expiration Date:
+Registrar: GoDaddy.com, LLC
+Registrar IANA ID: 146
+Registrar Abuse Contact Email: abuse@godaddy.com
+Registrar Abuse Contact Phone: +1.4806242505
+Reseller:
+Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+Registrant Organization: Domains By Proxy, LLC
+Registrant State/Province: Arizona
+Registrant Country: US
+Name Server: NS1.AMS1.AFILIAS-NST.INFO
+Name Server: NS1.MIA1.AFILIAS-NST.INFO
+Name Server: NS1.SEA1.AFILIAS-NST.INFO
+Name Server: NS1.YYZ1.AFILIAS-NST.INFO
+DNSSEC: signedDelegation
+URL of the ICANN Whois Inaccuracy Complaint Form https://www.icann.org/wicf/)
+>>> Last update of WHOIS database: 2020-08-07T16:15:25Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
diff --git a/testdata/responses/whois.pir.org/whois.org.mime b/testdata/responses/whois.pir.org/whois.org.mime
new file mode 100644
index 0000000..c93fdde
--- /dev/null
+++ b/testdata/responses/whois.pir.org/whois.org.mime
@@ -0,0 +1,75 @@
+MIME-Version: 1.0
+Content-Checksum: 3b5f580a7c6150404b3bc4b88c340fe494f623f7
+Content-Length: 2723
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T22:18:57Z
+Host: whois.pir.org
+Query: whois.org
+
+Domain Name:WHOIS.ORG
+Domain ID: D390942-LROR
+Creation Date: 1997-08-01T04:00:00Z
+Updated Date: 2011-07-06T19:17:16Z
+Registry Expiry Date: 2016-07-31T04:00:00Z
+Sponsoring Registrar:Melbourne IT, Ltd (R52-LROR)
+Sponsoring Registrar IANA ID: 13
+WHOIS Server: 
+Referral URL: 
+Domain Status: clientTransferProhibited
+Registrant ID:10686378730380
+Registrant Name:Verio, Inc.
+Registrant Organization:
+Registrant Street: 8005 South Chester Street
+Registrant City:Englewood
+Registrant State/Province:CO
+Registrant Postal Code:80112
+Registrant Country:US
+Registrant Phone:+99.999999999999
+Registrant Phone Ext: 
+Registrant Fax: 
+Registrant Fax Ext: 
+Registrant Email:DomainAdmin@verio.net
+Admin ID:10686378733570
+Admin Name:Hostmaster Verio
+Admin Organization:
+Admin Street: 8005 South Chester Street
+Admin City:Englewood
+Admin State/Province:CO
+Admin Postal Code:80112
+Admin Country:US
+Admin Phone:+1.2142908620
+Admin Phone Ext: 
+Admin Fax: 
+Admin Fax Ext: 
+Admin Email:DomainAdmin@verio.net
+Tech ID:10686378741170
+Tech Name:Verio Hostmaster
+Tech Organization:
+Tech Street: 8005 South Chester Street
+Tech City:Englewood
+Tech State/Province:CO
+Tech Postal Code:80112
+Tech Country:US
+Tech Phone:+1.2142908620
+Tech Phone Ext: 
+Tech Fax: +1.2147451877
+Tech Fax Ext: 
+Tech Email:hostmaster@verio.net
+Name Server:NSX.NTX.NET
+Name Server:NSC.NTX.NET
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+
diff --git a/testdata/responses/whois.pir.org/www.org.mime b/testdata/responses/whois.pir.org/www.org.mime
new file mode 100644
index 0000000..500bb33
--- /dev/null
+++ b/testdata/responses/whois.pir.org/www.org.mime
@@ -0,0 +1,78 @@
+MIME-Version: 1.0
+Content-Checksum: ff8b101b8ffa234fb75b6e85e2716326d2bbfef4
+Content-Length: 2939
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T22:18:56Z
+Host: whois.pir.org
+Query: www.org
+
+Domain Name:WWW.ORG
+Domain ID: D185883-LROR
+Creation Date: 1994-07-06T04:00:00Z
+Updated Date: 2012-07-18T13:56:34Z
+Registry Expiry Date: 2022-07-05T04:00:00Z
+Sponsoring Registrar:Gandi SAS (R42-LROR)
+Sponsoring Registrar IANA ID: 81
+WHOIS Server: 
+Referral URL: 
+Domain Status: serverDeleteProhibited
+Domain Status: serverRenewProhibited
+Domain Status: serverTransferProhibited
+Domain Status: serverUpdateProhibited
+Registrant ID:TBL1-GANDI
+Registrant Name:Tim Berners-Lee
+Registrant Organization:W3C
+Registrant Street: W3C
+Registrant City:Cambridge
+Registrant State/Province:MA
+Registrant Postal Code:02139
+Registrant Country:US
+Registrant Phone:+1.6172535702
+Registrant Phone Ext: 
+Registrant Fax: +1.6172585999
+Registrant Fax Ext: 
+Registrant Email:7f539cd059e166c69c613639d55f3c24-135433@contact.gandi.net
+Admin ID:RA1687-GANDI
+Admin Name:Registrar Administration
+Admin Organization:W3C
+Admin Street: 32 Vassar St G504
+Admin City:Cambridge
+Admin State/Province:MA
+Admin Postal Code:02139
+Admin Country:US
+Admin Phone:+1.6172585967
+Admin Phone Ext: 
+Admin Fax: 
+Admin Fax Ext: 
+Admin Email:d903baab93ef7020c0f1bab9d05f5a96-1062668@contact.gandi.net
+Tech ID:ST285-GANDI
+Tech Name:W3C Systeam
+Tech Organization:W3C
+Tech Street: W3C MIT CSAIL 32 Vassar St G515
+Tech City:Cambridge
+Tech State/Province:MA
+Tech Postal Code:02139
+Tech Country:US
+Tech Phone:+1.6172532613
+Tech Phone Ext: 
+Tech Fax: +1.6172585999
+Tech Fax Ext: 
+Tech Email:4f00717a527a369a16daff7988adfbcd-135431@contact.gandi.net
+Name Server:NS1.W3.ORG
+Name Server:NS2.W3.ORG
+Name Server:NS3.W3.ORG
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+Name Server: 
+DNSSEC:Unsigned
+
+Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+
diff --git a/testdata/responses/whois.pir.org/zx5v7d4v2k50l3pq.org.mime b/testdata/responses/whois.pir.org/zx5v7d4v2k50l3pq.org.mime
new file mode 100644
index 0000000..c1991db
--- /dev/null
+++ b/testdata/responses/whois.pir.org/zx5v7d4v2k50l3pq.org.mime
@@ -0,0 +1,14 @@
+MIME-Version: 1.0
+Content-Checksum: 81aba6e996e727d2f525c259fe32a78f8be44d57
+Content-Length: 1435
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.pir.org
+Query: zx5v7d4v2k50l3pq.org
+
+NOT FOUND
+>>> Last update of WHOIS database: 2020-08-07T16:15:25Z <<<
+
+Access to Public Interest Registry WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Public Interest Registry registry database. The data in this record is provided by Public Interest Registry for informational purposes only, and Public Interest Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Public Interest Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
+
+The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
diff --git a/testdata/responses/whois.registro.br/dns.br.mime b/testdata/responses/whois.registro.br/dns.br.mime
new file mode 100644
index 0000000..75e3530
--- /dev/null
+++ b/testdata/responses/whois.registro.br/dns.br.mime
@@ -0,0 +1,65 @@
+MIME-Version: 1.0
+Content-Checksum: 647949da4b24c7e745b09fc006fc767e11fb5482
+Content-Length: 1825
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-04T18:48:54Z
+Host: whois.registro.br
+Query: dns.br
+
+
+% Copyright (c) Nic.br
+%  The use of the data below is only permitted as described in
+%  full by the terms of use at http://registro.br/termo/en.html ,
+%  being prohibited its distribution, comercialization or
+%  reproduction, in particular, to use it for advertising or
+%  any similar purpose.
+%  2014-10-04 15:48:55 (BRT -03:00)
+
+domain:      dns.br
+owner:       N�cleo de Inf. e Coord. do Ponto BR - NIC.BR
+ownerid:     005.506.560/0001-36
+responsible: Demi Getschko
+country:     BR
+owner-c:     FAN
+admin-c:     FAN
+tech-c:      FAN
+billing-c:   FAN
+nserver:     a.dns.br 200.160.0.10 2001:12ff::10
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     b.dns.br 200.189.41.10 
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     c.dns.br 200.192.233.10 
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     d.dns.br 200.219.154.10 2001:12f8:4::10
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     e.dns.br 200.229.248.10 2001:12f8:1::10
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     f.dns.br 200.219.159.10 
+nsstat:      20141003 AA
+nslastaa:    20141003
+dsrecord:    943 RSASHA1 1880E0A19BDD1187747214B84A2F50F63AE539DC
+dsstatus:    20141001 DSOK
+dslastok:    20141001
+created:     19980120 #83037
+changed:     20121127
+status:      published
+
+nic-hdl-br:  FAN
+person:      Frederico Augusto de Carvalho Neves
+e-mail:      fneves@registro.br
+created:     19971217
+changed:     20140703
+
+% Security and mail abuse issues should also be addressed to
+% cert.br, http://www.cert.br/, respectivelly to cert@cert.br
+% and mail-abuse@cert.br
+%
+% whois.registro.br accepts only direct match queries. Types
+% of queries are: domain (.br), registrant (tax ID), ticket,
+% provider, contact handle (ID), CIDR block, IP and ASN.
+
diff --git a/testdata/responses/whois.registro.br/google.br.mime b/testdata/responses/whois.registro.br/google.br.mime
new file mode 100644
index 0000000..41437cc
--- /dev/null
+++ b/testdata/responses/whois.registro.br/google.br.mime
@@ -0,0 +1,27 @@
+MIME-Version: 1.0
+Content-Checksum: cabf8c1ef8d08a23a157136b51a7940de03682af
+Content-Length: 717
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T18:48:52Z
+Host: whois.registro.br
+Query: google.br
+
+
+% Copyright (c) Nic.br
+%  The use of the data below is only permitted as described in
+%  full by the terms of use at http://registro.br/termo/en.html ,
+%  being prohibited its distribution, comercialization or
+%  reproduction, in particular, to use it for advertising or
+%  any similar purpose.
+%  2014-10-04 15:48:53 (BRT -03:00)
+
+% No match for domain "google.br"
+
+% Security and mail abuse issues should also be addressed to
+% cert.br, http://www.cert.br/, respectivelly to cert@cert.br
+% and mail-abuse@cert.br
+%
+% whois.registro.br accepts only direct match queries. Types
+% of queries are: domain (.br), registrant (tax ID), ticket,
+% provider, contact handle (ID), CIDR block, IP and ASN.
+
diff --git a/testdata/responses/whois.registro.br/nic.br.mime b/testdata/responses/whois.registro.br/nic.br.mime
new file mode 100644
index 0000000..5552064
--- /dev/null
+++ b/testdata/responses/whois.registro.br/nic.br.mime
@@ -0,0 +1,62 @@
+MIME-Version: 1.0
+Content-Checksum: 530e114f7ce31a4d04bba19e0960bc117cf7d6c3
+Content-Length: 1629
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-04T18:48:56Z
+Host: whois.registro.br
+Query: nic.br
+
+
+% Copyright (c) Nic.br
+%  The use of the data below is only permitted as described in
+%  full by the terms of use at http://registro.br/termo/en.html ,
+%  being prohibited its distribution, comercialization or
+%  reproduction, in particular, to use it for advertising or
+%  any similar purpose.
+%  2014-10-04 15:48:56 (BRT -03:00)
+
+domain:      nic.br
+owner:       N�cleo de Inf. e Coord. do Ponto BR - NIC.BR
+ownerid:     005.506.560/0001-36
+responsible: Demi Getschko
+country:     BR
+owner-c:     FAN
+admin-c:     FAN
+tech-c:      FAN
+billing-c:   FAN
+nserver:     a.dns.br  
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     b.dns.br  
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     c.dns.br  
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     d.dns.br  
+nsstat:      20141003 AA
+nslastaa:    20141003
+nserver:     e.dns.br  
+nsstat:      20141003 AA
+nslastaa:    20141003
+dsrecord:    57436 RSASHA1 CCB7D717A8868B8739A78FEC8FB60E62EBE2D89B
+dsstatus:    20141001 DSOK
+dslastok:    20141001
+created:     19970711 #46903
+changed:     20070606
+status:      published
+
+nic-hdl-br:  FAN
+person:      Frederico Augusto de Carvalho Neves
+e-mail:      fneves@registro.br
+created:     19971217
+changed:     20140703
+
+% Security and mail abuse issues should also be addressed to
+% cert.br, http://www.cert.br/, respectivelly to cert@cert.br
+% and mail-abuse@cert.br
+%
+% whois.registro.br accepts only direct match queries. Types
+% of queries are: domain (.br), registrant (tax ID), ticket,
+% provider, contact handle (ID), CIDR block, IP and ASN.
+
diff --git a/testdata/responses/whois.registro.br/registro.br.mime b/testdata/responses/whois.registro.br/registro.br.mime
new file mode 100644
index 0000000..b7aa7b4
--- /dev/null
+++ b/testdata/responses/whois.registro.br/registro.br.mime
@@ -0,0 +1,62 @@
+MIME-Version: 1.0
+Content-Checksum: 2742c8faa2b9c3fae142ff84f66a9e32da2aabd1
+Content-Length: 1635
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-04T18:48:55Z
+Host: whois.registro.br
+Query: registro.br
+
+
+% Copyright (c) Nic.br
+%  The use of the data below is only permitted as described in
+%  full by the terms of use at http://registro.br/termo/en.html ,
+%  being prohibited its distribution, comercialization or
+%  reproduction, in particular, to use it for advertising or
+%  any similar purpose.
+%  2014-10-04 15:48:56 (BRT -03:00)
+
+domain:      registro.br
+owner:       N�cleo de Inf. e Coord. do Ponto BR - NIC.BR
+ownerid:     005.506.560/0001-36
+responsible: Demi Getschko
+country:     BR
+owner-c:     FAN
+admin-c:     FAN
+tech-c:      FAN
+billing-c:   FAN
+nserver:     a.dns.br  
+nsstat:      20141002 AA
+nslastaa:    20141002
+nserver:     b.dns.br  
+nsstat:      20141002 AA
+nslastaa:    20141002
+nserver:     c.dns.br  
+nsstat:      20141002 AA
+nslastaa:    20141002
+nserver:     d.dns.br  
+nsstat:      20141002 AA
+nslastaa:    20141002
+nserver:     e.dns.br  
+nsstat:      20141002 AA
+nslastaa:    20141002
+dsrecord:    54964 RSASHA1 F98A9B168BE4816B8E2E23771A9E6B79D425906E
+dsstatus:    20140928 DSOK
+dslastok:    20140928
+created:     19990221 #142485
+changed:     20070604
+status:      published
+
+nic-hdl-br:  FAN
+person:      Frederico Augusto de Carvalho Neves
+e-mail:      fneves@registro.br
+created:     19971217
+changed:     20140703
+
+% Security and mail abuse issues should also be addressed to
+% cert.br, http://www.cert.br/, respectivelly to cert@cert.br
+% and mail-abuse@cert.br
+%
+% whois.registro.br accepts only direct match queries. Types
+% of queries are: domain (.br), registrant (tax ID), ticket,
+% provider, contact handle (ID), CIDR block, IP and ASN.
+
diff --git a/testdata/responses/whois.registro.br/whois.br.mime b/testdata/responses/whois.registro.br/whois.br.mime
new file mode 100644
index 0000000..01a9e74
--- /dev/null
+++ b/testdata/responses/whois.registro.br/whois.br.mime
@@ -0,0 +1,27 @@
+MIME-Version: 1.0
+Content-Checksum: f540991a9d4db74e00004dc1a862ba316da109f0
+Content-Length: 701
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T18:48:57Z
+Host: whois.registro.br
+Query: whois.br
+
+
+% Copyright (c) Nic.br
+%  The use of the data below is only permitted as described in
+%  full by the terms of use at http://registro.br/termo/en.html ,
+%  being prohibited its distribution, comercialization or
+%  reproduction, in particular, to use it for advertising or
+%  any similar purpose.
+%  2014-10-04 15:48:58 (BRT -03:00)
+
+% reserved:    CG
+
+% Security and mail abuse issues should also be addressed to
+% cert.br, http://www.cert.br/, respectivelly to cert@cert.br
+% and mail-abuse@cert.br
+%
+% whois.registro.br accepts only direct match queries. Types
+% of queries are: domain (.br), registrant (tax ID), ticket,
+% provider, contact handle (ID), CIDR block, IP and ASN.
+
diff --git a/testdata/responses/whois.registro.br/www.br.mime b/testdata/responses/whois.registro.br/www.br.mime
new file mode 100644
index 0000000..8d9bb26
--- /dev/null
+++ b/testdata/responses/whois.registro.br/www.br.mime
@@ -0,0 +1,27 @@
+MIME-Version: 1.0
+Content-Checksum: 3d212f6b37fdda5ba99fbeb274e087d3a16e3aff
+Content-Length: 701
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T18:48:56Z
+Host: whois.registro.br
+Query: www.br
+
+
+% Copyright (c) Nic.br
+%  The use of the data below is only permitted as described in
+%  full by the terms of use at http://registro.br/termo/en.html ,
+%  being prohibited its distribution, comercialization or
+%  reproduction, in particular, to use it for advertising or
+%  any similar purpose.
+%  2014-10-04 15:48:57 (BRT -03:00)
+
+% Invalid syntax.
+
+% Security and mail abuse issues should also be addressed to
+% cert.br, http://www.cert.br/, respectivelly to cert@cert.br
+% and mail-abuse@cert.br
+%
+% whois.registro.br accepts only direct match queries. Types
+% of queries are: domain (.br), registrant (tax ID), ticket,
+% provider, contact handle (ID), CIDR block, IP and ASN.
+
diff --git a/testdata/responses/whois.registro.br/zx5v7d4v2k50l3pq.br.mime b/testdata/responses/whois.registro.br/zx5v7d4v2k50l3pq.br.mime
new file mode 100644
index 0000000..2ba4937
--- /dev/null
+++ b/testdata/responses/whois.registro.br/zx5v7d4v2k50l3pq.br.mime
@@ -0,0 +1,27 @@
+MIME-Version: 1.0
+Content-Checksum: 21d25884eb261b49e156b3d7d69a78d3e15fbb22
+Content-Length: 727
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-04T18:48:53Z
+Host: whois.registro.br
+Query: zx5v7d4v2k50l3pq.br
+
+
+% Copyright (c) Nic.br
+%  The use of the data below is only permitted as described in
+%  full by the terms of use at http://registro.br/termo/en.html ,
+%  being prohibited its distribution, comercialization or
+%  reproduction, in particular, to use it for advertising or
+%  any similar purpose.
+%  2014-10-04 15:48:54 (BRT -03:00)
+
+% No match for domain "zx5v7d4v2k50l3pq.br"
+
+% Security and mail abuse issues should also be addressed to
+% cert.br, http://www.cert.br/, respectivelly to cert@cert.br
+% and mail-abuse@cert.br
+%
+% whois.registro.br accepts only direct match queries. Types
+% of queries are: domain (.br), registrant (tax ID), ticket,
+% provider, contact handle (ID), CIDR block, IP and ASN.
+
diff --git a/testdata/responses/whois.registry.in/google.in.mime b/testdata/responses/whois.registry.in/google.in.mime
new file mode 100644
index 0000000..82c5199
--- /dev/null
+++ b/testdata/responses/whois.registry.in/google.in.mime
@@ -0,0 +1,78 @@
+MIME-Version: 1.0
+Content-Checksum: 29f58d6b759d9fd99e3b94a869a981e86e10fd58
+Content-Length: 2978
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.registry.in
+Query: google.in
+
+Domain Name: google.in
+Registry Domain ID: D21089-IN
+Registrar WHOIS Server:
+Registrar URL: http://www.markmonitor.com
+Updated Date: 2020-01-18T10:35:29Z
+Creation Date: 2005-02-14T20:35:14Z
+Registry Expiry Date: 2021-02-14T20:35:14Z
+Registrar: MarkMonitor Inc.
+Registrar IANA ID: 292
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Domain Status: clientUpdateProhibited http://www.icann.org/epp#clientUpdateProhibited
+Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
+Domain Status: clientDeleteProhibited http://www.icann.org/epp#clientDeleteProhibited
+Registry Registrant ID:
+Registrant Name:
+Registrant Organization: Google LLC
+Registrant Street:
+Registrant Street:
+Registrant Street:
+Registrant City:
+Registrant State/Province: CA
+Registrant Postal Code:
+Registrant Country: US
+Registrant Phone:
+Registrant Phone Ext:
+Registrant Fax:
+Registrant Fax Ext:
+Registrant Email: Please contact the Registrar listed above
+Registry Admin ID:
+Admin Name:
+Admin Organization:
+Admin Street:
+Admin Street:
+Admin Street:
+Admin City:
+Admin State/Province:
+Admin Postal Code:
+Admin Country:
+Admin Phone:
+Admin Phone Ext:
+Admin Fax:
+Admin Fax Ext:
+Admin Email: Please contact the Registrar listed above
+Registry Tech ID:
+Tech Name:
+Tech Organization:
+Tech Street:
+Tech Street:
+Tech Street:
+Tech City:
+Tech State/Province:
+Tech Postal Code:
+Tech Country:
+Tech Phone:
+Tech Phone Ext:
+Tech Fax:
+Tech Fax Ext:
+Tech Email: Please contact the Registrar listed above
+Name Server: ns4.google.com
+Name Server: ns2.google.com
+Name Server: ns1.google.com
+Name Server: ns3.google.com
+DNSSEC: unsigned
+URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of WHOIS database: 2020-08-07T16:16:25Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to .IN WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the .IN registry database. The data in this record is provided by .IN Registry for informational purposes only ,and .IN does not guarantee its accuracy.  This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator or a Registrar, or Neustar except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. .IN reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
diff --git a/testdata/responses/whois.registry.in/nic.in.mime b/testdata/responses/whois.registry.in/nic.in.mime
new file mode 100644
index 0000000..5e2c924
--- /dev/null
+++ b/testdata/responses/whois.registry.in/nic.in.mime
@@ -0,0 +1,76 @@
+MIME-Version: 1.0
+Content-Checksum: 8b6159275016c6c9bb4e6b6098da9f53cad640f1
+Content-Length: 2754
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.registry.in
+Query: nic.in
+
+Domain Name: nic.in
+Registry Domain ID: D12482-IN
+Registrar WHOIS Server:
+Registrar URL: http://registry.gov.in
+Updated Date: 2020-01-29T05:53:22Z
+Creation Date: 2004-12-23T20:45:40Z
+Registry Expiry Date: 2021-12-23T20:45:40Z
+Registrar: National Informatics Centre
+Registrar IANA ID: 800111
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Domain Status: ok http://www.icann.org/epp#OK
+Registry Registrant ID:
+Registrant Name:
+Registrant Organization:
+Registrant Street:
+Registrant Street:
+Registrant Street:
+Registrant City:
+Registrant State/Province: Delhi
+Registrant Postal Code:
+Registrant Country: IN
+Registrant Phone:
+Registrant Phone Ext:
+Registrant Fax:
+Registrant Fax Ext:
+Registrant Email: Please contact the Registrar listed above
+Registry Admin ID:
+Admin Name:
+Admin Organization:
+Admin Street:
+Admin Street:
+Admin Street:
+Admin City:
+Admin State/Province:
+Admin Postal Code:
+Admin Country:
+Admin Phone:
+Admin Phone Ext:
+Admin Fax:
+Admin Fax Ext:
+Admin Email: Please contact the Registrar listed above
+Registry Tech ID:
+Tech Name:
+Tech Organization:
+Tech Street:
+Tech Street:
+Tech Street:
+Tech City:
+Tech State/Province:
+Tech Postal Code:
+Tech Country:
+Tech Phone:
+Tech Phone Ext:
+Tech Fax:
+Tech Fax Ext:
+Tech Email: Please contact the Registrar listed above
+Name Server: ns1.nic.in
+Name Server: ns6.nic.in
+Name Server: nicnet.nic.in
+Name Server: ns8.nic.in
+DNSSEC: signedDelegation
+URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of WHOIS database: 2020-08-07T16:16:25Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to .IN WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the .IN registry database. The data in this record is provided by .IN Registry for informational purposes only ,and .IN does not guarantee its accuracy.  This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator or a Registrar, or Neustar except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. .IN reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
diff --git a/testdata/responses/whois.registry.in/registry.in.mime b/testdata/responses/whois.registry.in/registry.in.mime
new file mode 100644
index 0000000..f3573ee
--- /dev/null
+++ b/testdata/responses/whois.registry.in/registry.in.mime
@@ -0,0 +1,81 @@
+MIME-Version: 1.0
+Content-Checksum: 5120218a5127979a33d7cebf0eeec398d62fcfde
+Content-Length: 3169
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.registry.in
+Query: registry.in
+
+Domain Name: registry.in
+Registry Domain ID: D8120-IN
+Registrar WHOIS Server:
+Registrar URL: www.nixi.in/
+Updated Date: 2020-05-27T22:53:31Z
+Creation Date: 2004-12-16T16:27:39Z
+Registry Expiry Date: 2020-12-30T16:27:39Z
+Registrar: National Internet Exchange of India
+Registrar IANA ID: 800112
+Registrar Abuse Contact Email:
+Registrar Abuse Contact Phone:
+Domain Status: serverDeleteProhibited http://www.icann.org/epp#serverDeleteProhibited
+Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
+Domain Status: clientDeleteProhibited http://www.icann.org/epp#clientDeleteProhibited
+Domain Status: clientRenewProhibited http://www.icann.org/epp#clientRenewProhibited
+Registry Registrant ID:
+Registrant Name:
+Registrant Organization:
+Registrant Street:
+Registrant Street:
+Registrant Street:
+Registrant City:
+Registrant State/Province: Delhi
+Registrant Postal Code:
+Registrant Country: IN
+Registrant Phone:
+Registrant Phone Ext:
+Registrant Fax:
+Registrant Fax Ext:
+Registrant Email: Please contact the Registrar listed above
+Registry Admin ID:
+Admin Name:
+Admin Organization:
+Admin Street:
+Admin Street:
+Admin Street:
+Admin City:
+Admin State/Province:
+Admin Postal Code:
+Admin Country:
+Admin Phone:
+Admin Phone Ext:
+Admin Fax:
+Admin Fax Ext:
+Admin Email: Please contact the Registrar listed above
+Registry Tech ID:
+Tech Name:
+Tech Organization:
+Tech Street:
+Tech Street:
+Tech Street:
+Tech City:
+Tech State/Province:
+Tech Postal Code:
+Tech Country:
+Tech Phone:
+Tech Phone Ext:
+Tech Fax:
+Tech Fax Ext:
+Tech Email: Please contact the Registrar listed above
+Name Server: pdns196.ultradns.net
+Name Server: pdns196.ultradns.org
+Name Server: pdns196.ultradns.info
+Name Server: pdns196.ultradns.biz
+Name Server: pdns196.ultradns.co.uk
+Name Server: pdns196.ultradns.com
+DNSSEC: signedDelegation
+URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of WHOIS database: 2020-08-07T16:16:26Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to .IN WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the .IN registry database. The data in this record is provided by .IN Registry for informational purposes only ,and .IN does not guarantee its accuracy.  This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator or a Registrar, or Neustar except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. .IN reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
diff --git a/testdata/responses/whois.registry.in/zx5v7d4v2k50l3pq.in.mime b/testdata/responses/whois.registry.in/zx5v7d4v2k50l3pq.in.mime
new file mode 100644
index 0000000..b2736cb
--- /dev/null
+++ b/testdata/responses/whois.registry.in/zx5v7d4v2k50l3pq.in.mime
@@ -0,0 +1,15 @@
+MIME-Version: 1.0
+Content-Checksum: 96547f0976f651be1f2ea7a4955eca1ed62f4b5b
+Content-Length: 1299
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:27Z
+Host: whois.registry.in
+Query: zx5v7d4v2k50l3pq.in
+
+No Data Found
+URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of WHOIS database: 2020-08-07T16:16:27Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+Access to .IN WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the .IN registry database. The data in this record is provided by .IN Registry for informational purposes only ,and .IN does not guarantee its accuracy.  This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator or a Registrar, or Neustar except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. .IN reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
diff --git a/testdata/responses/whois.verisign-grs.com/dns.com.mime b/testdata/responses/whois.verisign-grs.com/dns.com.mime
new file mode 100644
index 0000000..5a584d0
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/dns.com.mime
@@ -0,0 +1,333 @@
+MIME-Version: 1.0
+Content-Checksum: cd25d28b964358dd5202693fc7348288e9216c72
+Content-Length: 11125
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-03T16:15:38Z
+Host: whois.verisign-grs.com
+Query: dns.com
+
+
+Whois Server Version 2.0
+
+Domain names in the .com and .net domains can now be registered
+with many different competing registrars. Go to http://www.internic.net
+for detailed information.
+
+Aborting search 50 records found .....
+   Server Name: DNS.COM-CORPORATION.JP
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: DNS.COM-EXP.COM
+   IP Address: 66.167.12.243
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: DNS.COM-GRAF.COM
+   IP Address: 87.106.58.147
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COM-PIC.CO.JP
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: DNS.COM-PIC.NE.JP
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COM-PLUS.FR
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: DNS.COM.AU
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: DNS.COM.BA
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: DNS.COM.CN
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.COM.CONTACTSWITCH.COM
+   IP Address: 220.135.186.219
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COM.PL
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.COM.UA
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: DNS.COM1DECLIC.COM
+   IP Address: 194.145.196.68
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: DNS.COM1DECLIC.FR
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: DNS.COM2B.COM
+   IP Address: 61.220.32.198
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: DNS.COM2B.COM.TW
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COM2B.NET
+   IP Address: 60.250.162.73
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: DNS.COM2MEDIA.CA
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: DNS.COM4.COM.BR
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: DNS.COMALL.TW
+   Registrar: WEB COMMERCE COMMUNICATIONS LIMITED DBA WEBNIC.CC
+   Whois Server: whois.webnic.cc
+   Referral URL: http://www.webnic.cc
+
+   Server Name: DNS.COMARCH.BIZ
+   Registrar: UK-2 LIMITED
+   Whois Server: whois.hostingservicesinc.net
+   Referral URL: http://www.uk2group.com
+
+   Server Name: DNS.COMARCH.COM
+   IP Address: 217.74.68.72
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMARCH.NET
+   IP Address: 217.153.7.20
+   Registrar: CSL COMPUTER SERVICE LANGENBACH GMBH D/B/A JOKER.COM
+   Whois Server: whois.joker.com
+   Referral URL: http://www.joker.com
+
+   Server Name: DNS.COMARCH.PL
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMAREG.FR
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMAX.CO.IL
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: DNS.COMAX.PILA.PL
+   Registrar: DOTSTER, INC.
+   Whois Server: whois.dotster.com
+   Referral URL: http://www.dotster.com
+
+   Server Name: DNS.COMBAT2000FORUM.COM
+   IP Address: 219.90.126.124
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: DNS.COMBAT2000SHOP.COM
+   IP Address: 219.90.126.124
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: DNS.COMBAT2008SHOP.COM
+   IP Address: 58.64.209.120
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: DNS.COMBATKING-MONTHLY.COM
+   IP Address: 60.248.178.205
+   Registrar: WEB COMMERCE COMMUNICATIONS LIMITED DBA WEBNIC.CC
+   Whois Server: whois.webnic.cc
+   Referral URL: http://www.webnic.cc
+
+   Server Name: DNS.COMBIDATA.COM.PL
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.COMBINATORY.COM
+   IP Address: 68.15.48.211
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMBINEDMANAGEMENTSERVICES.CO.UK
+   Registrar: WEBFUSION LTD.
+   Whois Server: whois.123-reg.co.uk
+   Referral URL: http://www.123-reg.co.uk
+
+   Server Name: DNS.COMBINOVA.COM
+   IP Address: 213.15.252.194
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMBINOVA.SE
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMBMAIL.COM
+   IP Address: 212.31.40.76
+   Registrar: NOMINALIA INTERNET S.L.
+   Whois Server: whois.nominalia.com
+   Referral URL: http://www.nominalia.com
+
+   Server Name: DNS.COMCAST.LIVEMARKETING.COM
+   IP Address: 173.9.218.246
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMCAT.COM
+   IP Address: 72.236.205.150
+   Registrar: TUCOWS DOMAINS INC.
+   Whois Server: whois.tucows.com
+   Referral URL: http://domainhelp.opensrs.net
+
+   Server Name: DNS.COMCENTRIXS.DE
+   Registrar: ASCIO TECHNOLOGIES, INC. DANMARK - FILIAL AF ASCIO TECHNOLOGIES, INC. USA
+   Whois Server: whois.ascio.com
+   Referral URL: http://www.ascio.com
+
+   Server Name: DNS.COMCLARK.COM
+   IP Address: 202.134.234.10
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: DNS.COMCO.COM
+   IP Address: 65.243.25.210
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: DNS.COMCON.CZ
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMCONSULT.COM
+   IP Address: 149.224.134.23
+   Registrar: DEUTSCHE TELEKOM AG
+   Whois Server: whois.registrar.telekom.de
+   Referral URL: http://www.registrar.telekom.de
+
+   Server Name: DNS.COMCOR.NET
+   IP Address: 72.66.23.11
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMCOR.RU
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMDEK.COM
+   IP Address: 211.21.69.18
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.COMDESIGN.AT
+   Registrar: COREHUB, S.R.L.
+   Whois Server: whois.corehub.net
+   Referral URL: http://www.corehub.net
+
+   Server Name: DNS.COMDESIGNS.CO.JP
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Domain Name: DNS.COM
+   Registrar: MONIKER ONLINE SERVICES LLC
+   Whois Server: whois.moniker.com
+   Referral URL: http://www.moniker.com
+   Name Server: NS1.DNS.COM
+   Name Server: NS2.DNS.COM
+   Name Server: NS3.DNS.COM
+   Name Server: NS4.DNS.COM
+   Status: clientDeleteProhibited
+   Status: clientTransferProhibited
+   Status: clientUpdateProhibited
+   Updated Date: 03-may-2014
+   Creation Date: 13-may-1991
+   Expiration Date: 14-may-2016
+
+>>> Last update of whois database: Fri, 03 Oct 2014 16:15:18 GMT <<<
+
+NOTICE: The expiration date displayed in this record is the date the 
+registrar's sponsorship of the domain name registration in the registry is 
+currently set to expire. This date does not necessarily reflect the expiration 
+date of the domain name registrant's agreement with the sponsoring 
+registrar.  Users may consult the sponsoring registrar's Whois database to 
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois 
+database through the use of electronic processes that are high-volume and 
+automated except as reasonably necessary to register domain names or 
+modify existing registrations; the Data in VeriSign Global Registry 
+Services' ("VeriSign") Whois database is provided by VeriSign for 
+information purposes only, and to assist persons in obtaining information 
+about or related to a domain name registration record. VeriSign does not 
+guarantee its accuracy. By submitting a Whois query, you agree to abide 
+by the following terms of use: You agree that you may use this Data only 
+for lawful purposes and that under no circumstances will you use this Data 
+to: (1) allow, enable, or otherwise support the transmission of mass 
+unsolicited, commercial advertising or solicitations via e-mail, telephone, 
+or facsimile; or (2) enable high volume, automated, electronic processes 
+that apply to VeriSign (or its computer systems). The compilation, 
+repackaging, dissemination or other use of this Data is expressly 
+prohibited without the prior written consent of VeriSign. You agree not to 
+use electronic processes that are automated and high-volume to access or 
+query the Whois database except as reasonably necessary to register 
+domain names or modify existing registrations. VeriSign reserves the right 
+to restrict your access to the Whois database in its sole discretion to ensure 
+operational stability.  VeriSign may restrict or terminate your access to the 
+Whois database for failure to abide by these terms of use. VeriSign 
+reserves the right to modify these terms at any time. 
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/dns.net.mime b/testdata/responses/whois.verisign-grs.com/dns.net.mime
new file mode 100644
index 0000000..dafdf55
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/dns.net.mime
@@ -0,0 +1,318 @@
+MIME-Version: 1.0
+Content-Checksum: fab2e56e3cd1a6b648b4a92eb00b5d82d472c359
+Content-Length: 10613
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-03T16:33:44Z
+Host: whois.verisign-grs.com
+Query: dns.net
+
+
+Whois Server Version 2.0
+
+Domain names in the .com and .net domains can now be registered
+with many different competing registrars. Go to http://www.internic.net
+for detailed information.
+
+Aborting search 50 records found .....
+   Server Name: DNS.NET-1.IT
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.NET-ACTUALITY.ORG
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: DNS.NET-AM.COM.PL
+   Registrar: KEY-SYSTEMS GMBH
+   Whois Server: whois.rrpproxy.net
+   Referral URL: http://www.key-systems.net
+
+   Server Name: DNS.NET-ANKIETY.PL
+   Registrar: ACTIVE 24 AS
+   Whois Server: whois.active24.com
+   Referral URL: http://www.active24.com
+
+   Server Name: DNS.NET-ARN.PL
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.NET-ART.NET
+   IP Address: 195.4.38.70
+   Registrar: PSI-USA, INC. DBA DOMAIN ROBOT
+   Whois Server: whois.psi-usa.info
+   Referral URL: http://www.psi-usa.info
+
+   Server Name: DNS.NET-BIBAI.CO.JP
+   Registrar: PSI-JAPAN, INC.
+   Whois Server: whois.psi.jp
+   Referral URL: http://www.psi.jp
+
+   Server Name: DNS.NET-CENTER.COM.MX
+   Registrar: DSTR ACQUISITION PA I, LLC DBA DOMAINBANK.COM
+   Whois Server: whois.dotster.com
+   Referral URL: http://www.dotster.com
+
+   Server Name: DNS.NET-COM.AD.JP
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: DNS.NET-COM.COM.TR
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.NET-CON.NET
+   IP Address: 213.239.209.232
+   Registrar: DOMAIN.COM, LLC
+   Whois Server: whois.domain.com
+   Referral URL: http://www.domain.com
+
+   Server Name: DNS.NET-FUSION.COM.NS-NOT-IN-SERVICE.COM
+   IP Address: 209.142.201.2
+   Registrar: TUCOWS DOMAINS INC.
+   Whois Server: whois.tucows.com
+   Referral URL: http://domainhelp.opensrs.net
+
+   Server Name: DNS.NET-HEBERGEUR.COM
+   IP Address: 213.186.37.129
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: DNS.NET-INFO.DE
+   Registrar: DNS NET INTERNET SERVICE GMBH
+   Whois Server: whois.dns-net.de
+   Referral URL: http://www.dns-net.de
+
+   Server Name: DNS.NET-ING.COM
+   IP Address: 61.58.37.62
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: DNS.NET-JAPAN.INFO
+   Registrar: KEY-SYSTEMS GMBH
+   Whois Server: whois.rrpproxy.net
+   Referral URL: http://www.key-systems.net
+
+   Server Name: DNS.NET-KIM.COM
+   IP Address: 43.232.31.82
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: DNS.NET-KING.COM.TW
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: DNS.NET-KOM.COM.TR
+   Registrar: DOTSTER, INC.
+   Whois Server: whois.dotster.com
+   Referral URL: http://www.dotster.com
+
+   Server Name: DNS.NET-KOMP.COM.PL
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.NET-LINE.IT
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.NET-OP-CENTER.COM
+   IP Address: 67.125.46.189
+   Registrar: DOMAIN.COM, LLC
+   Whois Server: whois.domain.com
+   Referral URL: http://www.domain.com
+
+   Server Name: DNS.NET-PIONEER.BIZ
+   Registrar: KEY-SYSTEMS GMBH
+   Whois Server: whois.rrpproxy.net
+   Referral URL: http://www.key-systems.net
+
+   Server Name: DNS.NET-POSITION.COM
+   IP Address: 194.73.181.2
+   Registrar: NICCO LTD.
+   Whois Server: whois.nicco.com
+   Referral URL: http://www.nicco.com
+
+   Server Name: DNS.NET-SERVER.CO.UK
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: DNS.NET-SERVICE.CZ
+   Registrar: COREHUB, S.R.L.
+   Whois Server: whois.corehub.net
+   Referral URL: http://www.corehub.net
+
+   Server Name: DNS.NET-SOL.INFO
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.NET-SOLUTION.ORG
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: DNS.NET-SPEAK.PL
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: DNS.NET-TOKYO.NET
+   IP Address: 219.117.234.161
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: DNS.NET-TRANSLATIONS.COM
+   IP Address: 80.34.164.159
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.NET-UNLIMITED.DE
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: DNS.NET-VOLUTION.COM
+   IP Address: 37.186.225.116
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.NET-WEB.CO.JP
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.NET-WEB.NE.JP
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: DNS.NET-WORK.JP
+   Registrar: TUCOWS DOMAINS INC.
+   Whois Server: whois.tucows.com
+   Referral URL: http://domainhelp.opensrs.net
+
+   Server Name: DNS.NET-WORK.NE.JP
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.NET.ART.PL
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.NET.BIECZ.PL
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: DNS.NET.CHOJNOW.PL
+   Registrar: DOMAININFO AB D/B/A DOMAININFO.COM
+   Whois Server: whois.domaininfo.com
+   Referral URL: http://www.domaininfo.com
+
+   Server Name: DNS.NET.CN
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: DNS.NET.COM.EG
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: DNS.NET.CTC.DE
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: DNS.NET.IL
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: DNS.NET.KIC.DE
+   Registrar: DEUTSCHE TELEKOM AG
+   Whois Server: whois.registrar.telekom.de
+   Referral URL: http://www.registrar.telekom.de
+
+   Server Name: DNS.NET.MEDIA.PL
+   Registrar: ONLINENIC, INC.
+   Whois Server: whois.onlinenic.com
+   Referral URL: http://www.OnlineNIC.com
+
+   Server Name: DNS.NET.PAC.PL
+   Registrar: DOMAININFO AB D/B/A DOMAININFO.COM
+   Whois Server: whois.domaininfo.com
+   Referral URL: http://www.domaininfo.com
+
+   Server Name: DNS.NET.PL
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: DNS.NET.SOSNOWIEC.PL
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Domain Name: DNS.NET
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+   Name Server: DEMETER.IS.CO.ZA
+   Name Server: SERVER2.GAON.NET
+   Status: clientTransferProhibited
+   Updated Date: 09-jul-2014
+   Creation Date: 01-nov-1994
+   Expiration Date: 31-oct-2023
+
+>>> Last update of whois database: Fri, 03 Oct 2014 16:33:39 GMT <<<
+
+NOTICE: The expiration date displayed in this record is the date the 
+registrar's sponsorship of the domain name registration in the registry is 
+currently set to expire. This date does not necessarily reflect the expiration 
+date of the domain name registrant's agreement with the sponsoring 
+registrar.  Users may consult the sponsoring registrar's Whois database to 
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois 
+database through the use of electronic processes that are high-volume and 
+automated except as reasonably necessary to register domain names or 
+modify existing registrations; the Data in VeriSign Global Registry 
+Services' ("VeriSign") Whois database is provided by VeriSign for 
+information purposes only, and to assist persons in obtaining information 
+about or related to a domain name registration record. VeriSign does not 
+guarantee its accuracy. By submitting a Whois query, you agree to abide 
+by the following terms of use: You agree that you may use this Data only 
+for lawful purposes and that under no circumstances will you use this Data 
+to: (1) allow, enable, or otherwise support the transmission of mass 
+unsolicited, commercial advertising or solicitations via e-mail, telephone, 
+or facsimile; or (2) enable high volume, automated, electronic processes 
+that apply to VeriSign (or its computer systems). The compilation, 
+repackaging, dissemination or other use of this Data is expressly 
+prohibited without the prior written consent of VeriSign. You agree not to 
+use electronic processes that are automated and high-volume to access or 
+query the Whois database except as reasonably necessary to register 
+domain names or modify existing registrations. VeriSign reserves the right 
+to restrict your access to the Whois database in its sole discretion to ensure 
+operational stability.  VeriSign may restrict or terminate your access to the 
+Whois database for failure to abide by these terms of use. VeriSign 
+reserves the right to modify these terms at any time. 
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/google.com.mime b/testdata/responses/whois.verisign-grs.com/google.com.mime
new file mode 100644
index 0000000..afdee13
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/google.com.mime
@@ -0,0 +1,68 @@
+MIME-Version: 1.0
+Content-Checksum: e5bdeccaedf97076a3e10ec98c5b30a92f657c93
+Content-Length: 3559
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.verisign-grs.com
+Query: google.com
+
+   Domain Name: GOOGLE.COM
+   Registry Domain ID: 2138514_DOMAIN_COM-VRSN
+   Registrar WHOIS Server: whois.markmonitor.com
+   Registrar URL: http://www.markmonitor.com
+   Updated Date: 2019-09-09T15:39:04Z
+   Creation Date: 1997-09-15T04:00:00Z
+   Registry Expiry Date: 2028-09-14T04:00:00Z
+   Registrar: MarkMonitor Inc.
+   Registrar IANA ID: 292
+   Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
+   Registrar Abuse Contact Phone: +1.2083895740
+   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
+   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
+   Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+   Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+   Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+   Name Server: NS1.GOOGLE.COM
+   Name Server: NS2.GOOGLE.COM
+   Name Server: NS3.GOOGLE.COM
+   Name Server: NS4.GOOGLE.COM
+   DNSSEC: unsigned
+   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of whois database: 2020-08-07T16:16:10Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+NOTICE: The expiration date displayed in this record is the date the
+registrar's sponsorship of the domain name registration in the registry is
+currently set to expire. This date does not necessarily reflect the expiration
+date of the domain name registrant's agreement with the sponsoring
+registrar.  Users may consult the sponsoring registrar's Whois database to
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois
+database through the use of electronic processes that are high-volume and
+automated except as reasonably necessary to register domain names or
+modify existing registrations; the Data in VeriSign Global Registry
+Services' ("VeriSign") Whois database is provided by VeriSign for
+information purposes only, and to assist persons in obtaining information
+about or related to a domain name registration record. VeriSign does not
+guarantee its accuracy. By submitting a Whois query, you agree to abide
+by the following terms of use: You agree that you may use this Data only
+for lawful purposes and that under no circumstances will you use this Data
+to: (1) allow, enable, or otherwise support the transmission of mass
+unsolicited, commercial advertising or solicitations via e-mail, telephone,
+or facsimile; or (2) enable high volume, automated, electronic processes
+that apply to VeriSign (or its computer systems). The compilation,
+repackaging, dissemination or other use of this Data is expressly
+prohibited without the prior written consent of VeriSign. You agree not to
+use electronic processes that are automated and high-volume to access or
+query the Whois database except as reasonably necessary to register
+domain names or modify existing registrations. VeriSign reserves the right
+to restrict your access to the Whois database in its sole discretion to ensure
+operational stability.  VeriSign may restrict or terminate your access to the
+Whois database for failure to abide by these terms of use. VeriSign
+reserves the right to modify these terms at any time.
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/google.net.mime b/testdata/responses/whois.verisign-grs.com/google.net.mime
new file mode 100644
index 0000000..3de3931
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/google.net.mime
@@ -0,0 +1,68 @@
+MIME-Version: 1.0
+Content-Checksum: 9bf21da75de3bea9b7273dde632bf372c6a0b89f
+Content-Length: 3559
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:24Z
+Host: whois.verisign-grs.com
+Query: google.net
+
+   Domain Name: GOOGLE.NET
+   Registry Domain ID: 4802712_DOMAIN_NET-VRSN
+   Registrar WHOIS Server: whois.markmonitor.com
+   Registrar URL: http://www.markmonitor.com
+   Updated Date: 2020-02-12T10:36:07Z
+   Creation Date: 1999-03-15T05:00:00Z
+   Registry Expiry Date: 2021-03-15T04:00:00Z
+   Registrar: MarkMonitor Inc.
+   Registrar IANA ID: 292
+   Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
+   Registrar Abuse Contact Phone: +1.2083895740
+   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
+   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
+   Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+   Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+   Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+   Name Server: NS1.GOOGLE.COM
+   Name Server: NS2.GOOGLE.COM
+   Name Server: NS3.GOOGLE.COM
+   Name Server: NS4.GOOGLE.COM
+   DNSSEC: unsigned
+   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of whois database: 2020-08-07T16:16:10Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+NOTICE: The expiration date displayed in this record is the date the
+registrar's sponsorship of the domain name registration in the registry is
+currently set to expire. This date does not necessarily reflect the expiration
+date of the domain name registrant's agreement with the sponsoring
+registrar.  Users may consult the sponsoring registrar's Whois database to
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois
+database through the use of electronic processes that are high-volume and
+automated except as reasonably necessary to register domain names or
+modify existing registrations; the Data in VeriSign Global Registry
+Services' ("VeriSign") Whois database is provided by VeriSign for
+information purposes only, and to assist persons in obtaining information
+about or related to a domain name registration record. VeriSign does not
+guarantee its accuracy. By submitting a Whois query, you agree to abide
+by the following terms of use: You agree that you may use this Data only
+for lawful purposes and that under no circumstances will you use this Data
+to: (1) allow, enable, or otherwise support the transmission of mass
+unsolicited, commercial advertising or solicitations via e-mail, telephone,
+or facsimile; or (2) enable high volume, automated, electronic processes
+that apply to VeriSign (or its computer systems). The compilation,
+repackaging, dissemination or other use of this Data is expressly
+prohibited without the prior written consent of VeriSign. You agree not to
+use electronic processes that are automated and high-volume to access or
+query the Whois database except as reasonably necessary to register
+domain names or modify existing registrations. VeriSign reserves the right
+to restrict your access to the Whois database in its sole discretion to ensure
+operational stability.  VeriSign may restrict or terminate your access to the
+Whois database for failure to abide by these terms of use. VeriSign
+reserves the right to modify these terms at any time.
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/inregistry.net.mime b/testdata/responses/whois.verisign-grs.com/inregistry.net.mime
new file mode 100644
index 0000000..eff395a
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/inregistry.net.mime
@@ -0,0 +1,68 @@
+MIME-Version: 1.0
+Content-Checksum: 6b9134e3091df2258e4e3328a9209a9e2b879d29
+Content-Length: 3186
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2015-04-29T01:31:43Z
+Host: whois.verisign-grs.com
+Query: inregistry.net
+
+
+Whois Server Version 2.0
+
+Domain names in the .com and .net domains can now be registered
+with many different competing registrars. Go to http://www.internic.net
+for detailed information.
+
+   Domain Name: INREGISTRY.NET
+   Registrar: CSC CORPORATE DOMAINS, INC.
+   Sponsoring Registrar IANA ID: 299
+   Whois Server: whois.corporatedomains.com
+   Referral URL: http://www.cscglobal.com/global/web/csc/digital-brand-services
+   Name Server: NS1.AMS1.AFILIAS-NST.INFO
+   Name Server: NS1.HKG1.AFILIAS-NST.INFO
+   Name Server: NS1.MIA1.AFILIAS-NST.INFO
+   Name Server: NS1.SEA1.AFILIAS-NST.INFO
+   Name Server: NS1.YYZ1.AFILIAS-NST.INFO
+   Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
+   Updated Date: 23-nov-2014
+   Creation Date: 26-nov-2004
+   Expiration Date: 26-nov-2015
+
+>>> Last update of whois database: Wed, 29 Apr 2015 01:31:25 GMT <<<
+
+NOTICE: The expiration date displayed in this record is the date the 
+registrar's sponsorship of the domain name registration in the registry is 
+currently set to expire. This date does not necessarily reflect the expiration 
+date of the domain name registrant's agreement with the sponsoring 
+registrar.  Users may consult the sponsoring registrar's Whois database to 
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois 
+database through the use of electronic processes that are high-volume and 
+automated except as reasonably necessary to register domain names or 
+modify existing registrations; the Data in VeriSign Global Registry 
+Services' ("VeriSign") Whois database is provided by VeriSign for 
+information purposes only, and to assist persons in obtaining information 
+about or related to a domain name registration record. VeriSign does not 
+guarantee its accuracy. By submitting a Whois query, you agree to abide 
+by the following terms of use: You agree that you may use this Data only 
+for lawful purposes and that under no circumstances will you use this Data 
+to: (1) allow, enable, or otherwise support the transmission of mass 
+unsolicited, commercial advertising or solicitations via e-mail, telephone, 
+or facsimile; or (2) enable high volume, automated, electronic processes 
+that apply to VeriSign (or its computer systems). The compilation, 
+repackaging, dissemination or other use of this Data is expressly 
+prohibited without the prior written consent of VeriSign. You agree not to 
+use electronic processes that are automated and high-volume to access or 
+query the Whois database except as reasonably necessary to register 
+domain names or modify existing registrations. VeriSign reserves the right 
+to restrict your access to the Whois database in its sole discretion to ensure 
+operational stability.  VeriSign may restrict or terminate your access to the 
+Whois database for failure to abide by these terms of use. VeriSign 
+reserves the right to modify these terms at any time. 
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
+
+For more information on Whois status codes, please visit 
+https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en.
diff --git a/testdata/responses/whois.verisign-grs.com/nic.com.mime b/testdata/responses/whois.verisign-grs.com/nic.com.mime
new file mode 100644
index 0000000..d559ba0
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/nic.com.mime
@@ -0,0 +1,61 @@
+MIME-Version: 1.0
+Content-Checksum: 4600e5fcef104c1102fd0d675392a255301d4ba5
+Content-Length: 3038
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.verisign-grs.com
+Query: nic.com
+
+   Domain Name: NIC.COM
+   Registry Domain ID: 91988_DOMAIN_COM-VRSN
+   Registrar WHOIS Server: whois.networksolutions.com
+   Registrar URL: http://networksolutions.com
+   Updated Date: 2020-06-20T15:58:11Z
+   Creation Date: 1994-02-07T05:00:00Z
+   Registry Expiry Date: 2030-02-08T05:00:00Z
+   Registrar: Network Solutions, LLC
+   Registrar IANA ID: 2
+   Registrar Abuse Contact Email: abuse@web.com
+   Registrar Abuse Contact Phone: +1.8003337680
+   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+   Name Server: BILL.NIC.COM
+   Name Server: SUE.NIC.COM
+   DNSSEC: unsigned
+   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of whois database: 2020-08-07T16:16:10Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+NOTICE: The expiration date displayed in this record is the date the
+registrar's sponsorship of the domain name registration in the registry is
+currently set to expire. This date does not necessarily reflect the expiration
+date of the domain name registrant's agreement with the sponsoring
+registrar.  Users may consult the sponsoring registrar's Whois database to
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois
+database through the use of electronic processes that are high-volume and
+automated except as reasonably necessary to register domain names or
+modify existing registrations; the Data in VeriSign Global Registry
+Services' ("VeriSign") Whois database is provided by VeriSign for
+information purposes only, and to assist persons in obtaining information
+about or related to a domain name registration record. VeriSign does not
+guarantee its accuracy. By submitting a Whois query, you agree to abide
+by the following terms of use: You agree that you may use this Data only
+for lawful purposes and that under no circumstances will you use this Data
+to: (1) allow, enable, or otherwise support the transmission of mass
+unsolicited, commercial advertising or solicitations via e-mail, telephone,
+or facsimile; or (2) enable high volume, automated, electronic processes
+that apply to VeriSign (or its computer systems). The compilation,
+repackaging, dissemination or other use of this Data is expressly
+prohibited without the prior written consent of VeriSign. You agree not to
+use electronic processes that are automated and high-volume to access or
+query the Whois database except as reasonably necessary to register
+domain names or modify existing registrations. VeriSign reserves the right
+to restrict your access to the Whois database in its sole discretion to ensure
+operational stability.  VeriSign may restrict or terminate your access to the
+Whois database for failure to abide by these terms of use. VeriSign
+reserves the right to modify these terms at any time.
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/nic.net.mime b/testdata/responses/whois.verisign-grs.com/nic.net.mime
new file mode 100644
index 0000000..ffd95df
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/nic.net.mime
@@ -0,0 +1,63 @@
+MIME-Version: 1.0
+Content-Checksum: 85dcd68a5efafdc83102a2e70496f5318444d4bb
+Content-Length: 3219
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.verisign-grs.com
+Query: nic.net
+
+   Domain Name: NIC.NET
+   Registry Domain ID: 2707346_DOMAIN_NET-VRSN
+   Registrar WHOIS Server: whois.domain.com
+   Registrar URL: http://www.domain.com
+   Updated Date: 2019-09-23T03:47:20Z
+   Creation Date: 1996-10-23T04:00:00Z
+   Registry Expiry Date: 2020-10-22T04:00:00Z
+   Registrar: Domain.com, LLC
+   Registrar IANA ID: 886
+   Registrar Abuse Contact Email: compliance@domain-inc.net
+   Registrar Abuse Contact Phone: 602-226-2389
+   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
+   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
+   Name Server: DNS1.DOMAINBANK.COM
+   Name Server: DNS2.DOMAINBANK.COM
+   DNSSEC: unsigned
+   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of whois database: 2020-08-07T16:16:10Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+NOTICE: The expiration date displayed in this record is the date the
+registrar's sponsorship of the domain name registration in the registry is
+currently set to expire. This date does not necessarily reflect the expiration
+date of the domain name registrant's agreement with the sponsoring
+registrar.  Users may consult the sponsoring registrar's Whois database to
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois
+database through the use of electronic processes that are high-volume and
+automated except as reasonably necessary to register domain names or
+modify existing registrations; the Data in VeriSign Global Registry
+Services' ("VeriSign") Whois database is provided by VeriSign for
+information purposes only, and to assist persons in obtaining information
+about or related to a domain name registration record. VeriSign does not
+guarantee its accuracy. By submitting a Whois query, you agree to abide
+by the following terms of use: You agree that you may use this Data only
+for lawful purposes and that under no circumstances will you use this Data
+to: (1) allow, enable, or otherwise support the transmission of mass
+unsolicited, commercial advertising or solicitations via e-mail, telephone,
+or facsimile; or (2) enable high volume, automated, electronic processes
+that apply to VeriSign (or its computer systems). The compilation,
+repackaging, dissemination or other use of this Data is expressly
+prohibited without the prior written consent of VeriSign. You agree not to
+use electronic processes that are automated and high-volume to access or
+query the Whois database except as reasonably necessary to register
+domain names or modify existing registrations. VeriSign reserves the right
+to restrict your access to the Whois database in its sole discretion to ensure
+operational stability.  VeriSign may restrict or terminate your access to the
+Whois database for failure to abide by these terms of use. VeriSign
+reserves the right to modify these terms at any time.
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/verisign-grs.com.mime b/testdata/responses/whois.verisign-grs.com/verisign-grs.com.mime
new file mode 100644
index 0000000..28037cc
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/verisign-grs.com.mime
@@ -0,0 +1,67 @@
+MIME-Version: 1.0
+Content-Checksum: 5424a59f0897b2f66eb1faef1c5fb1d5c61fce11
+Content-Length: 3538
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.verisign-grs.com
+Query: verisign-grs.com
+
+   Domain Name: VERISIGN-GRS.COM
+   Registry Domain ID: 34285870_DOMAIN_COM-VRSN
+   Registrar WHOIS Server: whois.corporatedomains.com
+   Registrar URL: http://www.cscglobal.com/global/web/csc/digital-brand-services.html
+   Updated Date: 2019-09-04T05:16:07Z
+   Creation Date: 2000-09-08T21:23:31Z
+   Registry Expiry Date: 2020-09-08T21:23:31Z
+   Registrar: CSC Corporate Domains, Inc.
+   Registrar IANA ID: 299
+   Registrar Abuse Contact Email: domainabuse@cscglobal.com
+   Registrar Abuse Contact Phone: 8887802723
+   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
+   Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
+   Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
+   Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
+   Name Server: AV1.NSTLD.COM
+   Name Server: AV2.NSTLD.COM
+   Name Server: AV3.NSTLD.COM
+   Name Server: AV4.NSTLD.COM
+   DNSSEC: signedDelegation
+   DNSSEC DS Data: 2102 8 2 1DC57303E85E313185DAA41AA970C1602C4613E088CFFEC02DB6157031F76126
+   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
+>>> Last update of whois database: 2020-08-07T16:16:10Z <<<
+
+For more information on Whois status codes, please visit https://icann.org/epp
+
+NOTICE: The expiration date displayed in this record is the date the
+registrar's sponsorship of the domain name registration in the registry is
+currently set to expire. This date does not necessarily reflect the expiration
+date of the domain name registrant's agreement with the sponsoring
+registrar.  Users may consult the sponsoring registrar's Whois database to
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois
+database through the use of electronic processes that are high-volume and
+automated except as reasonably necessary to register domain names or
+modify existing registrations; the Data in VeriSign Global Registry
+Services' ("VeriSign") Whois database is provided by VeriSign for
+information purposes only, and to assist persons in obtaining information
+about or related to a domain name registration record. VeriSign does not
+guarantee its accuracy. By submitting a Whois query, you agree to abide
+by the following terms of use: You agree that you may use this Data only
+for lawful purposes and that under no circumstances will you use this Data
+to: (1) allow, enable, or otherwise support the transmission of mass
+unsolicited, commercial advertising or solicitations via e-mail, telephone,
+or facsimile; or (2) enable high volume, automated, electronic processes
+that apply to VeriSign (or its computer systems). The compilation,
+repackaging, dissemination or other use of this Data is expressly
+prohibited without the prior written consent of VeriSign. You agree not to
+use electronic processes that are automated and high-volume to access or
+query the Whois database except as reasonably necessary to register
+domain names or modify existing registrations. VeriSign reserves the right
+to restrict your access to the Whois database in its sole discretion to ensure
+operational stability.  VeriSign may restrict or terminate your access to the
+Whois database for failure to abide by these terms of use. VeriSign
+reserves the right to modify these terms at any time.
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/whois.com.mime b/testdata/responses/whois.verisign-grs.com/whois.com.mime
new file mode 100644
index 0000000..9397f5d
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/whois.com.mime
@@ -0,0 +1,68 @@
+MIME-Version: 1.0
+Content-Checksum: ccc052de0816bc6cdbcd7200fa279c2943c84bdf
+Content-Length: 3022
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-10-03T16:49:13Z
+Host: whois.verisign-grs.com
+Query: whois.com
+
+
+Whois Server Version 2.0
+
+Domain names in the .com and .net domains can now be registered
+with many different competing registrars. Go to http://www.internic.net
+for detailed information.
+
+   Server Name: WHOIS.COM.AU
+   Registrar: TPP WHOLESALE PTY LTD.
+   Whois Server: whois.distributeit.com.au
+   Referral URL: http://www.tppwholesale.com.au
+
+   Domain Name: WHOIS.COM
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+   Name Server: NS1.WHOIS.COM
+   Name Server: NS2.WHOIS.COM
+   Name Server: NS3.WHOIS.COM
+   Name Server: NS4.WHOIS.COM
+   Status: clientTransferProhibited
+   Updated Date: 24-oct-2011
+   Creation Date: 11-apr-1995
+   Expiration Date: 12-apr-2021
+
+>>> Last update of whois database: Fri, 03 Oct 2014 16:48:56 GMT <<<
+
+NOTICE: The expiration date displayed in this record is the date the 
+registrar's sponsorship of the domain name registration in the registry is 
+currently set to expire. This date does not necessarily reflect the expiration 
+date of the domain name registrant's agreement with the sponsoring 
+registrar.  Users may consult the sponsoring registrar's Whois database to 
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois 
+database through the use of electronic processes that are high-volume and 
+automated except as reasonably necessary to register domain names or 
+modify existing registrations; the Data in VeriSign Global Registry 
+Services' ("VeriSign") Whois database is provided by VeriSign for 
+information purposes only, and to assist persons in obtaining information 
+about or related to a domain name registration record. VeriSign does not 
+guarantee its accuracy. By submitting a Whois query, you agree to abide 
+by the following terms of use: You agree that you may use this Data only 
+for lawful purposes and that under no circumstances will you use this Data 
+to: (1) allow, enable, or otherwise support the transmission of mass 
+unsolicited, commercial advertising or solicitations via e-mail, telephone, 
+or facsimile; or (2) enable high volume, automated, electronic processes 
+that apply to VeriSign (or its computer systems). The compilation, 
+repackaging, dissemination or other use of this Data is expressly 
+prohibited without the prior written consent of VeriSign. You agree not to 
+use electronic processes that are automated and high-volume to access or 
+query the Whois database except as reasonably necessary to register 
+domain names or modify existing registrations. VeriSign reserves the right 
+to restrict your access to the Whois database in its sole discretion to ensure 
+operational stability.  VeriSign may restrict or terminate your access to the 
+Whois database for failure to abide by these terms of use. VeriSign 
+reserves the right to modify these terms at any time. 
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/whois.net.mime b/testdata/responses/whois.verisign-grs.com/whois.net.mime
new file mode 100644
index 0000000..53d3b6d
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/whois.net.mime
@@ -0,0 +1,69 @@
+MIME-Version: 1.0
+Content-Checksum: fe4c4c9619bd56be0edacf98d5a3b500fe6bd5bd
+Content-Length: 3061
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2014-09-29T14:19:46+02:00
+Host: whois.verisign-grs.com
+Query: whois.net
+
+
+Whois Server Version 2.0
+
+Domain names in the .com and .net domains can now be registered
+with many different competing registrars. Go to http://www.internic.net
+for detailed information.
+
+   Server Name: WHOIS.NET4DOMAINS.COM
+   IP Address: 202.71.131.3
+   Registrar: NET 4 INDIA LIMITED
+   Whois Server: whois.net4domains.com
+   Referral URL: http://www.net4.in 
+
+   Domain Name: WHOIS.NET
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+   Name Server: GLB-NS1.IT.VERIO.NET
+   Name Server: GLB-NS2.IT.VERIO.NET
+   Name Server: GLB-NS3.IT.VERIO.NET
+   Name Server: GLB-NS4.IT.VERIO.NET
+   Status: clientTransferProhibited
+   Updated Date: 12-jan-2010
+   Creation Date: 12-feb-1997
+   Expiration Date: 13-feb-2018
+
+>>> Last update of whois database: Mon, 29 Sep 2014 12:19:35 UTC <<<
+
+NOTICE: The expiration date displayed in this record is the date the 
+registrar's sponsorship of the domain name registration in the registry is 
+currently set to expire. This date does not necessarily reflect the expiration 
+date of the domain name registrant's agreement with the sponsoring 
+registrar.  Users may consult the sponsoring registrar's Whois database to 
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois 
+database through the use of electronic processes that are high-volume and 
+automated except as reasonably necessary to register domain names or 
+modify existing registrations; the Data in VeriSign Global Registry 
+Services' ("VeriSign") Whois database is provided by VeriSign for 
+information purposes only, and to assist persons in obtaining information 
+about or related to a domain name registration record. VeriSign does not 
+guarantee its accuracy. By submitting a Whois query, you agree to abide 
+by the following terms of use: You agree that you may use this Data only 
+for lawful purposes and that under no circumstances will you use this Data 
+to: (1) allow, enable, or otherwise support the transmission of mass 
+unsolicited, commercial advertising or solicitations via e-mail, telephone, 
+or facsimile; or (2) enable high volume, automated, electronic processes 
+that apply to VeriSign (or its computer systems). The compilation, 
+repackaging, dissemination or other use of this Data is expressly 
+prohibited without the prior written consent of VeriSign. You agree not to 
+use electronic processes that are automated and high-volume to access or 
+query the Whois database except as reasonably necessary to register 
+domain names or modify existing registrations. VeriSign reserves the right 
+to restrict your access to the Whois database in its sole discretion to ensure 
+operational stability.  VeriSign may restrict or terminate your access to the 
+Whois database for failure to abide by these terms of use. VeriSign 
+reserves the right to modify these terms at any time. 
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/www.com.mime b/testdata/responses/whois.verisign-grs.com/www.com.mime
new file mode 100644
index 0000000..e56a202
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/www.com.mime
@@ -0,0 +1,340 @@
+MIME-Version: 1.0
+Content-Checksum: e9db48bc186d7697345dc8d65b55f3787a0dc51b
+Content-Length: 11381
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-10-03T16:16:15Z
+Host: whois.verisign-grs.com
+Query: www.com
+
+
+Whois Server Version 2.0
+
+Domain names in the .com and .net domains can now be registered
+with many different competing registrars. Go to http://www.internic.net
+for detailed information.
+
+Aborting search 50 records found .....
+   Server Name: WWW.COM-1004.COM
+   IP Address: 112.218.112.28
+   Registrar: GABIA, INC.
+   Whois Server: whois.gabia.com
+   Referral URL: http://www.gabia.com
+
+   Server Name: WWW.COM-2.JP
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: WWW.COM-ARTISAN.COM
+   IP Address: 119.245.138.43
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: WWW.COM-DAPI.FR
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: WWW.COM-ET.FR
+   Registrar: GANDI SAS
+   Whois Server: whois.gandi.net
+   Referral URL: http://www.gandi.net
+
+   Server Name: WWW.COM-FLEX.COM
+   IP Address: 60.39.247.9
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: WWW.COM-JP.NET
+   IP Address: 202.171.158.76
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: WWW.COM-LABORATORY.COM
+   IP Address: 153.128.36.13
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: WWW.COM-PAGE.CO.UK
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: WWW.COM-STOCK.COM
+   IP Address: 65.163.225.69
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.COM.AR
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.COM.AR.ARQROBLES.COM
+   IP Address: 200.123.152.57
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.COM.AR.ARTEYESTILOS.NET
+   IP Address: 200.123.152.57
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: WWW.COM.BR
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: WWW.COM.CN
+   Registrar: BEIJING INNOVATIVE LINKAGE TECHNOLOGY LTD. DBA DNS.COM.CN
+   Whois Server: whois.dns.com.cn
+   Referral URL: http://www.dns.com.cn
+
+   Server Name: WWW.COM.TW
+   Registrar: BIZCN.COM, INC.
+   Whois Server: whois.bizcn.com
+   Referral URL: http://www.bizcn.com
+
+   Server Name: WWW.COM2.AR
+   Registrar: DATTATEC.COM SRL
+   Whois Server: whois.dattatec.com
+   Referral URL: http://www.dattatec.com
+
+   Server Name: WWW.COM29COM.COM
+   IP Address: 113.10.139.122
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.COM2PLAN.NET
+   IP Address: 157.112.147.232
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: WWW.COM2ZOA.NET
+   IP Address: 61.80.90.91
+   Registrar: WHOISNETWORKS CO., LTD.
+   Whois Server: whois.yesnic.com
+   Referral URL: http://www.yesnic.com
+
+   Server Name: WWW.COM916.COM
+   IP Address: 110.45.211.155
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.COMA-PRODUCTION.COM
+   IP Address: 212.72.183.150
+   Registrar: REGISTRYGATE GMBH
+   Whois Server: whois.registrygate.com
+   Referral URL: http://www.registrygate.com
+
+   Server Name: WWW.COMACT.COM
+   IP Address: 209.5.119.85
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.COMADRID.ES
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.COMALL.TW
+   Registrar: WEB COMMERCE COMMUNICATIONS LIMITED DBA WEBNIC.CC
+   Whois Server: whois.webnic.cc
+   Referral URL: http://www.webnic.cc
+
+   Server Name: WWW.COMANCHECREEKPHOTOGRAPHY.COM
+   IP Address: 208.79.45.23
+   Registrar: CSL COMPUTER SERVICE LANGENBACH GMBH D/B/A JOKER.COM
+   Whois Server: whois.joker.com
+   Referral URL: http://www.joker.com
+
+   Server Name: WWW.COMANCHEINTERNATIONAL.COM
+   IP Address: 58.137.64.178
+   Registrar: DOMAINSITE, INC.
+   Whois Server: whois.domainsite.com
+   Referral URL: http://www.domainsite.com
+
+   Server Name: WWW.COMANDOMU.DOMINIOCONGELADO.COM
+   IP Address: 74.125.65.132
+   Registrar: UNIVERSO ONLINE S/A (UOL)
+   Whois Server: whois.host.uol.com.br
+   Referral URL: http://www.uol.com.br/host
+
+   Server Name: WWW.COMANDORONDONIA.BLOGSPOT.COM.BR
+   Registrar: UNIVERSO ONLINE S/A (UOL)
+   Whois Server: whois.host.uol.com.br
+   Referral URL: http://www.uol.com.br/host
+
+   Server Name: WWW.COMAP8.NET
+   IP Address: 202.133.249.228
+   Registrar: NET-CHINESE CO., LTD.
+   Whois Server: whois.net-chinese.com.tw
+   Referral URL: http://www.net-chinese.com.tw
+
+   Server Name: WWW.COMARCH.INFO
+   Registrar: UK-2 LIMITED
+   Whois Server: whois.hostingservicesinc.net
+   Referral URL: http://www.uk2group.com
+
+   Server Name: WWW.COMART.COM.TW
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.COMAU-NA.COM
+   IP Address: 207.218.136.164
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.COMAUPICO.COM
+   IP Address: 24.221.64.64
+   Registrar: ABOVE.COM PTY LTD.
+   Whois Server: whois.above.com
+   Referral URL: http://www.above.com
+
+   Server Name: WWW.COMAXES.COM
+   IP Address: 112.213.99.213
+   Registrar: HANGZHOU AIMING NETWORK CO.,LTD
+   Whois Server: whois.22.cn
+   Referral URL: http://www.22.cn
+
+   Server Name: WWW.COMBANY.COM
+   IP Address: 123.191.138.103
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.COMBATARMSNXFREE.COM
+   IP Address: 87.68.254.66
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: WWW.COMBATTACTICALKNIFE.COM
+   IP Address: 50.28.9.74
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.COMBECAPELLE.COM
+   IP Address: 184.73.237.244
+   Registrar: 10DENCEHISPAHARD, S.L
+   Whois Server: whois.cdmon.com
+   Referral URL: http://www.cdmon.com
+
+   Server Name: WWW.COMBILET.NET
+   IP Address: 95.0.142.234
+   Registrar: TUCOWS DOMAINS INC.
+   Whois Server: whois.tucows.com
+   Referral URL: http://domainhelp.opensrs.net
+
+   Server Name: WWW.COMBINA.COM
+   IP Address: 200.186.145.185
+   Registrar: MONIKER ONLINE SERVICES LLC
+   Whois Server: whois.moniker.com
+   Referral URL: http://www.moniker.com
+
+   Server Name: WWW.COMBINECHINA.COM
+   IP Address: 218.103.28.11
+   Registrar: HICHINA ZHICHENG TECHNOLOGY LTD.
+   Whois Server: grs-whois.hichina.com
+   Referral URL: http://www.net.cn
+
+   Server Name: WWW.COMBINEDBEARING.COM
+   IP Address: 207.170.36.212
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.COMBINEDCANBERRA.COM
+   IP Address: 199.34.228.100
+   Registrar: CRAZY DOMAINS FZ-LLC
+   Whois Server: whois.crazydomains.com
+   Referral URL: http://www.crazydomains.com 
+
+   Server Name: WWW.COMBINELASER.COM
+   IP Address: 114.112.59.218
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.COMBITRANS.ES
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: WWW.COMBO-CHINA.COM
+   IP Address: 218.85.139.77
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.COMBOSITE.COM
+   IP Address: 200.62.55.253
+   Registrar: DOMAIN.COM, LLC
+   Whois Server: whois.domain.com
+   Referral URL: http://www.domain.com
+
+   Server Name: WWW.COMCAST.ENT
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Domain Name: WWW.COM
+   Registrar: UNIREGISTRAR CORP
+   Whois Server: whois.uniregistrar.com
+   Referral URL: http://www.uniregistrar.com
+   Name Server: NS3.DOMAINMANAGER.COM
+   Name Server: NS4.DOMAINMANAGER.COM
+   Status: clientTransferProhibited
+   Updated Date: 23-sep-2014
+   Creation Date: 02-nov-1998
+   Expiration Date: 20-sep-2024
+
+>>> Last update of whois database: Fri, 03 Oct 2014 16:16:04 GMT <<<
+
+NOTICE: The expiration date displayed in this record is the date the 
+registrar's sponsorship of the domain name registration in the registry is 
+currently set to expire. This date does not necessarily reflect the expiration 
+date of the domain name registrant's agreement with the sponsoring 
+registrar.  Users may consult the sponsoring registrar's Whois database to 
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois 
+database through the use of electronic processes that are high-volume and 
+automated except as reasonably necessary to register domain names or 
+modify existing registrations; the Data in VeriSign Global Registry 
+Services' ("VeriSign") Whois database is provided by VeriSign for 
+information purposes only, and to assist persons in obtaining information 
+about or related to a domain name registration record. VeriSign does not 
+guarantee its accuracy. By submitting a Whois query, you agree to abide 
+by the following terms of use: You agree that you may use this Data only 
+for lawful purposes and that under no circumstances will you use this Data 
+to: (1) allow, enable, or otherwise support the transmission of mass 
+unsolicited, commercial advertising or solicitations via e-mail, telephone, 
+or facsimile; or (2) enable high volume, automated, electronic processes 
+that apply to VeriSign (or its computer systems). The compilation, 
+repackaging, dissemination or other use of this Data is expressly 
+prohibited without the prior written consent of VeriSign. You agree not to 
+use electronic processes that are automated and high-volume to access or 
+query the Whois database except as reasonably necessary to register 
+domain names or modify existing registrations. VeriSign reserves the right 
+to restrict your access to the Whois database in its sole discretion to ensure 
+operational stability.  VeriSign may restrict or terminate your access to the 
+Whois database for failure to abide by these terms of use. VeriSign 
+reserves the right to modify these terms at any time. 
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/www.net.mime b/testdata/responses/whois.verisign-grs.com/www.net.mime
new file mode 100644
index 0000000..b9ec86f
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/www.net.mime
@@ -0,0 +1,340 @@
+MIME-Version: 1.0
+Content-Checksum: e047af52dcfe4fe6a1ba31139c2996cefd77e115
+Content-Length: 11294
+Content-Type: text/plain; charset=windows-1252
+Fetched-At: 2014-09-29T12:26:07Z
+Host: whois.verisign-grs.com
+Query: www.net
+
+
+Whois Server Version 2.0
+
+Domain names in the .com and .net domains can now be registered
+with many different competing registrars. Go to http://www.internic.net
+for detailed information.
+
+Aborting search 50 records found .....
+   Server Name: WWW.NET-4U.NET
+   IP Address: 87.106.232.162
+   Registrar: MONIKER ONLINE SERVICES LLC
+   Whois Server: whois.moniker.com
+   Referral URL: http://www.moniker.com
+
+   Server Name: WWW.NET-ARCH.NET
+   IP Address: 23.22.243.222
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET-ARMY.COM
+   IP Address: 61.199.234.51
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: WWW.NET-BUILDING.NET
+   IP Address: 222.76.216.11
+   Registrar: NAMESILO, LLC
+   Whois Server: whois.namesilo.com
+   Referral URL: http://www.namesilo.com
+
+   Server Name: WWW.NET-BUY.NET.DOES-NOT-EXIST.BIZ
+   Registrar: TIERRANET INC. D/B/A DOMAINDISCOVER
+   Whois Server: whois.domaindiscover.com
+   Referral URL: http://www.domaindiscover.com
+
+   Server Name: WWW.NET-C.NET
+   IP Address: 129.121.99.107
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: WWW.NET-CAMPER.COM
+   IP Address: 218.224.125.79
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: WWW.NET-CHINESE.COM.TW
+   Registrar: NET-CHINESE CO., LTD.
+   Whois Server: whois.net-chinese.com.tw
+   Referral URL: http://www.net-chinese.com.tw
+
+   Server Name: WWW.NET-CODE.INFO
+   Registrar: TUCOWS DOMAINS INC.
+   Whois Server: whois.tucows.com
+   Referral URL: http://domainhelp.opensrs.net
+
+   Server Name: WWW.NET-CODERS.COM
+   IP Address: 78.46.40.68
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET-COMPUTER.COM
+   IP Address: 202.238.87.204
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NET-DETECTIVE-LOGIN.COM
+   IP Address: 207.204.52.165
+   Registrar: NAMESILO, LLC
+   Whois Server: whois.namesilo.com
+   Referral URL: http://www.namesilo.com
+
+   Server Name: WWW.NET-FLORIST.COM
+   IP Address: 69.25.150.183
+   Registrar: MONIKER ONLINE SERVICES LLC
+   Whois Server: whois.moniker.com
+   Referral URL: http://www.moniker.com
+
+   Server Name: WWW.NET-GIGA.COM
+   IP Address: 210.197.74.200
+   IP Address: 210.197.74.201
+   Registrar: GMO INTERNET, INC. DBA ONAMAE.COM
+   Whois Server: whois.discount-domain.com
+   Referral URL: http://www.onamae.com
+
+   Server Name: WWW.NET-GUYZ.NET
+   IP Address: 173.11.83.33
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET-J.JP
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NET-KEYWORD.COM
+   IP Address: 220.134.179.250
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET-KOM.COM.TR
+   Registrar: REGISTER.COM, INC.
+   Whois Server: whois.register.com
+   Referral URL: http://www.register.com
+
+   Server Name: WWW.NET-MASTER.WS
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NET-METRIX.NET
+   IP Address: 216.99.113.210
+   Registrar: LAUNCHPAD.COM, INC.
+   Whois Server: whois.launchpad.com
+   Referral URL: http://www.launchpad.com
+
+   Server Name: WWW.NET-PLAY.FR
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: WWW.NET-SAVERS.COM
+   IP Address: 63.172.53.2
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET-TIME.IT
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NET-WHIZ.NET
+   IP Address: 67.217.145.1
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET.CN
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NET.ILAX.COM.BR
+   Registrar: UNIVERSO ONLINE S/A (UOL)
+   Whois Server: whois.host.uol.com.br
+   Referral URL: http://www.uol.com.br/host
+
+   Server Name: WWW.NET1.CN
+   Registrar: MELBOURNE IT, LTD. D/B/A INTERNET NAMES WORLDWIDE
+   Whois Server: whois.melbourneit.com
+   Referral URL: http://www.melbourneit.com
+
+   Server Name: WWW.NET165.COM
+   IP Address: 182.245.213.234
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.NET167.COM
+   IP Address: 121.199.26.111
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.NET1ASIA.NET
+   IP Address: 69.162.111.218
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET207.COM
+   IP Address: 59.105.170.143
+   Registrar: WEB COMMERCE COMMUNICATIONS LIMITED DBA WEBNIC.CC
+   Whois Server: whois.webnic.cc
+   Referral URL: http://www.webnic.cc
+
+   Server Name: WWW.NET23.HU
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NET2EYE.COM
+   IP Address: 121.246.188.68
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET2ND.COM
+   IP Address: 118.244.106.222
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.NET2TRACK.COM
+   IP Address: 122.176.96.58
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET365.COM
+   IP Address: 211.94.152.34
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: WWW.NET4.IN
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: WWW.NET489.JP
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NET4HOLYDAYS.COM
+   IP Address: 213.162.51.34
+   Registrar: KEY-SYSTEMS GMBH
+   Whois Server: whois.rrpproxy.net
+   Referral URL: http://www.key-systems.net
+
+   Server Name: WWW.NET4UINDIA.COM
+   IP Address: 111.91.123.20
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: WWW.NET4UINDIA.NET
+   IP Address: 111.91.123.20
+   Registrar: PDR LTD. D/B/A PUBLICDOMAINREGISTRY.COM
+   Whois Server: whois.PublicDomainRegistry.com
+   Referral URL: http://www.PublicDomainRegistry.com
+
+   Server Name: WWW.NET7NET.COM
+   IP Address: 213.8.153.211
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Server Name: WWW.NET8848.COM
+   IP Address: 116.254.252.32
+   Registrar: XIN NET TECHNOLOGY CORPORATION
+   Whois Server: whois.paycenter.com.cn
+   Referral URL: http://www.xinnet.com
+
+   Server Name: WWW.NETACCESS.RO
+   Registrar: ENOM, INC.
+   Whois Server: whois.enom.com
+   Referral URL: http://www.enom.com
+
+   Server Name: WWW.NETACHART.COM
+   IP Address: 199.34.228.59
+   Registrar: DOMAIN.COM, LLC
+   Whois Server: whois.domain.com
+   Referral URL: http://www.domain.com
+
+   Server Name: WWW.NETADVANCE.JP
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+
+   Server Name: WWW.NETAEXCHANGE.COM
+   IP Address: 195.92.108.120
+   Registrar: ASCIO TECHNOLOGIES, INC.
+   Whois Server: whois.ascio.com
+   Referral URL: http://www.ascio.com
+
+   Server Name: WWW.NETAGENTS.FR
+   Registrar: OVH
+   Whois Server: whois.ovh.com
+   Referral URL: http://www.ovh.com
+
+   Server Name: WWW.NETAHAGILADI.COM
+   IP Address: 54.197.234.78
+   Registrar: GODADDY.COM, LLC
+   Whois Server: whois.godaddy.com
+   Referral URL: http://registrar.godaddy.com
+
+   Domain Name: WWW.NET
+   Registrar: NETWORK SOLUTIONS, LLC.
+   Whois Server: whois.networksolutions.com
+   Referral URL: http://networksolutions.com
+   Name Server: AUTH01.NS.UU.NET
+   Name Server: NS.UUNET.CA
+   Status: clientTransferProhibited
+   Updated Date: 27-jun-2006
+   Creation Date: 10-aug-1994
+   Expiration Date: 09-aug-2015
+
+>>> Last update of whois database: Mon, 29 Sep 2014 12:25:51 UTC <<<
+
+NOTICE: The expiration date displayed in this record is the date the 
+registrar's sponsorship of the domain name registration in the registry is 
+currently set to expire. This date does not necessarily reflect the expiration 
+date of the domain name registrant's agreement with the sponsoring 
+registrar.  Users may consult the sponsoring registrar's Whois database to 
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois 
+database through the use of electronic processes that are high-volume and 
+automated except as reasonably necessary to register domain names or 
+modify existing registrations; the Data in VeriSign Global Registry 
+Services' ("VeriSign") Whois database is provided by VeriSign for 
+information purposes only, and to assist persons in obtaining information 
+about or related to a domain name registration record. VeriSign does not 
+guarantee its accuracy. By submitting a Whois query, you agree to abide 
+by the following terms of use: You agree that you may use this Data only 
+for lawful purposes and that under no circumstances will you use this Data 
+to: (1) allow, enable, or otherwise support the transmission of mass 
+unsolicited, commercial advertising or solicitations via e-mail, telephone, 
+or facsimile; or (2) enable high volume, automated, electronic processes 
+that apply to VeriSign (or its computer systems). The compilation, 
+repackaging, dissemination or other use of this Data is expressly 
+prohibited without the prior written consent of VeriSign. You agree not to 
+use electronic processes that are automated and high-volume to access or 
+query the Whois database except as reasonably necessary to register 
+domain names or modify existing registrations. VeriSign reserves the right 
+to restrict your access to the Whois database in its sole discretion to ensure 
+operational stability.  VeriSign may restrict or terminate your access to the 
+Whois database for failure to abide by these terms of use. VeriSign 
+reserves the right to modify these terms at any time. 
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/zx5v7d4v2k50l3pq.com.mime b/testdata/responses/whois.verisign-grs.com/zx5v7d4v2k50l3pq.com.mime
new file mode 100644
index 0000000..f1b1672
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/zx5v7d4v2k50l3pq.com.mime
@@ -0,0 +1,44 @@
+MIME-Version: 1.0
+Content-Checksum: 47049f3942d5c6d9085b8a690168a71ba2b18bda
+Content-Length: 2281
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:25Z
+Host: whois.verisign-grs.com
+Query: zx5v7d4v2k50l3pq.com
+
+No match for "ZX5V7D4V2K50L3PQ.COM".
+>>> Last update of whois database: 2020-08-07T16:16:10Z <<<
+
+NOTICE: The expiration date displayed in this record is the date the
+registrar's sponsorship of the domain name registration in the registry is
+currently set to expire. This date does not necessarily reflect the expiration
+date of the domain name registrant's agreement with the sponsoring
+registrar.  Users may consult the sponsoring registrar's Whois database to
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois
+database through the use of electronic processes that are high-volume and
+automated except as reasonably necessary to register domain names or
+modify existing registrations; the Data in VeriSign Global Registry
+Services' ("VeriSign") Whois database is provided by VeriSign for
+information purposes only, and to assist persons in obtaining information
+about or related to a domain name registration record. VeriSign does not
+guarantee its accuracy. By submitting a Whois query, you agree to abide
+by the following terms of use: You agree that you may use this Data only
+for lawful purposes and that under no circumstances will you use this Data
+to: (1) allow, enable, or otherwise support the transmission of mass
+unsolicited, commercial advertising or solicitations via e-mail, telephone,
+or facsimile; or (2) enable high volume, automated, electronic processes
+that apply to VeriSign (or its computer systems). The compilation,
+repackaging, dissemination or other use of this Data is expressly
+prohibited without the prior written consent of VeriSign. You agree not to
+use electronic processes that are automated and high-volume to access or
+query the Whois database except as reasonably necessary to register
+domain names or modify existing registrations. VeriSign reserves the right
+to restrict your access to the Whois database in its sole discretion to ensure
+operational stability.  VeriSign may restrict or terminate your access to the
+Whois database for failure to abide by these terms of use. VeriSign
+reserves the right to modify these terms at any time.
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/whois.verisign-grs.com/zx5v7d4v2k50l3pq.net.mime b/testdata/responses/whois.verisign-grs.com/zx5v7d4v2k50l3pq.net.mime
new file mode 100644
index 0000000..84b4a3d
--- /dev/null
+++ b/testdata/responses/whois.verisign-grs.com/zx5v7d4v2k50l3pq.net.mime
@@ -0,0 +1,44 @@
+MIME-Version: 1.0
+Content-Checksum: 4a2b19b05c2bbcb3da2bf43734f153be6450d9f9
+Content-Length: 2281
+Content-Type: text/plain; charset=iso-8859-1
+Fetched-At: 2020-08-07T16:16:26Z
+Host: whois.verisign-grs.com
+Query: zx5v7d4v2k50l3pq.net
+
+No match for "ZX5V7D4V2K50L3PQ.NET".
+>>> Last update of whois database: 2020-08-07T16:16:10Z <<<
+
+NOTICE: The expiration date displayed in this record is the date the
+registrar's sponsorship of the domain name registration in the registry is
+currently set to expire. This date does not necessarily reflect the expiration
+date of the domain name registrant's agreement with the sponsoring
+registrar.  Users may consult the sponsoring registrar's Whois database to
+view the registrar's reported date of expiration for this registration.
+
+TERMS OF USE: You are not authorized to access or query our Whois
+database through the use of electronic processes that are high-volume and
+automated except as reasonably necessary to register domain names or
+modify existing registrations; the Data in VeriSign Global Registry
+Services' ("VeriSign") Whois database is provided by VeriSign for
+information purposes only, and to assist persons in obtaining information
+about or related to a domain name registration record. VeriSign does not
+guarantee its accuracy. By submitting a Whois query, you agree to abide
+by the following terms of use: You agree that you may use this Data only
+for lawful purposes and that under no circumstances will you use this Data
+to: (1) allow, enable, or otherwise support the transmission of mass
+unsolicited, commercial advertising or solicitations via e-mail, telephone,
+or facsimile; or (2) enable high volume, automated, electronic processes
+that apply to VeriSign (or its computer systems). The compilation,
+repackaging, dissemination or other use of this Data is expressly
+prohibited without the prior written consent of VeriSign. You agree not to
+use electronic processes that are automated and high-volume to access or
+query the Whois database except as reasonably necessary to register
+domain names or modify existing registrations. VeriSign reserves the right
+to restrict your access to the Whois database in its sole discretion to ensure
+operational stability.  VeriSign may restrict or terminate your access to the
+Whois database for failure to abide by these terms of use. VeriSign
+reserves the right to modify these terms at any time.
+
+The Registry database contains ONLY .COM, .NET, .EDU domains and
+Registrars.
diff --git a/testdata/responses/www.cenpac.net.nr/cenpac.net.nr.mime b/testdata/responses/www.cenpac.net.nr/cenpac.net.nr.mime
new file mode 100644
index 0000000..4c2e1d0
--- /dev/null
+++ b/testdata/responses/www.cenpac.net.nr/cenpac.net.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: a91d097b68886196fe0c873437bd428aa3ab10f5
+Content-Length: 8981
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:35Z
+Host: www.cenpac.net.nr
+Query: cenpac.net.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="cenpac" />&nbsp;.&nbsp;<select name="tld"><option value="nr" >nr</option><option value="biz.nr" >biz.nr</option><option value="info.nr" >info.nr</option><option value="com.nr" >com.nr</option><option value="net.nr" selected="selected">net.nr</option><option value="org.nr" >org.nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+<table border="0"><tr><td><b>Domain Name: </b></td><td><b><a href="domreg.html?subdom=cenpac&tld=net.nr">cenpac.net.nr</b> (modify)</a></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td><b>Organisation:</b> </td><td>CENPACNET INC.</td></tr><tr><td>Address: </td><td>Telecom Offices</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Yaren District</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td></td></tr><tr><td>Phone: </td><td>+674 4443132</td></tr><tr><td>Fax: </td><td>+674 4443111</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Administrative Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=NR-CA1"><b>NR-CA1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Criden</td></tr><tr><td>Last Name: </td><td>Appi</td></tr><tr><td>Organisation: </td><td>CENPAC</td></tr><tr><td>Address: </td><td>RONTEL Offices</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Yaren District</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td></td></tr><tr><td>Phone: </td><td>+674 4443132</td></tr><tr><td>Fax: </td><td>+674 4443111</td></tr><tr><td>Email: </td><td>cappi@cenpac.net.nr</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>NR-CA1</td></tr><tr><td>Date: </td><td>2005-12-20</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Technical Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=NR-JL1"><b>NR-JL1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Cenpac</td></tr><tr><td>Last Name: </td><td>Manager</td></tr><tr><td>Organisation: </td><td>CENPACNET</td></tr><tr><td>Address: </td><td>Telecom Offices</td></tr><tr><td>Address: </td><td>  </td></tr><tr><td>City: </td><td>Nauru</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td>  </td></tr><tr><td>Phone: </td><td>+674 558 7116</td></tr><tr><td>Fax: </td><td>  </td></tr><tr><td>Email: </td><td>management@cenpac.net.nr</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>NR-JL1</td></tr><tr><td>Date: </td><td>2003-11-06</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Billing Details</b></td></tr><tr><td>Title: </td><td>Director</td></tr><tr><td>Organisation: </td><td>CENPAC</td></tr><tr><td>Address: </td><td>Telecom Offices</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Yaren District</td></tr><tr><td>Country: </td><td>NR</td></tr><tr><td>ZIP: </td><td></td></tr><tr><td>Phone: </td><td>+674 4443132</td></tr><tr><td>Fax: </td><td>+674 4443111</td></tr><tr><td>Email: </td><td>technician@cenpac.net.nr</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Registration</b></td></tr><tr><td>Registration Date: </td><td>2005-12-19</td></tr><tr><td>Start Domain: </td><td>2005-12-13</td></tr><tr><td>Expiration: </td><td>2025-12-13</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Record Modification</b></td><tr><td>Modifier: </td><td>NR-JL1</td></tr><tr><td>Date: </td><td>2005-12-19</td></tr></table></body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/www.cenpac.net.nr/google.nr.mime b/testdata/responses/www.cenpac.net.nr/google.nr.mime
new file mode 100644
index 0000000..322bfbf
--- /dev/null
+++ b/testdata/responses/www.cenpac.net.nr/google.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: 06500543d546451e742417b5b303a4f3a04b1e0b
+Content-Length: 9102
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:33Z
+Host: www.cenpac.net.nr
+Query: google.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="google" />&nbsp;.&nbsp;<select name="tld"><option value="nr" selected="selected">nr</option><option value="biz.nr" >biz.nr</option><option value="info.nr" >info.nr</option><option value="com.nr" >com.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+<table border="0"><tr><td><b>Domain Name: </b></td><td><b><a href="domreg.html?subdom=google&tld=nr">google.nr</b> (modify)</a></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td><b>Organisation:</b> </td><td>Google LLC</td></tr><tr><td>Address: </td><td>1600 Amphitheatre Parkway</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Mountain View, CA</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>94043</td></tr><tr><td>Phone: </td><td>+1 6502530000</td></tr><tr><td>Fax: </td><td>+1 6502530001</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Administrative Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=US-RH1"><b>US-RH1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Domain</td></tr><tr><td>Last Name: </td><td>Administrator</td></tr><tr><td>Organisation: </td><td>Google LLC</td></tr><tr><td>Address: </td><td>1600 Amphitheatre Parkway</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Mountain View, CA</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>94043</td></tr><tr><td>Phone: </td><td>+1 6502530000</td></tr><tr><td>Fax: </td><td>+1 6502530001</td></tr><tr><td>Email: </td><td>ccops@markmonitor.com</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>US-RH1</td></tr><tr><td>Date: </td><td>2018-12-08</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Technical Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=US-JJ1"><b>US-JJ1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Domain</td></tr><tr><td>Last Name: </td><td>Administrator</td></tr><tr><td>Organisation: </td><td>Google LLC</td></tr><tr><td>Address: </td><td>1600 Amphitheatre Parkway</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Mountain View, CA</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>94043</td></tr><tr><td>Phone: </td><td>+1 6502530000</td></tr><tr><td>Fax: </td><td>+1 6502530001</td></tr><tr><td>Email: </td><td>ccops@markmonitor.com</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>US-JJ1</td></tr><tr><td>Date: </td><td>2018-12-08</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Billing Details</b></td></tr><tr><td>Title: </td><td>Domain Billing</td></tr><tr><td>Organisation: </td><td>Markmonitor Inc.</td></tr><tr><td>Address: </td><td>3540 East Longwing Lane, Suite 300</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>Meridian, ID</td></tr><tr><td>Country: </td><td>US</td></tr><tr><td>ZIP: </td><td>83646</td></tr><tr><td>Phone: </td><td>+1 208 3895740</td></tr><tr><td>Fax: </td><td>+1 208 3895771</td></tr><tr><td>Email: </td><td>ccops@markmonitor.com</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Registration</b></td></tr><tr><td>Registration Date: </td><td>2004-09-15</td></tr><tr><td>Start Domain: </td><td>2004-10-06</td></tr><tr><td>Expiration: </td><td>2020-10-06</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Record Modification</b></td><tr><td>Modifier: </td><td>US-RH1</td></tr><tr><td>Date: </td><td>2018-12-08</td></tr></table></body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/www.cenpac.net.nr/nic.nr.mime b/testdata/responses/www.cenpac.net.nr/nic.nr.mime
new file mode 100644
index 0000000..ffbecc3
--- /dev/null
+++ b/testdata/responses/www.cenpac.net.nr/nic.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: b1ccb6482247240411fe8e4a7c0db08d7c7a3555
+Content-Length: 8878
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:31Z
+Host: www.cenpac.net.nr
+Query: nic.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="nic" />&nbsp;.&nbsp;<select name="tld"><option value="nr" selected="selected">nr</option><option value="biz.nr" >biz.nr</option><option value="info.nr" >info.nr</option><option value="com.nr" >com.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+<table border="0"><tr><td><b>Domain Name: </b></td><td><b><a href="domreg.html?subdom=nic&tld=nr">nic.nr</b> (modify)</a></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td><b>Organisation:</b> </td><td>diy.gd,.ltd</td></tr><tr><td>Address: </td><td>qianjing 1st road</td></tr><tr><td>Address: </td><td></td></tr><tr><td>City: </td><td>wuhan</td></tr><tr><td>Country: </td><td>CN</td></tr><tr><td>ZIP: </td><td>430000</td></tr><tr><td>Phone: </td><td>+8613545431843</td></tr><tr><td>Fax: </td><td></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Administrative Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=CN-YK1"><b>CN-YK1</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Yang</td></tr><tr><td>Last Name: </td><td>kexi</td></tr><tr><td>Organisation: </td><td>YANG</td></tr><tr><td>Address: </td><td>qianjingyilu</td></tr><tr><td>Address: </td><td>qianjingyilu</td></tr><tr><td>City: </td><td>wuhan</td></tr><tr><td>Country: </td><td>CN</td></tr><tr><td>ZIP: </td><td>430000</td></tr><tr><td>Phone: </td><td>+8613545431843</td></tr><tr><td>Fax: </td><td></td></tr><tr><td>Email: </td><td>injy@qq.com</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>CN-YK1</td></tr><tr><td>Date: </td><td>2018-02-16</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Technical Contact</b></td></tr><tr><td colspan="2"><table border="0"><tr><td><b>Handle:</b></td><td><a href="contactmodif.html?handle=CN-YK2"><b>CN-YK2</b> (modify)</a></td></tr><tr><td colspan="2">&nbsp;</td></tr><tr><td>First Name: </td><td>Yang</td></tr><tr><td>Last Name: </td><td>kexi</td></tr><tr><td>Organisation: </td><td>YANG</td></tr><tr><td>Address: </td><td>qianjingyilu</td></tr><tr><td>Address: </td><td>qianjingyilu</td></tr><tr><td>City: </td><td>wuhan</td></tr><tr><td>Country: </td><td>CN</td></tr><tr><td>ZIP: </td><td>430000</td></tr><tr><td>Phone: </td><td>+8613545431843</td></tr><tr><td>Fax: </td><td></td></tr><tr><td>Email: </td><td>injy@qq.com</td></tr><tr><td><b>Record Modification</b></td>&nbsp<td></td></tr><tr><td>Modifier: </td><td>CN-YK2</td></tr><tr><td>Date: </td><td>2015-12-18</td></tr></table></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Billing Details</b></td></tr><tr><td>Title: </td><td>ceo</td></tr><tr><td>Organisation: </td><td>diy.gd,.ltd</td></tr><tr><td>Address: </td><td>CN-YK1</td></tr><tr><td>Address: </td><td>qianjing 1st road</td></tr><tr><td>City: </td><td>wuhan</td></tr><tr><td>Country: </td><td>CN</td></tr><tr><td>ZIP: </td><td></td></tr><tr><td>Phone: </td><td>+8613545431843</td></tr><tr><td>Fax: </td><td></td></tr><tr><td>Email: </td><td>injy@qq.com</td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Registration</b></td></tr><tr><td>Registration Date: </td><td>2019-12-02</td></tr><tr><td>Start Domain: </td><td></td></tr><tr><td>Expiration: </td><td></td></tr><tr><td span="2">&nbsp;</td></tr><tr><td colspan="2"><b>Record Modification</b></td><tr><td>Modifier: </td><td>CN-YK1</td></tr><tr><td>Date: </td><td>2020-03-06</td></tr></table></body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/testdata/responses/www.cenpac.net.nr/zx5v7d4v2k50l3pq.nr.mime b/testdata/responses/www.cenpac.net.nr/zx5v7d4v2k50l3pq.nr.mime
new file mode 100644
index 0000000..365b2f9
--- /dev/null
+++ b/testdata/responses/www.cenpac.net.nr/zx5v7d4v2k50l3pq.nr.mime
@@ -0,0 +1,185 @@
+MIME-Version: 1.0
+Content-Checksum: a220c445a9961eb54101cc4a64d664ec1680d421
+Content-Length: 5688
+Content-Type: text/html; charset=windows-1252
+Fetched-At: 2020-08-07T16:16:38Z
+Host: www.cenpac.net.nr
+Query: zx5v7d4v2k50l3pq.nr
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>.NR Whois</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+
+<head>
+<style type="text/css"><!--
+body {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  background: #ffffff url("/bkgrnd.jpg");
+  layer-background-color: #ffffff;
+  margin:0; padding:0px;
+}
+p {
+  font-family: verdana,arial,sans-serif;
+  font-size: 16px;
+  color: #000000;
+  layer-background-color: #ffffff;
+}
+a.m:link, a.m:visited, a.m:active {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+a.m:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:#000080;
+}
+a.ml:link, a.ml:visited, a.ml:active, a.ml:hover {
+  font-family: verdana,arial,sans-serif;
+  text-decoration:none; font-size: 12px;
+  color:#ffffff; background:transparent;
+}
+.menuLabel {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px; font-weight:bold;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:140px; height:20px; clip:rect(0,130,20,0); margin:0; padding:2px;
+}
+.menuBox {
+  position:absolute; visibility:hidden; overflow:hidden;
+  font-family: verdana,arial,sans-serif; font-size: 12px;
+  color:#ffffff; background: #0000DD; layer-background-color: #0000DD;
+  width:225px; padding:2px; line-height:1.3em;
+  border:1px solid #0000DD;
+}
+--></style>
+<script type="text/javascript" language="javascript" src="/java/cbe_core.js"></script>
+<script type="text/javascript" language="javascript" src="/java/cbe_event.js"></script>
+<script type="text/javascript" language="javascript"><!--
+
+var menuCount=2, menuAnchor, menuArray, activeMenu=1, menuOpen=false, activeColor='#000080', inactiveColor='#0000dd';
+function windowOnload()
+{
+  menuAnchor = cbeGetElementById('menuAnchor').cbe;
+  menuArray = new Array();
+  window.cbe.addEventListener("resize", resizeListener);
+  document.cbe.addEventListener("mousemove", menuHide);
+  setTimeout("init()", 250);
+}
+
+function resizeListener(e) {
+  init();
+}
+
+function init() {
+  var i, menuX, menuY, menuLabel;
+  menuX=menuAnchor.pageX();
+  menuY=menuAnchor.pageY();
+  for (i = 1; i <= menuCount; ++i) {
+    menuLabel = cbeGetElementById('menuLabel'+i).cbe;
+    menuLabel.zIndex(1);
+    menuLabel.resizeTo(130,20);
+    menuLabel.moveTo(menuX, menuY);
+    menuLabel.show();
+    menuArray[i] = cbeGetElementById('menu'+i).cbe;
+    menuArray[i].moveTo(menuX, menuY + menuLabel.height());
+    menuArray[i].menuLabel = menuLabel;
+    menuArray[i].zIndex(2);
+    menuX += menuLabel.width();
+  }
+}
+
+function menuShow(e,mn)
+{
+  if (mn == activeMenu && menuOpen) return;
+  menuArray[activeMenu].hide()
+  for (i = 1; i <= menuCount; ++i) {
+    menuArray[i].menuLabel.background(inactiveColor);
+  }
+  menuArray[mn].show();
+  menuArray[mn].menuLabel.background(activeColor);
+  activeMenu = mn;
+  menuOpen = true;
+}
+
+function menuHide(e)
+{
+  if (!menuOpen) return;
+  var x = e.pageX;
+  var y = e.pageY;
+  if (!menuArray[activeMenu].contains(x,y,-2,0,0,0) && !menuArray[activeMenu].menuLabel.contains(x,y,0,20,0,0)) {
+    menuArray[activeMenu].hide();
+    menuArray[activeMenu].menuLabel.background(inactiveColor);
+    menuOpen = false;
+  }
+}
+
+//--></script>
+</head>
+<!-- Definition of the menus -->
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#0000DD" bordercolor="#000000">
+<tr>
+<td nowrap height="25" ALIGN="left">
+<div id='menuAnchor'>&nbsp;</div>
+</td>
+<td nowrap height="20" ALIGN="Right">&nbsp;</td>
+</tr>
+</table>
+
+
+<div id='menuLabel1' class='menuLabel'><a class='ml' href="/index.html" onmouseover="menuShow(event,1)"><img src="/logo.png" alt="CENPACNET" border="0" align="left"></a></div>
+<div id='menu1' class='menuBox'>
+<a class="m" href="/squirrelmail">Check your mail</a><br>
+<a class="m" href="/announcements.htm">Announcements</a><br>
+</div>
+
+<div id='menuLabel2' class='menuLabel'><a class='ml' href="/dns/index.html" onmouseover="menuShow(event,2)">| .NR Registry</a></div>
+<div id='menu2' class='menuBox'>
+  <a class="m" href="/dns/help.html">HELP</a><br>
+  <a class="m" href="/dns/index.html">Pricing and Information</a><br>
+  <a class="m" href="/dns/terms.html">Terms & Conditions</a><br>
+  <a class="m" href="/dns/dispute.html">Dispute Resolution</a><br>
+  <a class="m" href="/dns/whois.html">Query Domains</a><br>
+  <a class="m" href="/dns/whoislist.html">List Domains</a><br>
+  <a class="m" href="/dns/contact.html">Query Contacts</a><br>
+  <a class="m" href="/dns/contactlist.html">List Contacts</a><br>
+  <a class="m" href="/dns/contactmodif.html">New Contact</a><br>
+  <a class="m" href="/dns/domreg.html">*Register a New Domain*</a><br>
+</div>
+
+<!-- End of Menu Definition -->
+
+<h1 align="center">.NR Whois</h1>
+<hr>
+<form method="GET" action="whois.html">Domain: <input type="text" size="20" name="subdomain" value="zx5v7d4v2k50l3pq" />&nbsp;.&nbsp;<select name="tld"><option value="nr" selected="selected">nr</option><option value="biz.nr" >biz.nr</option><option value="info.nr" >info.nr</option><option value="com.nr" >com.nr</option><option value="net.nr" >net.nr</option><option value="org.nr" >org.nr</option></select><input type="submit" value="Submit" name="whois"></p></form><hr>
+</body>
+
+</html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/whoistest.go b/whoistest.go
new file mode 100644
index 0000000..84176c1
--- /dev/null
+++ b/whoistest.go
@@ -0,0 +1,23 @@
+package whoistest
+
+import (
+	"path/filepath"
+	"runtime"
+)
+
+var (
+	_, _file, _, _ = runtime.Caller(0)
+	_dir           = filepath.Dir(_file)
+)
+
+// ResponseFiles returns a slice of paths to MIME-encoded whois responses.
+// Returns nil, error if any errors occur.
+func ResponseFiles() ([]string, error) {
+	return filepath.Glob(filepath.Join(_dir, "testdata", "responses", "*", "*.mime"))
+}
+
+// ResponseFilename returns a fully-qualified path to a response file
+// for the given query and host.
+func ResponseFilename(query, host string) string {
+	return filepath.Join(_dir, "testdata", "responses", host, query+".mime")
+}
diff --git a/whoistest_test.go b/whoistest_test.go
new file mode 100644
index 0000000..f344ba3
--- /dev/null
+++ b/whoistest_test.go
@@ -0,0 +1,20 @@
+package whoistest
+
+import (
+	"fmt"
+	"testing"
+
+	"github.com/domainr/whois"
+	"github.com/nbio/st"
+)
+
+func TestResponseFiles(t *testing.T) {
+	fns, err := ResponseFiles()
+	st.Assert(t, err, nil)
+	for _, fn := range fns {
+		fmt.Printf("%s\n", fn)
+		res, err := whois.ReadMIMEFile(fn)
+		st.Refute(t, res, nil)
+		st.Assert(t, err, nil)
+	}
+}