<?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>47009</bug_id>
          
          <creation_ts>2010-10-01 13:14:00 -0700</creation_ts>
          <short_desc>WebKit2 needs to call NPP_SetWindow when destroying a plugin</short_desc>
          <delta_ts>2011-04-08 09:11:23 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>eric</cc>
    
    <cc>jberlin</cc>
    
    <cc>jhoneycutt</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288436</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-01 13:14:00 -0700</bug_when>
    <thetext>NPP_SetWindow is supposed to be called when a plugin is destroyed. WebKit1 does this but WebKit2 does not!

(And we should have a test for it!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288437</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-01 13:14:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/8503832&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297664</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-21 14:55:42 -0700</bug_when>
    <thetext>This might only be needed on Windows, but we should at least see what the behavior is in other mac browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380661</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-06 11:35:26 -0700</bug_when>
    <thetext>This is causing bug 55780.

It looks like Firefox doesn&apos;t do this. See bug 55780 comment 13.

Fixing this bug would probably be best for compatibility with WebKit1. But it would make us less like Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380680</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-06 11:50:18 -0700</bug_when>
    <thetext>The NPAPI documentation on https://developer.mozilla.org/en/NPP_SetWindow states that 

If the window handle is set to null, the window is destroyed. In this case, the plug-in must not perform any additional graphics operations on the window and should free any associated resources.

so I think we should do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380682</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-06 11:50:59 -0700</bug_when>
    <thetext>How lucky that we already have a test, then. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380684</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-06 11:51:11 -0700</bug_when>
    <thetext>*** Bug 55780 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381374</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-07 08:48:47 -0700</bug_when>
    <thetext>Here&apos;s the WebKit1 code: &lt;http://trac.webkit.org/browser/trunk/Source/WebCore/plugins/PluginView.cpp?rev=79988#L361&gt;

It looks like WebKit1 explicitly does not call NPP_SetWindow when destroying a plugin on Mac. This seems to match the code used in Apple&apos;s WebKit1 Mac port (in WebNetscapePluginView).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381456</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-07 10:23:56 -0700</bug_when>
    <thetext>Testing the fix on Mac is proving a little difficult, since NPWindow::window is always 0 on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381457</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-07 10:24:23 -0700</bug_when>
    <thetext>I guess I could tell the plugin &quot;you&apos;re about to be destroyed&quot;, and it could assert that it gets no NPP_SetWindow calls from that point forward on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381627</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-07 13:25:01 -0700</bug_when>
    <thetext>OK, I now have a test that works. Except it doesn&apos;t work in 64-bit WebKit1 on SnowLeopard. The test involves logging messages during NPP_Destroy, and 64-bit WebKit1 on SnowLeopard doesn&apos;t allow that (due to bugs in WebKitPluginHost).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381705</commentid>
    <comment_count>11</comment_count>
      <attachid>88697</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-07 14:27:46 -0700</bug_when>
    <thetext>Created attachment 88697
Pass NPP_SetWindow a null window handle during plugin destruction on non-Mac platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381707</commentid>
    <comment_count>12</comment_count>
      <attachid>88697</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-07 14:29:34 -0700</bug_when>
    <thetext>Comment on attachment 88697
Pass NPP_SetWindow a null window handle during plugin destruction on non-Mac platforms

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

&gt; Tools/DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp:93
&gt; +void pluginLog(NPP instance, const char* format, ...)

It would be nice to make this a member function of PluginTest.

&gt; Tools/DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:172
&gt; +void PluginTest::log(const char* format, ...)

Oh, never mind! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382263</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-08 08:58:51 -0700</bug_when>
    <thetext>It&apos;s too bad that Qt, GTK, and Mac EWS were not able to apply this patch due to bug 53625. I guess I&apos;ll just have to watch the bots. (I did test locally on Mac.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382273</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-08 09:06:14 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/83300 might have broken Qt Linux Release minimal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382276</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-08 09:10:55 -0700</bug_when>
    <thetext>Committed r83300: &lt;http://trac.webkit.org/changeset/83300&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382277</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-08 09:11:23 -0700</bug_when>
    <thetext>Qt build fix

Committed r83302: &lt;http://trac.webkit.org/changeset/83302&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88697</attachid>
            <date>2011-04-07 14:27:46 -0700</date>
            <delta_ts>2011-04-07 14:29:34 -0700</delta_ts>
            <desc>Pass NPP_SetWindow a null window handle during plugin destruction on non-Mac platforms</desc>
            <filename>bug-47009-20110407172820.patch</filename>
            <type>text/plain</type>
            <size>25194</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMxNzQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZDRkNTE4Zjg0MDA4NGU3NGIwNzJh
YzY4M2QwNjVhODA1OTk4ZTI5Li40NjA2MTYxOGVlMWFhN2M0NjIzOTg4OGM4MDk2OWZhODJmZmEw
MDU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDQtMDcgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFRlc3QgdGhhdCBOUFBfU2V0V2luZG93IGlzIHBhc3Nl
ZCBhIG51bGwgd2luZG93IGhhbmRsZSBkdXJpbmcgcGx1Z2luIGRlc3RydWN0aW9uIG9uIG5vbi1N
YWMgcGxhdGZvcm1zCisKKyAgICAgICAgVGVzdCBmb3IgPGh0dHA6Ly93ZWJraXQub3JnL2IvNDcw
MDk+IFdlYktpdDIgbmVlZHMgdG8gY2FsbCBOUFBfU2V0V2luZG93IHdoZW4gZGVzdHJveWluZyBh
CisgICAgICAgIHBsdWdpbgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGxhdGZvcm0vd2luLXdrMi9Ta2lwcGVkOiBSZW1vdmVkIGEgdGVzdCB0aGF0
IG5vIGxvbmdlciBjcmFzaGVzIHRoYW5rcyB0byB0aGlzIGZpeC4KKworICAgICAgICAqIHBsdWdp
bnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1cmluZy1kZXN0cnVjdGlvbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsdWdpbnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1cmluZy1k
ZXN0cnVjdGlvbi5odG1sOiBBZGRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9wbHVnaW5z
L25wcC1zZXQtd2luZG93LWNhbGxlZC1kdXJpbmctZGVzdHJ1Y3Rpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4gVGhpcyBpcworICAgICAgICBkaWZmZXJlbnQgZnJvbSB0aGUgY3Jvc3MtcGxhdGZvcm0g
cmVzdWx0cyBiZWNhdXNlIHdlIGRvbid0IGV4cGVjdCBOUFBfU2V0V2luZG93IHRvIGJlIGNhbGxl
ZAorICAgICAgICBkdXJpbmcgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
cGx1Z2lucy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuIFRoaXMgaXMKKyAgICAgICAgYSBjb3B5IG9mIHRoZSBjcm9zcy1wbGF0Zm9y
bSByZXN1bHRzLCBuZWVkZWQgdG8gb3ZlcnJpZGUgdGhlIE1hYy1zcGVjaWZpYyByZXN1bHRzLgor
CiAyMDExLTA0LTA3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCB1bnNraXAgYSBmYXN0L3htbGh0dHByZXF1ZXN0IHRlc3QgcGFz
c2luZyBvbiBHVEsuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvcGx1Z2lu
cy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9wbHVnaW5zL25wcC1zZXQtd2luZG93LWNhbGxlZC1k
dXJpbmctZGVzdHJ1Y3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyM2U1ZGU5MzliNGM0
ODA2MjI2ZjNiZGYzYjA5MmRiNTQ2ZDBkY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvcGx1Z2lucy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3Ry
dWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAwOiBQTFVHSU46IFN1Y2Nlc3M6IE5QUF9TZXRXaW5kb3cgd2FzIG5vdCBjYWxsZWQgZHVyaW5n
IHBsdWdpbiBkZXN0cnVjdGlvbgorVGhpcyB0ZXN0cyB3aGV0aGVyIGEgTlBQX1NldFdpbmRvdyBp
cyBjYWxsZWQgZHVyaW5nIHBsdWdpbiBkZXN0cnVjdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13
azIvU2tpcHBlZAppbmRleCBlNjhjNzFmYjI1NDlhYzBhYmZlNzJlYTA4Y2MxN2Q2OTU0YzhhMTIw
Li5kZTJlYTg1MTc2NmZkNzFmZTg0ODIzZTE4YzUzODc0YmQ3ZTVjOGRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4td2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luLXdrMi9Ta2lwcGVkCkBAIC0xNjQsOSArMTY0LDYgQEAgaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1idWZmZXJlZC5odG1sCiAjIENyYXNoZXMgaHR0cDovL3dlYmtpdC5vcmcvYi81NTc3
OAogZmFzdC9mcmFtZXMvaWZyYW1lLXBsdWdpbi1sb2FkLXJlbW92ZS1kb2N1bWVudC1jcmFzaC5o
dG1sCiAKLSMgQ2F1c2VzIG5leHQgdGVzdCB0byBjcmFzaD8gaHR0cDovL3dlYmtpdC5vcmcvYi81
NTc4MAotcGxhdGZvcm0vd2luL3BsdWdpbnMvZHJhd3MtZ3JhZGllbnQuaHRtbAotCiAjIE5vIGtl
eWdlbiBzdXBwb3J0CiBmYXN0L2h0bWwva2V5Z2VuLmh0bWwKIGZhc3QvaW52YWxpZC9yZXNpZHVh
bC1zdHlsZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lu
cy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL25wcC1zZXQtd2luZG93LWNhbGxlZC1k
dXJpbmctZGVzdHJ1Y3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4OWUzMWQwZTI2ZDJk
NDM3N2UzZTQxZDM5ZTNjMGEyYWVhYjUxYjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3Ry
dWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAwOiBQTFVHSU46IFN1Y2Nlc3M6IE5QUF9TZXRXaW5kb3cgd2FzIGNhbGxlZCBkdXJpbmcgcGx1
Z2luIGRlc3RydWN0aW9uCitUaGlzIHRlc3RzIHdoZXRoZXIgYSBOUFBfU2V0V2luZG93IGlzIGNh
bGxlZCBkdXJpbmcgcGx1Z2luIGRlc3RydWN0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGx1Z2lucy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsdWdpbnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1cmluZy1k
ZXN0cnVjdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg5ZTMxZDBlMjZkMmQ0Mzc3ZTNl
NDFkMzllM2MwYTJhZWFiNTFiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsdWdp
bnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1cmluZy1kZXN0cnVjdGlvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBTdWNjZXNz
OiBOUFBfU2V0V2luZG93IHdhcyBjYWxsZWQgZHVyaW5nIHBsdWdpbiBkZXN0cnVjdGlvbgorVGhp
cyB0ZXN0cyB3aGV0aGVyIGEgTlBQX1NldFdpbmRvdyBpcyBjYWxsZWQgZHVyaW5nIHBsdWdpbiBk
ZXN0cnVjdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvbnBwLXNldC13aW5k
b3ctY2FsbGVkLWR1cmluZy1kZXN0cnVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9u
cHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDJkNTA0OTA2MWFjMWI0YmVmODMyZGI0NWFlMjFhNTljNWU0MGZiOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsdWdpbnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1cmluZy1kZXN0
cnVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxlbWJlZCB0eXBlPSJhcHBsaWNhdGlvbi94LXdl
YmtpdC10ZXN0LW5ldHNjYXBlIiB0ZXN0PSJucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRl
c3RydWN0aW9uIj48L2VtYmVkPgorICAgIDxwPlRoaXMgdGVzdHMgd2hldGhlciBhIE5QUF9TZXRX
aW5kb3cgaXMgY2FsbGVkIGR1cmluZyBwbHVnaW4gZGVzdHJ1Y3Rpb24uPC9wPgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHZhciBlbWJlZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpWzBdOworICAgICAgICBlbWJl
ZC5zZXRXaWxsQmVEZXN0cm95ZWQoKTsKKyAgICAgICAgZW1iZWQucGFyZW50Tm9kZS5yZW1vdmVD
aGlsZChlbWJlZCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMGU0ZjAyMTk1ZjI1OGY3MWVkM2E3OTMwZjhjZmI3N2FmOTQzOGQwMy4uY2I3YzRmZGI4NTk2
OWZiOTk2MWJlZjAxYzRmNDcwZGY0OTg3ZWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDExLTA0LTA3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKworICAgICAgICBQ
YXNzIE5QUF9TZXRXaW5kb3cgYSBudWxsIHdpbmRvdyBoYW5kbGUgZHVyaW5nIHBsdWdpbiBkZXN0
cnVjdGlvbiBvbiBub24tTWFjIHBsYXRmb3JtcworCisgICAgICAgIFRoaXMgbWF0Y2hlcyBXZWJL
aXQxLgorCisgICAgICAgIEZpeGVzIDxodHRwOi8vd2Via2l0Lm9yZy9iLzQ3MDA5PiBXZWJLaXQy
IG5lZWRzIHRvIGNhbGwgTlBQX1NldFdpbmRvdyB3aGVuIGRlc3Ryb3lpbmcgYQorICAgICAgICBw
bHVnaW4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpkZXN0cm95KTogTnVsbCBvdXQgb3VyIE5QV2luZG93
J3Mgd2luZG93IGhhbmRsZSBhbmQgcGFzcyBpdCB0bworICAgICAgICBOUFBfU2V0V2luZG93ICh1
bmxlc3Mgd2UncmUgb24gTWFjKS4KKwogMjAxMS0wNC0wNyAgTWFjaWVqIFN0YWNob3dpYWsgIDxt
anNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luLmNwcAppbmRleCA3ZDAwMjE5OGE5NTIzZTkxMjE4MmMwNmQ1YjUwZjUzMzdk
NGFlMzA2Li41NzRkZjBkNjg0NDNmNDA0MmExODBlMTIzMWIzMjg5NzEyODE1ZjBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpbi5jcHAKQEAgLTQ5MSw2ICs0OTEsMTEgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbjo6ZGVzdHJveSgpCiAgICAgLy8gU3RvcCBhbGwgc3RyZWFtcy4KICAgICBzdG9wQWxsU3Ry
ZWFtcygpOwogCisjaWYgIVBMVUdJTl9BUkNISVRFQ1RVUkUoTUFDKQorICAgIG1fbnBXaW5kb3cu
d2luZG93ID0gMDsKKyAgICBjYWxsU2V0V2luZG93KCk7CisjZW5kaWYKKwogICAgIE5QUF9EZXN0
cm95KDApOwogCiAgICAgbV9pc1N0YXJ0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyNzdmMGZmNGE1NWQwNDY0NDI2YTUyNTc2
MzhiMTNkY2FjZWQxMDY1Li5kZmRlNGE5ODgzNzQ4MmMxYTM0NGVjZjVjNDgwY2JmZTMyMTYzOTI4
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsNTEgQEAKIDIwMTEtMDQtMDcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgog
CisgICAgICAgIFRlc3QgdGhhdCBOUFBfU2V0V2luZG93IGlzIHBhc3NlZCBhIG51bGwgd2luZG93
IGhhbmRsZSBkdXJpbmcgcGx1Z2luIGRlc3RydWN0aW9uIG9uIG5vbi1NYWMgcGxhdGZvcm1zCisK
KyAgICAgICAgVGVzdCBmb3IgPGh0dHA6Ly93ZWJraXQub3JnL2IvNDcwMDk+IFdlYktpdDIgbmVl
ZHMgdG8gY2FsbCBOUFBfU2V0V2luZG93IHdoZW4gZGVzdHJveWluZyBhCisgICAgICAgIHBsdWdp
bgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHA6CisgICAgICAg
IChwbHVnaW5Mb2dXaXRoQXJndW1lbnRzKTogTW92ZWQgY29kZSB0byBmb3JtYXQgYW5kIGxvZyB0
aGUgbWVzc2FnZSBoZXJlLi4uCisgICAgICAgIChwbHVnaW5Mb2cpOiAuLi5mcm9tIGhlcmUuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0
Lmg6IEFkZGVkIHBsdWdpbkxvZ1dpdGhBcmd1bWVudHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5jcHA6CisgICAgICAgIChQbHVnaW5U
ZXN0Ojpsb2cpOiBBZGRlZC4gQ2FsbHMgdGhyb3VnaCB0byBwbHVnaW5Mb2dXaXRoQXJndW1lbnRz
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRl
c3QuaDogQWRkZWQgbG9nLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luL1Rlc3RzL05QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChOUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbjo6c2V0V2ls
bEJlRGVzdHJveWVkKTogUmVjb3JkcyB0aGF0IGRlc3RydWN0aW9uIGlzIGFib3V0CisgICAgICAg
IHRvIGJlZ2luLgorICAgICAgICAoTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb246
Ok5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uKTogU2ltcGxlCisgICAgICAgIGNv
bnN0cnVjdG9yLgorICAgICAgICAoTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb246
Ok5QUF9HZXRWYWx1ZSk6IENyZWF0ZXMgYW5kIHJldHVybnMgYSBTY3JpcHRPYmplY3QgdGhhdAor
ICAgICAgICBjYW4gYmUgdXNlZCB0byBpbnZva2Ugb3VyIHNldFdpbGxCZURlc3Ryb3llZCBmdW5j
dGlvbi4KKyAgICAgICAgKE5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uOjpOUFBf
U2V0V2luZG93KTogUmVjb3JkcyB3aGF0IGhhcyBoYXBwZW5lZCAoYW5kIGxvZ3MgaWYKKyAgICAg
ICAgYW55dGhpbmcgdW5leHBlY3RlZCBoYXBwZW5zKS4KKyAgICAgICAgKE5QUFNldFdpbmRvd0Nh
bGxlZER1cmluZ0Rlc3RydWN0aW9uOjpOUFBfRGVzdHJveSk6IE9uIE1hYywgbG9ncyBhIGZhaWx1
cmUgbWVzc2FnZSBpZgorICAgICAgICBOUFBfU2V0V2luZG93IHdhcyBjYWxsZWQgZHVyaW5nIGRl
c3RydWN0aW9uLiBPbiBvdGhlciBwbGF0Zm9ybXMsIGxvZ3MgYSBmYWlsdXJlIG1lc3NhZ2UgaWYK
KyAgICAgICAgTlBQX1NldFdpbmRvdyB3YXMgKm5vdCogY2FsbGVkIGR1cmluZyBkZXN0cnVjdGlv
bi4KKyAgICAgICAgKE5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uOjpTY3JpcHRP
YmplY3Q6Omhhc01ldGhvZCk6IFJldHVybiB0cnVlIGZvciBvdXIgb25seQorICAgICAgICBtZXRo
b2QsIHNldFdpbGxCZURlc3Ryb3llZC4KKyAgICAgICAgKE5QUFNldFdpbmRvd0NhbGxlZER1cmlu
Z0Rlc3RydWN0aW9uOjpTY3JpcHRPYmplY3Q6Omludm9rZSk6IENhbGwgdGhyb3VnaCB0byB0aGUg
UGx1Z2luVGVzdAorICAgICAgICBvYmplY3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi93aW4vVGVzdE5ldHNjYXBlUGx1Z2luLnZjcHJv
ajoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5l
dHNjYXBlUGx1Z2luLnBybzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgQWRk
ZWQgbmV3IHRlc3QuCisKKyAgICAgICAgKiBTY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzOiBT
a2lwIHRoZSBuZXcgdGVzdCB3aGVuIHVzaW5nIG91dC1vZi1wcm9jZXNzIHBsdWdpbnMgd2l0aAor
ICAgICAgICBXZWJLaXQxIG9uIE1hYywgc2luY2UgaXQgY2FuJ3Qgd29yayBwcm9wZXJseSBkdWUg
dG8gPGh0dHA6Ly93ZWJraXQub3JnL2IvNTgwNzc+LgorCisyMDExLTA0LTA3ICBBZGFtIFJvYmVu
ICA8YXJvYmVuQGFwcGxlLmNvbT4KKwogICAgICAgICBCdWlsZCBmaXgKIAogICAgICAgICAqIEJ1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL21hc3Rlci5jZmc6IEFkZGVk
IGEgbWlzc2luZyBpbXBvcnQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3Y2M0Yzlj
OTQwZTQ0OTdlZWY3NGQ5NTAxNWQ1MWY5MzNlNTg0ZmY2Li5hZjMwMDhlNmMwMTgwZWJkN2QwYWRi
ODcwZGJjYWY4ZTk0NTkwZjA4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNyw2
ICsxMzcsNyBAQAogCQlCQ0QwOEIzQTBFMTA1N0VGMDBBN0QwQzEgLyogQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNEMDhCMzkwRTEwNTdFRjAwQTdEMEMxIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cCAqLzsgfTsKIAkJQkNEMDhCNzEwRTEwNTlEMjAwQTdEMEMxIC8qIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNEMDhCNzAwRTEwNTlEMjAwQTdEMEMxIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFj
Lm1tICovOyB9OwogCQlCQ0Y2QzY1MDBDOThFOUMwMDBBQzA2M0UgLyogR0NDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjZDNjRG
MEM5OEU5QzAwMEFDMDYzRSAvKiBHQ0NvbnRyb2xsZXIuY3BwICovOyB9OworCQlDMDMxMTgyQjEz
NEU0QTJCMDA5MTk3NTcgLyogTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzAzMTE4MkEx
MzRFNEEyQjAwOTE5NzU3IC8qIE5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNw
cCAqLzsgfTsKIAkJQzA2RjlBQkMxMjY3QTcwNjAwNThFMUY2IC8qIFBhc3NEaWZmZXJlbnROUFBT
dHJ1Y3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzA2RjlBQkIxMjY3QTcwNjAwNThFMUY2IC8qIFBhc3NEaWZmZXJlbnROUFBTdHJ1Y3QuY3BwICov
OyB9OwogCQlDMEU3MjA3NTEyODFDODI4MDA0RUY1MzMgLyogRXZhbHVhdGVKU0FmdGVyUmVtb3Zp
bmdQbHVnaW5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMwRTcyMDc0MTI4MUM4MjgwMDRFRjUzMyAvKiBFdmFsdWF0ZUpTQWZ0ZXJSZW1v
dmluZ1BsdWdpbkVsZW1lbnQuY3BwICovOyB9OwogCQlDMEVDM0M5QzEyNzg3RjA1MDA5MzkxNjQg
LyogTnVsbE5QUEdldFZhbHVlUG9pbnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMEVDM0M5QjEyNzg3RjA1MDA5MzkxNjQgLyogTnVsbE5QUEdl
dFZhbHVlUG9pbnRlci5jcHAgKi87IH07CkBAIC0zMTksNiArMzIwLDcgQEAKIAkJQkNEMDhCMzkw
RTEwNTdFRjAwQTdEMEMxIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEMDhCNzAwRTEwNTlEMjAwQTdEMEMxIC8q
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW07IHBhdGggPSBtYWMv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDRjZDNjRGMEM5OEU5QzAwMEFDMDYzRSAvKiBHQ0NvbnRyb2xsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdDQ29udHJvbGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMwMzExODJBMTM0RTRBMkIwMDkxOTc1NyAvKiBOUFBTZXRX
aW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBOUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwNkY5QUJCMTI2N0E3MDYwMDU4RTFGNiAvKiBQ
YXNzRGlmZmVyZW50TlBQU3RydWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBhc3NEaWZmZXJlbnROUFBTdHJ1Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMEU3MjA3NDEyODFDODI4MDA0RUY1MzMgLyogRXZhbHVhdGVKU0FmdGVyUmVtb3Zp
bmdQbHVnaW5FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEV2YWx1YXRlSlNBZnRlclJlbW92aW5nUGx1Z2luRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMwRUMzQzlCMTI3ODdGMDUwMDkzOTE2NCAvKiBOdWxsTlBQR2V0VmFs
dWVQb2ludGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE51bGxO
UFBHZXRWYWx1ZVBvaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDgz
LDYgKzQ4NSw3IEBACiAJCQkJMUEzRTI4QTkxMzExRDczQjAwNTAxMzQ5IC8qIEdldFVSTFdpdGhK
YXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5jcHAgKi8sCiAJCQkJMUFENENCMjAxMkE2RDEz
NTAwMjdBN0FGIC8qIEdldFVzZXJBZ2VudFdpdGhOdWxsTlBQRnJvbU5QUE5ldy5jcHAgKi8sCiAJ
CQkJMUFDRjg5OEIxMzJFRjQxQzAwRTkxNUQ0IC8qIE5QRGVhbGxvY2F0ZUNhbGxlZEJlZm9yZU5Q
U2h1dGRvd24uY3BwICovLAorCQkJCUMwMzExODJBMTM0RTRBMkIwMDkxOTc1NyAvKiBOUFBTZXRX
aW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbi5jcHAgKi8sCiAJCQkJMUEyNEJBQTgxMjA3MzRF
RTAwRkJCMDU5IC8qIE5QUnVudGltZU9iamVjdEZyb21EZXN0cm95ZWRQbHVnaW4uY3BwICovLAog
CQkJCTFBQzc3RENFMTIwNjA1QjYwMDVDMTlFRiAvKiBOUFJ1bnRpbWVSZW1vdmVQcm9wZXJ0eS5j
cHAgKi8sCiAJCQkJQzBFQzNDOUIxMjc4N0YwNTAwOTM5MTY0IC8qIE51bGxOUFBHZXRWYWx1ZVBv
aW50ZXIuY3BwICovLApAQCAtNzg2LDYgKzc4OSw3IEBACiAJCQkJMUEzRTI4QUExMzExRDczQjAw
NTAxMzQ5IC8qIEdldFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQUNGODk4RDEzMkVGNDFDMDBFOTE1RDQgLyogTlBEZWFsbG9jYXRl
Q2FsbGVkQmVmb3JlTlBTaHV0ZG93bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMxRUIzODEz
NDY2QUMxMDAwMTczNzIgLyogQ29udmVydFBvaW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMw
MzExODJCMTM0RTRBMkIwMDkxOTc1NyAvKiBOUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHAKaW5kZXggMjRlZTEyYzc3YThi
ZmYzMTQ5NjU1MDU0OWI0MTQ2ZWIxNTViYzdlZi4uNzViODQ4YjRiYzAyNzJmYTg4ZDJkMDcwNzgw
OTc3MDdlNzAyNmE5OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNj
YXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5jcHAKQEAgLTczLDE0ICs3MywxMCBAQCBzdGF0
aWMgdm9pZCBwbHVnaW5Mb2dXaXRoV2luZG93T2JqZWN0VmFyaWFibGVBcmdzKE5QT2JqZWN0KiB3
aW5kb3dPYmplY3QsIE5QUCBpbgogICAgIHBsdWdpbkxvZ1dpdGhXaW5kb3dPYmplY3Qod2luZG93
T2JqZWN0LCBpbnN0YW5jZSwgbWVzc2FnZSk7CiB9CiAgICAgICAgICAgICAgCi0vLyBIZWxwZXIg
ZnVuY3Rpb24gdG8gbG9nIHRvIHRoZSBjb25zb2xlIG9iamVjdC4KLXZvaWQgcGx1Z2luTG9nKE5Q
UCBpbnN0YW5jZSwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCit2b2lkIHBsdWdpbkxvZ1dpdGhB
cmd1bWVudHMoTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykK
IHsKLSAgICB2YV9saXN0IGFyZ3M7Ci0gICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKICAgICBj
aGFyIG1lc3NhZ2VbMjA0OF0gPSAiUExVR0lOOiAiOwogICAgIHZzcHJpbnRmKG1lc3NhZ2UgKyBz
dHJsZW4obWVzc2FnZSksIGZvcm1hdCwgYXJncyk7Ci0gICAgdmFfZW5kKGFyZ3MpOwogCiAgICAg
TlBPYmplY3QqIHdpbmRvd09iamVjdCA9IDA7CiAgICAgTlBFcnJvciBlcnJvciA9IGJyb3dzZXIt
PmdldHZhbHVlKGluc3RhbmNlLCBOUE5WV2luZG93TlBPYmplY3QsICZ3aW5kb3dPYmplY3QpOwpA
QCAtOTMsNiArODksMTUgQEAgdm9pZCBwbHVnaW5Mb2coTlBQIGluc3RhbmNlLCBjb25zdCBjaGFy
KiBmb3JtYXQsIC4uLikKICAgICBicm93c2VyLT5yZWxlYXNlb2JqZWN0KHdpbmRvd09iamVjdCk7
CiB9CiAKKy8vIEhlbHBlciBmdW5jdGlvbiB0byBsb2cgdG8gdGhlIGNvbnNvbGUgb2JqZWN0Lgor
dm9pZCBwbHVnaW5Mb2coTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKK3sK
KyAgICB2YV9saXN0IGFyZ3M7CisgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICBwbHVn
aW5Mb2dXaXRoQXJndW1lbnRzKGluc3RhbmNlLCBmb3JtYXQsIGFyZ3MpOworICAgIHZhX2VuZChh
cmdzKTsKK30KKwogc3RhdGljIHZvaWQgcGx1Z2luSW52YWxpZGF0ZShOUE9iamVjdCopOwogc3Rh
dGljIGJvb2wgcGx1Z2luSGFzUHJvcGVydHkoTlBPYmplY3QqLCBOUElkZW50aWZpZXIgbmFtZSk7
CiBzdGF0aWMgYm9vbCBwbHVnaW5IYXNNZXRob2QoTlBPYmplY3QqLCBOUElkZW50aWZpZXIgbmFt
ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4v
UGx1Z2luT2JqZWN0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4v
UGx1Z2luT2JqZWN0LmgKaW5kZXggYzI2NGU0OTg4N2Q4ZWM4YjM3YWZmZDUwNmMxYmViOWU3NmQ5
NGU3Yi4uMTk2ZWEwNDUxNzJkMzY0N2Y0NDA4MWRkZTExNDk4NjJkMTQyNjkwYiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpbk9iamVjdC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmpl
Y3QuaApAQCAtODcsNiArODcsNyBAQCBleHRlcm4gdm9pZCBoYW5kbGVDYWxsYmFjayhQbHVnaW5P
YmplY3QqIG9iamVjdCwgY29uc3QgY2hhciAqdXJsLCBOUFJlYXNvbiByZWFzbwogZXh0ZXJuIHZv
aWQgbm90aWZ5U3RyZWFtKFBsdWdpbk9iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyICp1cmwsIGNv
bnN0IGNoYXIgKmhlYWRlcnMpOwogZXh0ZXJuIHZvaWQgdGVzdE5QUnVudGltZShOUFAgbnBwKTsK
IGV4dGVybiB2b2lkIHBsdWdpbkxvZyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIGZvcm1hdCwg
Li4uKTsKK2V4dGVybiB2b2lkIHBsdWdpbkxvZ1dpdGhBcmd1bWVudHMoTlBQIGluc3RhbmNlLCBj
b25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncyk7CiBleHRlcm4gYm9vbCB0ZXN0RG9jdW1l
bnRPcGVuKE5QUCBucHApOwogZXh0ZXJuIGJvb2wgdGVzdFdpbmRvd09wZW4oTlBQIG5wcCk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVn
aW5UZXN0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVn
aW5UZXN0LmNwcAppbmRleCA0OTUxMTdjM2E4NTY5ZTU3MWZhNDc3MWIxMmU3MTZkYjAzYjFmNzJk
Li45MTgxYTg2ZDA5YWQ0OTdjNDg0ZGJiYzk2OGNlYzg5YzFhODIzZTljIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luVGVzdC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuY3Bw
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJQbHVnaW5UZXN0LmgiCiAKKyNpbmNsdWRl
ICJQbHVnaW5PYmplY3QuaCIKICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxzdHJpbmcu
aD4KIApAQCAtMTY4LDYgKzE2OSwxNCBAQCB2b2lkIFBsdWdpblRlc3Q6OmV4ZWN1dGVTY3JpcHQo
Y29uc3QgY2hhciogc2NyaXB0KQogICAgIGJyb3dzZXItPnJlbGVhc2V2YXJpYW50dmFsdWUoJmJy
b3dzZXJSZXN1bHQpOwogfQogCit2b2lkIFBsdWdpblRlc3Q6OmxvZyhjb25zdCBjaGFyKiBmb3Jt
YXQsIC4uLikKK3sKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0
KTsKKyAgICBwbHVnaW5Mb2dXaXRoQXJndW1lbnRzKG1fbnBwLCBmb3JtYXQsIGFyZ3MpOworICAg
IHZhX2VuZChhcmdzKTsKK30KKwogdm9pZCBQbHVnaW5UZXN0Ojp3YWl0VW50aWxEb25lKCkKIHsK
ICAgICBleGVjdXRlU2NyaXB0KCJsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCki
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9Q
bHVnaW5UZXN0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1
Z2luVGVzdC5oCmluZGV4IGJmMjJiNGY1MzZjYWU1YmU4YjdiZmVkMTI1YjQ0MmI2NTkzOTJkMDIu
LmI3MDQwMTQ5ZDg4YWE0MDM3NzNmZmVmN2EwNDAxNzk3ZTllMWQyYmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5UZXN0LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1BsdWdpblRlc3QuaApAQCAt
NzgsNiArNzgsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgZXhlY3V0ZVNjcmlwdChj
b25zdCBjaGFyKik7CisgICAgdm9pZCBsb2coY29uc3QgY2hhciogZm9ybWF0LCAuLi4pOwogCiAg
ICAgdm9pZCByZWdpc3Rlck5QU2h1dGRvd25GdW5jdGlvbih2b2lkICgqKSgpKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL05QUFNl
dFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9OUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVj
dGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE2MzI0M2U4OTRkMjUxM2I4NTQ4YzRiNzQ3MzdkYmVkZGE1
NDdlNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2Fw
ZVBsdWdJbi9UZXN0cy9OUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbi5jcHAKQEAg
LTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiUGx1Z2luVGVzdC5oIgorCisj
aW5jbHVkZSAiUGx1Z2luT2JqZWN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKKy8vIE5Q
UF9TZXRXaW5kb3cgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIGEgbnVsbCB3aW5kb3cgaGFuZGxlIGFz
IGRlc3RydWN0aW9uIGJlZ2lucyBvbiBub24tTWFjIHBsYXRmb3Jtcy4KKworY2xhc3MgTlBQU2V0
V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb24gOiBwdWJsaWMgUGx1Z2luVGVzdCB7CitwdWJs
aWM6CisgICAgTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb24oTlBQLCBjb25zdCBz
dHJpbmcmIGlkZW50aWZpZXIpOworCisgICAgdm9pZCBzZXRXaWxsQmVEZXN0cm95ZWQoKSB7IG1f
d2lsbEJlRGVzdHJveWVkID0gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIHN0cnVjdCBTY3JpcHRP
YmplY3QgOiBPYmplY3Q8U2NyaXB0T2JqZWN0PiB7CisgICAgICAgIGJvb2wgaGFzTWV0aG9kKE5Q
SWRlbnRpZmllcik7CisgICAgICAgIGJvb2wgaW52b2tlKE5QSWRlbnRpZmllciwgY29uc3QgTlBW
YXJpYW50KiwgdWludDMyX3QsIE5QVmFyaWFudCopOworICAgIH07CisKKyAgICB2aXJ0dWFsIE5Q
RXJyb3IgTlBQX0dldFZhbHVlKE5QUFZhcmlhYmxlLCB2b2lkKik7CisgICAgdmlydHVhbCBOUEVy
cm9yIE5QUF9TZXRXaW5kb3coTlBQLCBOUFdpbmRvdyopOworICAgIHZpcnR1YWwgTlBFcnJvciBO
UFBfRGVzdHJveShOUFNhdmVkRGF0YSoqKTsKKworICAgIGJvb2wgbV93aWxsQmVEZXN0cm95ZWQ7
CisgICAgYm9vbCBtX3NldFdpbmRvd0NhbGxlZEJlZm9yZURlc3RydWN0aW9uOworICAgIGJvb2wg
bV9zZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbjsKK307CisKK3N0YXRpYyBQbHVnaW5U
ZXN0OjpSZWdpc3RlcjxOUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbj4gcmVnaXN0
cmFyKCJucHAtc2V0LXdpbmRvdy1jYWxsZWQtZHVyaW5nLWRlc3RydWN0aW9uIik7CisKK05QUFNl
dFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uOjpOUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdE
ZXN0cnVjdGlvbihOUFAgbnBwLCBjb25zdCBzdHJpbmcmIGlkZW50aWZpZXIpCisgICAgOiBQbHVn
aW5UZXN0KG5wcCwgaWRlbnRpZmllcikKKyAgICAsIG1fd2lsbEJlRGVzdHJveWVkKGZhbHNlKQor
ICAgICwgbV9zZXRXaW5kb3dDYWxsZWRCZWZvcmVEZXN0cnVjdGlvbihmYWxzZSkKKyAgICAsIG1f
c2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb24oZmFsc2UpCit7Cit9CisKK05QRXJyb3Ig
TlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb246Ok5QUF9HZXRWYWx1ZShOUFBWYXJp
YWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCit7CisgICAgaWYgKHZhcmlhYmxlICE9IE5QUFZw
bHVnaW5TY3JpcHRhYmxlTlBPYmplY3QpCisgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VS
Uk9SOworCisgICAgKnN0YXRpY19jYXN0PE5QT2JqZWN0Kio+KHZhbHVlKSA9IFNjcmlwdE9iamVj
dDo6Y3JlYXRlKHRoaXMpOworCisgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworfQorCitOUEVy
cm9yIE5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uOjpOUFBfU2V0V2luZG93KE5Q
UCwgTlBXaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAobV93aWxsQmVEZXN0cm95ZWQpIHsKKyAg
ICAgICAgbV9zZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgICAg
IGlmICghbV9zZXRXaW5kb3dDYWxsZWRCZWZvcmVEZXN0cnVjdGlvbikgeworICAgICAgICAgICAg
bG9nKCJGYWlsOiBzZXRXaWxsQmVEZXN0cm95ZWQoKSB3YXMgY2FsbGVkIGJlZm9yZSB0aGUgaW5p
dGlhbCBOUFBfU2V0V2luZG93IGNhbGwiKTsKKyAgICAgICAgICAgIHJldHVybiBOUEVSUl9OT19F
UlJPUjsKKyAgICAgICAgfQorI2lmbmRlZiBYUF9NQUNPU1gKKyAgICAgICAgaWYgKHdpbmRvdy0+
d2luZG93KQorICAgICAgICAgICAgbG9nKCJGYWlsOiBOUFBfU2V0V2luZG93IHBhc3NlZCBhIG5v
bi1udWxsIHdpbmRvdyBkdXJpbmcgcGx1Z2luIGRlc3RydWN0aW9uIik7CisjZW5kaWYKKyAgICAg
ICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgIH0KKworICAgIGlmIChtX3NldFdpbmRvd0Nh
bGxlZEJlZm9yZURlc3RydWN0aW9uKSB7CisgICAgICAgIGxvZygiRmFpbDogTlBQX1NldFdpbmRv
dyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgYmVmb3JlIHBsdWdpbiBkZXN0cnVjdGlvbiIpOworICAg
ICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CisgICAgfQorCisgICAgbV9zZXRXaW5kb3dDYWxs
ZWRCZWZvcmVEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwor
fQorCitOUEVycm9yIE5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uOjpOUFBfRGVz
dHJveShOUFNhdmVkRGF0YSoqKQoreworI2lmZGVmIFhQX01BQ09TWAorICAgIGJvb2wgc2hvdWxk
SGF2ZUJlZW5DYWxsZWREdXJpbmdEZXN0cnVjdGlvbiA9IGZhbHNlOworI2Vsc2UKKyAgICBib29s
IHNob3VsZEhhdmVCZWVuQ2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb24gPSB0cnVlOworI2VuZGlmCisK
KyAgICBpZiAobV9zZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbiA9PSBzaG91bGRIYXZl
QmVlbkNhbGxlZER1cmluZ0Rlc3RydWN0aW9uKQorICAgICAgICBsb2coIlN1Y2Nlc3M6IE5QUF9T
ZXRXaW5kb3cgJXMgY2FsbGVkIGR1cmluZyBwbHVnaW4gZGVzdHJ1Y3Rpb24iLCBzaG91bGRIYXZl
QmVlbkNhbGxlZER1cmluZ0Rlc3RydWN0aW9uID8gIndhcyIgOiAid2FzIG5vdCIpOworICAgIGVs
c2UKKyAgICAgICAgbG9nKCJGYWlsOiBOUFBfU2V0V2luZG93ICVzIGNhbGxlZCBkdXJpbmcgcGx1
Z2luIGRlc3RydWN0aW9uIiwgc2hvdWxkSGF2ZUJlZW5DYWxsZWREdXJpbmdEZXN0cnVjdGlvbiA/
ICJ3YXMgbm90IiA6ICJ3YXMiKTsKKworICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKK30KKwor
Ym9vbCBOUFBTZXRXaW5kb3dDYWxsZWREdXJpbmdEZXN0cnVjdGlvbjo6U2NyaXB0T2JqZWN0Ojpo
YXNNZXRob2QoTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUpCit7CisgICAgcmV0dXJuIG1ldGhvZE5h
bWUgPT0gcGx1Z2luVGVzdCgpLT5OUE5fR2V0U3RyaW5nSWRlbnRpZmllcigic2V0V2lsbEJlRGVz
dHJveWVkIik7Cit9CisKK2Jvb2wgTlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rpb246
OlNjcmlwdE9iamVjdDo6aW52b2tlKE5QSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBOUFZh
cmlhbnQqLCB1aW50MzJfdCwgTlBWYXJpYW50KikKK3sKKyAgICBhc3NlcnQoaWRlbnRpZmllciA9
PSBwbHVnaW5UZXN0KCktPk5QTl9HZXRTdHJpbmdJZGVudGlmaWVyKCJzZXRXaWxsQmVEZXN0cm95
ZWQiKSk7CisgICAgc3RhdGljX2Nhc3Q8TlBQU2V0V2luZG93Q2FsbGVkRHVyaW5nRGVzdHJ1Y3Rp
b24qPihwbHVnaW5UZXN0KCkpLT5zZXRXaWxsQmVEZXN0cm95ZWQoKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJ
bi93aW4vVGVzdE5ldHNjYXBlUGx1Z2luLnZjcHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3ROZXRzY2FwZVBsdWdJbi93aW4vVGVzdE5ldHNjYXBlUGx1Z2luLnZjcHJvagppbmRleCA1ODU2
OTg1YmRlODA1YWVhMzBiNDU3MzIyYzJjNDExZDdjODE5N2E2Li5iN2JmNTRiM2Q4NTQ4YzY2Yjgx
M2YxZTc5ZjRkM2I1NzU2ZGYyZTdiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0TmV0c2NhcGVQbHVnSW4vd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi52Y3Byb2oKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL3dpbi9UZXN0TmV0c2NhcGVQbHVn
aW4udmNwcm9qCkBAIC00MTAsNiArNDEwLDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXE5QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rl
c3RydWN0aW9uLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVGVzdHNcTlBSdW50aW1lT2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5jcHAiCiAJ
CQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dE5ldHNjYXBlUGx1Z2luL1Rlc3ROZXRzY2FwZVBsdWdpbi5wcm8gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnBybwppbmRleCA2
NzQxNjY4NWU2ZjA4MmM4MDQ0MTk0ZGJlOTk3MGY4ODZkZmNmYWQ0Li5lMDNjODc2OGM1NDBmZGE0
MjkyMDBhOTcyMmY2NjBkNjY0NTI3ZDMyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2luLnBybworKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0TmV0c2NhcGVQbHVnaW4vVGVzdE5ldHNjYXBlUGx1Z2lu
LnBybwpAQCAtMzMsNiArMzMsNyBAQCBTT1VSQ0VTID0gUGx1Z2luT2JqZWN0LmNwcCBcCiAgICAg
ICAgICAgVGVzdHMvR2V0VVJMV2l0aEphdmFTY3JpcHRVUkxEZXN0cm95aW5nUGx1Z2luLmNwcCBc
CiAgICAgICAgICAgVGVzdHMvR2V0VXNlckFnZW50V2l0aE51bGxOUFBGcm9tTlBQTmV3LmNwcCBc
CiAgICAgICAgICAgVGVzdHMvTlBEZWFsbG9jYXRlQ2FsbGVkQmVmb3JlTlBTaHV0ZG93bi5jcHAg
XAorICAgICAgICAgIFRlc3RzL05QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNw
cCBcCiAgICAgICAgICAgVGVzdHMvTlBSdW50aW1lT2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5j
cHAgXAogICAgICAgICAgIFRlc3RzL05QUnVudGltZVJlbW92ZVByb3BlcnR5LmNwcCBcCiAgICAg
ICAgICAgVGVzdHMvTnVsbE5QUEdldFZhbHVlUG9pbnRlci5jcHAgXApkaWZmIC0tZ2l0IGEvVG9v
bHMvR05VbWFrZWZpbGUuYW0gYi9Ub29scy9HTlVtYWtlZmlsZS5hbQppbmRleCA2ZGUxYWY1OWFk
MzQ3MDRlOTdkZjY0Zjc1MDI4ZDk2MmNiMTAwMTVjLi42MmE2NGQ3NzFlMTA0NTYyYzQ2MGI4YTRl
ZGM4YjZkNDRiNmUwOGU0IDEwMDY0NAotLS0gYS9Ub29scy9HTlVtYWtlZmlsZS5hbQorKysgYi9U
b29scy9HTlVtYWtlZmlsZS5hbQpAQCAtMTgxLDYgKzE4MSw3IEBAIFRlc3ROZXRzY2FwZVBsdWdp
bl9saWJ0ZXN0bmV0c2NhcGVwbHVnaW5fbGFfU09VUkNFUyA9IFwKIAlUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvR2V0VVJMV2l0aEphdmFTY3JpcHRVUkxEZXN0
cm95aW5nUGx1Z2luLmNwcCBcCiAJVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1
Z0luL1Rlc3RzL0dldFVzZXJBZ2VudFdpdGhOdWxsTlBQRnJvbU5QUE5ldy5jcHAgXAogCVRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9UZXN0cy9OUERlYWxsb2NhdGVDYWxs
ZWRCZWZvcmVOUFNodXRkb3duLmNwcCBcCisJVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNj
YXBlUGx1Z0luL1Rlc3RzL05QUFNldFdpbmRvd0NhbGxlZER1cmluZ0Rlc3RydWN0aW9uLmNwcCBc
CiAJVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL1Rlc3RzL05QUnVudGlt
ZU9iamVjdEZyb21EZXN0cm95ZWRQbHVnaW4uY3BwIFwKIAlUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvTlBSdW50aW1lUmVtb3ZlUHJvcGVydHkuY3BwIFwKIAlU
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vVGVzdHMvTnVsbE5QUEdldFZh
bHVlUG9pbnRlci5jcHAgXApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtp
dC10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKaW5kZXggM2NhYjgw
ZmNkZGU1YmE1MzNiYzYzM2ViY2NmMGE3MzE3MGE2ZDEzYy4uYjZiZmVkMWVjMTU0NDhlOWM5NGIy
Yjc3OWY4YjgxY2VkMjMyNGUxNCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdl
YmtpdC10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCkBAIC02
MDAsNiArNjAwLDEyIEBAIGlmICghY2hlY2tXZWJDb3JlRmVhdHVyZVN1cHBvcnQoIlhIVE1MTVAi
LCAwKSkgewogICAgICRpZ25vcmVkRGlyZWN0b3JpZXN7J2Zhc3QveGh0bWxtcCd9ID0gMTsKIH0K
IAoraWYgKGlzQXBwbGVNYWNXZWJLaXQoKSAmJiAkcGxhdGZvcm0gbmUgIm1hYy13azIiICYmIG9z
WFZlcnNpb24oKS0+e21pbm9yfSA+PSA2ICYmIGFyY2hpdGVjdHVyZSgpID1+IC94ODZfNjQvKSB7
CisgICAgIyBUaGlzIHRlc3QgcmVsaWVzIG9uIGV4ZWN1dGluZyBKYXZhU2NyaXB0IGR1cmluZyBO
UFBfRGVzdHJveSwgd2hpY2ggaXNuJ3Qgc3VwcG9ydGVkIHdpdGgKKyAgICAjIG91dC1vZi1wcm9j
ZXNzIHBsdWdpbnMgaW4gV2ViS2l0MS4gU2VlIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU4MDc3Pi4K
KyAgICAkaWdub3JlZEZpbGVzeydwbHVnaW5zL25wcC1zZXQtd2luZG93LWNhbGxlZC1kdXJpbmct
ZGVzdHJ1Y3Rpb24uaHRtbCd9ID0gMTsKK30KKwogcHJvY2Vzc0lnbm9yZVRlc3RzKGpvaW4oJywn
LCBAaWdub3JlVGVzdHMpLCAiaWdub3JlLXRlc3RzIikgaWYgQGlnbm9yZVRlc3RzOwogaWYgKCEk
aWdub3JlU2tpcHBlZCkgewogICAgIGlmICghJHNraXBwZWRPbmx5IHx8IEBBUkdWID09IDApIHsK
</data>
<flag name="review"
          id="81247"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>