19587 lines
77 KiB
Plaintext
19587 lines
77 KiB
Plaintext
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo
|
|
foo |