completed IP46File::valid()