Top court upholds Canadians' $290M victory over Microsoft