<?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>237317</bug_id>
          
          <creation_ts>2022-03-01 04:00:05 -0800</creation_ts>
          <short_desc>PerformanceNavigationTiming Response Start unavailable when using Service Worker Cache</short_desc>
          <delta_ts>2022-03-17 14:46:35 -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>Safari 15</version>
          <rep_platform>Mac (Apple Silicon)</rep_platform>
          <op_sys>macOS 12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://sw-lifecycle-test.app.baqend.com/safari-timing-sw/</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="Daniel Schulz">daniel.schulz</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>boguinn</cc>
    
    <cc>cdumez</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>1846988</commentid>
    <comment_count>0</comment_count>
      <attachid>453487</attachid>
    <who name="Daniel Schulz">daniel.schulz</who>
    <bug_when>2022-03-01 04:00:05 -0800</bug_when>
    <thetext>Created attachment 453487
A Document, Script and Service Worker that exhibit the described bug

When The document is being served from a Service Worker Cache, the PerofrmanceNavigationTiming API returns always 0 for its responseStart value.
When the document comes from the Network instead of the Service Worker Cache, it responds the correct value.

I expect the responseStart value to always be reported correctly, even if it&apos;s being served from Cache.

Tested in Safari 15.2 and 15.4TP on MacOS 12.1 on a MacBook Pro M1 2020.

Steps to reproduce:
- Serve the files from the attached zip
- Open the index.html in Safari
- Reload the page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847314</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Schulz">daniel.schulz</who>
    <bug_when>2022-03-01 23:43:50 -0800</bug_when>
    <thetext>Amendment: Apparently the responseStart Value is missing for all request that go through the service worker, not only cached ones.

I also uploaded a demo on our server for your convenience: https://sw-lifecycle-test.app.baqend.com/safari-timing-sw/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849184</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-08 04:01:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/89960336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849517</commentid>
    <comment_count>3</comment_count>
      <attachid>454185</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-08 18:51:09 -0800</bug_when>
    <thetext>Created attachment 454185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849548</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-08 23:26:12 -0800</bug_when>
    <thetext>(In reply to Daniel Schulz from comment #1)
&gt; Amendment: Apparently the responseStart Value is missing for all request
&gt; that go through the service worker, not only cached ones.

The non-cached service worker loads might be fixed in https://bugs.webkit.org/show_bug.cgi?id=235179.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849549</commentid>
    <comment_count>5</comment_count>
      <attachid>454185</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-08 23:30:16 -0800</bug_when>
    <thetext>Comment on attachment 454185
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

Can we add a test?

&gt; Source/WebCore/Modules/cache/DOMCache.cpp:89
&gt; +    resourceResponse.setDeprecatedNetworkLoadMetrics(WTFMove(metrics));

NetworkResourceLoader does not fill the network load metrics in the same way in case of a matching cache entry.
Should we be consistent?
Also, is this consistent with what other browsers are doing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849576</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Schulz">daniel.schulz</who>
    <bug_when>2022-03-09 01:13:17 -0800</bug_when>
    <thetext>Firefox (97, 98) and Chrome 99 (MacOS) always return a responseStart value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849577</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-09 01:17:31 -0800</bug_when>
    <thetext>(In reply to Daniel Schulz from comment #6)
&gt; Firefox (97, 98) and Chrome 99 (MacOS) always return a responseStart value.

Sure, the question is what other values they are providing.
For instance, is the timing info from load served from service worker cache similar to   loads served from network cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849619</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Schulz">daniel.schulz</who>
    <bug_when>2022-03-09 04:07:48 -0800</bug_when>
    <thetext>Chrome and Firefox treat SW response time as the responseStart value. 
In my tests it&apos;s consistently marginally faster than the TTFB from network cache responses. Those two are treated the same way, both in the Network diagram and in the responseStart value from the performanceNavigation API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849681</commentid>
    <comment_count>9</comment_count>
      <attachid>454185</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 07:21:02 -0800</bug_when>
    <thetext>Comment on attachment 454185
Patch

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

&gt; Source/WebCore/platform/network/NetworkLoadMetrics.h:97
&gt; +    bool complete : 1 { false };

FYI, I tried this recently since it is supposed to work in C++20. However, our Windows bots don&apos;t like it still..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849692</commentid>
    <comment_count>10</comment_count>
      <attachid>454185</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-09 08:26:13 -0800</bug_when>
    <thetext>Comment on attachment 454185
Patch

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

I was hoping there was a web platform test for this already and it would start passing.  Looks like we&apos;ll need to write one.

&gt;&gt; Source/WebCore/Modules/cache/DOMCache.cpp:89
&gt;&gt; +    resourceResponse.setDeprecatedNetworkLoadMetrics(WTFMove(metrics));
&gt; 
&gt; NetworkResourceLoader does not fill the network load metrics in the same way in case of a matching cache entry.
&gt; Should we be consistent?
&gt; Also, is this consistent with what other browsers are doing?

This is consistent with what other browsers are doing, but we still need to look into what happens with the disk cache and with the other metrics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851988</commentid>
    <comment_count>11</comment_count>
    <who name="Braden O&apos;Guinn">boguinn</who>
    <bug_when>2022-03-16 14:28:39 -0700</bug_when>
    <thetext>Our company is seeing this same issue. Webkit running on iOS/OSX 15.X consistently returns 0 values for PerformanceNavigationTiming entries, whereas these numbers are populated via the deprecated window.performance.timing (minus redirectEnd, redirectStart, and secureConnectionStart) with correct timestamps. See below:

PerformanceNavigationTiming:

connectEnd: 0
connectStart: 0
domComplete: 4308
domContentLoadedEventEnd: 2202
domContentLoadedEventStart: 2030.0000000000002
domInteractive: 2030.0000000000002
domainLookupEnd: 0
domainLookupStart: 0
duration: 4311
entryType: &quot;navigation&quot;
fetchStart: 0
initiatorType: &quot;navigation&quot;
loadEventEnd: 4311
loadEventStart: 4309
name: &quot;https://www.etsy.com/market/citrine&quot;
nextHopProtocol: &quot;&quot;
redirectCount: 0
redirectEnd: 0
redirectStart: 0
requestStart: 0
responseEnd: 0
responseStart: 0
secureConnectionStart: 0
startTime: 0
type: &quot;navigate&quot;
unloadEventEnd: 1020
unloadEventStart: 1019.0000000000001
workerStart: 0

window.performance.timing:

connectEnd: 1647455955426
connectStart: 1647455955426
domComplete: 1647455959163
domContentLoadedEventEnd: 1647455956101
domContentLoadedEventStart: 1647455956081
domInteractive: 1647455956081
domLoading: 1647455955735
domainLookupEnd: 1647455955426
domainLookupStart: 1647455955426
fetchStart: 1647455955426
loadEventEnd: 1647455959168
loadEventStart: 1647455959165
navigationStart: 1647455955411
redirectEnd: 0
redirectStart: 0
requestStart: 1647455955426
responseEnd: 1647455955715
responseStart: 1647455955715
secureConnectionStart: 0
unloadEventEnd: 1647455955734
unloadEventStart: 1647455955734

This is a navigation request with an empty service worker serving the page request from-network. We would expect to see this populated fully, as it is in Firefox, Chrome, Opera, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852091</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-16 17:45:58 -0700</bug_when>
    <thetext>It looks like we&apos;re missing requestStart, responseStart, and responseEnd.  Chrome and Firefox have them.  And it needs a test...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852120</commentid>
    <comment_count>13</comment_count>
      <attachid>454927</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-16 20:18:47 -0700</bug_when>
    <thetext>Created attachment 454927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852372</commentid>
    <comment_count>14</comment_count>
      <attachid>454994</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-17 10:51:24 -0700</bug_when>
    <thetext>Created attachment 454994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852383</commentid>
    <comment_count>15</comment_count>
      <attachid>454994</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-17 11:15:54 -0700</bug_when>
    <thetext>Comment on attachment 454994
Patch

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

&gt; LayoutTests/http/wpt/service-workers/resources/navigation-timing-part-2.html:9
&gt; +    let navTiming = performance.getEntries()[0];

Maybe add a test to check that navigator.serviceWorker.controller is not null.

&gt; LayoutTests/http/wpt/service-workers/resources/navigation-timing-part-2.html:10
&gt; +    let navTimingResult = (navTiming.requestStart &gt; 0

Could be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852406</commentid>
    <comment_count>16</comment_count>
      <attachid>455001</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-17 12:23:51 -0700</bug_when>
    <thetext>Created attachment 455001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852486</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-17 14:20:40 -0700</bug_when>
    <thetext>Committed r291441 (248565@main): &lt;https://commits.webkit.org/248565@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455001.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852499</commentid>
    <comment_count>18</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-17 14:46:35 -0700</bug_when>
    <thetext>Thanks for the report!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>453487</attachid>
            <date>2022-03-01 04:00:05 -0800</date>
            <delta_ts>2022-03-01 04:00:05 -0800</delta_ts>
            <desc>A Document, Script and Service Worker that exhibit the described bug</desc>
            <filename>bugreport-safari-sw-timing.zip</filename>
            <type>application/zip</type>
            <size>1463</size>
            <attacher name="Daniel Schulz">daniel.schulz</attacher>
            
              <data encoding="base64">UEsDBBQACAAIAEVmYVQAAAAAAAAAAE0CAAAKACAAaW5kZXguaHRtbFVUDQAHcggeYnMIHmJyCB5i
dXgLAAEE9QEAAAQUAAAAbVLLTgMxDDy3X2FyZrtwQyiphApIvQCCIuCYJm7XkE2WxF3g70m2FIrg
EsuPGc9YkQfn17PF080FNNy66ViWAE77tRLoxXQ8kg1qm+NItsgaTKNjQlbifnFZnQiof1oNc1fh
64Z6JR6r+7NqFtpOMy0dCjDBM/qMm18otGv8hfS6RSV6wrcuRN4bfiPLjbLYk8FqSA6BPDFpVyWj
HarjydGOiokdTmW9jaWSTKSOIUWjxKTeZpPnJMDiCmMe3ZaKy/rLplwG+zGAu/KOFg3CLaYu+IRw
xzoyLKglvwZKgO8dGkYLHCBi0Q7Yowe9YozAGWqD2bTZCiyxYBLGPo+vYmiH9l3OszV4CPEFY9k3
06bBSdlfDwLkxg06pKPple5pnQ8a/E7D2c0cdK/J6XzkU5Cp0x7IKvFdFMVlruaQGXZM/zrax8ev
gaH/h0PWgypZb4+Vjzd8nk9QSwcIcZ/CVFgBAABNAgAAUEsDBBQACAAIAHxhYVQAAAAAAAAAADkC
AAAJACAAc2NyaXB0LmpzVVQNAAd9/x1iff8dYn3/HWJ1eAsAAQT1AQAABBQAAAB9kVFLwzAUhZ/X
X3FFWDIYcb6uVFHwdQgdiIgPMb2r0famJrerQ/bfzZxu61AfAoGce+53TkgvbanZeRXQL63BO+df
0SuPpQ2MXgp1Fjr1EsRI8TOSlNsXr9k6GkF2AR/JwDgKrkJVuVKKfGsE3ZcTHOohtMYgFlhMxbj3
MkqTdTzJxolBN/ZqqW2lnyqEDHjVoFvALfqF87Umg7Mtdhyc29pSCSdZBqKlAheWsBAwHEKzl6sS
+YbYWwzXq3l0S5PCmbZGYvXWol/lWKGJLUhxqn8Wx8SWCP0c3zlC9JguQdxjEDAFMXMi/cZufgOM
o/+RSEE7qdg00FkqXBe/g2M0dC1LeVgzx9pCEy+Ys/bcd99vfZg8qp4wTQZ/Ru4Jj2IfmazHcD6Z
RM5PUEsHCLjOFe4qAQAAOQIAAFBLAwQUAAgACAA1ZmFUAAAAAAAAAACqAgAABQAgAHN3LmpzVVQN
AAdXCB5iVwgeYlcIHmJ1eAsAAQT1AQAABBQAAACdUT1PwzAQnZNf4c2OVBkxVwwIsSEWhDogBsu5
NJacc4gvLRLNf8ex46IUdQBP9t2793HWDj0xrXQLz6oDdsf44ZZvy9KDbaSq68cDID0ZT4AwCG4C
XFnLN6wZUZNxyATMkIp9lUW8yaMy9IpkrCiLIlJ76XpAcZapJLXh/UMRO5EiTARLzoK0bi/4y449
zL2aV9u5OQCNAybDs717a8UbvzFYw6dsqbP8PQKnqizCZaquR2mAdHslyMpD41yApWwDfIzgadbI
Bd87rHeG2v/FXSXqVPAk1lKXw0nR5/lf+1LojzAY3LNmcF0iXraXxUR8FJmJnU6pEFfyR/kls+xH
Wk9uWIZKbR2CqBYTZxu5v5TnPwsnoabLb/wGUEsHCGwY8MAbAQAAqgIAAFBLAQIUAxQACAAIAEVm
YVRxn8JUWAEAAE0CAAAKACAAAAAAAAAAAACkgQAAAABpbmRleC5odG1sVVQNAAdyCB5icwgeYnII
HmJ1eAsAAQT1AQAABBQAAABQSwECFAMUAAgACAB8YWFUuM4V7ioBAAA5AgAACQAgAAAAAAAAAAAA
pIGwAQAAc2NyaXB0LmpzVVQNAAd9/x1iff8dYn3/HWJ1eAsAAQT1AQAABBQAAABQSwECFAMUAAgA
CAA1ZmFUbBjwwBsBAACqAgAABQAgAAAAAAAAAAAApIExAwAAc3cuanNVVA0AB1cIHmJXCB5iVwge
YnV4CwABBPUBAAAEFAAAAFBLBQYAAAAAAwADAAIBAACfBAAAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454185</attachid>
            <date>2022-03-08 18:51:09 -0800</date>
            <delta_ts>2022-03-16 20:18:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237317-20220308185108.patch</filename>
            <type>text/plain</type>
            <size>6184</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFhZmM2M2M5YjYwMmJj
OTczZGU3ZDE2MTQzZWUyYjk2NzM0YzVmOC4uYWVmZWExZTI2NDBmMmM3OWQ1NjQ0MmMyNjgzOTUw
ZWRhMzcwMTFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTA4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGVyZm9y
bWFuY2VOYXZpZ2F0aW9uVGltaW5nIFJlc3BvbnNlIFN0YXJ0IHVuYXZhaWxhYmxlIHdoZW4gdXNp
bmcgU2VydmljZSBXb3JrZXIgQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVSZXNwb25zZSk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZU5hdmln
YXRpb25UaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VOYXZpZ2F0aW9u
VGltaW5nOjpuYXZpZ2F0aW9uRmluaXNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
TmV0d29ya0xvYWRNZXRyaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0
cmljczo6dXBkYXRlRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3M6
Ok5ldHdvcmtMb2FkTWV0cmljcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrTG9hZE1ldHJpY3MuaDoKKwogMjAyMi0wMy0wOCAgSiBQYXNjb2UgIDxqX3Bhc2Nv
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBVc2luZyBXZWJBdXRobiB3aXRoaW4g
Y3Jvc3Mtb3JpZ2luIGlmcmFtZSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlLmNwcAppbmRleCAyZDQ2ZDFjZGJjNzE3ZjNjOTI5OWVmYTg2M2E1NDkyNjM4M2Fm
NWRmLi44YjEwMjVlNjZmZWY0YWZlZDk5MWNjMTViOTFiOGE2ZDBiZmViNTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtODMsNiArODMsMTEgQEAgc3Rh
dGljIFJlZjxGZXRjaFJlc3BvbnNlPiBjcmVhdGVSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBjb25zdAogewogICAgIGF1dG8gcmVzb3VyY2VSZXNwb25zZSA9IHJlY29y
ZC5yZXNwb25zZTsKICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2U6OkRPTUNhY2hlKTsKKworICAgIGF1dG8gbWV0cmljcyA9IEJveDxOZXR3b3Jr
TG9hZE1ldHJpY3M+OjpjcmVhdGUoKTsKKyAgICBtZXRyaWNzLT5yZXNwb25zZVN0YXJ0ID0gTW9u
b3RvbmljVGltZTo6bm93KCk7CisgICAgcmVzb3VyY2VSZXNwb25zZS5zZXREZXByZWNhdGVkTmV0
d29ya0xvYWRNZXRyaWNzKFdURk1vdmUobWV0cmljcykpOworCiAgICAgYXV0byByZXNwb25zZSA9
IEZldGNoUmVzcG9uc2U6OmNyZWF0ZSgmY29udGV4dCwgc3RkOjpudWxsb3B0LCByZWNvcmQucmVz
cG9uc2VIZWFkZXJzR3VhcmQsIFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSkpOwogICAgIHJlc3Bv
bnNlLT5zZXRCb2R5RGF0YShjb3B5UmVzcG9uc2VCb2R5KHJlY29yZC5yZXNwb25zZUJvZHkpLCBy
ZWNvcmQucmVzcG9uc2VCb2R5U2l6ZSk7CiAgICAgcmV0dXJuIHJlc3BvbnNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcuY3BwCmluZGV4
IDQ2MzM5NDFlZWQ1YTBlMzk3MjhiZDcyNWU2MjU0YWE2Y2I4MzlhZTUuLjMzNmZiMjg2MDZkMTYw
MzAzNTZhNjUwMzgzOWRhODJkNDhhZmI1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZy5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBk
b3VibGUgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nOjpkdXJhdGlvbigpIGNvbnN0CiB2b2lk
IFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZzo6bmF2aWdhdGlvbkZpbmlzaGVkKGNvbnN0IE5l
dHdvcmtMb2FkTWV0cmljcyYgbWV0cmljcykKIHsKICAgICBtX2RvY3VtZW50TG9hZFRpbWluZy5t
YXJrRW5kVGltZSgpOwotICAgIG1fcmVzb3VyY2VUaW1pbmcubmV0d29ya0xvYWRNZXRyaWNzKCkg
PSBtZXRyaWNzOworICAgIG1fcmVzb3VyY2VUaW1pbmcubmV0d29ya0xvYWRNZXRyaWNzKCkudXBk
YXRlRnJvbShtZXRyaWNzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuY3Bw
CmluZGV4IDZmMjU0ZjAyMDZkNTcyY2JiMDlmNGRmNzc1MTBiMDJkYjNhYzhlOWUuLmNiM2QyN2M2
YjI5NWY2YTA2ZmYxOWM0M2NkMTVlOGZmYTM1ZTY5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5jcHAKQEAgLTMwLDE1
ICszMCw0NCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU5ldHdvcmtMb2FkTWV0cmljczo6
TmV0d29ya0xvYWRNZXRyaWNzKCkKLSAgICA6IGNvbXBsZXRlKGZhbHNlKQotICAgICwgY2VsbHVs
YXIoZmFsc2UpCi0gICAgLCBleHBlbnNpdmUoZmFsc2UpCi0gICAgLCBjb25zdHJhaW5lZChmYWxz
ZSkKLSAgICAsIG11bHRpcGF0aChmYWxzZSkKLSAgICAsIGlzUmV1c2VkQ29ubmVjdGlvbihmYWxz
ZSkKLSAgICAsIGZhaWxzVEFPQ2hlY2soZmFsc2UpCi0gICAgLCBoYXNDcm9zc09yaWdpblJlZGly
ZWN0KGZhbHNlKSB7IH0KK05ldHdvcmtMb2FkTWV0cmljczo6TmV0d29ya0xvYWRNZXRyaWNzKCkg
PSBkZWZhdWx0OworCit2b2lkIE5ldHdvcmtMb2FkTWV0cmljczo6dXBkYXRlRnJvbShjb25zdCBO
ZXR3b3JrTG9hZE1ldHJpY3MmIG90aGVyKQoreworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxS
ZWRpcmVjdFN0YXJ0ID0gcmVkaXJlY3RTdGFydDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFs
RmV0Y2hTdGFydCA9IGZldGNoU3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbERvbWFp
bkxvb2t1cFN0YXJ0ID0gZG9tYWluTG9va3VwU3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmln
aW5hbERvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZDsKKyAgICBNb25vdG9uaWNUaW1l
IG9yaWdpbmFsQ29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0OworICAgIE1vbm90b25pY1RpbWUg
b3JpZ2luYWxTZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7Cisg
ICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbENvbm5lY3RFbmQgPSBjb25uZWN0RW5kOworICAgIE1v
bm90b25pY1RpbWUgb3JpZ2luYWxSZXF1ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQ7CisgICAgTW9u
b3RvbmljVGltZSBvcmlnaW5hbFJlc3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0OworICAgIE1v
bm90b25pY1RpbWUgb3JpZ2luYWxSZXNwb25zZUVuZCA9IHJlc3BvbnNlRW5kOworCisgICAgKnRo
aXMgPSBvdGhlcjsKKworICAgIGlmICghcmVkaXJlY3RTdGFydCkKKyAgICAgICAgcmVkaXJlY3RT
dGFydCA9IG9yaWdpbmFsUmVkaXJlY3RTdGFydDsKKyAgICBpZiAoIWZldGNoU3RhcnQpCisgICAg
ICAgIGZldGNoU3RhcnQgPSBvcmlnaW5hbEZldGNoU3RhcnQ7CisgICAgaWYgKCFkb21haW5Mb29r
dXBTdGFydCkKKyAgICAgICAgZG9tYWluTG9va3VwU3RhcnQgPSBvcmlnaW5hbERvbWFpbkxvb2t1
cFN0YXJ0OworICAgIGlmICghZG9tYWluTG9va3VwRW5kKQorICAgICAgICBkb21haW5Mb29rdXBF
bmQgPSBvcmlnaW5hbERvbWFpbkxvb2t1cEVuZDsKKyAgICBpZiAoIWNvbm5lY3RTdGFydCkKKyAg
ICAgICAgY29ubmVjdFN0YXJ0ID0gb3JpZ2luYWxDb25uZWN0U3RhcnQ7CisgICAgaWYgKCFzZWN1
cmVDb25uZWN0aW9uU3RhcnQpCisgICAgICAgIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IG9yaWdp
bmFsU2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgIGlmICghY29ubmVjdEVuZCkKKyAgICAgICAg
Y29ubmVjdEVuZCA9IG9yaWdpbmFsQ29ubmVjdEVuZDsKKyAgICBpZiAoIXJlcXVlc3RTdGFydCkK
KyAgICAgICAgcmVxdWVzdFN0YXJ0ID0gb3JpZ2luYWxSZXF1ZXN0U3RhcnQ7CisgICAgaWYgKCFy
ZXNwb25zZVN0YXJ0KQorICAgICAgICByZXNwb25zZVN0YXJ0ID0gb3JpZ2luYWxSZXNwb25zZVN0
YXJ0OworICAgIGlmICghcmVzcG9uc2VFbmQpCisgICAgICAgIHJlc3BvbnNlRW5kID0gb3JpZ2lu
YWxSZXNwb25zZUVuZDsKK30KIAogY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBOZXR3b3JrTG9h
ZE1ldHJpY3M6OmVtcHR5TWV0cmljcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaAppbmRleCA3YjE0OTAxMmQ2NzY2ZTUy
ZGVlZTIxOWVjYTg1ZWZhMjg0YzVkZTQyLi41MGIxNzg4ZTRiM2UyYWVjNjQ4ZDkzMzYyZWUwZmRm
ODYxNmRiNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtMb2FkTWV0cmljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya0xvYWRNZXRyaWNzLmgKQEAgLTc1LDYgKzc1LDggQEAgcHVibGljOgogICAgIGJvb2wg
aXNDb21wbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbXBsZXRlOyB9CiAgICAgdm9pZCBtYXJrQ29t
cGxldGUoKSB7IGNvbXBsZXRlID0gdHJ1ZTsgfQogCisgICAgdm9pZCB1cGRhdGVGcm9tKGNvbnN0
IE5ldHdvcmtMb2FkTWV0cmljcyYpOworCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3Jl
c291cmNlLXRpbWluZy0yLyNhdHRyaWJ1dGUtZGVzY3JpcHRpb25zCiAgICAgTW9ub3RvbmljVGlt
ZSByZWRpcmVjdFN0YXJ0OwogICAgIE1vbm90b25pY1RpbWUgZmV0Y2hTdGFydDsKQEAgLTkyLDE0
ICs5NCwxNCBAQCBwdWJsaWM6CiAKICAgICB1aW50MTZfdCByZWRpcmVjdENvdW50IHsgMCB9Owog
Ci0gICAgYm9vbCBjb21wbGV0ZSA6IDE7Ci0gICAgYm9vbCBjZWxsdWxhciA6IDE7Ci0gICAgYm9v
bCBleHBlbnNpdmUgOiAxOwotICAgIGJvb2wgY29uc3RyYWluZWQgOiAxOwotICAgIGJvb2wgbXVs
dGlwYXRoIDogMTsKLSAgICBib29sIGlzUmV1c2VkQ29ubmVjdGlvbiA6IDE7Ci0gICAgYm9vbCBm
YWlsc1RBT0NoZWNrIDogMTsKLSAgICBib29sIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgOiAxOwor
ICAgIGJvb2wgY29tcGxldGUgOiAxIHsgZmFsc2UgfTsKKyAgICBib29sIGNlbGx1bGFyIDogMSB7
IGZhbHNlIH07CisgICAgYm9vbCBleHBlbnNpdmUgOiAxIHsgZmFsc2UgfTsKKyAgICBib29sIGNv
bnN0cmFpbmVkIDogMSB7IGZhbHNlIH07CisgICAgYm9vbCBtdWx0aXBhdGggOiAxIHsgZmFsc2Ug
fTsKKyAgICBib29sIGlzUmV1c2VkQ29ubmVjdGlvbiA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wg
ZmFpbHNUQU9DaGVjayA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wgaGFzQ3Jvc3NPcmlnaW5SZWRp
cmVjdCA6IDEgeyBmYWxzZSB9OwogCiAgICAgUHJpdmFjeVN0YW5jZSBwcml2YWN5U3RhbmNlIHsg
UHJpdmFjeVN0YW5jZTo6VW5rbm93biB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454927</attachid>
            <date>2022-03-16 20:18:47 -0700</date>
            <delta_ts>2022-03-17 10:51:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237317-20220316201846.patch</filename>
            <type>text/plain</type>
            <size>10314</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYxYzkxNGQ3NWIzNDQ1
M2VkMjI3NWQ3MjU2NTY0YTEwYWE0MTEyNS4uYTgzNTVjZGUwOTFmM2M5NGM1MGU0ZGViMTc4NWUw
ODYwZmI4MjcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTE2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGVyZm9y
bWFuY2VOYXZpZ2F0aW9uVGltaW5nIFJlc3BvbnNlIFN0YXJ0IHVuYXZhaWxhYmxlIHdoZW4gdXNp
bmcgU2VydmljZSBXb3JrZXIgQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVSZXNwb25zZSk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZU5hdmln
YXRpb25UaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VOYXZpZ2F0aW9u
VGltaW5nOjpuYXZpZ2F0aW9uRmluaXNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
TmV0d29ya0xvYWRNZXRyaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0
cmljczo6dXBkYXRlRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3M6
Ok5ldHdvcmtMb2FkTWV0cmljcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrTG9hZE1ldHJpY3MuaDoKKwogMjAyMi0wMy0xNCAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbbW9kZWxdIDxtb2RlbCBpbnRlcmFjdGl2ZT4g
ZG9lc24ndCBhbGxvdyBtb2RlbCB0byBiZSByb3RhdGVkIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAppbmRleCAwNjIyZDQ1ZjU1ZWU4NDgzNTE4NzdhNTM4
Y2NmYTk4NTBjYzk1NjI4Li5iYWUzM2Q4MmRlMjlkZmFmZjU3YTc1NTQwMjdmMzI1OWFkMDU1Yjkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtNzksMTAg
Kzc5LDE2IEBAIHZvaWQgRE9NQ2FjaGU6Om1hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVR
dWVyeU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyCiAgICAgfSk7CiB9CiAKLXN0YXRpYyBS
ZWY8RmV0Y2hSZXNwb25zZT4gY3JlYXRlUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZCYgcmVjb3JkKQorc3RhdGljIFJl
ZjxGZXRjaFJlc3BvbnNlPiBjcmVhdGVSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBET01DYWNoZUVuZ2luZTo6UmVjb3JkJiByZWNvcmQsIE1vbm90b25pY1Rp
bWUgcmVxdWVzdFN0YXJ0KQogewogICAgIGF1dG8gcmVzb3VyY2VSZXNwb25zZSA9IHJlY29yZC5y
ZXNwb25zZTsKICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNl
OjpTb3VyY2U6OkRPTUNhY2hlKTsKKworICAgIGF1dG8gbWV0cmljcyA9IEJveDxOZXR3b3JrTG9h
ZE1ldHJpY3M+OjpjcmVhdGUoKTsKKyAgICBtZXRyaWNzLT5yZXF1ZXN0U3RhcnQgPSByZXF1ZXN0
U3RhcnQ7CisgICAgbWV0cmljcy0+cmVzcG9uc2VTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygp
OworICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0RGVwcmVjYXRlZE5ldHdvcmtMb2FkTWV0cmljcyhX
VEZNb3ZlKG1ldHJpY3MpKTsKKwogICAgIGF1dG8gcmVzcG9uc2UgPSBGZXRjaFJlc3BvbnNlOjpj
cmVhdGUoJmNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgcmVjb3JkLnJlc3BvbnNlSGVhZGVyc0d1YXJk
LCBXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpKTsKICAgICByZXNwb25zZS0+c2V0Qm9keURhdGEo
Y29weVJlc3BvbnNlQm9keShyZWNvcmQucmVzcG9uc2VCb2R5KSwgcmVjb3JkLnJlc3BvbnNlQm9k
eVNpemUpOwogICAgIHJldHVybiByZXNwb25zZTsKQEAgLTEwMCw3ICsxMDYsOCBAQCB2b2lkIERP
TUNhY2hlOjpkb01hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBv
cHRpb25zLCBNYXRjaENhbAogICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IHJlcXVlc3RPckV4
Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKS0+cmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgcXVl
cnlDYWNoZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBTaG91bGRSZXRyaWV2ZVJlc3BvbnNl
czo6WWVzLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgYXV0byByZXF1ZXN0U3RhcnQgPSBNb25vdG9uaWNUaW1lOjpub3co
KTsKKyAgICBxdWVyeUNhY2hlKFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJp
ZXZlUmVzcG9uc2VzOjpZZXMsIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBy
ZXF1ZXN0U3RhcnRdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwOCwxNiArMTE1LDE2IEBAIHZv
aWQgRE9NQ2FjaGU6OmRvTWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wdGlvbnMsIE1hdGNoQ2FsCiAKICAgICAgICAgUmVmUHRyPEZldGNoUmVzcG9uc2U+IHJl
c3BvbnNlOwogICAgICAgICBpZiAoIXJlc3VsdC5yZXR1cm5WYWx1ZSgpLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJlc3BvbnNlID0gY3JlYXRlUmVzcG9uc2UoKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgcmVzdWx0LnJldHVyblZhbHVlKClbMF0pOworICAgICAgICAgICAgcmVzcG9uc2UgPSBj
cmVhdGVSZXNwb25zZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCByZXN1bHQucmV0dXJuVmFs
dWUoKVswXSwgcmVxdWVzdFN0YXJ0KTsKIAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3Bv
bnNlKSk7CiAgICAgfSk7CiB9CiAKLVZlY3RvcjxSZWY8RmV0Y2hSZXNwb25zZT4+IERPTUNhY2hl
OjpjbG9uZVJlc3BvbnNlcyhjb25zdCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mIHJl
Y29yZHMpCitWZWN0b3I8UmVmPEZldGNoUmVzcG9uc2U+PiBET01DYWNoZTo6Y2xvbmVSZXNwb25z
ZXMoY29uc3QgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiByZWNvcmRzLCBNb25vdG9u
aWNUaW1lIHJlcXVlc3RTdGFydCkKIHsKLSAgICByZXR1cm4gV1RGOjptYXAocmVjb3JkcywgW3Ro
aXNdIChjb25zdCBhdXRvJiByZWNvcmQpIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNl
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlY29yZCk7CisgICAgcmV0dXJuIFdURjo6bWFw
KHJlY29yZHMsIFt0aGlzLCByZXF1ZXN0U3RhcnRdIChjb25zdCBhdXRvJiByZWNvcmQpIHsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJl
Y29yZCwgcmVxdWVzdFN0YXJ0KTsKICAgICB9KTsKIH0KIApAQCAtMTM2LDEzICsxNDMsMTQgQEAg
dm9pZCBET01DYWNoZTo6bWF0Y2hBbGwoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZv
LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG8KICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVz
dE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLT5yZXNvdXJjZVJlcXVlc3QoKTsKICAg
ICB9CiAKLSAgICBxdWVyeUNhY2hlKFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgb3B0aW9ucywg
U2hvdWxkUmV0cmlldmVSZXNwb25zZXM6OlllcywgW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFt0aGlzLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11
dGFibGUgeworICAgIGF1dG8gcmVxdWVzdFN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cisg
ICAgcXVlcnlDYWNoZShXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJl
dHJpZXZlUmVzcG9uc2VzOjpZZXMsIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
cmVxdWVzdFN0YXJ0XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcXVldWVUYXNr
S2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFt0
aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQp
LCByZXF1ZXN0U3RhcnRdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25lUmVzcG9uc2VzKHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSkpOworICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25lUmVzcG9u
c2VzKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgcmVxdWVzdFN0YXJ0KSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9ET01DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCmlu
ZGV4IDBiMDhhMWI5MzNjYzAzZWUyYTZhYzUxNTEzYTc0YjNiNmI3NDc4N2IuLjkzNjg0YzFhYzQ1
MzM1NWExMmY0YThiYTYxYjVmYzFiNGU5NDQxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTUNhY2hlLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJhdGNo
UHV0T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBET01DYWNo
ZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dm9pZD4mJik+JiYpOwogICAgIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24oVmVjdG9yPERPTUNh
Y2hlRW5naW5lOjpSZWNvcmQ+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYpOwogCi0gICAgVmVjdG9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gY2xvbmVSZXNw
b25zZXMoY29uc3QgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+Jik7CisgICAgVmVjdG9y
PFJlZjxGZXRjaFJlc3BvbnNlPj4gY2xvbmVSZXNwb25zZXMoY29uc3QgVmVjdG9yPERPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+JiwgTW9ub3RvbmljVGltZSk7CiAgICAgRE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZCB0b0Nvbm5lY3Rpb25SZWNvcmQoY29uc3QgRmV0Y2hSZXF1ZXN0JiwgRmV0Y2hSZXNwb25z
ZSYsIERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmJik7CiAKICAgICBTdHJpbmcgbV9uYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb25U
aW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1p
bmcuY3BwCmluZGV4IDQ2MzM5NDFlZWQ1YTBlMzk3MjhiZDcyNWU2MjU0YWE2Y2I4MzlhZTUuLjk4
NDljYTQ3NWRlMjg5MDRlZGM5Mzk2ZWM4Y2YxOTMyMGRlNWM4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZy5jcHAKQEAgLTE0Miw3
ICsxNDIsNyBAQCBkb3VibGUgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nOjpkdXJhdGlvbigp
IGNvbnN0CiB2b2lkIFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZzo6bmF2aWdhdGlvbkZpbmlz
aGVkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbWV0cmljcykKIHsKICAgICBtX2RvY3VtZW50
TG9hZFRpbWluZy5tYXJrRW5kVGltZSgpOwotICAgIG1fcmVzb3VyY2VUaW1pbmcubmV0d29ya0xv
YWRNZXRyaWNzKCkgPSBtZXRyaWNzOworICAgIG1fcmVzb3VyY2VUaW1pbmcubmV0d29ya0xvYWRN
ZXRyaWNzKCkudXBkYXRlRnJvbUZpbmFsTWV0cmljcyhtZXRyaWNzKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrTG9hZE1ldHJpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrTG9hZE1ldHJpY3MuY3BwCmluZGV4IDZmMjU0ZjAyMDZkNTcyY2JiMDlmNGRmNzc1
MTBiMDJkYjNhYzhlOWUuLjJjMTM1MDg2ZjMxYzY4NzQ3YmNhODhlMmI5NDA5ODc1NTBjODI0MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRN
ZXRyaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtM
b2FkTWV0cmljcy5jcHAKQEAgLTMwLDE1ICszMCw0OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLU5ldHdvcmtMb2FkTWV0cmljczo6TmV0d29ya0xvYWRNZXRyaWNzKCkKLSAgICA6IGNvbXBs
ZXRlKGZhbHNlKQotICAgICwgY2VsbHVsYXIoZmFsc2UpCi0gICAgLCBleHBlbnNpdmUoZmFsc2Up
Ci0gICAgLCBjb25zdHJhaW5lZChmYWxzZSkKLSAgICAsIG11bHRpcGF0aChmYWxzZSkKLSAgICAs
IGlzUmV1c2VkQ29ubmVjdGlvbihmYWxzZSkKLSAgICAsIGZhaWxzVEFPQ2hlY2soZmFsc2UpCi0g
ICAgLCBoYXNDcm9zc09yaWdpblJlZGlyZWN0KGZhbHNlKSB7IH0KK05ldHdvcmtMb2FkTWV0cmlj
czo6TmV0d29ya0xvYWRNZXRyaWNzKCkgPSBkZWZhdWx0OworCit2b2lkIE5ldHdvcmtMb2FkTWV0
cmljczo6dXBkYXRlRnJvbUZpbmFsTWV0cmljcyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG90
aGVyKQoreworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxSZWRpcmVjdFN0YXJ0ID0gcmVkaXJl
Y3RTdGFydDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFsRmV0Y2hTdGFydCA9IGZldGNoU3Rh
cnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbERvbWFpbkxvb2t1cFN0YXJ0ID0gZG9tYWlu
TG9va3VwU3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbERvbWFpbkxvb2t1cEVuZCA9
IGRvbWFpbkxvb2t1cEVuZDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFsQ29ubmVjdFN0YXJ0
ID0gY29ubmVjdFN0YXJ0OworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxTZWN1cmVDb25uZWN0
aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmln
aW5hbENvbm5lY3RFbmQgPSBjb25uZWN0RW5kOworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxS
ZXF1ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbFJl
c3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0OworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxS
ZXNwb25zZUVuZCA9IHJlc3BvbnNlRW5kOworCisgICAgKnRoaXMgPSBvdGhlcjsKKworICAgIGlm
ICghcmVkaXJlY3RTdGFydCkKKyAgICAgICAgcmVkaXJlY3RTdGFydCA9IG9yaWdpbmFsUmVkaXJl
Y3RTdGFydDsKKyAgICBpZiAoIWZldGNoU3RhcnQpCisgICAgICAgIGZldGNoU3RhcnQgPSBvcmln
aW5hbEZldGNoU3RhcnQ7CisgICAgaWYgKCFkb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAgZG9t
YWluTG9va3VwU3RhcnQgPSBvcmlnaW5hbERvbWFpbkxvb2t1cFN0YXJ0OworICAgIGlmICghZG9t
YWluTG9va3VwRW5kKQorICAgICAgICBkb21haW5Mb29rdXBFbmQgPSBvcmlnaW5hbERvbWFpbkxv
b2t1cEVuZDsKKyAgICBpZiAoIWNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0g
b3JpZ2luYWxDb25uZWN0U3RhcnQ7CisgICAgaWYgKCFzZWN1cmVDb25uZWN0aW9uU3RhcnQpCisg
ICAgICAgIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IG9yaWdpbmFsU2VjdXJlQ29ubmVjdGlvblN0
YXJ0OworICAgIGlmICghY29ubmVjdEVuZCkKKyAgICAgICAgY29ubmVjdEVuZCA9IG9yaWdpbmFs
Q29ubmVjdEVuZDsKKyAgICBpZiAoIXJlcXVlc3RTdGFydCkKKyAgICAgICAgcmVxdWVzdFN0YXJ0
ID0gb3JpZ2luYWxSZXF1ZXN0U3RhcnQ7CisgICAgaWYgKCFyZXNwb25zZVN0YXJ0KQorICAgICAg
ICByZXNwb25zZVN0YXJ0ID0gb3JpZ2luYWxSZXNwb25zZVN0YXJ0OworICAgIGlmICghcmVzcG9u
c2VFbmQpCisgICAgICAgIHJlc3BvbnNlRW5kID0gb3JpZ2luYWxSZXNwb25zZUVuZDsKKworICAg
IGlmICghcmVzcG9uc2VFbmQpCisgICAgICAgIHJlc3BvbnNlRW5kID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CisgICAgY29tcGxldGUgPSB0cnVlOworfQogCiBjb25zdCBOZXR3b3JrTG9hZE1ldHJp
Y3MmIE5ldHdvcmtMb2FkTWV0cmljczo6ZW1wdHlNZXRyaWNzKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oCmluZGV4IDdi
MTQ5MDEyZDY3NjZlNTJkZWVlMjE5ZWNhODVlZmEyODRjNWRlNDIuLmUzMzU3YTI4ZmVkY2IyNzE2
NjE5Y2M5NzA4YzFmN2MwMDJiOGI2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaApAQCAtNzUsNiArNzUsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0NvbXBsZXRlKCkgY29uc3QgeyByZXR1cm4gY29tcGxldGU7IH0KICAg
ICB2b2lkIG1hcmtDb21wbGV0ZSgpIHsgY29tcGxldGUgPSB0cnVlOyB9CiAKKyAgICB2b2lkIHVw
ZGF0ZUZyb21GaW5hbE1ldHJpY3MoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJik7CisKICAgICAv
LyBodHRwczovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLTIvI2F0dHJpYnV0ZS1kZXNj
cmlwdGlvbnMKICAgICBNb25vdG9uaWNUaW1lIHJlZGlyZWN0U3RhcnQ7CiAgICAgTW9ub3Rvbmlj
VGltZSBmZXRjaFN0YXJ0OwpAQCAtOTIsMTQgKzk0LDE0IEBAIHB1YmxpYzoKIAogICAgIHVpbnQx
Nl90IHJlZGlyZWN0Q291bnQgeyAwIH07CiAKLSAgICBib29sIGNvbXBsZXRlIDogMTsKLSAgICBi
b29sIGNlbGx1bGFyIDogMTsKLSAgICBib29sIGV4cGVuc2l2ZSA6IDE7Ci0gICAgYm9vbCBjb25z
dHJhaW5lZCA6IDE7Ci0gICAgYm9vbCBtdWx0aXBhdGggOiAxOwotICAgIGJvb2wgaXNSZXVzZWRD
b25uZWN0aW9uIDogMTsKLSAgICBib29sIGZhaWxzVEFPQ2hlY2sgOiAxOwotICAgIGJvb2wgaGFz
Q3Jvc3NPcmlnaW5SZWRpcmVjdCA6IDE7CisgICAgYm9vbCBjb21wbGV0ZSA6IDEgeyBmYWxzZSB9
OworICAgIGJvb2wgY2VsbHVsYXIgOiAxIHsgZmFsc2UgfTsKKyAgICBib29sIGV4cGVuc2l2ZSA6
IDEgeyBmYWxzZSB9OworICAgIGJvb2wgY29uc3RyYWluZWQgOiAxIHsgZmFsc2UgfTsKKyAgICBi
b29sIG11bHRpcGF0aCA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wgaXNSZXVzZWRDb25uZWN0aW9u
IDogMSB7IGZhbHNlIH07CisgICAgYm9vbCBmYWlsc1RBT0NoZWNrIDogMSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBoYXNDcm9zc09yaWdpblJlZGlyZWN0IDogMSB7IGZhbHNlIH07CiAKICAgICBQcml2
YWN5U3RhbmNlIHByaXZhY3lTdGFuY2UgeyBQcml2YWN5U3RhbmNlOjpVbmtub3duIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454994</attachid>
            <date>2022-03-17 10:51:24 -0700</date>
            <delta_ts>2022-03-17 12:23:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237317-20220317105123.patch</filename>
            <type>text/plain</type>
            <size>15051</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYxYzkxNGQ3NWIzNDQ1
M2VkMjI3NWQ3MjU2NTY0YTEwYWE0MTEyNS4uYTgzNTVjZGUwOTFmM2M5NGM1MGU0ZGViMTc4NWUw
ODYwZmI4MjcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTE2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGVyZm9y
bWFuY2VOYXZpZ2F0aW9uVGltaW5nIFJlc3BvbnNlIFN0YXJ0IHVuYXZhaWxhYmxlIHdoZW4gdXNp
bmcgU2VydmljZSBXb3JrZXIgQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVSZXNwb25zZSk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZU5hdmln
YXRpb25UaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VOYXZpZ2F0aW9u
VGltaW5nOjpuYXZpZ2F0aW9uRmluaXNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
TmV0d29ya0xvYWRNZXRyaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0
cmljczo6dXBkYXRlRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3M6
Ok5ldHdvcmtMb2FkTWV0cmljcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrTG9hZE1ldHJpY3MuaDoKKwogMjAyMi0wMy0xNCAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbbW9kZWxdIDxtb2RlbCBpbnRlcmFjdGl2ZT4g
ZG9lc24ndCBhbGxvdyBtb2RlbCB0byBiZSByb3RhdGVkIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAppbmRleCAwNjIyZDQ1ZjU1ZWU4NDgzNTE4NzdhNTM4
Y2NmYTk4NTBjYzk1NjI4Li5iYWUzM2Q4MmRlMjlkZmFmZjU3YTc1NTQwMjdmMzI1OWFkMDU1Yjkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtNzksMTAg
Kzc5LDE2IEBAIHZvaWQgRE9NQ2FjaGU6Om1hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVR
dWVyeU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyCiAgICAgfSk7CiB9CiAKLXN0YXRpYyBS
ZWY8RmV0Y2hSZXNwb25zZT4gY3JlYXRlUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZCYgcmVjb3JkKQorc3RhdGljIFJl
ZjxGZXRjaFJlc3BvbnNlPiBjcmVhdGVSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBET01DYWNoZUVuZ2luZTo6UmVjb3JkJiByZWNvcmQsIE1vbm90b25pY1Rp
bWUgcmVxdWVzdFN0YXJ0KQogewogICAgIGF1dG8gcmVzb3VyY2VSZXNwb25zZSA9IHJlY29yZC5y
ZXNwb25zZTsKICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNl
OjpTb3VyY2U6OkRPTUNhY2hlKTsKKworICAgIGF1dG8gbWV0cmljcyA9IEJveDxOZXR3b3JrTG9h
ZE1ldHJpY3M+OjpjcmVhdGUoKTsKKyAgICBtZXRyaWNzLT5yZXF1ZXN0U3RhcnQgPSByZXF1ZXN0
U3RhcnQ7CisgICAgbWV0cmljcy0+cmVzcG9uc2VTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygp
OworICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0RGVwcmVjYXRlZE5ldHdvcmtMb2FkTWV0cmljcyhX
VEZNb3ZlKG1ldHJpY3MpKTsKKwogICAgIGF1dG8gcmVzcG9uc2UgPSBGZXRjaFJlc3BvbnNlOjpj
cmVhdGUoJmNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgcmVjb3JkLnJlc3BvbnNlSGVhZGVyc0d1YXJk
LCBXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpKTsKICAgICByZXNwb25zZS0+c2V0Qm9keURhdGEo
Y29weVJlc3BvbnNlQm9keShyZWNvcmQucmVzcG9uc2VCb2R5KSwgcmVjb3JkLnJlc3BvbnNlQm9k
eVNpemUpOwogICAgIHJldHVybiByZXNwb25zZTsKQEAgLTEwMCw3ICsxMDYsOCBAQCB2b2lkIERP
TUNhY2hlOjpkb01hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBv
cHRpb25zLCBNYXRjaENhbAogICAgIH0KIAogICAgIGF1dG8gcmVxdWVzdCA9IHJlcXVlc3RPckV4
Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKS0+cmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgcXVl
cnlDYWNoZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBTaG91bGRSZXRyaWV2ZVJlc3BvbnNl
czo6WWVzLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgYXV0byByZXF1ZXN0U3RhcnQgPSBNb25vdG9uaWNUaW1lOjpub3co
KTsKKyAgICBxdWVyeUNhY2hlKFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJp
ZXZlUmVzcG9uc2VzOjpZZXMsIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBy
ZXF1ZXN0U3RhcnRdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwOCwxNiArMTE1LDE2IEBAIHZv
aWQgRE9NQ2FjaGU6OmRvTWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wdGlvbnMsIE1hdGNoQ2FsCiAKICAgICAgICAgUmVmUHRyPEZldGNoUmVzcG9uc2U+IHJl
c3BvbnNlOwogICAgICAgICBpZiAoIXJlc3VsdC5yZXR1cm5WYWx1ZSgpLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJlc3BvbnNlID0gY3JlYXRlUmVzcG9uc2UoKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgcmVzdWx0LnJldHVyblZhbHVlKClbMF0pOworICAgICAgICAgICAgcmVzcG9uc2UgPSBj
cmVhdGVSZXNwb25zZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCByZXN1bHQucmV0dXJuVmFs
dWUoKVswXSwgcmVxdWVzdFN0YXJ0KTsKIAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3Bv
bnNlKSk7CiAgICAgfSk7CiB9CiAKLVZlY3RvcjxSZWY8RmV0Y2hSZXNwb25zZT4+IERPTUNhY2hl
OjpjbG9uZVJlc3BvbnNlcyhjb25zdCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mIHJl
Y29yZHMpCitWZWN0b3I8UmVmPEZldGNoUmVzcG9uc2U+PiBET01DYWNoZTo6Y2xvbmVSZXNwb25z
ZXMoY29uc3QgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiByZWNvcmRzLCBNb25vdG9u
aWNUaW1lIHJlcXVlc3RTdGFydCkKIHsKLSAgICByZXR1cm4gV1RGOjptYXAocmVjb3JkcywgW3Ro
aXNdIChjb25zdCBhdXRvJiByZWNvcmQpIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNl
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlY29yZCk7CisgICAgcmV0dXJuIFdURjo6bWFw
KHJlY29yZHMsIFt0aGlzLCByZXF1ZXN0U3RhcnRdIChjb25zdCBhdXRvJiByZWNvcmQpIHsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJl
Y29yZCwgcmVxdWVzdFN0YXJ0KTsKICAgICB9KTsKIH0KIApAQCAtMTM2LDEzICsxNDMsMTQgQEAg
dm9pZCBET01DYWNoZTo6bWF0Y2hBbGwoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZv
LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG8KICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVz
dE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLT5yZXNvdXJjZVJlcXVlc3QoKTsKICAg
ICB9CiAKLSAgICBxdWVyeUNhY2hlKFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgb3B0aW9ucywg
U2hvdWxkUmV0cmlldmVSZXNwb25zZXM6OlllcywgW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFt0aGlzLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11
dGFibGUgeworICAgIGF1dG8gcmVxdWVzdFN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cisg
ICAgcXVlcnlDYWNoZShXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJl
dHJpZXZlUmVzcG9uc2VzOjpZZXMsIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
cmVxdWVzdFN0YXJ0XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcXVldWVUYXNr
S2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFt0
aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQp
LCByZXF1ZXN0U3RhcnRdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25lUmVzcG9uc2VzKHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSkpOworICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25lUmVzcG9u
c2VzKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgcmVxdWVzdFN0YXJ0KSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9ET01DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCmlu
ZGV4IDBiMDhhMWI5MzNjYzAzZWUyYTZhYzUxNTEzYTc0YjNiNmI3NDc4N2IuLjkzNjg0YzFhYzQ1
MzM1NWExMmY0YThiYTYxYjVmYzFiNGU5NDQxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTUNhY2hlLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJhdGNo
UHV0T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBET01DYWNo
ZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dm9pZD4mJik+JiYpOwogICAgIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24oVmVjdG9yPERPTUNh
Y2hlRW5naW5lOjpSZWNvcmQ+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYpOwogCi0gICAgVmVjdG9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gY2xvbmVSZXNw
b25zZXMoY29uc3QgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+Jik7CisgICAgVmVjdG9y
PFJlZjxGZXRjaFJlc3BvbnNlPj4gY2xvbmVSZXNwb25zZXMoY29uc3QgVmVjdG9yPERPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+JiwgTW9ub3RvbmljVGltZSk7CiAgICAgRE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZCB0b0Nvbm5lY3Rpb25SZWNvcmQoY29uc3QgRmV0Y2hSZXF1ZXN0JiwgRmV0Y2hSZXNwb25z
ZSYsIERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmJik7CiAKICAgICBTdHJpbmcgbV9uYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb25U
aW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1p
bmcuY3BwCmluZGV4IDQ2MzM5NDFlZWQ1YTBlMzk3MjhiZDcyNWU2MjU0YWE2Y2I4MzlhZTUuLjk4
NDljYTQ3NWRlMjg5MDRlZGM5Mzk2ZWM4Y2YxOTMyMGRlNWM4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZy5jcHAKQEAgLTE0Miw3
ICsxNDIsNyBAQCBkb3VibGUgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nOjpkdXJhdGlvbigp
IGNvbnN0CiB2b2lkIFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZzo6bmF2aWdhdGlvbkZpbmlz
aGVkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbWV0cmljcykKIHsKICAgICBtX2RvY3VtZW50
TG9hZFRpbWluZy5tYXJrRW5kVGltZSgpOwotICAgIG1fcmVzb3VyY2VUaW1pbmcubmV0d29ya0xv
YWRNZXRyaWNzKCkgPSBtZXRyaWNzOworICAgIG1fcmVzb3VyY2VUaW1pbmcubmV0d29ya0xvYWRN
ZXRyaWNzKCkudXBkYXRlRnJvbUZpbmFsTWV0cmljcyhtZXRyaWNzKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrTG9hZE1ldHJpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrTG9hZE1ldHJpY3MuY3BwCmluZGV4IDZmMjU0ZjAyMDZkNTcyY2JiMDlmNGRmNzc1
MTBiMDJkYjNhYzhlOWUuLjJjMTM1MDg2ZjMxYzY4NzQ3YmNhODhlMmI5NDA5ODc1NTBjODI0MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRN
ZXRyaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtM
b2FkTWV0cmljcy5jcHAKQEAgLTMwLDE1ICszMCw0OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLU5ldHdvcmtMb2FkTWV0cmljczo6TmV0d29ya0xvYWRNZXRyaWNzKCkKLSAgICA6IGNvbXBs
ZXRlKGZhbHNlKQotICAgICwgY2VsbHVsYXIoZmFsc2UpCi0gICAgLCBleHBlbnNpdmUoZmFsc2Up
Ci0gICAgLCBjb25zdHJhaW5lZChmYWxzZSkKLSAgICAsIG11bHRpcGF0aChmYWxzZSkKLSAgICAs
IGlzUmV1c2VkQ29ubmVjdGlvbihmYWxzZSkKLSAgICAsIGZhaWxzVEFPQ2hlY2soZmFsc2UpCi0g
ICAgLCBoYXNDcm9zc09yaWdpblJlZGlyZWN0KGZhbHNlKSB7IH0KK05ldHdvcmtMb2FkTWV0cmlj
czo6TmV0d29ya0xvYWRNZXRyaWNzKCkgPSBkZWZhdWx0OworCit2b2lkIE5ldHdvcmtMb2FkTWV0
cmljczo6dXBkYXRlRnJvbUZpbmFsTWV0cmljcyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG90
aGVyKQoreworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxSZWRpcmVjdFN0YXJ0ID0gcmVkaXJl
Y3RTdGFydDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFsRmV0Y2hTdGFydCA9IGZldGNoU3Rh
cnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbERvbWFpbkxvb2t1cFN0YXJ0ID0gZG9tYWlu
TG9va3VwU3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbERvbWFpbkxvb2t1cEVuZCA9
IGRvbWFpbkxvb2t1cEVuZDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFsQ29ubmVjdFN0YXJ0
ID0gY29ubmVjdFN0YXJ0OworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxTZWN1cmVDb25uZWN0
aW9uU3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmln
aW5hbENvbm5lY3RFbmQgPSBjb25uZWN0RW5kOworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxS
ZXF1ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbFJl
c3BvbnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0OworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxS
ZXNwb25zZUVuZCA9IHJlc3BvbnNlRW5kOworCisgICAgKnRoaXMgPSBvdGhlcjsKKworICAgIGlm
ICghcmVkaXJlY3RTdGFydCkKKyAgICAgICAgcmVkaXJlY3RTdGFydCA9IG9yaWdpbmFsUmVkaXJl
Y3RTdGFydDsKKyAgICBpZiAoIWZldGNoU3RhcnQpCisgICAgICAgIGZldGNoU3RhcnQgPSBvcmln
aW5hbEZldGNoU3RhcnQ7CisgICAgaWYgKCFkb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAgZG9t
YWluTG9va3VwU3RhcnQgPSBvcmlnaW5hbERvbWFpbkxvb2t1cFN0YXJ0OworICAgIGlmICghZG9t
YWluTG9va3VwRW5kKQorICAgICAgICBkb21haW5Mb29rdXBFbmQgPSBvcmlnaW5hbERvbWFpbkxv
b2t1cEVuZDsKKyAgICBpZiAoIWNvbm5lY3RTdGFydCkKKyAgICAgICAgY29ubmVjdFN0YXJ0ID0g
b3JpZ2luYWxDb25uZWN0U3RhcnQ7CisgICAgaWYgKCFzZWN1cmVDb25uZWN0aW9uU3RhcnQpCisg
ICAgICAgIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IG9yaWdpbmFsU2VjdXJlQ29ubmVjdGlvblN0
YXJ0OworICAgIGlmICghY29ubmVjdEVuZCkKKyAgICAgICAgY29ubmVjdEVuZCA9IG9yaWdpbmFs
Q29ubmVjdEVuZDsKKyAgICBpZiAoIXJlcXVlc3RTdGFydCkKKyAgICAgICAgcmVxdWVzdFN0YXJ0
ID0gb3JpZ2luYWxSZXF1ZXN0U3RhcnQ7CisgICAgaWYgKCFyZXNwb25zZVN0YXJ0KQorICAgICAg
ICByZXNwb25zZVN0YXJ0ID0gb3JpZ2luYWxSZXNwb25zZVN0YXJ0OworICAgIGlmICghcmVzcG9u
c2VFbmQpCisgICAgICAgIHJlc3BvbnNlRW5kID0gb3JpZ2luYWxSZXNwb25zZUVuZDsKKworICAg
IGlmICghcmVzcG9uc2VFbmQpCisgICAgICAgIHJlc3BvbnNlRW5kID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CisgICAgY29tcGxldGUgPSB0cnVlOworfQogCiBjb25zdCBOZXR3b3JrTG9hZE1ldHJp
Y3MmIE5ldHdvcmtMb2FkTWV0cmljczo6ZW1wdHlNZXRyaWNzKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oCmluZGV4IDdi
MTQ5MDEyZDY3NjZlNTJkZWVlMjE5ZWNhODVlZmEyODRjNWRlNDIuLmUzMzU3YTI4ZmVkY2IyNzE2
NjE5Y2M5NzA4YzFmN2MwMDJiOGI2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaApAQCAtNzUsNiArNzUsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0NvbXBsZXRlKCkgY29uc3QgeyByZXR1cm4gY29tcGxldGU7IH0KICAg
ICB2b2lkIG1hcmtDb21wbGV0ZSgpIHsgY29tcGxldGUgPSB0cnVlOyB9CiAKKyAgICB2b2lkIHVw
ZGF0ZUZyb21GaW5hbE1ldHJpY3MoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJik7CisKICAgICAv
LyBodHRwczovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLTIvI2F0dHJpYnV0ZS1kZXNj
cmlwdGlvbnMKICAgICBNb25vdG9uaWNUaW1lIHJlZGlyZWN0U3RhcnQ7CiAgICAgTW9ub3Rvbmlj
VGltZSBmZXRjaFN0YXJ0OwpAQCAtOTIsMTQgKzk0LDE0IEBAIHB1YmxpYzoKIAogICAgIHVpbnQx
Nl90IHJlZGlyZWN0Q291bnQgeyAwIH07CiAKLSAgICBib29sIGNvbXBsZXRlIDogMTsKLSAgICBi
b29sIGNlbGx1bGFyIDogMTsKLSAgICBib29sIGV4cGVuc2l2ZSA6IDE7Ci0gICAgYm9vbCBjb25z
dHJhaW5lZCA6IDE7Ci0gICAgYm9vbCBtdWx0aXBhdGggOiAxOwotICAgIGJvb2wgaXNSZXVzZWRD
b25uZWN0aW9uIDogMTsKLSAgICBib29sIGZhaWxzVEFPQ2hlY2sgOiAxOwotICAgIGJvb2wgaGFz
Q3Jvc3NPcmlnaW5SZWRpcmVjdCA6IDE7CisgICAgYm9vbCBjb21wbGV0ZSA6IDEgeyBmYWxzZSB9
OworICAgIGJvb2wgY2VsbHVsYXIgOiAxIHsgZmFsc2UgfTsKKyAgICBib29sIGV4cGVuc2l2ZSA6
IDEgeyBmYWxzZSB9OworICAgIGJvb2wgY29uc3RyYWluZWQgOiAxIHsgZmFsc2UgfTsKKyAgICBi
b29sIG11bHRpcGF0aCA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wgaXNSZXVzZWRDb25uZWN0aW9u
IDogMSB7IGZhbHNlIH07CisgICAgYm9vbCBmYWlsc1RBT0NoZWNrIDogMSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBoYXNDcm9zc09yaWdpblJlZGlyZWN0IDogMSB7IGZhbHNlIH07CiAKICAgICBQcml2
YWN5U3RhbmNlIHByaXZhY3lTdGFuY2UgeyBQcml2YWN5U3RhbmNlOjpVbmtub3duIH07CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1MTc3ZWQ5Mjk4MGRkOGQ0YmE0YmYzYWYzZDE0MTA2YTYyZmQ2Yjg3Li41NjkyYTIwOWQx
N2U5YzNiMjA4Y2FhNjEzOWNjNTFlODU2MzkxYzRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MjItMDMtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcgUmVzcG9uc2UgU3RhcnQgdW5hdmFp
bGFibGUgd2hlbiB1c2luZyBTZXJ2aWNlIFdvcmtlciBDYWNoZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzE3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IHRoZXNlIHZhbHVlcyBhcmUg
cmVhc29uYWJsZSBhZnRlciBsb2FkaW5nIHRoZSBtYWluIHJlc291cmNlIGZyb20gYSBzZXJ2aWNl
IHdvcmtlcidzIGNhY2hlLgorCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25h
dmlnYXRpb24tdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL25hdmlnYXRpb24tdGltaW5nLmh0dHBzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uYXZpZ2F0aW9uLXRpbWluZy5q
czogQWRkZWQuCisgICAgICAgIChldmVudC5ldmVudC53YWl0VW50aWwuY2FjaGVzLm9wZW4uc3Ry
aW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgIChldmVudC5ldmVudC5yZXNwb25kV2l0
aC5jYWNoZXMub3Blbi5zdHJpbmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL25hdmlnYXRpb24tdGltaW5nLXBhcnQtMi5o
dG1sOiBBZGRlZC4KKwogMjAyMi0wMy0xNCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBbbW9kZWxdIDxtb2RlbCBpbnRlcmFjdGl2ZT4gZG9lc24ndCBhbGxv
dyBtb2RlbCB0byBiZSByb3RhdGVkIG9uIGlPUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL25hdmlnYXRpb24tdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uYXZpZ2F0aW9uLXRpbWlu
Zy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE4MGZlNjAwYTE0YmJkN2JjZDBlM2Qz
ZDU3Y2M3NGJmYWQyNzZkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9uYXZpZ2F0aW9uLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSBAQAorUEFTUyAtIG5hdmlnYXRpb24gdGltaW5nIGFzIGV4cGVjdGVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmF2aWdhdGlvbi10aW1p
bmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uYXZp
Z2F0aW9uLXRpbWluZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYTY0Y2IwMTFhMzA1MmUyMzQw
N2U0ODYzYzI5ZmM0OWMyMGIwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmF2aWdhdGlvbi10aW1pbmcuaHR0cHMuaHRtbApAQCAtMCww
ICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyIG5hdmlnYXRp
b24gdGltaW5nIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHRpbWU8L3RpdGxlPgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJkb1Rlc3QoKSI+Cis8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkK
K3sKKyAgICB2YXIgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
cmVnaXN0ZXIoIm5hdmlnYXRpb24tdGltaW5nLmpzIiwgeyBzY29wZSA6ICJyZXNvdXJjZXMvIiB9
KTsKKyAgICB2YXIgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKKyAgICBpZiAo
IWFjdGl2ZVdvcmtlcikgeworICAgICAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5z
dGFsbGluZzsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAg
ICAgICBhY3RpdmVXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7
CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIp
CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVnaXN0cmF0aW9uKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9CisgICAgd2luZG93LmxvY2F0aW9uID0gInJlc291cmNl
cy9uYXZpZ2F0aW9uLXRpbWluZy1wYXJ0LTIuaHRtbCI7Cit9CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25hdmlnYXRpb24tdGltaW5nLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25hdmlnYXRpb24tdGltaW5n
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU3NTRiZTYyMWYyZDMxNWQ0YzQxNzJlZmIzOWI1NDQ2MDU1NGU1MDgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
bmF2aWdhdGlvbi10aW1pbmcuanMKQEAgLTAsMCArMSwxMyBAQAorc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdpbnN0YWxsJywgKGV2ZW50KSA9PiB7CisgICAgZXZlbnQud2FpdFVudGlsKGNhY2hlcy5v
cGVuKCJjYWNoZV9uYW1lIikudGhlbigoY2FjaGUpID0+IHsKKyAgICAgICAgcmV0dXJuIGNhY2hl
LmFkZEFsbChbJy9XZWJLaXQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXRp
bWluZy1wYXJ0LTIuaHRtbCddKTsKKyAgICB9KSk7Cit9KTsKKworc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdmZXRjaCcsIChldmVudCkgPT4geworICAgIGV2ZW50LnJlc3BvbmRXaXRoKGNhY2hlcy5v
cGVuKCJjYWNoZV9uYW1lIikudGhlbigoY2FjaGUpID0+IHsKKyAgICAgICAgcmV0dXJuIGNhY2hl
Lm1hdGNoKGV2ZW50LnJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVzcG9uc2U7CisgICAgICAgIH0pOworICAgIH0pKTsKK30pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9uYXZpZ2F0aW9u
LXRpbWluZy1wYXJ0LTIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9yZXNvdXJjZXMvbmF2aWdhdGlvbi10aW1pbmctcGFydC0yLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA3
ZWQxZmI1MmNhMjU1MTQ1YjVhZWFmOGRmODQzNzE1MTA5NDQxMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbmF2aWdhdGlv
bi10aW1pbmctcGFydC0yLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5TZXJ2aWNlIFdvcmtlciBuYXZpZ2F0aW9uIHRpbWluZyByZXF1ZXN0IGFuZCByZXNwb25z
ZSB0aW1lPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCkiPgorPHNjcmlw
dD4KK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgbGV0IG5hdlRpbWluZyA9IHBlcmZv
cm1hbmNlLmdldEVudHJpZXMoKVswXTsKKyAgICBsZXQgbmF2VGltaW5nUmVzdWx0ID0gKG5hdlRp
bWluZy5yZXF1ZXN0U3RhcnQgPiAwCisgICAgICAgICYmIG5hdlRpbWluZy5yZXNwb25zZVN0YXJ0
ID49IG5hdlRpbWluZy5yZXF1ZXN0U3RhcnQKKyAgICAgICAgJiYgbmF2VGltaW5nLnJlc3BvbnNl
RW5kID49IG5hdlRpbWluZy5yZXNwb25zZVN0YXJ0KSA/ICJQQVNTIC0gbmF2aWdhdGlvbiB0aW1p
bmcgYXMgZXhwZWN0ZWQiCisgICAgICAgIDogIkZBSUwgLSBuYXZpZ2F0aW9uIHRpbWluZyBpbmNv
cnJlY3QgIgorICAgICAgICAgICAgKyBuYXZUaW1pbmcucmVxdWVzdFN0YXJ0ICsgIiAiCisgICAg
ICAgICAgICArIG5hdlRpbWluZy5yZXNwb25zZVN0YXJ0ICsgIiAiCisgICAgICAgICAgICArIG5h
dlRpbWluZy5yZXNwb25zZUVuZDsKKworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gbmF2
VGltaW5nUmVzdWx0OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455001</attachid>
            <date>2022-03-17 12:23:51 -0700</date>
            <delta_ts>2022-03-17 14:20:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237317-20220317122350.patch</filename>
            <type>text/plain</type>
            <size>15206</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYxYzkxNGQ3NWIzNDQ1
M2VkMjI3NWQ3MjU2NTY0YTEwYWE0MTEyNS4uMThlYWQ3NDY2NjU1ZmYwOWEzMGE4NGI5ODlhZmY1
ZGVhMzIwMTJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTE2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGVyZm9y
bWFuY2VOYXZpZ2F0aW9uVGltaW5nIFJlc3BvbnNlIFN0YXJ0IHVuYXZhaWxhYmxlIHdoZW4gdXNp
bmcgU2VydmljZSBXb3JrZXIgQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzMxNworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZVJlc3BvbnNlKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdh
dGlvblRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZU5hdmlnYXRpb25U
aW1pbmc6Om5hdmlnYXRpb25GaW5pc2hlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrTG9hZE1ldHJpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRy
aWNzOjp1cGRhdGVGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljczo6
TmV0d29ya0xvYWRNZXRyaWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5oOgorCiAyMDIyLTAzLTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFttb2RlbF0gPG1vZGVsIGludGVyYWN0aXZlPiBk
b2Vzbid0IGFsbG93IG1vZGVsIHRvIGJlIHJvdGF0ZWQgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCmluZGV4IDA2MjJkNDVmNTVlZTg0ODM1MTg3N2E1Mzhj
Y2ZhOTg1MGNjOTU2MjguLmJhZTMzZDgyZGUyOWRmYWZmNTdhNzU1NDAyN2YzMjU5YWQwNTViOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCkBAIC03OSwxMCAr
NzksMTYgQEAgdm9pZCBET01DYWNoZTo6bWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1
ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnIKICAgICB9KTsKIH0KIAotc3RhdGljIFJl
ZjxGZXRjaFJlc3BvbnNlPiBjcmVhdGVSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBET01DYWNoZUVuZ2luZTo6UmVjb3JkJiByZWNvcmQpCitzdGF0aWMgUmVm
PEZldGNoUmVzcG9uc2U+IGNyZWF0ZVJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IERPTUNhY2hlRW5naW5lOjpSZWNvcmQmIHJlY29yZCwgTW9ub3RvbmljVGlt
ZSByZXF1ZXN0U3RhcnQpCiB7CiAgICAgYXV0byByZXNvdXJjZVJlc3BvbnNlID0gcmVjb3JkLnJl
c3BvbnNlOwogICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6
OlNvdXJjZTo6RE9NQ2FjaGUpOworCisgICAgYXV0byBtZXRyaWNzID0gQm94PE5ldHdvcmtMb2Fk
TWV0cmljcz46OmNyZWF0ZSgpOworICAgIG1ldHJpY3MtPnJlcXVlc3RTdGFydCA9IHJlcXVlc3RT
dGFydDsKKyAgICBtZXRyaWNzLT5yZXNwb25zZVN0YXJ0ID0gTW9ub3RvbmljVGltZTo6bm93KCk7
CisgICAgcmVzb3VyY2VSZXNwb25zZS5zZXREZXByZWNhdGVkTmV0d29ya0xvYWRNZXRyaWNzKFdU
Rk1vdmUobWV0cmljcykpOworCiAgICAgYXV0byByZXNwb25zZSA9IEZldGNoUmVzcG9uc2U6OmNy
ZWF0ZSgmY29udGV4dCwgc3RkOjpudWxsb3B0LCByZWNvcmQucmVzcG9uc2VIZWFkZXJzR3VhcmQs
IFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSkpOwogICAgIHJlc3BvbnNlLT5zZXRCb2R5RGF0YShj
b3B5UmVzcG9uc2VCb2R5KHJlY29yZC5yZXNwb25zZUJvZHkpLCByZWNvcmQucmVzcG9uc2VCb2R5
U2l6ZSk7CiAgICAgcmV0dXJuIHJlc3BvbnNlOwpAQCAtMTAwLDcgKzEwNiw4IEBAIHZvaWQgRE9N
Q2FjaGU6OmRvTWF0Y2goUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9w
dGlvbnMsIE1hdGNoQ2FsCiAgICAgfQogCiAgICAgYXV0byByZXF1ZXN0ID0gcmVxdWVzdE9yRXhj
ZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLT5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICBxdWVy
eUNhY2hlKFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2Vz
OjpZZXMsIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICBhdXRvIHJlcXVlc3RTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygp
OworICAgIHF1ZXJ5Q2FjaGUoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywgU2hvdWxkUmV0cmll
dmVSZXNwb25zZXM6OlllcywgW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHJl
cXVlc3RTdGFydF0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA4LDE2ICsxMTUsMTYgQEAgdm9p
ZCBET01DYWNoZTo6ZG9NYXRjaChSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25z
JiYgb3B0aW9ucywgTWF0Y2hDYWwKIAogICAgICAgICBSZWZQdHI8RmV0Y2hSZXNwb25zZT4gcmVz
cG9uc2U7CiAgICAgICAgIGlmICghcmVzdWx0LnJldHVyblZhbHVlKCkuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgcmVzcG9uc2UgPSBjcmVhdGVSZXNwb25zZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKVswXSk7CisgICAgICAgICAgICByZXNwb25zZSA9IGNy
ZWF0ZVJlc3BvbnNlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlc3VsdC5yZXR1cm5WYWx1
ZSgpWzBdLCByZXF1ZXN0U3RhcnQpOwogCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzcG9u
c2UpKTsKICAgICB9KTsKIH0KIAotVmVjdG9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gRE9NQ2FjaGU6
OmNsb25lUmVzcG9uc2VzKGNvbnN0IFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYgcmVj
b3JkcykKK1ZlY3RvcjxSZWY8RmV0Y2hSZXNwb25zZT4+IERPTUNhY2hlOjpjbG9uZVJlc3BvbnNl
cyhjb25zdCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mIHJlY29yZHMsIE1vbm90b25p
Y1RpbWUgcmVxdWVzdFN0YXJ0KQogewotICAgIHJldHVybiBXVEY6Om1hcChyZWNvcmRzLCBbdGhp
c10gKGNvbnN0IGF1dG8mIHJlY29yZCkgewotICAgICAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2Uo
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcmVjb3JkKTsKKyAgICByZXR1cm4gV1RGOjptYXAo
cmVjb3JkcywgW3RoaXMsIHJlcXVlc3RTdGFydF0gKGNvbnN0IGF1dG8mIHJlY29yZCkgeworICAg
ICAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2UoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcmVj
b3JkLCByZXF1ZXN0U3RhcnQpOwogICAgIH0pOwogfQogCkBAIC0xMzYsMTMgKzE0MywxNCBAQCB2
b2lkIERPTUNhY2hlOjptYXRjaEFsbChzdGQ6Om9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGluZm8s
IENhY2hlUXVlcnlPcHRpb25zJiYgbwogICAgICAgICByZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0
T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCktPnJlc291cmNlUmVxdWVzdCgpOwogICAg
IH0KIAotICAgIHF1ZXJ5Q2FjaGUoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBvcHRpb25zLCBT
aG91bGRSZXRyaWV2ZVJlc3BvbnNlczo6WWVzLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBxdWV1ZVRhc2tLZWVwaW5n
T2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3RoaXMsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0
YWJsZSB7CisgICAgYXV0byByZXF1ZXN0U3RhcnQgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAg
ICBxdWVyeUNhY2hlKFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgb3B0aW9ucywgU2hvdWxkUmV0
cmlldmVSZXNwb25zZXM6OlllcywgW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBy
ZXF1ZXN0U3RhcnRdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBxdWV1ZVRhc2tL
ZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3Ro
aXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCks
IHJlcXVlc3RTdGFydF0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2xvbmVSZXNwb25zZXMocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoY2xvbmVSZXNwb25z
ZXMocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCByZXF1ZXN0U3RhcnQpKTsKICAgICAgICAg
fSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKaW5k
ZXggMGIwOGExYjkzM2NjMDNlZTJhNmFjNTE1MTNhNzRiM2I2Yjc0Nzg3Yi4uOTM2ODRjMWFjNDUz
MzU1YTEyZjRhOGJhNjFiNWZjMWI0ZTk0NDEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGUuaApAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYmF0Y2hQ
dXRPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiwgRmV0Y2hSZXNwb25zZSYsIERPTUNhY2hl
RW5naW5lOjpSZXNwb25zZUJvZHkmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbihWZWN0b3I8RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZD4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJik7CiAKLSAgICBWZWN0b3I8UmVmPEZldGNoUmVzcG9uc2U+PiBjbG9uZVJlc3Bv
bnNlcyhjb25zdCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mKTsKKyAgICBWZWN0b3I8
UmVmPEZldGNoUmVzcG9uc2U+PiBjbG9uZVJlc3BvbnNlcyhjb25zdCBWZWN0b3I8RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZD4mLCBNb25vdG9uaWNUaW1lKTsKICAgICBET01DYWNoZUVuZ2luZTo6UmVj
b3JkIHRvQ29ubmVjdGlvblJlY29yZChjb25zdCBGZXRjaFJlcXVlc3QmLCBGZXRjaFJlc3BvbnNl
JiwgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYmKTsKIAogICAgIFN0cmluZyBtX25hbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvblRp
bWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWlu
Zy5jcHAKaW5kZXggNDYzMzk0MWVlZDVhMGUzOTcyOGJkNzI1ZTYyNTRhYTZjYjgzOWFlNS4uOTg0
OWNhNDc1ZGUyODkwNGVkYzkzOTZlYzhjZjE5MzIwZGU1Yzg0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nLmNwcApAQCAtMTQyLDcg
KzE0Miw3IEBAIGRvdWJsZSBQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmc6OmR1cmF0aW9uKCkg
Y29uc3QKIHZvaWQgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nOjpuYXZpZ2F0aW9uRmluaXNo
ZWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBtZXRyaWNzKQogewogICAgIG1fZG9jdW1lbnRM
b2FkVGltaW5nLm1hcmtFbmRUaW1lKCk7Ci0gICAgbV9yZXNvdXJjZVRpbWluZy5uZXR3b3JrTG9h
ZE1ldHJpY3MoKSA9IG1ldHJpY3M7CisgICAgbV9yZXNvdXJjZVRpbWluZy5uZXR3b3JrTG9hZE1l
dHJpY3MoKS51cGRhdGVGcm9tRmluYWxNZXRyaWNzKG1ldHJpY3MpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtMb2FkTWV0cmljcy5jcHAKaW5kZXggNmYyNTRmMDIwNmQ1NzJjYmIwOWY0ZGY3NzUx
MGIwMmRiM2FjOGU5ZS4uMmMxMzUwODZmMzFjNjg3NDdiY2E4OGUyYjk0MDk4NzU1MGM4MjQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1l
dHJpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xv
YWRNZXRyaWNzLmNwcApAQCAtMzAsMTUgKzMwLDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotTmV0d29ya0xvYWRNZXRyaWNzOjpOZXR3b3JrTG9hZE1ldHJpY3MoKQotICAgIDogY29tcGxl
dGUoZmFsc2UpCi0gICAgLCBjZWxsdWxhcihmYWxzZSkKLSAgICAsIGV4cGVuc2l2ZShmYWxzZSkK
LSAgICAsIGNvbnN0cmFpbmVkKGZhbHNlKQotICAgICwgbXVsdGlwYXRoKGZhbHNlKQotICAgICwg
aXNSZXVzZWRDb25uZWN0aW9uKGZhbHNlKQotICAgICwgZmFpbHNUQU9DaGVjayhmYWxzZSkKLSAg
ICAsIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QoZmFsc2UpIHsgfQorTmV0d29ya0xvYWRNZXRyaWNz
OjpOZXR3b3JrTG9hZE1ldHJpY3MoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTmV0d29ya0xvYWRNZXRy
aWNzOjp1cGRhdGVGcm9tRmluYWxNZXRyaWNzKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgb3Ro
ZXIpCit7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbFJlZGlyZWN0U3RhcnQgPSByZWRpcmVj
dFN0YXJ0OworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxGZXRjaFN0YXJ0ID0gZmV0Y2hTdGFy
dDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFsRG9tYWluTG9va3VwU3RhcnQgPSBkb21haW5M
b29rdXBTdGFydDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFsRG9tYWluTG9va3VwRW5kID0g
ZG9tYWluTG9va3VwRW5kOworICAgIE1vbm90b25pY1RpbWUgb3JpZ2luYWxDb25uZWN0U3RhcnQg
PSBjb25uZWN0U3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbFNlY3VyZUNvbm5lY3Rp
b25TdGFydCA9IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdp
bmFsQ29ubmVjdEVuZCA9IGNvbm5lY3RFbmQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbFJl
cXVlc3RTdGFydCA9IHJlcXVlc3RTdGFydDsKKyAgICBNb25vdG9uaWNUaW1lIG9yaWdpbmFsUmVz
cG9uc2VTdGFydCA9IHJlc3BvbnNlU3RhcnQ7CisgICAgTW9ub3RvbmljVGltZSBvcmlnaW5hbFJl
c3BvbnNlRW5kID0gcmVzcG9uc2VFbmQ7CisKKyAgICAqdGhpcyA9IG90aGVyOworCisgICAgaWYg
KCFyZWRpcmVjdFN0YXJ0KQorICAgICAgICByZWRpcmVjdFN0YXJ0ID0gb3JpZ2luYWxSZWRpcmVj
dFN0YXJ0OworICAgIGlmICghZmV0Y2hTdGFydCkKKyAgICAgICAgZmV0Y2hTdGFydCA9IG9yaWdp
bmFsRmV0Y2hTdGFydDsKKyAgICBpZiAoIWRvbWFpbkxvb2t1cFN0YXJ0KQorICAgICAgICBkb21h
aW5Mb29rdXBTdGFydCA9IG9yaWdpbmFsRG9tYWluTG9va3VwU3RhcnQ7CisgICAgaWYgKCFkb21h
aW5Mb29rdXBFbmQpCisgICAgICAgIGRvbWFpbkxvb2t1cEVuZCA9IG9yaWdpbmFsRG9tYWluTG9v
a3VwRW5kOworICAgIGlmICghY29ubmVjdFN0YXJ0KQorICAgICAgICBjb25uZWN0U3RhcnQgPSBv
cmlnaW5hbENvbm5lY3RTdGFydDsKKyAgICBpZiAoIXNlY3VyZUNvbm5lY3Rpb25TdGFydCkKKyAg
ICAgICAgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gb3JpZ2luYWxTZWN1cmVDb25uZWN0aW9uU3Rh
cnQ7CisgICAgaWYgKCFjb25uZWN0RW5kKQorICAgICAgICBjb25uZWN0RW5kID0gb3JpZ2luYWxD
b25uZWN0RW5kOworICAgIGlmICghcmVxdWVzdFN0YXJ0KQorICAgICAgICByZXF1ZXN0U3RhcnQg
PSBvcmlnaW5hbFJlcXVlc3RTdGFydDsKKyAgICBpZiAoIXJlc3BvbnNlU3RhcnQpCisgICAgICAg
IHJlc3BvbnNlU3RhcnQgPSBvcmlnaW5hbFJlc3BvbnNlU3RhcnQ7CisgICAgaWYgKCFyZXNwb25z
ZUVuZCkKKyAgICAgICAgcmVzcG9uc2VFbmQgPSBvcmlnaW5hbFJlc3BvbnNlRW5kOworCisgICAg
aWYgKCFyZXNwb25zZUVuZCkKKyAgICAgICAgcmVzcG9uc2VFbmQgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKKyAgICBjb21wbGV0ZSA9IHRydWU7Cit9CiAKIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmlj
cyYgTmV0d29ya0xvYWRNZXRyaWNzOjplbXB0eU1ldHJpY3MoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRNZXRyaWNzLmgKaW5kZXggN2Ix
NDkwMTJkNjc2NmU1MmRlZWUyMTllY2E4NWVmYTI4NGM1ZGU0Mi4uZTMzNTdhMjhmZWRjYjI3MTY2
MTljYzk3MDhjMWY3YzAwMmI4YjZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrTG9hZE1ldHJpY3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkTWV0cmljcy5oCkBAIC03NSw2ICs3NSw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBjb21wbGV0ZTsgfQogICAg
IHZvaWQgbWFya0NvbXBsZXRlKCkgeyBjb21wbGV0ZSA9IHRydWU7IH0KIAorICAgIHZvaWQgdXBk
YXRlRnJvbUZpbmFsTWV0cmljcyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmKTsKKwogICAgIC8v
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmctMi8jYXR0cmlidXRlLWRlc2Ny
aXB0aW9ucwogICAgIE1vbm90b25pY1RpbWUgcmVkaXJlY3RTdGFydDsKICAgICBNb25vdG9uaWNU
aW1lIGZldGNoU3RhcnQ7CkBAIC05MiwxNCArOTQsMTQgQEAgcHVibGljOgogCiAgICAgdWludDE2
X3QgcmVkaXJlY3RDb3VudCB7IDAgfTsKIAotICAgIGJvb2wgY29tcGxldGUgOiAxOwotICAgIGJv
b2wgY2VsbHVsYXIgOiAxOwotICAgIGJvb2wgZXhwZW5zaXZlIDogMTsKLSAgICBib29sIGNvbnN0
cmFpbmVkIDogMTsKLSAgICBib29sIG11bHRpcGF0aCA6IDE7Ci0gICAgYm9vbCBpc1JldXNlZENv
bm5lY3Rpb24gOiAxOwotICAgIGJvb2wgZmFpbHNUQU9DaGVjayA6IDE7Ci0gICAgYm9vbCBoYXND
cm9zc09yaWdpblJlZGlyZWN0IDogMTsKKyAgICBib29sIGNvbXBsZXRlIDogMSB7IGZhbHNlIH07
CisgICAgYm9vbCBjZWxsdWxhciA6IDEgeyBmYWxzZSB9OworICAgIGJvb2wgZXhwZW5zaXZlIDog
MSB7IGZhbHNlIH07CisgICAgYm9vbCBjb25zdHJhaW5lZCA6IDEgeyBmYWxzZSB9OworICAgIGJv
b2wgbXVsdGlwYXRoIDogMSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1JldXNlZENvbm5lY3Rpb24g
OiAxIHsgZmFsc2UgfTsKKyAgICBib29sIGZhaWxzVEFPQ2hlY2sgOiAxIHsgZmFsc2UgfTsKKyAg
ICBib29sIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgOiAxIHsgZmFsc2UgfTsKIAogICAgIFByaXZh
Y3lTdGFuY2UgcHJpdmFjeVN0YW5jZSB7IFByaXZhY3lTdGFuY2U6OlVua25vd24gfTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDUxNzdlZDkyOTgwZGQ4ZDRiYTRiZjNhZjNkMTQxMDZhNjJmZDZiODcuLmViYjFlYTgzNmNk
ZmY2ODA3ODExMmU2NGM2OWU1ODdlYmE3NjIyNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAy
Mi0wMy0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyBSZXNwb25zZSBTdGFydCB1bmF2YWls
YWJsZSB3aGVuIHVzaW5nIFNlcnZpY2UgV29ya2VyIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczMTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFRlc3QgdGhhdCB0aGVzZSB2YWx1ZXMgYXJlIHJl
YXNvbmFibGUgYWZ0ZXIgbG9hZGluZyB0aGUgbWFpbiByZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3
b3JrZXIncyBjYWNoZS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uYXZp
Z2F0aW9uLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9uYXZpZ2F0aW9uLXRpbWluZy5odHRwcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmF2aWdhdGlvbi10aW1pbmcuanM6
IEFkZGVkLgorICAgICAgICAoZXZlbnQuZXZlbnQud2FpdFVudGlsLmNhY2hlcy5vcGVuLnN0cmlu
Z19hcHBlYXJlZF9oZXJlLnRoZW4pOgorICAgICAgICAoZXZlbnQuZXZlbnQucmVzcG9uZFdpdGgu
Y2FjaGVzLm9wZW4uc3RyaW5nX2FwcGVhcmVkX2hlcmUudGhlbik6CisgICAgICAgICogaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXRpbWluZy1wYXJ0LTIuaHRt
bDogQWRkZWQuCisKIDIwMjItMDMtMTQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW21vZGVsXSA8bW9kZWwgaW50ZXJhY3RpdmU+IGRvZXNuJ3QgYWxsb3cg
bW9kZWwgdG8gYmUgcm90YXRlZCBvbiBpT1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9uYXZpZ2F0aW9uLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmF2aWdhdGlvbi10aW1pbmcu
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhODBmZTYwMGExNGJiZDdiY2QwZTNkM2Q1
N2NjNzRiZmFkMjc2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvbmF2aWdhdGlvbi10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEgQEAKK1BBU1MgLSBuYXZpZ2F0aW9uIHRpbWluZyBhcyBleHBlY3RlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25hdmlnYXRpb24tdGltaW5n
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmF2aWdh
dGlvbi10aW1pbmcuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGE2NGNiMDExYTMwNTJlMjM0MDdl
NDg2M2MyOWZjNDljMjBiMDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL25hdmlnYXRpb24tdGltaW5nLmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlciBuYXZpZ2F0aW9u
IHRpbWluZyByZXF1ZXN0IGFuZCByZXNwb25zZSB0aW1lPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0iZG9UZXN0KCkiPgorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7
CisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyKCJuYXZpZ2F0aW9uLXRpbWluZy5qcyIsIHsgc2NvcGUgOiAicmVzb3VyY2VzLyIgfSk7
CisgICAgdmFyIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgaWYgKCFh
Y3RpdmVXb3JrZXIpIHsKKyAgICAgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmc7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAg
ICAgYWN0aXZlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4gewor
ICAgICAgICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQor
ICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlZ2lzdHJhdGlvbik7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJyZXNvdXJjZXMv
bmF2aWdhdGlvbi10aW1pbmctcGFydC0yLmh0bWwiOworfQoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uYXZpZ2F0aW9uLXRpbWluZy5qcyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uYXZpZ2F0aW9uLXRpbWluZy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTEwOGIzNWYyNzNiYzU2NmZhYTcwMGNjOTBjNzY0MTg3NGMyZDY5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL25h
dmlnYXRpb24tdGltaW5nLmpzCkBAIC0wLDAgKzEsMTUgQEAKK3NlbGYuYWRkRXZlbnRMaXN0ZW5l
cignaW5zdGFsbCcsIChldmVudCkgPT4geworICAgIGV2ZW50LndhaXRVbnRpbChjYWNoZXMub3Bl
bigiY2FjaGVfbmFtZSIpLnRoZW4oKGNhY2hlKSA9PiB7CisgICAgICAgIHJldHVybiBjYWNoZS5h
ZGRBbGwoWycvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbmF2aWdhdGlvbi10aW1p
bmctcGFydC0yLmh0bWwnXSk7CisgICAgfSkpOworfSk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5l
cignZmV0Y2gnLCAoZXZlbnQpID0+IHsKKyAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAgIGV2
ZW50LnJlc3BvbmRXaXRoKGNhY2hlcy5vcGVuKCJjYWNoZV9uYW1lIikudGhlbigoY2FjaGUpID0+
IHsKKyAgICAgICAgICAgIHJldHVybiBjYWNoZS5tYXRjaChldmVudC5yZXF1ZXN0KS50aGVuKChy
ZXNwb25zZSkgPT4geworICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KSk7CisgICAgfSwgNTAwKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXRp
bWluZy1wYXJ0LTIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9y
ZXNvdXJjZXMvbmF2aWdhdGlvbi10aW1pbmctcGFydC0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZiOWIx
Njc1ZTU1NjIwMzA5MTZjNDczN2NlZWQ4OTJkOGI1YjE2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvbmF2aWdhdGlvbi10
aW1pbmctcGFydC0yLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRs
ZT5TZXJ2aWNlIFdvcmtlciBuYXZpZ2F0aW9uIHRpbWluZyByZXF1ZXN0IGFuZCByZXNwb25zZSB0
aW1lPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCkiPgorPHNjcmlwdD4K
K2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgY29uc3QgbmF2VGltaW5nID0gcGVyZm9y
bWFuY2UuZ2V0RW50cmllcygpWzBdOworICAgIGNvbnN0IG5hdlRpbWluZ1Jlc3VsdCA9IChuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyCisgICAgICAgICYmIG5hdlRpbWluZy5yZXF1
ZXN0U3RhcnQgKyBuYXZUaW1pbmcucmVzcG9uc2VTdGFydCArIG5hdlRpbWluZy5yZXNwb25zZUVu
ZCA+IDAKKyAgICAgICAgJiYgbmF2VGltaW5nLnJlc3BvbnNlU3RhcnQgPj0gbmF2VGltaW5nLnJl
cXVlc3RTdGFydAorICAgICAgICAmJiBuYXZUaW1pbmcucmVzcG9uc2VFbmQgPj0gbmF2VGltaW5n
LnJlc3BvbnNlU3RhcnQpID8gIlBBU1MgLSBuYXZpZ2F0aW9uIHRpbWluZyBhcyBleHBlY3RlZCIK
KyAgICAgICAgOiAiRkFJTCAtIG5hdmlnYXRpb24gdGltaW5nIGluY29ycmVjdCAiCisgICAgICAg
ICAgICArIG5hdlRpbWluZy5yZXF1ZXN0U3RhcnQgKyAiICIKKyAgICAgICAgICAgICsgbmF2VGlt
aW5nLnJlc3BvbnNlU3RhcnQgKyAiICIKKyAgICAgICAgICAgICsgbmF2VGltaW5nLnJlc3BvbnNl
RW5kOworCisgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBuYXZUaW1pbmdSZXN1bHQ7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>