<?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>82163</bug_id>
          
          <creation_ts>2012-03-25 19:36:29 -0700</creation_ts>
          <short_desc>Scrollable plugins not registered properly in ScrollingCoordinator</short_desc>
          <delta_ts>2012-03-27 15:24:59 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nat Duca">nduca</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>andersca</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>pnormand</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>587420</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-25 19:36:29 -0700</bug_when>
    <thetext>With threadeded compositing on, we process mousewheels on the impl thread. So, mouse scrolling never reaches the PDF plugin. ~cries~

To reproduce
chrome --force-compositing-mode --enable-threaded-compositing --show-composited-layer-borders --register-pepper-plugins=&quot;/opt/google/chrome/libpdf.so;application/pdf&quot;

Then go to here:
http://www.corp.google.com/~pavanv/no_crawl/pdf-samples/flatform.pdf

If you dont have these applied, the screen wont update (although the scrolls will behave incorrectly):
https://bugs.webkit.org/show_bug.cgi?id=82154
http://codereview.chromium.org/9856005/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587862</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 10:13:14 -0700</bug_when>
    <thetext>Plugins are PluginViewBases, which are Widgets and thus scroll, but they aren&apos;t WebCore::ScrollableAreas so the computeNonFastScrollableRegion() test in ScrollingCoordinator ignores them.

The fix is to check for scrollable plugins when iterating over Widgets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587875</commentid>
    <comment_count>2</comment_count>
      <attachid>133844</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 10:37:19 -0700</bug_when>
    <thetext>Created attachment 133844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587877</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 10:40:03 -0700</bug_when>
    <thetext>This appears to work - any ideas on how to test? I was thinking of adding a DRT hook to dump the nonFastScrollableRegion as text on somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587951</commentid>
    <comment_count>4</comment_count>
      <attachid>133854</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 11:40:00 -0700</bug_when>
    <thetext>Created attachment 133854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587964</commentid>
    <comment_count>5</comment_count>
      <attachid>133854</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-26 11:56:59 -0700</bug_when>
    <thetext>Comment on attachment 133854
Patch

Attachment 133854 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12134951</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587968</commentid>
    <comment_count>6</comment_count>
      <attachid>133854</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-26 12:07:07 -0700</bug_when>
    <thetext>Comment on attachment 133854
Patch

Attachment 133854 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12128978</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587974</commentid>
    <comment_count>7</comment_count>
      <attachid>133844</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-26 12:11:51 -0700</bug_when>
    <thetext>Comment on attachment 133844
Patch

I don&apos;t really like the idea of making all plug-ins be non-scrollable. Can we add a member function to PluginViewBase to let subclasses control this instead? (I&apos;m really tempted to not send wheel events to some plug-ins that we know never handle them correctly)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587988</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 12:24:15 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 133844 [details])
&gt; I don&apos;t really like the idea of making all plug-ins be non-scrollable. Can we add a member function to PluginViewBase to let subclasses control this instead? (I&apos;m really tempted to not send wheel events to some plug-ins that we know never handle them correctly)

I can do that, but then it means I can&apos;t make a layout test (since I don&apos;t know how to instantiate a plugin that will hook up to the correct subclass).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587995</commentid>
    <comment_count>9</comment_count>
      <attachid>133854</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-26 12:30:15 -0700</bug_when>
    <thetext>Comment on attachment 133854
Patch

Attachment 133854 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12140014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587998</commentid>
    <comment_count>10</comment_count>
      <attachid>133866</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 12:32:36 -0700</bug_when>
    <thetext>Created attachment 133866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587999</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 12:33:21 -0700</bug_when>
    <thetext>How about this? Other PluginViewBase subclasses would have to register themselves in the proper way, but I&apos;m not familiar with how they all work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588007</commentid>
    <comment_count>12</comment_count>
      <attachid>133866</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-26 12:36:48 -0700</bug_when>
    <thetext>Comment on attachment 133866
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:142
&gt; +Region ScrollingCoordinator::nonFastScrollableRegion()
&gt; +{
&gt; +    return computeNonFastScrollableRegion(m_page-&gt;mainFrame()-&gt;view());
&gt; +}

This change seems unrelated.

&gt; Source/WebCore/page/scrolling/ScrollingCoordinator.h:118
&gt; +    Region nonFastScrollableRegion();

Ditto.

&gt; Source/WebCore/plugins/PluginViewBase.h:56
&gt; +    virtual bool scrollable() { return false; }

I think this should be called wantsWheelEvents instead, since a plug-in may want wheel events without being scrollable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588014</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 12:43:29 -0700</bug_when>
    <thetext>Committed r112142: &lt;http://trac.webkit.org/changeset/112142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588073</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 13:33:10 -0700</bug_when>
    <thetext>Reopening since this doesn&apos;t properly handle a plugin becoming scrollable and could be done in a more straightforward way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588078</commentid>
    <comment_count>15</comment_count>
      <attachid>133880</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 13:36:34 -0700</bug_when>
    <thetext>Created attachment 133880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588268</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 16:12:43 -0700</bug_when>
    <thetext>*** Bug 82164 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589343</commentid>
    <comment_count>17</comment_count>
      <attachid>133880</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 15:24:51 -0700</bug_when>
    <thetext>Comment on attachment 133880
Patch

Clearing flags on attachment: 133880

Committed r112325: &lt;http://trac.webkit.org/changeset/112325&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589344</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 15:24:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133844</attachid>
            <date>2012-03-26 10:37:19 -0700</date>
            <delta_ts>2012-03-26 12:11:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82163-20120326103717.patch</filename>
            <type>text/plain</type>
            <size>1919</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVjMTY2NTMyYWRhZjEx
Y2YwOGIxMjM1ZjI0Zjg1OWY5N2JjZjYwZS4uODhjYjFmMmZjMGMzMmM1MTczYjlhYjU0YTIxMmYz
YTQ3MTAxMzVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTI2ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2Nyb2xsYWJsZSBw
bHVnaW5zIG5vdCByZWdpc3RlcmVkIHByb3Blcmx5IGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE2MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdWdpbnMgbWF5
IGJlIHNjcm9sbGFibGUsIHNvIHdlIGhhdmUgdG8gYWRkIHRoZW0gaW4gdGhlIG5vbi1mYXN0IHNj
cm9sbGFibGUgcmVnaW9uLiBUZXN0ZWQgbWFudWFsbHkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRl
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorCiAyMDEyLTAzLTI2ICBSb2JpbiBDYW8gIDxyb2Jp
bi5jYW9AdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcHN0cmVh
bSBMYXllckNvbXBvc2l0aW5nVGhyZWFkLntoLCBjcHB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZGYyOTYx
YmQ4MWQyODY2ODlmZjVkY2I5YzE0ZjU2NDVhZTFmMmFmOC4uNDczNGJmOTdkOWVhZTM5MTI2YmU1
ZDc1MTViOWRiYjVmZGVjM2E1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1X
aGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJSZWdp
b24uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3Iu
aCIKQEAgLTExMSw2ICsxMTIsOCBAQCBzdGF0aWMgUmVnaW9uIGNvbXB1dGVOb25GYXN0U2Nyb2xs
YWJsZVJlZ2lvbihGcmFtZVZpZXcqIGZyYW1lVmlldykKICAgICBmb3IgKEhhc2hTZXQ8UmVmUHRy
PFdpZGdldD4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBmcmFtZVZpZXctPmNoaWxkcmVuKCktPmJl
Z2luKCksIGVuZCA9IGZyYW1lVmlldy0+Y2hpbGRyZW4oKS0+ZW5kKCk7IGl0ICE9IGVuZDsgKytp
dCkgewogICAgICAgICBpZiAoKCppdCktPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgICAgICBjaGls
ZEZyYW1lVmlld3MuYWRkKHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KGl0LT5nZXQoKSkpOworICAg
ICAgICBlbHNlIGlmICgoKml0KS0+aXNQbHVnaW5WaWV3QmFzZSgpKQorICAgICAgICAgICAgbm9u
RmFzdFNjcm9sbGFibGVSZWdpb24udW5pdGUoKCppdCktPmZyYW1lUmVjdCgpKTsKICAgICB9CiAK
ICAgICBpZiAoY29uc3QgRnJhbWVWaWV3OjpTY3JvbGxhYmxlQXJlYVNldCogc2Nyb2xsYWJsZUFy
ZWFzID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYXMoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133854</attachid>
            <date>2012-03-26 11:40:00 -0700</date>
            <delta_ts>2012-03-26 12:32:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82163-20120326113959.patch</filename>
            <type>text/plain</type>
            <size>11305</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVjMTY2NTMyYWRhZjEx
Y2YwOGIxMjM1ZjI0Zjg1OWY5N2JjZjYwZS4uMGY3NDFkNTBiYjMxODZlMmViYjEwMzdiNzA0Mjdj
MjgzZDUxNTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTI2ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2Nyb2xsYWJsZSBw
bHVnaW5zIG5vdCByZWdpc3RlcmVkIHByb3Blcmx5IGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE2MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdWdpbnMgbWF5
IGJlIHNjcm9sbGFibGUsIHNvIHdlIGhhdmUgdG8gYWRkIHRoZW0gaW4gdGhlIG5vbi1mYXN0IHNj
cm9sbGFibGUgcmVnaW9uLgorCisgICAgICAgIFRlc3Q6IHBsdWdpbnMvbm9uLWZhc3Qtc2Nyb2xs
YWJsZS1yZWdpb24uaHRtbAorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxl
UmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpub25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoU2Nyb2xsaW5nQ29vcmRp
bmF0b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVTY3JvbGxpbmdDb29yZGluYXRv
cik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAo
SW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDMt
MjYgIFJvYmluIENhbyAgPHJvYmluLmNhb0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAg
W0JsYWNrQmVycnldIFVwc3RyZWFtIExheWVyQ29tcG9zaXRpbmdUaHJlYWQue2gsIGNwcH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAppbmRleCBkZjI5NjFiZDgxZDI4NjY4OWZmNWRjYjljMTRmNTY0NWFlMWYyYWY4Li5h
MTUzMDc0NTg3NTBiYWZmNDQ2OGYzNmNlOTNkNzEyOWQ5Mzk3YjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJQbHVnaW5WaWV3QmFz
ZS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNs
dWRlICJTY3JvbGxBbmltYXRvci5oIgpAQCAtMTExLDYgKzExMiw4IEBAIHN0YXRpYyBSZWdpb24g
Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEZyYW1lVmlldyogZnJhbWVWaWV3KQogICAg
IGZvciAoSGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGZyYW1l
Vmlldy0+Y2hpbGRyZW4oKS0+YmVnaW4oKSwgZW5kID0gZnJhbWVWaWV3LT5jaGlsZHJlbigpLT5l
bmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmICgoKml0KS0+aXNGcmFtZVZpZXco
KSkKICAgICAgICAgICAgIGNoaWxkRnJhbWVWaWV3cy5hZGQoc3RhdGljX2Nhc3Q8RnJhbWVWaWV3
Kj4oaXQtPmdldCgpKSk7CisgICAgICAgIGVsc2UgaWYgKCgqaXQpLT5pc1BsdWdpblZpZXdCYXNl
KCkpCisgICAgICAgICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZSgoKml0KS0+ZnJh
bWVSZWN0KCkpOwogICAgIH0KIAogICAgIGlmIChjb25zdCBGcmFtZVZpZXc6OlNjcm9sbGFibGVB
cmVhU2V0KiBzY3JvbGxhYmxlQXJlYXMgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhcygpKSB7
CkBAIC0xMzEsNiArMTM0LDExIEBAIHN0YXRpYyBSZWdpb24gY29tcHV0ZU5vbkZhc3RTY3JvbGxh
YmxlUmVnaW9uKEZyYW1lVmlldyogZnJhbWVWaWV3KQogICAgIHJldHVybiBub25GYXN0U2Nyb2xs
YWJsZVJlZ2lvbjsKIH0KIAorUmVnaW9uIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpub25GYXN0U2Ny
b2xsYWJsZVJlZ2lvbigpCit7CisgICAgcmV0dXJuIGNvbXB1dGVOb25GYXN0U2Nyb2xsYWJsZVJl
Z2lvbihtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpOworfQorCiB2b2lkIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpmcmFtZVZpZXdMYXlvdXRVcGRhdGVkKEZyYW1lVmlldyogZnJhbWVWaWV3KQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBmZjU0NDAwNDExN2Ji
YzAzOWI0NzE5MTFkOGMyYTU0ZjQ1OGJkZWRiLi5lMzkxYWM1NzgxNDYyMTkzNzgzNmZiY2E2Y2Y4
NzhlNzE5NjdjMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAg
Ly8gRm9yY2UgYWxsIHNjcm9sbCBsYXllciBwb3NpdGlvbiB1cGRhdGVzIHRvIGhhcHBlbiBvbiB0
aGUgbWFpbiB0aHJlYWQuCiAgICAgdm9pZCBzZXRGb3JjZU1haW5UaHJlYWRTY3JvbGxMYXllclBv
c2l0aW9uVXBkYXRlcyhib29sKTsKIAorICAgIFJlZ2lvbiBub25GYXN0U2Nyb2xsYWJsZVJlZ2lv
bigpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2Uq
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXgg
NTAyMzFjYWY0NjM2MTAzYjFjMDQzMzA1YmZlOTg2MTM5YzgzODNhOC4uOTJkZWIwMjJmYzcxNjA5
ZDhmMTdiNzYzMzc0YzkzNWM0NzMwYjhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCkBAIC0xNjEsNiArMTYxLDEyIEBAIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5hYmxlZCwg
RXhjZXB0CiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVk
UG9zaXRpb25FbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNl
dEVuYWJsZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAgICBzZXR0
aW5ncygpLT5zZXRTY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKIHZv
aWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJh
bWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJuYWxTZXR0
aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmgKaW5kZXggYmQ2NjgwMmIwM2I2Yzc5NjM2ZWNlOWQzZmU4NGFjZjVmNjk1M2Q0ZC4u
MmNmMTcwZDdhMTA5ZmNlZDIxZDBmN2VkNDdhN2M3MmZmZGIzMmI5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGlu
Z0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBzZXRFbmFibGVTY3JvbGxpbmdDb29yZGluYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFi
bGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TW9ja1Njcm9s
bGJhcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggZDIyYWZkNzc0OTg3ZGI0OWNi
ZjlkODU5MDE4YWU3N2I0ZDgzZjRmMC4uZmVmZDNhZjUzMDlmODk3MzM5YWNkYTM4OTY5YmJhZjUy
MTM3NWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
CkBAIC0zMSw2ICszMSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
dm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2
b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGYyZjEw
OTgwNDI0MDc2N2QyNTJhNTk2ODU0N2U2MTIzNTY2OTk2MjkuLjEzZWJhZWE3NDdkN2RkZWU4Zjc1
ZTYwZjBkZDg1YzgwNTA3ZTAxMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJSZWlmaWVkVHJlZVRyYXZlcnNhbC5oIgogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKKyNp
bmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKQEAgLTc3MCw2
ICs3NzEsMjggQEAgdW5zaWduZWQgSW50ZXJuYWxzOjp0b3VjaEV2ZW50SGFuZGxlckNvdW50KERv
Y3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICByZXR1cm4gZG9jdW1lbnQt
PnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKTsKIH0KIAorU3RyaW5nIEludGVybmFsczo6bm9uRmFz
dFNjcm9sbGFibGVSZWdpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJS
OworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgfQorCisgICAgU2Nyb2xsaW5nQ29vcmRp
bmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gZG9jdW1lbnQtPnBhZ2UoKS0+c2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKTsKKyAgICBpZiAoIXNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisKKyAgICBWZWN0b3I8SW50UmVjdD4gcmVjdHMgPSBzY3JvbGxpbmdD
b29yZGluYXRvci0+bm9uRmFzdFNjcm9sbGFibGVSZWdpb24oKS5yZWN0cygpOworICAgIFRleHRT
dHJlYW0gdHM7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWN0cy5zaXplKCk7ICsraSkg
eworICAgICAgICBpZiAoaSkKKyAgICAgICAgICAgIHRzIDw8ICIgIjsKKyAgICAgICAgdHMgPDwg
IigiIDw8IHJlY3RzW2ldLndpZHRoKCkgPDwgIiwgIiA8PCByZWN0c1tpXS5oZWlnaHQoKSA8PCAi
KSI7CisgICAgICAgIHRzIDw8ICIgQCAoIiA8PCByZWN0c1tpXS54KCkgPDwgIiwgIiA8PCByZWN0
c1tpXS55KCkgPDwgIikiOworICAgIH0KKyAgICByZXR1cm4gdHMucmVsZWFzZSgpOworfQorCiBQ
YXNzUmVmUHRyPE5vZGVMaXN0PiBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QoRG9jdW1lbnQqIGRv
Y3VtZW50LCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0
UGFkZGluZywKICAgICB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGlu
ZywgYm9vbCBpZ25vcmVDbGlwcGluZywgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBhMDYxM2FjMjE3YjgzZWI5ZjgxM2VmYTkwODc3
MTNkMDBjZjhhM2I4Li4yMDA4MWI3YTM4M2I1YmQ3ZTZjNzNjY2MwZDExMWIyN2MxMjBjYjM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEzNyw2ICsxMzcsOCBAQCBwdWJsaWM6
CiAgICAgdW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudChEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB1bnNpZ25lZCB0b3VjaEV2ZW50SGFuZGxlckNvdW50KERvY3VtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpOwogCisgICAgU3RyaW5nIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKERv
Y3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9k
ZXNGcm9tUmVjdChEb2N1bWVudCosIGludCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wUGFkZGluZywg
dW5zaWduZWQgcmlnaHRQYWRkaW5nLAogICAgICAgICB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1
bnNpZ25lZCBsZWZ0UGFkZGluZywgYm9vbCBpZ25vcmVDbGlwcGluZywgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOTVmZTlkYzU1
OGQ0MDBlMjI1ZTI0NzM1YzI5ZDc2MGYwOGJhNDg5Ny4uM2E4ZmU3ZTEzMmFkZmYxZjE2ZmJhMjAx
ZTEyNjMzZmFmODU2Yzc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
MTEyLDYgKzExMiw4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB1bnNpZ25lZCBsb25nIHdo
ZWVsRXZlbnRIYW5kbGVyQ291bnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyB0b3VjaEV2ZW50SGFuZGxlckNvdW50KGlu
IERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgRE9N
U3RyaW5nIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisKICAgICAgICAgTm9kZUxpc3Qgbm9kZXNGcm9tUmVjdChpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyB4LCBpbiBsb25nIHksCiAgICAgICAgICAgICBpbiB1
bnNpZ25lZCBsb25nIHRvcFBhZGRpbmcsIGluIHVuc2lnbmVkIGxvbmcgcmlnaHRQYWRkaW5nLCBp
biB1bnNpZ25lZCBsb25nIGJvdHRvbVBhZGRpbmcsIGluIHVuc2lnbmVkIGxvbmcgbGVmdFBhZGRp
bmcsCiAgICAgICAgICAgICBpbiBib29sZWFuIGlnbm9yZUNsaXBwaW5nKSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMjM3ZjUyYzc2NjU2ZTVhMzIzMjUxNzdkYjMwZTVmZjM2YTlmMTRk
Zi4uNzQzOTcwNzQ1YWFiMzhiNjg1NjMzYjAyOTUxNmViZmQwNzgxNmZlMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDEyLTAzLTI2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgU2Nyb2xsYWJsZSBwbHVnaW5zIG5vdCByZWdpc3RlcmVkIHByb3Blcmx5
IGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MjE2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGx1Z2lucy9ub24tZmFzdC1zY3JvbGxhYmxlLXJlZ2lvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsdWdpbnMvbm9uLWZhc3Qtc2Nyb2xsYWJsZS1y
ZWdpb24uaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMjYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBhZGQg
UXQgc3BlY2lmaWMgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgbmV3IHBhc3NzaW5nIHRlc3RzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9ub24tZmFzdC1zY3JvbGxhYmxlLXJlZ2lvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL25vbi1mYXN0LXNjcm9sbGFibGUtcmVn
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDM3NmU1MGI5MmFhMTgxODA1M2NiYTFhYWQ2
OTVmNjlkZDRhZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9ub24t
ZmFzdC1zY3JvbGxhYmxlLXJlZ2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorICgzMDAs
IDE1MCkgQCAoOCwgOCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvbm9uLWZhc3Qt
c2Nyb2xsYWJsZS1yZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvbm9uLWZhc3Qtc2Ny
b2xsYWJsZS1yZWdpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGU0NGJmZGFhYWU1YjU0NGJmOGM2NjY2
NTQ2MzcyYmJlYTc3NzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9u
b24tZmFzdC1zY3JvbGxhYmxlLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGVtYmVkIHR5cGU9ImFwcGxpY2F0aW9u
L3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiPjwvZW1iZWQ+Cis8c3BhbiBpZD0icmVnaW9uIj5XaGVu
IHRoaXMgdGVzdCBpcyBydW4gaW4gRHVtcFJlbmRlclRyZWUsIHRoZSBub24tZmFzdCBzY3JvbGxh
YmxlIHJlZ2lvbiBzaG91bGQgYXBwZWFyIGhlcmU8L3NwYW4+Cis8L2JvZHk+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEVuYWJsZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKHRydWUpOworICAgICAgICAvLyBUaGVyZSBzaG91
bGQgYmUgYSAzMDB4MTUwIHJlY3RhbmdsZSBpbiB0aGlzIGR1bXAgZnJvbSB0aGUgcGx1Z2luIGVs
ZW1lbnQuCisgICAgICAgIHJlZ2lvbi5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLm5vbkZh
c3RTY3JvbGxhYmxlUmVnaW9uKGRvY3VtZW50KTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133866</attachid>
            <date>2012-03-26 12:32:36 -0700</date>
            <delta_ts>2012-03-26 13:36:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82163-20120326123235.patch</filename>
            <type>text/plain</type>
            <size>5887</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVjMTY2NTMyYWRhZjEx
Y2YwOGIxMjM1ZjI0Zjg1OWY5N2JjZjYwZS4uMTA4NjkxNTgyZTJiZGY1MDE0ZTIxZTNlM2EwMTM4
OGQ5MmRiODIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTI2ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2Nyb2xsYWJsZSBw
bHVnaW5zIG5vdCByZWdpc3RlcmVkIHByb3Blcmx5IGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE2MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdWdpbnMgbWF5
IGJlIHNjcm9sbGFibGUsIHNvIHdlIGhhdmUgdG8gYWRkIHRoZW0gaW4gdGhlIG5vbi1mYXN0IHNj
cm9sbGFibGUgcmVnaW9uLiBUZXN0ZWQgbWFudWFsbHkuCisKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRl
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3I6Om5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAg
IChTY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3QmFz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlld0Jhc2U6OnNjcm9sbGFibGUpOgorICAg
ICAgICAoUGx1Z2luVmlld0Jhc2UpOgorCiAyMDEyLTAzLTI2ICBSb2JpbiBDYW8gIDxyb2Jpbi5j
YW9AdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcHN0cmVhbSBM
YXllckNvbXBvc2l0aW5nVGhyZWFkLntoLCBjcHB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDgyNDczOTQ5YjYzNzYzZTBjZGYzNDIzMWY1ZTRmNDViNjYwZDM1ZGEuLjZmNGIxNjhjZjcx
NjlhNWU4NGI1MjJiYjEzMWU5NWI4MGYwNGNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMjYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBTY3JvbGxhYmxlIHBsdWdpbnMgbm90IHJlZ2lzdGVyZWQg
cHJvcGVybHkgaW4gU2Nyb2xsaW5nQ29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNjcm9sbGFibGUpOgor
ICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmg6CisgICAgICAgIChXZWJQbHVn
aW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wMy0yNiAgVGVycnkgQW5kZXJzb24gIDx0ZGFuZGVy
c29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFsbG93IHRoZSB2aWV3cG9y
dCBtZXRhIHRhZyB0byBiZSBkaXNhYmxlZCBmb3IgdGVzdGluZyBwdXJwb3NlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IGRmMjk2MWJkODFkMjg2Njg5ZmY1ZGNiOWMxNGY1NjQ1YWUxZjJhZjguLmFhYWUxY2Qx
OWY0MWMzMGQzOTkyYzZiYTkyMmM2MTM3ZGNlNjViNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAj
aW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNj
cm9sbEFuaW1hdG9yLmgiCkBAIC0xMTEsNiArMTEyLDEwIEBAIHN0YXRpYyBSZWdpb24gY29tcHV0
ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEZyYW1lVmlldyogZnJhbWVWaWV3KQogICAgIGZvciAo
SGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGZyYW1lVmlldy0+
Y2hpbGRyZW4oKS0+YmVnaW4oKSwgZW5kID0gZnJhbWVWaWV3LT5jaGlsZHJlbigpLT5lbmQoKTsg
aXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmICgoKml0KS0+aXNGcmFtZVZpZXcoKSkKICAg
ICAgICAgICAgIGNoaWxkRnJhbWVWaWV3cy5hZGQoc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4oaXQt
PmdldCgpKSk7CisgICAgICAgIGVsc2UgaWYgKCgqaXQpLT5pc1BsdWdpblZpZXdCYXNlKCkpIHsK
KyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxQbHVnaW5WaWV3QmFzZSo+KGl0LT5nZXQoKSkt
PnNjcm9sbGFibGUoKSkKKyAgICAgICAgICAgICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51
bml0ZSgoKml0KS0+ZnJhbWVSZWN0KCkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGNv
bnN0IEZyYW1lVmlldzo6U2Nyb2xsYWJsZUFyZWFTZXQqIHNjcm9sbGFibGVBcmVhcyA9IGZyYW1l
Vmlldy0+c2Nyb2xsYWJsZUFyZWFzKCkpIHsKQEAgLTEzMSw2ICsxMzYsMTEgQEAgc3RhdGljIFJl
Z2lvbiBjb21wdXRlTm9uRmFzdFNjcm9sbGFibGVSZWdpb24oRnJhbWVWaWV3KiBmcmFtZVZpZXcp
CiAgICAgcmV0dXJuIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uOwogfQogCitSZWdpb24gU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6Om5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKCkKK3sKKyAgICByZXR1cm4g
Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0xheW91dFVwZGF0
ZWQoRnJhbWVWaWV3KiBmcmFtZVZpZXcpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IGZmNTQ0MDA0MTE3YmJjMDM5YjQ3MTkxMWQ4YzJhNTRmNDU4YmRlZGIuLmUz
OTFhYzU3ODE0NjIxOTM3ODM2ZmJjYTZjZjg3OGU3MTk2N2MwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTE1
LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICAvLyBGb3JjZSBhbGwgc2Nyb2xsIGxheWVyIHBvc2l0
aW9uIHVwZGF0ZXMgdG8gaGFwcGVuIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICB2b2lkIHNldEZv
cmNlTWFpblRocmVhZFNjcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKGJvb2wpOwogCisgICAgUmVn
aW9uIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKCk7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
U2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXdCYXNlLmgKaW5kZXggZmE4MzlkNDQ0Y2EyNmQ3NzNlZTBlZDgxNmYwMDRmYjYxZTJmYWEy
OC4uMjBhNzc3ZDQ5YjdlNmFkNDVlNmRlMjEwYmRhYTczNTg4ZmNkZjQyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGdldEZvcm1WYWx1ZShTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSkgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxhYmxlKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKwogICAgIC8vIEEgcGx1Zy1pbiBjYW4gYXNrIFdlYktpdCB0byBoYW5k
bGUgc2Nyb2xsYmFycyBmb3IgaXQuCiAgICAgdmlydHVhbCBTY3JvbGxiYXIqIGhvcml6b250YWxT
Y3JvbGxiYXIoKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBTY3JvbGxiYXIqIHZlcnRpY2Fs
U2Nyb2xsYmFyKCkgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAppbmRleCBhNzE3MDNiMTVmYjE2Yjlj
MWVjM2Q3YmQyOWVjYjdjZTcxMWUwYzdjLi45NjRiNmJhY2Q3ODEzMTgzOTAzNzVkZTU0ZjBjZDJl
MTdmYzAwYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtNTE4LDYgKzUxOCwxMCBAQCBXZWJDb3JlOjpMYXll
ckNocm9taXVtKiBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QK
IH0KICNlbmRpZgogCitib29sIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNjcm9sbGFibGUoKQor
eworICAgIHJldHVybiBtX3Njcm9sbGJhckdyb3VwOworfQogCiBTY3JvbGxiYXJHcm91cCogV2Vi
UGx1Z2luQ29udGFpbmVySW1wbDo6c2Nyb2xsYmFyR3JvdXAoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCmluZGV4IDlkOTcw
ZjJmOGRkYjA3ZjgwYTgwMWYyYTNhMTgzYTg5NTM1ZTdkOTQuLmMzZGE5ODZiOWZkMzY0YTE0NGEx
YmIxOGY2ZmY3MjBmYzUxZDQ3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKQEAgLTczLDYgKzczLDcgQEAgcHVibGljOgog
CiAgICAgLy8gUGx1Z2luVmlld0Jhc2UgbWV0aG9kcwogICAgIHZpcnR1YWwgYm9vbCBnZXRGb3Jt
VmFsdWUoU3RyaW5nJik7CisgICAgdmlydHVhbCBib29sIHNjcm9sbGFibGUoKTsKIAogICAgIC8v
IFdpZGdldCBtZXRob2RzCiAgICAgdmlydHVhbCB2b2lkIHNldEZyYW1lUmVjdChjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133880</attachid>
            <date>2012-03-26 13:36:34 -0700</date>
            <delta_ts>2012-03-27 15:24:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82163-20120326133633.patch</filename>
            <type>text/plain</type>
            <size>12929</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU2NDBkYmQ3ZmZiMzRj
MmM2M2U5MGQxZDBlNGRkMDU2YjRmZDI5ZS4uOWY4Y2E3NjdiMmQ1MTE3NTI3ZmFlYmIxOWIzZWNj
NDlkMzUzMmYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDI5IEBACiAgICAgICAgIFNjcm9sbGFi
bGUgcGx1Z2lucyBub3QgcmVnaXN0ZXJlZCBwcm9wZXJseSBpbiBTY3JvbGxpbmdDb29yZGluYXRv
cgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIxNjMK
IAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuZXZl
ciBhIFNjcm9sbGFibGVBcmVhIGlzIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSBhIEZyYW1lVmlldydz
IFNjcm9sbGFibGVBcmVhU2V0LCB3ZSBoYXZlIHRvIHJlY2FsY3VsYXRlIHRoZQorICAgICAgICBu
b25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi4gVGhpcyBjYW4gaGFwcGVuIGZvciBjZXJ0YWluIHR5cGVz
IG9mIHBsdWdpbnMgdGhhdCBhcmUgc2Nyb2xsYWJsZS4KKworICAgICAgICBUaGlzIGFsc28gcmV2
ZXJ0cyAxMTIxNDIgd2hpY2ggd2FzIGEgbm90IHF1aXRlIHJpZ2h0IHdheSB0byBoYW5kbGUgdGhl
c2UgcGx1Z2lucy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6YWRkU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpyZW1vdmVTY3JvbGxhYmxlQXJlYSk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZU5v
bkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpmcmFtZVZpZXdTY3JvbGxhYmxlQXJlYXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoK
KyAgICAgICAgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdp
blZpZXdCYXNlLmg6CisKKzIwMTItMDMtMjYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBTY3JvbGxhYmxlIHBsdWdpbnMgbm90IHJlZ2lzdGVyZWQgcHJv
cGVybHkgaW4gU2Nyb2xsaW5nQ29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMTYzCisKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJz
IENhcmxzc29uLgogCiAgICAgICAgIFBsdWdpbnMgbWF5IGJlIHNjcm9sbGFibGUsIHNvIHdlIGhh
dmUgdG8gYWRkIHRoZW0gaW4gdGhlIG5vbi1mYXN0IHNjcm9sbGFibGUgcmVnaW9uLiBUZXN0ZWQg
bWFudWFsbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA3YTljMDQyZTUzZGUwMGNk
ZWI5YjZiOTliMTZiY2Y4MWIzYTA4NTkuLmFjMmE5NDQ4NDk2MDZmZjVjYzA3YjdiMTM0YmViOWQ2
MWM5N2VjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0zLDYgKzMsMzQgQEAKICAg
ICAgICAgU2Nyb2xsYWJsZSBwbHVnaW5zIG5vdCByZWdpc3RlcmVkIHByb3Blcmx5IGluIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MjE2MwogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNpbmNlIFNjcm9sbGJhckdyb3VwcyBhcmUgU2Nyb2xsYWJsZUFyZWFzLCB0aGV5IG5l
ZWQgdG8gYmUgYWJsZSB0byByZXBvcnQgdGhlaXIgYm91bmRzIGZvciB0aGUKKyAgICAgICAgU2Ny
b2xsaW5nQ29vcmRpbmF0b3IncyBjYWxjdWxhdGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi4gVGhp
cyBhbHNvIGNoYW5nZXMgU2Nyb2xsYmFyR3JvdXBzIHRvIG9ubHkgYmUgcmVnaXN0ZXJlZAorICAg
ICAgICBhcyBTY3JvbGxhYmxlQXJlYXMgb24gdGhlIEZyYW1lVmlldydzIHNldCB3aGVuIHRoZXkg
YWN0dWFsbHkgaGF2ZSBTY3JvbGxiYXJzLgorCisgICAgICAgICogc3JjL1Njcm9sbGJhckdyb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsYmFyR3JvdXA6OlNjcm9sbGJhckdyb3VwKToK
KyAgICAgICAgKFdlYktpdDo6U2Nyb2xsYmFyR3JvdXA6On5TY3JvbGxiYXJHcm91cCk6CisgICAg
ICAgIChXZWJLaXQ6OlNjcm9sbGJhckdyb3VwOjpzY3JvbGxiYXJDcmVhdGVkKToKKyAgICAgICAg
KFdlYktpdDo6U2Nyb2xsYmFyR3JvdXA6OnNjcm9sbGJhckRlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJLaXQ6OlNjcm9sbGJhckdyb3VwOjpzZXRGcmFtZVJlY3QpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6U2Nyb2xsYmFyR3JvdXA6OnNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3gpOgorICAgICAgICAqIHNyYy9TY3JvbGxiYXJHcm91cC5oOgorICAgICAgICAoU2Nyb2xsYmFy
R3JvdXApOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cmVwb3J0R2VvbWV0cnkpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6
c2Nyb2xsYmFyR3JvdXApOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmg6
CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBsKToKKworMjAxMi0wMy0yNiAgSmFtZXMg
Um9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNjcm9sbGFibGUgcGx1
Z2lucyBub3QgcmVnaXN0ZXJlZCBwcm9wZXJseSBpbiBTY3JvbGxpbmdDb29yZGluYXRvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIxNjMKKwogICAg
ICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCiAKICAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZjU2
YzM0M2Q5NTMxMzUzODY2OWY4OTdiOWRhYzM5OTUzYjlhNDNmNC4uZjAyZDk5OGMzMmExYzEyZDA5
YTE3NjU2ZmUzYjExMTRkOTYyMjNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
MzM4NSw2ICszMzg1LDExIEBAIHZvaWQgRnJhbWVWaWV3OjphZGRTY3JvbGxhYmxlQXJlYShTY3Jv
bGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCiAgICAgaWYgKCFtX3Njcm9sbGFibGVBcmVhcykK
ICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYXMgPSBhZG9wdFB0cihuZXcgU2Nyb2xsYWJsZUFyZWFT
ZXQpOwogICAgIG1fc2Nyb2xsYWJsZUFyZWFzLT5hZGQoc2Nyb2xsYWJsZUFyZWEpOworCisgICAg
aWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKKyAgICAgICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3U2Ny
b2xsYWJsZUFyZWFzRGlkQ2hhbmdlKHRoaXMpOworICAgIH0KIH0KIAogdm9pZCBGcmFtZVZpZXc6
OnJlbW92ZVNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKQEAg
LTMzOTIsNiArMzM5NywxMSBAQCB2b2lkIEZyYW1lVmlldzo6cmVtb3ZlU2Nyb2xsYWJsZUFyZWEo
U2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKQogICAgIGlmICghbV9zY3JvbGxhYmxlQXJl
YXMpCiAgICAgICAgIHJldHVybjsKICAgICBtX3Njcm9sbGFibGVBcmVhcy0+cmVtb3ZlKHNjcm9s
bGFibGVBcmVhKTsKKworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7Cisg
ICAgICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBw
YWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPmZyYW1lVmlld1Njcm9sbGFibGVBcmVhc0RpZENoYW5nZSh0aGlzKTsKKyAgICB9CiB9
CiAKIGJvb2wgRnJhbWVWaWV3Ojpjb250YWluc1Njcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVh
KiBzY3JvbGxhYmxlQXJlYSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA3ZmZjMzJmZjEyYjliZGY1
ODlkZGZmZTQwMDU4MTdjNzQ5M2NiMzM1Li4wZmE1NTc0MGMyYjdjYjU0MDcwMWE4MTM0ODhmZmI5
Y2E1MTQyNmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0xMTIsMTAgKzExMiw2IEBAIHN0YXRpYyBSZWdp
b24gY29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKEZyYW1lVmlldyogZnJhbWVWaWV3KQog
ICAgIGZvciAoSGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGZy
YW1lVmlldy0+Y2hpbGRyZW4oKS0+YmVnaW4oKSwgZW5kID0gZnJhbWVWaWV3LT5jaGlsZHJlbigp
LT5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmICgoKml0KS0+aXNGcmFtZVZp
ZXcoKSkKICAgICAgICAgICAgIGNoaWxkRnJhbWVWaWV3cy5hZGQoc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4oaXQtPmdldCgpKSk7Ci0gICAgICAgIGVsc2UgaWYgKCgqaXQpLT5pc1BsdWdpblZpZXdC
YXNlKCkpIHsKLSAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxQbHVnaW5WaWV3QmFzZSo+KGl0
LT5nZXQoKSktPndhbnRXaGVlbEV2ZW50cygpKQotICAgICAgICAgICAgICAgIG5vbkZhc3RTY3Jv
bGxhYmxlUmVnaW9uLnVuaXRlKCgqaXQpLT5mcmFtZVJlY3QoKSk7Ci0gICAgICAgIH0KICAgICB9
CiAKICAgICBpZiAoY29uc3QgRnJhbWVWaWV3OjpTY3JvbGxhYmxlQXJlYVNldCogc2Nyb2xsYWJs
ZUFyZWFzID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJlYXMoKSkgewpAQCAtMTU5LDYgKzE1NSwx
NSBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdMYXlvdXRVcGRhdGVkKEZy
YW1lVmlldyogZnJhbWVWaWV3KQogCiB9CiAKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZy
YW1lVmlld1Njcm9sbGFibGVBcmVhc0RpZENoYW5nZShGcmFtZVZpZXcqKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGFnZSk7CisKKyAgICBSZWdpb24gbm9u
RmFzdFNjcm9sbGFibGVSZWdpb24gPSBjb21wdXRlTm9uRmFzdFNjcm9sbGFibGVSZWdpb24obV9w
YWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICBzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lv
bihub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OmZyYW1lVmlld1doZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKEZyYW1lVmlldyopCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IGZmNTQ0MDA0MTE3YmJj
MDM5YjQ3MTkxMWQ4YzJhNTRmNDU4YmRlZGIuLjgzOTIzNWIxYWRhNDU5NTRmNzY5ZGJhYTZkODY1
ZjU2MjNjZWMyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAgLy8g
U2hvdWxkIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgZ2l2ZW4gZnJhbWUgdmlldyBoYXMgYmVlbiBs
YWlkIG91dC4KICAgICB2b2lkIGZyYW1lVmlld0xheW91dFVwZGF0ZWQoRnJhbWVWaWV3Kik7CiAK
KyAgICAvLyBTaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBzZXQgb2YgU2Nyb2xsYWJsZUFy
ZWFzIGluc2lkZSBhIEZyYW1lVmlldyBjaGFuZ2VzLgorICAgIHZvaWQgZnJhbWVWaWV3U2Nyb2xs
YWJsZUFyZWFzRGlkQ2hhbmdlKEZyYW1lVmlldyopOworCiAgICAgLy8gU2hvdWxkIGJlIGNhbGxl
ZCB3aGVuZXZlciBhIHdoZWVsIGV2ZW50IGhhbmRsZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZCBpbiB0
aGUgCiAgICAgLy8gZnJhbWUgdmlldydzIHVuZGVybHlpbmcgZG9jdW1lbnQuCiAgICAgdm9pZCBm
cmFtZVZpZXdXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZChGcmFtZVZpZXcqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaAppbmRleCBhNTAwNjFiZjU5YmRkZjRiOGNj
MGMyMjY1NGZhMjYyMDcxOTFkZDU0Li5mYTgzOWQ0NDRjYTI2ZDc3M2VlMGVkODE2ZjAwNGZiNjFl
MmZhYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oCkBAIC01Myw4
ICs1Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYp
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5KSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBi
b29sIHdhbnRXaGVlbEV2ZW50cygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0KICAgICAvLyBBIHBsdWct
aW4gY2FuIGFzayBXZWJLaXQgdG8gaGFuZGxlIHNjcm9sbGJhcnMgZm9yIGl0LgogICAgIHZpcnR1
YWwgU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgeyByZXR1cm4gMDsgfQogICAgIHZp
cnR1YWwgU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhcigpIHsgcmV0dXJuIDA7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Njcm9sbGJhckdyb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Njcm9sbGJhckdyb3VwLmNwcAppbmRleCA1NzlkYzdh
YTczOTVjMjdjMjMzMGFiNjA0YzdjNDcyNmM3YzI0NjA1Li5jNDhkYjNkOWJhNWY3NjUzZWU1NjYz
MGIwNTk3Y2Y3ZGRhYTU1YjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9TY3JvbGxiYXJHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2Ny
b2xsYmFyR3JvdXAuY3BwCkBAIC0zNiwyMyArMzYsMjMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1TY3JvbGxiYXJHcm91cDo6U2Nyb2xsYmFyR3Jv
dXAoRnJhbWVWaWV3KiBmcmFtZVZpZXcpCitTY3JvbGxiYXJHcm91cDo6U2Nyb2xsYmFyR3JvdXAo
RnJhbWVWaWV3KiBmcmFtZVZpZXcsIGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCkKICAgICA6IG1f
ZnJhbWVWaWV3KGZyYW1lVmlldykKKyAgICAsIG1fZnJhbWVSZWN0KGZyYW1lUmVjdCkKICAgICAs
IG1faG9yaXpvbnRhbFNjcm9sbGJhcigwKQogICAgICwgbV92ZXJ0aWNhbFNjcm9sbGJhcigwKQog
ewotICAgIG1fZnJhbWVWaWV3LT5hZGRTY3JvbGxhYmxlQXJlYSh0aGlzKTsKIH0KIAogU2Nyb2xs
YmFyR3JvdXA6On5TY3JvbGxiYXJHcm91cCgpCiB7CiAgICAgQVNTRVJUKCFtX2hvcml6b250YWxT
Y3JvbGxiYXIpOwogICAgIEFTU0VSVCghbV92ZXJ0aWNhbFNjcm9sbGJhcik7Ci0gICAgbV9mcmFt
ZVZpZXctPnJlbW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwogfQogCiB2b2lkIFNjcm9sbGJhckdy
b3VwOjpzY3JvbGxiYXJDcmVhdGVkKFdlYlNjcm9sbGJhckltcGwqIHNjcm9sbGJhcikKIHsKKyAg
ICBib29sIGhhZFNjcm9sbGJhcnMgPSBtX2hvcml6b250YWxTY3JvbGxiYXIgfHwgbV92ZXJ0aWNh
bFNjcm9sbGJhcjsKICAgICBpZiAoc2Nyb2xsYmFyLT5zY3JvbGxiYXIoKS0+b3JpZW50YXRpb24o
KSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7CiAgICAgICAgIEFTU0VSVCghbV9ob3Jpem9udGFs
U2Nyb2xsYmFyKTsKICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyID0gc2Nyb2xsYmFyOwpA
QCAtNjIsNiArNjIsOSBAQCB2b2lkIFNjcm9sbGJhckdyb3VwOjpzY3JvbGxiYXJDcmVhdGVkKFdl
YlNjcm9sbGJhckltcGwqIHNjcm9sbGJhcikKICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhciA9
IHNjcm9sbGJhcjsKICAgICAgICAgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoc2Nyb2xsYmFyLT5z
Y3JvbGxiYXIoKSk7CiAgICAgfQorCisgICAgaWYgKCFoYWRTY3JvbGxiYXJzKQorICAgICAgICBt
X2ZyYW1lVmlldy0+YWRkU2Nyb2xsYWJsZUFyZWEodGhpcyk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFy
R3JvdXA6OnNjcm9sbGJhckRlc3Ryb3llZChXZWJTY3JvbGxiYXJJbXBsKiBzY3JvbGxiYXIpCkBA
IC03NCw2ICs3Nyw5IEBAIHZvaWQgU2Nyb2xsYmFyR3JvdXA6OnNjcm9sbGJhckRlc3Ryb3llZChX
ZWJTY3JvbGxiYXJJbXBsKiBzY3JvbGxiYXIpCiAgICAgICAgIHdpbGxSZW1vdmVWZXJ0aWNhbFNj
cm9sbGJhcihzY3JvbGxiYXItPnNjcm9sbGJhcigpKTsKICAgICAgICAgbV92ZXJ0aWNhbFNjcm9s
bGJhciA9IDA7CiAgICAgfQorCisgICAgaWYgKCFtX2hvcml6b250YWxTY3JvbGxiYXIgJiYgIW1f
dmVydGljYWxTY3JvbGxiYXIpCisgICAgICAgIG1fZnJhbWVWaWV3LT5yZW1vdmVTY3JvbGxhYmxl
QXJlYSh0aGlzKTsKIH0KIAogdm9pZCBTY3JvbGxiYXJHcm91cDo6c2V0TGFzdE1vdXNlUG9zaXRp
b24oY29uc3QgSW50UG9pbnQmIHBvaW50KQpAQCAtMTI5LDYgKzEzNSwxNiBAQCBTY3JvbGxhYmxl
QXJlYSogU2Nyb2xsYmFyR3JvdXA6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKICAg
ICByZXR1cm4gMDsKIH0KIAordm9pZCBTY3JvbGxiYXJHcm91cDo6c2V0RnJhbWVSZWN0KGNvbnN0
IEludFJlY3QmIGZyYW1lUmVjdCkKK3sKKyAgICBtX2ZyYW1lUmVjdCA9IGZyYW1lUmVjdDsKK30K
KworSW50UmVjdCBTY3JvbGxiYXJHcm91cDo6c2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVSZWN0OworfQorCiBib29sIFNjcm9sbGJhckdyb3Vw
Ojppc1Njcm9sbENvcm5lclZpc2libGUoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Njcm9sbGJhckdyb3VwLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TY3JvbGxiYXJHcm91cC5oCmluZGV4IDQ0YmUyY2Y1
MTk4MTAxNDUyMDZhYWZkNTJiNmI4OWY5YjNmODM1ZmEuLmFlYjQ0MDUyZjcyMTJmMDEwNzI3YTgw
YzgxOTJjMDQ1ZGM0NWQ4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1Njcm9sbGJhckdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2Nyb2xs
YmFyR3JvdXAuaApAQCAtNDAsMTIgKzQwLDEzIEBAIGNsYXNzIFdlYlNjcm9sbGJhckltcGw7CiAK
IGNsYXNzIFNjcm9sbGJhckdyb3VwIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhIHsK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBTY3JvbGxiYXJHcm91cChXZWJDb3JlOjpGcmFtZVZpZXcq
KTsKKyAgICBTY3JvbGxiYXJHcm91cChXZWJDb3JlOjpGcmFtZVZpZXcqLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBmcmFtZVJlY3QpOwogICAgIH5TY3JvbGxiYXJHcm91cCgpOwogCiAgICAgdm9p
ZCBzY3JvbGxiYXJDcmVhdGVkKFdlYlNjcm9sbGJhckltcGwqKTsKICAgICB2b2lkIHNjcm9sbGJh
ckRlc3Ryb3llZChXZWJTY3JvbGxiYXJJbXBsKik7CiAgICAgdm9pZCBzZXRMYXN0TW91c2VQb3Np
dGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOworICAgIHZvaWQgc2V0RnJhbWVSZWN0KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKIAogICAgIC8vIFdlYkNvcmU6OlNjcm9sbGFibGVBcmVh
IG1ldGhvZHMKICAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFdlYkNvcmU6OlNjcm9sbGJhck9y
aWVudGF0aW9uKSBjb25zdDsKQEAgLTcyLDEwICs3MywxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbGJhclN0eWxlQ2hhbmdlZChpbnQgbmV3U3R5bGUsIGJvb2wgZm9yY2VVcGRh
dGUpOwogICAgIHZpcnR1YWwgYm9vbCBpc09uQWN0aXZlUGFnZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkgY29uc3Q7CiAK
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWVWaWV3KiBtX2ZyYW1lVmlldzsKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBtX2xhc3RNb3VzZVBvc2l0aW9uOworICAgIFdlYkNvcmU6OkludFJlY3Qg
bV9mcmFtZVJlY3Q7CiAgICAgV2ViU2Nyb2xsYmFySW1wbCogbV9ob3Jpem9udGFsU2Nyb2xsYmFy
OwogICAgIFdlYlNjcm9sbGJhckltcGwqIG1fdmVydGljYWxTY3JvbGxiYXI7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNw
cAppbmRleCA0YWFkOWJiZGNjZDc3ZTFhNDZiNGFjYWMwMGMyMTczYTlmODQ5NGI0Li5mOWU2Nzhk
MTdkNTJjMDA5YTMyZWMwN2M5NzgyZjQ0NWJmYTUwYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtMzI4LDgg
KzMyOCwxMCBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnJlcG9ydEdlb21ldHJ5KCkK
IAogICAgIG1fd2ViUGx1Z2luLT51cGRhdGVHZW9tZXRyeSh3aW5kb3dSZWN0LCBjbGlwUmVjdCwg
Y3V0T3V0UmVjdHMsIGlzVmlzaWJsZSgpKTsKIAotICAgIGlmIChtX3Njcm9sbGJhckdyb3VwKQor
ICAgIGlmIChtX3Njcm9sbGJhckdyb3VwKSB7CiAgICAgICAgIG1fc2Nyb2xsYmFyR3JvdXAtPnNj
cm9sbEFuaW1hdG9yKCktPmNvbnRlbnRzUmVzaXplZCgpOworICAgICAgICBtX3Njcm9sbGJhckdy
b3VwLT5zZXRGcmFtZVJlY3QoZnJhbWVSZWN0KCkpOworICAgIH0KIH0KIAogdm9pZCBXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpzZXRCYWNraW5nVGV4dHVyZUlkKHVuc2lnbmVkIGlkKQpAQCAtNTE4
LDE1ICs1MjAsMTAgQEAgV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bSogV2ViUGx1Z2luQ29udGFpbmVy
SW1wbDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB9CiAjZW5kaWYKIAotYm9vbCBXZWJQbHVnaW5D
b250YWluZXJJbXBsOjp3YW50V2hlZWxFdmVudHMoKQotewotICAgIHJldHVybiBtX3Njcm9sbGJh
ckdyb3VwOwotfQotCiBTY3JvbGxiYXJHcm91cCogV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2Ny
b2xsYmFyR3JvdXAoKQogewogICAgIGlmICghbV9zY3JvbGxiYXJHcm91cCkKLSAgICAgICAgbV9z
Y3JvbGxiYXJHcm91cCA9IGFkb3B0UHRyKG5ldyBTY3JvbGxiYXJHcm91cChtX2VsZW1lbnQtPmRv
Y3VtZW50KCktPmZyYW1lKCktPnZpZXcoKSkpOworICAgICAgICBtX3Njcm9sbGJhckdyb3VwID0g
YWRvcHRQdHIobmV3IFNjcm9sbGJhckdyb3VwKG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUo
KS0+dmlldygpLCBmcmFtZVJlY3QoKSkpOwogICAgIHJldHVybiBtX3Njcm9sbGJhckdyb3VwLmdl
dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmgKaW5kZXggY2M2MzVjOTQ0ZWM5YzJjYTZjODgwMTVkMDRjZmNjMTEwYTky
MzYzZS4uOWQ5NzBmMmY4ZGRiMDdmODBhODAxZjJhM2ExODNhODk1MzVlN2Q5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaApA
QCAtNzMsNyArNzMsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBQbHVnaW5WaWV3QmFzZSBtZXRob2Rz
CiAgICAgdmlydHVhbCBib29sIGdldEZvcm1WYWx1ZShTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJv
b2wgd2FudFdoZWVsRXZlbnRzKCk7CiAKICAgICAvLyBXaWRnZXQgbWV0aG9kcwogICAgIHZpcnR1
YWwgdm9pZCBzZXRGcmFtZVJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>