protected static function eatRID($input)
{
$length = strlen($input);
$collected = '';
$cluster = null;
for ($i = 0; $i < $length; $i++) {
$c = $input[$i];
if ($cluster === null && $c === ':') {
$cluster = (int) $collected;
$collected = '';
} elseif ($c === '-' || is_numeric($c)) {
$collected .= $c;
} else {
break;
}
}
return [new ID((string) $cluster, (string) $collected), substr($input, $i)];
}