input: Write a function to extract section titles and their content from the given HTML string.
  assert extract_sections('<html><head><title>Table of Contents</title></head><body><h1>Table of Contents</h1><ul><li><a href="#section1">Section 1</a></li><li><a href="#section2">Section 2</a></li><li><a href="#section3">Section 3</a></li><li><a href="#section4">Section 4</a></li><li><a href="#section5">Section 5</a></li></ul><h2 id="section1">Section 1</h2><p>Content section 1...</p><h2 id="section2">Section 2</h2><p>Content section 2...</p><h2 id="section3">Section 3</h2><p>Content section 3...</p><h2 id="section4">Section 4</h2><p>Content section 4...</p><h2 id="section5">Section 5</h2><p>Content section 5...</p></body></html>')=={'Section 1': 'Content section 1...', 'Section 2': 'Content section 2...', 'Section 3': 'Content section 3...', 'Section 4': 'Content section 4...', 'Section 5': 'Content section 5...'}
  assert extract_sections('<html><body><h2 id="s1">S1</h2><p>Content 1</p><h2 id="s2">S2</h2><p>Content 2</p></body></html>')=={'S1': 'Content 1', 'S2': 'Content 2'}
  assert extract_sections('<html><body></body></html>')=={}
output: def extract_sections(html):
      from bs4 import BeautifulSoup
      
      soup = BeautifulSoup(html, 'html.parser')
      sections = {}
      
      headers = soup.find_all('h2')
      for header in headers:
          title = header.get_text()
          content = ""
          for sib in header.find_next_siblings():
              if sib.name == 'h2':
                  break
              if sib.name == 'p':
                  content += sib.get_text()
          sections[title] = content
      
      return sections