private function canonicalize($str)
{
// trim from both sides
$str = trim($str);
// normalize EOL to \n
$str = str_replace(["\r\n", "\r"], "\n", $str);
// trim right side of all lines
return implode("\n", array_map('rtrim', explode("\n", $str)));
}