code: def clone(self, value=noValue, **kwargs):
          
          if value is noValue:
              if not kwargs:
                  return self
  
              value = self._value
  
          initializers = self.readOnly.copy()
          initializers.update(kwargs)
  
          return self.__class__(value, **initializers)
docs: Create a modified version of |ASN.1| schema or value object.
  
          The `clone()` method accepts the same set arguments as |ASN.1|
          class takes on instantiation except that all arguments
          of the `clone()` method are optional.
  
          Whatever arguments are supplied, they are used to create a copy
          of `self` taking precedence over the ones used to instantiate `self`.
  
          Note
          ----
          Due to the immutable nature of the |ASN.1| object, if no arguments
          are supplied, no new |ASN.1| object will be created and `self` will
          be returned instead.