code: def cutoff(self, xstart=None, xend=None):
      if xstart is None:
          xstart = self.xmin
  
      if xend is None:
          xend = self.xmax
  
      if xend < xstart:
          raise ValueError(
              "xend ({}) < xstart ({})".format(xend, xstart)
          )
  
      bias = xstart - self.xmin
      new_xmax = xend - bias
      new_xmin = self.xmin
      new_intervals = []
      for interval in self.intervals:
          if interval.xmax <= xstart or interval.xmin >= xend:
              pass
          elif interval.xmin < xstart:
              new_intervals.append(
                  Interval(
                      xmin=new_xmin,
                      xmax=interval.xmax - bias,
                      text=interval.text,
                  )
              )
          elif interval.xmax > xend:
              new_intervals.append(
                  Interval(
                      xmin=interval.xmin - bias,
                      xmax=new_xmax,
                      text=interval.text,
                  )
              )
          else:
              new_intervals.append(
                  Interval(
                      xmin=interval.xmin - bias,
                      xmax=interval.xmax - bias,
                      text=interval.text,
                  )
              )
  
      return Tier(
          tier_class=self.tier_class,
          name=self.name,
          xmin=new_xmin,
          xmax=new_xmax,
          intervals=new_intervals,
      )
  
imports: import argparse
  import codecs
  import glob
  import os
  import sys
  from multiprocessing import Pool
label_desc: Use image node_id 2 for calling the Tier obj's underlying member method code with example usage: obj.cutoff(xstart, xend) and returns: Tier