code: def _getSnapshotIndex(self, t):
          
          if t>self.tmax or t<self.tmin:
              raise ValueError("Requested time outside of baseline stored in binary file.")
          # Bisection method
          l = 0
          r = len(self)
          while True:
              bi = l+(r-l)//2
              if self.t[bi]>t:
                  r = bi
              else:
                  l = bi
              if r-1<=l:
                  bi = l
                  break
          return bi, self.t[bi]
docs: Return the index for the snapshot just before t