code: def _elsed_block_range(self, lineno, orelse, last=None):
          
          if lineno == self.fromlineno:
              return lineno, lineno
          if orelse:
              if lineno >= orelse[0].fromlineno:
                  return lineno, orelse[-1].tolineno
              return lineno, orelse[0].fromlineno - 1
          return lineno, last or self.tolineno
docs: handle block line numbers range for try/finally, for, if and while
          statements