def token_preserve(self, tk):
            """Preseve eyery descendant of an preserved element.
            0: not locked
            1: just (un)locked
            2: locked"""
            # Lock perserving for StartElements:
            if tk.name == "StartElement":
                if self.preserve_level is not None:
                    return 2
                if tk.arg[0] in self.formatter.preserve:
                    self.preserve_level = tk.level
                    return 1
                return 0
            # Unlock preserving for EndElements:
            elif tk.name == "EndElement":
                if (
                    tk.arg[0] in self.formatter.preserve
                    and tk.level == self.preserve_level
                ):
                    self.preserve_level = None
                    return 1
                elif self.preserve_level is None:
                    return 0
                return 2
            return self.preserve_level is not None