What does `o.take()` do here, and what are the values of `x` and `y` afterward?let mut x: Option<i32> = Some(5); let y = x.take();