<?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>56011</bug_id>
          
          <creation_ts>2011-03-09 05:55:57 -0800</creation_ts>
          <short_desc>Tiled backing store&apos;s delegated scroll request uses incorrect convention</short_desc>
          <delta_ts>2011-03-10 06:53:05 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kenneth</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>364453</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 05:55:57 -0800</bug_when>
    <thetext>While poking at the tiled backing store code I noticed that delegated scroll requests use a delta, but the only place that initiates these requests receives an absolute-relative-to-content point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364457</commentid>
    <comment_count>1</comment_count>
      <attachid>85167</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 06:02:36 -0800</bug_when>
    <thetext>Created attachment 85167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364459</commentid>
    <comment_count>2</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 06:04:23 -0800</bug_when>
    <thetext>Watcha think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364465</commentid>
    <comment_count>3</comment_count>
      <attachid>85167</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-09 06:28:15 -0800</bug_when>
    <thetext>Comment on attachment 85167
Patch

It is an offset, IntSize is normally used for that. We are not scrolling to a point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364467</commentid>
    <comment_count>4</comment_count>
      <attachid>85167</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-09 06:32:34 -0800</bug_when>
    <thetext>Comment on attachment 85167
Patch

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

&gt; Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp:435
&gt; +    QPoint currentPosition(m_webPage-&gt;mainFrame()-&gt;scrollPosition());

Where was this done before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364471</commentid>
    <comment_count>5</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-09 06:41:50 -0800</bug_when>
    <thetext>Attachment 85167 did not build on qt:
Build output: http://queues.webkit.org/results/8116478</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364475</commentid>
    <comment_count>6</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 06:49:43 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 85167 [details])
&gt; It is an offset, IntSize is normally used for that. We are not scrolling to a point.

If that&apos;s the case, should ScrollView::setScrollPoint be renamed/changed, or should we convert its point to an offset before calling the delegatedScrollRequested method?

(In reply to comment #4)
&gt; (From update of attachment 85167 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85167&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp:435
&gt; &gt; +    QPoint currentPosition(m_webPage-&gt;mainFrame()-&gt;scrollPosition());
&gt; 
&gt; Where was this done before?

I&apos;m not sure I understand the question, sorry =(. The conversion of the point received by setScrollPoint into an offset is not done anywhere that I could find right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364486</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-09 07:15:08 -0800</bug_when>
    <thetext>I think that you are right, it is a scrollToPosition(). I just checked our code.

But then I do not understand why you have to make that change to the Qt code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364487</commentid>
    <comment_count>8</comment_count>
      <attachid>85167</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-09 07:15:45 -0800</bug_when>
    <thetext>Comment on attachment 85167
Patch

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

&gt; Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp:436
&gt; -    emit m_webPage-&gt;scrollRequested(delta.width(), delta.height(), QRect(QPoint(0, 0), m_webPage-&gt;viewportSize()));
&gt; +    QPoint currentPosition(m_webPage-&gt;mainFrame()-&gt;scrollPosition());
&gt; +    emit m_webPage-&gt;scrollRequested(point.x() - currentPosition.x(), point.y() - currentPosition.y(), QRect(QPoint(0, 0), m_webPage-&gt;viewportSize()));

This change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364569</commentid>
    <comment_count>9</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 10:20:15 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 85167 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85167&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp:436
&gt; &gt; -    emit m_webPage-&gt;scrollRequested(delta.width(), delta.height(), QRect(QPoint(0, 0), m_webPage-&gt;viewportSize()));
&gt; &gt; +    QPoint currentPosition(m_webPage-&gt;mainFrame()-&gt;scrollPosition());
&gt; &gt; +    emit m_webPage-&gt;scrollRequested(point.x() - currentPosition.x(), point.y() - currentPosition.y(), QRect(QPoint(0, 0), m_webPage-&gt;viewportSize()));
&gt; 
&gt; This change

Because of this:

http://trac.webkit.org/browser/trunk/Source/WebKit/qt/Api/qwebpage.cpp
4099	    \fn void QWebPage::scrollRequested(int dx, int dy, const QRect&amp; rectToScroll)
4100	
4101	    This signal is emitted whenever the content given by \a rectToScroll needs
4102	    to be scrolled \a dx and \a dy downwards and no view was set.

The docs imply to me that QWebPage::scrollRequested wants a delta, so I convert the point to the delta to match the expectations. I&apos;m not sure about how the API is used today so perhaps it&apos;s the docs that need to be changed to say it&apos;s given a point =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364578</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-09 10:30:25 -0800</bug_when>
    <thetext>
&gt; 
&gt; Because of this:
&gt; 
&gt; http://trac.webkit.org/browser/trunk/Source/WebKit/qt/Api/qwebpage.cpp
&gt; 4099        \fn void QWebPage::scrollRequested(int dx, int dy, const QRect&amp; rectToScroll)
&gt; 4100    
&gt; 4101        This signal is emitted whenever the content given by \a rectToScroll needs
&gt; 4102        to be scrolled \a dx and \a dy downwards and no view was set.
&gt; 
&gt; The docs imply to me that QWebPage::scrollRequested wants a delta, so I convert the point to the delta to match the expectations. I&apos;m not sure about how the API is used today so perhaps it&apos;s the docs that need to be changed to say it&apos;s given a point =).

Ah this is for the WebKit1 port. Then that seems fine. I think we should rename this method for WebKit2 to scrollPositionRequested and use absolute values, otherwise we will have to convert twice for no sake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364585</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-09 10:33:16 -0800</bug_when>
    <thetext>r+ given this compiles on Qt that is :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364718</commentid>
    <comment_count>12</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 12:56:12 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; r+ given this compiles on Qt that is :-)

Thanks =) about that... 

../../../Source/WebKit2/WebProcess/WebPage/WebPage.cpp:794: error: no matching function for call to ‘Messages::WebPageProxy::PageDidRequestScroll::PageDidRequestScroll(const WebCore::IntPoint&amp;)’
generated/WebPageProxyMessages.h:532: note: candidates are: Messages::WebPageProxy::PageDidRequestScroll::PageDidRequestScroll(const WebCore::IntSize&amp;)

That seems to be caused by a file that should have been regenerated not being regenerated =( any clues on how to fix that? I tried a local build of qtwebkit but it failed for a different, unrelated reason, still looking at it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364728</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-09 13:11:16 -0800</bug_when>
    <thetext>You need to modify the WebPageProxy.messages.in file, or what it is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364770</commentid>
    <comment_count>14</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 14:18:52 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; You need to modify the WebPageProxy.messages.in file, or what it is called.

Awesome, thanks =) I&apos;ll upload the new patch to get the ews to test it again, but it built fine locally!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364773</commentid>
    <comment_count>15</comment_count>
      <attachid>85233</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-09 14:19:28 -0800</bug_when>
    <thetext>Created attachment 85233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365139</commentid>
    <comment_count>16</comment_count>
      <attachid>85233</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-10 06:52:57 -0800</bug_when>
    <thetext>Comment on attachment 85233
Patch

Clearing flags on attachment: 85233

Committed r80716: &lt;http://trac.webkit.org/changeset/80716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365140</commentid>
    <comment_count>17</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-03-10 06:53:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85167</attachid>
            <date>2011-03-09 06:02:36 -0800</date>
            <delta_ts>2011-03-09 14:19:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56011-20110309110234.patch</filename>
            <type>text/plain</type>
            <size>15697</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA2MzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMzAzZWY5MTdiYzQzOWUz
NDE2OTRmZDIxY2ZmYzViYzE0MjM2MTBiLi4yYzQ2NzAyZGQ2MzNkNjQ3M2I5ZWFiYTY5ZjM3NWM3
MWY3OTljOTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMDkgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGlsZWQgYmFja2lu
ZyBzdG9yZSdzIGRlbGVnYXRlZCBzY3JvbGwgcmVxdWVzdCB1c2VzIGluY29ycmVjdCBjb252ZW50
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjAx
MQorCisgICAgICAgIFVzZSBhIHBvaW50IGluc3RlYWQgb2YgZGVsdGEsIHdoZW4gcmVsYXlpbmcg
dGhlIHNjcm9sbCByZXF1ZXN0IGZyb20KKyAgICAgICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKToKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRlbGVnYXRl
ZFNjcm9sbFJlcXVlc3RlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKToKKwogMjAxMS0wMy0wOCAgSGFucyBXZW5uYm9yZyAg
PGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA2OTM1YzM3NDQ5Yzc4OTI4YTdk
YzQyMDlkOWQ1MDc4ZDEyNjE0ZTBkLi5lZDkyZjExMmNiYTg3N2ZkNTJjMzQ2NDA3ZjViNGZmZTI2
MTIwZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xNjEsNyArMTYx
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKSB7fTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
KGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpIHsgfQogI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRT
Y3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWxl
Z2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSB7IH0KICNlbmRpZgogI2lmIEVO
QUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVB
bmltYXRpb24oKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCAyNmVhMzNiYjlkOTlhMDAw
YjRkNDU5ZWM0YmNiZDZhODY4ZjUzYmM0Li41ODgxZDVlYTQ1ODcxODUwZmZhYWQzMzE0MzE0Nzdj
NTA3OGNhZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC04OCw5ICs4OCw5IEBAIHZvaWQg
Q2hyb21lOjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3Qm
IHJlY3RUb1Njcm9sbCwgY29uCiB9CiAKICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
LXZvaWQgQ2hyb21lOjpkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEpCit2b2lkIENocm9tZTo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IElu
dFBvaW50JiBzY3JvbGxQb2ludCkKIHsKLSAgICBtX2NsaWVudC0+ZGVsZWdhdGVkU2Nyb2xsUmVx
dWVzdGVkKHNjcm9sbERlbHRhKTsKKyAgICBtX2NsaWVudC0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVz
dGVkKHNjcm9sbFBvaW50KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA0ZDE2
MjE0OWU5NDBhY2Y4ZDljYTgxMTE2YjgxNzZkOTcwMzczMmUyLi45OTg0YTdjYjk4MWViMTQ2ZGYw
YzhmNjUwYWI1N2FjMjNiMGRhNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTcxLDcgKzcxLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRS
ZWN0Jik7CiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEp
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IElu
dFBvaW50JiBzY3JvbGxQb2ludCk7CiAjZW5kaWYKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBz
Y3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIElu
dFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggNjYzYWU4MjkyMmU2OGQzMjlmZGYzOGE3NjA5OGU0Y2FiYTE4
Yzg2Zi4uMzNiOGY3YWY4ZDhlOTI3OGQ5ZWRiM2NhNzJjYTAwODdlYzg4MmUyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xNDMsNyArMTQzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bChjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
KGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpID0gMDsKICNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICAgICAgdmlydHVhbCB2b2lkIGRlbGVn
YXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRTaXplJikgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgPSAwOwogI2Vu
ZGlmCiAgICAgICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9p
bnQmKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihj
b25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5o
CmluZGV4IDBkMTkzNTY2OWRmMzIzNTAzM2UyODgxZGUyN2I5YTdjZjVmNmE3MTEuLjMxNmYwNDNk
OWEyODM3YmM3YTBkNjEzZDZhZjU5ODkxNGI2NGUzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9I
b3N0V2luZG93LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgdG8gZG8gdGhlIGFjdHVh
bCBzY3JvbGxpbmcuIFRoaXMgaXMgb25seSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYSB0aWxl
ZCBiYWNraW5nIHN0b3JlLgotICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0
ZWQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVs
ZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkgPSAwOwog
I2VuZGlmCiAKICAgICAvLyBNZXRob2RzIGZvciBkb2luZyBjb29yZGluYXRlIGNvbnZlcnNpb25z
IHRvIGFuZCBmcm9tIHNjcmVlbiBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKaW5kZXggOTZkNzI5ZmRhNDBkMGYyMzgwNzRhN2U3ZTBjNmMxNGJjZjI1Yzdi
OS4uZTA4NWRkZmM0ZTFhOTViYjdiMDg2OGQ3YmM1M2FkZTJiNjRlZDZjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTM3OCw3ICszNzgsNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkKIAog
I2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChkZWxlZ2F0ZXNTY3JvbGxp
bmcoKSkgewotICAgICAgICBob3N0V2luZG93KCktPmRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChJ
bnRTaXplKHNjcm9sbFBvaW50LngoKSwgc2Nyb2xsUG9pbnQueSgpKSk7CisgICAgICAgIGhvc3RX
aW5kb3coKS0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKHNjcm9sbFBvaW50KSk7CiAgICAgICAg
IGlmICghbV9hY3R1YWxWaXNpYmxlQ29udGVudFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAg
bV9hY3R1YWxWaXNpYmxlQ29udGVudFJlY3Quc2V0TG9jYXRpb24oc2Nyb2xsUG9pbnQpOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGEyODgyNWM5MjU4NjI5MjU5ZmJjOWJjZmFk
NzQ0OGNmNThlMzNjODkuLmY1ZmVhMzcwMjE5YWQ0ZjYzYWM3MDQ5YmM5YzQ3YjMzMjcyZGQ4Mjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMDkgIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGlsZWQgYmFja2luZyBzdG9y
ZSdzIGRlbGVnYXRlZCBzY3JvbGwgcmVxdWVzdCB1c2VzIGluY29ycmVjdCBjb252ZW50aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjAxMQorCisg
ICAgICAgIEFkYXB0IGludGVybmFsIEFQSSB0byBtYXRjaCB0aGUgY2hhbmdlIGZyb20gZGVsdGEg
dG8gcG9pbnQgb24gdGhlCisgICAgICAgIFdlYkNvcmUgc2lkZSwgYW5kIGNvbnZlcnQgdGhlIHBv
aW50IHRvIGEgZGVsdGEgZm9yIHRoZSBwdWJsaWMgQVBJLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
UXQ6OmRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMS0wMy0wNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggYzc4
NDM3NTE2YTZmMDJlMjk0Zjc4MTRjNzU4MDc5MmUzMzlmMzIzMS4uYWNmYTY2NDRmYTBjMzI2MDY0
NDBlYmJjYWNjZWRkMjI4YjQ0MTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTQzMCw5ICs0MzAsMTAgQEAgdm9pZCBD
aHJvbWVDbGllbnRRdDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0
JiBzY3JvbGxWaWV3UmVjdCwKIH0KIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQot
dm9pZCBDaHJvbWVDbGllbnRRdDo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFNp
emUmIGRlbHRhKQordm9pZCBDaHJvbWVDbGllbnRRdDo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVk
KGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKLSAgICBlbWl0IG1fd2ViUGFnZS0+c2Nyb2xsUmVx
dWVzdGVkKGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdodCgpLCBRUmVjdChRUG9pbnQoMCwgMCks
IG1fd2ViUGFnZS0+dmlld3BvcnRTaXplKCkpKTsKKyAgICBRUG9pbnQgY3VycmVudFBvc2l0aW9u
KG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnNjcm9sbFBvc2l0aW9uKCkpOworICAgIGVtaXQgbV93
ZWJQYWdlLT5zY3JvbGxSZXF1ZXN0ZWQocG9pbnQueCgpIC0gY3VycmVudFBvc2l0aW9uLngoKSwg
cG9pbnQueSgpIC0gY3VycmVudFBvc2l0aW9uLnkoKSwgUVJlY3QoUVBvaW50KDAsIDApLCBtX3dl
YlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDI3MzI3ZWZiMDkzYzg5
MmQ5YzQ1YjQ2ZTNjM2FlODdhMWJkYjAwMDcuLmExMmMyZWNlNzVlMzQzMmEyZjI2YzEzOTYwMjNi
MzI1NDY3ZDIyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IEludFJlY3QmLCBib29sKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRT
aXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRS
ZWN0JiBjbGlwUmVjdCk7CiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVk
KGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCk7CiAjZW5kaWYKIAogICAgICAgICB2aXJ0dWFs
IEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNTUzZDUyNDc0YjkyMjY0ODBjNDNkZDQxNjBlOGZiZTdhMWY1NThlMi4uN2VlYjlmYjg2
NTczOGNkMjkyMmJkNzBiMjBmYjNmMTAxZWUzOTJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDExLTAzLTA5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFA
Y29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRpbGVkIGJhY2tpbmcgc3RvcmUncyBkZWxlZ2F0ZWQgc2Nyb2xsIHJlcXVlc3Qg
dXNlcyBpbmNvcnJlY3QgY29udmVudGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTYwMTEKKworICAgICAgICBBZGFwdCBhbGwgb2YgdGhlIGludGVy
bmFsIEFQSSB0byBtYXRjaCB0aGUgZGVsdGEgdG8gcG9pbnQKKyAgICAgICAgY29udmVyc2lvbiBh
dCB0aGUgV2ViQ29yZSBzaWRlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
LmNwcDoKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBhZ2VE
aWRSZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorCiAyMDExLTAzLTA5ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIEZpeCBHVEsrIGNvbXBpbGF0aW9uIGFmdGVyIHI4MDYxOS4gQWRkIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2twYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5j
cHAKaW5kZXggZWJhYjVkYmMxMDI1MjAxMjcyNjU2M2JmNTViZDI1MjlhNWFhY2YyYy4uNmEzMWRj
YjRhZjJkNGM3NjQzNzMxYjU3NzU0YWQ1MjYxZmRlNzYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCkBAIC0xOTQsOSArMTk0LDkgQEAgdm9pZCBRV0tQ
YWdlUHJpdmF0ZTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50LgogfQogCi12b2lkIFFXS1BhZ2VQcml2YXRlOjpwYWdlRGlkUmVxdWVzdFNj
cm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSkKK3ZvaWQgUVdLUGFnZVByaXZhdGU6OnBhZ2VEaWRS
ZXF1ZXN0U2Nyb2xsKGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKLSAgICBlbWl0IHEtPnNjcm9s
bFJlcXVlc3RlZChkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSk7CisgICAgZW1pdCBxLT5z
Y3JvbGxSZXF1ZXN0ZWQocG9pbnQueCgpLCBwb2ludC55KCkpOwogfQogCiB2b2lkIFFXS1BhZ2VQ
cml2YXRlOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCmluZGV4IDc5NTA2YTY1
OTAxNzE0ZWI1MWI3Y2I2Y2Q3MTMyNWRlMmMxMmQ3YzUuLjU2NmNkMDhjMjI2MWNmYTQ3YTAxYWU4
NWNkY2Y5Y2I4OWJjMmIwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdrcGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2twYWdlX3AuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKICNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgdmlydHVhbCB2b2lkIHBhZ2VE
aWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2
aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKCk7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VDbG9z
ZWQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAwZTNhNjFlYzJjNzI3ZGZkYTNhYzc3NjEw
OTk2MWUyMWE1NDBjOTYxLi4zOWQxMTE1MTJiNWEzMWZlMTQyMjA2ZWUwY2MxZjM5YzIxYTA5ZmUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTg2LDcgKzg2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKSA9IDA7CiAKICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKLSAg
ICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKSA9IDA7CiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBhMzll
N2FiNjM4YWQ4MGMyZWE1MjUxYzJjMzVmZjFhYjE4ZTY2YzYuLmY0OWY3NTI1ZTg3ZjY5MzhlMzcz
ZGJhYWUxZTU5YTJmZDJkNGQ0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0xOTI0LDkgKzE5MjQsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgZgog
fQogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi12b2lkIFdlYlBhZ2VQcm94eTo6
cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotICAg
IG1fcGFnZUNsaWVudC0+cGFnZURpZFJlcXVlc3RTY3JvbGwoZGVsdGEpOworICAgIG1fcGFnZUNs
aWVudC0+cGFnZURpZFJlcXVlc3RTY3JvbGwocG9pbnQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiMTY4OTg4YTNjNDk3ZTFjNzQwMDJl
Y2YyNzI2NGQ3YzUwYjg4OGFlLi43NzdmODQwMjZhYTVhNGY3NDFlMzQyN2NhMDViN2U4YWM4YWEy
MWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01NTcsNyAr
NTU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0o
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCi0gICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jik7CisgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCBhYzRkOWZlNGVjZTY1Y2FmOTRjNGUzMzVlMTE5MzFhMDU0NjRlZTUwLi45MjQyNmVmYzRm
YjMxZmQxYWNiZThmOTRkODNlZWVlYzEyMTNjM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJ
bnRTaXplJiBzY3JvbGxPZmZzZXQsIGNvbnN0IEludFJlY3QmIHNjcm9sbFIKIH0KIAogI2lmIEVO
QUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRlbGVnYXRl
ZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JiBzY3Jv
bGxPZmZzZXQpCiB7CiAgICAgbV9wYWdlLT5wYWdlRGlkUmVxdWVzdFNjcm9sbChzY3JvbGxPZmZz
ZXQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDNkNjM3Y2Y4ZWQ0MGE0N2EzZjExMzNk
N2RjN2IwNTYyNTgxZDk0ZC4uYzliMDRkNzliYWI1ZGNiYmQwZjkwZTgwNDJjYjc4YzIyNTVjN2Ri
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMTMsNyArMTEzLDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKICNpZiBFTkFCTEUoVElM
RURfQkFDS0lOR19TVE9SRSkKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVz
dGVkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCk7CisgICAgdmlydHVhbCB2
b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
b2xsT2Zmc2V0KTsKICNlbmRpZgogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVu
VG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIFdl
YkNvcmU6OkludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGNjOWI4Y2RjYWVmNGIyZWI1MDhlOGViZWVhYzZjMGEyZWE0MGE5ZDQuLjdmZGY2N2UyYzRh
MDVlNjMwOTc4N2E3MmM2NTlmYWY2MmZjMWY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc4OSw5ICs3ODksOSBAQCB2b2lkIFdlYlBh
Z2U6OnBhZ2VEaWRTY3JvbGwoKQogfQogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
Ci12b2lkIFdlYlBhZ2U6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IEludFNpemUmIGRlbHRh
KQordm9pZCBXZWJQYWdlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9p
bnQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlRGlkUmVxdWVzdFNj
cm9sbChkZWx0YSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZURpZFJl
cXVlc3RTY3JvbGwocG9pbnQpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxMTQ5N2VkODc1NGY1M2NmMTM5MWUyNGQ4MWQ0
MmU3MGU3Y2I0YzM3Li5hNTA0NGYwYmFhMjAwYTFlYzk1MGZlOGU0Y2EzYmVlMmQ0Mjk4MmNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI1Niw3
ICsyNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKICNpZiBFTkFC
TEUoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGRlbHRhKTsKKyAgICB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdm9pZCBzZXRBY3R1YWxWaXNpYmxl
Q29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogCiAgICAgYm9vbCByZXNpemVz
VG9Db250ZW50c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiAhbV9yZXNpemVzVG9Db250ZW50c0xh
eW91dFNpemUuaXNFbXB0eSgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85233</attachid>
            <date>2011-03-09 14:19:28 -0800</date>
            <delta_ts>2011-03-10 06:52:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56011-20110309191926.patch</filename>
            <type>text/plain</type>
            <size>16464</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA2MzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMzAzZWY5MTdiYzQzOWUz
NDE2OTRmZDIxY2ZmYzViYzE0MjM2MTBiLi4xMDNiNDViYWYzNThiYTU0ZTQ4ODFlMmEwNjU0ZWMy
MDExOThiN2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMDkgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAg
VGlsZWQgYmFja2luZyBzdG9yZSdzIGRlbGVnYXRlZCBzY3JvbGwgcmVxdWVzdCB1c2VzIGluY29y
cmVjdCBjb252ZW50aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NjAxMQorCisgICAgICAgIFVzZSBhIHBvaW50IGluc3RlYWQgb2YgZGVsdGEsIHdo
ZW4gcmVsYXlpbmcgdGhlIHNjcm9sbCByZXF1ZXN0IGZyb20KKyAgICAgICAgU2Nyb2xsVmlldzo6
c2V0U2Nyb2xsUG9zaXRpb24uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVz
dGVkKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWU6OmRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoK
KyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RX
aW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKToKKwogMjAxMS0wMy0wOCAgSGFu
cyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpl
cmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA2OTM1YzM3
NDQ5Yzc4OTI4YTdkYzQyMDlkOWQ1MDc4ZDEyNjE0ZTBkLi5lZDkyZjExMmNiYTg3N2ZkNTJjMzQ2
NDA3ZjViNGZmZTI2MTIwZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBA
IC0xNjEsNyArMTYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKSB7fTsKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVj
dCYpIHsgfQogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZpcnR1YWwgdm9p
ZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSB7IH0KICNl
bmRpZgogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVBbmltYXRpb24oKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCAyNmVh
MzNiYjlkOTlhMDAwYjRkNDU5ZWM0YmNiZDZhODY4ZjUzYmM0Li41ODgxZDVlYTQ1ODcxODUwZmZh
YWQzMzE0MzE0NzdjNTA3OGNhZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC04OCw5ICs4
OCw5IEBAIHZvaWQgQ2hyb21lOjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNv
bnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uCiB9CiAKICNpZiBFTkFCTEUoVElMRURfQkFD
S0lOR19TVE9SRSkKLXZvaWQgQ2hyb21lOjpkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsRGVsdGEpCit2b2lkIENocm9tZTo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVz
dGVkKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkKIHsKLSAgICBtX2NsaWVudC0+ZGVsZWdh
dGVkU2Nyb2xsUmVxdWVzdGVkKHNjcm9sbERlbHRhKTsKKyAgICBtX2NsaWVudC0+ZGVsZWdhdGVk
U2Nyb2xsUmVxdWVzdGVkKHNjcm9sbFBvaW50KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAppbmRleCA0ZDE2MjE0OWU5NDBhY2Y4ZDljYTgxMTE2YjgxNzZkOTcwMzczMmUyLi45OTg0YTdj
Yjk4MWViMTQ2ZGYwYzhmNjUwYWI1N2FjMjNiMGRhNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAg
LTcxLDcgKzcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3Qm
LCBjb25zdCBJbnRSZWN0Jik7CiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYg
c2Nyb2xsRGVsdGEpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVz
dGVkKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCk7CiAjZW5kaWYKICAgICAgICAgdmlydHVh
bCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNjYzYWU4MjkyMmU2OGQzMjlmZGYzOGE3
NjA5OGU0Y2FiYTE4Yzg2Zi4uMzNiOGY3YWY4ZDhlOTI3OGQ5ZWRiM2NhNzJjYTAwODdlYzg4MmUy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xNDMsNyArMTQzLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVj
dCYpID0gMDsKICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICAgICAgdmlydHVh
bCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRTaXplJikgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50
JikgPSAwOwogI2VuZGlmCiAgICAgICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3co
Y29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5k
b3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
SG9zdFdpbmRvdy5oCmluZGV4IDBkMTkzNTY2OWRmMzIzNTAzM2UyODgxZGUyN2I5YTdjZjVmNmE3
MTEuLjMxNmYwNDNkOWEyODM3YmM3YTBkNjEzZDZhZjU5ODkxNGI2NGUzYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgdG8g
ZG8gdGhlIGFjdHVhbCBzY3JvbGxpbmcuIFRoaXMgaXMgb25seSB1c2VkIGluIGNvbWJpbmF0aW9u
IHdpdGggYSB0aWxlZCBiYWNraW5nIHN0b3JlLgotICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRT
Y3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b2ludCkgPSAwOwogI2VuZGlmCiAKICAgICAvLyBNZXRob2RzIGZvciBkb2luZyBjb29yZGluYXRl
IGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHNjcmVlbiBjb29yZGluYXRlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggOTZkNzI5ZmRhNDBkMGYyMzgwNzRhN2U3ZTBj
NmMxNGJjZjI1YzdiOS4uMjM2NTM4ZjNmN2I3YjVhYTUwYzYwOTZkNjBhNzExOGJhY2U2MWJmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTM3OCw3ICszNzgsNyBA
QCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3Jv
bGxQb2ludCkKIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChkZWxl
Z2F0ZXNTY3JvbGxpbmcoKSkgewotICAgICAgICBob3N0V2luZG93KCktPmRlbGVnYXRlZFNjcm9s
bFJlcXVlc3RlZChJbnRTaXplKHNjcm9sbFBvaW50LngoKSwgc2Nyb2xsUG9pbnQueSgpKSk7Cisg
ICAgICAgIGhvc3RXaW5kb3coKS0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKHNjcm9sbFBvaW50
KTsKICAgICAgICAgaWYgKCFtX2FjdHVhbFZpc2libGVDb250ZW50UmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBtX2FjdHVhbFZpc2libGVDb250ZW50UmVjdC5zZXRMb2NhdGlvbihzY3JvbGxQ
b2ludCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYTI4ODI1YzkyNTg2Mjky
NTlmYmM5YmNmYWQ3NDQ4Y2Y1OGUzM2M4OS4uNmNhNzQ4NDM1Mjk0MTBkMTMwNmI4ZDA1ZTc1MzM2
MjJjZThiYTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0wOSAg
R3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4K
KworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAg
ICAgICBUaWxlZCBiYWNraW5nIHN0b3JlJ3MgZGVsZWdhdGVkIHNjcm9sbCByZXF1ZXN0IHVzZXMg
aW5jb3JyZWN0IGNvbnZlbnRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU2MDExCisKKyAgICAgICAgQWRhcHQgaW50ZXJuYWwgQVBJIHRvIG1hdGNo
IHRoZSBjaGFuZ2UgZnJvbSBkZWx0YSB0byBwb2ludCBvbiB0aGUKKyAgICAgICAgV2ViQ29yZSBz
aWRlLCBhbmQgY29udmVydCB0aGUgcG9pbnQgdG8gYSBkZWx0YSBmb3IgdGhlIHB1YmxpYyBBUEku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDExLTAzLTA3ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJz
IENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcAppbmRleCBjNzg0Mzc1MTZhNmYwMmUyOTRmNzgxNGM3NTgwNzkyZTMzOWYz
MjMxLi5hY2ZhNjY0NGZhMGMzMjYwNjQ0MGViYmNhY2NlZGQyMjhiNDQxOWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAt
NDMwLDkgKzQzMCwxMCBAQCB2b2lkIENocm9tZUNsaWVudFF0OjpzY3JvbGwoY29uc3QgSW50U2l6
ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LAogfQogCiAjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi12b2lkIENocm9tZUNsaWVudFF0OjpkZWxlZ2F0ZWRTY3Jv
bGxSZXF1ZXN0ZWQoY29uc3QgSW50U2l6ZSYgZGVsdGEpCit2b2lkIENocm9tZUNsaWVudFF0Ojpk
ZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotICAgIGVt
aXQgbV93ZWJQYWdlLT5zY3JvbGxSZXF1ZXN0ZWQoZGVsdGEud2lkdGgoKSwgZGVsdGEuaGVpZ2h0
KCksIFFSZWN0KFFQb2ludCgwLCAwKSwgbV93ZWJQYWdlLT52aWV3cG9ydFNpemUoKSkpOworICAg
IFFQb2ludCBjdXJyZW50UG9zaXRpb24obV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+c2Nyb2xsUG9z
aXRpb24oKSk7CisgICAgZW1pdCBtX3dlYlBhZ2UtPnNjcm9sbFJlcXVlc3RlZChwb2ludC54KCkg
LSBjdXJyZW50UG9zaXRpb24ueCgpLCBwb2ludC55KCkgLSBjdXJyZW50UG9zaXRpb24ueSgpLCBR
UmVjdChRUG9pbnQoMCwgMCksIG1fd2ViUGFnZS0+dmlld3BvcnRTaXplKCkpKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmgKaW5kZXggMjczMjdlZmIwOTNjODkyZDljNDViNDZlM2MzYWU4N2ExYmRiMDAwNy4uYTEyYzJl
Y2U3NWUzNDMyYTJmMjZjMTM5NjAyM2IzMjU0NjdkMjIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMTIwLDcgKzEyMCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiBy
ZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKICNpZiBFTkFCTEUoVElMRURf
QkFDS0lOR19TVE9SRSkKLSAgICAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVl
c3RlZChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvaW50KTsKICNl
bmRpZgogCiAgICAgICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50
UG9pbnQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1NTNkNTI0NzRiOTIyNjQ4MGM0M2RkNDE2MGU4
ZmJlN2ExZjU1OGUyLi40MTk2ZTg1YTY3MjBlNGY3MWQ2NTBmYTE0OThhMmEyY2ViNGY3NmY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDMtMDkgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgVGlsZWQgYmFja2lu
ZyBzdG9yZSdzIGRlbGVnYXRlZCBzY3JvbGwgcmVxdWVzdCB1c2VzIGluY29ycmVjdCBjb252ZW50
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjAx
MQorCisgICAgICAgIEFkYXB0IGFsbCBvZiB0aGUgaW50ZXJuYWwgQVBJIHRvIG1hdGNoIHRoZSBk
ZWx0YSB0byBwb2ludAorICAgICAgICBjb252ZXJzaW9uIGF0IHRoZSBXZWJDb3JlIHNpZGUuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFn
ZVByaXZhdGU6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2VfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cGFnZURpZFJlcXVlc3RTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkZWxlZ2F0ZWRTY3JvbGxSZXF1
ZXN0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxMS0wMy0wOSAgQWxlamFuZHJvIEcuIENh
c3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggR1RLKyBjb21waWxhdGlvbiBh
ZnRlciByODA2MTkuIEFkZCBXZWJGdWxsU2NyZWVuTWFuYWdlci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCmluZGV4IGViYWI1ZGJjMTAyNTIwMTI3MjY1NjNi
ZjU1YmQyNTI5YTVhYWNmMmMuLjZhMzFkY2I0YWYyZDRjNzY0MzczMWI1Nzc1NGFkNTI2MWZkZTc2
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcApAQCAt
MTk0LDkgKzE5NCw5IEBAIHZvaWQgUVdLUGFnZVByaXZhdGU6OmV4aXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSgpCiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KIAotdm9pZCBRV0tQYWdl
UHJpdmF0ZTo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEpCit2b2lk
IFFXS1BhZ2VQcml2YXRlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9p
bnQpCiB7Ci0gICAgZW1pdCBxLT5zY3JvbGxSZXF1ZXN0ZWQoZGVsdGEud2lkdGgoKSwgZGVsdGEu
aGVpZ2h0KCkpOworICAgIGVtaXQgcS0+c2Nyb2xsUmVxdWVzdGVkKHBvaW50LngoKSwgcG9pbnQu
eSgpKTsKIH0KIAogdm9pZCBRV0tQYWdlUHJpdmF0ZTo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNv
bnN0IEludFNpemUmIG5ld1NpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3a3BhZ2VfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2twYWdlX3AuaAppbmRleCA3OTUwNmE2NTkwMTcxNGViNTFiN2NiNmNkNzEzMjVkZTJjMTJkN2M1
Li41NjZjZDA4YzIyNjFjZmE0N2EwMWFlODVjZGNmOWNiODliYzJiMDY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCk7CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJik7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWdlQ2xvc2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
bGF1bmNoUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXgg
MGUzYTYxZWMyYzcyN2RmZGEzYWM3NzYxMDk5NjFlMjFhNTQwYzk2MS4uMzlkMTExNTEyYjVhMzFm
ZTE0MjIwNmVlMGNjMWYzOWMyMWEwOWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRp
cENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgPSAwOwogCiAjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VE
aWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgPSAwOwogI2VuZGlmCiAj
aWYgUExBVEZPUk0oUVQpCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCAwYTM5ZTdhYjYzOGFkODBjMmVhNTI1MWMyYzM1ZmYxYWIxOGU2
NmM2Li5mNDlmNzUyNWU4N2Y2OTM4ZTM3M2RiYWFlMWU1OWEyZmQyZDRkNDE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTkyNCw5ICsxOTI0LDkgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIHVpbnQ2NF90IGYKIH0KIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQotdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IEludFNp
emUmIGRlbHRhKQordm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIHsKLSAgICBtX3BhZ2VDbGllbnQtPnBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKGRlbHRhKTsKKyAgICBtX3BhZ2VDbGllbnQtPnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKHBvaW50
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggYjE2ODk4OGEzYzQ5N2UxYzc0MDAyZWNmMjcyNjRkN2M1MGI4ODhhZS4uNzc3Zjg0MDI2YWE1
YTRmNzQxZTM0MjdjYTA1YjdlOGFjOGFhMjFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNTU3LDcgKzU1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWF0
dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKIAogI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA5YzZkYTAzMmVlOGM0NjVhYzkzZjgzNGVkODgzNGM1ODNlYTNiNzU5Li5jODEyYWUx
NjI1N2JiYjg4MmFiNzVlZDgwNzFjNjZjYjFjMzA5NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTYwLDcgKzYwLDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5u
aW5nRm9yTWFpbkZyYW1lKGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciwgYm9vbCBoYXNWZXJ0
aWNhbFNjcm9sbGJhcikKIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIFBh
Z2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFNpemUgZGVsdGEpCisgICAgUGFnZURpZFJl
cXVlc3RTY3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAjZW5kaWYKICNpZiBQTEFURk9S
TShRVCkKICAgICBEaWRDaGFuZ2VDb250ZW50c1NpemUoV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXpl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGFjNGQ5ZmU0ZWNlNjVjYWY5NGM0ZTMzNWUx
MTkzMWEwNTQ2NGVlNTAuLjkyNDI2ZWZjNGZiMzFmZDFhY2JlOGY5NGQ4M2VlZWVjMTIxM2MzYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCwgY29uc3QgSW50
UmVjdCYgc2Nyb2xsUgogfQogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFNpemUm
IHNjcm9sbE9mZnNldCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkZWxlZ2F0ZWRTY3JvbGxSZXF1
ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbE9mZnNldCkKIHsKICAgICBtX3BhZ2UtPnBhZ2VE
aWRSZXF1ZXN0U2Nyb2xsKHNjcm9sbE9mZnNldCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCA0M2Q2MzdjZjhlZDQwYTQ3YTNmMTEzM2Q3ZGM3YjA1NjI1ODFkOTRkLi5jOWIwNGQ3OWJhYjVk
Y2JiZDBmOTBlODA0MmNiNzhjMjI1NWM3ZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEx
Myw3ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVu
dHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpOwogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZpcnR1YWwg
dm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Ny
b2xsT2Zmc2V0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPZmZzZXQpOwogI2VuZGlmCiAgICAgdmlydHVh
bCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVlbihj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggY2M5YjhjZGNhZWY0YjJlYjUwOGU4ZWJlZWFj
NmMwYTJlYTQwYTlkNC4uN2ZkZjY3ZTJjNGEwNWU2MzA5Nzg3YTcyYzY1OWZhZjYyZmMxZjVmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
Nzg5LDkgKzc4OSw5IEBAIHZvaWQgV2ViUGFnZTo6cGFnZURpZFNjcm9sbCgpCiB9CiAKICNpZiBF
TkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKLXZvaWQgV2ViUGFnZTo6cGFnZURpZFJlcXVlc3RT
Y3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEpCit2b2lkIFdlYlBhZ2U6OnBhZ2VEaWRSZXF1ZXN0
U2Nyb2xsKGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGRlbHRhKSk7CisgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpQYWdlRGlkUmVxdWVzdFNjcm9sbChwb2ludCkpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDEx
NDk3ZWQ4NzU0ZjUzY2YxMzkxZTI0ZDgxZDQyZTcwZTdjYjRjMzcuLmE1MDQ0ZjBiYWEyMDBhMWVj
OTUwZmU4ZTRjYTNiZWUyZDQyOTgyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjU2LDcgKzI1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cGFnZURpZFNjcm9sbCgpOwogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZv
aWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEpOwor
ICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsK
ICAgICB2b2lkIHNldEFjdHVhbFZpc2libGVDb250ZW50UmVjdChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jik7CiAKICAgICBib29sIHJlc2l6ZXNUb0NvbnRlbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuICFtX3Jlc2l6ZXNUb0NvbnRlbnRzTGF5b3V0U2l6ZS5pc0VtcHR5KCk7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>