<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>109317</bug_id>
          
          <creation_ts>2013-02-08 13:08:36 -0800</creation_ts>
          <short_desc>REGRESSION (r132422): Page content and scrollbars are incorrectly offset after restoring a page from the page cache</short_desc>
          <delta_ts>2013-02-10 12:13:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>bdakin</cc>
    
    <cc>beidson</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828731</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-08 13:08:36 -0800</bug_when>
    <thetext>There are a variety of codepaths that cause scrolling during layout, whether temporary or not. These scrolls are all programmatic, but many go through FrameView/ScrollableArea functions that don&apos;t have this knowledge. Since there&apos;s no chance a user-originated scroll can happen during layout, we should just mark all scrolls during layout as programmatic.

This fixes numerous bugs on builds that use ScrollingCoordinator, one of which has these steps to reproduce:

1. Load news.ycombinator.com
2. Scroll to the bottom of the page.
3. Click a link.
4. Click the back button.

Expected:

The scrollbar is in the right place relative to the content, and hovering over links hovers over the appropriate link (see the status bar).

Actual:

The scrollbar is at the top, but the content is scrolled. Hovering over links hovers over the wrong links.

&lt;rdar://problem/12649131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828740</commentid>
    <comment_count>1</comment_count>
      <attachid>187357</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-08 13:36:16 -0800</bug_when>
    <thetext>Created attachment 187357
preliminary patch (breaks at least one test, needs a test of its own)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829248</commentid>
    <comment_count>2</comment_count>
      <attachid>187471</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-10 01:51:46 -0800</bug_when>
    <thetext>Created attachment 187471
with a test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829250</commentid>
    <comment_count>3</comment_count>
      <attachid>187471</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-10 02:00:27 -0800</bug_when>
    <thetext>Comment on attachment 187471
with a test

View in context: https://bugs.webkit.org/attachment.cgi?id=187471&amp;action=review

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/resources/scroll-and-load-page.html:17
&gt; +                    log += internals.layerTreeAsText(window.document, internals.LAYER_TREE_INCLUDES_VISIBLE_RECTS | internals.LAYER_TREE_INCLUDES_TILE_CACHES);

Should check for internals&apos; existence here.

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:14
&gt; +            if (window.internals)

Don&apos;t need this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829303</commentid>
    <comment_count>4</comment_count>
      <attachid>187471</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-10 09:49:20 -0800</bug_when>
    <thetext>Comment on attachment 187471
with a test

View in context: https://bugs.webkit.org/attachment.cgi?id=187471&amp;action=review

&gt; LayoutTests/platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:22
&gt; +            window.open(&quot;resources/scroll-and-load-page.html&quot;);

Do you need to use window.open? Can&apos;t you just scroll, load another page that goes back, then finish the test?

&gt; Tools/ChangeLog:9
&gt; +        WebKitTestRunner should propagate window creation options to subwindows (so that children of tiled-drawing windows use tiled drawing, in this case).

This should really be a separate patch.

&gt; Tools/WebKitTestRunner/PlatformWebView.h:98
&gt; +    WKDictionaryRef options() { return m_options.get(); }

const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829315</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-10 10:26:14 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 187471 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187471&amp;action=review
&gt; 
&gt; &gt; LayoutTests/platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:22
&gt; &gt; +            window.open(&quot;resources/scroll-and-load-page.html&quot;);
&gt; 
&gt; Do you need to use window.open? Can&apos;t you just scroll, load another page that goes back, then finish the test?

I&apos;m not sure why that didn&apos;t work; it looked like the first page (the one that turns on the page cache) wasn&apos;t getting put *into* the page cache. So I followed suit with the other page-cache-testing tests and turned it on, then opened a new window. Maybe Brady knows.

&gt; &gt; Tools/ChangeLog:9
&gt; &gt; +        WebKitTestRunner should propagate window creation options to subwindows (so that children of tiled-drawing windows use tiled drawing, in this case).
&gt; 
&gt; This should really be a separate patch.

Yerp.

&gt; &gt; Tools/WebKitTestRunner/PlatformWebView.h:98
&gt; &gt; +    WKDictionaryRef options() { return m_options.get(); }
&gt; 
&gt; const?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829330</commentid>
    <comment_count>6</comment_count>
      <attachid>187490</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-10 11:59:13 -0800</bug_when>
    <thetext>Created attachment 187490
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829331</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-10 12:13:23 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/142416</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187357</attachid>
            <date>2013-02-08 13:36:16 -0800</date>
            <delta_ts>2013-02-10 01:51:46 -0800</delta_ts>
            <desc>preliminary patch (breaks at least one test, needs a test of its own)</desc>
            <filename>programmatic-scroll.diff</filename>
            <type>text/plain</type>
            <size>1501</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZmRiMDgzLi42NWE4NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTMtMDItMDggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjEzMjQyMik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFy
cyBhcmUgaW5jb3JyZWN0bHkgb2Zmc2V0IGFmdGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUg
cGFnZSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5MzE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjY0OTEzMT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIGFsbCBzY3JvbGxpbmcg
dGhhdCBvY2N1cnMgYmVuZWF0aCBGcmFtZVZpZXc6OmxheW91dCBhcyBwcm9ncmFtbWF0aWMuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmxheW91dCk6CisKIDIwMTMtMDIt
MDcgICBWaW5lZXQgQ2hhdWRoYXJ5ICA8cmdmNzQ4QG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBD
b25zaWRlciByZXBsYWNpbmcgcmV0dXJuIHR5cGUgb2YgQ2xpcGJvYXJkOjp0eXBlcygpIGZyb20g
TGlzdEhhc2hTZXQ8U3RyaW5nPiB0byBWZWN0b3I8U3RyaW5nPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IDdjYWJmMmQuLjhhMjcyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEwMzMsNiArMTAzMyw5IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxv
d1N1YnRyZWUpCiAgICAgLy8gUHJvdGVjdCB0aGUgdmlldyBmcm9tIGJlaW5nIGRlbGV0ZWQgZHVy
aW5nIGxheW91dCAoaW4gcmVjYWxjU3R5bGUpCiAgICAgUmVmUHRyPEZyYW1lVmlldz4gcHJvdGVj
dG9yKHRoaXMpOwogCisgICAgLy8gRXZlcnkgc2Nyb2xsIHRoYXQgaGFwcGVucyBkdXJpbmcgbGF5
b3V0IGlzIHByb2dyYW1tYXRpYy4KKyAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlSW5Q
cm9ncmFtbWF0aWNTY3JvbGwobV9pblByb2dyYW1tYXRpY1Njcm9sbCwgdHJ1ZSk7CisKICAgICBi
b29sIGluQ2hpbGRGcmFtZUxheW91dFdpdGhGcmFtZUZsYXR0ZW5pbmcgPSBpc0luQ2hpbGRGcmFt
ZVdpdGhGcmFtZUZsYXR0ZW5pbmcoKTsKIAogICAgIGlmIChpbkNoaWxkRnJhbWVMYXlvdXRXaXRo
RnJhbWVGbGF0dGVuaW5nKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187471</attachid>
            <date>2013-02-10 01:51:46 -0800</date>
            <delta_ts>2013-02-10 11:59:13 -0800</delta_ts>
            <desc>with a test</desc>
            <filename>programmatic-scroll.diff</filename>
            <type>text/plain</type>
            <size>12281</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YzNiYTQzLi44ODBhYzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDIt
MTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAocjEzMjQyMik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3Jy
ZWN0bHkgb2Zmc2V0IGFmdGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzE3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjY0OTEzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHNj
cm9sbCBwb3NpdGlvbiBpcyBjb3JyZWN0bHkgcmVzdG9yZWQgZm9yIHBhZ2VzIGNvbWluZyBvdXQg
b2YgdGhlIHBhZ2UgY2FjaGUgd2hlbiB0aWxlZCBkcmF3aW5nIGlzIGVuYWJsZWQuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvcmVzb3VyY2VzL2dvLWJhY2suaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Jlc291
cmNlcy9zY3JvbGwtYW5kLWxvYWQtcGFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFn
ZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0wOSAgSmFtZXMgUm9i
aW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENocm9taXVtIGdhcmRlbmlu
ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5n
L3Jlc291cmNlcy9nby1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3Rp
bGVkLWRyYXdpbmcvcmVzb3VyY2VzL2dvLWJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iNjgxMDZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Jlc291cmNlcy9nby1iYWNrLmh0bWwKQEAgLTAs
MCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7IGhp
c3RvcnkuYmFjaygpOyB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
cmVzb3VyY2VzL3Njcm9sbC1hbmQtbG9hZC1wYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvcmVzb3VyY2VzL3Njcm9sbC1hbmQtbG9hZC1wYWdlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRhOTBjMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9yZXNv
dXJjZXMvc2Nyb2xsLWFuZC1sb2FkLXBhZ2UuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5CisgICAg
ICAgIHsKKyAgICAgICAgICAgIHdpZHRoOiA1MDAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDUw
MDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVu
Y3Rpb24gcGFnZVdhc1Nob3duKGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlLnBlcnNp
c3RlZCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgICAgICB2YXIgbG9nID0gJ2RvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID0gJyArIGRv
Y3VtZW50LmJvZHkuc2Nyb2xsVG9wICsgJ1xuXG4nOworICAgICAgICAgICAgICAgICAgICBsb2cg
Kz0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dCh3aW5kb3cuZG9jdW1lbnQsIGludGVybmFscy5M
QVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIu
ZmluaXNoZWRUZXN0KGxvZyk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzY3JvbGxBbmROYXZpZ2F0ZSgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIHdpbmRvdy5zY3JvbGxUbygxMDAwLCAxMDAwKTsKKworICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24gKCkgeyBsb2NhdGlvbi5ocmVmID0gImdvLWJhY2suaHRtbCIgfSwgMCk7
CisgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIHNjcm9sbEFuZE5hdmlnYXRlLCBmYWxzZSk7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIHBhZ2VXYXNTaG93biwgZmFsc2UpOworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1z
Y3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE2MzBjNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy90aWxlZC1kcmF3aW5n
LXNjcm9sbC1wb3NpdGlvbi1wYWdlLWNhY2hlLXJlc3RvcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDI0IEBACitkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA9IDEwMDAKKworKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyA1MDA4LjAwIDUwMTYuMDApCisgICh2aXNpYmxlIHJlY3QgMTAwMC4w
MCwgMTAwMC4wMCA3ODUuMDAgeCA1ODUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgIChib3VuZHMgNTAwOC4wMCA1MDE2LjAwKQorICAgICAgKGNvbnRlbnRzT3Bh
cXVlIDEpCisgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAoYmFja2dyb3VuZENvbG9yICNG
RkZGRkYpCisgICAgICAodmlzaWJsZSByZWN0IDEwMDAuMDAsIDEwMDAuMDAgNzg1LjAwIHggNTg1
LjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgNTEyLCAwIDIwNDggeCAyNTYwKQorICAg
ICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAxLCAwIHRpbGVz
IGdyaWQgNCB4IDUpCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAg
KQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24t
cGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUt
cmVzdG9yYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmY4
OGI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUtcmVzdG9y
YXRpb24uaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93
cygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVz
ZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5k
b3cuZmluaXNoZWRUZXN0ID0gZnVuY3Rpb24gKGxheWVyVHJlZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGxheWVyVHJlZTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBkb1Rlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICB3aW5kb3cub3BlbigicmVzb3VyY2Vz
L3Njcm9sbC1hbmQtbG9hZC1wYWdlLmh0bWwiKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBoZXJlPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI5MWU4YzNiLi41MWJmZGJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDItMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjEzMjQyMik6IFBhZ2Ug
Y29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0bHkgb2Zmc2V0IGFmdGVyIHJlc3Rv
cmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MjY0OTEzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYXJrIGFsbCBzY3JvbGxpbmcgdGhhdCBvY2N1cnMgYmVuZWF0aCBGcmFtZVZpZXc6OmxheW91
dCBhcyBwcm9ncmFtbWF0aWMuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUtcmVzdG9y
YXRpb24uaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorCiAyMDEzLTAyLTA5ICBEb21pbmljIE1henpvbmkg
IDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRl
c3RzLSouaHRtbCB0ZXN0cyBzb21ldGltZXMgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCA0ZGM1ZDQ4Li4zM2NjZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC0xMDM3LDYgKzEwMzcsOSBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0
cmVlKQogICAgIC8vIFByb3RlY3QgdGhlIHZpZXcgZnJvbSBiZWluZyBkZWxldGVkIGR1cmluZyBs
YXlvdXQgKGluIHJlY2FsY1N0eWxlKQogICAgIFJlZlB0cjxGcmFtZVZpZXc+IHByb3RlY3Rvcih0
aGlzKTsKIAorICAgIC8vIEV2ZXJ5IHNjcm9sbCB0aGF0IGhhcHBlbnMgZHVyaW5nIGxheW91dCBp
cyBwcm9ncmFtbWF0aWMuCisgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZUluUHJvZ3Jh
bW1hdGljU2Nyb2xsKG1faW5Qcm9ncmFtbWF0aWNTY3JvbGwsIHRydWUpOworCiAgICAgYm9vbCBp
bkNoaWxkRnJhbWVMYXlvdXRXaXRoRnJhbWVGbGF0dGVuaW5nID0gaXNJbkNoaWxkRnJhbWVXaXRo
RnJhbWVGbGF0dGVuaW5nKCk7CiAKICAgICBpZiAoaW5DaGlsZEZyYW1lTGF5b3V0V2l0aEZyYW1l
RmxhdHRlbmluZykgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDVjYTkwYmIuLjU4NWU0MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0xMCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChy
MTMyNDIyKTogUGFnZSBjb250ZW50IGFuZCBzY3JvbGxiYXJzIGFyZSBpbmNvcnJlY3RseSBvZmZz
ZXQgYWZ0ZXIgcmVzdG9yaW5nIGEgcGFnZSBmcm9tIHRoZSBwYWdlIGNhY2hlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzMTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzEyNjQ5MTMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHByb3BhZ2F0ZSB3aW5kb3cg
Y3JlYXRpb24gb3B0aW9ucyB0byBzdWJ3aW5kb3dzIChzbyB0aGF0IGNoaWxkcmVuIG9mIHRpbGVk
LWRyYXdpbmcgd2luZG93cyB1c2UgdGlsZWQgZHJhd2luZywgaW4gdGhpcyBjYXNlKS4KKworICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgIChXVFI6
OlBsYXRmb3JtV2ViVmlldzo6b3B0aW9ucyk6CisgICAgICAgIEFkZCBzdG9yYWdlIGFuZCBhIGdl
dHRlciBmb3IgUGxhdGZvcm1XZWJWaWV3J3MgY3JlYXRpb24gb3B0aW9ucyBkaWN0aW9uYXJ5Lgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgUHJvcGFnYXRl
IGNyZWF0aW9uIG9wdGlvbnMgZnJvbSBwYXJlbnQgdG8gY2hpbGQgUGxhdGZvcm1XZWJWaWV3IHdo
ZW4gY3JlYXRpbmcgc3Vid2luZG93cy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9Q
bGF0Zm9ybVdlYlZpZXdFZmwuY3BwOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1X
ZWJWaWV3R3RrLmNwcDoKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdl
YlZpZXcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01h
Yy5tbToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwOgorICAg
ICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIFN0
b3JlIGNyZWF0aW9uIG9wdGlvbnMgb24gdGhlIFBsYXRmb3JtV2ViVmlldy4KKwogMjAxMy0wMi0w
OSAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBUZXN0
V2ViS2l0QVBJIHdvcmsgZm9yIGlPUwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJW
aWV3LmgKaW5kZXggNTFjNGJjYy4uYzM0MDMzZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Bs
YXRmb3JtV2ViVmlldy5oCkBAIC05NSwxMSArOTUsMTMgQEAgcHVibGljOgogI2VuZGlmCiAKICAg
ICBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiB3aW5kb3dTbmFwc2hvdEltYWdlKCk7CisgICAgV0tE
aWN0aW9uYXJ5UmVmIG9wdGlvbnMoKSB7IHJldHVybiBtX29wdGlvbnMuZ2V0KCk7IH0KIAogcHJp
dmF0ZToKICAgICBQbGF0Zm9ybVdLVmlldyBtX3ZpZXc7CiAgICAgUGxhdGZvcm1XaW5kb3cgbV93
aW5kb3c7CiAgICAgYm9vbCBtX3dpbmRvd0lzS2V5OworICAgIFdLUmV0YWluUHRyPFdLRGljdGlv
bmFyeVJlZj4gbV9vcHRpb25zOwogI2lmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oUVQpCiAg
ICAgYm9vbCBtX3VzaW5nRml4ZWRMYXlvdXQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYTM3NzlhZC4uNjljZDk1ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE4MCw5ICsxODAsMTEgQEAgaW50
IFRlc3RDb250cm9sbGVyOjpnZXRDdXN0b21UaW1lb3V0KCkKICAgICByZXR1cm4gbV90aW1lb3V0
OwogfQogCi1XS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VS
ZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRNb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCopCitXS1BhZ2VSZWYgVGVzdENv
bnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0
UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcg
PSBuZXcgUGxhdGZvcm1XZWJWaWV3KFdLUGFnZUdldENvbnRleHQob2xkUGFnZSksIFdLUGFnZUdl
dFBhZ2VHcm91cChvbGRQYWdlKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0g
c3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOworCisgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhX
S1BhZ2VHZXRDb250ZXh0KG9sZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAob2xkUGFnZSksIHBh
cmVudFZpZXctPm9wdGlvbnMoKSk7CiAgICAgV0tQYWdlUmVmIG5ld1BhZ2UgPSB2aWV3LT5wYWdl
KCk7CiAKICAgICB2aWV3LT5yZXNpemVUbyg4MDAsIDYwMCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcAppbmRleCA2OGIyNjk1Li5lYjFm
MDRiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZp
ZXdFZmwuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmll
d0VmbC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgc3RhdGljIEVjb3JlX0V2YXMqIGluaXRFY29yZUV2
YXMoKQogfQogCiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYg
Y29udGV4dCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwLCBXS0RpY3Rpb25hcnlSZWYgb3B0aW9u
cykKKyAgICA6IG1fb3B0aW9ucyhvcHRpb25zKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiB1c2VGaXhlZExheW91dEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVXNlRml4ZWRMYXlvdXQiKSk7CiAgICAgbV91c2luZ0ZpeGVkTGF5b3V0ID0gb3B0aW9u
cyA/IFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9u
YXJ5R2V0SXRlbUZvcktleShvcHRpb25zLCB1c2VGaXhlZExheW91dEtleS5nZXQoKSkpKSA6IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJW
aWV3R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0
ay5jcHAKaW5kZXggYmJlZjA0ZS4uNWRiNmY1MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0zNyw2ICszNyw3IEBAIFBsYXRm
b3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1BhZ2VH
cm91cFJlZiBwYWdlR3JvdXAsCiAgICAgOiBtX3ZpZXcoV0tWaWV3Q3JlYXRlKGNvbnRleHQsIHBh
Z2VHcm91cCkpCiAgICAgLCBtX3dpbmRvdyhndGtfd2luZG93X25ldyhHVEtfV0lORE9XX1BPUFVQ
KSkKICAgICAsIG1fd2luZG93SXNLZXkodHJ1ZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQog
ewogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIobV93aW5kb3cpLCBHVEtfV0lE
R0VUKG1fdmlldykpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Q
bGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9y
bVdlYlZpZXdNYWMubW0KaW5kZXggOTgxNTBiMS4uNmZhY2RkNCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMTA3LDYgKzEwNyw3
IEBAIG5hbWVzcGFjZSBXVFIgewogCiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS0Rp
Y3Rpb25hcnlSZWYgb3B0aW9ucykKICAgICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKKyAgICAsIG1f
b3B0aW9ucyhvcHRpb25zKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1c2VUaWxl
ZERyYXdpbmdLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRpbGVk
RHJhd2luZyIpKTsKICAgICBXS1R5cGVSZWYgdXNlVGlsZWREcmF3aW5nVmFsdWUgPSBvcHRpb25z
ID8gV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShvcHRpb25zLCB1c2VUaWxlZERyYXdpbmdLZXku
Z2V0KCkpIDogTlVMTDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxh
dGZvcm1XZWJWaWV3UXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdl
YlZpZXdRdC5jcHAKaW5kZXggNDdkNDA3ZS4uOGYzMDI5OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKQEAgLTc5LDYgKzc5LDcgQEAgcHJp
dmF0ZToKIAogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tEaWN0aW9uYXJ5UmVmIG9w
dGlvbnMpCiAgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAgLCBtX29wdGlvbnMob3B0aW9u
cykKICAgICAsIG1fbW9kYWxFdmVudExvb3AoMCkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gdXNlRml4ZWRMYXlvdXRLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlVzZUZpeGVkTGF5b3V0IikpOwo=
</data>
<flag name="review"
          id="207292"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187490</attachid>
            <date>2013-02-10 11:59:13 -0800</date>
            <delta_ts>2013-02-10 11:59:47 -0800</delta_ts>
            <desc>patch</desc>
            <filename>programmatic-scroll.diff</filename>
            <type>text/plain</type>
            <size>6576</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDE4ZDgzLi4zMWE1NjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDIt
MTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAocjEzMjQyMik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3Jy
ZWN0bHkgb2Zmc2V0IGFmdGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzE3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjY0OTEzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHNj
cm9sbCBwb3NpdGlvbiBpcyBjb3JyZWN0bHkgcmVzdG9yZWQgZm9yIHBhZ2VzIGNvbWluZyBvdXQg
b2YgdGhlIHBhZ2UgY2FjaGUgd2hlbiB0aWxlZCBkcmF3aW5nIGlzIGVuYWJsZWQuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvcmVzb3VyY2VzL2dvLWJhY2suaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Jlc291
cmNlcy9zY3JvbGwtYW5kLWxvYWQtcGFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFn
ZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xMCAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgR1RL
IGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGls
ZWQtZHJhd2luZy9yZXNvdXJjZXMvZ28tYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Jlc291cmNlcy9nby1iYWNrLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY4MTA2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9yZXNvdXJjZXMvZ28tYmFjay5o
dG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rp
b24gKCkgeyBoaXN0b3J5LmJhY2soKTsgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL3Jlc291cmNlcy9zY3JvbGwtYW5kLWxvYWQtcGFnZS5odG1sIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Jlc291cmNlcy9zY3JvbGwtYW5kLWxv
YWQtcGFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZTQwNDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRy
YXdpbmcvcmVzb3VyY2VzL3Njcm9sbC1hbmQtbG9hZC1wYWdlLmh0bWwKQEAgLTAsMCArMSwzOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAg
Ym9keQorICAgICAgICB7CisgICAgICAgICAgICB3aWR0aDogNTAwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGZ1bmN0aW9uIHBhZ2VXYXNTaG93bihlKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoZS5wZXJzaXN0ZWQpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGxvZyA9ICdkb2N1bWVudC5ib2R5LnNjcm9sbFRv
cCA9ICcgKyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCArICdcblxuJzsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2cg
Kz0gaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dCh3aW5kb3cuZG9jdW1lbnQsIGludGVybmFscy5M
QVlFUl9UUkVFX0lOQ0xVREVTX1ZJU0lCTEVfUkVDVFMgfCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9J
TkNMVURFU19USUxFX0NBQ0hFUyk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIu
ZmluaXNoZWRUZXN0KGxvZyk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzY3JvbGxBbmROYXZpZ2F0ZSgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIHdpbmRvdy5zY3JvbGxUbygxMDAwLCAxMDAwKTsKKworICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24gKCkgeyBsb2NhdGlvbi5ocmVmID0gImdvLWJhY2suaHRtbCIgfSwgMCk7
CisgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgfQorICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIHNjcm9sbEFuZE5hdmlnYXRlLCBmYWxzZSk7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIHBhZ2VXYXNTaG93biwgZmFsc2UpOworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1z
Y3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE2MzBjNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy90aWxlZC1kcmF3aW5n
LXNjcm9sbC1wb3NpdGlvbi1wYWdlLWNhY2hlLXJlc3RvcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDI0IEBACitkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA9IDEwMDAKKworKEdyYXBoaWNz
TGF5ZXIKKyAgKGJvdW5kcyA1MDA4LjAwIDUwMTYuMDApCisgICh2aXNpYmxlIHJlY3QgMTAwMC4w
MCwgMTAwMC4wMCA3ODUuMDAgeCA1ODUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgIChib3VuZHMgNTAwOC4wMCA1MDE2LjAwKQorICAgICAgKGNvbnRlbnRzT3Bh
cXVlIDEpCisgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAoYmFja2dyb3VuZENvbG9yICNG
RkZGRkYpCisgICAgICAodmlzaWJsZSByZWN0IDEwMDAuMDAsIDEwMDAuMDAgNzg1LjAwIHggNTg1
LjAwKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJhZ2UgNTEyLCAwIDIwNDggeCAyNTYwKQorICAg
ICAgKHRpbGUgc2l6ZSA1MTIgeCA1MTIpCisgICAgICAodG9wIGxlZnQgdGlsZSAxLCAwIHRpbGVz
IGdyaWQgNCB4IDUpCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgICh2aXNpYmxlIHJlY3QgMC4wMCwgMC4wMCAwLjAwIHggMC4wMCkKKyAgICAgICAg
KQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24t
cGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi90aWxlZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUt
cmVzdG9yYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2I5
MGVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxl
ZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUtcmVzdG9y
YXRpb24uaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93
cygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVz
ZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5k
b3cuZmluaXNoZWRUZXN0ID0gZnVuY3Rpb24gKGxheWVyVHJlZSkKKyAgICAgICAgeyAgIAorICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGxh
eWVyVHJlZTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgd2lu
ZG93Lm9wZW4oInJlc291cmNlcy9zY3JvbGwtYW5kLWxvYWQtcGFnZS5odG1sIik7CisgICAgICAg
IH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNl
KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHByZSBpZD0ibGF5ZXJzIj5MYXll
ciB0cmVlIGdvZXMgaGVyZTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MWVi
OTZkLi4zYzU1ZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDItMTAgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TiAocjEzMjQyMik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0bHkg
b2Zmc2V0IGFmdGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzE3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMjY0OTEzMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYXJrIGFsbCBzY3JvbGxpbmcgdGhhdCBvY2N1cnMgYmVuZWF0
aCBGcmFtZVZpZXc6OmxheW91dCBhcyBwcm9ncmFtbWF0aWMuCisKKyAgICAgICAgVGVzdDogcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9u
LXBhZ2UtY2FjaGUtcmVzdG9yYXRpb24uaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorCiAyMDEzLTAyLTEw
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTWFjXSBGaXgg
cmVsZWFzZSBidWlsZCBmYWlsdXJlIGJ5IHJlY2VudCByZXZlcnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggNGRjNWQ0OC4uMzNjY2VhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcApAQCAtMTAzNyw2ICsxMDM3LDkgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFs
bG93U3VidHJlZSkKICAgICAvLyBQcm90ZWN0IHRoZSB2aWV3IGZyb20gYmVpbmcgZGVsZXRlZCBk
dXJpbmcgbGF5b3V0IChpbiByZWNhbGNTdHlsZSkKICAgICBSZWZQdHI8RnJhbWVWaWV3PiBwcm90
ZWN0b3IodGhpcyk7CiAKKyAgICAvLyBFdmVyeSBzY3JvbGwgdGhhdCBoYXBwZW5zIGR1cmluZyBs
YXlvdXQgaXMgcHJvZ3JhbW1hdGljLgorICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2VJ
blByb2dyYW1tYXRpY1Njcm9sbChtX2luUHJvZ3JhbW1hdGljU2Nyb2xsLCB0cnVlKTsKKwogICAg
IGJvb2wgaW5DaGlsZEZyYW1lTGF5b3V0V2l0aEZyYW1lRmxhdHRlbmluZyA9IGlzSW5DaGlsZEZy
YW1lV2l0aEZyYW1lRmxhdHRlbmluZygpOwogCiAgICAgaWYgKGluQ2hpbGRGcmFtZUxheW91dFdp
dGhGcmFtZUZsYXR0ZW5pbmcpIHsK
</data>
<flag name="review"
          id="207317"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>