<?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>199492</bug_id>
          
          <creation_ts>2019-07-04 00:31:56 -0700</creation_ts>
          <short_desc>XHR CORS requests logged twice in the server</short_desc>
          <delta_ts>2019-07-09 15:25:51 -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>Safari 12</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.14</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=199644</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="Karl Sutt">karl</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>karl</cc>
    
    <cc>koivisto</cc>
    
    <cc>mike</cc>
    
    <cc>rojasinate</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1550189</commentid>
    <comment_count>0</comment_count>
    <who name="Karl Sutt">karl</who>
    <bug_when>2019-07-04 00:31:56 -0700</bug_when>
    <thetext>Overview:
A simple XHR CORS request after a page refresh — either with in `onload` handler on &lt;body&gt; or an `onclick` on a &lt;button&gt; — gets processed twice by the server.
This does not seem to happen 100% of the time, sometimes it&apos;s only processed once, but after a page refresh it&apos;s processed twice.
I initially opened a StackOverflow question with a bit more context: https://stackoverflow.com/questions/56877116/flask-logs-duplicate-xhr-cors-requests-from-safari
A screen recording of the behaviour: https://d.pr/v/1h7iRZ

Steps to reproduce:
Clone https://github.com/karls/flask-safari-troubleshoot and follow the instructions in the README.

Actual results:
After refreshing the page and triggering the XHR request, the server logs (and processes) the request twice, but not 100% of the time.

Expected results:
After refreshing the page and triggering the XHR request, the server should only process the request once.

Software and hardware:
MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)
OSX 10.14.5 (18F132)
Safari 12.1.1 (14607.2.6.1.1) (but also happens on Technology Preview Release 86 (Safari 13.0, WebKit 14608.1.30.2))
Server software is Flask 1.0.3 (Python)
Using vanilla XMLHttpRequest to perform the HTTP CORS request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550209</commentid>
    <comment_count>1</comment_count>
    <who name="Karl Sutt">karl</who>
    <bug_when>2019-07-04 06:11:43 -0700</bug_when>
    <thetext>A possible duplicate? Behaviour looks very similar at first glance.

https://bugs.webkit.org/show_bug.cgi?id=199183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550747</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-07 17:53:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/52757558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550947</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-08 13:29:42 -0700</bug_when>
    <thetext>*** Bug 199183 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550948</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-08 13:31:49 -0700</bug_when>
    <thetext>The two XHR requests might be one triggered by speculative loader, and another regular one. That would mean the speculative load is not reused for the regular one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551011</commentid>
    <comment_count>5</comment_count>
      <attachid>373676</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-08 16:00:56 -0700</bug_when>
    <thetext>Created attachment 373676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551015</commentid>
    <comment_count>6</comment_count>
      <attachid>373676</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-08 16:05:16 -0700</bug_when>
    <thetext>Comment on attachment 373676
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:281
&gt; +    return request.requester() != ResourceRequest::Requester::XHR &amp;&amp; request.requester() != ResourceRequest::Requester::Fetch;

Wouldn&apos;t we ideally want all loads that use speculative revalidation to only request once, not just xhr and fetch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551023</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-08 16:12:13 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; Comment on attachment 373676 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=373676&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:281
&gt; &gt; +    return request.requester() != ResourceRequest::Requester::XHR &amp;&amp; request.requester() != ResourceRequest::Requester::Fetch;
&gt; 
&gt; Wouldn&apos;t we ideally want all loads that use speculative revalidation to only
&gt; request once, not just xhr and fetch?

I think we want XHR/fetch loads to fully opt-out of speculative revalidation, since some headers might be generated dynamically.

For page loads which bypass the HTTP cache, we should also probably disable speculative reload since the sub resources will probably bypass the cache as well.
That is another fix I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551363</commentid>
    <comment_count>8</comment_count>
      <attachid>373676</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-09 13:00:19 -0700</bug_when>
    <thetext>Comment on attachment 373676
Patch

This could potentially regress warm PLT but let&apos;s try it. The alternative would be to only do speculative revalidation if the request headers were identical the last 2 times the resource was loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551400</commentid>
    <comment_count>9</comment_count>
      <attachid>373676</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-09 13:44:14 -0700</bug_when>
    <thetext>Comment on attachment 373676
Patch

Clearing flags on attachment: 373676

Committed r247276: &lt;https://trac.webkit.org/changeset/247276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551401</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-09 13:44:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551475</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-09 15:25:51 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; (In reply to Alex Christensen from comment #6)
&gt; &gt; Comment on attachment 373676 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=373676&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:281
&gt; &gt; &gt; +    return request.requester() != ResourceRequest::Requester::XHR &amp;&amp; request.requester() != ResourceRequest::Requester::Fetch;
&gt; &gt; 
&gt; &gt; Wouldn&apos;t we ideally want all loads that use speculative revalidation to only
&gt; &gt; request once, not just xhr and fetch?
&gt; 
&gt; I think we want XHR/fetch loads to fully opt-out of speculative
&gt; revalidation, since some headers might be generated dynamically.
&gt; 
&gt; For page loads which bypass the HTTP cache, we should also probably disable
&gt; speculative reload since the sub resources will probably bypass the cache as
&gt; well.
&gt; That is another fix I believe.

(In reply to youenn fablet from comment #7)
&gt; (In reply to Alex Christensen from comment #6)
&gt; &gt; Comment on attachment 373676 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=373676&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:281
&gt; &gt; &gt; +    return request.requester() != ResourceRequest::Requester::XHR &amp;&amp; request.requester() != ResourceRequest::Requester::Fetch;
&gt; &gt; 
&gt; &gt; Wouldn&apos;t we ideally want all loads that use speculative revalidation to only
&gt; &gt; request once, not just xhr and fetch?
&gt; 
&gt; I think we want XHR/fetch loads to fully opt-out of speculative
&gt; revalidation, since some headers might be generated dynamically.
&gt; 
&gt; For page loads which bypass the HTTP cache, we should also probably disable
&gt; speculative reload since the sub resources will probably bypass the cache as
&gt; well.
&gt; That is another fix I believe.

I filed https://bugs.webkit.org/show_bug.cgi?id=199644</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373676</attachid>
            <date>2019-07-08 16:00:56 -0700</date>
            <delta_ts>2019-07-09 13:44:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199492-20190708160055.patch</filename>
            <type>text/plain</type>
            <size>8919</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1MGY0OWU2YmJhN2VkZjkz
ZTUwZmU5OWUxNGJmYTdiMTkxNzE0MzMuLjAwZDY3YzgxOTgyMjQ2NWFkNjBkODg1NDg0ZjJiYzI2
YjAwYThkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDctMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFhIUiBDT1JTIHJlcXVlc3RzIGxv
Z2dlZCB0d2ljZSBpbiB0aGUgc2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTk0OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyNzU3NTU4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2Fi
bGUgc3BlY3VsYXRpdmUgbG9hZGluZyBmb3IgWEhSIGFuZCBmZXRjaC4KKyAgICAgICAgVGhlc2Ug
c3BlY3VsYXRpdmUgcmVxdWVzdHMgbWlnaHQgaGF2ZSBzcGVjaWZpYyBoZWFkZXJzIHRoYXQgYXJl
IG5vIGxvbmdlciByZWxldmFudAorICAgICAgICB3aGVuIHJlbG9hZGluZyB0aGUgcGFnZS4gVGhp
cyBtaWdodCB0aGVuIGNvbmZ1c2Ugc2VydmVycy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
bWFrZVN0b3JlRGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OmNhblJl
cXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6Q2FjaGU6OnJldHJpZXZlKToKKwogMjAxOS0wNy0wNyAgWmFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIERpZmZp
Y3VsdCB0byBjb250cm9sIHZpZGVvcyBvbiBpcWl5aS5jb20gYXMgdGhlIGFjdGlvbnMgYXJlIG1v
dXNlIGhvdmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKaW5kZXggMTMxMDkzMWI0YjBhZjcwZDhmNjVhZDc3NGQyZjRkOWFiZDQ3
MDFmMy4uMjBlMDc1OGY4NDU5YThkYThmYTQ1M2EwOTdiMzFmNmFkYjdkNTdhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApA
QCAtMjY5LDYgKzI2OSwxOSBAQCBzdGF0aWMgU3RvcmVEZWNpc2lvbiBtYWtlU3RvcmVEZWNpc2lv
bihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUgogICAgIHJldHVybiBT
dG9yZURlY2lzaW9uOjpZZXM7CiB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19DQUNIRV9TUEVDVUxB
VElWRV9SRVZBTElEQVRJT04pCitzdGF0aWMgYm9vbCBpbmxpbmUgY2FuUmVxdWVzdFVzZVNwZWN1
bGF0aXZlUmV2YWxpZGF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICBpZiAocmVxdWVzdC5pc0NvbmRpdGlvbmFsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmIChjYWNoZVBvbGljeUFsbG93c0V4cGlyZWQocmVxdWVzdC5jYWNoZVBvbGljeSgpKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHJlcXVlc3QucmVxdWVzdGVyKCkg
IT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6OlhIUiAmJiByZXF1ZXN0LnJlcXVlc3Rlcigp
ICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpGZXRjaDsKK30KKyNlbmRpZgorCiB2b2lk
IENhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXIm
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQocmVxdWVzdC51cmwoKS5wcm90b2Nv
bElzSW5IVFRQRmFtaWx5KCkpOwpAQCAtMjgzLDcgKzI5Niw3IEBAIHZvaWQgQ2FjaGU6OnJldHJp
ZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgR2xvYmFs
RnJhbWVJCiAgICAgaW5mby5wcmlvcml0eSA9IHByaW9yaXR5OwogCiAjaWYgRU5BQkxFKE5FVFdP
UktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQotICAgIGJvb2wgY2FuVXNlU3BlY3Vs
YXRpdmVSZXZhbGlkYXRpb24gPSBtX3NwZWN1bGF0aXZlTG9hZE1hbmFnZXIgJiYgIXJlcXVlc3Qu
aXNDb25kaXRpb25hbCgpICYmICFjYWNoZVBvbGljeUFsbG93c0V4cGlyZWQocmVxdWVzdC5jYWNo
ZVBvbGljeSgpKTsKKyAgICBib29sIGNhblVzZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0gbV9z
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyICYmIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFsaWRh
dGlvbihyZXF1ZXN0KTsKICAgICBpZiAoY2FuVXNlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pCiAg
ICAgICAgIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci0+cmVnaXN0ZXJMb2FkKGZyYW1lSUQsIHJl
cXVlc3QsIHN0b3JhZ2VLZXkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjY4YzM1MDRkMTk4MzU4MWNiMWM5
OTBiNjA5MjU5MjAzY2U0Mzg3My4uZDhlMGUxMjdjMzI1ZWY2ZWI3MmFlOWMwNDFjOWJjYTg1ODdk
YjkyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA3LTA4ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBYSFIgQ09SUyByZXF1ZXN0cyBsb2dnZWQgdHdp
Y2UgaW4gdGhlIHNlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk5NDkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Mjc1NzU1OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L2Zl
dGNoL2Rpc2FibGUtc3BlY3VsYXRpdmUtbG9hZC1mb3IteGhyLWFuZC1mZXRjaC1sb2Fkcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL2Rpc2FibGUtc3BlY3Vs
YXRpdmUtbG9hZC1mb3IteGhyLWFuZC1mZXRjaC1sb2Fkcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3dwdC9mZXRjaC9yZXNvdXJjZXMvZmV0Y2gteGhyLWxvYWQucHk6IEFkZGVkLgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVzb3VyY2VzL3hoci1hbmQt
ZmV0Y2guaHRtbDogQWRkZWQuCisKIDIwMTktMDctMDcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudENoYW5nZU9ic2VydmVyXSBEaWZmaWN1bHQgdG8g
Y29udHJvbCB2aWRlb3Mgb24gaXFpeWkuY29tIGFzIHRoZSBhY3Rpb25zIGFyZSBtb3VzZSBob3Zl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZGlzYWJsZS1zcGVjdWxh
dGl2ZS1sb2FkLWZvci14aHItYW5kLWZldGNoLWxvYWRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L2ZldGNoL2Rpc2FibGUtc3BlY3VsYXRpdmUtbG9hZC1mb3IteGhyLWFuZC1m
ZXRjaC1sb2Fkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE1YzhjN2RhN2VjZTUwNTRkZGJl
ZmFlYTViZmZkNTAzOWRlZjAwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L2ZldGNoL2Rpc2FibGUtc3BlY3VsYXRpdmUtbG9hZC1mb3IteGhyLWFuZC1mZXRjaC1sb2Fk
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgRW5zdXJlIGZldGNoIGlzIG5v
dCBzcGVjdWxhdGl2ZWx5IGxvYWRlZCAKK1BBU1MgRW5zdXJlIFhIUiBpcyBub3Qgc3BlY3VsYXRp
dmVseSBsb2FkZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2Rp
c2FibGUtc3BlY3VsYXRpdmUtbG9hZC1mb3IteGhyLWFuZC1mZXRjaC1sb2Fkcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZGlzYWJsZS1zcGVjdWxhdGl2ZS1sb2FkLWZvci14aHIt
YW5kLWZldGNoLWxvYWRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E3ZDFhY2Q1YzU3ZjA0MDA0ZjNmMmYw
YTE5MDljNWZiM2NkNTRmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2ZldGNoL2Rpc2FibGUtc3BlY3VsYXRpdmUtbG9hZC1mb3IteGhyLWFuZC1mZXRjaC1sb2Fkcy5o
dG1sCkBAIC0wLDAgKzEsNzMgQEAKKzwhZG9jdHlwZSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWRJRnJhbWUoc3JjKSB7Cisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICAg
IGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsgcmVzb2x2ZShpZnJhbWUpOyB9OworCisgICAg
ICAgIGlmcmFtZS5zcmMgPSBzcmM7CisKKyAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlc2V0SUZyYW1l
KGlmcmFtZSkKK3sKKyAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
IGlmcmFtZS5vbmxvYWQgPSByZXNvbHZlOyB9KTsKKyAgICBpZnJhbWUuc3JjID0gImFib3V0OmJs
YW5rIjsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworZnVuY3Rpb24gbmF2aWdhdGVJRnJhbWUo
aWZyYW1lLCBzcmMpCit7CisgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gd2luZG93LnJlc29sdmVUb2tlbiA9IHJlc29sdmUpOworICAgIGlmcmFtZS5zcmMgPSAicmVz
b3VyY2VzL3hoci1hbmQtZmV0Y2guaHRtbCN4aHIiOworICAgIHJldHVybiBwcm9taXNlOworfQor
CitmdW5jdGlvbiByZWxvYWRJRnJhbWUoaWZyYW1lLCBzcmMpCit7CisgICAgY29uc3QgcHJvbWlz
ZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gd2luZG93LnJlc29sdmVUb2tlbiA9IHJlc29sdmUp
OworICAgIGlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOworICAgIHJldHVy
biBwcm9taXNlOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB3aW5k
b3cudXVpZCA9IHRva2VuKCk7CisgICAgd2luZG93LmZldGNoVGVzdCA9IHRydWU7CisgICAgY29u
c3QgaWZyYW1lID0gYXdhaXQgbG9hZElGcmFtZSgiYWJvdXQ6YmxhbmsiKTsKKworICAgIGNvbnN0
IHRva2VuMSA9IGF3YWl0IG5hdmlnYXRlSUZyYW1lKGlmcmFtZSwgInJlc291cmNlcy94aHItYW5k
LWZldGNoLmh0bWw/ZmV0Y2giKTsKKyAgICBhd2FpdCByZXNldElGcmFtZShpZnJhbWUpOworICAg
IGNvbnN0IHRva2VuMiA9IGF3YWl0IG5hdmlnYXRlSUZyYW1lKGlmcmFtZSwgInJlc291cmNlcy94
aHItYW5kLWZldGNoLmh0bWw/ZmV0Y2giKTsKKyAgICBjb25zdCB0b2tlbjMgPSBhd2FpdCByZWxv
YWRJRnJhbWUoaWZyYW1lKTsKKworICAgIGFzc2VydF9lcXVhbHModG9rZW4xLCAiMCIsICJuYXZp
Z2F0aW5nIHRvIik7CisgICAgYXNzZXJ0X2VxdWFscyh0b2tlbjIsICIwIiwgImFmdGVyIHJlbG9h
ZCIpOworICAgIC8vIHRva2VuMiByZXZhbGlkYXRpb24gKyB0b2tlbjMgcmVsb2FkIGhlbmNlIHR3
byBsb2Fkcy4KKyAgICBhc3NlcnRfZXF1YWxzKHRva2VuMywgIjIiLCAiYWZ0ZXIgcmVsb2FkIik7
CisKKyAgICBpZnJhbWUucmVtb3ZlKCk7Cit9LCAiRW5zdXJlIGZldGNoIGlzIG5vdCBzcGVjdWxh
dGl2ZWx5IGxvYWRlZCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB3
aW5kb3cudXVpZCA9IHRva2VuKCk7CisgICAgd2luZG93LmZldGNoVGVzdCA9IGZhbHNlOworICAg
IGNvbnN0IGlmcmFtZSA9IGF3YWl0IGxvYWRJRnJhbWUoImFib3V0OmJsYW5rIik7CisKKyAgICBj
b25zdCB0b2tlbjEgPSBhd2FpdCBuYXZpZ2F0ZUlGcmFtZShpZnJhbWUsICJyZXNvdXJjZXMveGhy
LWFuZC1mZXRjaC5odG1sP3hociIpOworICAgIGF3YWl0IHJlc2V0SUZyYW1lKGlmcmFtZSk7Cisg
ICAgY29uc3QgdG9rZW4yID0gYXdhaXQgbmF2aWdhdGVJRnJhbWUoaWZyYW1lLCAicmVzb3VyY2Vz
L3hoci1hbmQtZmV0Y2guaHRtbD94aHIiKTsKKyAgICBjb25zdCB0b2tlbjMgPSBhd2FpdCByZWxv
YWRJRnJhbWUoaWZyYW1lKTsKKworICAgIGFzc2VydF9lcXVhbHModG9rZW4xLCAiMCIsICJuYXZp
Z2F0aW5nIHRvIik7CisgICAgYXNzZXJ0X2VxdWFscyh0b2tlbjIsICIwIiwgImFmdGVyIHJlbG9h
ZCIpOworICAgIC8vIHRva2VuMiByZXZhbGlkYXRpb24gKyB0b2tlbjMgcmVsb2FkIGhlbmNlIHR3
byBsb2Fkcy4KKyAgICBhc3NlcnRfZXF1YWxzKHRva2VuMywgIjIiLCAiYWZ0ZXIgcmVsb2FkIik7
CisKKyAgICBpZnJhbWUucmVtb3ZlKCk7Cit9LCAiRW5zdXJlIFhIUiBpcyBub3Qgc3BlY3VsYXRp
dmVseSBsb2FkZWQiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvZmV0Y2gvcmVzb3VyY2VzL2ZldGNoLXhoci1sb2FkLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvZmV0Y2gvcmVzb3VyY2VzL2ZldGNoLXhoci1sb2FkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkN2NkZGYx
ZWQwMzM5MzAzNjQ3NjY1ZWQzODllZDYzOTRhODVhMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXNvdXJjZXMvZmV0Y2gteGhyLWxvYWQucHkKQEAgLTAs
MCArMSwyNCBAQAorRVRBRyA9ICciMTIzYWJjIicKKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNw
b25zZSk6CisgICAgdGVzdF9pZCA9IHJlcXVlc3QuR0VULmZpcnN0KCJ1dWlkIikKKyAgICBzdGFz
aGVkX2NvdW50ID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0ZXN0X2lkKQorICAgIGlmIHN0
YXNoZWRfY291bnQgaXMgbm90IE5vbmU6CisgICAgICAgIHN0YXNoZWRfY291bnQgPSBzdGFzaGVk
X2NvdW50ICsgMQorICAgIGVsc2U6CisgICAgICAgIHN0YXNoZWRfY291bnQgPSAwOworCisgICAg
cmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRlc3RfaWQsIHN0YXNoZWRfY291bnQpCisgICAgZXRh
ZyA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIklmLU5vbmUtTWF0Y2giLCBOb25lKQorICAgIGlmIGV0
YWcgPT0gRVRBRzoKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIlgtSFRUUC1TVEFUVVMi
LCAzMDQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDQsICJOb3QgTW9kaWZpZWQiKQor
ICAgICAgICByZXR1cm4gIiIKKworICAgICMgY2FjaGUgbWlzcywgc28gcmVzcG9uZCB3aXRoIHRo
ZSBhY3R1YWwgY29udGVudAorICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgyMDAsICJPSyIpCisgICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoIkVUYWciLCBFVEFHKQorICAgIHJlc3BvbnNlLmhlYWRlcnMu
c2V0KCJDb250ZW50LVR5cGUiLCAndGV4dC9wbGFpbicpCisgICAgcmVzcG9uc2UuaGVhZGVycy5z
ZXQoIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0wIik7CisgICAgcmV0dXJuIHN0cihzdGFzaGVk
X2NvdW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVzb3VyY2Vz
L3hoci1hbmQtZmV0Y2guaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3Jlc291cmNl
cy94aHItYW5kLWZldGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgzMzI2MWI4NGI1MDc1MjNiZGU4M2E3
NzQ2ZDA3MzVhZGU0MDExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2ZldGNoL3Jlc291cmNlcy94aHItYW5kLWZldGNoLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8c2NyaXB0PgoraWYgKHBhcmVudC53aW5kb3cuZmV0Y2hUZXN0KSB7Cisg
ICAgZmV0Y2goImZldGNoLXhoci1sb2FkLnB5P2ZldGNoJnV1aWQ9IiArIHBhcmVudC53aW5kb3cu
dXVpZCkudGhlbihhc3luYyByZXNwb25zZSA9PiB7CisgICAgICAgIHBhcmVudC53aW5kb3cucmVz
b2x2ZVRva2VuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSk7CisgICAgfSk7Cit9IGVsc2UgeworICAg
IGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAi
ZmV0Y2gteGhyLWxvYWQucHk/eGhyJnV1aWQ9IiArIHBhcmVudC53aW5kb3cudXVpZCwgZmFsc2Up
OworICAgIHhoci5zZW5kKCk7CisgICAgcGFyZW50LndpbmRvdy5yZXNvbHZlVG9rZW4oeGhyLnJl
c3BvbnNlVGV4dCk7Cit9Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>