<?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>97617</bug_id>
          
          <creation_ts>2012-09-25 17:10:58 -0700</creation_ts>
          <short_desc>(Threaded scrolling) WebKit not scrolling to the correct location upon going back on macsurfer.com</short_desc>
          <delta_ts>2012-09-26 11:13:44 -0700</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>All</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>728088</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 17:10:58 -0700</bug_when>
    <thetext>(Threaded scrolling) WebKit not scrolling to the correct location upon going back on macsurfer.com

In Tiled Drawing (and therefore Threaded Scrolling) mode, *all* scroll position changes are treated as user generated scrolls and generate scroll events.

This breaks restoring scroll position when going back to sites that are slow to layout to their full length.

In radar as &lt;rdar://problem/12039913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728090</commentid>
    <comment_count>1</comment_count>
      <attachid>165703</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 17:18:14 -0700</bug_when>
    <thetext>Created attachment 165703
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728091</commentid>
    <comment_count>2</comment_count>
      <attachid>165703</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-09-25 17:20:36 -0700</bug_when>
    <thetext>Comment on attachment 165703
Patch v1

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

&gt; Source/WebCore/page/scrolling/ScrollingTreeState.cpp:171
&gt; +void ScrollingTreeState::setIsProgrammaticScroll(bool isProgrammaticScroll)
&gt; +{

I think this should just be an extra parameter to setRequestedScrollPosition to make it harder to call setRequestedScrollPosition without thinking about whether it&apos;s a programmatic scroll or not.

If you do this you don&apos;t need the extra IsProgrammaticScroll flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728094</commentid>
    <comment_count>3</comment_count>
      <attachid>165703</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-09-25 17:30:37 -0700</bug_when>
    <thetext>Comment on attachment 165703
Patch v1

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

&gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:58
&gt; +    , m_updatingForProgrammaticScroll(false)

I can’t find any code that’s reading this data member. Is this just a leftover from an earlier cut at the patch?

&gt; Source/WebCore/page/scrolling/ScrollingCoordinator.h:176
&gt; +    bool m_updatingForProgrammaticScroll;

As I mentioned above, I think this should be removed.

&gt; Source/WebCore/page/scrolling/ScrollingTree.h:124
&gt; +    bool m_handlingProgrammaticScroll;

I know the other booleans aren’t doing it, but I thought we preferred names that finish the sentence “tree &lt;xxx&gt;”, so it would be “is handling programmatic scroll” rather than “handling programmatic scroll”.

&gt; Source/WebCore/page/scrolling/ScrollingTreeState.cpp:46
&gt; +    , m_isProgrammaticScroll(false)

Is the correct phrase “tree state is programmatic scroll”? Maybe “tree state represents programmatic scroll”? What is the phrase form of what this means here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728101</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 17:55:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 165703 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165703&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollingTreeState.cpp:171
&gt; &gt; +void ScrollingTreeState::setIsProgrammaticScroll(bool isProgrammaticScroll)
&gt; &gt; +{
&gt; 
&gt; I think this should just be an extra parameter to setRequestedScrollPosition to make it harder to call setRequestedScrollPosition without thinking about whether it&apos;s a programmatic scroll or not.
&gt; 
&gt; If you do this you don&apos;t need the extra IsProgrammaticScroll flag.

Okay, this makes sense to me.  Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728103</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 17:57:32 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 165703 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165703&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:58
&gt; &gt; +    , m_updatingForProgrammaticScroll(false)
&gt; 
&gt; I can’t find any code that’s reading this data member. Is this just a leftover from an earlier cut at the patch?
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollingCoordinator.h:176
&gt; &gt; +    bool m_updatingForProgrammaticScroll;
&gt; 
&gt; As I mentioned above, I think this should be removed.

You&apos;re totally right.  Earlier cut at the patch, and now removed.

&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollingTree.h:124
&gt; &gt; +    bool m_handlingProgrammaticScroll;
&gt; 
&gt; I know the other booleans aren’t doing it, but I thought we preferred names that finish the sentence “tree &lt;xxx&gt;”, so it would be “is handling programmatic scroll” rather than “handling programmatic scroll”.
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollingTreeState.cpp:46
&gt; &gt; +    , m_isProgrammaticScroll(false)
&gt; 
&gt; Is the correct phrase “tree state is programmatic scroll”? Maybe “tree state represents programmatic scroll”? What is the phrase form of what this means here?

I&apos;ll sort these names out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728108</commentid>
    <comment_count>6</comment_count>
      <attachid>165707</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 18:07:19 -0700</bug_when>
    <thetext>Created attachment 165707
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728143</commentid>
    <comment_count>7</comment_count>
      <attachid>165707</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 19:06:29 -0700</bug_when>
    <thetext>Comment on attachment 165707
Patch v2

Attachment 165707 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14042002

New failing tests:
scrollbars/scrollevent-iframe-no-scrolling.html
fast/events/fire-scroll-event.html
fast/events/scroll-event-during-modal-dialog.html
fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html
scrollbars/scrollable-iframe-remove-crash.html
fast/events/scroll-event-phase.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728146</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 19:11:11 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 165707 [details])
&gt; Attachment 165707 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/14042002
&gt; 
&gt; New failing tests:
&gt; scrollbars/scrollevent-iframe-no-scrolling.html
&gt; fast/events/fire-scroll-event.html
&gt; fast/events/scroll-event-during-modal-dialog.html
&gt; fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html
&gt; scrollbars/scrollable-iframe-remove-crash.html
&gt; fast/events/scroll-event-phase.html

Seeing *some* of these on Mac, certainly not all.  Looking in to them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728150</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 19:16:00 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 165707 [details] [details])
&gt; &gt; Attachment 165707 [details] [details] did not pass chromium-ews (chromium-xvfb):
&gt; &gt; Output: http://queues.webkit.org/results/14042002
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; scrollbars/scrollevent-iframe-no-scrolling.html
&gt; &gt; fast/events/fire-scroll-event.html
&gt; &gt; fast/events/scroll-event-during-modal-dialog.html
&gt; &gt; fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html
&gt; &gt; scrollbars/scrollable-iframe-remove-crash.html
&gt; &gt; fast/events/scroll-event-phase.html
&gt; 
&gt; Seeing *some* of these on Mac, certainly not all.  Looking in to them.

Complete boneheaded mistake on my part - Turns out that window.scrollTo *is* supposed to generate scroll events.

Perhaps we really should be generating scroll events for the &quot;restore scroll position on back&quot; also - if the page needs them to stay in sync, then it needs them.

But window.scrollTo and the position restoration should still not be considered user scrolls.  This is an easy modification to the current patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728152</commentid>
    <comment_count>10</comment_count>
      <attachid>165718</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-25 19:22:46 -0700</bug_when>
    <thetext>Created attachment 165718
Patch v3 - Now with more scroll events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728600</commentid>
    <comment_count>11</comment_count>
      <attachid>165718</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-09-26 08:43:49 -0700</bug_when>
    <thetext>Comment on attachment 165718
Patch v3 - Now with more scroll events

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

&gt; Source/WebCore/page/scrolling/ScrollingTreeState.h:139
&gt; +    bool m_representsProgrammaticScroll;

How about m_scrollPositionRequestRepresentsProgrammaticScroll or m_requestedScrollPositionRepresentsProgrammaticScroll to better indicate that it goes with setRequestedScrollPosition?
Looks fine otherwise!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728626</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-26 09:00:09 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/129652</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165703</attachid>
            <date>2012-09-25 17:18:14 -0700</date>
            <delta_ts>2012-09-25 18:07:19 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>11623</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3YTk0Y2NiLi5mMTM1ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkg
QEAKKzIwMTItMDktMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIChUaHJlYWRlZCBzY3JvbGxpbmcpIFdlYktpdCBub3Qgc2Nyb2xsaW5nIHRvIHRoZSBjb3Jy
ZWN0IGxvY2F0aW9uIHVwb24gZ29pbmcgYmFjayBvbiBtYWNzdXJmZXIuY29tCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMjAzOTkxMz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzYxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEluIHRoZSBhc3luY2hyb25vdXMgbGFuZCBvZiB0aHJlYWRlZCBzY3JvbGxpbmcg
d2UgbG9zZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciBvciBub3QgYSBzY3JvbGwKKyAg
ICAgICAgaXMgcHJvZ3JhbW1hdGljLgorCisgICAgICAgIFRoaXMgY2F1c2VkIGFsbCBzY3JvbGxz
IHRvIGJlIHRyZWF0ZWQgYXMgdXNlciBzY3JvbGxzIGFuZCB0byBnZW5lcmF0ZWQgc2Nyb2xsIGV2
ZW50cy4KKworICAgICAgICBXZSBjYW4gZml4IHRoaXMgYnkgcGFzc2luZyB0aGUgcHJvZ3JhbW1h
dGljIGJpdCB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhbmQgcmUtYXBwbHlpbmcgaXQgYmFjayBp
biB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgVW5hYmxlIHRvIHRlc3QgdGhyZWFkZWQgc2Ny
b2xsaW5nIGF0IHRoaXMgdGltZS4KKworICAgICAgICBJbmNsdWRlIHRoZSAiSXMgcHJvZ3JhbW1h
dGljIHNjcm9sbCIgYml0IGluIHRoZSBzY3JvbGwgc3RhdGU6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTdGF0ZTo6U2Nyb2xsaW5nVHJlZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTdGF0ZTo6c2V0SXNQcm9ncmFtbWF0aWNTY3JvbGwpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmg6CisgICAg
ICAgIChTY3JvbGxpbmdUcmVlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZVN0YXRlOjppc1Byb2dyYW1tYXRpY1Njcm9sbCk6CisKKyAgICAgICAgUGFzcyB0aGF0IGJpdCBi
YWNrIHRvIHRoZSBTY3JvbGxpbmdDb29yZGluYXRvcjoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNj
cm9sbGluZ1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0TmV3
VHJlZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnVwZGF0ZU1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmg6CisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6IFBhc3MgdGhlICJpcyBwcm9ncmFtbWF0aWMgc2Nyb2xs
IiBiaXQgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pOiBSZXNldCB0aGUg
ImlzIHByb2dyYW1tYXRpYyBzY3JvbGwiIGJpdCBvbiB0aGUgRnJhbWVWaWV3LgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChTY3JvbGxp
bmdDb29yZGluYXRvcik6CisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6IE9ubHkgY2FsbCBF
dmVudEhhbmRsZXI6OnNlbmRTY3JvbGxFdmVudCBmb3IgdXNlciBzY3JvbGxzLgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgIChGcmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjppblByb2dyYW1tYXRpY1Njcm9sbCk6IEV4cG9zZSBzZXR0ZXIvZ2V0dGVy
cyBmb3IgdGhlIHByb2dyYW1tYXRpYyBzY3JvbGwgZmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwpOgorCiAyMDEyLTA5LTI1ICBKb3NodWEg
QmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBPbmUgdHJh
bnNhY3Rpb24gY29vcmRpbmF0b3IgcGVyIGRhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKaW5kZXggMjkyNTgyMy4uOTkxMzE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMTgxNiw3ICsxODE2LDkgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZFZpYVBsYXRmb3JtV2lkZ2V0KCkKIAogdm9pZCBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hh
bmdlZCgpCiB7Ci0gICAgZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRTY3JvbGxFdmVudCgp
OworICAgIGlmICghbV9pblByb2dyYW1tYXRpY1Njcm9sbCkKKyAgICAgICAgZnJhbWUoKS0+ZXZl
bnRIYW5kbGVyKCktPnNlbmRTY3JvbGxFdmVudCgpOworICAgIAogICAgIGZyYW1lKCktPmV2ZW50
SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb24oKTsKIAogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGNlZWE3
M2YuLmUxMGJkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzYwLDYgKzM2MCw5IEBA
IHB1YmxpYzoKICAgICAvLyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28uCiAgICAgY29uc3Qg
UGFnaW5hdGlvbiYgcGFnaW5hdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnaW5hdGlvbihj
b25zdCBQYWdpbmF0aW9uJik7CisgICAgCisgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCgp
IGNvbnN0IHsgcmV0dXJuIG1faW5Qcm9ncmFtbWF0aWNTY3JvbGw7IH0KKyAgICB2b2lkIHNldElu
UHJvZ3JhbW1hdGljU2Nyb2xsKGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsKSB7IG1faW5Qcm9ncmFt
bWF0aWNTY3JvbGwgPSBwcm9ncmFtbWF0aWNTY3JvbGw7IH0KIAogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcAppbmRleCBhNjAxOGJhLi40YTU1OGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC01
NSw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlKiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAg
LCBtX2ZvcmNlTWFpblRocmVhZFNjcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKGZhbHNlKQorICAg
ICwgbV91cGRhdGluZ0ZvclByb2dyYW1tYXRpY1Njcm9sbChmYWxzZSkKICNpZiBFTkFCTEUoVEhS
RUFERURfU0NST0xMSU5HKQogICAgICwgbV9zY3JvbGxpbmdUcmVlU3RhdGUoU2Nyb2xsaW5nVHJl
ZVN0YXRlOjpjcmVhdGUoKSkKICAgICAsIG1fc2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVlOjpj
cmVhdGUodGhpcykpCkBAIC0yNDksMTEgKzI1MCwxMiBAQCBib29sIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIGNv
bgogICAgIGlmIChmcmFtZVZpZXctPmZyYW1lKCktPmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkp
IHsKICAgICAgICAgLy8gSWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0
IGludG8gdGhlIHBhZ2UgY2FjaGUsIHdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgogICAgICAg
ICAvLyBtYWluIGZyYW1lIHNjcm9sbCBwb3NpdGlvbi4gSnVzdCBsZXQgdGhlIEZyYW1lVmlldyB0
aGluayB0aGF0IHdlIGRpZC4KLSAgICAgICAgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24pOworICAgICAgICB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihz
Y3JvbGxQb3NpdGlvbiwgZnJhbWVWaWV3LT5pblByb2dyYW1tYXRpY1Njcm9sbCgpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgbV9zY3JvbGxpbmdUcmVlU3RhdGUtPnNldFJl
cXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICBtX3Njcm9sbGluZ1Ry
ZWVTdGF0ZS0+c2V0SXNQcm9ncmFtbWF0aWNTY3JvbGwoZnJhbWVWaWV3LT5pblByb2dyYW1tYXRp
Y1Njcm9sbCgpKTsKICAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwogICAgIHJldHVybiB0
cnVlOwogI2Vsc2UKQEAgLTI3OCw3ICsyODAsNyBAQCBib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyosIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudAog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVN
YWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit2
b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihj
b25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTI4OSw5ICsyOTEsMTQgQEAgdm9p
ZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29u
c3QgSW50UG9pbnQmIHNjcm9sbFAKICAgICBpZiAoIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJu
OwogCisgICAgYm9vbCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwgPSBmcmFtZVZpZXctPmluUHJvZ3Jh
bW1hdGljU2Nyb2xsKCk7CisgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChw
cm9ncmFtbWF0aWNTY3JvbGwpOworCiAgICAgZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xs
aW5nVG9Db250ZW50RWRnZShmYWxzZSk7CiAgICAgZnJhbWVWaWV3LT5ub3RpZnlTY3JvbGxQb3Np
dGlvbkNoYW5nZWQoc2Nyb2xsUG9zaXRpb24pOwogICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWlu
c1Njcm9sbGluZ1RvQ29udGVudEVkZ2UodHJ1ZSk7CisKKyAgICBmcmFtZVZpZXctPnNldEluUHJv
Z3JhbW1hdGljU2Nyb2xsKG9sZFByb2dyYW1tYXRpY1Njcm9sbCk7CiB9CiAKIHZvaWQgU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnVwZGF0ZU1haW5GcmFtZVNjcm9sbExheWVyUG9zaXRpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKaW5kZXggMTEwZWQ5My4uYjliOTI5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTA2LDcgKzEwNiw3IEBA
IHB1YmxpYzoKICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3KiwgY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50Jik7CiAKICAgICAvLyBEaXNwYXRjaGVkIGJ5IHRoZSBzY3JvbGxpbmcg
dHJlZSB3aGVuZXZlciB0aGUgbWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlcy4KLSAg
ICB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7Cisg
ICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYsIGJv
b2wgcHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAogICAgIC8vIERpc3BhdGNoZWQgYnkgdGhlIHNjcm9s
bGluZyB0cmVlIHdoZW5ldmVyIHRoZSBtYWluIGZyYW1lIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2Vz
IGFuZCB0aGUgc2Nyb2xsIGxheWVyIHBvc2l0aW9uIG5lZWRzIHRvIGJlIHVwZGF0ZWQgYXMgd2Vs
bC4KICAgICB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uQW5kU2Nyb2xsTGF5ZXJQ
b3NpdGlvbigpOwpAQCAtMTcyLDYgKzE3Miw4IEBAIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdl
OwogCiAgICAgYm9vbCBtX2ZvcmNlTWFpblRocmVhZFNjcm9sbExheWVyUG9zaXRpb25VcGRhdGVz
OworICAgIAorICAgIGJvb2wgbV91cGRhdGluZ0ZvclByb2dyYW1tYXRpY1Njcm9sbDsKIAogI2lm
IEVOQUJMRShUSFJFQURFRF9TQ1JPTExJTkcpCiAgICAgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNv
bW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcAppbmRleCA2OTBlYzkyLi4zN2Q2MDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IlNjcm9sbGluZ1RyZWVOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVN0YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsNiArNTIsNyBAQCBTY3JvbGxpbmdU
cmVlOjpTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGlu
YXRvcikKICAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0KGZhbHNlKQogICAgICwgbV9t
YWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0KGZhbHNlKQogICAgICwgbV9zY3JvbGxpbmdQZXJmb3Jt
YW5jZUxvZ2dpbmdFbmFibGVkKGZhbHNlKQorICAgICwgbV9oYW5kbGluZ1Byb2dyYW1tYXRpY1Nj
cm9sbChmYWxzZSkKIHsKIH0KIApAQCAtMTMyLDYgKzEzNCw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZTo6Y29tbWl0TmV3VHJlZVN0YXRlKFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZVN0YXRlPiBzY3Jv
bGxpbmdUCiAgICAgICAgIGlmIChzY3JvbGxpbmdUcmVlU3RhdGUtPmNoYW5nZWRQcm9wZXJ0aWVz
KCkgJiBTY3JvbGxpbmdUcmVlU3RhdGU6Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKQogICAgICAg
ICAgICAgbV9ub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IHNjcm9sbGluZ1RyZWVTdGF0ZS0+bm9u
RmFzdFNjcm9sbGFibGVSZWdpb24oKTsKICAgICB9CisgICAgCisgICAgVGVtcG9yYXJ5Q2hhbmdl
PGJvb2w+IGNoYW5nZUhhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKG1faGFuZGxpbmdQcm9ncmFt
bWF0aWNTY3JvbGwsIHNjcm9sbGluZ1RyZWVTdGF0ZS0+aXNQcm9ncmFtbWF0aWNTY3JvbGwoKSk7
CiAKICAgICBtX3Jvb3ROb2RlLT51cGRhdGUoc2Nyb2xsaW5nVHJlZVN0YXRlLmdldCgpKTsKIApA
QCAtMTU2LDcgKzE2MCw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlTWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uCiAgICAgICAgIG1fbWFp
bkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICB9CiAKLSAgICBjYWxs
T25NYWluVGhyZWFkKGJpbmQoJlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbiwgbV9zY3JvbGxpbmdDb29yZGluYXRvci5nZXQoKSwgc2Nyb2xsUG9zaXRp
b24pKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp1
cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbiwgbV9zY3JvbGxpbmdDb29yZGluYXRvci5nZXQo
KSwgc2Nyb2xsUG9zaXRpb24sIG1faGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwpKTsKIH0KIAog
SW50UG9pbnQgU2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDQwNzA1YTAu
Ljk5YzY4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKQEAgLTEyMCw2ICsxMjAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tYWluRnJhbWVQ
aW5uZWRUb1RoZVJpZ2h0OwogCiAgICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2lu
Z0VuYWJsZWQ7CisgICAgCisgICAgYm9vbCBtX2hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsOwog
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2RlYnVnSW5mb0xh
eWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTdGF0ZS5jcHAKaW5kZXggMzE5Nzk2MS4uZWI1MzM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU3RhdGUuY3BwCkBAIC00Myw2ICs0
Myw3IEBAIFNjcm9sbGluZ1RyZWVTdGF0ZTo6U2Nyb2xsaW5nVHJlZVN0YXRlKCkKICAgICAsIG1f
dmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlOb25lKQogICAgICwgbV9o
YXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcihmYWxzZSkKICAgICAsIG1faGFzRW5hYmxlZFZl
cnRpY2FsU2Nyb2xsYmFyKGZhbHNlKQorICAgICwgbV9pc1Byb2dyYW1tYXRpY1Njcm9sbChmYWxz
ZSkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGUoU2Nyb2xsYmFyQXV0bykKICAgICAs
IG1fdmVydGljYWxTY3JvbGxiYXJNb2RlKFNjcm9sbGJhckF1dG8pCiB7CkBAIC0xNjYsNiArMTY3
LDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVN0YXRlOjpzZXRTY3JvbGxPcmlnaW4oY29uc3QgSW50
UG9pbnQmIHNjcm9sbE9yaWdpbikKICAgICBtX2NoYW5nZWRQcm9wZXJ0aWVzIHw9IFNjcm9sbE9y
aWdpbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlU3RhdGU6OnNldElzUHJvZ3JhbW1hdGljU2Ny
b2xsKGJvb2wgaXNQcm9ncmFtbWF0aWNTY3JvbGwpCit7CisgICAgaWYgKG1faXNQcm9ncmFtbWF0
aWNTY3JvbGwgPT0gaXNQcm9ncmFtbWF0aWNTY3JvbGwpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBtX2lzUHJvZ3JhbW1hdGljU2Nyb2xsID0gaXNQcm9ncmFtbWF0aWNTY3JvbGw7CisgICAg
bV9jaGFuZ2VkUHJvcGVydGllcyB8PSBJc1Byb2dyYW1tYXRpY1Njcm9sbDsKK30KKwogUGFzc093
blB0cjxTY3JvbGxpbmdUcmVlU3RhdGU+IFNjcm9sbGluZ1RyZWVTdGF0ZTo6Y29tbWl0KCkKIHsK
ICAgICBPd25QdHI8U2Nyb2xsaW5nVHJlZVN0YXRlPiB0cmVlU3RhdGUgPSBhZG9wdFB0cihuZXcg
U2Nyb2xsaW5nVHJlZVN0YXRlKCp0aGlzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0ZS5oCmluZGV4IDQwMDBjY2UuLjU3YWJiMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0
ZS5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgU2Nyb2xsT3JpZ2luID0gMSA8
PCAxMSwKICAgICAgICAgU2Nyb2xsTGF5ZXIgPSAxIDw8IDEyLAogICAgICAgICBSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbiA9IDEgPDwgMTMsCisgICAgICAgIElzUHJvZ3JhbW1hdGljU2Nyb2xsID0g
MSA8PCAxNAogICAgIH07CiAKICAgICBib29sIGhhc0NoYW5nZWRQcm9wZXJ0aWVzKCkgY29uc3Qg
eyByZXR1cm4gbV9jaGFuZ2VkUHJvcGVydGllczsgfQpAQCAtMTExLDYgKzExMiw5IEBAIHB1Ymxp
YzoKIAogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBt
X3Njcm9sbE9yaWdpbjsgfQogICAgIHZvaWQgc2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50
Jik7CisgICAgCisgICAgYm9vbCBpc1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNQcm9ncmFtbWF0aWNTY3JvbGw7IH0KKyAgICB2b2lkIHNldElzUHJvZ3JhbW1hdGljU2Ny
b2xsKGJvb2wpOwogCiAgICAgLy8gQ29waWVzIHRoZSBjdXJyZW50IHRyZWUgc3RhdGUgYW5kIGNs
ZWFycyB0aGUgY2hhbmdlZCBwcm9wZXJ0aWVzIG1hc2sgaW4gdGhlIG9yaWdpbmFsLgogICAgIFBh
c3NPd25QdHI8U2Nyb2xsaW5nVHJlZVN0YXRlPiBjb21taXQoKTsKQEAgLTEzNCw2ICsxMzgsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2hhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyOwog
ICAgIGJvb2wgbV9oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXI7CisgICAgYm9vbCBtX2lzUHJv
Z3JhbW1hdGljU2Nyb2xsOwogCiAgICAgU2Nyb2xsYmFyTW9kZSBtX2hvcml6b250YWxTY3JvbGxi
YXJNb2RlOwogICAgIFNjcm9sbGJhck1vZGUgbV92ZXJ0aWNhbFNjcm9sbGJhck1vZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165707</attachid>
            <date>2012-09-25 18:07:19 -0700</date>
            <delta_ts>2012-09-25 19:22:46 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>11098</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3YTk0Y2NiLi4yZjE0MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTItMDktMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIChUaHJlYWRlZCBzY3JvbGxpbmcpIFdlYktpdCBub3Qgc2Nyb2xsaW5nIHRvIHRoZSBjb3Jy
ZWN0IGxvY2F0aW9uIHVwb24gZ29pbmcgYmFjayBvbiBtYWNzdXJmZXIuY29tCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMjAzOTkxMz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzYxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEluIHRoZSBhc3luY2hyb25vdXMgbGFuZCBvZiB0aHJlYWRlZCBzY3JvbGxpbmcg
d2UgbG9zZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciBvciBub3QgYSBzY3JvbGwKKyAg
ICAgICAgaXMgcHJvZ3JhbW1hdGljLgorCisgICAgICAgIFRoaXMgY2F1c2VkIGFsbCBzY3JvbGxz
IHRvIGJlIHRyZWF0ZWQgYXMgdXNlciBzY3JvbGxzIGFuZCB0byBnZW5lcmF0ZWQgc2Nyb2xsIGV2
ZW50cy4KKworICAgICAgICBXZSBjYW4gZml4IHRoaXMgYnkgcGFzc2luZyB0aGUgcHJvZ3JhbW1h
dGljIGJpdCB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhbmQgcmUtYXBwbHlpbmcgaXQgYmFjayBp
biB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgVW5hYmxlIHRvIHRlc3QgdGhyZWFkZWQgc2Ny
b2xsaW5nIGF0IHRoaXMgdGltZS4KKworICAgICAgICBJbmNsdWRlIHRoZSAiSXMgcHJvZ3JhbW1h
dGljIHNjcm9sbCIgYml0IGluIHRoZSBzY3JvbGwgc3RhdGU6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTdGF0ZTo6U2Nyb2xsaW5nVHJlZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTdGF0ZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBBbHNvIHNldCB3aGV0
aGVyIG9yIG5vdCB0aGlzIHJlcHJlc2VudHMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0ZS5oOgorICAgICAgICAoU2Nyb2xs
aW5nVHJlZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTdGF0ZTo6cmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk6CisKKyAgICAgICAgUGFzcyB0aGF0IGJpdCBiYWNr
IHRvIHRoZSBTY3JvbGxpbmdDb29yZGluYXRvcjoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9s
bGluZ1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0TmV3VHJl
ZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnVwZGF0ZU1haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
Lmg6CisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBv
c2l0aW9uVXBkYXRlKTogUGFzcyB0aGUgImlzIHByb2dyYW1tYXRpYyBzY3JvbGwiIGJpdCB0byB0
aGUgc2Nyb2xsaW5nIHRocmVhZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbik6IFJlc2V0IHRoZSAiaXMgcHJvZ3Jh
bW1hdGljIHNjcm9sbCIgYml0IG9uIHRoZSBGcmFtZVZpZXcuCisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFNjcm9sbGluZ0Nvb3JkaW5h
dG9yKToKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKTogT25seSBjYWxsIEV2ZW50SGFuZGxl
cjo6c2VuZFNjcm9sbEV2ZW50IGZvciB1c2VyIHNjcm9sbHMuCisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmluUHJvZ3JhbW1hdGljU2Nyb2xsKTogRXhwb3NlIHNldHRlci9nZXR0ZXJzIGZvciB0aGUg
cHJvZ3JhbW1hdGljIHNjcm9sbCBmbGFnLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
ZXRJblByb2dyYW1tYXRpY1Njcm9sbCk6CisKIDIwMTItMDktMjUgIEpvc2h1YSBCZWxsICA8anNi
ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IE9uZSB0cmFuc2FjdGlvbiBj
b29yZGluYXRvciBwZXIgZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAy
OTI1ODIzLi45OTEzMTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xODE2LDcg
KzE4MTYsOSBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlhUGxhdGZv
cm1XaWRnZXQoKQogCiB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKIHsK
LSAgICBmcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2VuZFNjcm9sbEV2ZW50KCk7CisgICAgaWYg
KCFtX2luUHJvZ3JhbW1hdGljU2Nyb2xsKQorICAgICAgICBmcmFtZSgpLT5ldmVudEhhbmRsZXIo
KS0+c2VuZFNjcm9sbEV2ZW50KCk7CisgICAgCiAgICAgZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbigpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggY2VlYTczZi4uZTEwYmQy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0zNjAsNiArMzYwLDkgQEAgcHVibGljOgog
ICAgIC8vIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by4KICAgICBjb25zdCBQYWdpbmF0aW9u
JiBwYWdpbmF0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uKGNvbnN0IFBhZ2lu
YXRpb24mKTsKKyAgICAKKyAgICBib29sIGluUHJvZ3JhbW1hdGljU2Nyb2xsKCkgY29uc3QgeyBy
ZXR1cm4gbV9pblByb2dyYW1tYXRpY1Njcm9sbDsgfQorICAgIHZvaWQgc2V0SW5Qcm9ncmFtbWF0
aWNTY3JvbGwoYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwpIHsgbV9pblByb2dyYW1tYXRpY1Njcm9s
bCA9IHByb2dyYW1tYXRpY1Njcm9sbDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29s
IHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IGE2MDE4YmEuLmE3NmMxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTI0OSwxMSArMjQ5
LDExIEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShGcmFtZVZpZXcqIGZyYW1lVmlldywgY29uCiAgICAgaWYgKGZyYW1lVmlldy0+ZnJhbWUo
KS0+ZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSkgewogICAgICAgICAvLyBJZiB0aGlzIGZyYW1l
IHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUgcGFnZSBjYWNoZSwgd2UgZG9u
J3Qgd2FudCB0byB1cGRhdGUgb3VyCiAgICAgICAgIC8vIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0
aW9uLiBKdXN0IGxldCB0aGUgRnJhbWVWaWV3IHRoaW5rIHRoYXQgd2UgZGlkLgotICAgICAgICB1
cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgICAgIHVw
ZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZpZXctPmlu
UHJvZ3JhbW1hdGljU2Nyb2xsKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICBtX3Njcm9sbGluZ1RyZWVTdGF0ZS0+c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb24pOworICAgIG1fc2Nyb2xsaW5nVHJlZVN0YXRlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgZnJhbWVWaWV3LT5pblByb2dyYW1tYXRpY1Njcm9sbCgp
KTsKICAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwogICAgIHJldHVybiB0cnVlOwogI2Vs
c2UKQEAgLTI3OCw3ICsyNzgsNyBAQCBib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpoYW5kbGVX
aGVlbEV2ZW50KEZyYW1lVmlldyosIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudAogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTI4OSw5ICsyODksMTQgQEAgdm9pZCBTY3JvbGxp
bmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9p
bnQmIHNjcm9sbFAKICAgICBpZiAoIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwogCisgICAg
Ym9vbCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwgPSBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Ny
b2xsKCk7CisgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChwcm9ncmFtbWF0
aWNTY3JvbGwpOworCiAgICAgZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250
ZW50RWRnZShmYWxzZSk7CiAgICAgZnJhbWVWaWV3LT5ub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb24pOwogICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UodHJ1ZSk7CisKKyAgICBmcmFtZVZpZXctPnNldEluUHJvZ3JhbW1hdGlj
U2Nyb2xsKG9sZFByb2dyYW1tYXRpY1Njcm9sbCk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnVwZGF0ZU1haW5GcmFtZVNjcm9sbExheWVyUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXgg
MTEwZWQ5My4uZjExMmM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcqLCBjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKTsKIAogICAgIC8vIERpc3BhdGNoZWQgYnkgdGhlIHNjcm9sbGluZyB0cmVlIHdoZW5l
dmVyIHRoZSBtYWluIGZyYW1lIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VzLgotICAgIHZvaWQgdXBk
YXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lkIHVw
ZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiwgYm9vbCBwcm9ncmFt
bWF0aWNTY3JvbGwpOwogCiAgICAgLy8gRGlzcGF0Y2hlZCBieSB0aGUgc2Nyb2xsaW5nIHRyZWUg
d2hlbmV2ZXIgdGhlIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZXMgYW5kIHRoZSBz
Y3JvbGwgbGF5ZXIgcG9zaXRpb24gbmVlZHMgdG8gYmUgdXBkYXRlZCBhcyB3ZWxsLgogICAgIHZv
aWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25BbmRTY3JvbGxMYXllclBvc2l0aW9uKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmlu
ZGV4IDY5MGVjOTIuLjMwN2JiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xs
aW5nVHJlZU5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlU3RhdGUuaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw2ICs1Miw3IEBAIFNjcm9sbGluZ1RyZWU6OlNj
cm9sbGluZ1RyZWUoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQog
ICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQoZmFsc2UpCiAgICAgLCBtX21haW5GcmFt
ZVBpbm5lZFRvVGhlUmlnaHQoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9n
Z2luZ0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwo
ZmFsc2UpCiB7CiB9CiAKQEAgLTEzMiw2ICsxMzQsOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OmNv
bW1pdE5ld1RyZWVTdGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVTdGF0ZT4gc2Nyb2xsaW5n
VAogICAgICAgICBpZiAoc2Nyb2xsaW5nVHJlZVN0YXRlLT5jaGFuZ2VkUHJvcGVydGllcygpICYg
U2Nyb2xsaW5nVHJlZVN0YXRlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbikKICAgICAgICAgICAg
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSBzY3JvbGxpbmdUcmVlU3RhdGUtPm5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKCk7CiAgICAgfQorICAgIAorICAgIFRlbXBvcmFyeUNoYW5nZTxib29s
PiBjaGFuZ2VIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChtX2lzSGFuZGxpbmdQcm9ncmFtbWF0
aWNTY3JvbGwsIHNjcm9sbGluZ1RyZWVTdGF0ZS0+cmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9s
bCgpKTsKIAogICAgIG1fcm9vdE5vZGUtPnVwZGF0ZShzY3JvbGxpbmdUcmVlU3RhdGUuZ2V0KCkp
OwogCkBAIC0xNTYsNyArMTYwLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVNYWluRnJh
bWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24KICAgICAgICAg
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogICAgIH0KIAotICAg
IGNhbGxPbk1haW5UaHJlYWQoYmluZCgmU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZU1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uLCBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yLmdldCgpLCBzY3JvbGxQ
b3NpdGlvbikpOworICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uLCBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmdldCgpLCBzY3JvbGxQb3NpdGlvbiwgbV9pc0hhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKSk7
CiB9CiAKIEludFBvaW50IFNjcm9sbGluZ1RyZWU6Om1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCA0
MDcwNWEwLi42YmUyMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oCkBAIC0xMjAsNiArMTIwLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWFp
bkZyYW1lUGlubmVkVG9UaGVSaWdodDsKIAogICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5j
ZUxvZ2dpbmdFbmFibGVkOworICAgIAorICAgIGJvb2wgbV9pc0hhbmRsaW5nUHJvZ3JhbW1hdGlj
U2Nyb2xsOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2Rl
YnVnSW5mb0xheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTdGF0ZS5jcHAKaW5kZXggMzE5Nzk2MS4uN2UxZTQ4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU3RhdGUuY3BwCkBA
IC00Myw2ICs0Myw3IEBAIFNjcm9sbGluZ1RyZWVTdGF0ZTo6U2Nyb2xsaW5nVHJlZVN0YXRlKCkK
ICAgICAsIG1fdmVydGljYWxTY3JvbGxFbGFzdGljaXR5KFNjcm9sbEVsYXN0aWNpdHlOb25lKQog
ICAgICwgbV9oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcihmYWxzZSkKICAgICAsIG1faGFz
RW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKQorICAgICwgbV9yZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKGZhbHNlKQogICAgICwgbV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZShTY3Jv
bGxiYXJBdXRvKQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbGJhck1vZGUoU2Nyb2xsYmFyQXV0bykK
IHsKQEAgLTE1MSw5ICsxNTIsMTAgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU3RhdGU6OnNldFZlcnRp
Y2FsU2Nyb2xsYmFyTW9kZShTY3JvbGxiYXJNb2RlIHZlcnRpY2FsU2Nyb2xsYmEKICAgICBtX2No
YW5nZWRQcm9wZXJ0aWVzIHw9IFZlcnRpY2FsU2Nyb2xsYmFyTW9kZTsKIH0KIAotdm9pZCBTY3Jv
bGxpbmdUcmVlU3RhdGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50
JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsaW5nVHJlZVN0YXRlOjpzZXRS
ZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24sIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCkKIHsKICAgICBtX3JlcXVl
c3RlZFNjcm9sbFBvc2l0aW9uID0gcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CisgICAgbV9yZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsK
ICAgICBtX2NoYW5nZWRQcm9wZXJ0aWVzIHw9IFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0
ZS5oCmluZGV4IDQwMDBjY2UuLmFmZjM4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0ZS5oCkBAIC0xMDcsMTAgKzEwNywxMiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllcihjb25zdCBHcmFwaGljc0xheWVyKik7CiAK
ICAgICBjb25zdCBJbnRQb2ludCYgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3JlcXVlc3RlZFNjcm9sbFBvc2l0aW9uOyB9Ci0gICAgdm9pZCBzZXRSZXF1ZXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOworICAgIHZvaWQgc2V0UmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwpOwogCiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CiAgICAgdm9pZCBzZXRTY3JvbGxPcmlnaW4oY29uc3QgSW50
UG9pbnQmKTsKKyAgICAKKyAgICBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSBj
b25zdCB7IHJldHVybiBtX3JlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7IH0KIAogICAgIC8v
IENvcGllcyB0aGUgY3VycmVudCB0cmVlIHN0YXRlIGFuZCBjbGVhcnMgdGhlIGNoYW5nZWQgcHJv
cGVydGllcyBtYXNrIGluIHRoZSBvcmlnaW5hbC4KICAgICBQYXNzT3duUHRyPFNjcm9sbGluZ1Ry
ZWVTdGF0ZT4gY29tbWl0KCk7CkBAIC0xMzQsNiArMTM2LDcgQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV9oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcjsKICAgICBib29sIG1faGFzRW5hYmxl
ZFZlcnRpY2FsU2Nyb2xsYmFyOworICAgIGJvb2wgbV9yZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Ny
b2xsOwogCiAgICAgU2Nyb2xsYmFyTW9kZSBtX2hvcml6b250YWxTY3JvbGxiYXJNb2RlOwogICAg
IFNjcm9sbGJhck1vZGUgbV92ZXJ0aWNhbFNjcm9sbGJhck1vZGU7Cg==
</data>
<flag name="commit-queue"
          id="177847"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165718</attachid>
            <date>2012-09-25 19:22:46 -0700</date>
            <delta_ts>2012-09-26 08:43:49 -0700</delta_ts>
            <desc>Patch v3 - Now with more scroll events</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10395</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3YTk0Y2NiLi43NzdjM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUg
QEAKKzIwMTItMDktMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIChUaHJlYWRlZCBzY3JvbGxpbmcpIFdlYktpdCBub3Qgc2Nyb2xsaW5nIHRvIHRoZSBjb3Jy
ZWN0IGxvY2F0aW9uIHVwb24gZ29pbmcgYmFjayBvbiBtYWNzdXJmZXIuY29tCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMjAzOTkxMz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzYxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEluIHRoZSBhc3luY2hyb25vdXMgbGFuZCBvZiB0aHJlYWRlZCBzY3JvbGxpbmcg
d2UgbG9zZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciBvciBub3QgYSBzY3JvbGwKKyAg
ICAgICAgaXMgcHJvZ3JhbW1hdGljLgorCisgICAgICAgIFRoaXMgY2F1c2VkIGFsbCBzY3JvbGxz
IHRvIGJlIHRyZWF0ZWQgYXMgdXNlciBzY3JvbGxzIGFuZCB0byBnZW5lcmF0ZWQgc2Nyb2xsIGV2
ZW50cy4KKworICAgICAgICBXZSBjYW4gZml4IHRoaXMgYnkgcGFzc2luZyB0aGUgcHJvZ3JhbW1h
dGljIGJpdCB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhbmQgcmUtYXBwbHlpbmcgaXQgYmFjayBp
biB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgVW5hYmxlIHRvIHRlc3QgdGhyZWFkZWQgc2Ny
b2xsaW5nIGF0IHRoaXMgdGltZS4KKworICAgICAgICBJbmNsdWRlIHRoZSAiSXMgcHJvZ3JhbW1h
dGljIHNjcm9sbCIgYml0IGluIHRoZSBzY3JvbGwgc3RhdGU6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTdGF0ZTo6U2Nyb2xsaW5nVHJlZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTdGF0ZTo6c2V0UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOiBBbHNvIHNldCB3aGV0
aGVyIG9yIG5vdCB0aGlzIHJlcHJlc2VudHMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0ZS5oOgorICAgICAgICAoU2Nyb2xs
aW5nVHJlZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTdGF0ZTo6cmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk6CisKKyAgICAgICAgUGFzcyB0aGF0IGJpdCBiYWNr
IHRvIHRoZSBTY3JvbGxpbmdDb29yZGluYXRvcjoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9s
bGluZ1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0TmV3VHJl
ZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnVwZGF0ZU1haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
Lmg6CisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBv
c2l0aW9uVXBkYXRlKTogUGFzcyB0aGUgImlzIHByb2dyYW1tYXRpYyBzY3JvbGwiIGJpdCB0byB0
aGUgc2Nyb2xsaW5nIHRocmVhZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbik6IFJlc2V0IHRoZSAiaXMgcHJvZ3Jh
bW1hdGljIHNjcm9sbCIgYml0IG9uIHRoZSBGcmFtZVZpZXcuCisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFNjcm9sbGluZ0Nvb3JkaW5h
dG9yKToKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgIChGcmFtZVZpZXcp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjppblByb2dyYW1tYXRpY1Njcm9sbCk6IEV4
cG9zZSBzZXR0ZXIvZ2V0dGVycyBmb3IgdGhlIHByb2dyYW1tYXRpYyBzY3JvbGwgZmxhZy4KKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwpOgorCiAy
MDEyLTA5LTI1ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
SW5kZXhlZERCOiBPbmUgdHJhbnNhY3Rpb24gY29vcmRpbmF0b3IgcGVyIGRhdGFiYXNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAppbmRleCBjZWVhNzNmLi5lMTBiZDIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTM2MCw2ICszNjAsOSBAQCBwdWJsaWM6CiAgICAgLy8gZGlzdGluZ3Vpc2gg
YmV0d2VlbiB0aGUgdHdvLgogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24oKSBjb25z
dDsKICAgICB2b2lkIHNldFBhZ2luYXRpb24oY29uc3QgUGFnaW5hdGlvbiYpOworICAgIAorICAg
IGJvb2wgaW5Qcm9ncmFtbWF0aWNTY3JvbGwoKSBjb25zdCB7IHJldHVybiBtX2luUHJvZ3JhbW1h
dGljU2Nyb2xsOyB9CisgICAgdm9pZCBzZXRJblByb2dyYW1tYXRpY1Njcm9sbChib29sIHByb2dy
YW1tYXRpY1Njcm9sbCkgeyBtX2luUHJvZ3JhbW1hdGljU2Nyb2xsID0gcHJvZ3JhbW1hdGljU2Ny
b2xsOyB9CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0
UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Ny
b2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggYTYwMThiYS4u
YTc2YzExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ5LDExICsyNDksMTEgQEAgYm9vbCBTY3JvbGxp
bmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKEZyYW1lVmlldyogZnJh
bWVWaWV3LCBjb24KICAgICBpZiAoZnJhbWVWaWV3LT5mcmFtZSgpLT5kb2N1bWVudCgpLT5pblBh
Z2VDYWNoZSgpKSB7CiAgICAgICAgIC8vIElmIHRoaXMgZnJhbWUgdmlldydzIGRvY3VtZW50IGlz
IGJlaW5nIHB1dCBpbnRvIHRoZSBwYWdlIGNhY2hlLCB3ZSBkb24ndCB3YW50IHRvIHVwZGF0ZSBv
dXIKICAgICAgICAgLy8gbWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24uIEp1c3QgbGV0IHRoZSBG
cmFtZVZpZXcgdGhpbmsgdGhhdCB3ZSBkaWQuCi0gICAgICAgIHVwZGF0ZU1haW5GcmFtZVNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgdXBkYXRlTWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGZyYW1lVmlldy0+aW5Qcm9ncmFtbWF0aWNTY3JvbGwo
KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIG1fc2Nyb2xsaW5nVHJlZVN0
YXRlLT5zZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgbV9z
Y3JvbGxpbmdUcmVlU3RhdGUtPnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0
aW9uLCBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xsKCkpOwogICAgIHNjaGVkdWxlVHJl
ZVN0YXRlQ29tbWl0KCk7CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpAQCAtMjc4LDcgKzI3OCw3
IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3
KiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0
IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVw
ZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIApAQCAtMjg5LDkgKzI4OSwxNCBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRh
dGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUAogICAgIGlm
ICghZnJhbWVWaWV3KQogICAgICAgICByZXR1cm47CiAKKyAgICBib29sIG9sZFByb2dyYW1tYXRp
Y1Njcm9sbCA9IGZyYW1lVmlldy0+aW5Qcm9ncmFtbWF0aWNTY3JvbGwoKTsKKyAgICBmcmFtZVZp
ZXctPnNldEluUHJvZ3JhbW1hdGljU2Nyb2xsKHByb2dyYW1tYXRpY1Njcm9sbCk7CisKICAgICBm
cmFtZVZpZXctPnNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGZhbHNlKTsKICAg
ICBmcmFtZVZpZXctPm5vdGlmeVNjcm9sbFBvc2l0aW9uQ2hhbmdlZChzY3JvbGxQb3NpdGlvbik7
CiAgICAgZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSh0cnVl
KTsKKworICAgIGZyYW1lVmlldy0+c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwob2xkUHJvZ3JhbW1h
dGljU2Nyb2xsKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZy
YW1lU2Nyb2xsTGF5ZXJQb3NpdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAxMTBlZDkzLi5mMTEyYzY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVXaGVl
bEV2ZW50KEZyYW1lVmlldyosIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAgICAgLy8g
RGlzcGF0Y2hlZCBieSB0aGUgc2Nyb2xsaW5nIHRyZWUgd2hlbmV2ZXIgdGhlIG1haW4gZnJhbWUg
c2Nyb2xsIHBvc2l0aW9uIGNoYW5nZXMuCi0gICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQ
b3NpdGlvbihjb25zdCBJbnRQb2ludCYpOworICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24oY29uc3QgSW50UG9pbnQmLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCk7CiAKICAg
ICAvLyBEaXNwYXRjaGVkIGJ5IHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVuZXZlciB0aGUgbWFpbiBm
cmFtZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlcyBhbmQgdGhlIHNjcm9sbCBsYXllciBwb3NpdGlv
biBuZWVkcyB0byBiZSB1cGRhdGVkIGFzIHdlbGwuCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbkFuZFNjcm9sbExheWVyUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNjkwZWM5Mi4uMzA3YmJi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlTm9kZS5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGluZ1RyZWVTdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CisjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTUxLDYgKzUyLDcgQEAgU2Nyb2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJlZShTY3JvbGxp
bmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgLCBtX21haW5GcmFtZVBp
bm5lZFRvVGhlTGVmdChmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVSaWdodChm
YWxzZSkKICAgICAsIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkK
KyAgICAsIG1faXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChmYWxzZSkKIHsKIH0KIApAQCAt
MTMyLDYgKzEzNCw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6Y29tbWl0TmV3VHJlZVN0YXRlKFBh
c3NPd25QdHI8U2Nyb2xsaW5nVHJlZVN0YXRlPiBzY3JvbGxpbmdUCiAgICAgICAgIGlmIChzY3Jv
bGxpbmdUcmVlU3RhdGUtPmNoYW5nZWRQcm9wZXJ0aWVzKCkgJiBTY3JvbGxpbmdUcmVlU3RhdGU6
Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgbV9ub25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbiA9IHNjcm9sbGluZ1RyZWVTdGF0ZS0+bm9uRmFzdFNjcm9sbGFibGVSZWdpb24oKTsK
ICAgICB9CisgICAgCisgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZUhhbmRsaW5nUHJv
Z3JhbW1hdGljU2Nyb2xsKG1faXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsaW5n
VHJlZVN0YXRlLT5yZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKCkpOwogCiAgICAgbV9yb290
Tm9kZS0+dXBkYXRlKHNjcm9sbGluZ1RyZWVTdGF0ZS5nZXQoKSk7CiAKQEAgLTE1Niw3ICsxNjAs
NyBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNv
bnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbgogICAgICAgICBtX21haW5GcmFtZVNjcm9sbFBv
c2l0aW9uID0gc2Nyb2xsUG9zaXRpb247CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChi
aW5kKCZTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24s
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IuZ2V0KCksIHNjcm9sbFBvc2l0aW9uKSk7CisgICAgY2Fs
bE9uTWFpblRocmVhZChiaW5kKCZTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1l
U2Nyb2xsUG9zaXRpb24sIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IuZ2V0KCksIHNjcm9sbFBvc2l0
aW9uLCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwpKTsKIH0KIAogSW50UG9pbnQgU2Ny
b2xsaW5nVHJlZTo6bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDQwNzA1YTAuLjZiZTIzOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTEy
MCw2ICsxMjAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJp
Z2h0OwogCiAgICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7Cisg
ICAgCisgICAgYm9vbCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGw7CiAKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fZGVidWdJbmZvTGF5ZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU3RhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmNw
cAppbmRleCAzMTk3OTYxLi43ZTFlNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0ZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAgU2Ny
b2xsaW5nVHJlZVN0YXRlOjpTY3JvbGxpbmdUcmVlU3RhdGUoKQogICAgICwgbV92ZXJ0aWNhbFNj
cm9sbEVsYXN0aWNpdHkoU2Nyb2xsRWxhc3RpY2l0eU5vbmUpCiAgICAgLCBtX2hhc0VuYWJsZWRI
b3Jpem9udGFsU2Nyb2xsYmFyKGZhbHNlKQogICAgICwgbV9oYXNFbmFibGVkVmVydGljYWxTY3Jv
bGxiYXIoZmFsc2UpCisgICAgLCBtX3JlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoZmFsc2Up
CiAgICAgLCBtX2hvcml6b250YWxTY3JvbGxiYXJNb2RlKFNjcm9sbGJhckF1dG8pCiAgICAgLCBt
X3ZlcnRpY2FsU2Nyb2xsYmFyTW9kZShTY3JvbGxiYXJBdXRvKQogewpAQCAtMTUxLDkgKzE1Miwx
MCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTdGF0ZTo6c2V0VmVydGljYWxTY3JvbGxiYXJNb2RlKFNj
cm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYQogICAgIG1fY2hhbmdlZFByb3BlcnRpZXMgfD0g
VmVydGljYWxTY3JvbGxiYXJNb2RlOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTdGF0ZTo6c2V0
UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKQordm9pZCBTY3JvbGxpbmdUcmVlU3RhdGU6OnNldFJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCByZXByZXNl
bnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQogewogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24g
PSByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbjsKKyAgICBtX3JlcHJlc2VudHNQcm9ncmFtbWF0aWNT
Y3JvbGwgPSByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsOwogICAgIG1fY2hhbmdlZFByb3Bl
cnRpZXMgfD0gUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVN0YXRlLmgKaW5kZXggNDAwMGNjZS4u
YWZmMzg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVN0YXRlLmgKQEAgLTEwNywxMCArMTA3LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFNjcm9sbExheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKTsKIAogICAgIGNvbnN0IEludFBvaW50
JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkU2Ny
b2xsUG9zaXRpb247IH0KLSAgICB2b2lkIHNldFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0
IEludFBvaW50Jik7CisgICAgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBJ
bnRQb2ludCYsIGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKICAgICBjb25z
dCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxPcmlnaW47
IH0KICAgICB2b2lkIHNldFNjcm9sbE9yaWdpbihjb25zdCBJbnRQb2ludCYpOworICAgIAorICAg
IGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsgfQogCiAgICAgLy8gQ29waWVzIHRoZSBjdXJyZW50
IHRyZWUgc3RhdGUgYW5kIGNsZWFycyB0aGUgY2hhbmdlZCBwcm9wZXJ0aWVzIG1hc2sgaW4gdGhl
IG9yaWdpbmFsLgogICAgIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZVN0YXRlPiBjb21taXQoKTsK
QEAgLTEzNCw2ICsxMzYsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2hhc0VuYWJsZWRIb3Jp
em9udGFsU2Nyb2xsYmFyOwogICAgIGJvb2wgbV9oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXI7
CisgICAgYm9vbCBtX3JlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7CiAKICAgICBTY3JvbGxi
YXJNb2RlIG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGU7CiAgICAgU2Nyb2xsYmFyTW9kZSBtX3Zl
cnRpY2FsU2Nyb2xsYmFyTW9kZTsK
</data>
<flag name="review"
          id="177850"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>