layer at (0,0) size 800x1432
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x1432
  RenderBlock {HTML} at (0,0) size 800x1432
    RenderBody {BODY} at (8,8) size 784x1416
      RenderBlock {DIV} at (0,0) size 784x200
        RenderBlock (floating) {DIV} at (0,0) size 200x200 [bgcolor=#FF0000]
        RenderTable {TABLE} at (200,0) size 584x50 [border: (2px solid #008000)]
          RenderTableSection {TBODY} at (2,2) size 580x46
            RenderTableRow {TR} at (0,2) size 580x42
              RenderTableCell {TD} at (2,2) size 576x42 [r=0 c=0 rs=1 cs=1]
                RenderText {#text} at (1,1) size 565x39
                  text run at (1,1) width 565: "This is a table. It should sit on the same line as the float and wrap as needed to fit within"
                  text run at (1,21) width 161: "the remaining line width."
      RenderBlock {DIV} at (0,200) size 784x200
        RenderBlock (floating) {DIV} at (0,0) size 200x200 [bgcolor=#FF0000]
      RenderBlock {DIV} at (0,408) size 784x200
        RenderBlock (floating) {DIV} at (0,0) size 200x200 [bgcolor=#FF0000]
        RenderBlock {HR} at (200,0) size 584x2 [border: (1px inset #000000)]
      RenderBlock {DIV} at (0,608) size 784x200
        RenderBlock (floating) {DIV} at (0,0) size 200x200 [bgcolor=#FF0000]
        RenderTable {TABLE} at (200,0) size 392x50 [border: (2px solid #008000)]
          RenderTableSection {TBODY} at (2,2) size 388x46
            RenderTableRow {TR} at (0,2) size 388x42
              RenderTableCell {TD} at (2,2) size 384x42 [r=0 c=0 rs=1 cs=1]
                RenderText {#text} at (1,1) size 371x39
                  text run at (1,1) width 356: "This is a table. It should sit on the same line as the float"
                  text run at (1,21) width 371: "and wrap as needed to fit within the remaining line width."
      RenderBlock {DIV} at (0,808) size 784x200
        RenderBlock (floating) {DIV} at (0,0) size 200x200 [bgcolor=#FF0000]
      RenderBlock {DIV} at (0,1016) size 784x200
        RenderBlock (floating) {DIV} at (0,0) size 200x200 [bgcolor=#FF0000]
        RenderBlock {HR} at (200,0) size 394x2 [border: (1px inset #000000)]
      RenderBlock {DIV} at (0,1216) size 784x200
        RenderBlock (floating) {DIV} at (0,0) size 200x200 [bgcolor=#FF0000]
        RenderImage {IMG} at (200,0) size 392x50 [bgcolor=#008000]
layer at (208,208) size 584x44 clip at (210,210) size 580x40
  RenderBlock {DIV} at (200,0) size 584x44 [border: (2px solid #0000FF)]
    RenderText {#text} at (2,2) size 556x39
      text run at (2,2) width 556: "This is an overflow:scroll region. It should sit on the same line as the float and wrap as"
      text run at (2,22) width 290: "needed to fit within the remaining line width."
layer at (208,816) size 396x64 clip at (210,818) size 392x60
  RenderBlock {DIV} at (200,0) size 396x64 [border: (2px solid #0000FF)]
    RenderText {#text} at (2,2) size 373x59
      text run at (2,2) width 373: "This is an overflow:scroll region. It should sit on the same"
      text run at (2,22) width 332: "line as the float and wrap as needed to fit within the"
      text run at (2,42) width 138: "remaining line width."
