llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo----------------------------------------------------------------------------------------0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000