Logging: connection_reject log selector should apply also to the connect acl
[exim.git] / test / stderr / 0002
CommitLineData
54c5ebb1
PH
1Exim version x.yz ....
2configuration file is TESTSUITE/test-config
3admin user
e47376be
JH
4considering: primary_hostname: $primary_hostname
5 expanding: primary_hostname: $primary_hostname
6 result: primary_hostname: myhost.test.ex
7considering: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
8considering: abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
9 expanding: abcd
10 result: abcd
11considering: \N^([ab]+)(\w+)$\N}{$2$1}fail}
12 expanding: \N^([ab]+)(\w+)$\N
13 result: ^([ab]+)(\w+)$
fdcd2747
JH
14 condition: match{abcd}{\N^([ab]+)(\w+)$\N}
15 result: true
e47376be
JH
16considering: $2$1}fail}
17 expanding: $2$1
18 result: cdab
19 expanding: match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
20 result: match: cdab
21considering: match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
22considering: wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
23 expanding: wxyz
24 result: wxyz
25considering: \N^([ab]+)(\w+)$\N}{$2$1}fail}
26 expanding: \N^([ab]+)(\w+)$\N
27 result: ^([ab]+)(\w+)$
fdcd2747
JH
28 condition: match{wxyz}{\N^([ab]+)(\w+)$\N}
29 result: false
e47376be
JH
30 scanning: $2$1}fail}
31 expanding: $2$1
32 result:
33 skipping: result is not used
54c5ebb1
PH
34failed to expand: match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
35 error message: "if" failed and "fail" requested
36failure was forced
e47376be
JH
37considering: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
38considering: 1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
39 expanding: 1
40 result: 1
41considering: 1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
42 expanding: 1
43 result: 1
fdcd2747
JH
44 condition: eq {1}{1}
45 result: true
e47376be
JH
46considering: yes}{${lookup{xx}lsearch{/non/exist}}}}
47 expanding: yes
48 result: yes
49 scanning: ${lookup{xx}lsearch{/non/exist}}}}
50 scanning: xx}lsearch{/non/exist}}}}
51 expanding: xx
52 result: xx
53 skipping: result is not used
54 scanning: /non/exist}}}}
55 expanding: /non/exist
56 result: /non/exist
57 skipping: result is not used
58 expanding: ${lookup{xx}lsearch{/non/exist}}
59 result:
60 skipping: result is not used
61 expanding: ${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
62 result: yes
63considering: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
64considering: a.b.c}{a.b.c}{yes}{no}}
65 expanding: a.b.c
66 result: a.b.c
67considering: a.b.c}{yes}{no}}
68 expanding: a.b.c
69 result: a.b.c
54c5ebb1
PH
70LOG: MAIN PANIC
71 no @ found in the subject of an address list match: subject="a.b.c" pattern="a.b.c"
fdcd2747
JH
72 condition: match_address{a.b.c}{a.b.c}
73 result: false
e47376be
JH
74 scanning: yes}{no}}
75 expanding: yes
76 result: yes
77 skipping: result is not used
78considering: no}}
79 expanding: no
80 result: no
81 expanding: match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
82 result: match_address: no
54c5ebb1
PH
83>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
84Exim version x.yz ....
85configuration file is TESTSUITE/test-config
86admin user
e47376be
JH
87considering: -oMa sender_host_address = $sender_host_address
88 expanding: -oMa sender_host_address = $sender_host_address
89 result: -oMa sender_host_address = V4NET.0.0.1
90considering: sender_host_port = $sender_host_port
91 expanding: sender_host_port = $sender_host_port
92 result: sender_host_port = 1234
93considering: -oMaa sender_host_authenticated = $sender_host_authenticated
94 expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
95 result: -oMaa sender_host_authenticated = AAA
96considering: -oMai authenticated_id = $authenticated_id
97 expanding: -oMai authenticated_id = $authenticated_id
98 result: -oMai authenticated_id = philip
99considering: -oMas authenticated_sender = $authenticated_sender
100 expanding: -oMas authenticated_sender = $authenticated_sender
101 result: -oMas authenticated_sender = xx@yy.zz
102considering: -oMi interface_address = $interface_address
103 expanding: -oMi interface_address = $interface_address
104 result: -oMi interface_address = 1.1.1.1
105considering: interface_port = $interface_port
106 expanding: interface_port = $interface_port
107 result: interface_port = 99
108considering: -oMr received_protocol = $received_protocol
109 expanding: -oMr received_protocol = $received_protocol
110 result: -oMr received_protocol = special
111considering: -oMt sender_ident = $sender_ident
112 expanding: -oMt sender_ident = $sender_ident
113 result: -oMt sender_ident = me
54c5ebb1
PH
114>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
1151999-03-02 09:44:33 no host name found for IP address V4NET.11.12.13
116Exim version x.yz ....
117configuration file is TESTSUITE/test-config
118admin user
e47376be
JH
119considering: -oMa sender_host_address = $sender_host_address
120 expanding: -oMa sender_host_address = $sender_host_address
121 result: -oMa sender_host_address = V4NET.0.0.1
122considering: sender_host_port = $sender_host_port
123 expanding: sender_host_port = $sender_host_port
124 result: sender_host_port = 1234
125considering: -oMaa sender_host_authenticated = $sender_host_authenticated
126 expanding: -oMaa sender_host_authenticated = $sender_host_authenticated
127 result: -oMaa sender_host_authenticated = AAA
128considering: -oMai authenticated_id = $authenticated_id
129 expanding: -oMai authenticated_id = $authenticated_id
130 result: -oMai authenticated_id = philip
131considering: -oMas authenticated_sender = $authenticated_sender
132 expanding: -oMas authenticated_sender = $authenticated_sender
133 result: -oMas authenticated_sender = xx@yy.zz
134considering: -oMi interface_address = $interface_address
135 expanding: -oMi interface_address = $interface_address
136 result: -oMi interface_address = 1.1.1.1
137considering: interface_port = $interface_port
138 expanding: interface_port = $interface_port
139 result: interface_port = 99
140considering: -oMr received_protocol = $received_protocol
141 expanding: -oMr received_protocol = $received_protocol
142 result: -oMr received_protocol = special
143considering: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
144considering: black}{white}{$sender_host_name}{No}}
145 expanding: black
146 result: black
147considering: white}{$sender_host_name}{No}}
148 expanding: white
149 result: white
fdcd2747
JH
150 condition: eq{black}{white}
151 result: false
e47376be
JH
152 scanning: $sender_host_name}{No}}
153 expanding: $sender_host_name
154 result:
155 skipping: result is not used
156considering: No}}
157 expanding: No
158 result: No
159 expanding: ----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
160 result: ----> No lookup yet: No
161considering: -oMs sender_host_name = $sender_host_name
54c5ebb1 162looking up host name for V4NET.0.0.1
de11307f 163IP address lookup yielded "ten-1.test.ex"
1f155f8e 164ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx
54c5ebb1
PH
165checking addresses for ten-1.test.ex
166 V4NET.0.0.1 OK
167sender_fullhost = ten-1.test.ex [V4NET.0.0.1]
168sender_rcvhost = ten-1.test.ex ([V4NET.0.0.1] ident=me)
e47376be
JH
169 expanding: -oMs sender_host_name = $sender_host_name
170 result: -oMs sender_host_name = ten-1.test.ex
171considering: -oMt sender_ident = $sender_ident
172 expanding: -oMt sender_ident = $sender_ident
173 result: -oMt sender_ident = me
54c5ebb1
PH
174>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
175Exim version x.yz ....
176changed uid/gid: forcing real = effective
177 uid=uuuu gid=CALLER_GID pid=pppp
178configuration file is TESTSUITE/test-config
179admin user
180changed uid/gid: privilege not needed
181 uid=EXIM_UID gid=EXIM_GID pid=pppp
182originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
183sender address = CALLER@myhost.test.ex
184sender_fullhost = [V4NET.0.0.1]
185sender_rcvhost = [V4NET.0.0.1]
186host in hosts_connection_nolog? no (option unset)
187LOG: smtp_connection MAIN
188 SMTP connection from [V4NET.0.0.1]
189host in host_lookup? no (option unset)
190set_process_info: pppp handling incoming connection from [V4NET.0.0.1]
191host in host_reject_connection? no (option unset)
192host in sender_unqualified_hosts? no (option unset)
193host in recipient_unqualified_hosts? no (option unset)
194host in helo_verify_hosts? no (option unset)
195host in helo_try_verify_hosts? no (option unset)
196host in helo_accept_junk_hosts? no (option unset)
197using ACL "connect1"
198processing "deny"
ec95d1a6 199check hosts = <\n partial-lsearch;TESTSUITE/aux-fixed/0002.lsearch \n 1.2.3.4
54c5ebb1
PH
200sender host name required, to match against partial-lsearch;TESTSUITE/aux-fixed/0002.lsearch
201looking up host name for V4NET.0.0.1
202DNS lookup of 1.0.0.V4NET.in-addr.arpa (PTR) using fakens
203DNS lookup of 1.0.0.V4NET.in-addr.arpa (PTR) succeeded
de11307f 204IP address lookup yielded "ten-1.test.ex"
54c5ebb1
PH
205DNS lookup of ten-1.test.ex (A) using fakens
206DNS lookup of ten-1.test.ex (A) succeeded
1f155f8e 207ten-1.test.ex V4NET.0.0.1 mx=-1 sort=xx
54c5ebb1 208checking addresses for ten-1.test.ex
1f155f8e 209Forward DNS security status: unverified
54c5ebb1
PH
210 V4NET.0.0.1 OK
211sender_fullhost = ten-1.test.ex [V4NET.0.0.1]
212sender_rcvhost = ten-1.test.ex ([V4NET.0.0.1])
213search_open: lsearch "TESTSUITE/aux-fixed/0002.lsearch"
214search_find: file="TESTSUITE/aux-fixed/0002.lsearch"
215 key="ten-1.test.ex" partial=2 affix=*. starflags=0
216LRU list:
44e6236d 217 0TESTSUITE/aux-fixed/0002.lsearch
54c5ebb1
PH
218 End
219internal_search_find: file="TESTSUITE/aux-fixed/0002.lsearch"
220 type=lsearch key="ten-1.test.ex"
221file lookup required for ten-1.test.ex
222 in TESTSUITE/aux-fixed/0002.lsearch
223lookup yielded:
ec95d1a6
PH
224host in "<
225 partial-lsearch;TESTSUITE/aux-fixed/0002.lsearch
226 1.2.3.4"? yes (matched "partial-lsearch;TESTSUITE/aux-fixed/0002.lsearch")
6968512f 227deny: condition test succeeded in ACL "connect1"
a7538db1 228end of ACL "connect1": DENY
898d150f 229SMTP>> 550 Administrative prohibition
3cc3f762 230LOG: connection_reject MAIN REJECT
54c5ebb1
PH
231 H=ten-1.test.ex [V4NET.0.0.1] rejected connection in "connect" ACL
232search_tidyup called
233>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
234Exim version x.yz ....
235changed uid/gid: forcing real = effective
236 uid=uuuu gid=CALLER_GID pid=pppp
237configuration file is TESTSUITE/test-config
238admin user
239changed uid/gid: privilege not needed
240 uid=EXIM_UID gid=EXIM_GID pid=pppp
241originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
242sender address = CALLER@myhost.test.ex
243sender_fullhost = [V4NET.0.0.2]
244sender_rcvhost = [V4NET.0.0.2]
245host in hosts_connection_nolog? no (option unset)
246LOG: smtp_connection MAIN
247 SMTP connection from [V4NET.0.0.2]
248host in host_lookup? no (option unset)
249set_process_info: pppp handling incoming connection from [V4NET.0.0.2]
250host in host_reject_connection? no (option unset)
251host in sender_unqualified_hosts? no (option unset)
252host in recipient_unqualified_hosts? no (option unset)
253host in helo_verify_hosts? no (option unset)
254host in helo_try_verify_hosts? no (option unset)
255host in helo_accept_junk_hosts? no (option unset)
256using ACL "connect2"
257processing "deny"
258check hosts = net-lsearch;TESTSUITE/aux-fixed/0002.lsearch
259search_open: lsearch "TESTSUITE/aux-fixed/0002.lsearch"
260search_find: file="TESTSUITE/aux-fixed/0002.lsearch"
261 key="V4NET.0.0.2" partial=-1 affix=NULL starflags=0
262LRU list:
44e6236d 263 0TESTSUITE/aux-fixed/0002.lsearch
54c5ebb1
PH
264 End
265internal_search_find: file="TESTSUITE/aux-fixed/0002.lsearch"
266 type=lsearch key="V4NET.0.0.2"
267file lookup required for V4NET.0.0.2
268 in TESTSUITE/aux-fixed/0002.lsearch
269lookup failed
270host in "net-lsearch;TESTSUITE/aux-fixed/0002.lsearch"? no (end of list)
6968512f 271deny: condition test failed in ACL "connect2"
54c5ebb1 272end of ACL "connect2": implicit DENY
898d150f 273SMTP>> 550 Administrative prohibition
3cc3f762 274LOG: connection_reject MAIN REJECT
54c5ebb1
PH
275 H=[V4NET.0.0.2] rejected connection in "connect" ACL
276search_tidyup called
277>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
278>>> host in hosts_connection_nolog? no (option unset)
279>>> host in host_lookup? no (option unset)
280>>> host in host_reject_connection? no (option unset)
281>>> host in sender_unqualified_hosts? no (option unset)
282>>> host in recipient_unqualified_hosts? no (option unset)
283>>> host in helo_verify_hosts? no (option unset)
284>>> host in helo_try_verify_hosts? no (option unset)
285>>> host in helo_accept_junk_hosts? no (option unset)
286>>> using ACL "connect0"
287>>> processing "accept"
6968512f 288>>> accept: condition test succeeded in ACL "connect0"
a7538db1 289>>> end of ACL "connect0": ACCEPT
54c5ebb1 290>>> processing "accept"
6968512f 291>>> accept: condition test succeeded in inline ACL
a7538db1 292>>> end of inline ACL: ACCEPT
54c5ebb1
PH
293>>> using ACL "check_data"
294>>> processing "warn"
295>>> check logwrite = Subject is: "$h_subject:"
296>>> = Subject is: ""
297LOG: 10HmaX-0005vi-00 Subject is: ""
6968512f 298>>> warn: condition test succeeded in ACL "check_data"
54c5ebb1 299>>> processing "deny"
187bc588 300>>> message: reply_address=<$reply_address>
6968512f 301>>> deny: condition test succeeded in ACL "check_data"
a7538db1 302>>> end of ACL "check_data": DENY
54c5ebb1
PH
303LOG: 10HmaX-0005vi-00 H=[V4NET.0.0.0] F=<> rejected after DATA: reply_address=<>
304>>> processing "accept"
6968512f 305>>> accept: condition test succeeded in inline ACL
a7538db1 306>>> end of inline ACL: ACCEPT
54c5ebb1
PH
307>>> host in ignore_fromline_hosts? no (option unset)
308>>> using ACL "check_data"
309>>> processing "warn"
310>>> check logwrite = Subject is: "$h_subject:"
311>>> = Subject is: ""
312LOG: 10HmaY-0005vi-00 Subject is: ""
6968512f 313>>> warn: condition test succeeded in ACL "check_data"
54c5ebb1 314>>> processing "deny"
187bc588 315>>> message: reply_address=<$reply_address>
6968512f 316>>> deny: condition test succeeded in ACL "check_data"
a7538db1 317>>> end of ACL "check_data": DENY
54c5ebb1
PH
318LOG: 10HmaY-0005vi-00 H=[V4NET.0.0.0] F=<> rejected after DATA: reply_address=<a@b>
319>>> processing "accept"
6968512f 320>>> accept: condition test succeeded in inline ACL
a7538db1 321>>> end of inline ACL: ACCEPT
54c5ebb1
PH
322>>> host in ignore_fromline_hosts? no (option unset)
323>>> using ACL "check_data"
324>>> processing "warn"
325>>> check logwrite = Subject is: "$h_subject:"
326>>> = Subject is: ""
327LOG: 10HmaZ-0005vi-00 Subject is: ""
6968512f 328>>> warn: condition test succeeded in ACL "check_data"
54c5ebb1 329>>> processing "deny"
187bc588 330>>> message: reply_address=<$reply_address>
6968512f 331>>> deny: condition test succeeded in ACL "check_data"
a7538db1 332>>> end of ACL "check_data": DENY
54c5ebb1
PH
333LOG: 10HmaZ-0005vi-00 H=[V4NET.0.0.0] F=<> rejected after DATA: reply_address=<c@d>
334>>> processing "accept"
6968512f 335>>> accept: condition test succeeded in inline ACL
a7538db1 336>>> end of inline ACL: ACCEPT
54c5ebb1
PH
337>>> host in ignore_fromline_hosts? no (option unset)
338>>> using ACL "check_data"
339>>> processing "warn"
340>>> check logwrite = Subject is: "$h_subject:"
341>>> = Subject is: ""
342LOG: 10HmbA-0005vi-00 Subject is: ""
6968512f 343>>> warn: condition test succeeded in ACL "check_data"
54c5ebb1 344>>> processing "deny"
187bc588 345>>> message: reply_address=<$reply_address>
6968512f 346>>> deny: condition test succeeded in ACL "check_data"
a7538db1 347>>> end of ACL "check_data": DENY
54c5ebb1
PH
348LOG: 10HmbA-0005vi-00 H=[V4NET.0.0.0] F=<> rejected after DATA: reply_address=<>
349>>> processing "accept"
6968512f 350>>> accept: condition test succeeded in inline ACL
a7538db1 351>>> end of inline ACL: ACCEPT
54c5ebb1
PH
352>>> host in ignore_fromline_hosts? no (option unset)
353>>> using ACL "check_data"
354>>> processing "warn"
355>>> check logwrite = Subject is: "$h_subject:"
356>>> = Subject is: ""
357LOG: 10HmbB-0005vi-00 Subject is: ""
6968512f 358>>> warn: condition test succeeded in ACL "check_data"
54c5ebb1 359>>> processing "deny"
187bc588 360>>> message: reply_address=<$reply_address>
6968512f 361>>> deny: condition test succeeded in ACL "check_data"
a7538db1 362>>> end of ACL "check_data": DENY
54c5ebb1
PH
363LOG: 10HmbB-0005vi-00 H=[V4NET.0.0.0] F=<> rejected after DATA: reply_address=<x@y>
364>>> host in hosts_connection_nolog? no (option unset)
365>>> host in host_lookup? no (option unset)
366>>> host in host_reject_connection? no (option unset)
367>>> host in sender_unqualified_hosts? no (option unset)
368>>> host in recipient_unqualified_hosts? no (option unset)
369>>> host in helo_verify_hosts? no (option unset)
370>>> host in helo_try_verify_hosts? no (option unset)
371>>> host in helo_accept_junk_hosts? no (option unset)
372>>> using ACL "connect0"
373>>> processing "accept"
6968512f 374>>> accept: condition test succeeded in ACL "connect0"
a7538db1 375>>> end of ACL "connect0": ACCEPT
54c5ebb1 376>>> processing "accept"
6968512f 377>>> accept: condition test succeeded in inline ACL
a7538db1 378>>> end of inline ACL: ACCEPT
54c5ebb1
PH
379>>> host in ignore_fromline_hosts? no (option unset)
380>>> using ACL "check_data"
381>>> processing "warn"
382>>> check logwrite = Subject is: "$h_subject:"
383>>> = Subject is: "=?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_it_will_go_over_the_75-char_limit_by_a_long_way=3B_in_fact_this_one_will_go_over_the_150_character_limit?="
384LOG: 10HmbC-0005vi-00 Subject is: "=?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_it_will_go_over_the_75-char_limit_by_a_long_way=3B_in_fact_this_one_will_go_over_the_150_character_limit?="
6968512f 385>>> warn: condition test succeeded in ACL "check_data"
54c5ebb1 386>>> processing "deny"
187bc588 387>>> message: reply_address=<$reply_address>
6968512f 388>>> deny: condition test succeeded in ACL "check_data"
a7538db1 389>>> end of ACL "check_data": DENY
54c5ebb1
PH
390LOG: 10HmbC-0005vi-00 H=[V4NET.0.0.0] F=<> rejected after DATA: reply_address=<>
391>>> host in hosts_connection_nolog? no (option unset)
392>>> host in host_lookup? no (option unset)
393>>> host in host_reject_connection? no (option unset)
394>>> host in sender_unqualified_hosts? no (option unset)
395>>> host in recipient_unqualified_hosts? no (option unset)
396>>> host in helo_verify_hosts? no (option unset)
397>>> host in helo_try_verify_hosts? no (option unset)
398>>> host in helo_accept_junk_hosts? no (option unset)
399>>> using ACL "connect0"
400>>> processing "accept"
6968512f 401>>> accept: condition test succeeded in ACL "connect0"
a7538db1 402>>> end of ACL "connect0": ACCEPT
54c5ebb1 403>>> processing "accept"
6968512f 404>>> accept: condition test succeeded in inline ACL
a7538db1 405>>> end of inline ACL: ACCEPT
54c5ebb1
PH
406>>> host in ignore_fromline_hosts? no (option unset)
407>>> using ACL "check_data"
408>>> processing "warn"
409>>> check logwrite = Subject is: "$h_subject:"
410>>> = Subject is: " here we go: a string that is going to be encoded: it will go over the 75-char limit by a long way; in fact this one will go over the 150 character limit"
411LOG: 10HmbD-0005vi-00 Subject is: " here we go: a string that is going to be encoded: it will go over the 75-char limit by a long way; in fact this one will go over the 150 character limit"
6968512f 412>>> warn: condition test succeeded in ACL "check_data"
54c5ebb1 413>>> processing "deny"
187bc588 414>>> message: reply_address=<$reply_address>
6968512f 415>>> deny: condition test succeeded in ACL "check_data"
a7538db1 416>>> end of ACL "check_data": DENY
54c5ebb1 417LOG: 10HmbD-0005vi-00 H=[V4NET.0.0.0] F=<> rejected after DATA: reply_address=<>
1688f43b
PH
418Exim version x.yz ....
419changed uid/gid: -C, -D, -be or -bf forces real uid
420 uid=CALLER_UID gid=CALLER_GID pid=pppp
421configuration file is TESTSUITE/test-config
422admin user
423originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
424sender address = CALLER@myhost.test.ex
4251.2.3.4 in "1.2.3"? no (malformed IPv4 address or address mask)
4261.2.3.4 in "1.2.3.4/abc"? no (malformed IPv4 address or address mask)
427search_tidyup called
428>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>