code: def StringS(name, size, uninitialized=False, explicit_name=False, **kwargs):
      
      n = _make_name(String.STRING_TYPE_IDENTIFIER + name, size, False if explicit_name is None else explicit_name)
      result = String("StringS", (n, uninitialized), length=size, symbolic=True, eager_backends=None, uninitialized=uninitialized, variables={n}, **kwargs)
      return result
docs: Create a new symbolic string (analogous to z3.String())
  
      :param name:                 The name of the symbolic string (i. e. the name of the variable)
      :param size:                 The size in bytes of the string (i. e. the length of the string)
      :param uninitialized:        Whether this value should be counted as an "uninitialized" value in the course of an
                                   analysis.
      :param bool explicit_name:   If False, an identifier is appended to the name to ensure uniqueness.
  
      :returns:                    The String object representing the symbolic string