// test:
// - valid exception
// - invalid exceptions
// - same exception twice
// - exception without wildcard
// - exception with prevailing '*' rule (!localhost)

// ===BEGIN ICANN DOMAINS===

// valid
*.example.com
!www.example.com
!localhost
c.example.com

// invalid
!.example.com
w!w.example.com
!www.example.com
!a.b.example.com
!a.c.example.com

// ===END ICANN DOMAINS===
