layer at (0,0) size 785x1533
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1533
  RenderBlock {HTML} at (0,0) size 785x1533
    RenderBody {BODY} at (8,8) size 769x1517 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x20
        RenderText {#text} at (0,0) size 337x19
          text run at (0,0) width 337: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,36) size 769x272
        RenderText {#text} at (0,0) size 688x272
          text run at (0,0) width 648: "BODY {background-image: url(../resources/bg.gif); background-position: right top;"
          text run at (0,16) width 288: "      background-repeat: no-repeat;}"
          text run at (0,32) width 624: ".one {background-image: url(../resources/bg.gif); background-position: center;"
          text run at (0,48) width 480: "      background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,64) width 632: ".two {background-image: url(../resources/bg.gif); background-position: 50% 50%;"
          text run at (0,80) width 480: "      background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,96) width 688: ".three {background-image: url(../resources/bg.gif); background-position: bottom right;"
          text run at (0,112) width 496: "        background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,128) width 656: ".four {background-image: url(../resources/bg.gif); background-position: 100% 100%;"
          text run at (0,144) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,160) width 632: ".five {background-image: url(../resources/bg.gif); background-position: 0% 50%;"
          text run at (0,176) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,192) width 632: ".six {background-image: url(../resources/bg.gif); background-position: 75% 25%;"
          text run at (0,208) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,224) width 664: ".seven {background-image: url(../resources/bg.gif); background-position: 20px 20px;"
          text run at (0,240) width 488: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,256) width 0: " "
      RenderBlock {HR} at (0,321) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,339) size 769x20
        RenderText {#text} at (0,0) size 472x19
          text run at (0,0) width 472: "This document should have a single, small green image in its upper right corner."
      RenderBlock {P} at (0,375) size 769x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 764x59
          text run at (0,0) width 764: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be fixed at the"
          text run at (0,20) width 148: "center of the paragraph. "
          text run at (148,20) width 612: "The background color will make it easier to determine the edges of the paragraph, and therefore allow"
          text run at (0,40) width 156: "you to calculate its center."
      RenderBlock {P} at (0,451) size 769x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 764x59
          text run at (0,0) width 764: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be fixed at the"
          text run at (0,20) width 148: "center of the paragraph. "
          text run at (148,20) width 612: "The background color will make it easier to determine the edges of the paragraph, and therefore allow"
          text run at (0,40) width 156: "you to calculate its center."
      RenderBlock {P} at (0,527) size 769x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 751x59
          text run at (0,0) width 728: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the image"
          text run at (0,20) width 350: "should be fixed at the lower right corner of the paragraph. "
          text run at (350,20) width 401: "The background color will make it easier to determine the edges of"
          text run at (0,40) width 343: "the paragraph, and therefore allow you to see its corners."
      RenderBlock {P} at (0,603) size 769x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 751x59
          text run at (0,0) width 728: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the image"
          text run at (0,20) width 350: "should be fixed at the lower right corner of the paragraph. "
          text run at (350,20) width 401: "The background color will make it easier to determine the edges of"
          text run at (0,40) width 343: "the paragraph, and therefore allow you to see its corners."
      RenderBlock {P} at (0,679) size 769x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 758x59
          text run at (0,0) width 744: "This paragraph should have a single, small green image exactly at the left center; that is, the left center of the image should be"
          text run at (0,20) width 240: "fixed at the left center of the paragraph. "
          text run at (240,20) width 518: "The background color will make it easier to determine the edges of the paragraph, and"
          text run at (0,40) width 250: "therefore allow you to calculate its center."
      RenderBlock {P} at (0,755) size 769x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 750x59
          text run at (0,0) width 717: "This paragraph should have a single, small green image positioned 75% of the way across the element, and 25% down. "
          text run at (717,0) width 23: "The"
          text run at (0,20) width 750: "background color will make it easier to determine the edges of the paragraph, which should help in determining if all this is so,"
          text run at (0,40) width 557: "and the extra text should make the element long enough for this test to be simpler to evaluate."
      RenderBlock {P} at (0,831) size 769x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 757x59
          text run at (0,0) width 756: "This paragraph should have a single, small green image positioned 20 pixels down and to the left of the upper left-hand corner;"
          text run at (0,20) width 757: "that is, the upper left-hand corner of the image should be 20 pixels down and to the left of the upper-left corner of the element."
          text run at (0,40) width 740: "The background color will make it easier to determine the edges of the paragraph, which should assist in evaluating this test."
      RenderTable {TABLE} at (0,907) size 769x610 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x608
          RenderTableRow {TR} at (0,0) size 767x28
            RenderTableCell {TD} at (0,0) size 767x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 159x19
                RenderText {#text} at (4,4) size 159x19
                  text run at (4,4) width 159: "TABLE Testing Section"
          RenderTableRow {TR} at (0,28) size 767x580
            RenderTableCell {TD} at (0,304) size 12x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x19
                text run at (4,4) width 4: " "
            RenderTableCell {TD} at (12,28) size 755x580 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x20
                RenderText {#text} at (0,0) size 472x19
                  text run at (0,0) width 472: "This document should have a single, small green image in its upper right corner."
              RenderBlock {P} at (4,40) size 747x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 746x59
                  text run at (0,0) width 742: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be fixed at"
                  text run at (0,20) width 170: "the center of the paragraph. "
                  text run at (170,20) width 576: "The background color will make it easier to determine the edges of the paragraph, and therefore"
                  text run at (0,40) width 192: "allow you to calculate its center."
              RenderBlock {P} at (4,116) size 747x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 746x59
                  text run at (0,0) width 742: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be fixed at"
                  text run at (0,20) width 170: "the center of the paragraph. "
                  text run at (170,20) width 576: "The background color will make it easier to determine the edges of the paragraph, and therefore"
                  text run at (0,40) width 192: "allow you to calculate its center."
              RenderBlock {P} at (4,192) size 747x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 735x59
                  text run at (0,0) width 728: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the image"
                  text run at (0,20) width 350: "should be fixed at the lower right corner of the paragraph. "
                  text run at (350,20) width 385: "The background color will make it easier to determine the edges"
                  text run at (0,40) width 359: "of the paragraph, and therefore allow you to see its corners."
              RenderBlock {P} at (4,268) size 747x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 735x59
                  text run at (0,0) width 728: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the image"
                  text run at (0,20) width 350: "should be fixed at the lower right corner of the paragraph. "
                  text run at (350,20) width 385: "The background color will make it easier to determine the edges"
                  text run at (0,40) width 359: "of the paragraph, and therefore allow you to see its corners."
              RenderBlock {P} at (4,344) size 747x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 744x59
                  text run at (0,0) width 744: "This paragraph should have a single, small green image exactly at the left center; that is, the left center of the image should be"
                  text run at (0,20) width 240: "fixed at the left center of the paragraph. "
                  text run at (240,20) width 492: "The background color will make it easier to determine the edges of the paragraph,"
                  text run at (0,40) width 276: "and therefore allow you to calculate its center."
              RenderBlock {P} at (4,420) size 747x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 740x59
                  text run at (0,0) width 717: "This paragraph should have a single, small green image positioned 75% of the way across the element, and 25% down. "
                  text run at (717,0) width 23: "The"
                  text run at (0,20) width 728: "background color will make it easier to determine the edges of the paragraph, which should help in determining if all this is"
                  text run at (0,40) width 579: "so, and the extra text should make the element long enough for this test to be simpler to evaluate."
              RenderBlock {P} at (4,496) size 747x80 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 728x79
                  text run at (0,0) width 709: "This paragraph should have a single, small green image positioned 20 pixels down and to the left of the upper left-hand"
                  text run at (0,20) width 728: "corner; that is, the upper left-hand corner of the image should be 20 pixels down and to the left of the upper-left corner of"
                  text run at (0,40) width 76: "the element. "
                  text run at (76,40) width 624: "The background color will make it easier to determine the edges of the paragraph, which should assist in"
                  text run at (0,60) width 112: "evaluating this test."
