layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderSVGRoot {svg} at (0,0) size 800x600
    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    RenderSVGContainer {g} at (24,24) size 752x468
      RenderSVGRect {rect} at (24,24) size 752x468 [stroke={[type=SOLID] [color=#000000] [stroke width=0.25]}] [x=15.00] [y=15.00] [width=450.00] [height=280.00]
      RenderSVGContainer {g} at (163,26) size 474x68
        RenderSVGText {text} at (97,16) size 286x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 285x18
            chunk 1 (middle anchor) text run 1 at (97.83,30.00) startOffset 0 endOffset 42 width 284.33: "Testing pointer-events and rendering order"
        RenderSVGText {text} at (141,32) size 198x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 197x12
            chunk 1 (middle anchor) text run 1 at (141.91,42.00) startOffset 0 endOffset 39 width 196.17: "Rectangles should turn RED on mouseover"
        RenderSVGText {text} at (112,44) size 256x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 255x12
            chunk 1 (middle anchor) text run 1 at (112.50,54.00) startOffset 0 endOffset 56 width 254.99: "Ovals should turn RED if Pointer-Events are set to \"ALL\""
      RenderSVGContainer {g} at (183,105) size 565x375
        RenderSVGContainer {g} at (586,105) size 162x73 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,10.00)}]
          RenderSVGText {text} at (352,77) size 96x10 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 95x9
              chunk 1 (middle anchor) text run 1 at (352.57,85.00) startOffset 0 endOffset 26 width 94.86: "Change \"Pointer-Events\" of"
          RenderSVGText {text} at (351,87) size 98x10 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 97x9
              chunk 1 (middle anchor) text run 1 at (351.76,95.00) startOffset 0 endOffset 26 width 96.47: "ovals from \"ALL\" to \"NONE\""
          RenderSVGEllipse {circle} at (622,105) size 39x40 [stroke={[type=SOLID] [color=#000000] [stroke width=3.00]}] [fill={[type=SOLID] [color=#33CC55]}] [cx=385.00] [cy=65.00] [r=10.00]
          RenderSVGEllipse {circle} at (674,107) size 36x36 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF3355]}] [cx=415.00] [cy=65.00] [r=10.00]
        RenderSVGContainer {g} at (183,456) size 434x24
          RenderSVGText {text} at (112,273) size 256x15 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 256x14
              chunk 1 (middle anchor) text run 1 at (112.42,285.00) startOffset 0 endOffset 48 width 255.17: "Purple ovals have \"Pointer-Events\" set to \"ALL\"."
          RenderSVGText {text} at (110,273) size 260x15 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 260x14
              chunk 1 (middle anchor) text run 1 at (110.02,285.00) startOffset 0 endOffset 47 width 259.97: "Purple ovals have Pointer-Events set to \"NONE\"."
      RenderSVGContainer {g} at (136,112) size 490x335 [transform={m=((0.75,0.00)(0.00,0.50)) t=(75.00,42.50)}]
        RenderSVGEllipse {circle} at (199,278) size 252x169 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#5533FF]}] [cx=160.00] [cy=350.00] [r=100.00]
        RenderSVGRect {rect} at (136,112) size 378x251 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#3355FF]}] [x=10.00] [y=50.00] [width=300.00] [height=300.00]
        RenderSVGEllipse {circle} at (399,287) size 227x151 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#7755FF]}] [cx=310.00] [cy=350.00] [r=90.00]
        RenderSVGRect {rect} at (199,153) size 252x169 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#5577FF]}] [x=60.00] [y=100.00] [width=200.00] [height=200.00]
        RenderSVGEllipse {circle} at (418,174) size 189x127 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#9977FF]}] [cx=310.00] [cy=200.00] [r=75.00]
        RenderSVGRect {rect} at (261,195) size 128x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#7799FF]}] [x=110.00] [y=150.00] [width=100.00] [height=100.00]
        RenderSVGContainer {g} at (137,112) size 376x251
          RenderSVGRect {rect} at (137,112) size 376x251 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50] [dash array={4.00, 4.00}]}] [x=10.00] [y=50.00] [width=300.00] [height=300.00]
          RenderSVGRect {rect} at (199,153) size 252x169 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50] [dash array={4.00, 4.00}]}] [x=60.00] [y=100.00] [width=200.00] [height=200.00]
          RenderSVGRect {rect} at (262,195) size 126x85 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50] [dash array={4.00, 4.00}]}] [x=110.00] [y=150.00] [width=100.00] [height=100.00]
    RenderSVGContainer {g} at (16,517) size 381x62
      RenderSVGText {text} at (10,310) size 229x38 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 229x37
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 228.03: "$Revision: 1.3 $"
    RenderSVGRect {rect} at (0,0) size 800x600 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
