docs: def _load_virtual_frames(self):
          """Calculate virtual TiffFrames."""
          pages = self.pages
          try:
              if sys.version_info[0] == 2:
                  raise ValueError('not supported on Python 2')
              if len(pages) > 1:
                  raise ValueError('pages already loaded')
              page = pages[0]
              bytecounts = page._offsetscounts[1]
              if len(bytecounts) != 1:
                  raise ValueError('data not contiguous')
              self._seek(4)
              delta = pages[2] - pages[1]
              if pages[3] - pages[2] != delta or pages[4] - pages[3] != delta:
                  raise ValueError('page offsets not equidistant')
              page1 = self._getitem(1, validate=page.hash)
              offsetoffset = page1._offsetscounts[0][0] - page1.offset
              if offsetoffset < 0 or offsetoffset > delta:
                  raise ValueError('page offsets not equidistant')
              pages = [page, page1]
              filesize = self.parent.filehandle.size - delta
              for index, offset in enumerate(range(page1.offset+delta,
                                                   filesize, delta)):
                  offsets = [offset + offsetoffset]
                  offset = offset if offset < 2**31 else None
                  pages.append(
                      TiffFrame(parent=page.parent, index=index+2, offset=None,
                                offsets=offsets, bytecounts=bytecounts,
                                keyframe=page))
          except Exception as exc:
              log.warning(
                  'TiffPages: failed to load virtual frames: %s', str(exc))
          assert pages[1]
          self.pages = pages
          self._cache = True
          self._cached = True
          self._indexed = True