<?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>181166</bug_id>
          
          <creation_ts>2017-12-26 17:46:23 -0800</creation_ts>
          <short_desc>Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html is flaky</short_desc>
          <delta_ts>2018-02-05 10:12:14 -0800</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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=180702</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=181167</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="Matt Lewis">jlewis3</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</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>1384765</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-12-26 17:46:23 -0800</bug_when>
    <thetext>The following layout test is flaky on WK2

imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html

Probable cause:

https://trac.webkit.org/changeset/226274/webkit

Flakiness Dashboard:

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Fregister-same-scope-different-script-url.https.html


This test recently became extremely flaky. 

https://build.webkit.org/results/Apple%20High%20Sierra%20Release%20WK2%20(Tests)/r226294%20(1953)/results.html
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK2%20(Tests)/builds/1953

--- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt
+++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-actual.txt
@@ -1,7 +1,9 @@
+
+Harness Error (TIMEOUT), message = null
 
 PASS Register different scripts concurrently 
 PASS Register then register new script URL 
 PASS Register then register new script URL that 404s 
 FAIL Register then register new script that does not install assert_unreached: unexpected rejection: assert_equals: on redundant, installing should be null expected null but got object &quot;[object ServiceWorker]&quot; Reached unreachable code
-PASS Register same-scope new script url effect on controller 
+TIMEOUT Register same-scope new script url effect on controller Test timed out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384766</commentid>
    <comment_count>1</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-12-26 17:53:33 -0800</bug_when>
    <thetext>Marked as flaky in:
https://trac.webkit.org/changeset/226296/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395982</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-02 13:58:23 -0800</bug_when>
    <thetext>I managed to reproduce the flakiness like so:
run-webkit-tests -gf --repeat-each=25 imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395983</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-02 13:59:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/37169508&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395991</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-02 14:25:12 -0800</bug_when>
    <thetext>Looks like the registration.unregister() promise at the end of the last test sometimes does not get resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396026</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-02 15:30:23 -0800</bug_when>
    <thetext>If I disable soft-update, then it is no longer flaky. It seems that SoftUpdate jobs sometimes &quot;hang&quot; the jobQueue so that it is no longer processing new jobs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396196</commentid>
    <comment_count>6</comment_count>
      <attachid>333054</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-04 13:05:34 -0800</bug_when>
    <thetext>Created attachment 333054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396337</commentid>
    <comment_count>7</comment_count>
      <attachid>333054</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-05 09:27:31 -0800</bug_when>
    <thetext>Comment on attachment 333054
Patch

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

&gt; Source/WebCore/workers/service/ServiceWorkerJobData.cpp:39
&gt;      : m_identifier { connectionIdentifier, generateThreadSafeObjectIdentifier&lt;ServiceWorkerJobIdentifierType&gt;() }

Preexisting issue but seems a bit weird to have m_identifier here and sourceContext which are both member fields of ServiceWorkerJobData.

&gt; Source/WebCore/workers/service/server/SWServer.cpp:503
&gt; +        // Abort if the job that scheduled this has not been cancelled.

s/has not/has/

&gt; Source/WebCore/workers/service/server/SWServer.cpp:633
&gt; +        jobQueue-&gt;cancelJobsFromServiceWorker(worker.identifier());

Maybe just me but I would read it more easily with something like cancelServiceWorkerJobs. Ditto below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396339</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-05 09:35:49 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; Comment on attachment 333054 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=333054&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/ServiceWorkerJobData.cpp:39
&gt; &gt;      : m_identifier { connectionIdentifier, generateThreadSafeObjectIdentifier&lt;ServiceWorkerJobIdentifierType&gt;() }
&gt; 
&gt; Preexisting issue but seems a bit weird to have m_identifier here and
&gt; sourceContext which are both member fields of ServiceWorkerJobData.
&gt; 
&gt; &gt; Source/WebCore/workers/service/server/SWServer.cpp:503
&gt; &gt; +        // Abort if the job that scheduled this has not been cancelled.
&gt; 
&gt; s/has not/has/
&gt; 
&gt; &gt; Source/WebCore/workers/service/server/SWServer.cpp:633
&gt; &gt; +        jobQueue-&gt;cancelJobsFromServiceWorker(worker.identifier());
&gt; 
&gt; Maybe just me but I would read it more easily with something like
&gt; cancelServiceWorkerJobs. Ditto below.

I personally prefer cancelJobsFromServiceWorker to cancelServiceWorkerJobs. &quot;cancelServiceWorkerJobs&quot; sounds very generic given that we are in service worker code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396340</commentid>
    <comment_count>9</comment_count>
      <attachid>333086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-05 09:36:55 -0800</bug_when>
    <thetext>Created attachment 333086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396360</commentid>
    <comment_count>10</comment_count>
      <attachid>333086</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-05 10:12:12 -0800</bug_when>
    <thetext>Comment on attachment 333086
Patch

Clearing flags on attachment: 333086

Committed r228101: &lt;https://trac.webkit.org/changeset/228101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396361</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-05 10:12:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333054</attachid>
            <date>2018-02-04 13:05:34 -0800</date>
            <delta_ts>2018-02-05 09:36:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181166-20180204130534.patch</filename>
            <type>text/plain</type>
            <size>19366</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE0Njg1ZTkzN2ZkZWVm
N2E1NzQzYmIzYTNjOTRkNDJlOTY3OGRkYy4uNDNjYzU1Y2E4MzlhMjU3ZjM0MzIwZTVjYzIyZWRk
MjU2NTJmYzhiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTAyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTGF5b3V0IFRlc3QgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVnaXN0ZXItc2FtZS1zY29wZS1kaWZmZXJlbnQtc2NyaXB0LXVybC5odHRwcy5odG1sIGlzIGZs
YWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEx
NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3MTY5NTA4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgZm91bmQgb3V0IHRoYXQgdGhpcyB0ZXN0
IHdhcyBmbGFraWx5IHRpbWluZyBvdXQgYmVjYXVzZSBvdXIgam9iUXVldWVzIHdvdWxkIHNvbWV0
aW1lcyBnZXQgc3R1Y2sKKyAgICAgICAgd2hlbiB0aGVpciBjdXJyZW50IGpvYidzIGNvbm5lY3Rp
b24gb3Igc2VydmljZSB3b3JrZXIgKHdoZW4gc2NoZWR1bGVkIGJ5IGEgc2VydmljZSB3b3JrZXIp
IHdvdWxkCisgICAgICAgIGdvIGF3YXkgYmVmb3JlIHRoZSBqb2IgaXMgY29tcGxldGUuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBtYWtlcyBvdXIgam9iIHF1ZXVlcyBvcGVyYXRpb24gbW9yZSByb2J1
c3QgYnk6CisgICAgICAgIDEuIENhbmNlbGxpbmcgYWxsIGpvYnMgZnJvbSBhIGdpdmVuIGNvbm5l
Y3Rpb24gd2hlbiBhIFNXU2VydmVyQ29ubmVjdGlvbiBnb2VzIGF3YXkKKyAgICAgICAgMi4gQ2Fu
Y2VsbGluZyBhbGwgam9icyBmcm9tIGEgZ2l2ZW4gc2VydmljZSB3b3JrZXIgd2hlbiBhIHNlcnZp
Y2Ugd29ya2VyIGdldHMgdGVybWluYXRlZAorCisgICAgICAgIFdlIGFsc28gbWFrZSBzdXJlIHNl
cnZpY2Ugd29ya2VycyBjcmVhdGVkIGJ5IGEgam9iIGdldCBwcm9wZXJseSB0ZXJtaW5hdGVkIHdo
ZW4gYSBqb2IKKyAgICAgICAgaXMgY2FuY2VsZWQgdG8gYXZvaWQgbGVhdmluZyBzZXJ2aWNlIHdv
cmtlcnMgaW4gbGltYm8uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgZmxha3kgdGVzdC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6
OmFkZFJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFp
bmVyOjpyZW1vdmVSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckNvbnRhaW5lcjo6dXBkYXRlUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJKb2JEYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzdGFydFNjcmlw
dEZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzY3JpcHRDb250ZXh0RmFpbGVk
VG9TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6c2NyaXB0Q29udGV4dFN0YXJ0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnRlcm1pbmF0ZVByZWluc3RhbGxhdGlv
bldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6aW5zdGFsbENvbnRleHREYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp3b3JrZXJDb250ZXh0VGVybWluYXRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rpb24pOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6cmVtb3ZlQWxsSm9ic01hdGNoaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVySm9iUXVldWU6OmNhbmNlbEpvYnNGcm9tQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjpjYW5jZWxKb2JzRnJvbVNlcnZpY2VXb3Jr
ZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNldFByZUluc3Rh
bGxhdGlvbldvcmtlcik6CisKIDIwMTgtMDItMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhcmluZyBhIHJlZ2lzdHJhdGlvbiBzaG91bGQgbnVsbCBvdXQg
aXRzIHdvcmtlcnMgYmVmb3JlIHNldHRpbmcgdGhlaXIgc3RhdGUgdG8gInJlZHVuZGFudCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcAppbmRleCBjZmM0MWRkYmFhZjQ1YWQ1YTY1MmIzM2I0ZTVjZjI5ZjUwMTRm
NGI5Li42NTc1MzZiNWFlYTIxZTA3NGM1MTViZjhkZThjMGE1OGRiZDVhY2QwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
OjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVSTCwgY28KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEo
ZW5zdXJlU1dDbGllbnRDb25uZWN0aW9uKCkuc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSk7
CisgICAgU2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YShlbnN1cmVTV0NsaWVudENvbm5lY3Rp
b24oKS5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBjb250ZXh0SWRlbnRpZmllcigpKTsK
IAogICAgIGpvYkRhdGEuc2NyaXB0VVJMID0gY29udGV4dC0+Y29tcGxldGVVUkwocmVsYXRpdmVT
Y3JpcHRVUkwpOwogICAgIGlmICgham9iRGF0YS5zY3JpcHRVUkwuaXNWYWxpZCgpKSB7CkBAIC0x
OTEsNyArMTkxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3Ry
YXRpb24oY29uc3QgVVJMJiBzY29wZVVSTCwgUmVmPERlZmVycmUKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24t
PnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOworICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRh
IGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGNv
bnRleHRJZGVudGlmaWVyKCkpOwogICAgIGpvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBjb250
ZXh0LT51cmwoKTsKICAgICBqb2JEYXRhLnRvcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbVNlY3VyaXR5T3JpZ2luKGNvbnRleHQtPnRvcE9yaWdpbigpKTsKICAgICBqb2JEYXRhLnR5
cGUgPSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6VW5yZWdpc3RlcjsKQEAgLTIxNiw3ICsyMTYsNyBA
QCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnVwZGF0ZVJlZ2lzdHJhdGlvbihjb25zdCBV
UkwmIHNjb3BlVVJMLCBjb25zdCBVUkwmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBT
ZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhKG1fc3dDb25uZWN0aW9uLT5zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcigpKTsKKyAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhKG1fc3dD
b25uZWN0aW9uLT5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBjb250ZXh0SWRlbnRpZmll
cigpKTsKICAgICBqb2JEYXRhLmNsaWVudENyZWF0aW9uVVJMID0gY29udGV4dC51cmwoKTsKICAg
ICBqb2JEYXRhLnRvcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKGNvbnRleHQudG9wT3JpZ2luKCkpOwogICAgIGpvYkRhdGEudHlwZSA9IFNlcnZpY2VXb3Jr
ZXJKb2JUeXBlOjpVcGRhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmNwcAppbmRleCA2ODk0Y2IwZTMzY2Y0ZTliMzdl
OTg2NzQ0ZDk5MDU5ZmM1MDUwNzA1Li4yOWM4MGUxNzc2MmE2NmEzZjhiYjBhNjIyNjM3NmJiNGM5
NjFhNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckpvYkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAKQEAgLTM1LDkgKzM1LDE0IEBAIFNlcnZpY2VXb3JrZXJK
b2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YShjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVy
KQogewogfQogCi1TZXJ2aWNlV29ya2VySm9iRGF0YTo6U2VydmljZVdvcmtlckpvYkRhdGEoU1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK1NlcnZpY2VX
b3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBEb2N1bWVudE9yV29ya2VySWRlbnRp
ZmllciYgbG9jYWxTb3VyY2VDb250ZXh0KQogICAgIDogbV9pZGVudGlmaWVyIHsgY29ubmVjdGlv
bklkZW50aWZpZXIsIGdlbmVyYXRlVGhyZWFkU2FmZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdv
cmtlckpvYklkZW50aWZpZXJUeXBlPigpIH0KIHsKKyAgICBXVEY6OnN3aXRjaE9uKGxvY2FsU291
cmNlQ29udGV4dCwgWyZdKERvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIHsK
KyAgICAgICAgc291cmNlQ29udGV4dCA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsg
Y29ubmVjdGlvbklkZW50aWZpZXIsIGRvY3VtZW50SWRlbnRpZmllciB9OworICAgIH0sIFsmXShT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikgeworICAgICAg
ICBzb3VyY2VDb250ZXh0ID0gc2VydmljZVdvcmtlcklkZW50aWZpZXI7CisgICAgfSk7CiB9CiAK
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgU2VydmljZVdvcmtlckpvYkRhdGE6OnJlZ2lz
dHJhdGlvbktleSgpIGNvbnN0CkBAIC01MCw2ICs1NSw3IEBAIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkgU2VydmljZVdvcmtlckpvYkRhdGE6OnJlZ2lzdHJhdGlvbktleSgpIGNvbnN0CiBT
ZXJ2aWNlV29ya2VySm9iRGF0YSBTZXJ2aWNlV29ya2VySm9iRGF0YTo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKIHsKICAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSByZXN1bHQgeyBpZGVudGlmaWVyKCkg
fTsKKyAgICByZXN1bHQuc291cmNlQ29udGV4dCA9IHNvdXJjZUNvbnRleHQ7CiAgICAgcmVzdWx0
LnR5cGUgPSB0eXBlOwogCiAgICAgcmVzdWx0LnNjcmlwdFVSTCA9IHNjcmlwdFVSTC5pc29sYXRl
ZENvcHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJKb2JEYXRhLmgKaW5kZXggYmUxM2I4YjlhZTU1ZGEwOWY0OGMzMzlmZjc1ODk5NGMy
YTI5N2E4Ni4uMDg3MGJiNmVmNjAyOTg0NWNkNGE5YjZkZTIzMDBhODgzY2FhMWMyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JE
YXRhLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JUeXBlLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oIgpAQCAtMzksNyArNDAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VySm9iRGF0YSB7CiAgICAgdXNpbmcgSWRlbnRp
ZmllciA9IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcjsKLSAgICBleHBsaWNpdCBTZXJ2
aWNlV29ya2VySm9iRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBTZXJ2
aWNlV29ya2VySm9iRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBEb2N1
bWVudE9yV29ya2VySWRlbnRpZmllciYgc291cmNlQ29udGV4dCk7CiAgICAgU2VydmljZVdvcmtl
ckpvYkRhdGEoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSA9IGRlZmF1bHQ7CiAgICAgU2Vy
dmljZVdvcmtlckpvYkRhdGEoKSA9IGRlZmF1bHQ7CiAKQEAgLTQ5LDYgKzUwLDcgQEAgc3RydWN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhIHsKICAgICBVUkwgY2xpZW50Q3JlYXRpb25VUkw7CiAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbjsKICAgICBVUkwgc2NvcGVVUkw7CisgICAgU2Vy
dmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzb3VyY2VDb250ZXh0OwogICAgIFNlcnZpY2VX
b3JrZXJKb2JUeXBlIHR5cGU7CiAKICAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9u
cyByZWdpc3RyYXRpb25PcHRpb25zOwpAQCAtNjksNyArNzEsNyBAQCBwcml2YXRlOgogdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlckpvYkRhdGE6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgaWRlbnRpZmllcigpIDw8IHNj
cmlwdFVSTCA8PCBjbGllbnRDcmVhdGlvblVSTCA8PCB0b3BPcmlnaW4gPDwgc2NvcGVVUkw7Cisg
ICAgZW5jb2RlciA8PCBpZGVudGlmaWVyKCkgPDwgc2NyaXB0VVJMIDw8IGNsaWVudENyZWF0aW9u
VVJMIDw8IHRvcE9yaWdpbiA8PCBzY29wZVVSTCA8PCBzb3VyY2VDb250ZXh0OwogICAgIGVuY29k
ZXIuZW5jb2RlRW51bSh0eXBlKTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFNlcnZp
Y2VXb3JrZXJKb2JUeXBlOjpSZWdpc3RlcjoKQEAgLTEwNCw2ICsxMDYsOCBAQCBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhPiBTZXJ2aWNlV29ya2VySm9iRGF0YTo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZQogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShqb2JEYXRhLnNjb3BlVVJM
KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGpvYkRhdGEuc291cmNlQ29udGV4dCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oam9iRGF0YS50eXBlKSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyLmNwcAppbmRleCA3NDVlZDVhYjZjNzg2OGIwZWY4YWU4NjFkZDRkZTVm
YjQ5YTEzN2VkLi5hMWM2OGRiNjMxNGU5ZGU1ZDdlYjBmZWE5N2QwNmRkNzllOTE1ZmEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cApAQCAtMzAxLDEwICszMDEsOSBAQCB2b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBGZXRjaE9wdGlvbgogewogICAgIExP
RyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGlzc3Vpbmcgc3RhcnRTY3JpcHRGZXRjaCBmb3IgY3Vy
cmVudCBqb2IgJXMgaW4gY2xpZW50Iiwgam9iRGF0YS5pZGVudGlmaWVyKCkubG9nZ2luZ1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25z
LmdldChqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOwotICAgIGlmICghY29ubmVjdGlv
bikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29ubmVjdGlvbi0+c3RhcnRTY3JpcHRGZXRjaElu
Q2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50aWZpZXIsIGpvYkRhdGEucmVnaXN0
cmF0aW9uS2V5KCksIGNhY2hlUG9saWN5KTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGNvbm5l
Y3Rpb24sICJJZiB0aGUgY29ubmVjdGlvbiB3YXMgbG9zdCwgdGhpcyBqb2Igc2hvdWxkIGhhdmUg
YmVlbiBjYW5jZWxsZWQiKTsKKyAgICBpZiAoY29ubmVjdGlvbikKKyAgICAgICAgY29ubmVjdGlv
bi0+c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50
aWZpZXIsIGpvYkRhdGEucmVnaXN0cmF0aW9uS2V5KCksIGNhY2hlUG9saWN5KTsKIH0KIAogdm9p
ZCBTV1NlcnZlcjo6c2NyaXB0RmV0Y2hGaW5pc2hlZChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBj
b25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmIHJlc3VsdCkKQEAgLTMyNyw4ICszMjYsMTMg
QEAgdm9pZCBTV1NlcnZlcjo6c2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGEKIAogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZp
Y2VXb3JrZXIsICIlcCAtIFNXU2VydmVyOjpzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydDogRmFp
bGVkIHRvIHN0YXJ0IFNXIGZvciBqb2IgJXMsIGVycm9yOiAlcyIsIHRoaXMsIGpvYkRhdGFJZGVu
dGlmaWVyLT5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbWVzc2FnZS51dGY4KCkuZGF0
YSgpKTsKIAotICAgIGlmIChhdXRvKiBqb2JRdWV1ZSA9IG1fam9iUXVldWVzLmdldCh3b3JrZXIu
cmVnaXN0cmF0aW9uS2V5KCkpKQotICAgICAgICBqb2JRdWV1ZS0+c2NyaXB0Q29udGV4dEZhaWxl
ZFRvU3RhcnQoKmpvYkRhdGFJZGVudGlmaWVyLCB3b3JrZXIuaWRlbnRpZmllcigpLCBtZXNzYWdl
KTsKKyAgICBhdXRvKiBqb2JRdWV1ZSA9IG1fam9iUXVldWVzLmdldCh3b3JrZXIucmVnaXN0cmF0
aW9uS2V5KCkpOworICAgIGlmICgham9iUXVldWUgfHwgIWpvYlF1ZXVlLT5pc0N1cnJlbnRseVBy
b2Nlc3NpbmdKb2IoKmpvYkRhdGFJZGVudGlmaWVyKSkgeworICAgICAgICAvLyBUaGUgam9iIHdo
aWNoIHN0YXJ0ZWQgdGhpcyB3b3JrZXIgaGFzIGJlZW4gY2FuY2VsZWQsIHRlcm1pbmF0ZSB0aGlz
IHdvcmtlci4KKyAgICAgICAgdGVybWluYXRlUHJlaW5zdGFsbGF0aW9uV29ya2VyKHdvcmtlcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgam9iUXVldWUtPnNjcmlwdENvbnRleHRGYWls
ZWRUb1N0YXJ0KCpqb2JEYXRhSWRlbnRpZmllciwgd29ya2VyLmlkZW50aWZpZXIoKSwgbWVzc2Fn
ZSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYgam9iRGF0YUlkZW50aWZp
ZXIsIFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCkBAIC0zMzYsOCArMzQwLDIxIEBAIHZvaWQgU1dT
ZXJ2ZXI6OnNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlckpvYkRhdGFJZGVuCiAgICAgaWYgKCFqb2JEYXRhSWRlbnRpZmllcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKGF1dG8qIGpvYlF1ZXVlID0gbV9qb2JRdWV1ZXMuZ2V0KHdvcmtlci5y
ZWdpc3RyYXRpb25LZXkoKSkpCi0gICAgICAgIGpvYlF1ZXVlLT5zY3JpcHRDb250ZXh0U3RhcnRl
ZCgqam9iRGF0YUlkZW50aWZpZXIsIHdvcmtlci5pZGVudGlmaWVyKCkpOworICAgIGF1dG8qIGpv
YlF1ZXVlID0gbV9qb2JRdWV1ZXMuZ2V0KHdvcmtlci5yZWdpc3RyYXRpb25LZXkoKSk7CisgICAg
aWYgKCFqb2JRdWV1ZSB8fCAham9iUXVldWUtPmlzQ3VycmVudGx5UHJvY2Vzc2luZ0pvYigqam9i
RGF0YUlkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIFRoZSBqb2Igd2hpY2ggc3RhcnRlZCB0aGlz
IHdvcmtlciBoYXMgYmVlbiBjYW5jZWxlZCwgdGVybWluYXRlIHRoaXMgd29ya2VyLgorICAgICAg
ICB0ZXJtaW5hdGVQcmVpbnN0YWxsYXRpb25Xb3JrZXIod29ya2VyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBqb2JRdWV1ZS0+c2NyaXB0Q29udGV4dFN0YXJ0ZWQoKmpvYkRhdGFJZGVu
dGlmaWVyLCB3b3JrZXIuaWRlbnRpZmllcigpKTsKK30KKwordm9pZCBTV1NlcnZlcjo6dGVybWlu
YXRlUHJlaW5zdGFsbGF0aW9uV29ya2VyKFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCit7CisgICAg
d29ya2VyLnRlcm1pbmF0ZSgpOworICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGdldFJlZ2lzdHJh
dGlvbih3b3JrZXIucmVnaXN0cmF0aW9uS2V5KCkpOworICAgIGlmIChyZWdpc3RyYXRpb24gJiYg
cmVnaXN0cmF0aW9uLT5wcmVJbnN0YWxsYXRpb25Xb3JrZXIoKSA9PSAmd29ya2VyKQorICAgICAg
ICByZWdpc3RyYXRpb24tPnNldFByZUluc3RhbGxhdGlvbldvcmtlcihudWxscHRyKTsKIH0KIAog
dm9pZCBTV1NlcnZlcjo6ZGlkRmluaXNoSW5zdGFsbChjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mIGpvYkRhdGFJZGVudGlmaWVyLCBTV1NlcnZlcldv
cmtlciYgd29ya2VyLCBib29sIHdhc1N1Y2Nlc3NmdWwpCkBAIC00ODIsNiArNDk5LDEzIEBAIHZv
aWQgU1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0YShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEmIGRhdGEpCiB7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghZGF0YS5sb2FkZWRGcm9t
RGlzaywgIldvcmtlcnMgd2UganVzdCByZWFkIGZyb20gZGlzayBzaG91bGQgb25seSBiZSBsYXVu
Y2hlZCBhcyBuZWVkZWQiKTsKIAorICAgIGlmIChkYXRhLmpvYkRhdGFJZGVudGlmaWVyKSB7Cisg
ICAgICAgIC8vIEFib3J0IGlmIHRoZSBqb2IgdGhhdCBzY2hlZHVsZWQgdGhpcyBoYXMgbm90IGJl
ZW4gY2FuY2VsbGVkLgorICAgICAgICBhdXRvKiBqb2JRdWV1ZSA9IG1fam9iUXVldWVzLmdldChk
YXRhLnJlZ2lzdHJhdGlvbi5rZXkpOworICAgICAgICBpZiAoIWpvYlF1ZXVlIHx8ICFqb2JRdWV1
ZS0+aXNDdXJyZW50bHlQcm9jZXNzaW5nSm9iKCpkYXRhLmpvYkRhdGFJZGVudGlmaWVyKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3JlZ2lzdHJhdGlvblN0b3JlLnVwZGF0
ZVJlZ2lzdHJhdGlvbihkYXRhKTsKIAogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246Omdsb2JhbFNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKTsKQEAg
LTYwNSw2ICs2MjksOSBAQCB2b2lkIFNXU2VydmVyOjp3b3JrZXJDb250ZXh0VGVybWluYXRlZChT
V1NlcnZlcldvcmtlciYgd29ya2VyKQogICAgIHdvcmtlci5zZXRTdGF0ZShTV1NlcnZlcldvcmtl
cjo6U3RhdGU6Ok5vdFJ1bm5pbmcpOwogICAgIHdvcmtlci5zZXRDb250ZXh0Q29ubmVjdGlvbklk
ZW50aWZpZXIoc3RkOjpudWxsb3B0KTsKIAorICAgIGlmIChhdXRvKiBqb2JRdWV1ZSA9IG1fam9i
UXVldWVzLmdldCh3b3JrZXIucmVnaXN0cmF0aW9uS2V5KCkpKQorICAgICAgICBqb2JRdWV1ZS0+
Y2FuY2VsSm9ic0Zyb21TZXJ2aWNlV29ya2VyKHdvcmtlci5pZGVudGlmaWVyKCkpOworCiAgICAg
Ly8gQXQgdGhpcyBwb2ludCBpZiBubyByZWdpc3RyYXRpb25zIGFyZSByZWZlcmVuY2luZyB0aGUg
d29ya2VyIHRoZW4gaXQgd2lsbCBiZSBkZXN0cm95ZWQsCiAgICAgLy8gcmVtb3ZpbmcgaXRzZWxm
IGZyb20gdGhlIG1fd29ya2Vyc0J5SUQgbWFwLgogICAgIGF1dG8gcmVzdWx0ID0gbV9ydW5uaW5n
T3JUZXJtaW5hdGluZ1dvcmtlcnMudGFrZSh3b3JrZXIuaWRlbnRpZmllcigpKTsKQEAgLTY1OCw2
ICs2ODUsOSBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyQ29ubmVjdGlvbihDb25uZWN0aW9u
JiBjb25uZWN0aW9uKQogCiAgICAgZm9yIChhdXRvJiByZWdpc3RyYXRpb24gOiBtX3JlZ2lzdHJh
dGlvbnMudmFsdWVzKCkpCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+dW5yZWdpc3RlclNlcnZlckNv
bm5lY3Rpb24oY29ubmVjdGlvbi5pZGVudGlmaWVyKCkpOworCisgICAgZm9yIChhdXRvJiBqb2JR
dWV1ZSA6IG1fam9iUXVldWVzLnZhbHVlcygpKQorICAgICAgICBqb2JRdWV1ZS0+Y2FuY2VsSm9i
c0Zyb21Db25uZWN0aW9uKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKTsKIH0KIAogU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24qIFNXU2VydmVyOjpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCAyNmQ3
MjM4ZGI5OTViM2QyYzljYWY3M2ExMTk5YTA5OGNkNDkxMDcxLi42OWRkMmNmOWUxYjViNDRkMGVl
ZTUxNTcxNmY0MzY5NjJjYjIwYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0xODksNiArMTg5LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGFkZENsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oQ29ubmVjdGlvbiYsIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZUNsaWVu
dFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oQ29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyKTsKIAorICAgIHZvaWQgdGVybWluYXRlUHJlaW5zdGFsbGF0aW9u
V29ya2VyKFNXU2VydmVyV29ya2VyJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlclJl
Z2lzdHJhdGlvbiogZG9SZWdpc3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogICAgIGJvb2wgcnVuU2Vydmlj
ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmlu
ZGV4IDdhOGM4MmZlNzQ5ZGZlZGU3YTRiN2Q4N2I5OWVjNTMxNmY2ZTg5YjcuLmRjMzZlNWYyYzQz
OWVjNTkzZDdmOTc2MjZkMjRlZmI5ZDZhYzYzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcApAQCAt
MzY1LDYgKzM2NSw0MSBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OmZpbmlzaEN1cnJlbnRKb2Io
KQogICAgICAgICBydW5OZXh0Sm9iKCk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6cmVt
b3ZlQWxsSm9ic01hdGNoaW5nKGNvbnN0IFdURjo6RnVuY3Rpb248Ym9vbChTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYpPiYgbWF0Y2hlcykKK3sKKyAgICBib29sIGlzRmlyc3QgPSB0cnVlOworICAgIGJv
b2wgZGlkUmVtb3ZlRmlyc3RKb2IgPSBmYWxzZTsKKyAgICBtX2pvYlF1ZXVlLnJlbW92ZUFsbE1h
dGNoaW5nKFsmXShhdXRvJiBqb2IpIHsKKyAgICAgICAgYm9vbCBzaG91bGRSZW1vdmUgPSBtYXRj
aGVzKGpvYik7CisgICAgICAgIGlmIChpc0ZpcnN0KSB7CisgICAgICAgICAgICBpc0ZpcnN0ID0g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlKQorICAgICAgICAgICAgICAgIGRp
ZFJlbW92ZUZpcnN0Sm9iID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hvdWxk
UmVtb3ZlOworICAgIH0pOworCisgICAgaWYgKG1fam9iVGltZXIuaXNBY3RpdmUoKSkgeworICAg
ICAgICBpZiAobV9qb2JRdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2pvYlRpbWVyLnN0
b3AoKTsKKyAgICB9IGVsc2UgaWYgKGRpZFJlbW92ZUZpcnN0Sm9iICYmICFtX2pvYlF1ZXVlLmlz
RW1wdHkoKSkKKyAgICAgICAgcnVuTmV4dEpvYigpOworfQorCit2b2lkIFNXU2VydmVySm9iUXVl
dWU6OmNhbmNlbEpvYnNGcm9tQ29ubmVjdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJlbW92ZUFsbEpvYnNNYXRjaGluZyhbY29u
bmVjdGlvbklkZW50aWZpZXJdKGF1dG8mIGpvYikgeworICAgICAgICByZXR1cm4gam9iLmlkZW50
aWZpZXIoKS5jb25uZWN0aW9uSWRlbnRpZmllciA9PSBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyAg
ICB9KTsKK30KKwordm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpjYW5jZWxKb2JzRnJvbVNlcnZpY2VX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7
CisgICAgcmVtb3ZlQWxsSm9ic01hdGNoaW5nKFtzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0oYXV0
byYgam9iKSB7CisgICAgICAgIHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyPihqb2Iuc291cmNlQ29udGV4dCkgJiYgV1RGOjpnZXQ8U2VydmljZVdv
cmtlcklkZW50aWZpZXI+KGpvYi5zb3VyY2VDb250ZXh0KSA9PSBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllcjsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaAppbmRleCA4MTA5MTVkYzhhOGJk
MDdmOGQ0YjcwNjgwMGQwNmY4YWU0NTM5ZTg2Li43NWEwY2JkODM5MzQ5NTkxNDZkODViZWVmZmY4
NzdmODdjYzQ1YjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVySm9iUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaApAQCAtNTMsNiArNTMsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3QgU2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmlu
aXNoSW5zdGFsbChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKTsKICAgICB2b2lkIGRpZFJlc29s
dmVSZWdpc3RyYXRpb25Qcm9taXNlKCk7CisgICAgdm9pZCBjYW5jZWxKb2JzRnJvbUNvbm5lY3Rp
b24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBjYW5jZWxKb2JzRnJv
bVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworCisgICAgYm9vbCBpc0N1
cnJlbnRseVByb2Nlc3NpbmdKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
JikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBqb2JUaW1lckZpcmVkKCk7CkBAIC02Niw3
ICs3MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGluc3RhbGwoU1dTZXJ2ZXJSZWdpc3RyYXRp
b24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKLSAgICBib29sIGlzQ3VycmVudGx5UHJv
Y2Vzc2luZ0pvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImKSBjb25zdDsK
KyAgICB2b2lkIHJlbW92ZUFsbEpvYnNNYXRjaGluZyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wo
U2VydmljZVdvcmtlckpvYkRhdGEmKT4mKTsKIAogICAgIERlcXVlPFNlcnZpY2VXb3JrZXJKb2JE
YXRhPiBtX2pvYlF1ZXVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDEzNmFl
MjBhZTUyYzE1MWUxM2Y0YmYzNmE0MDJmMTQ3YTI3ZjUzNTEuLmM5NTQzNDQ2MWVmYzM2YzNmNWU4
MmEwM2ZhZDM5MjVjMzFjNDA0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC03
Miw3ICs3Miw2IEBAIFNXU2VydmVyV29ya2VyKiBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Z2V0TmV3
ZXN0V29ya2VyKCkKIAogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2V0UHJlSW5zdGFsbGF0
aW9uV29ya2VyKFNXU2VydmVyV29ya2VyKiB3b3JrZXIpCiB7Ci0gICAgQVNTRVJUKCFtX3ByZUlu
c3RhbGxhdGlvbldvcmtlciB8fCAhd29ya2VyKTsKICAgICBtX3ByZUluc3RhbGxhdGlvbldvcmtl
ciA9IHdvcmtlcjsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYyZTE3OTExOTc1NGI3Yjg5NGFmOTNiZDE3YzI5OTQx
NDQ1YmQxOTAuLjBiNjRhNDU0MWVjYTU2NTgzYWFjZTY0M2Y2OTk5YTlmZTA1MDdkMzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOC0wMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXNhbWUtc2NvcGUtZGlm
ZmVyZW50LXNjcmlwdC11cmwuaHR0cHMuaHRtbCBpcyBmbGFreQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMTY2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNzE2OTUwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVbnNraXAgdGVzdCB0aGF0IGlzIG5vIGxvbmdlciBmbGFreS4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOC0wMi0wMiAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29u
dHJvbHNdIFR1cm4gbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3ZvbHVtZS0qIGJhY2sgb24K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0
MjE0M2YyYWVhMGFmY2Y0M2Y3OGQ2ZWEwMWVlNTUzNGFiYzZhNmY5Li5mMGViYzkxNzAyY2RmMDUz
MGE1MzcxZTY1NjhlYzdhY2UxYzg2ZWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC04NTMsOCArODUzLDYgQEAgd2Via2l0Lm9yZy9iLzE3
OTE5NCBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2UKIAogd2Via2l0Lm9yZy9iLzE4MDk4MiBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0
aW9uLXVwZGF0ZXZpYWNhY2hlLmh0dHBzLmh0bWwgWyBTbG93IF0KIAotd2Via2l0Lm9yZy9iLzE4
MTE2NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWdpc3Rlci1zYW1lLXNjb3BlLWRpZmZlcmVudC1zY3JpcHQtdXJsLmh0dHBz
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTgxMTY3IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8xODEwNjkgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVs
ZW1lbnQtc2V0T2JqZWN0LW51bGwuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333086</attachid>
            <date>2018-02-05 09:36:55 -0800</date>
            <delta_ts>2018-02-05 10:12:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181166-20180205093654.patch</filename>
            <type>text/plain</type>
            <size>19360</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE0Njg1ZTkzN2ZkZWVm
N2E1NzQzYmIzYTNjOTRkNDJlOTY3OGRkYy4uYmZhYzVhNzNhOWZiYTFjMjIzZmVjZDFhMmE3MWYz
ZDU0ODgwZDU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTAyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTGF5b3V0IFRlc3QgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVnaXN0ZXItc2FtZS1zY29wZS1kaWZmZXJlbnQtc2NyaXB0LXVybC5odHRwcy5odG1sIGlzIGZs
YWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEx
NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3MTY5NTA4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgSSBmb3VuZCBvdXQgdGhhdCB0aGlzIHRlc3Qg
d2FzIGZsYWtpbHkgdGltaW5nIG91dCBiZWNhdXNlIG91ciBqb2JRdWV1ZXMgd291bGQgc29tZXRp
bWVzIGdldCBzdHVjaworICAgICAgICB3aGVuIHRoZWlyIGN1cnJlbnQgam9iJ3MgY29ubmVjdGlv
biBvciBzZXJ2aWNlIHdvcmtlciAod2hlbiBzY2hlZHVsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlcikg
d291bGQKKyAgICAgICAgZ28gYXdheSBiZWZvcmUgdGhlIGpvYiBpcyBjb21wbGV0ZS4KKworICAg
ICAgICBUaGlzIHBhdGNoIG1ha2VzIG91ciBqb2IgcXVldWVzIG9wZXJhdGlvbiBtb3JlIHJvYnVz
dCBieToKKyAgICAgICAgMS4gQ2FuY2VsbGluZyBhbGwgam9icyBmcm9tIGEgZ2l2ZW4gY29ubmVj
dGlvbiB3aGVuIGEgU1dTZXJ2ZXJDb25uZWN0aW9uIGdvZXMgYXdheQorICAgICAgICAyLiBDYW5j
ZWxsaW5nIGFsbCBqb2JzIGZyb20gYSBnaXZlbiBzZXJ2aWNlIHdvcmtlciB3aGVuIGEgc2Vydmlj
ZSB3b3JrZXIgZ2V0cyB0ZXJtaW5hdGVkCisKKyAgICAgICAgV2UgYWxzbyBtYWtlIHN1cmUgc2Vy
dmljZSB3b3JrZXJzIGNyZWF0ZWQgYnkgYSBqb2IgZ2V0IHByb3Blcmx5IHRlcm1pbmF0ZWQgd2hl
biBhIGpvYgorICAgICAgICBpcyBjYW5jZWxlZCB0byBhdm9pZCBsZWF2aW5nIHNlcnZpY2Ugd29y
a2VycyBpbiBsaW1iby4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVuc2tpcHBlZCBleGlzdGlu
ZyBmbGFreSB0ZXN0LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6
YWRkUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OnJlbW92ZVJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjp1cGRhdGVSZWdpc3RyYXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySm9iRGF0YTo6U2VydmljZVdvcmtlckpvYkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYkRhdGE6Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJKb2JEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0
RmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNjcmlwdENvbnRleHRGYWlsZWRU
b1N0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzY3JpcHRDb250ZXh0U3RhcnRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dGVybWluYXRlUHJlaW5zdGFsbGF0aW9u
V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjppbnN0YWxsQ29udGV4dERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OndvcmtlckNvbnRleHRUZXJtaW5hdGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp1bnJlZ2lzdGVyQ29ubmVjdGlvbik6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlckpvYlF1ZXVlOjpyZW1vdmVBbGxKb2JzTWF0Y2hpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6Y2FuY2VsSm9ic0Zyb21Db25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNXU2VydmVySm9iUXVldWU6OmNhbmNlbEpvYnNGcm9tU2VydmljZVdvcmtl
cik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2V0UHJlSW5zdGFs
bGF0aW9uV29ya2VyKToKKwogMjAxOC0wMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIENsZWFyaW5nIGEgcmVnaXN0cmF0aW9uIHNob3VsZCBudWxsIG91dCBp
dHMgd29ya2VycyBiZWZvcmUgc2V0dGluZyB0aGVpciBzdGF0ZSB0byAicmVkdW5kYW50IgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwCmluZGV4IGNmYzQxZGRiYWFmNDVhZDVhNjUyYjMzYjRlNWNmMjlmNTAxNGY0
YjkuLjY1NzUzNmI1YWVhMjFlMDc0YzUxNWJmOGRlOGMwYTU4ZGJkNWFjZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6
OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjbwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YShl
bnN1cmVTV0NsaWVudENvbm5lY3Rpb24oKS5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpKTsK
KyAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhKGVuc3VyZVNXQ2xpZW50Q29ubmVjdGlv
bigpLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGNvbnRleHRJZGVudGlmaWVyKCkpOwog
CiAgICAgam9iRGF0YS5zY3JpcHRVUkwgPSBjb250ZXh0LT5jb21wbGV0ZVVSTChyZWxhdGl2ZVNj
cmlwdFVSTCk7CiAgICAgaWYgKCFqb2JEYXRhLnNjcmlwdFVSTC5pc1ZhbGlkKCkpIHsKQEAgLTE5
MSw3ICsxOTEsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlbW92ZVJlZ2lzdHJh
dGlvbihjb25zdCBVUkwmIHNjb3BlVVJMLCBSZWY8RGVmZXJyZQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgU2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSk7CisgICAgU2VydmljZVdvcmtlckpvYkRhdGEg
am9iRGF0YShtX3N3Q29ubmVjdGlvbi0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgY29u
dGV4dElkZW50aWZpZXIoKSk7CiAgICAgam9iRGF0YS5jbGllbnRDcmVhdGlvblVSTCA9IGNvbnRl
eHQtPnVybCgpOwogICAgIGpvYkRhdGEudG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tU2VjdXJpdHlPcmlnaW4oY29udGV4dC0+dG9wT3JpZ2luKCkpOwogICAgIGpvYkRhdGEudHlw
ZSA9IFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVbnJlZ2lzdGVyOwpAQCAtMjE2LDcgKzIxNiw3IEBA
IHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6dXBkYXRlUmVnaXN0cmF0aW9uKGNvbnN0IFVS
TCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNl
cnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPnNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKCkpOworICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nv
bm5lY3Rpb24tPnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGNvbnRleHRJZGVudGlmaWVy
KCkpOwogICAgIGpvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBjb250ZXh0LnVybCgpOwogICAg
IGpvYkRhdGEudG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmln
aW4oY29udGV4dC50b3BPcmlnaW4oKSk7CiAgICAgam9iRGF0YS50eXBlID0gU2VydmljZVdvcmtl
ckpvYlR5cGU6OlVwZGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwCmluZGV4IDY4OTRjYjBlMzNjZjRlOWIzN2U5
ODY3NDRkOTkwNTlmYzUwNTA3MDUuLjI5YzgwZTE3NzYyYTY2YTNmOGJiMGE2MjI2Mzc2YmI0Yzk2
MWE0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VySm9iRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJKb2JEYXRhLmNwcApAQCAtMzUsOSArMzUsMTQgQEAgU2VydmljZVdvcmtlckpv
YkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIp
CiB7CiB9CiAKLVNlcnZpY2VXb3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YShTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorU2VydmljZVdv
cmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IERvY3VtZW50T3JXb3JrZXJJZGVudGlm
aWVyJiBsb2NhbFNvdXJjZUNvbnRleHQpCiAgICAgOiBtX2lkZW50aWZpZXIgeyBjb25uZWN0aW9u
SWRlbnRpZmllciwgZ2VuZXJhdGVUaHJlYWRTYWZlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29y
a2VySm9iSWRlbnRpZmllclR5cGU+KCkgfQogeworICAgIFdURjo6c3dpdGNoT24obG9jYWxTb3Vy
Y2VDb250ZXh0LCBbJl0oRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcikgewor
ICAgICAgICBzb3VyY2VDb250ZXh0ID0gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgeyBj
b25uZWN0aW9uSWRlbnRpZmllciwgZG9jdW1lbnRJZGVudGlmaWVyIH07CisgICAgfSwgWyZdKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSB7CisgICAgICAg
IHNvdXJjZUNvbnRleHQgPSBzZXJ2aWNlV29ya2VySWRlbnRpZmllcjsKKyAgICB9KTsKIH0KIAog
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSBTZXJ2aWNlV29ya2VySm9iRGF0YTo6cmVnaXN0
cmF0aW9uS2V5KCkgY29uc3QKQEAgLTUwLDYgKzU1LDcgQEAgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSBTZXJ2aWNlV29ya2VySm9iRGF0YTo6cmVnaXN0cmF0aW9uS2V5KCkgY29uc3QKIFNl
cnZpY2VXb3JrZXJKb2JEYXRhIFNlcnZpY2VXb3JrZXJKb2JEYXRhOjppc29sYXRlZENvcHkoKSBj
b25zdAogewogICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIHJlc3VsdCB7IGlkZW50aWZpZXIoKSB9
OworICAgIHJlc3VsdC5zb3VyY2VDb250ZXh0ID0gc291cmNlQ29udGV4dDsKICAgICByZXN1bHQu
dHlwZSA9IHR5cGU7CiAKICAgICByZXN1bHQuc2NyaXB0VVJMID0gc2NyaXB0VVJMLmlzb2xhdGVk
Q29weSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJKb2JEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckpvYkRhdGEuaAppbmRleCBiZTEzYjhiOWFlNTVkYTA5ZjQ4YzMzOWZmNzU4OTk0YzJh
Mjk3YTg2Li4wODcwYmI2ZWY2MDI5ODQ1Y2Q0YTliNmRlMjMwMGE4ODNjYWExYzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRh
dGEuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYlR5cGUuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5LmgiCkBAIC0zOSw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhIHsKICAgICB1c2luZyBJZGVudGlm
aWVyID0gU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyOwotICAgIGV4cGxpY2l0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIFNlcnZp
Y2VXb3JrZXJKb2JEYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IERvY3Vt
ZW50T3JXb3JrZXJJZGVudGlmaWVyJiBzb3VyY2VDb250ZXh0KTsKICAgICBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpID0gZGVmYXVsdDsKICAgICBTZXJ2
aWNlV29ya2VySm9iRGF0YSgpID0gZGVmYXVsdDsKIApAQCAtNDksNiArNTAsNyBAQCBzdHJ1Y3Qg
U2VydmljZVdvcmtlckpvYkRhdGEgewogICAgIFVSTCBjbGllbnRDcmVhdGlvblVSTDsKICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luOwogICAgIFVSTCBzY29wZVVSTDsKKyAgICBTZXJ2
aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHQ7CiAgICAgU2VydmljZVdv
cmtlckpvYlR5cGUgdHlwZTsKIAogICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25z
IHJlZ2lzdHJhdGlvbk9wdGlvbnM7CkBAIC02OSw3ICs3MSw3IEBAIHByaXZhdGU6CiB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXJ2aWNlV29ya2VySm9iRGF0YTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBpZGVudGlmaWVyKCkgPDwgc2Ny
aXB0VVJMIDw8IGNsaWVudENyZWF0aW9uVVJMIDw8IHRvcE9yaWdpbiA8PCBzY29wZVVSTDsKKyAg
ICBlbmNvZGVyIDw8IGlkZW50aWZpZXIoKSA8PCBzY3JpcHRVUkwgPDwgY2xpZW50Q3JlYXRpb25V
UkwgPDwgdG9wT3JpZ2luIDw8IHNjb3BlVVJMIDw8IHNvdXJjZUNvbnRleHQ7CiAgICAgZW5jb2Rl
ci5lbmNvZGVFbnVtKHR5cGUpOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgU2Vydmlj
ZVdvcmtlckpvYlR5cGU6OlJlZ2lzdGVyOgpAQCAtMTA0LDYgKzEwNiw4IEBAIHN0ZDo6b3B0aW9u
YWw8U2VydmljZVdvcmtlckpvYkRhdGE+IFNlcnZpY2VXb3JrZXJKb2JEYXRhOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlCiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGpvYkRhdGEuc2NvcGVVUkwp
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
am9iRGF0YS5zb3VyY2VDb250ZXh0KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShqb2JEYXRhLnR5cGUpKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDc0NWVkNWFiNmM3ODY4YjBlZjhhZTg2MWRkNGRlNWZi
NDlhMTM3ZWQuLjEzN2ZhZjkyNTk0MGIzZGNmZTc1MGM4OTk3YWUxNjA2M2ZlMzk0ZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CkBAIC0zMDEsMTAgKzMwMSw5IEBAIHZvaWQgU1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2goY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIEZldGNoT3B0aW9uCiB7CiAgICAgTE9H
KFNlcnZpY2VXb3JrZXIsICJTZXJ2ZXIgaXNzdWluZyBzdGFydFNjcmlwdEZldGNoIGZvciBjdXJy
ZW50IGpvYiAlcyBpbiBjbGllbnQiLCBqb2JEYXRhLmlkZW50aWZpZXIoKS5sb2dnaW5nU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgYXV0byogY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMu
Z2V0KGpvYkRhdGEuY29ubmVjdGlvbklkZW50aWZpZXIoKSk7Ci0gICAgaWYgKCFjb25uZWN0aW9u
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25uZWN0aW9uLT5zdGFydFNjcmlwdEZldGNoSW5D
bGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCkuam9iSWRlbnRpZmllciwgam9iRGF0YS5yZWdpc3Ry
YXRpb25LZXkoKSwgY2FjaGVQb2xpY3kpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoY29ubmVj
dGlvbiwgIklmIHRoZSBjb25uZWN0aW9uIHdhcyBsb3N0LCB0aGlzIGpvYiBzaG91bGQgaGF2ZSBi
ZWVuIGNhbmNlbGxlZCIpOworICAgIGlmIChjb25uZWN0aW9uKQorICAgICAgICBjb25uZWN0aW9u
LT5zdGFydFNjcmlwdEZldGNoSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCkuam9iSWRlbnRp
Zmllciwgam9iRGF0YS5yZWdpc3RyYXRpb25LZXkoKSwgY2FjaGVQb2xpY3kpOwogfQogCiB2b2lk
IFNXU2VydmVyOjpzY3JpcHRGZXRjaEZpbmlzaGVkKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNv
bnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQpAQCAtMzI3LDggKzMyNiwxMyBA
QCB2b2lkIFNXU2VydmVyOjpzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChjb25zdCBzdGQ6Om9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYQogCiAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2Vydmlj
ZVdvcmtlciwgIiVwIC0gU1dTZXJ2ZXI6OnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0OiBGYWls
ZWQgdG8gc3RhcnQgU1cgZm9yIGpvYiAlcywgZXJyb3I6ICVzIiwgdGhpcywgam9iRGF0YUlkZW50
aWZpZXItPmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtZXNzYWdlLnV0ZjgoKS5kYXRh
KCkpOwogCi0gICAgaWYgKGF1dG8qIGpvYlF1ZXVlID0gbV9qb2JRdWV1ZXMuZ2V0KHdvcmtlci5y
ZWdpc3RyYXRpb25LZXkoKSkpCi0gICAgICAgIGpvYlF1ZXVlLT5zY3JpcHRDb250ZXh0RmFpbGVk
VG9TdGFydCgqam9iRGF0YUlkZW50aWZpZXIsIHdvcmtlci5pZGVudGlmaWVyKCksIG1lc3NhZ2Up
OworICAgIGF1dG8qIGpvYlF1ZXVlID0gbV9qb2JRdWV1ZXMuZ2V0KHdvcmtlci5yZWdpc3RyYXRp
b25LZXkoKSk7CisgICAgaWYgKCFqb2JRdWV1ZSB8fCAham9iUXVldWUtPmlzQ3VycmVudGx5UHJv
Y2Vzc2luZ0pvYigqam9iRGF0YUlkZW50aWZpZXIpKSB7CisgICAgICAgIC8vIFRoZSBqb2Igd2hp
Y2ggc3RhcnRlZCB0aGlzIHdvcmtlciBoYXMgYmVlbiBjYW5jZWxlZCwgdGVybWluYXRlIHRoaXMg
d29ya2VyLgorICAgICAgICB0ZXJtaW5hdGVQcmVpbnN0YWxsYXRpb25Xb3JrZXIod29ya2VyKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBqb2JRdWV1ZS0+c2NyaXB0Q29udGV4dEZhaWxl
ZFRvU3RhcnQoKmpvYkRhdGFJZGVudGlmaWVyLCB3b3JrZXIuaWRlbnRpZmllcigpLCBtZXNzYWdl
KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6c2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3Qgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiBqb2JEYXRhSWRlbnRpZmll
ciwgU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKQEAgLTMzNiw4ICszNDAsMjEgQEAgdm9pZCBTV1Nl
cnZlcjo6c2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VySm9iRGF0YUlkZW4KICAgICBpZiAoIWpvYkRhdGFJZGVudGlmaWVyKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoYXV0byogam9iUXVldWUgPSBtX2pvYlF1ZXVlcy5nZXQod29ya2VyLnJl
Z2lzdHJhdGlvbktleSgpKSkKLSAgICAgICAgam9iUXVldWUtPnNjcmlwdENvbnRleHRTdGFydGVk
KCpqb2JEYXRhSWRlbnRpZmllciwgd29ya2VyLmlkZW50aWZpZXIoKSk7CisgICAgYXV0byogam9i
UXVldWUgPSBtX2pvYlF1ZXVlcy5nZXQod29ya2VyLnJlZ2lzdHJhdGlvbktleSgpKTsKKyAgICBp
ZiAoIWpvYlF1ZXVlIHx8ICFqb2JRdWV1ZS0+aXNDdXJyZW50bHlQcm9jZXNzaW5nSm9iKCpqb2JE
YXRhSWRlbnRpZmllcikpIHsKKyAgICAgICAgLy8gVGhlIGpvYiB3aGljaCBzdGFydGVkIHRoaXMg
d29ya2VyIGhhcyBiZWVuIGNhbmNlbGVkLCB0ZXJtaW5hdGUgdGhpcyB3b3JrZXIuCisgICAgICAg
IHRlcm1pbmF0ZVByZWluc3RhbGxhdGlvbldvcmtlcih3b3JrZXIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGpvYlF1ZXVlLT5zY3JpcHRDb250ZXh0U3RhcnRlZCgqam9iRGF0YUlkZW50
aWZpZXIsIHdvcmtlci5pZGVudGlmaWVyKCkpOworfQorCit2b2lkIFNXU2VydmVyOjp0ZXJtaW5h
dGVQcmVpbnN0YWxsYXRpb25Xb3JrZXIoU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKK3sKKyAgICB3
b3JrZXIudGVybWluYXRlKCk7CisgICAgYXV0byogcmVnaXN0cmF0aW9uID0gZ2V0UmVnaXN0cmF0
aW9uKHdvcmtlci5yZWdpc3RyYXRpb25LZXkoKSk7CisgICAgaWYgKHJlZ2lzdHJhdGlvbiAmJiBy
ZWdpc3RyYXRpb24tPnByZUluc3RhbGxhdGlvbldvcmtlcigpID09ICZ3b3JrZXIpCisgICAgICAg
IHJlZ2lzdHJhdGlvbi0+c2V0UHJlSW5zdGFsbGF0aW9uV29ya2VyKG51bGxwdHIpOwogfQogCiB2
b2lkIFNXU2VydmVyOjpkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYgam9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyV29y
a2VyJiB3b3JrZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkKQEAgLTQ4Miw2ICs0OTksMTMgQEAgdm9p
ZCBTV1NlcnZlcjo6aW5zdGFsbENvbnRleHREYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYgZGF0YSkKIHsKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFkYXRhLmxvYWRlZEZyb21E
aXNrLCAiV29ya2VycyB3ZSBqdXN0IHJlYWQgZnJvbSBkaXNrIHNob3VsZCBvbmx5IGJlIGxhdW5j
aGVkIGFzIG5lZWRlZCIpOwogCisgICAgaWYgKGRhdGEuam9iRGF0YUlkZW50aWZpZXIpIHsKKyAg
ICAgICAgLy8gQWJvcnQgaWYgdGhlIGpvYiB0aGF0IHNjaGVkdWxlZCB0aGlzIGhhcyBiZWVuIGNh
bmNlbGxlZC4KKyAgICAgICAgYXV0byogam9iUXVldWUgPSBtX2pvYlF1ZXVlcy5nZXQoZGF0YS5y
ZWdpc3RyYXRpb24ua2V5KTsKKyAgICAgICAgaWYgKCFqb2JRdWV1ZSB8fCAham9iUXVldWUtPmlz
Q3VycmVudGx5UHJvY2Vzc2luZ0pvYigqZGF0YS5qb2JEYXRhSWRlbnRpZmllcikpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9yZWdpc3RyYXRpb25TdG9yZS51cGRhdGVSZWdp
c3RyYXRpb24oZGF0YSk7CiAKICAgICBhdXRvKiBjb25uZWN0aW9uID0gU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpnbG9iYWxTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCk7CkBAIC02MDUs
NiArNjI5LDkgQEAgdm9pZCBTV1NlcnZlcjo6d29ya2VyQ29udGV4dFRlcm1pbmF0ZWQoU1dTZXJ2
ZXJXb3JrZXImIHdvcmtlcikKICAgICB3b3JrZXIuc2V0U3RhdGUoU1dTZXJ2ZXJXb3JrZXI6OlN0
YXRlOjpOb3RSdW5uaW5nKTsKICAgICB3b3JrZXIuc2V0Q29udGV4dENvbm5lY3Rpb25JZGVudGlm
aWVyKHN0ZDo6bnVsbG9wdCk7CiAKKyAgICBpZiAoYXV0byogam9iUXVldWUgPSBtX2pvYlF1ZXVl
cy5nZXQod29ya2VyLnJlZ2lzdHJhdGlvbktleSgpKSkKKyAgICAgICAgam9iUXVldWUtPmNhbmNl
bEpvYnNGcm9tU2VydmljZVdvcmtlcih3b3JrZXIuaWRlbnRpZmllcigpKTsKKwogICAgIC8vIEF0
IHRoaXMgcG9pbnQgaWYgbm8gcmVnaXN0cmF0aW9ucyBhcmUgcmVmZXJlbmNpbmcgdGhlIHdvcmtl
ciB0aGVuIGl0IHdpbGwgYmUgZGVzdHJveWVkLAogICAgIC8vIHJlbW92aW5nIGl0c2VsZiBmcm9t
IHRoZSBtX3dvcmtlcnNCeUlEIG1hcC4KICAgICBhdXRvIHJlc3VsdCA9IG1fcnVubmluZ09yVGVy
bWluYXRpbmdXb3JrZXJzLnRha2Uod29ya2VyLmlkZW50aWZpZXIoKSk7CkBAIC02NTgsNiArNjg1
LDkgQEAgdm9pZCBTV1NlcnZlcjo6dW5yZWdpc3RlckNvbm5lY3Rpb24oQ29ubmVjdGlvbiYgY29u
bmVjdGlvbikKIAogICAgIGZvciAoYXV0byYgcmVnaXN0cmF0aW9uIDogbV9yZWdpc3RyYXRpb25z
LnZhbHVlcygpKQogICAgICAgICByZWdpc3RyYXRpb24tPnVucmVnaXN0ZXJTZXJ2ZXJDb25uZWN0
aW9uKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKTsKKworICAgIGZvciAoYXV0byYgam9iUXVldWUg
OiBtX2pvYlF1ZXVlcy52YWx1ZXMoKSkKKyAgICAgICAgam9iUXVldWUtPmNhbmNlbEpvYnNGcm9t
Q29ubmVjdGlvbihjb25uZWN0aW9uLmlkZW50aWZpZXIoKSk7CiB9CiAKIFNXU2VydmVyUmVnaXN0
cmF0aW9uKiBTV1NlcnZlcjo6ZG9SZWdpc3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggMjZkNzIzOGRi
OTk1YjNkMmM5Y2FmNzNhMTE5OWEwOThjZDQ5MTA3MS4uNjlkZDJjZjllMWI1YjQ0ZDBlZWU1MTU3
MTZmNDM2OTYyY2IyMGI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTg5LDYgKzE4OSw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBhZGRDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rpb24mLCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVDbGllbnRTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllcik7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZVByZWluc3RhbGxhdGlvbldvcmtl
cihTV1NlcnZlcldvcmtlciYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24qIGRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0
b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKICAgICBib29sIHJ1blNlcnZpY2VXb3Jr
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAppbmRleCA3
YThjODJmZTc0OWRmZWRlN2E0YjdkODdiOTllYzUzMTZmNmU4OWI3Li5kYzM2ZTVmMmM0MzllYzU5
M2Q3Zjk3NjI2ZDI0ZWZiOWQ2YWM2MzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTM2NSw2
ICszNjUsNDEgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpmaW5pc2hDdXJyZW50Sm9iKCkKICAg
ICAgICAgcnVuTmV4dEpvYigpOwogfQogCit2b2lkIFNXU2VydmVySm9iUXVldWU6OnJlbW92ZUFs
bEpvYnNNYXRjaGluZyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2woU2VydmljZVdvcmtlckpvYkRh
dGEmKT4mIG1hdGNoZXMpCit7CisgICAgYm9vbCBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICBib29sIGRp
ZFJlbW92ZUZpcnN0Sm9iID0gZmFsc2U7CisgICAgbV9qb2JRdWV1ZS5yZW1vdmVBbGxNYXRjaGlu
ZyhbJl0oYXV0byYgam9iKSB7CisgICAgICAgIGJvb2wgc2hvdWxkUmVtb3ZlID0gbWF0Y2hlcyhq
b2IpOworICAgICAgICBpZiAoaXNGaXJzdCkgeworICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNl
OworICAgICAgICAgICAgaWYgKHNob3VsZFJlbW92ZSkKKyAgICAgICAgICAgICAgICBkaWRSZW1v
dmVGaXJzdEpvYiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNob3VsZFJlbW92
ZTsKKyAgICB9KTsKKworICAgIGlmIChtX2pvYlRpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAg
aWYgKG1fam9iUXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9qb2JUaW1lci5zdG9wKCk7
CisgICAgfSBlbHNlIGlmIChkaWRSZW1vdmVGaXJzdEpvYiAmJiAhbV9qb2JRdWV1ZS5pc0VtcHR5
KCkpCisgICAgICAgIHJ1bk5leHRKb2IoKTsKK30KKwordm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpj
YW5jZWxKb2JzRnJvbUNvbm5lY3Rpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICByZW1vdmVBbGxKb2JzTWF0Y2hpbmcoW2Nvbm5lY3Rp
b25JZGVudGlmaWVyXShhdXRvJiBqb2IpIHsKKyAgICAgICAgcmV0dXJuIGpvYi5pZGVudGlmaWVy
KCkuY29ubmVjdGlvbklkZW50aWZpZXIgPT0gY29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgfSk7
Cit9CisKK3ZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6Y2FuY2VsSm9ic0Zyb21TZXJ2aWNlV29ya2Vy
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAg
IHJlbW92ZUFsbEpvYnNNYXRjaGluZyhbc2VydmljZVdvcmtlcklkZW50aWZpZXJdKGF1dG8mIGpv
YikgeworICAgICAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcj4oam9iLnNvdXJjZUNvbnRleHQpICYmIFdURjo6Z2V0PFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyPihqb2Iuc291cmNlQ29udGV4dCkgPT0gc2VydmljZVdvcmtlcklkZW50aWZpZXI7
CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKaW5kZXggODEwOTE1ZGM4YThiZDA3Zjhk
NGI3MDY4MDBkMDZmOGFlNDUzOWU4Ni4uNzVhMGNiZDgzOTM0OTU5MTQ2ZDg1YmVlZmZmODc3Zjg3
Y2M0NWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlckpvYlF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKQEAgLTUzLDYgKzUzLDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRl
bnRpZmllciYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaElu
c3RhbGwoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVn
aXN0cmF0aW9uUHJvbWlzZSgpOworICAgIHZvaWQgY2FuY2VsSm9ic0Zyb21Db25uZWN0aW9uKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgY2FuY2VsSm9ic0Zyb21TZXJ2
aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKworICAgIGJvb2wgaXNDdXJyZW50
bHlQcm9jZXNzaW5nSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYpIGNv
bnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgam9iVGltZXJGaXJlZCgpOwpAQCAtNjYsNyArNzAs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBpbnN0YWxsKFNXU2VydmVyUmVnaXN0cmF0aW9uJiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCi0gICAgYm9vbCBpc0N1cnJlbnRseVByb2Nlc3Np
bmdKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJikgY29uc3Q7CisgICAg
dm9pZCByZW1vdmVBbGxKb2JzTWF0Y2hpbmcoY29uc3QgV1RGOjpGdW5jdGlvbjxib29sKFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJik+Jik7CiAKICAgICBEZXF1ZTxTZXJ2aWNlV29ya2VySm9iRGF0YT4g
bV9qb2JRdWV1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCAxMzZhZTIwYWU1
MmMxNTFlMTNmNGJmMzZhNDAyZjE0N2EyN2Y1MzUxLi5jOTU0MzQ0NjFlZmMzNmMzZjVlODJhMDNm
YWQzOTI1YzMxYzQwNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtNzIsNyAr
NzIsNiBAQCBTV1NlcnZlcldvcmtlciogU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmdldE5ld2VzdFdv
cmtlcigpCiAKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNldFByZUluc3RhbGxhdGlvbldv
cmtlcihTV1NlcnZlcldvcmtlciogd29ya2VyKQogewotICAgIEFTU0VSVCghbV9wcmVJbnN0YWxs
YXRpb25Xb3JrZXIgfHwgIXdvcmtlcik7CiAgICAgbV9wcmVJbnN0YWxsYXRpb25Xb3JrZXIgPSB3
b3JrZXI7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA2MmUxNzkxMTk3NTRiN2I4OTRhZjkzYmQxN2MyOTk0MTQ0NWJk
MTkwLi4yNjI0MGEzMTlkNWMxMzE0YjY2MDcyMGM0ZWI2MWE0ZDI0NWM3NWQxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTgtMDItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBMYXlvdXQgVGVzdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1zYW1lLXNjb3BlLWRpZmZlcmVu
dC1zY3JpcHQtdXJsLmh0dHBzLmh0bWwgaXMgZmxha3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTE2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzcxNjk1MDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBVbnNraXAgdGVzdCB0aGF0IGlzIG5vIGxvbmdlciBmbGFreS4KKworICAgICAgICAqIHBsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOC0wMi0wMiAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNd
IFR1cm4gbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3ZvbHVtZS0qIGJhY2sgb24KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0MjE0M2Yy
YWVhMGFmY2Y0M2Y3OGQ2ZWEwMWVlNTUzNGFiYzZhNmY5Li5mMGViYzkxNzAyY2RmMDUzMGE1Mzcx
ZTY1NjhlYzdhY2UxYzg2ZWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC04NTMsOCArODUzLDYgQEAgd2Via2l0Lm9yZy9iLzE3OTE5NCBb
IERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2UKIAogd2Via2l0Lm9yZy9iLzE4MDk4MiBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXVw
ZGF0ZXZpYWNhY2hlLmh0dHBzLmh0bWwgWyBTbG93IF0KIAotd2Via2l0Lm9yZy9iLzE4MTE2NiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZWdpc3Rlci1zYW1lLXNjb3BlLWRpZmZlcmVudC1zY3JpcHQtdXJsLmh0dHBzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTgxMTY3IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS91cGRhdGUuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtp
dC5vcmcvYi8xODEwNjkgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQt
c2V0T2JqZWN0LW51bGwuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>