This is the scrolled contents
This is the scrolled contents
(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 800.00 600.00)
  (children 1
    (GraphicsLayer
      (bounds 800.00 600.00)
      (contentsOpaque 1)
      (children 2
        (GraphicsLayer
          (offsetFromRenderer width=-14 height=-14)
          (position 14.00 6.00)
          (bounds 408.00 288.00)
          (drawsContent 1)
          (children 2
            (GraphicsLayer
              (offsetFromRenderer width=30 height=30)
              (position 44.00 44.00)
              (bounds 320.00 200.00)
              (children 1
                (GraphicsLayer
                  (offsetFromRenderer width=30 height=30)
                  (anchor 0.00 0.00)
                  (bounds 320.00 1020.00)
                  (children 1
                    (GraphicsLayer
                      (position 10.00 10.00)
                      (bounds 300.00 1000.00)
                      (contentsOpaque 1)
                      (drawsContent 1)
                    )
                  )
                )
              )
            )
            (GraphicsLayer
              (position 349.00 44.00)
              (bounds 15.00 200.00)
              (drawsContent 1)
            )
          )
        )
        (GraphicsLayer
          (offsetFromRenderer width=-14 height=-14)
          (position 14.00 286.00)
          (bounds 408.00 288.00)
          (drawsContent 1)
          (children 2
            (GraphicsLayer
              (offsetFromRenderer width=30 height=30)
              (position 44.00 44.00)
              (bounds 320.00 200.00)
              (children 1
                (GraphicsLayer
                  (offsetFromRenderer width=30 height=30)
                  (bounds 320.00 200.00)
                  (children 1
                    (GraphicsLayer
                      (offsetFromRenderer width=30 height=30)
                      (anchor 0.00 0.00)
                      (bounds 320.00 1020.00)
                      (children 1
                        (GraphicsLayer
                          (position 10.00 10.00)
                          (bounds 300.00 1000.00)
                          (contentsOpaque 1)
                          (drawsContent 1)
                        )
                      )
                    )
                  )
                )
              )
            )
            (GraphicsLayer
              (position 349.00 44.00)
              (bounds 15.00 200.00)
              (drawsContent 1)
            )
          )
        )
      )
    )
  )
)

