<?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>200418</bug_id>
          
          <creation_ts>2019-08-03 09:22:47 -0700</creation_ts>
          <short_desc>Ping loads should not prevent page caching</short_desc>
          <delta_ts>2025-04-08 17:17:26 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=291301</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1558290</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-03 09:22:47 -0700</bug_when>
    <thetext>Ping loads should not prevent page caching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558291</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-03 09:23:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/53901632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558294</commentid>
    <comment_count>2</comment_count>
      <attachid>375486</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-03 09:33:38 -0700</bug_when>
    <thetext>Created attachment 375486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558368</commentid>
    <comment_count>3</comment_count>
      <attachid>375486</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-08-04 11:02:14 -0700</bug_when>
    <thetext>Comment on attachment 375486
Patch

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

Two suggestions for refinement later; neither should block landing this exactly as is.

&gt; Source/WebCore/history/PageCache.cpp:466
&gt; +    // Stop all loads again before checking if we can still cache the page after firing the pagehide
&gt; +    // event, since the page may have started ping loads in its pagehide event handler.
&gt; +    for (Frame* frame = &amp;page-&gt;mainFrame(); frame; frame = frame-&gt;tree().traverseNext()) {
&gt; +        if (auto* documentLoader = frame-&gt;loader().documentLoader())
&gt; +            documentLoader-&gt;stopLoading();
&gt; +    }

Since this says &quot;again&quot; I assume there’s another copy of this loop somewhere. Could we share it rather than writing it out twice?

&gt; Source/WebCore/loader/DocumentLoader.cpp:128
&gt; +static bool shouldPendingCachedResourceLoadPreventPageCache(CachedResource&amp; cachedResource)

I think the local could be named just &quot;resource&quot; since its unambiguous in the context of this sort function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558380</commentid>
    <comment_count>4</comment_count>
      <attachid>375486</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-04 11:32:51 -0700</bug_when>
    <thetext>Comment on attachment 375486
Patch

Clearing flags on attachment: 375486

Committed r248265: &lt;https://trac.webkit.org/changeset/248265&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558381</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-04 11:32:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558393</commentid>
    <comment_count>6</comment_count>
      <attachid>375486</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-04 16:28:43 -0700</bug_when>
    <thetext>Comment on attachment 375486
Patch

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

&gt; Source/WebCore/loader/DocumentLoader.cpp:139
&gt; +        return false;

Similarly to prefetch, preloads should probably not prevent entering page cache.
Probably not a huge risk in practice but this would be nice to cover that case as well.
Something like (resource.isLinkPreload() &amp;&amp; resource.preloadResult() == CachedResource::PreloadResult::PreloadNotReferenced) might do the trick.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375486</attachid>
            <date>2019-08-03 09:33:38 -0700</date>
            <delta_ts>2019-08-04 11:32:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200418-20190803093336.patch</filename>
            <type>text/plain</type>
            <size>17436</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ2MDZhMzZjNjA1Nzg0
YTQ1MjZjMzk0NGU3MjRhOWU1ODA5ZGU5ZS4uMzU0ZThlNDM5OGRhMTc1NGI5NjgxODMzOGIwMzg0
ODliZDNkMTAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTA4LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGluZyBsb2FkcyBzaG91bGQg
bm90IHByZXZlbnQgcGFnZSBjYWNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA0MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzOTAxNjMy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5v
cm1hbGx5IHByZXZlbnQgcGFnZSBjYWNoaW5nIGlmIHRoZXJlIHdlcmUgYW55IHBlbmRpbmcgc3Vi
cmVzb3VyY2UgbG9hZHMgd2hlbiBuYXZpZ2F0aW5nLAorICAgICAgICB0byBhdm9pZCBjYWNoaW5n
IHBhcnRpYWwgLyBicm9rZW4gY29udGVudC4gSG93ZXZlciwgdGhpcyBzaG91bGQgbm90IGFwcGx5
IHRvIFBpbmcgLyBCZWFjb24KKyAgICAgICAgbG9hZHMgc2luY2UgdGhvc2UgZG8gbm90IGltcGFj
dCBwYWdlIHJlbmRlcmluZyBhbmQgY2FuIG91dGxpdmUgdGhlIHBhZ2UuCisKKyAgICAgICAgVGVz
dHM6IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLWNy
b3NzLW9yaWdpbi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sCisKKyAgICAgICAgKiBo
aXN0b3J5L1BhZ2VDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ2FjaGU6OmFkZElm
Q2FjaGVhYmxlKToKKyAgICAgICAgQWZ0ZXIgd2UndmUgZmlyZWQgdGhlICdwYWdlaGlkZScgZXZl
bnQgaW4gZWFjaCBmcmFtZSwgc3RvcCBhbGwgdGhlIGxvYWRzIGFnYWluLiBUaGlzIGlzIG5lZWRl
ZAorICAgICAgICBzaW5jZSBwYWdlcyBhcmUgYWxsb3dlZCB0byBzdGFydCBwaW5nIC8gYmVhY29u
IGxvYWRzIGluIHRoZWlyICdwYWdlaGlkZScgaGFuZGxlcnMuIElmIHdlIGRvIG5vdAorICAgICAg
ICBzdG9wIHRob3NlIGxvYWRzLCB0aGVuIHRoZSBuZXh0IGNhbGwgdG8gY2FuQ2FjaGVQYWdlKCkg
d291bGQgZmFpbCBiZWNhdXNlIHRoZSBEb2N1bWVudExvYWRlciBpcworICAgICAgICBzdGlsbCBs
b2FkaW5nLiBOb3RlIHRoYXQgd2UncmUgbm90IGFjdHVhbGx5IHByZXZlbnRpbmcgdGhlc2UgcGlu
ZyBsb2FkcyBmcm9tIGhpdHRpbmcgdGhlIHNlcnZlcgorICAgICAgICBzaW5jZSB3ZSBuZXZlciBj
YW5jZWwgcGFnZSBsb2FkcyBhbmQgdGhvc2UgY2FuIG91dGxpdmUgdGhlaXIgcGFnZS4KKworICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91
bGRQZW5kaW5nQ2FjaGVkUmVzb3VyY2VMb2FkUHJldmVudFBhZ2VDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjphcmVBbGxMb2FkZXJzUGFnZUNhY2hlQWNjZXB0YWJsZSk6CisgICAgICAgIE1ha2Ug
c3VyZSB0aGF0IFBpbmcgLyBCZWFjb24gLyBQcmVmZXRjaGVzIC8gSWNvbiBsb2FkcyBkbyBub3Qg
cHJldmVudCBwYWdlIGNhY2hpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
OjphZGRTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgIFR3ZWFrIGFzc2VydGlvbiB0aGF0IHdh
cyBpbmNvcnJlY3Qgc2luY2Ugd2UgYWN0dWFsbHkgYWxsb3cgcGluZyAvIGJlYWNvbiBsb2FkcyB3
aGVuIHRoZQorICAgICAgICBkb2N1bWVudCBpcyBhYm91dCB0byBlbnRlciBQYWdlQ2FjaGUgKHdo
aWxlIGZpcmluZyBwYWdlaGlkZSBldmVudCkuCisKIDIwMTktMDgtMDIgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVmIEZyYW1lIGluIERPTVdpbmRvdzo6c2Ny
ZWVuKiBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCAyMzc5
ZDlkYjdhMGRmNWUzMDNiNTk2NTEzZGEwZDVmYzIyODUzMjRhLi4wMDI5NjU1ODkyZDE1NGNiNTA0
M2UxZGEyMjgyNTg3OWY2M2VkZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3Bw
CkBAIC00NTgsNiArNDU4LDEzIEBAIGJvb2wgUGFnZUNhY2hlOjphZGRJZkNhY2hlYWJsZShIaXN0
b3J5SXRlbSYgaXRlbSwgUGFnZSogcGFnZSkKIAogICAgIGRlc3Ryb3lSZW5kZXJUcmVlKHBhZ2Ut
Pm1haW5GcmFtZSgpKTsKIAorICAgIC8vIFN0b3AgYWxsIGxvYWRzIGFnYWluIGJlZm9yZSBjaGVj
a2luZyBpZiB3ZSBjYW4gc3RpbGwgY2FjaGUgdGhlIHBhZ2UgYWZ0ZXIgZmlyaW5nIHRoZSBwYWdl
aGlkZQorICAgIC8vIGV2ZW50LCBzaW5jZSB0aGUgcGFnZSBtYXkgaGF2ZSBzdGFydGVkIHBpbmcg
bG9hZHMgaW4gaXRzIHBhZ2VoaWRlIGV2ZW50IGhhbmRsZXIuCisgICAgZm9yIChGcmFtZSogZnJh
bWUgPSAmcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJh
dmVyc2VOZXh0KCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCisgICAgICAgICAgICBkb2N1bWVudExvYWRlci0+
c3RvcExvYWRpbmcoKTsKKyAgICB9CisKICAgICAvLyBDaGVjayB0aGF0IHRoZSBwYWdlIGlzIHN0
aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhpZGUgZXZlbnQuIFRoZSBK
UyBldmVudCBoYW5kbGVycwogICAgIC8vIGNvdWxkIGhhdmUgYWx0ZXJlZCB0aGUgcGFnZSBpbiBh
IHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4KICAgICBpZiAoIWNhbkNhY2hlKCpwYWdl
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggZGU5ZjQ3
ZDk2ZWEzZDZkOWE2NjNjNTEwNjU4YzI0NjY4MDY1MDYyNC4uZGUwOWU3MDM5OWNjNzQ3ZTg4NzM2
OTc4MzcyNGU2ZGFhOWZjNzg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCkBAIC0xMjUsNiArMTI1LDQyIEBAIHN0YXRpYyB2b2lkIHNldEFsbERlZmVyc0xvYWRp
bmcoY29uc3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxvYWRlcnMsIGJvb2wgZGVmZXJzKQogICAgICAg
ICBsb2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAorc3RhdGljIGJvb2wgc2hv
dWxkUGVuZGluZ0NhY2hlZFJlc291cmNlTG9hZFByZXZlbnRQYWdlQ2FjaGUoQ2FjaGVkUmVzb3Vy
Y2UmIGNhY2hlZFJlc291cmNlKQoreworICAgIGlmICghY2FjaGVkUmVzb3VyY2UuaXNMb2FkaW5n
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAoY2FjaGVkUmVzb3VyY2Uu
dHlwZSgpKSB7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6SW1hZ2VSZXNvdXJjZToK
KyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpJY29uOgorICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlR5cGU6OkJlYWNvbjoKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpQaW5n
OgorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkxpbmtQcmVmZXRjaDoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJj
ZToKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpDU1NTdHlsZVNoZWV0OgorICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OlNjcmlwdDoKKyAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpUeXBlOjpGb250UmVzb3VyY2U6CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpUeXBlOjpTVkdGb250UmVzb3VyY2U6CisjZW5kaWYKKyAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpUeXBlOjpNZWRpYVJlc291cmNlOgorICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGU6OlJhd1Jlc291cmNlOgorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OlNW
R0RvY3VtZW50UmVzb3VyY2U6CisjaWYgRU5BQkxFKFhTTFQpCisgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6VHlwZTo6WFNMU3R5bGVTaGVldDoKKyNlbmRpZgorI2lmIEVOQUJMRShWSURFT19UUkFD
SykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpUZXh0VHJhY2tSZXNvdXJjZToKKyNl
bmRpZgorI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKKyAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpUeXBlOjpBcHBsaWNhdGlvbk1hbmlmZXN0OgorI2VuZGlmCisgICAgICAgIGJyZWFr
OworICAgIH07CisgICAgcmV0dXJuICFjYWNoZWRSZXNvdXJjZS5hcmVBbGxDbGllbnRzWE1MSHR0
cFJlcXVlc3RzKCk7Cit9CisKIHN0YXRpYyBib29sIGFyZUFsbExvYWRlcnNQYWdlQ2FjaGVBY2Nl
cHRhYmxlKGNvbnN0IFJlc291cmNlTG9hZGVyTWFwJiBsb2FkZXJzKQogewogICAgIGZvciAoYXV0
byYgbG9hZGVyIDogY29weVRvVmVjdG9yKGxvYWRlcnMudmFsdWVzKCkpKSB7CkBAIC0xMzcsNyAr
MTczLDcgQEAgc3RhdGljIGJvb2wgYXJlQWxsTG9hZGVyc1BhZ2VDYWNoZUFjY2VwdGFibGUoY29u
c3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxvYWRlcnMpCiAKICAgICAgICAgLy8gT25seSBpbWFnZSBh
bmQgWEhSIGxvYWRzIGRvIG5vdCBwcmV2ZW50IHRoZSBwYWdlIGZyb20gZW50ZXJpbmcgdGhlIFBh
Z2VDYWNoZS4KICAgICAgICAgLy8gQWxsIG5vbi1pbWFnZSBsb2FkcyB3aWxsIHByZXZlbnQgdGhl
IHBhZ2UgZnJvbSBlbnRlcmluZyB0aGUgUGFnZUNhY2hlLgotICAgICAgICBpZiAoY2FjaGVkUmVz
b3VyY2UtPmlzTG9hZGluZygpICYmICFjYWNoZWRSZXNvdXJjZS0+aXNJbWFnZSgpICYmICFjYWNo
ZWRSZXNvdXJjZS0+YXJlQWxsQ2xpZW50c1hNTEh0dHBSZXF1ZXN0cygpKQorICAgICAgICBpZiAo
c2hvdWxkUGVuZGluZ0NhY2hlZFJlc291cmNlTG9hZFByZXZlbnRQYWdlQ2FjaGUoKmNhY2hlZFJl
c291cmNlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0xNjgyLDggKzE3MTgsMjQgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkU3VicmVz
b3VyY2VMb2FkZXIoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICBpZiAobG9hZGVyLT5vcHRp
b25zKCkuYXBwbGljYXRpb25DYWNoZU1vZGUgPT0gQXBwbGljYXRpb25DYWNoZU1vZGU6OkJ5cGFz
cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gQSBwYWdlIGluIHRoZSBQYWdlQ2FjaGUgb3Ig
YWJvdXQgdG8gZW50ZXIgUGFnZUNhY2hlIHNob3VsZCBub3QgYmUgYWJsZSB0byBzdGFydCBsb2Fk
cy4KLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighZG9jdW1lbnQoKSB8fCBk
b2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7
CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGlmIChkb2N1bWVudCgpKSB7CisgICAgICAgIHN3
aXRjaCAoZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSkgeworICAgICAgICBjYXNlIERvY3Vt
ZW50OjpOb3RJblBhZ2VDYWNoZToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERv
Y3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGU6IHsKKyAgICAgICAgICAgIC8vIEEgcGFnZSBh
Ym91dCB0byBlbnRlciBQYWdlQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5n
IGxvYWRzLgorICAgICAgICAgICAgYXV0byogY2FjaGVkUmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6
c2luZ2xldG9uKCkucmVzb3VyY2VGb3JSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpLCBsb2FkZXIt
PmZyYW1lTG9hZGVyKCktPmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CisgICAgICAgICAg
ICBBU1NFUlQoY2FjaGVkUmVzb3VyY2UgJiYgQ2FjaGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdM
b2FkKGNhY2hlZFJlc291cmNlLT50eXBlKCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluUGFnZUNhY2hlOgorICAgICAgICAgICAgLy8g
QSBwYWdlIGluIHRoZSBQYWdlQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRz
LgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogCiAgICAgbV9zdWJyZXNvdXJjZUxvYWRlcnMuYWRk
KGxvYWRlci0+aWRlbnRpZmllcigpLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ2ZjZkZDYzNWMyZmZmOTQyMTczZTA2NWNm
YTdiMTljOWQ0YzM0ODcuLjlmNGFkMTMwYzU3Y2Q1YjY5YjcxZTBhYjY2YTM0MjE4YWM0NTg1ZDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxOS0wOC0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFBpbmcgbG9hZHMgc2hvdWxkIG5vdCBwcmV2ZW50IHBhZ2UgY2FjaGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNDE4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81MzkwMTYzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVGVzdE9wdGlvbiB0byBlbmFibGUgUGFnZUNhY2hl
IGF0IFVJUHJvY2Vzcy1sZXZlbCBzbyB0aGF0IHdlIGNhbiB0ZXN0CisgICAgICAgIHBhZ2UgY2Fj
aGluZyB3aGVuIG5hdmlnYXRpbmcgY3Jvc3Mtb3JpZ2luIHdpdGggUFNPTiBlbmFibGVkLgorCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToK
KyAgICAgICAgKFdUUjo6dXBkYXRlVGVzdE9wdGlvbnNGcm9tVGVzdEhlYWRlcik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0
aW9uczo6aGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyBjb25zdCk6CisKIDIwMTktMDgtMDIg
IEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnNpc3RlbnRs
eSB1c2UgT2JqLUMgYm9vbGVhbiBsaXRlcmFscwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCA2NjNmYWM3YjRiZWRhMTA2ZmI4N2Q2ZjE5NjI1NGMyNzA3YzBh
MjA1Li43OTU3ZGM2MmY0MWViYmRmMDQ3Yjc0ZjQ2ZDllMzNjOTBkNGYyZGU5IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtODAwLDcgKzgwMCw2IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdL
UHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAjZW5k
aWYKLSAgICBXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlRW5hYmxlZChwcmVmZXJlbmNlcywgZmFs
c2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlv
bkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0QXN5bmNo
cm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyhwcmVmZXJlbmNl
cywgZmFsc2UpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6
YXRpb25EZWxheUVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKQEAgLTgyMSw2ICs4MjAsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxvd0Nyb3Nz
T3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyhwcmVmZXJlbmNlcywgb3B0aW9u
cy5hbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldENvbG9yRmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5l
bmFibGVDb2xvckZpbHRlcik7CiAgICAgV0tQcmVmZXJlbmNlc1NldFB1bmNoT3V0V2hpdGVCYWNr
Z3JvdW5kc0luRGFya01vZGUocHJlZmVyZW5jZXMsIG9wdGlvbnMucHVuY2hPdXRXaGl0ZUJhY2tn
cm91bmRzSW5EYXJrTW9kZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFBhZ2VDYWNoZUVuYWJsZWQo
cHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hlKTsKIAogICAgIHN0YXRpYyBXS1N0
cmluZ1JlZiBkZWZhdWx0VGV4dEVuY29kaW5nID0gV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIklTTy04ODU5LTEiKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RGVmYXVsdFRleHRFbmNvZGlu
Z05hbWUocHJlZmVyZW5jZXMsIGRlZmF1bHRUZXh0RW5jb2RpbmcpOwpAQCAtMTM5OSw2ICsxMzk5
LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlVGVzdE9wdGlvbnNGcm9tVGVzdEhlYWRlcihUZXN0T3B0
aW9ucyYgdGVzdE9wdGlvbnMsIGNvbnN0IHN0ZDoKICAgICAgICAgICAgIHRlc3RPcHRpb25zLmNv
bnRlbnRNb2RlID0geyB2YWx1ZS5jX3N0cigpIH07CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAi
ZW5hYmxlQXBwTmFwIikKICAgICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJsZUFwcE5hcCA9IHBh
cnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9
PSAiZW5hYmxlUGFnZUNhY2hlIikKKyAgICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJsZVBhZ2VD
YWNoZSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIHBhaXJT
dGFydCA9IHBhaXJFbmQgKyAxOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlv
bnMuaAppbmRleCA0OTY4ZjVjZTNmNmZmMDllYmU2NzYxODlhZmVmMDM5NzRhMWRlNzVlLi4zMDlk
NDBmMjNkMmMwZjFkMTkzMTBmYTljNTgzNTQwNDYyMjJiYmI3IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5oCkBAIC05Miw2ICs5Miw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAg
ICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwgeyB0cnVlIH07CiAgICAgYm9vbCBzaG91
bGRQcmVzZW50UG9wb3ZlcnMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVBcHBOYXAgeyBmYWxz
ZSB9OworICAgIGJvb2wgZW5hYmxlUGFnZUNhY2hlIHsgZmFsc2UgfTsKIAogICAgIGRvdWJsZSBj
b250ZW50SW5zZXRUb3AgeyAwIH07CiAKQEAgLTE0Niw3ICsxNDcsOCBAQCBzdHJ1Y3QgVGVzdE9w
dGlvbnMgewogICAgICAgICAgICAgfHwgc2hvdWxkUHJlc2VudFBvcG92ZXJzICE9IG9wdGlvbnMu
c2hvdWxkUHJlc2VudFBvcG92ZXJzCiAgICAgICAgICAgICB8fCBjb250ZW50SW5zZXRUb3AgIT0g
b3B0aW9ucy5jb250ZW50SW5zZXRUb3AKICAgICAgICAgICAgIHx8IGNvbnRlbnRNb2RlICE9IG9w
dGlvbnMuY29udGVudE1vZGUKLSAgICAgICAgICAgIHx8IGVuYWJsZUFwcE5hcCAhPSBvcHRpb25z
LmVuYWJsZUFwcE5hcCkKKyAgICAgICAgICAgIHx8IGVuYWJsZUFwcE5hcCAhPSBvcHRpb25zLmVu
YWJsZUFwcE5hcAorICAgICAgICAgICAgfHwgZW5hYmxlUGFnZUNhY2hlICE9IG9wdGlvbnMuZW5h
YmxlUGFnZUNhY2hlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICgh
Y29udGV4dE9wdGlvbnMuaGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9ucyhvcHRpb25zLmNvbnRl
eHRPcHRpb25zKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBmZWQ4NDI0NTA3YmMzOTY2NDI1NjMyZjRjZWUxZGY1NTIyM2Q0
ODViLi4zZjRhYmI0ZjYyNmQ0MzFjNjYwYjlhODE0NzlkYWJmYzFkYWE1MTkxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTktMDgtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBQaW5nIGxvYWRzIHNob3VsZCBub3QgcHJldmVudCBwYWdlIGNhY2hpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDQxOAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTM5MDE2MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQt
Y3Jvc3Mtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2luLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRp
bmctcGluZy1sb2FkLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1v
cmlnaW4uaHRtbDogQWRkZWQuCisKIDIwMTktMDgtMDIgIEFuZHJlcyBHb256YWxleiAgPGFuZHJl
c2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjIF0gTGF5b3V0IFRlc3QgYWNjZXNzaWJp
bGl0eS9tYWMvcHJlc3Mtbm90LXdvcmstZm9yLWRpc2FibGVkLW1lbnUtbGlzdC5odG1sIGlzIGEg
Zmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2luLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmct
cGluZy1sb2FkLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRiYjZjN2I4
N2Q5MDU3ZGM3ZDQyOWM0ZjVjY2E2Mjk1NmUyOWM1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2Fk
LWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhhdCBh
IHBhZ2Ugd2l0aCBwZW5kaW5nIHBpbmcgbG9hZHMgY2FuIGVudGVyIFBhZ2VDYWNoZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3Bh
Z2VoaWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdl
IGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorQ2xpY2sgbWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRp
bmctcGluZy1sb2FkLWNyb3NzLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2luLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjczODUzODM0ZDVlMmM3ODA2ZTBjMzRjMDQ3MzdiYTU5N2IyMmI4NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLXBlbmRpbmctcGluZy1sb2FkLWNyb3NzLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsNDYgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMg
dGhhdCBhIHBhZ2Ugd2l0aCBwZW5kaW5nIHBpbmcgbG9hZHMgY2FuIGVudGVyIFBhZ2VDYWNoZS4n
KTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hl
UHJlZmVyZW5jZUtleSIsIDEpOworCitsZXQgYWZ0ZXJQYWdlQ2FjaGVSZXN0b3JlID0gZmFsc2U7
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgZGVidWcoInBhZ2VzaG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3Qg
IikgKyAiZnJvbSBjYWNoZSIpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAg
ICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIHBh
Z2UgY2FjaGUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorfSwgZmFsc2UpOwor
Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgewor
ICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIp
ICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisKKyAgICB0ZXN0UGluZzIuY2xpY2soKTsKK30s
IGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsK
KyAgICB0ZXN0UGluZzEuY2xpY2soKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICB0ZXN0TGluay5jbGljaygpOworICAgIH0sIDApOworfSwgZmFsc2UpOworCis8L3Njcmlw
dD4KKzxhIGlkPSJ0ZXN0UGluZzEiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIHBpbmc9Ii9y
ZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwuY2dpP25hbWU9bG9hZC1hbmQtc3RhbGwuY2dpJnN0YWxs
Rm9yPTMmc3RhbGxBdD0wJm1pbWVUeXBlPXRleHQvcGxhaW4mYmFyIiBzdHlsZT0iZGlzcGxheTog
bm9uZTsiPjwvYT4KKzxhIGlkPSJ0ZXN0UGluZzIiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsi
IHBpbmc9Ii9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwuY2dpP25hbWU9bG9hZC1hbmQtc3RhbGwu
Y2dpJnN0YWxsRm9yPTMmc3RhbGxBdD0wJm1pbWVUeXBlPXRleHQvcGxhaW4mYmF6IiBzdHlsZT0i
ZGlzcGxheTogbm9uZTsiPjwvYT4KKzxhIGlkPSJ0ZXN0TGluayIgaHJlZj0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiIHBp
bmc9Ii9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwuY2dpP25hbWU9bG9hZC1hbmQtc3RhbGwuY2dp
JnN0YWxsRm9yPTMmc3RhbGxBdD0wJm1pbWVUeXBlPXRleHQvcGxhaW4mZm9vIj5DbGljayBtZTwv
YT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLXNhbWUtb3JpZ2luLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBl
bmRpbmctcGluZy1sb2FkLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGJi
NmM3Yjg3ZDkwNTdkYzdkNDI5YzRmNWNjYTYyOTU2ZTI5YzU3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5n
LWxvYWQtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRo
YXQgYSBwYWdlIHdpdGggcGVuZGluZyBwaW5nIGxvYWRzIGNhbiBlbnRlciBQYWdlQ2FjaGUuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hl
CitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1Mg
UGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0NsaWNrIG1lCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1w
ZW5kaW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ODMyYjFlMDQ5YWRjMzMyNmJiZmM2MzI3YzViYzg1M2VlOWE4MzU4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2Ut
Y2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRtbApAQCAtMCwwICsxLDQ2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBwZW5kaW5nIHBpbmcgbG9hZHMgY2FuIGVudGVyIFBhZ2VD
YWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFn
ZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOworCitsZXQgYWZ0ZXJQYWdlQ2FjaGVSZXN0b3JlID0g
ZmFsc2U7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgZGVidWcoInBhZ2VzaG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6
ICJub3QgIikgKyAiZnJvbSBjYWNoZSIpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgewor
ICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20g
dGhlIHBhZ2UgY2FjaGUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorfSwgZmFs
c2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVu
dCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAi
bm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsK
KyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisKKyAgICB0ZXN0UGluZzIuY2xpY2so
KTsKK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlv
bigpIHsKKyAgICB0ZXN0UGluZzEuY2xpY2soKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICB0ZXN0TGluay5jbGljaygpOworICAgIH0sIDApOworfSwgZmFsc2UpOworCis8
L3NjcmlwdD4KKzxhIGlkPSJ0ZXN0UGluZzEiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIHBp
bmc9Ii9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwuY2dpP25hbWU9bG9hZC1hbmQtc3RhbGwuY2dp
JnN0YWxsRm9yPTMmc3RhbGxBdD0wJm1pbWVUeXBlPXRleHQvcGxhaW4mYmFyIiBzdHlsZT0iZGlz
cGxheTogbm9uZTsiPjwvYT4KKzxhIGlkPSJ0ZXN0UGluZzIiIGhyZWY9ImphdmFzY3JpcHQ6dm9p
ZCgwKTsiIHBpbmc9Ii9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwuY2dpP25hbWU9bG9hZC1hbmQt
c3RhbGwuY2dpJnN0YWxsRm9yPTMmc3RhbGxBdD0wJm1pbWVUeXBlPXRleHQvcGxhaW4mYmF6IiBz
dHlsZT0iZGlzcGxheTogbm9uZTsiPjwvYT4KKzxhIGlkPSJ0ZXN0TGluayIgaHJlZj0icmVzb3Vy
Y2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiIHBpbmc9Ii9yZXNvdXJjZXMvbG9hZC1hbmQtc3Rh
bGwuY2dpP25hbWU9bG9hZC1hbmQtc3RhbGwuY2dpJnN0YWxsRm9yPTMmc3RhbGxBdD0wJm1pbWVU
eXBlPXRleHQvcGxhaW4mZm9vIj5DbGljayBtZTwvYT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>