pub fn parse(input: &str) -> Vec<[u64; 2]>
The trick to merge ranges efficiently is to sort by the starting index.