<?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>181698</bug_id>
          
          <creation_ts>2018-01-16 12:42:39 -0800</creation_ts>
          <short_desc>&apos;fetch&apos; event may be sent to a service worker before its state is set to &apos;activated&apos;</short_desc>
          <delta_ts>2022-06-30 23:36:24 -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>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>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>fujii</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1389695</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-16 12:42:39 -0800</bug_when>
    <thetext>&apos;fetch&apos; event may be sent to a service worker before its state is set to &apos;activated&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389706</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-16 12:56:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/36554856&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389707</commentid>
    <comment_count>2</comment_count>
      <attachid>331418</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-16 12:58:30 -0800</bug_when>
    <thetext>Created attachment 331418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389934</commentid>
    <comment_count>3</comment_count>
      <attachid>331418</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-17 01:35:27 -0800</bug_when>
    <thetext>Comment on attachment 331418
Patch

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

&gt; Source/WebCore/ChangeLog:32
&gt; +        Add assertions to make sure that the we dispatch the fetch event on a the right worker and

s/a the/the/

&gt; Source/WebCore/ChangeLog:40
&gt; +        order.

Can you detail which things will happen in the wrong order? Is it causing some flakiness in the current tests?
We are already queuing a task when going from main thread to worker thread loop so we are already respecting what the spec says.
We are doing this queue-and-requeue for install/activate events but I  do not think they are racy with fetch event.
Ideally, I think we would like to not need this queue-and-requeue for activate/install events.

&gt; Source/WebCore/workers/service/server/SWServerRegistration.cpp:-108
&gt; -    });

The other approach is probably to put worker.setState(state) after the forEach.
That would probably remove the need for the registration null check but the intent is probably clearer.
Or maybe a comment in this method would be sufficiently clear.

&gt; Source/WebCore/workers/service/server/SWServerWorker.cpp:178
&gt; +    if (auto* registration = m_server.getRegistration(m_registrationKey)) {

I guess we could write something like ASSERT(registration || state == terminatingOrRedundant)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390018</commentid>
    <comment_count>4</comment_count>
      <attachid>331418</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-17 08:53:37 -0800</bug_when>
    <thetext>Comment on attachment 331418
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:40
&gt;&gt; +        order.
&gt; 
&gt; Can you detail which things will happen in the wrong order? Is it causing some flakiness in the current tests?
&gt; We are already queuing a task when going from main thread to worker thread loop so we are already respecting what the spec says.
&gt; We are doing this queue-and-requeue for install/activate events but I  do not think they are racy with fetch event.
&gt; Ideally, I think we would like to not need this queue-and-requeue for activate/install events.

The issue is with the &quot;update registration state&quot; [1] and &quot;update worker state&quot; [2]. Both say to &quot;queue a task&quot; in the spec. The IPC I moved *before* calling the handlers is to update the worker state. Moving the IPC to update the worker state before calling the activation handlers (which fire the fetch event) would make things flaky if dispatching the fetch event would not &quot;queue a task&quot;, because the code to update the worker state (and fire the state change event) already queued a task, as per spec.

[1] https://w3c.github.io/ServiceWorker/#update-registration-state-algorithm
[2] https://w3c.github.io/ServiceWorker/#update-state-algorithm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390034</commentid>
    <comment_count>5</comment_count>
      <attachid>331501</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-17 09:11:18 -0800</bug_when>
    <thetext>Created attachment 331501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390063</commentid>
    <comment_count>6</comment_count>
      <attachid>331501</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-17 10:07:37 -0800</bug_when>
    <thetext>Comment on attachment 331501
Patch

Clearing flags on attachment: 331501

Committed r227070: &lt;https://trac.webkit.org/changeset/227070&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390064</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-17 10:07:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879663</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-30 23:36:24 -0700</bug_when>
    <thetext>Bug 242229 – [mac] ASSERTION FAILED: globalScope.registration().active()-&gt;state() == ServiceWorkerState::Activated: imported/w3c/web-platform-tests/service-workers/service-worker/claim-with-redirect.https.html is randomly crashing</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331418</attachid>
            <date>2018-01-16 12:58:30 -0800</date>
            <delta_ts>2018-01-17 09:11:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181698-20180116125830.patch</filename>
            <type>text/plain</type>
            <size>8658</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlkZjViODI5NTZmYTdl
NzYwYzk1YjI5OWM2OGUyNGI2MDk0NjIyMS4uZGJlZDExM2JkZDVmZWY4YjA1YmZlMGJlZGU5MTc3
OTJkOThmMGYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE4LTAxLTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgJ2ZldGNoJyBldmVudCBtYXkg
YmUgc2VudCB0byBhIHNlcnZpY2Ugd29ya2VyIGJlZm9yZSBpdHMgc3RhdGUgaXMgc2V0IHRvICdh
Y3RpdmF0ZWQnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODE2OTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2NTU0ODU2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICdmZXRjaCcgZXZlbnQgbWF5IGJl
IHNlbnQgdG8gYSBzZXJ2aWNlIHdvcmtlciBiZWZvcmUgaXRzIHN0YXRlIGlzIHNldCB0byAnYWN0
aXZhdGVkJy4KKyAgICAgICAgV2hlbiB0aGUgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBu
ZWVkcyB0byBpbnRlcmNlcHQgYSBsb2FkLCBhbmQgaXRzIHN0YXRlIGlzICdhY3RpdmF0aW5nJywK
KyAgICAgICAgd2UgcXVldWUgdGhlIHJlcXVlc3QgdG8gc2VuZCB0aGUgZmV0Y2ggZXZlbnQgaW4g
U1dTZXJ2ZXJXb3JrZXI6Om1fd2hlbkFjdGl2YXRlZEhhbmRsZXJzLgorICAgICAgICBPbmNlIHRo
ZSBTV1NlcnZlcldvcmtlcjo6c2V0U3RhdGUoKSBpcyBjYWxsZWQgd2l0aCAnYWN0aXZhdGVkJyBz
dGF0ZSwgd2UgdGhlbiBjYWxsIHRoZQorICAgICAgICBoYW5kbGVycyBpbiBtX3doZW5BY3RpdmF0
ZWRIYW5kbGVycyB0byBtYWtlIHNlbmQgdGhlIGZldGNoIGV2ZW50IG5vdyB0aGF0IHRoZSB3b3Jr
ZXIgaXMKKyAgICAgICAgYWN0aXZhdGVkLiBUaGUgaXNzdWUgaXMgdGhhdCBldmVuIHRob3VnaCB0
aGUgd29ya2VyIGlzIGFjdGl2YXRlZCBhbmQgaXRzIHN0YXRlIHdhcyBzZXQgdG8KKyAgICAgICAg
J2FjdGl2YXRlZCcgb24gU3RvcmFnZSBwcm9jZXNzIHNpZGUsIHdlIGhhZCBub3QgeWV0IG5vdGlm
aWVkIHRoZSBTZXJ2aWNlV29ya2VyIHByb2Nlc3MKKyAgICAgICAgb2YgdGhlIHNlcnZpY2Ugd29y
a2VyJ3MgbmV3IHN0YXRlIHlldC4KKworICAgICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgd2Ug
bm93IG1ha2Ugc3VyZSB0aGF0IFNXU2VydmVyV29ya2VyOjptX3doZW5BY3RpdmF0ZWRIYW5kbGVy
cyBhcmUKKyAgICAgICAgY2FsbGVkICphZnRlciogd2UndmUgc2VudCB0aGUgSVBDIHRvIHRoZSBT
ZXJ2aWNlV29ya2VyIHByb2Nlc3MgdG8gdXBkYXRlIHRoZSB3b3JrZXIncworICAgICAgICBzdGF0
ZSB0byAnYWN0aXZhdGVkJy4gQWxzbywgd2Ugbm93IGNhbGwgU2VydmljZVdvcmtlckZldGNoOjpk
aXNwYXRjaEZldGNoRXZlbnQoKQorICAgICAgICBhc3luY2hyb25vdXNseSBpbiBhIHBvc3RUYXNr
KCkgYXMgdGhlIHNlcnZpY2Ugd29ya2VyJ3Mgc3RhdGUgaXMgYWxzbyB1cGRhdGVkIGFzeW5jaHJv
bm91c2x5CisgICAgICAgIGluIGEgcG9zdFRhc2suIFRoaXMgaXMgYXMgcGVyIHNwZWNpZmljYXRp
b24gWzFdLCB3aGljaCBzYXlzIHRvICJxdWV1ZSBhIHRhc2siIHRvIGZpcmUKKyAgICAgICAgdGhl
IGZldGNoIGV2ZW50LgorCisgICAgICAgIFsxXSBodHRwczovL3czYy5naXRodWIuaW8vU2Vydmlj
ZVdvcmtlci8jb24tZmV0Y2gtcmVxdWVzdC1hbGdvcml0aG0gKHN0ZXAgMTgpCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXdhaXRzLWZvci1hY3RpdmF0ZS5o
dHRwcy5odG1sCisgICAgICAgIHdoaWNoIGhpdHMgdGhlIG5ldyBhc3NlcnRpb24gd2l0aG91dCB0
aGUgZml4LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaDo6ZGlzcGF0
Y2hGZXRjaEV2ZW50KToKKyAgICAgICAgQWRkIGFzc2VydGlvbnMgdG8gbWFrZSBzdXJlIHRoYXQg
dGhlIHdlIGRpc3BhdGNoIHRoZSBmZXRjaCBldmVudCBvbiBhIHRoZSByaWdodCB3b3JrZXIgYW5k
CisgICAgICAgIHRoYXQgdGhlIHdvcmtlciBpcyBpbiAnYWN0aXZhdGVkJyBzdGF0ZS4KKworICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cG9zdEZldGNoVGFzayk6Cisg
ICAgICAgIFF1ZXVlIGEgdGFzayB0byBmaXJlIHRoZSBmZXRjaCBldmVudCBhcyBwZXI6CisgICAg
ICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI29uLWZldGNoLXJlcXVl
c3QtYWxnb3JpdGhtIChzdGVwIDE4KQorICAgICAgICBXZSBuZWVkIHRvIG1hdGNoIHRoZSBzcGVj
aWZpY2F0aW9uIGV4YWN0bHkgaGVyZSBvciB0aGluZ3Mgd2lsbCBoYXBwZW4gaW4gdGhlIHdyb25n
CisgICAgICAgIG9yZGVyLgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6dXBkYXRlV29ya2VyU3RhdGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2Vy
OjpzZXRTdGF0ZSk6CisgICAgICAgIE1vdmUgY29kZSB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFNl
cnZpY2UgV29ya2VyIHByb2Nlc3Mgd2hlbmV2ZXIgdGhlIHNlcnZpY2Ugd29ya2VyJ3Mgc3RhdGUK
KyAgICAgICAgbmVlZHMgdG8gYmUgdXBkYXRlZCBmcm9tIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp1
cGRhdGVXb3JrZXJTdGF0ZSgpIHRvIFNXU2VydmVyV29ya2VyOjpzZXRTdGF0ZSgpLgorICAgICAg
ICBUaGlzIHdheSwgd2UgY2FuIG1ha2Ugc3VyZSB0aGUgSVBDIGlzIHNlbnQgKmJlZm9yZSogd2Ug
Y2FsbCB0aGUgbV93aGVuQWN0aXZhdGVkSGFuZGxlcnMgaGFuZGxlcnMsCisgICAgICAgIGFzIHRo
ZXkgbWF5IGFsc28gc2VuZCBJUEMgdG8gdGhlIFNlcnZpY2UgV29ya2VyIHByb2Nlc3MsIGFuZCB3
ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIElQQyBoYXBwZW5zCisgICAgICAgIGFmdGVyIHNvIHRo
YXQgdGhlIHNlcnZpY2Ugd29ya2VyIGlzIGluIHRoZSByaWdodCBzdGF0ZS4KKwogMjAxOC0wMS0x
NiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNXU2VydmVyV29y
a2VyOjptX2NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllciBtYXkgZ2V0IG91dCBvZiBkYXRlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyRmV0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlckZldGNoLmNwcAppbmRleCAxMmUxODQzNzlkMzRhOGNiNDRlN2JmNzZkNzM0
ODQxNjdkYmFiYmVlLi5kNDQ1YjgxMzFiMTY2ZGQ0NmMzMTljZmQ1ZmY5MzI4NzM1MDNjNTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyRmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJG
ZXRjaFJlcXVlc3QuaCIKICNpbmNsdWRlICJGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2Nv
cGUuaCIKIApAQCAtOTgsNiArOTksMTAgQEAgdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENs
aWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2MKICAgICBi
b29sIGlzTmF2aWdhdGlvbiA9IG9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5h
dmlnYXRlOwogICAgIGJvb2wgaXNOb25TdWJyZXNvdXJjZVJlcXVlc3QgPSBXZWJDb3JlOjppc05v
blN1YnJlc291cmNlUmVxdWVzdChvcHRpb25zLmRlc3RpbmF0aW9uKTsKIAorICAgIEFTU0VSVChn
bG9iYWxTY29wZS5yZWdpc3RyYXRpb24oKS5hY3RpdmUoKSk7CisgICAgQVNTRVJUKGdsb2JhbFNj
b3BlLnJlZ2lzdHJhdGlvbigpLmFjdGl2ZSgpLT5pZGVudGlmaWVyKCkgPT0gZ2xvYmFsU2NvcGUu
dGhyZWFkKCkuaWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQoZ2xvYmFsU2NvcGUucmVnaXN0cmF0
aW9uKCkuYWN0aXZlKCktPnN0YXRlKCkgPT0gU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0ZWQp
OworCiAgICAgYXV0byogZm9ybURhdGEgPSByZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgc3RkOjpv
cHRpb25hbDxGZXRjaEJvZHk+IGJvZHk7CiAgICAgaWYgKGZvcm1EYXRhICYmICFmb3JtRGF0YS0+
aXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDc2NGJmZWY5ODk5
M2EyZmNmNWZjYmZiYTY2YTlmMWNhYjU2MjYxN2MuLmI3MzI0ZTA2NjAwNDczYjhmOTJlZjVjZDk5
OTE4MzczYjRjMzFlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC05Niw3ICs5
Niw5IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdEZldGNoVGFzayhSZWY8U2Vydmlj
ZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50CiAgICAgLy8gRklYTUU6IGluc3RlYWQgb2Yg
ZGlyZWN0bHkgdXNpbmcgcnVuTG9vcCgpLCB3ZSBzaG91bGQgYmUgdXNpbmcgc29tZXRoaW5nIGxp
a2UgV29ya2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyBGSVhNRTogcmVxdWVzdCBhbmQgb3B0
aW9ucyBjb21lIHN0cmFpZ3RoIGZyb20gSVBDIHNvIGFyZSBhbHJlYWR5IGlzb2xhdGVkLiBXZSBz
aG91bGQgYmUgYWJsZSB0byB0YWtlIGJlbmVmaXQgb2YgdGhhdC4KICAgICBydW5Mb29wKCkucG9z
dFRhc2tGb3JNb2RlKFtjbGllbnQgPSBXVEZNb3ZlKGNsaWVudCksIGNsaWVudElkLCByZXF1ZXN0
ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgcmVmZXJyZXIgPSByZWZlcnJlci5pc29sYXRlZENv
cHkoKSwgb3B0aW9ucyA9IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgU2VydmljZVdvcmtlckZldGNoOjpk
aXNwYXRjaEZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBkb3duY2FzdDxTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpLCBjbGllbnRJZCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucykpOworICAgICAgICBjb250ZXh0LnBvc3RUYXNr
KFtjbGllbnQgPSBXVEZNb3ZlKGNsaWVudCksIGNsaWVudElkLCByZXF1ZXN0ID0gV1RGTW92ZShy
ZXF1ZXN0KSwgcmVmZXJyZXIgPSBXVEZNb3ZlKHJlZmVycmVyKSwgb3B0aW9ucyA9IFdURk1vdmUo
b3B0aW9ucyldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIFNlcnZpY2VXb3JrZXJGZXRjaDo6ZGlzcGF0Y2hGZXRjaEV2ZW50KFdURk1vdmUo
Y2xpZW50KSwgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSwgY2xp
ZW50SWQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlv
bnMpKTsKKyAgICAgICAgfSk7CiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggNTc5ZWVkNjM3NTVhZGViNzI1
NTcwNzYxYjM1NGFjYzU3MTMyNjkxNS4uNmIwMzFjOTQzNGRjNTU4OTcyYTc4Zjk0MmEzODJiOTVm
ZjlmMDdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTEwMiwxMCArMTAyLDYg
QEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dXBkYXRlV29ya2VyU3RhdGUoU1dTZXJ2ZXJX
b3JrZXImIHdvcmtlciwgU2VydmljZVdvcmsKICAgICBMT0coU2VydmljZVdvcmtlciwgIlVwZGF0
aW5nIHdvcmtlciAlcCBzdGF0ZSB0byAlaSAoJXApIiwgJndvcmtlciwgKGludClzdGF0ZSwgdGhp
cyk7CiAKICAgICB3b3JrZXIuc2V0U3RhdGUoc3RhdGUpOwotCi0gICAgZm9yRWFjaENvbm5lY3Rp
b24oWyZdKGF1dG8mIGNvbm5lY3Rpb24pIHsKLSAgICAgICAgY29ubmVjdGlvbi51cGRhdGVXb3Jr
ZXJTdGF0ZUluQ2xpZW50KHdvcmtlci5pZGVudGlmaWVyKCksIHN0YXRlKTsKLSAgICB9KTsKIH0K
IAogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2V0VXBkYXRlVmlhQ2FjaGUoU2VydmljZVdv
cmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5o
CmluZGV4IDRiMGI5NWIyMTI3ZGNiYmYzMmJmMzhjMTgxMzdjMGI4Njk0ZmFlNzcuLjk2MmQ5NjI3
OTk2MzE1MTcyZjgzOWYwZmNmMDY5OTgzZWNlMTI3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmgKQEAgLTkyLDkgKzkyLDkgQEAgcHVibGljOgogICAgIHZvaWQgdHJ5QWN0aXZhdGUoKTsKICAg
ICB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCi1w
cml2YXRlOgogICAgIHZvaWQgZm9yRWFjaENvbm5lY3Rpb24oY29uc3QgV1RGOjpGdW5jdGlvbjx2
b2lkKFNXU2VydmVyOjpDb25uZWN0aW9uJik+Jik7CiAKK3ByaXZhdGU6CiAgICAgdm9pZCBhY3Rp
dmF0ZSgpOwogICAgIHZvaWQgaGFuZGxlQ2xpZW50VW5sb2FkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAK
aW5kZXggNmVkNWIxYjBjZGJjZTBhZDE0ODYxYmY5OWM3NWM5MjgyYmFjMzRhZS4uMjhlMTJhNzg2
NDBiOTAwMmZjNDhlMGI1ODA5MTA0NmYzNjU0N2FlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTE3
NSw2ICsxNzUsMTIgQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6c2V0U3RhdGUoU2VydmljZVdvcmtl
clN0YXRlIHN0YXRlKQogCiAgICAgbV9kYXRhLnN0YXRlID0gc3RhdGU7CiAKKyAgICBpZiAoYXV0
byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9u
S2V5KSkgeworICAgICAgICByZWdpc3RyYXRpb24tPmZvckVhY2hDb25uZWN0aW9uKFsmXShhdXRv
JiBjb25uZWN0aW9uKSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLnVwZGF0ZVdvcmtlclN0YXRl
SW5DbGllbnQoaWRlbnRpZmllcigpLCBzdGF0ZSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAg
IGlmIChzdGF0ZSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRlZCB8fCBzdGF0ZSA9PSBT
ZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCkKICAgICAgICAgY2FsbFdoZW5BY3RpdmF0ZWRI
YW5kbGVyKHN0YXRlID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331501</attachid>
            <date>2018-01-17 09:11:18 -0800</date>
            <delta_ts>2018-01-17 10:07:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181698-20180117091117.patch</filename>
            <type>text/plain</type>
            <size>9075</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU4NWM5YTRkYzBjZDUw
NWRhMDM4ZjNiYmI2MzczMmQzNjFjYzM4YS4uNDc0MGQ2NTU0ZjY4MGU2OTNhMmM5NzUyNDQ2ZjQz
MzhjODA4YTg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE4LTAxLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgJ2ZldGNoJyBldmVudCBtYXkg
YmUgc2VudCB0byBhIHNlcnZpY2Ugd29ya2VyIGJlZm9yZSBpdHMgc3RhdGUgaXMgc2V0IHRvICdh
Y3RpdmF0ZWQnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODE2OTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2NTU0ODU2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgJ2ZldGNoJyBldmVudCBtYXkgYmUg
c2VudCB0byBhIHNlcnZpY2Ugd29ya2VyIGJlZm9yZSBpdHMgc3RhdGUgaXMgc2V0IHRvICdhY3Rp
dmF0ZWQnLgorICAgICAgICBXaGVuIHRoZSByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIG5l
ZWRzIHRvIGludGVyY2VwdCBhIGxvYWQsIGFuZCBpdHMgc3RhdGUgaXMgJ2FjdGl2YXRpbmcnLAor
ICAgICAgICB3ZSBxdWV1ZSB0aGUgcmVxdWVzdCB0byBzZW5kIHRoZSBmZXRjaCBldmVudCBpbiBT
V1NlcnZlcldvcmtlcjo6bV93aGVuQWN0aXZhdGVkSGFuZGxlcnMuCisgICAgICAgIE9uY2UgdGhl
IFNXU2VydmVyV29ya2VyOjpzZXRTdGF0ZSgpIGlzIGNhbGxlZCB3aXRoICdhY3RpdmF0ZWQnIHN0
YXRlLCB3ZSB0aGVuIGNhbGwgdGhlCisgICAgICAgIGhhbmRsZXJzIGluIG1fd2hlbkFjdGl2YXRl
ZEhhbmRsZXJzIHRvIG1ha2Ugc2VuZCB0aGUgZmV0Y2ggZXZlbnQgbm93IHRoYXQgdGhlIHdvcmtl
ciBpcworICAgICAgICBhY3RpdmF0ZWQuIFRoZSBpc3N1ZSBpcyB0aGF0IGV2ZW4gdGhvdWdoIHRo
ZSB3b3JrZXIgaXMgYWN0aXZhdGVkIGFuZCBpdHMgc3RhdGUgd2FzIHNldCB0bworICAgICAgICAn
YWN0aXZhdGVkJyBvbiBTdG9yYWdlIHByb2Nlc3Mgc2lkZSwgd2UgaGFkIG5vdCB5ZXQgbm90aWZp
ZWQgdGhlIFNlcnZpY2VXb3JrZXIgcHJvY2VzcworICAgICAgICBvZiB0aGUgc2VydmljZSB3b3Jr
ZXIncyBuZXcgc3RhdGUgeWV0LgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBu
b3cgbWFrZSBzdXJlIHRoYXQgU1dTZXJ2ZXJXb3JrZXI6Om1fd2hlbkFjdGl2YXRlZEhhbmRsZXJz
IGFyZQorICAgICAgICBjYWxsZWQgKmFmdGVyKiB3ZSd2ZSBzZW50IHRoZSBJUEMgdG8gdGhlIFNl
cnZpY2VXb3JrZXIgcHJvY2VzcyB0byB1cGRhdGUgdGhlIHdvcmtlcidzCisgICAgICAgIHN0YXRl
IHRvICdhY3RpdmF0ZWQnLiBBbHNvLCB3ZSBub3cgY2FsbCBTZXJ2aWNlV29ya2VyRmV0Y2g6OmRp
c3BhdGNoRmV0Y2hFdmVudCgpCisgICAgICAgIGFzeW5jaHJvbm91c2x5IGluIGEgcG9zdFRhc2so
KSBhcyB0aGUgc2VydmljZSB3b3JrZXIncyBzdGF0ZSBpcyBhbHNvIHVwZGF0ZWQgYXN5bmNocm9u
b3VzbHkKKyAgICAgICAgaW4gYSBwb3N0VGFzay4gVGhpcyBpcyBhcyBwZXIgc3BlY2lmaWNhdGlv
biBbMV0sIHdoaWNoIHNheXMgdG8gInF1ZXVlIGEgdGFzayIgdG8gZmlyZQorICAgICAgICB0aGUg
ZmV0Y2ggZXZlbnQuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNvbi1mZXRjaC1yZXF1ZXN0LWFsZ29yaXRobSAoc3RlcCAxOCkKKworICAgICAgICBO
byBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0
dHBzLmh0bWwKKyAgICAgICAgd2hpY2ggaGl0cyB0aGUgbmV3IGFzc2VydGlvbiB3aXRob3V0IHRo
ZSBmaXguCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RmV0Y2guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoOjpkaXNwYXRj
aEZldGNoRXZlbnQpOgorICAgICAgICBBZGQgYXNzZXJ0aW9ucyB0byBtYWtlIHN1cmUgdGhhdCB3
ZSBkaXNwYXRjaCB0aGUgZmV0Y2ggZXZlbnQgb24gdGhlIHJpZ2h0IHdvcmtlciBhbmQKKyAgICAg
ICAgdGhhdCB0aGUgd29ya2VyIGlzIGluICdhY3RpdmF0ZWQnIHN0YXRlLgorCisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hUYXNrKToKKyAgICAgICAg
UXVldWUgYSB0YXNrIHRvIGZpcmUgdGhlIGZldGNoIGV2ZW50IGFzIHBlcjoKKyAgICAgICAgLSBo
dHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jb24tZmV0Y2gtcmVxdWVzdC1hbGdv
cml0aG0gKHN0ZXAgMTgpCisgICAgICAgIFdlIG5lZWQgdG8gbWF0Y2ggdGhlIHNwZWNpZmljYXRp
b24gZXhhY3RseSBoZXJlIG9yIHRoaW5ncyB3aWxsIGhhcHBlbiBpbiB0aGUgd3JvbmcKKyAgICAg
ICAgb3JkZXIuIEluIHBhcnRpY3VsYXIsIHRoaW5ncyBsaWtlICJ1cGRhdGUgcmVnaXN0cmF0aW9u
IHN0YXRlIiBhbmQgInVwZGF0ZSB3b3JrZXIgc3RhdGUiCisgICAgICAgIG1pZ2h0IGhhcHBlbiAq
YWZ0ZXIqIGZpcmluZyB0aGUgZmV0Y2ggZXZlbnQsIGV2ZW4gdGhvdWdoIHRoZSBJUEMgZm9yICJ1
cGRhdGUgcmVnaXN0cmF0aW9uL3dvcmtlcgorICAgICAgICBzdGF0ZSIgd2FzIHNlbnQgYmVmb3Jl
IHRoZSAiZmlyZSBmZXRjaCBldmVudCIgb25lLCBiZWNhdXNlIHRoZSBjb2RlIGZvciB1cGRhdGlu
ZyBhIHJlZ2lzdHJhdGlvbi8KKyAgICAgICAgd29ya2VyIHN0YXRlIGFscmVhZHkgcXVldWVzIGEg
dGFzaywgYXMgcGVyIHRoZSBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6dXBkYXRlV29ya2VyU3RhdGUpOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNXU2VydmVyV29ya2VyOjpzZXRTdGF0ZSk6CisgICAgICAgIE1vdmUgY29kZSB0byBzZW5kIHRo
ZSBJUEMgdG8gdGhlIFNlcnZpY2UgV29ya2VyIHByb2Nlc3Mgd2hlbmV2ZXIgdGhlIHNlcnZpY2Ug
d29ya2VyJ3Mgc3RhdGUKKyAgICAgICAgbmVlZHMgdG8gYmUgdXBkYXRlZCBmcm9tIFNXU2VydmVy
UmVnaXN0cmF0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZSgpIHRvIFNXU2VydmVyV29ya2VyOjpzZXRT
dGF0ZSgpLgorICAgICAgICBUaGlzIHdheSwgd2UgY2FuIG1ha2Ugc3VyZSB0aGUgSVBDIGlzIHNl
bnQgKmJlZm9yZSogd2UgY2FsbCB0aGUgbV93aGVuQWN0aXZhdGVkSGFuZGxlcnMgaGFuZGxlcnMs
CisgICAgICAgIGFzIHRoZXkgbWF5IGFsc28gc2VuZCBJUEMgdG8gdGhlIFNlcnZpY2UgV29ya2Vy
IHByb2Nlc3MsIGFuZCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIElQQyBoYXBwZW5zCisgICAg
ICAgIGFmdGVyIHNvIHRoYXQgdGhlIHNlcnZpY2Ugd29ya2VyIGlzIGluIHRoZSByaWdodCBzdGF0
ZS4KKwogMjAxOC0wMS0xNyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBmb2xsb3ctdXAgdG8gcjIyNzA1MS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RmV0Y2guY3BwCmluZGV4IDEyZTE4NDM3OWQzNGE4Y2I0NGU3YmY3NmQ3MzQ4NDE2N2RiYWJiZWUu
LmQ0NDViODEzMWIxNjZkZDQ2YzMxOWNmZDVmZjkzMjg3MzUwM2M1NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckZldGNoLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZldGNoUmVxdWVzdC5o
IgogI2luY2x1ZGUgIkZldGNoUmVzcG9uc2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3Qu
aCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogCkBAIC05
OCw2ICs5OSwxMCBAQCB2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVu
dCwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTYwogICAgIGJvb2wgaXNOYXZpZ2F0
aW9uID0gb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGU7CiAgICAg
Ym9vbCBpc05vblN1YnJlc291cmNlUmVxdWVzdCA9IFdlYkNvcmU6OmlzTm9uU3VicmVzb3VyY2VS
ZXF1ZXN0KG9wdGlvbnMuZGVzdGluYXRpb24pOwogCisgICAgQVNTRVJUKGdsb2JhbFNjb3BlLnJl
Z2lzdHJhdGlvbigpLmFjdGl2ZSgpKTsKKyAgICBBU1NFUlQoZ2xvYmFsU2NvcGUucmVnaXN0cmF0
aW9uKCkuYWN0aXZlKCktPmlkZW50aWZpZXIoKSA9PSBnbG9iYWxTY29wZS50aHJlYWQoKS5pZGVu
dGlmaWVyKCkpOworICAgIEFTU0VSVChnbG9iYWxTY29wZS5yZWdpc3RyYXRpb24oKS5hY3RpdmUo
KS0+c3RhdGUoKSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRlZCk7CisKICAgICBhdXRv
KiBmb3JtRGF0YSA9IHJlcXVlc3QuaHR0cEJvZHkoKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZldGNo
Qm9keT4gYm9keTsKICAgICBpZiAoZm9ybURhdGEgJiYgIWZvcm1EYXRhLT5pc0VtcHR5KCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggNzY0YmZlZjk4OTkzYTJmY2Y1ZmNiZmJh
NjZhOWYxY2FiNTYyNjE3Yy4uYjczMjRlMDY2MDA0NzNiOGY5MmVmNWNkOTk5MTgzNzNiNGMzMWU1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTk2LDcgKzk2LDkgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6
OkNsaWVudD4mJiBjbGllbnQKICAgICAvLyBGSVhNRTogaW5zdGVhZCBvZiBkaXJlY3RseSB1c2lu
ZyBydW5Mb29wKCksIHdlIHNob3VsZCBiZSB1c2luZyBzb21ldGhpbmcgbGlrZSBXb3JrZXJHbG9i
YWxTY29wZVByb3h5LgogICAgIC8vIEZJWE1FOiByZXF1ZXN0IGFuZCBvcHRpb25zIGNvbWUgc3Ry
YWlndGggZnJvbSBJUEMgc28gYXJlIGFscmVhZHkgaXNvbGF0ZWQuIFdlIHNob3VsZCBiZSBhYmxl
IHRvIHRha2UgYmVuZWZpdCBvZiB0aGF0LgogICAgIHJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUo
W2NsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgY2xpZW50SWQsIHJlcXVlc3QgPSByZXF1ZXN0Lmlz
b2xhdGVkQ29weSgpLCByZWZlcnJlciA9IHJlZmVycmVyLmlzb2xhdGVkQ29weSgpLCBvcHRpb25z
ID0gb3B0aW9ucy5pc29sYXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpIG11dGFibGUgewotICAgICAgICBTZXJ2aWNlV29ya2VyRmV0Y2g6OmRpc3BhdGNoRmV0Y2hF
dmVudChXVEZNb3ZlKGNsaWVudCksIGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4o
Y29udGV4dCksIGNsaWVudElkLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwg
V1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGNvbnRleHQucG9zdFRhc2soW2NsaWVudCA9IFdU
Rk1vdmUoY2xpZW50KSwgY2xpZW50SWQsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCByZWZl
cnJlciA9IFdURk1vdmUocmVmZXJyZXIpLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKV0gKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICAgICAgU2Vy
dmljZVdvcmtlckZldGNoOjpkaXNwYXRjaEZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBkb3du
Y2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLCBjbGllbnRJZCwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucykpOworICAgICAg
ICB9KTsKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA1NzllZWQ2Mzc1NWFkZWI3MjU1NzA3NjFiMzU0YWNj
NTcxMzI2OTE1Li42YjAzMWM5NDM0ZGM1NTg5NzJhNzhmOTQyYTM4MmI5NWZmOWYwN2Q1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVn
aXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtMTAyLDEwICsxMDIsNiBAQCB2b2lkIFNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZShTV1NlcnZlcldvcmtlciYgd29ya2Vy
LCBTZXJ2aWNlV29yawogICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiVXBkYXRpbmcgd29ya2VyICVw
IHN0YXRlIHRvICVpICglcCkiLCAmd29ya2VyLCAoaW50KXN0YXRlLCB0aGlzKTsKIAogICAgIHdv
cmtlci5zZXRTdGF0ZShzdGF0ZSk7Ci0KLSAgICBmb3JFYWNoQ29ubmVjdGlvbihbJl0oYXV0byYg
Y29ubmVjdGlvbikgewotICAgICAgICBjb25uZWN0aW9uLnVwZGF0ZVdvcmtlclN0YXRlSW5DbGll
bnQod29ya2VyLmlkZW50aWZpZXIoKSwgc3RhdGUpOwotICAgIH0pOwogfQogCiB2b2lkIFNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjpzZXRVcGRhdGVWaWFDYWNoZShTZXJ2aWNlV29ya2VyVXBkYXRlVmlh
Q2FjaGUgdXBkYXRlVmlhQ2FjaGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggNGIwYjk1
YjIxMjdkY2JiZjMyYmYzOGMxODEzN2MwYjg2OTRmYWU3Ny4uOTYyZDk2Mjc5OTYzMTUxNzJmODM5
ZjBmY2YwNjk5ODNlY2UxMjdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtOTIsOSAr
OTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cnlBY3RpdmF0ZSgpOwogICAgIHZvaWQgZGlkRmlu
aXNoQWN0aXZhdGlvbihTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKLXByaXZhdGU6CiAgICAg
dm9pZCBmb3JFYWNoQ29ubmVjdGlvbihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU1dTZXJ2ZXI6
OkNvbm5lY3Rpb24mKT4mKTsKIAorcHJpdmF0ZToKICAgICB2b2lkIGFjdGl2YXRlKCk7CiAgICAg
dm9pZCBoYW5kbGVDbGllbnRVbmxvYWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCA2ZWQ1YjFi
MGNkYmNlMGFkMTQ4NjFiZjk5Yzc1YzkyODJiYWMzNGFlLi4wYWY3ZGI1ZDM1MzFhZmQwN2UxNWYy
NDkyOTU5NzExOWM1YWEzZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtMTc1LDYgKzE3NSwxNCBA
QCB2b2lkIFNXU2VydmVyV29ya2VyOjpzZXRTdGF0ZShTZXJ2aWNlV29ya2VyU3RhdGUgc3RhdGUp
CiAKICAgICBtX2RhdGEuc3RhdGUgPSBzdGF0ZTsKIAorICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9
IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7CisgICAgQVNTRVJU
KHJlZ2lzdHJhdGlvbiB8fCBzdGF0ZSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7
CisgICAgaWYgKHJlZ2lzdHJhdGlvbikgeworICAgICAgICByZWdpc3RyYXRpb24tPmZvckVhY2hD
b25uZWN0aW9uKFsmXShhdXRvJiBjb25uZWN0aW9uKSB7CisgICAgICAgICAgICBjb25uZWN0aW9u
LnVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoaWRlbnRpZmllcigpLCBzdGF0ZSk7CisgICAgICAg
IH0pOworICAgIH0KKwogICAgIGlmIChzdGF0ZSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2
YXRlZCB8fCBzdGF0ZSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCkKICAgICAgICAg
Y2FsbFdoZW5BY3RpdmF0ZWRIYW5kbGVyKHN0YXRlID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0
aXZhdGVkKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>