static List<UnixTimeInterval> parseIntervals(Map<String, Object> params) {
		List<UnixTimeInterval> intervals = new ArrayList<UnixTimeInterval>();
		
		Integer intervalIndex = null;
		Boolean isStart = null;
		UnixTimeInterval interval = null;
		for(String key : params.keySet()) {
			intervalIndex = null;
			interval = null;
			Matcher startMatcher = startPattern.matcher(key);
			isStart = startMatcher.matches();
			
			if(isStart) {
				intervalIndex = Integer.parseInt(startMatcher.group(1));
			} else {
				Matcher endMatcher = endPattern.matcher(key);
				if(endMatcher.matches()) {
					intervalIndex = Integer.parseInt(endMatcher.group(1));
				}
			}
			
			if(intervalIndex != null) {
				if(intervals.size() < intervalIndex) {
					interval = new UnixTimeInterval();
					intervals.add(interval);
				} else {
					interval = intervals.get(intervalIndex-1);
				}
				
				Long value = (Long)params.get(key);
				if(isStart) {
					interval.setStart(value);
				} else {
					interval.setEnd(value);
				}
			}
		}
		Collections.sort(intervals);
		return intervals;
	}