Create a program or function which takes a list of strings as input, and outputs the longest string that is a substring of *all* input strings. If there are several substrings of equal length, and no longer substring, output any one of them.

* This may mean outputting the empty string.
* If there are several valid outputs, you may output any one of them. You are not required to give consistent output for a given input so long as the output is always valid.
* There will always be at least one string in the input, but there might not be a non-empty string.
* All printable ASCII characters may appear in the input. You may assume those are the only characters that appear.
* You may take input or produce output by any of the [default methods](https://codegolf.meta.stackexchange.com/questions/2447/default-for-code-golf-input-output-methods).
* [Standard loopholes](https://codegolf.meta.stackexchange.com/questions/1061/loopholes-that-are-forbidden-by-default) aren't allowed.
* This is [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'") - the fewer bytes of code, the better.

Test cases:
-----------

`[Inputs] -> [Valid outputs (choose one)]`

```
["hello", "'ello"] -> ["ello"]
["very", "much", "different"] -> [""]
["empty", "", "STRING"] -> [""]
["identical", "identical"] -> ["identical"]
["string", "stRIng"] -> ["st", "ng"]
["this one", "is a substring of this one"] -> ["this one"]
["just one"] -> ["just one"]
["", "", ""] -> [""]
["many outputs", "stuptuo ynam"] -> ["m", "a", "n", "y", " ", "o", "u", "t", "p", "s"]
["many inputs", "any inputs", "ny iii", "yanny"] -> ["ny"]
["%%not&", "ju&#st", "[&]alpha_numeric"] -> ["&"]

```