Start a wishlist with notes for Exim 5
[exim.git] / test / stderr / 3400
index 0a24b05fb9ad704c58d0b9d889665b1448f94d99..fdca54908bc8819ef8b420f04e39bdd9c919118e 100644 (file)
 >>> host in helo_try_verify_hosts? no (option unset)
 >>> host in helo_accept_junk_hosts? no (option unset)
 >>> using ACL "check_connect"
->>> processing "warn"
+>>> processing ACL check_connect "warn" (TESTSUITE/test-config 32)
 >>> check hosts = 10.0.0.6
+>>> host in "10.0.0.6"?
+>>>  list element: 10.0.0.6
 >>> host in "10.0.0.6"? no (end of list)
->>> warn: condition test failed in ACL "check_connect"
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_connect"
->>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>> warn: condition test failed in ACL check_connect
+>>> processing ACL check_connect "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL check_connect
+>>> end of ACL check_connect: ACCEPT
+>>> test in helo_lookup_domains?
+>>>  list element: @
+>>>  list element: @[]
+>>> test in helo_lookup_domains? no (end of list)
+>>> host in smtp_accept_max_nonmail_hosts?
+>>>  list element: *
+>>>  host in smtp_accept_max_nonmail_hosts? yes (matched "*")
 >>> using ACL "check_vrfy"
->>> processing "deny"
+>>> processing ACL check_vrfy "deny" (TESTSUITE/test-config 67)
 >>> check hosts = +auth_hosts
->>> host in "10.0.0.1"? no (end of list)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    host in "10.0.0.1"? no (end of list)
+>>>   end sublist auth_hosts
 >>> host in "+auth_hosts"? no (end of list)
->>> deny: condition test failed in ACL "check_vrfy"
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_vrfy"
+>>> deny: condition test failed in ACL check_vrfy
+>>> processing ACL check_vrfy "accept" (TESTSUITE/test-config 70)
+>>> accept: condition test succeeded in ACL check_vrfy
+>>> end of ACL check_vrfy: ACCEPT
 >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 >>> routing userx@test.ex
->>> test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>> test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "userx"? yes (matched "userx")
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?
+>>>  list element: userx
+>>>  userx in local_parts? yes (matched "userx")
 >>> calling localuser router
 >>> routed by localuser router
 >>> using ACL "check_expn"
->>> processing "deny"
+>>> processing ACL check_expn "deny" (TESTSUITE/test-config 61)
 >>> check hosts = +auth_hosts
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached no match for +auth_hosts
+>>>  cached lookup data = NULL
 >>> host in "+auth_hosts"? no (end of list)
->>> deny: condition test failed in ACL "check_expn"
->>> processing "accept"
+>>> deny: condition test failed in ACL check_expn
+>>> processing ACL check_expn "accept" (TESTSUITE/test-config 64)
 >>> check hosts = 10.0.0.0/24
->>> host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
->>> accept: condition test succeeded in ACL "check_expn"
+>>> host in "10.0.0.0/24"?
+>>>  list element: 10.0.0.0/24
+>>>  host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
+>>> accept: condition test succeeded in ACL check_expn
+>>> end of ACL check_expn: ACCEPT
 >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 >>> routing list@test.ex
->>> test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>> test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> list in "userx"? no (end of list)
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> list in local_parts?
+>>>  list element: userx
+>>> list in local_parts? no (end of list)
 >>> no more routers
-LOG: ETRN #abcd received from [10.0.0.2]
+LOG: ETRN #abcd received from (test) [10.0.0.2]
 >>> using ACL "check_etrn"
->>> processing "deny"
+>>> processing ACL check_etrn "deny" (TESTSUITE/test-config 53)
 >>> check hosts = +auth_hosts
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached no match for +auth_hosts
+>>>  cached lookup data = NULL
 >>> host in "+auth_hosts"? no (end of list)
->>> deny: condition test failed in ACL "check_etrn"
->>> processing "require"
+>>> deny: condition test failed in ACL check_etrn
+>>> processing ACL check_etrn "require" (TESTSUITE/test-config 56)
 >>> check hosts = 10.0.0.0/24
->>> host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
->>> require: condition test succeeded in ACL "check_etrn"
->>> processing "warn"
->>> warn: condition test succeeded in ACL "check_etrn"
-LOG: H=[10.0.0.2] Warning: accepted ETRN #abcd
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_etrn"
+>>> host in "10.0.0.0/24"?
+>>>  list element: 10.0.0.0/24
+>>>  host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
+>>> require: condition test succeeded in ACL check_etrn
+>>> processing ACL check_etrn "warn" (TESTSUITE/test-config 57)
+>>> l_message: accepted ETRN $smtp_command_argument
+>>> warn: condition test succeeded in ACL check_etrn
+LOG: H=(test) [10.0.0.2] Warning: accepted ETRN #abcd
+>>> processing ACL check_etrn "accept" (TESTSUITE/test-config 58)
+>>> accept: condition test succeeded in ACL check_etrn
+>>> end of ACL check_etrn: ACCEPT
 >>> ETRN command is: exim -R
 >>> ETRN command execution skipped
 >>> host in hosts_connection_nolog? no (option unset)
@@ -70,57 +121,112 @@ LOG: H=[10.0.0.2] Warning: accepted ETRN #abcd
 >>> host in helo_try_verify_hosts? no (option unset)
 >>> host in helo_accept_junk_hosts? no (option unset)
 >>> using ACL "check_connect"
->>> processing "warn"
+>>> processing ACL check_connect "warn" (TESTSUITE/test-config 32)
 >>> check hosts = 10.0.0.6
+>>> host in "10.0.0.6"?
+>>>  list element: 10.0.0.6
 >>> host in "10.0.0.6"? no (end of list)
->>> warn: condition test failed in ACL "check_connect"
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_connect"
+>>> warn: condition test failed in ACL check_connect
+>>> processing ACL check_connect "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL check_connect
+>>> end of ACL check_connect: ACCEPT
+>>> test.host in helo_lookup_domains?
+>>>  list element: @
+>>>  list element: @[]
 >>> test.host in helo_lookup_domains? no (end of list)
->>> host in pipelining_advertise_hosts? yes (matched "*")
->>> host in "10.0.0.1"? yes (matched "10.0.0.1")
->>> host in auth_advertise_hosts? yes (matched "+auth_hosts")
->>> host in smtp_accept_max_nonmail_hosts? yes (matched "*")
+>>>  list element: *
+>>>  host in limits_advertise_hosts? yes (matched "*")
+>>> host in dsn_advertise_hosts? no (option unset)
+>>> host in pipelining_advertise_hosts?
+>>>  list element: *
+>>>  host in pipelining_advertise_hosts? yes (matched "*")
+>>> host in auth_advertise_hosts?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    ╎host in "10.0.0.1"? yes (matched "10.0.0.1")
+>>>   end sublist auth_hosts
+>>>  host in auth_advertise_hosts? yes (matched "+auth_hosts")
+>>> host in chunking_advertise_hosts?
+>>> host in chunking_advertise_hosts? no (end of list)
+>>> host in smtp_accept_max_nonmail_hosts?
+>>>  list element: *
+>>>  host in smtp_accept_max_nonmail_hosts? yes (matched "*")
 >>> using ACL "check_vrfy"
->>> processing "deny"
+>>> processing ACL check_vrfy "deny" (TESTSUITE/test-config 67)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> deny: condition test succeeded in ACL "check_vrfy"
+>>> deny: condition test succeeded in ACL check_vrfy
+>>> end of ACL check_vrfy: DENY
 LOG: H=(test.host) [10.0.0.1] rejected VRFY userx@test.ex: authentication required
 >>> using ACL "check_expn"
->>> processing "deny"
+>>> processing ACL check_expn "deny" (TESTSUITE/test-config 61)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> deny: condition test succeeded in ACL "check_expn"
+>>> deny: condition test succeeded in ACL check_expn
+>>> end of ACL check_expn: DENY
 LOG: H=(test.host) [10.0.0.1] rejected EXPN list@test.ex: authentication required
 LOG: ETRN abcd received from (test.host) [10.0.0.1]
 >>> using ACL "check_etrn"
->>> processing "deny"
+>>> processing ACL check_etrn "deny" (TESTSUITE/test-config 53)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> deny: condition test succeeded in ACL "check_etrn"
+>>> deny: condition test succeeded in ACL check_etrn
+>>> end of ACL check_etrn: DENY
 LOG: H=(test.host) [10.0.0.1] rejected ETRN abcd: authentication required
 >>> using ACL "check_recipient"
->>> processing "warn"
+>>> processing ACL check_recipient "warn" (TESTSUITE/test-config 37)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> warn: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> warn: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 39)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 40)
 >>> check hosts = :
+>>> host in ":"?
+>>>  list element: 
 >>> host in ":"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "deny"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "deny" (TESTSUITE/test-config 41)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> deny: condition test succeeded in ACL "check_recipient"
+>>> deny: condition test succeeded in ACL check_recipient
+>>> end of ACL check_recipient: DENY
 LOG: H=(test.host) [10.0.0.1] F=<junk@jink.jonk.test.ex> rejected RCPT <userx@test.ex>: authentication required
 >>> mylogin authenticator server_condition:
 >>>   $auth1 = userx secret
@@ -128,116 +234,224 @@ LOG: H=(test.host) [10.0.0.1] F=<junk@jink.jonk.test.ex> rejected RCPT <userx@te
 >>> +++MYLOGIN $1="userx secret" $2="" $3=""
 >>> expanded string: yes
 >>> using ACL "check_recipient"
->>> processing "warn"
+>>> processing ACL check_recipient "warn" (TESTSUITE/test-config 37)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> warn: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> warn: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 39)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 40)
 >>> check hosts = :
+>>> host in ":"?
+>>>  list element: 
 >>> host in ":"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "deny"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "deny" (TESTSUITE/test-config 41)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> mylogin in "*"? yes (matched "*")
->>> deny: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> mylogin in "*"?
+>>>  list element: *
+>>>  mylogin in "*"? yes (matched "*")
+>>> deny: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 44)
 >>> check domains = +local_domains
->>> test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>> test.ex in "+local_domains"? yes (matched "+local_domains")
->>> accept: condition test succeeded in ACL "check_recipient"
+>>> test.ex in "+local_domains"?
+>>>  list element: +local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in "+local_domains"? yes (matched "+local_domains")
+>>> accept: condition test succeeded in ACL check_recipient
+>>> end of ACL check_recipient: ACCEPT
 >>> using ACL "check_recipient"
->>> processing "warn"
+>>> processing ACL check_recipient "warn" (TESTSUITE/test-config 37)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> warn: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> warn: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 39)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 40)
 >>> check hosts = :
+>>> host in ":"?
+>>>  list element: 
 >>> host in ":"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "deny"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "deny" (TESTSUITE/test-config 41)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> mylogin in "*"? yes (matched "*")
->>> deny: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> mylogin in "*"?
+>>>  list element: *
+>>>  mylogin in "*"? yes (matched "*")
+>>> deny: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 44)
 >>> check domains = +local_domains
->>> cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>> cus.cam.ac.uk in "+local_domains"?
+>>>  list element: +local_domains
+>>>   start sublist local_domains
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains
 >>> cus.cam.ac.uk in "+local_domains"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 45)
 >>> check hosts = +relay_hosts
->>> host in "10.0.0.4"? no (end of list)
+>>> host in "+relay_hosts"?
+>>>  list element: +relay_hosts
+>>>   start sublist relay_hosts
+>>>    host in "10.0.0.4"?
+>>>    ╎list element: 10.0.0.4
+>>>    host in "10.0.0.4"? no (end of list)
+>>>   end sublist relay_hosts
 >>> host in "+relay_hosts"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 46)
 >>> check hosts = +auth_relay_hosts
->>> host in "10.0.0.3 : 10.0.0.4"? no (end of list)
+>>> host in "+auth_relay_hosts"?
+>>>  list element: +auth_relay_hosts
+>>>   start sublist auth_relay_hosts
+>>>    host in "10.0.0.3 : 10.0.0.4"?
+>>>    ╎list element: 10.0.0.3
+>>>    ╎list element: 10.0.0.4
+>>>    host in "10.0.0.3 : 10.0.0.4"? no (end of list)
+>>>   end sublist auth_relay_hosts
 >>> host in "+auth_relay_hosts"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "deny"
->>> deny: condition test succeeded in ACL "check_recipient"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "deny" (TESTSUITE/test-config 50)
+>>>   message: relay not permitted
+>>> deny: condition test succeeded in ACL check_recipient
+>>> end of ACL check_recipient: DENY
 LOG: H=(test.host) [10.0.0.1] F=<junk@jink.jonk.test.ex> A=mylogin rejected RCPT <userx@cus.cam.ac.uk>: relay not permitted
 >>> using ACL "check_vrfy"
->>> processing "deny"
+>>> processing ACL check_vrfy "deny" (TESTSUITE/test-config 67)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> mylogin in "*"? yes (matched "*")
->>> deny: condition test failed in ACL "check_vrfy"
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_vrfy"
+>>> mylogin in "*"?
+>>>  list element: *
+>>>  mylogin in "*"? yes (matched "*")
+>>> deny: condition test failed in ACL check_vrfy
+>>> processing ACL check_vrfy "accept" (TESTSUITE/test-config 70)
+>>> accept: condition test succeeded in ACL check_vrfy
+>>> end of ACL check_vrfy: ACCEPT
 >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 >>> routing userx@test.ex
->>> test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>> test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> userx in "userx"? yes (matched "userx")
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> userx in local_parts?
+>>>  list element: userx
+>>>  userx in local_parts? yes (matched "userx")
 >>> calling localuser router
 >>> routed by localuser router
 >>> using ACL "check_expn"
->>> processing "deny"
+>>> processing ACL check_expn "deny" (TESTSUITE/test-config 61)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> mylogin in "*"? yes (matched "*")
->>> deny: condition test failed in ACL "check_expn"
->>> processing "accept"
+>>> mylogin in "*"?
+>>>  list element: *
+>>>  mylogin in "*"? yes (matched "*")
+>>> deny: condition test failed in ACL check_expn
+>>> processing ACL check_expn "accept" (TESTSUITE/test-config 64)
 >>> check hosts = 10.0.0.0/24
->>> host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
->>> accept: condition test succeeded in ACL "check_expn"
+>>> host in "10.0.0.0/24"?
+>>>  list element: 10.0.0.0/24
+>>>  host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
+>>> accept: condition test succeeded in ACL check_expn
+>>> end of ACL check_expn: ACCEPT
 >>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 >>> routing list@test.ex
->>> test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
->>> test.ex in "! +local_domains"? no (matched "! +local_domains")
->>> list in "userx"? no (end of list)
+>>> test.ex in domains?
+>>>  list element: !░+local_domains
+>>>   start sublist local_domains
+>>>    test.ex in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎test.ex in "test.ex : *.test.ex"? yes (matched "test.ex")
+>>>   end sublist local_domains
+>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
+>>>  test.ex in domains? no (matched "! +local_domains")
+>>> list in local_parts?
+>>>  list element: userx
+>>> list in local_parts? no (end of list)
 >>> no more routers
 LOG: ETRN #abcd received from (test.host) [10.0.0.1]
 >>> using ACL "check_etrn"
->>> processing "deny"
+>>> processing ACL check_etrn "deny" (TESTSUITE/test-config 53)
 >>> check hosts = +auth_hosts
->>> host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached yes match for +auth_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_hosts"? yes (matched "+auth_hosts" - cached)
+>>>   message: authentication required
 >>> check !authenticated = *
->>> mylogin in "*"? yes (matched "*")
->>> deny: condition test failed in ACL "check_etrn"
->>> processing "require"
+>>> mylogin in "*"?
+>>>  list element: *
+>>>  mylogin in "*"? yes (matched "*")
+>>> deny: condition test failed in ACL check_etrn
+>>> processing ACL check_etrn "require" (TESTSUITE/test-config 56)
 >>> check hosts = 10.0.0.0/24
->>> host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
->>> require: condition test succeeded in ACL "check_etrn"
->>> processing "warn"
->>> warn: condition test succeeded in ACL "check_etrn"
+>>> host in "10.0.0.0/24"?
+>>>  list element: 10.0.0.0/24
+>>>  host in "10.0.0.0/24"? yes (matched "10.0.0.0/24")
+>>> require: condition test succeeded in ACL check_etrn
+>>> processing ACL check_etrn "warn" (TESTSUITE/test-config 57)
+>>> l_message: accepted ETRN $smtp_command_argument
+>>> warn: condition test succeeded in ACL check_etrn
 LOG: H=(test.host) [10.0.0.1] Warning: accepted ETRN #abcd
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_etrn"
+>>> processing ACL check_etrn "accept" (TESTSUITE/test-config 58)
+>>> accept: condition test succeeded in ACL check_etrn
+>>> end of ACL check_etrn: ACCEPT
 >>> ETRN command is: exim -R
 >>> ETRN command execution skipped
 >>> host in hosts_connection_nolog? no (option unset)
@@ -249,49 +463,107 @@ LOG: H=(test.host) [10.0.0.1] Warning: accepted ETRN #abcd
 >>> host in helo_try_verify_hosts? no (option unset)
 >>> host in helo_accept_junk_hosts? no (option unset)
 >>> using ACL "check_connect"
->>> processing "warn"
+>>> processing ACL check_connect "warn" (TESTSUITE/test-config 32)
 >>> check hosts = 10.0.0.6
+>>> host in "10.0.0.6"?
+>>>  list element: 10.0.0.6
 >>> host in "10.0.0.6"? no (end of list)
->>> warn: condition test failed in ACL "check_connect"
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_connect"
+>>> warn: condition test failed in ACL check_connect
+>>> processing ACL check_connect "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL check_connect
+>>> end of ACL check_connect: ACCEPT
+>>> test.host in helo_lookup_domains?
+>>>  list element: @
+>>>  list element: @[]
 >>> test.host in helo_lookup_domains? no (end of list)
->>> host in pipelining_advertise_hosts? yes (matched "*")
->>> host in "10.0.0.1"? no (end of list)
->>> host in "10.0.0.4"? no (end of list)
->>> host in "10.0.0.3 : 10.0.0.4"? yes (matched "10.0.0.3")
->>> host in auth_advertise_hosts? yes (matched "+auth_relay_hosts")
+>>>  list element: *
+>>>  host in limits_advertise_hosts? yes (matched "*")
+>>> host in dsn_advertise_hosts? no (option unset)
+>>> host in pipelining_advertise_hosts?
+>>>  list element: *
+>>>  host in pipelining_advertise_hosts? yes (matched "*")
+>>> host in auth_advertise_hosts?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    host in "10.0.0.1"? no (end of list)
+>>>   end sublist auth_hosts
+>>>  list element: !+relay_hosts
+>>>   start sublist relay_hosts
+>>>    host in "10.0.0.4"?
+>>>    ╎list element: 10.0.0.4
+>>>    host in "10.0.0.4"? no (end of list)
+>>>   end sublist relay_hosts
+>>>  list element: +auth_relay_hosts
+>>>   start sublist auth_relay_hosts
+>>>    host in "10.0.0.3 : 10.0.0.4"?
+>>>    ╎list element: 10.0.0.3
+>>>    ╎host in "10.0.0.3 : 10.0.0.4"? yes (matched "10.0.0.3")
+>>>   end sublist auth_relay_hosts
+>>>  host in auth_advertise_hosts? yes (matched "+auth_relay_hosts")
+>>> host in chunking_advertise_hosts?
+>>> host in chunking_advertise_hosts? no (end of list)
 >>> using ACL "check_recipient"
->>> processing "warn"
+>>> processing ACL check_recipient "warn" (TESTSUITE/test-config 37)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> warn: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> warn: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 39)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 40)
 >>> check hosts = :
+>>> host in ":"?
+>>>  list element: 
 >>> host in ":"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "deny"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "deny" (TESTSUITE/test-config 41)
 >>> check hosts = +auth_hosts
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached no match for +auth_hosts
+>>>  cached lookup data = NULL
 >>> host in "+auth_hosts"? no (end of list)
->>> deny: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> deny: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 44)
 >>> check domains = +local_domains
->>> cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>> cus.cam.ac.uk in "+local_domains"?
+>>>  list element: +local_domains
+>>>   start sublist local_domains
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains
 >>> cus.cam.ac.uk in "+local_domains"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 45)
 >>> check hosts = +relay_hosts
+>>> host in "+relay_hosts"?
+>>>  list element: +relay_hosts
+>>>   start sublist relay_hosts
+>>>  cached no match for +relay_hosts
+>>>  cached lookup data = NULL
 >>> host in "+relay_hosts"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 46)
 >>> check hosts = +auth_relay_hosts
->>> host in "+auth_relay_hosts"? yes (matched "+auth_relay_hosts" - cached)
+>>> host in "+auth_relay_hosts"?
+>>>  list element: +auth_relay_hosts
+>>>   start sublist auth_relay_hosts
+>>>  cached yes match for +auth_relay_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_relay_hosts"? yes (matched "+auth_relay_hosts" - cached)
+>>>   message: authentication required
 >>> check authenticated = *
->>> accept: condition test failed in ACL "check_recipient"
+>>> accept: condition test failed in ACL check_recipient
 >>> accept: endpass encountered - denying access
 LOG: H=(test.host) [10.0.0.3] F=<junk@jink.jonk.test.ex> rejected RCPT <userx@cus.cam.ac.uk>: authentication required
 >>> mylogin authenticator server_condition:
@@ -300,37 +572,69 @@ LOG: H=(test.host) [10.0.0.3] F=<junk@jink.jonk.test.ex> rejected RCPT <userx@cu
 >>> +++MYLOGIN $1="userx secret" $2="" $3=""
 >>> expanded string: yes
 >>> using ACL "check_recipient"
->>> processing "warn"
+>>> processing ACL check_recipient "warn" (TESTSUITE/test-config 37)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> warn: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> warn: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 39)
 >>> check hosts = 10.0.0.5
+>>> host in "10.0.0.5"?
+>>>  list element: 10.0.0.5
 >>> host in "10.0.0.5"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 40)
 >>> check hosts = :
+>>> host in ":"?
+>>>  list element: 
 >>> host in ":"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "deny"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "deny" (TESTSUITE/test-config 41)
 >>> check hosts = +auth_hosts
+>>> host in "+auth_hosts"?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>  cached no match for +auth_hosts
+>>>  cached lookup data = NULL
 >>> host in "+auth_hosts"? no (end of list)
->>> deny: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> deny: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 44)
 >>> check domains = +local_domains
->>> cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>> cus.cam.ac.uk in "+local_domains"?
+>>>  list element: +local_domains
+>>>   start sublist local_domains
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"?
+>>>    ╎list element: test.ex
+>>>    ╎list element: *.test.ex
+>>>    cus.cam.ac.uk in "test.ex : *.test.ex"? no (end of list)
+>>>   end sublist local_domains
 >>> cus.cam.ac.uk in "+local_domains"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 45)
 >>> check hosts = +relay_hosts
+>>> host in "+relay_hosts"?
+>>>  list element: +relay_hosts
+>>>   start sublist relay_hosts
+>>>  cached no match for +relay_hosts
+>>>  cached lookup data = NULL
 >>> host in "+relay_hosts"? no (end of list)
->>> accept: condition test failed in ACL "check_recipient"
->>> processing "accept"
+>>> accept: condition test failed in ACL check_recipient
+>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 46)
 >>> check hosts = +auth_relay_hosts
->>> host in "+auth_relay_hosts"? yes (matched "+auth_relay_hosts" - cached)
+>>> host in "+auth_relay_hosts"?
+>>>  list element: +auth_relay_hosts
+>>>   start sublist auth_relay_hosts
+>>>  cached yes match for +auth_relay_hosts
+>>>  cached lookup data = NULL
+>>>  host in "+auth_relay_hosts"? yes (matched "+auth_relay_hosts" - cached)
+>>>   message: authentication required
 >>> check authenticated = *
->>> mylogin in "*"? yes (matched "*")
->>> accept: condition test succeeded in ACL "check_recipient"
+>>> mylogin in "*"?
+>>>  list element: *
+>>>  mylogin in "*"? yes (matched "*")
+>>> accept: condition test succeeded in ACL check_recipient
+>>> end of ACL check_recipient: ACCEPT
 >>> host in hosts_connection_nolog? no (option unset)
 >>> host in host_lookup? no (option unset)
 >>> host in host_reject_connection? no (option unset)
@@ -340,27 +644,52 @@ LOG: H=(test.host) [10.0.0.3] F=<junk@jink.jonk.test.ex> rejected RCPT <userx@cu
 >>> host in helo_try_verify_hosts? no (option unset)
 >>> host in helo_accept_junk_hosts? no (option unset)
 >>> using ACL "check_connect"
->>> processing "warn"
+>>> processing ACL check_connect "warn" (TESTSUITE/test-config 32)
 >>> check hosts = 10.0.0.6
+>>> host in "10.0.0.6"?
+>>>  list element: 10.0.0.6
 >>> host in "10.0.0.6"? no (end of list)
->>> warn: condition test failed in ACL "check_connect"
->>> processing "accept"
->>> accept: condition test succeeded in ACL "check_connect"
+>>> warn: condition test failed in ACL check_connect
+>>> processing ACL check_connect "accept" (TESTSUITE/test-config 34)
+>>> accept: condition test succeeded in ACL check_connect
+>>> end of ACL check_connect: ACCEPT
+>>> test.host in helo_lookup_domains?
+>>>  list element: @
+>>>  list element: @[]
 >>> test.host in helo_lookup_domains? no (end of list)
->>> host in pipelining_advertise_hosts? yes (matched "*")
->>> host in "10.0.0.1"? no (end of list)
->>> host in "10.0.0.4"? yes (matched "10.0.0.4")
->>> host in auth_advertise_hosts? no (matched "!+relay_hosts")
+>>>  list element: *
+>>>  host in limits_advertise_hosts? yes (matched "*")
+>>> host in dsn_advertise_hosts? no (option unset)
+>>> host in pipelining_advertise_hosts?
+>>>  list element: *
+>>>  host in pipelining_advertise_hosts? yes (matched "*")
+>>> host in auth_advertise_hosts?
+>>>  list element: +auth_hosts
+>>>   start sublist auth_hosts
+>>>    host in "10.0.0.1"?
+>>>    ╎list element: 10.0.0.1
+>>>    host in "10.0.0.1"? no (end of list)
+>>>   end sublist auth_hosts
+>>>  list element: !+relay_hosts
+>>>   start sublist relay_hosts
+>>>    host in "10.0.0.4"?
+>>>    ╎list element: 10.0.0.4
+>>>    ╎host in "10.0.0.4"? yes (matched "10.0.0.4")
+>>>   end sublist relay_hosts
+>>>  host in auth_advertise_hosts? no (matched "!+relay_hosts")
+>>> host in chunking_advertise_hosts?
+>>> host in chunking_advertise_hosts? no (end of list)
 Exim version x.yz ....
+Hints DB:
 changed uid/gid: forcing real = effective
-  uid=uuuu gid=CALLER_GID pid=pppp
+  uid=uuuu gid=CALLER_GID pid=p1234
 seeking password data for user "CALLER": cache not available
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 configuration file is TESTSUITE/test-config
 trusted user
 admin user
 changed uid/gid: privilege not needed
-  uid=EXIM_UID gid=EXIM_GID pid=pppp
+  uid=EXIM_UID gid=EXIM_GID pid=p1234
 seeking password data for user "CALLER": using cached result
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
@@ -381,42 +710,86 @@ host in helo_verify_hosts? no (option unset)
 host in helo_try_verify_hosts? no (option unset)
 host in helo_accept_junk_hosts? no (option unset)
 using ACL "check_connect"
-processing "warn"
+processing ACL check_connect "warn" (TESTSUITE/test-config 32)
 check hosts = 10.0.0.6
+host in "10.0.0.6"?
+ list element: 10.0.0.6
 host in "10.0.0.6"? no (end of list)
-warn: condition test failed in ACL "check_connect"
-processing "accept"
-accept: condition test succeeded in ACL "check_connect"
+warn: condition test failed in ACL check_connect
+processing ACL check_connect "accept" (TESTSUITE/test-config 34)
+accept: condition test succeeded in ACL check_connect
+end of ACL check_connect: ACCEPT
 SMTP>> 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
 smtp_setup_msg entered
 SMTP<< ehlo testing.testing
+testing.testing in helo_lookup_domains?
+ list element: @
+ list element: @[]
 testing.testing in helo_lookup_domains? no (end of list)
 sender_fullhost = (testing.testing) [10.0.0.5]
 sender_rcvhost = [10.0.0.5] (helo=testing.testing ident=CALLER)
 set_process_info: pppp handling incoming connection from (testing.testing) [10.0.0.5] U=CALLER
-host in pipelining_advertise_hosts? yes (matched "*")
-host in "10.0.0.1"? no (end of list)
-host in "10.0.0.4"? no (end of list)
-host in "10.0.0.3 : 10.0.0.4"? no (end of list)
-host in auth_advertise_hosts? yes (matched "10.0.0.5")
+ list element: *
+  host in limits_advertise_hosts? yes (matched "*")
+host in dsn_advertise_hosts? no (option unset)
+host in pipelining_advertise_hosts?
+ list element: *
+  host in pipelining_advertise_hosts? yes (matched "*")
+host in auth_advertise_hosts?
+ list element: +auth_hosts
+  start sublist auth_hosts
+  host in "10.0.0.1"?
+   ╎list element: 10.0.0.1
+  host in "10.0.0.1"? no (end of list)
+  end sublist auth_hosts
+ list element: !+relay_hosts
+  start sublist relay_hosts
+  host in "10.0.0.4"?
+   ╎list element: 10.0.0.4
+  host in "10.0.0.4"? no (end of list)
+  end sublist relay_hosts
+ list element: +auth_relay_hosts
+  start sublist auth_relay_hosts
+  host in "10.0.0.3 : 10.0.0.4"?
+   ╎list element: 10.0.0.3
+   ╎list element: 10.0.0.4
+  host in "10.0.0.3 : 10.0.0.4"? no (end of list)
+  end sublist auth_relay_hosts
+ list element: 10.0.0.5
+  host in auth_advertise_hosts? yes (matched "10.0.0.5")
+Evaluating advertise_condition for mylogin mylogin athenticator
+Evaluating advertise_condition for plain PLAIN athenticator
+Evaluating advertise_condition for extended_plain EXPLAIN athenticator
+Evaluating advertise_condition for expanded_prompt_plain EXPANDED athenticator
+Evaluating advertise_condition for expanded_prompt_plain_fail EXPANDFAIL athenticator
+Evaluating advertise_condition for defer DEFER athenticator
+Evaluating advertise_condition for login LOGIN athenticator
+host in chunking_advertise_hosts?
+host in chunking_advertise_hosts? no (end of list)
 SMTP>> 250-myhost.test.ex Hello CALLER at testing.testing [10.0.0.5]
-250-SIZE 52428800
-250-8BITMIME
-250-ETRN
-250-EXPN
-250-PIPELINING
-250-AUTH MYLOGIN PLAIN EXPLAIN EXPANDED EXPANDFAIL DEFER LOGIN
-250 HELP
+       250-SIZE 52428800
+       250-LIMITS MAILMAX=1000 RCPTMAX=50000
+       250-8BITMIME
+       250-ETRN
+       250-VRFY
+       250-EXPN
+       250-PIPELINING
+       250-AUTH MYLOGIN PLAIN EXPLAIN EXPANDED EXPANDFAIL DEFER LOGIN
+       250 HELP
 SMTP<< auth mylogin dXNlcnggc2VjcmV0
+auth input decode: 'userx secret'
 mylogin authenticator server_condition:
   $auth1 = userx secret
   $1 = userx secret
 +++MYLOGIN $1="userx secret" $2="" $3=""
+  compiled RE '^(\S+)\s+(\S+)$' not found in local cache
+  compiling RE '^(\S+)\s+(\S+)$'
+  compiled RE '^(\S+)\s+(\S+)$' saved in local cache
 expanded string: yes
 SMTP>> 235 Authentication succeeded
 SMTP<< quit
 SMTP>> 221 myhost.test.ex closing connection
 LOG: smtp_connection MAIN
-  SMTP connection from CALLER closed by QUIT
+  SMTP connection from CALLER D=qqs closed by QUIT
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>