static public ArrayList<String> dpAlign(String str1, String str2) {
		ArrayList<String> output = new ArrayList<String>();
		output.add(str1);
		output.add(str2);
		if (Functions.isEmpty(str1) || Functions.isEmpty(str2)) return output;
		ArrayList<String> tmp1 = Functions.explode(".",str1);
		ArrayList<String> tmp2 = Functions.explode(".",str2);
		
		int r = -1;
		while (true) {
			r++;
			if (tmp1.size() > r && tmp2.size() > r) {
				String part1 = tmp1.get(r);
				String part2 = tmp2.get(r);
				int len1 = strlen(part1);
				int len2 = strlen(part2);
				int diff = len1 - len2;
				if (diff == 0) continue;
				if (diff > 0) {
					tmp2.set(r,Functions.str_pad(part2,len1,"0",STR_PAD.STR_PAD_LEFT));
				} else {
					tmp1.set(r, Functions.str_pad(part1,len2,"0",STR_PAD.STR_PAD_LEFT));
				}
			} else {
				break;
			}
		}
		str1 = Functions.implode(".",tmp1);
		str2 = Functions.implode(".",tmp2);
		output.set(0,str1);
		output.set(1,str2);
		return output;
	}