<?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>194802</bug_id>
          
          <creation_ts>2019-02-18 17:57:12 -0800</creation_ts>
          <short_desc>Video freezes when attaching a local MediaStream to multiple elements</short_desc>
          <delta_ts>2020-05-27 02:38:33 -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>WebRTC</component>
          <version>Safari Technology Preview</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212073</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan">kentbriggs5</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507559</commentid>
    <comment_count>0</comment_count>
    <who name="Dan">kentbriggs5</who>
    <bug_when>2019-02-18 17:57:12 -0800</bug_when>
    <thetext>My video freezes when attaching a local MediaStream to multiple video elements.

Steps to reproduce:
1. Capture your camera with getUserMedia()
2. Display your local video with videoElement.srcObject = mediaStream
3. Display your local video in a 2nd video element

Expected behaviour
Both video elements play the video

Actual behaviour
The first video element sometimes freezes when attaching the stream to the 2nd element. The video element doesn&apos;t go to a paused state, it just looks frozen. If you attach the mediaStream to a 3rd element then the 1st and 2nd may both freeze. Sometimes the frozen videos will unfreeze when attaching the mediaStream to another element. Sometimes the frozen videos will only freeze for a second or two. Other times they will remain frozen until attaching the stream to a new element.

Devices
I am seeing this on my MacBook Pro in the Safari Technology Preview (12.2) and on my iPad Mini 2 on the Apple beta program (12.2). I am _not_ seeing it in the stable Safari on my Mac (12.0.3), or the stable iOS version on my iPhone 5s (12.1.3).

Repro
https://codepen.io/dbriggs/pen/gqqpeZ</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521297</commentid>
    <comment_count>1</comment_count>
    <who name="Dan">kentbriggs5</who>
    <bug_when>2019-03-26 09:03:01 -0700</bug_when>
    <thetext>iOS 12.2 just landed stable and this issue is still happening. My iPhone 5s that was working fine on 12.1.3 now has this issue on 12.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521299</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-26 09:12:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/49274083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521301</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-03-26 09:17:48 -0700</bug_when>
    <thetext>Thanks Dan,

I was able to repro on STP and iOS. Often the video freezes for a few seconds and then restarts again on its own.
Doing play/pause usually works for the video but some other video might get frozen for some time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521302</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-03-26 09:20:40 -0700</bug_when>
    <thetext>Adding controls and user clicking pause/play does fix the freezing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521467</commentid>
    <comment_count>5</comment_count>
    <who name="Dan">kentbriggs5</who>
    <bug_when>2019-03-26 15:03:23 -0700</bug_when>
    <thetext>Ya good call. I tried .play() but hadn&apos;t tried pausing first. That works for me as well.

Do you know if it&apos;s possible to detect this frozen state? Only thing I could think of was using a canvas with getImageData() to check if rgba values have changed. Pretty hacky to say the least :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521493</commentid>
    <comment_count>6</comment_count>
    <who name="Dan">kentbriggs5</who>
    <bug_when>2019-03-26 15:41:32 -0700</bug_when>
    <thetext>Just wanted to mention that this problem only occurs for local streams. I was curious if it would also happen for remote streams so I made another codepen to test. Remote streams seem to work fine. Here&apos;s the pen in case anyone wants to play around with it: https://codepen.io/dbriggs/pen/KELaYQ.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521860</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-03-27 15:01:51 -0700</bug_when>
    <thetext>Did a quick check and flushing the AVSampleBufferDisplayLayer before enqueueing a sample in MediaPlayerPrivateMediaStreamAVFObjC::enqueueCorrectedVideoSample seems to do the trick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521887</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-03-27 15:54:36 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; Did a quick check and flushing the AVSampleBufferDisplayLayer before
&gt; enqueueing a sample in
&gt; MediaPlayerPrivateMediaStreamAVFObjC::enqueueCorrectedVideoSample seems to
&gt; do the trick.

We don&apos;t want to do that every time, so we&apos;ll have to figure out how to detect the bad state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541435</commentid>
    <comment_count>9</comment_count>
    <who name="Dan">kentbriggs5</who>
    <bug_when>2019-06-03 19:34:46 -0700</bug_when>
    <thetext>Any progress on this? I&apos;ve noticed two similar nasty issues recently and I&apos;m wondering if they might be caused by the same underlying problem.

1. The video from remote streams sometimes freezes if you minimize the browser then come back a few seconds later. This is quite rare and I haven&apos;t found a reliable way to reproduce it. But the it looks the same as the original issue I described. Everything about the video track is normal (enabled, not muted, readyState is live, etc), video element is not paused, and calling .pause() then .play() resolves it. But I haven&apos;t found a way to detect it. I also logged getStats results in my test to make sure I was receiving video data. Everything looks fine, the video is just frozen on the screen.

2. Remote audio sometimes freezes. I&apos;ve seen something very similar to the point above but for audio. We&apos;ve had several users of our application report this issue. It shows up as one person on iOS safari not being able to hear one of the other participants. To be clear, they can hear everyone else, and everyone can hear them. They just can&apos;t hear 1 person. I managed to reproduce it only a couple of times after trying for several hours (hundreds of attempts - not highly reproducible!). Similar to the video issue above, the viewer is receiving audio data and the audio track looks fine, plus, the audio element is not paused. But audio can&apos;t be heard. Calling .pause() then .play() fixes this as well. The problem is that I can&apos;t detect it. I&apos;m even using the web audio API to ensure we are getting sound and indeed we are. Everything seems to be working well, the user just can&apos;t hear the sound. I&apos;ve considered just calling .pause() then .play() on an interval to ensure it never gets stuck in this state, but the paused state seems to last almost a second on my iPhone. Having audio cut out for a second on a regular interval just isn&apos;t an option :)

Let me know if you think these might be related to the original report. If not, I&apos;m happy to file a new bug report. These are big problems for us so I&apos;d love to get them solved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541443</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-03 21:25:05 -0700</bug_when>
    <thetext>The remote video issue might be the same.
The audio bug seems different, can you file another bug?
If you can reproduce it, taking a sysdiagnose might be helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541754</commentid>
    <comment_count>11</comment_count>
    <who name="Dan">kentbriggs5</who>
    <bug_when>2019-06-04 15:15:20 -0700</bug_when>
    <thetext>Thanks for the quick response! Took a couple hours but was finally able to reproduce the audio issue again and capture a sysdiagnose :) Filed https://bugs.webkit.org/show_bug.cgi?id=198545.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541872</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-04 20:21:04 -0700</bug_when>
    <thetext>Another similar issue happened to me:
- load https://webrtc.github.io/samples/src/content/peerconnection/pc1/
- click start and call to have an on-going webrtc call
- load youtube.com in another tab and start a video. At that point, the capture should be suspended
- go back to the previous tab, the capture should restart (and youtube be suspended).
At that point, the video element with the local track was black, the video element with the remote track was ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542005</commentid>
    <comment_count>13</comment_count>
    <who name="Dan">kentbriggs5</who>
    <bug_when>2019-06-05 08:59:06 -0700</bug_when>
    <thetext>Interesting. Both video elements go black for me when returning from YouTube (elements are paused). If you inspect the element, is it paused? Or black for some other reason? Calling .play() on the elements fixes it for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655979</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-25 23:58:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/63613107&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655991</commentid>
    <comment_count>15</comment_count>
      <attachid>400232</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-26 03:07:28 -0700</bug_when>
    <thetext>Created attachment 400232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656011</commentid>
    <comment_count>16</comment_count>
      <attachid>400240</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-26 06:18:18 -0700</bug_when>
    <thetext>Created attachment 400240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656044</commentid>
    <comment_count>17</comment_count>
      <attachid>400249</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-26 08:26:16 -0700</bug_when>
    <thetext>Created attachment 400249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656064</commentid>
    <comment_count>18</comment_count>
      <attachid>400249</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-26 09:35:37 -0700</bug_when>
    <thetext>Comment on attachment 400249
Patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        &lt;rdar://problem/49274083&gt;

I think you want rdar://63613107

&gt; Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:307
&gt; +    // If needed, we set the sample buffer to kCMSampleAttachmentKey_DisplayImmediately as a workaround to rdar://problem/49274083.
&gt; +    // We clone the sample buffer as modifying the attachments of a sample buffer used elsewhere (encoding e.g.) may not be thread safe.

Nit: this comment should be above the `if (m_renderPolicy == RenderPolicy::Immediately)`

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:412
&gt; +    if (status)
&gt; +        return nullptr;

This leaks formatDescription, maybe make it a RetainPtr?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:418
&gt; +    if (status)
&gt; +        return nullptr;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656065</commentid>
    <comment_count>19</comment_count>
      <attachid>400249</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-26 09:37:35 -0700</bug_when>
    <thetext>Comment on attachment 400249
Patch

r=me once the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656314</commentid>
    <comment_count>20</comment_count>
      <attachid>400314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-27 01:02:44 -0700</bug_when>
    <thetext>Created attachment 400314
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656315</commentid>
    <comment_count>21</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-27 01:03:28 -0700</bug_when>
    <thetext>Thanks for the review, I updated the patch accordingly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656325</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-27 02:38:32 -0700</bug_when>
    <thetext>Committed r262189: &lt;https://trac.webkit.org/changeset/262189&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400314.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400232</attachid>
            <date>2020-05-26 03:07:28 -0700</date>
            <delta_ts>2020-05-26 06:18:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194802-20200526120726.patch</filename>
            <type>text/plain</type>
            <size>9587</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYyM2JmMGIyM2NhZDE4
YzcxNWQyOWJlMzI3MTBiZDU3ZmFlYjdiMS4uYWI2ZGExODRhNWQ3ZGI2Njg2OTgyYjdkZWVlN2Zk
MGJkOWY0NWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA1LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBmcmVlemVzIHdo
ZW4gYXR0YWNoaW5nIGEgbG9jYWwgTWVkaWFTdHJlYW0gdG8gbXVsdGlwbGUgZWxlbWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDgwMgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjM2MTMxMDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgc29tZXRp
bWVzIGRvZXMgbm90IHVwZGF0ZSB0aGUgcmVuZGVyaW5nIHdoZW4gdGhlIHNhbWUgbG9jYWwgc291
cmNlIGlzIHJlbmRlcmVkIHNldmVyYWwgdGltZXMuCisgICAgICAgIFRvIHdvcmthcm91bmQgdGhp
cywgd2Ugc2V0IGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5IHRvIHRy
dWUsIHdoaWNoIGZpeGVzIHRoZSBpc3N1ZSBhcyBwZXIgbXkgdGVzdGluZy4KKyAgICAgICAgV2Ug
Y2xvbmUgdGhlIHNhbXBsZSBidWZmZXIgYmVmb3JlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBhcyBp
dCBtaWdodCBub3QgYmUgdGhyZWFkIHNhZmUgdG8gbW9kaWZ5IHRoZSBhdHRhY2htZW50cyBvZiBh
IHNhbXBsZQorICAgICAgICB0aGF0IG1pZ2h0IGFsc28gYmUgZW5jb2RlZC4KKyAgICAgICAgV2Ug
aW1wbGVtZW50IHRoaXMgYXQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgbGV2ZWwgYW5k
IGVuYWJsZSB0aGlzIGZvciBsb2NhbCBjYXB0dXJlIHNvdXJjZXMgb25seS4KKworICAgICAgICBN
YW51YWxseSB0ZXN0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OnNldFJlbmRlclBvbGljeSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNsb25lU2FtcGxl
QnVmZmVyQW5kU2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkpOgorICAgICAgICAoV2ViQ29yZTo6TG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnJlbW92ZU9sZFNhbXBsZXNGcm9t
UGVuZGluZ1F1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuc3VyZUxheWVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmNoZWNrU2VsZWN0ZWRWaWRlb1RyYWNrKToKKwogMjAyMC0wNS0yNiAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIFVzZSBzY3Jl
ZW4gZm9udCBvcHRpb25zIGFzIGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaAppbmRleCA5YjdkODBiOTM1ZTJmZjE1ZWM1ZWJkNmY0ZmZiN2I4ZjNh
OTNiM2JkLi5kMzQ0OTQxZTQ0OTdhNmYyNDA0MzJjN2ViMzc5MWM3OGNlM2QyNzAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC02OSw2ICs2OSw5
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgPSAw
OwogCisgICAgZW51bSBjbGFzcyBSZW5kZXJQb2xpY3kgeyBUaW1pbmdJbmZvLCBJbW1lZGlhdGVs
eSB9OworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJQb2xpY3koUmVuZGVyUG9saWN5KSB7IH07
CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xp
ZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IGJlMDk3MzRmNmRkZmNkZGU1MDBiZTgxYTIwZWNhNTAw
MGQzN2QzNDEuLjljOWRjYTJhNWMxZGM4NDVhODM4N2E3NTZmMDU3ZGQ2MzRhODFlNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuaApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGVucXVldWVTYW1w
bGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkg
ZmluYWw7CisgICAgdm9pZCBzZXRSZW5kZXJQb2xpY3koUmVuZGVyUG9saWN5KSBmaW5hbDsKIAog
cHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZU9sZFNhbXBsZXNGcm9tUGVuZGluZ1F1ZXVlKCk7CkBA
IC04MiwxMSArODMsMTcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZm
ZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lcj4gbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lcjsKICAgICBSZXRh
aW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3Jvb3RMYXllcjsKKyAgICBSZW5k
ZXJQb2xpY3kgbV9yZW5kZXJQb2xpY3kgeyBSZW5kZXJQb2xpY3k6OlRpbWluZ0luZm8gfTsKIAog
ICAgIHVzaW5nIFBlbmRpbmdTYW1wbGVRdWV1ZSA9IERlcXVlPFJlZjxNZWRpYVNhbXBsZT4+Owog
ICAgIFBlbmRpbmdTYW1wbGVRdWV1ZSBtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlOwogfTsKIAor
aW5saW5lIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldFJlbmRlclBvbGlj
eShSZW5kZXJQb2xpY3kgcmVuZGVyUG9saWN5KQoreworICAgIG1fcmVuZGVyUG9saWN5ID0gcmVu
ZGVyUG9saWN5OworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQppbmRleCA1MGEwM2ZhNDIzM2Y4MTg1ZWY3ZGRi
Y2ZhZDc4N2Q2YjYzYzU4MzM2Li5hZGQzNzk4NzA3YTA4ZjllMGM5MWE4N2U5YTViNTc3ZGE3ZTI0
OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5tbQpAQCAtMzksOSArMzksMTEgQEAKICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KIAorI2ltcG9ydCA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2Ug
UEFMOwogCiBAaW50ZXJmYWNlIFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIg
OiBOU09iamVjdCB7CiAgICAgV2Vha1B0cjxMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4g
X3BhcmVudDsKQEAgLTI4Nyw2ICsyODksMzcgQEAgdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJbWFnZSgpCiAgICAgW21fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIGZsdXNoQW5kUmVtb3ZlSW1hZ2VdOwogfQogCitzdGF0aWMgaW5saW5lIFJldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY2xvbmVTYW1wbGVCdWZmZXJBbmRTZXRBc0Rpc3BsYXlJbW1l
ZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCit7CisgICAgYXV0byBwaXhl
bEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZm
ZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAg
ICBpZiAoc3RhdHVzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlVGlt
aW5nSW5mbyB0aW1pbmdJbmZvOworICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mbyhzYW1wbGVCdWZmZXIsIDAsICZ0aW1pbmdJbmZvKTsKKyAgICBpZiAoc3RhdHVz
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1Nh
bXBsZUJ1ZmZlcjsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKXBpeGVsQnVm
ZmVyLCBmb3JtYXREZXNjcmlwdGlvbiwgJnRpbWluZ0luZm8sICZuZXdTYW1wbGVCdWZmZXIpOwor
ICAgIENGUmVsZWFzZShmb3JtYXREZXNjcmlwdGlvbik7CisgICAgaWYgKHN0YXR1cykKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0Q0YobmV3U2FtcGxl
QnVmZmVyKTsKKyAgICBhdXRvIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNh
bXBsZUF0dGFjaG1lbnRzQXJyYXkobmV3U2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBmb3IgKENG
SW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7ICsraSkg
eworICAgICAgICBhdXRvIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJsZURp
Y3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkp
OworICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxlQXR0
YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6ZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIGlmICghW21fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyIGlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhXSkgewpAQCAtMjk1
LDcgKzMyOCwxNyBAQCB2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVl
U2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBbbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpzYW1wbGUu
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOworICAgIGF1dG8gc2FtcGxl
VG9FbnF1ZXVlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVy
OworICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbmV3U2FtcGxlQnVmZmVyOworICAg
IGlmIChtX3JlbmRlclBvbGljeSA9PSBSZW5kZXJQb2xpY3k6OkltbWVkaWF0ZWx5KSB7CisgICAg
ICAgIC8vIFdlIHNldCB0aGUgc2FtcGxlIGJ1ZmZlciB0byBrQ01TYW1wbGVBdHRhY2htZW50S2V5
X0Rpc3BsYXlJbW1lZGlhdGVseSBhcyBhIHdvcmthcm91bmQgdG8gcmRhcjovL3Byb2JsZW0vNDky
NzQwODMuCisgICAgICAgIC8vIFdlIGNsb25lIHRoZSBzYW1wbGUgYnVmZmVyIGFzIG1vZGlmeWlu
ZyB0aGUgYXR0YWNobWVudHMgb2YgYSBzYW1wbGUgYnVmZmVyIHVzZWQgZWxzZXdoZXJlIChlbmNv
ZGluZyBlLmcuKSBtYXkgbm90IGJlIHRocmVhZCBzYWZlLgorICAgICAgICBuZXdTYW1wbGVCdWZm
ZXIgPSBjbG9uZVNhbXBsZUJ1ZmZlckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KHNhbXBsZVRv
RW5xdWV1ZSk7CisgICAgICAgIGlmIChuZXdTYW1wbGVCdWZmZXIpCisgICAgICAgICAgICBzYW1w
bGVUb0VucXVldWUgPSBuZXdTYW1wbGVCdWZmZXIuZ2V0KCk7CisgICAgfQorCisgICAgW21fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyIGVucXVldWVTYW1wbGVCdWZmZXI6c2FtcGxlVG9FbnF1ZXVl
XTsKIH0KIAogdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cmVtb3ZlT2xkU2Ft
cGxlc0Zyb21QZW5kaW5nUXVldWUoKQpAQCAtMzAzLDYgKzM0NiwxMSBAQCB2b2lkIExvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpyZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRpbmdRdWV1ZSgp
CiAgICAgaWYgKG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuaXNFbXB0eSgpIHx8ICFtX2NsaWVu
dCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fcmVuZGVyUG9saWN5ID09IFJlbmRlclBv
bGljeTo6SW1tZWRpYXRlbHkpIHsKKyAgICAgICAgbV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5j
bGVhcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYXV0byBkZWNvZGVUaW1lID0g
bV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5maXJzdCgpLT5kZWNvZGVUaW1lKCk7CiAgICAgaWYg
KCFkZWNvZGVUaW1lLmlzVmFsaWQoKSB8fCBkZWNvZGVUaW1lIDwgTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpKSB7CiAgICAgICAgIHdoaWxlIChtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLnNpemUoKSA+
IDUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggOTAxNzRjOWZiODBhODAyNDYzMjAw
OGU2MThjZjNhMGJkOWRkMjg5Mi4uZjg0Y2I0YWY1Y2JmMGVjYmM4YjFkMmUwNmQwZThmM2JiNjQ3
Njg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzc5LDYgKzM3OSw5IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQog
ICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmIChhY3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS5pc0NhcHR1cmVTb3VyY2UoKSkKKyAg
ICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnNldFJlbmRlclBvbGljeShTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OlJlbmRlclBvbGljeTo6SW1tZWRpYXRlbHkpOworCiAgICAgYXV0
byBzaXplID0gc25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkp
LnNpemUoKTsKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+aW5pdGlhbGl6ZShoaWRl
Um9vdExheWVyKCksIHNpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBz
aXplXShhdXRvIGRpZFN1Y2NlZWQpIHsKICAgICAgICAgaWYgKCFkaWRTdWNjZWVkKSB7CkBAIC04
NjcsOCArODcwLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpjaGVja1NlbGVjdGVkVmlkZW9UcmFjaygpCiAgICAgICAgIGlmIChvbGRWaWRlb1RyYWNrICE9
IG1fYWN0aXZlVmlkZW9UcmFjaykgewogICAgICAgICAgICAgaWYgKG9sZFZpZGVvVHJhY2spCiAg
ICAgICAgICAgICAgICAgb2xkVmlkZW9UcmFjay0+c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5yZW1v
dmVWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAgICAgIGlmIChtX2FjdGl2ZVZp
ZGVvVHJhY2spCisgICAgICAgICAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICYmIG1fYWN0aXZlVmlkZW9U
cmFjay0+c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5pc0NhcHR1cmVTb3VyY2UoKSkKKyAgICAgICAg
ICAgICAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnNldFJlbmRlclBvbGljeShT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlJlbmRlclBvbGljeTo6SW1tZWRpYXRlbHkpOwogICAg
ICAgICAgICAgICAgIG1fYWN0aXZlVmlkZW9UcmFjay0+c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5h
ZGRWaWRlb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0pOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400240</attachid>
            <date>2020-05-26 06:18:18 -0700</date>
            <delta_ts>2020-05-26 08:26:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194802-20200526151816.patch</filename>
            <type>text/plain</type>
            <size>11730</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYyM2JmMGIyM2NhZDE4
YzcxNWQyOWJlMzI3MTBiZDU3ZmFlYjdiMS4uZDZmNWRmYmEzNmQwZWViNjY0Y2I1N2Q0NjFmZTI5
ZjUwMTVhMGRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA1LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBmcmVlemVzIHdo
ZW4gYXR0YWNoaW5nIGEgbG9jYWwgTWVkaWFTdHJlYW0gdG8gbXVsdGlwbGUgZWxlbWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDgwMgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDkyNzQwODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgc29tZXRp
bWVzIGRvZXMgbm90IHVwZGF0ZSB0aGUgcmVuZGVyaW5nIHdoZW4gdGhlIHNhbWUgbG9jYWwgc291
cmNlIGlzIHJlbmRlcmVkIHNldmVyYWwgdGltZXMuCisgICAgICAgIFRvIHdvcmthcm91bmQgdGhp
cywgd2Ugc2V0IGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5IHRvIHRy
dWUsIHdoaWNoIGZpeGVzIHRoZSBpc3N1ZSBhcyBwZXIgbXkgdGVzdGluZy4KKyAgICAgICAgV2Ug
Y2xvbmUgdGhlIHNhbXBsZSBidWZmZXIgYmVmb3JlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBhcyBp
dCBtaWdodCBub3QgYmUgdGhyZWFkIHNhZmUgdG8gbW9kaWZ5IHRoZSBhdHRhY2htZW50cyBvZiBh
IHNhbXBsZQorICAgICAgICB0aGF0IG1pZ2h0IGFsc28gYmUgZW5jb2RlZC4KKyAgICAgICAgV2Ug
aW1wbGVtZW50IHRoaXMgYXQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgbGV2ZWwgYW5k
IGVuYWJsZSB0aGlzIGZvciBsb2NhbCBjYXB0dXJlIHNvdXJjZXMgb25seS4KKworICAgICAgICBN
YW51YWxseSB0ZXN0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OnNldFJlbmRlclBvbGljeSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzZXRS
ZW5kZXJQb2xpY3kpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnJlbW92ZU9sZFNhbXBsZXNG
cm9tUGVuZGluZ1F1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuc3VyZUxh
eWVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OmNoZWNrU2VsZWN0ZWRWaWRlb1RyYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVk
aWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1w
bGVCdWZmZXIpOgorCiAyMDIwLTA1LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLNF0gVXNlIHNjcmVlbiBmb250IG9wdGlvbnMgYXMg
ZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmlu
ZGV4IDliN2Q4MGI5MzVlMmZmMTVlYzVlYmQ2ZjRmZmI3YjhmM2E5M2IzYmQuLmQzNDQ5NDFlNDQ5
N2E2ZjI0MDQzMmM3ZWIzNzkxYzc4Y2UzZDI3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIoKSA9IDA7CiAKKyAgICBlbnVtIGNsYXNz
IFJlbmRlclBvbGljeSB7IFRpbWluZ0luZm8sIEltbWVkaWF0ZWx5IH07CisgICAgdmlydHVhbCB2
b2lkIHNldFJlbmRlclBvbGljeShSZW5kZXJQb2xpY3kpIHsgfTsKKwogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihDbGllbnQmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgK
aW5kZXggYmUwOTczNGY2ZGRmY2RkZTUwMGJlODFhMjBlY2E1MDAwZDM3ZDM0MS4uOWM5ZGNhMmE1
YzFkYzg0NWE4Mzg3YTc1NmYwNTdkZDYzNGE4MWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC03Miw2ICs3
Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBsZSYpIGZp
bmFsOwogICAgIHZvaWQgY2xlYXJFbnF1ZXVlZFNhbXBsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNl
dFJlbmRlclBvbGljeShSZW5kZXJQb2xpY3kpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQg
cmVtb3ZlT2xkU2FtcGxlc0Zyb21QZW5kaW5nUXVldWUoKTsKQEAgLTgyLDExICs4MywxNyBAQCBw
cml2YXRlOgogICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3Rl
bmVyPiBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyOwogICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CiAgICAgUmV0YWluUHRy
PFBsYXRmb3JtTGF5ZXI+IG1fcm9vdExheWVyOworICAgIFJlbmRlclBvbGljeSBtX3JlbmRlclBv
bGljeSB7IFJlbmRlclBvbGljeTo6VGltaW5nSW5mbyB9OwogCiAgICAgdXNpbmcgUGVuZGluZ1Nh
bXBsZVF1ZXVlID0gRGVxdWU8UmVmPE1lZGlhU2FtcGxlPj47CiAgICAgUGVuZGluZ1NhbXBsZVF1
ZXVlIG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWU7CiB9OwogCitpbmxpbmUgdm9pZCBMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0UmVuZGVyUG9saWN5KFJlbmRlclBvbGljeSByZW5k
ZXJQb2xpY3kpCit7CisgICAgbV9yZW5kZXJQb2xpY3kgPSByZW5kZXJQb2xpY3k7Cit9CisKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLm1tCmluZGV4IDUwYTAzZmE0MjMzZjgxODVlZjdkZGJjZmFkNzg3ZDZiNjNjNTgzMzYu
LjRhZjhjMGU3MWNmZDU3MTVjNWEwMDRlMjA2ZjEzMDg3N2NlYmZmY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1t
CkBAIC0zMCw3ICszMCw4IEBACiAKICNpbXBvcnQgIkNvbG9yLmgiCiAjaW1wb3J0ICJJbnRTaXpl
LmgiCi0jaW1wb3J0ICJNZWRpYVNhbXBsZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9y
dCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+CkBA
IC0yOTUsNyArMjk2LDEwIEBAIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVu
cXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVyOnNh
bXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcl07CisgICAgLy8gSWYg
bmVlZGVkLCB3ZSBzZXQgdGhlIHNhbXBsZSBidWZmZXIgdG8ga0NNU2FtcGxlQXR0YWNobWVudEtl
eV9EaXNwbGF5SW1tZWRpYXRlbHkgYXMgYSB3b3JrYXJvdW5kIHRvIHJkYXI6Ly9wcm9ibGVtLzQ5
Mjc0MDgzLgorICAgIC8vIFdlIGNsb25lIHRoZSBzYW1wbGUgYnVmZmVyIGFzIG1vZGlmeWluZyB0
aGUgYXR0YWNobWVudHMgb2YgYSBzYW1wbGUgYnVmZmVyIHVzZWQgZWxzZXdoZXJlIChlbmNvZGlu
ZyBlLmcuKSBtYXkgbm90IGJlIHRocmVhZCBzYWZlLgorICAgIGF1dG8gbmV3U2FtcGxlQnVmZmVy
ID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1T
YW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIG1fcmVuZGVyUG9saWN5ID09IFJlbmRlclBv
bGljeTo6SW1tZWRpYXRlbHkpOworICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBlbnF1
ZXVlU2FtcGxlQnVmZmVyOm5ld1NhbXBsZUJ1ZmZlci5nZXQoKV07CiB9CiAKIHZvaWQgTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnJlbW92ZU9sZFNhbXBsZXNGcm9tUGVuZGluZ1F1ZXVl
KCkKQEAgLTMwMyw2ICszMDcsMTEgQEAgdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6cmVtb3ZlT2xkU2FtcGxlc0Zyb21QZW5kaW5nUXVldWUoKQogICAgIGlmIChtX3BlbmRpbmdW
aWRlb1NhbXBsZVF1ZXVlLmlzRW1wdHkoKSB8fCAhbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGlmIChtX3JlbmRlclBvbGljeSA9PSBSZW5kZXJQb2xpY3k6OkltbWVkaWF0ZWx5KSB7
CisgICAgICAgIG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGF1dG8gZGVjb2RlVGltZSA9IG1fcGVuZGluZ1ZpZGVvU2FtcGxl
UXVldWUuZmlyc3QoKS0+ZGVjb2RlVGltZSgpOwogICAgIGlmICghZGVjb2RlVGltZS5pc1ZhbGlk
KCkgfHwgZGVjb2RlVGltZSA8IE1lZGlhVGltZTo6emVyb1RpbWUoKSkgewogICAgICAgICB3aGls
ZSAobV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5zaXplKCkgPiA1KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tCmluZGV4IDkwMTc0YzlmYjgwYTgwMjQ2MzIwMDhlNjE4Y2YzYTBiZDlkZDI4OTIu
LmY4NGNiNGFmNWNiZjBlY2JjOGIxZDJlMDZkMGU4ZjNiYjY0NzY4OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KQEAgLTM3OSw2ICszNzksOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKCkKICAgICBpZiAoIW1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoYWN0aXZlVmlkZW9U
cmFjay0+c291cmNlKCkuaXNDYXB0dXJlU291cmNlKCkpCisgICAgICAgIG1fc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLT5zZXRSZW5kZXJQb2xpY3koU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpS
ZW5kZXJQb2xpY3k6OkltbWVkaWF0ZWx5KTsKKwogICAgIGF1dG8gc2l6ZSA9IHNuYXBwZWRJbnRS
ZWN0KG1fcGxheWVyLT5wbGF5ZXJDb250ZW50Qm94UmVjdCgpKS5zaXplKCk7CiAgICAgbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPmluaXRpYWxpemUoaGlkZVJvb3RMYXllcigpLCBzaXplLCBb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2l6ZV0oYXV0byBkaWRTdWNjZWVk
KSB7CiAgICAgICAgIGlmICghZGlkU3VjY2VlZCkgewpAQCAtODY3LDggKzg3MCwxMSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2hlY2tTZWxlY3RlZFZpZGVv
VHJhY2soKQogICAgICAgICBpZiAob2xkVmlkZW9UcmFjayAhPSBtX2FjdGl2ZVZpZGVvVHJhY2sp
IHsKICAgICAgICAgICAgIGlmIChvbGRWaWRlb1RyYWNrKQogICAgICAgICAgICAgICAgIG9sZFZp
ZGVvVHJhY2stPnN0cmVhbVRyYWNrKCkuc291cmNlKCkucmVtb3ZlVmlkZW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7Ci0gICAgICAgICAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKQorICAgICAgICAg
ICAgaWYgKG1fYWN0aXZlVmlkZW9UcmFjaykgeworICAgICAgICAgICAgICAgIGlmIChtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciAmJiBtX2FjdGl2ZVZpZGVvVHJhY2stPnN0cmVhbVRyYWNrKCku
c291cmNlKCkuaXNDYXB0dXJlU291cmNlKCkpCisgICAgICAgICAgICAgICAgICAgIG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLT5zZXRSZW5kZXJQb2xpY3koU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpSZW5kZXJQb2xpY3k6OkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgICAgICBtX2FjdGl2
ZVZpZGVvVHJhY2stPnN0cmVhbVRyYWNrKCkuc291cmNlKCkuYWRkVmlkZW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU2FtcGxlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKaW5kZXggYzlkYWZhNmM1MzRiYjQ2
OTE5YzA1ZGU5MzBlYmNjZGJiNjJlY2Y1Mi4uOTQ1YzEyNTU1NTdkNDQ2OTVjOTJjOTZmZDcxNzhk
MDRiYWRiZTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpD
LmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTYW1w
bGVBVkZPYmpDPiBjcmVhdGVJbWFnZVNhbXBsZShWZWN0b3I8dWludDhfdD4mJiwgdW5zaWduZWQg
bG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgc2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoTWVkaWFTYW1wbGUmKTsKKyAgICBz
dGF0aWMgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjbG9uZVNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZiwgYm9vbCBzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSk7CiAKICAgICBSZWZQ
dHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gZ2V0UkdCQUltYWdlRGF0YSgpIGNvbnN0IG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5k
ZXggMTIwMWZlMWRjMTEwYTQzNjdiM2UwZDExY2FiYzVkY2NiYTAwNTRiNi4uZGZkMWEzODQ0MTFm
Mzc4ZTVjNDYyMmJjYmY4MWM1MjU4YTYwODg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMzExLDE1ICszMTEsMjAgQEAgUmVmUHRyPEpTQzo6
VWludDhDbGFtcGVkQXJyYXk+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Z2V0UkdCQUltYWdlRGF0YSgp
IGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBNZWRpYVNhbXBsZUFWRk9iakM6
OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxlJiBzYW1wbGUpCitzdGF0aWMgaW5s
aW5lIHZvaWQgc2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlQnVmZmVyKQogewotICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHNBcnJheSA9
IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUucGxhdGZvcm1T
YW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIsIHRydWUpOworICAgIENGQXJyYXlSZWYgYXR0
YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShz
YW1wbGVCdWZmZXIsIHRydWUpOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlH
ZXRDb3VudChhdHRhY2htZW50c0FycmF5KTsgKytpKSB7CiAgICAgICAgIENGTXV0YWJsZURpY3Rp
b25hcnlSZWYgYXR0YWNobWVudHMgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZNdXRhYmxlRGljdGlvbmFy
eVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7CiAgICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOwogICAgIH0KIH0KIAordm9p
ZCBNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5KE1lZGlhU2FtcGxl
JiBzYW1wbGUpCit7CisgICAgc2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkoc2Ft
cGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKK30KKwogYm9vbCBN
ZWRpYVNhbXBsZUFWRk9iakM6OmlzSG9tb2dlbmVvdXMoKSBjb25zdAogewogICAgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHNBcnJheSA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNB
cnJheShtX3NhbXBsZS5nZXQoKSwgdHJ1ZSk7CkBAIC0zOTAsNCArMzk1LDM4IEBAIFZlY3RvcjxS
ZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpkaXZpZGVJbnRvSG9t
b2dlbmVvdXNTYW1wbGVzCiAgICAgcmV0dXJuIHNhbXBsZXM7CiB9CiAKK1JldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gTWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGJvb2wgc2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkpCit7Cisg
ICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWSW1hZ2VCdWZmZXJSZWY+KFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUpKTsKKyAgICBpZiAoIXBpeGVsQnVm
ZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBpZiAoc3RhdHVz
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNSXRlbUNvdW50IGl0ZW1Db3VudCA9
IDA7CisgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZvQXJyYXko
c2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAgICBpZiAoc3RhdHVzKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWlu
Z0luZm9BcnJheTsKKyAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOworICAgIHN0
YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBsZSwgaXRl
bUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKKyAgICBpZiAoc3RhdHVz
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIG5ld1Nh
bXBsZUJ1ZmZlcjsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aElt
YWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXREZXNjcmlw
dGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7CisgICAgQ0ZS
ZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBpZiAoc3RhdHVzKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIGlmIChzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseSkKKyAgICAgICAg
c2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkobmV3U2FtcGxlQnVmZmVyKTsKKwor
ICAgIHJldHVybiBhZG9wdENGKG5ld1NhbXBsZUJ1ZmZlcik7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400249</attachid>
            <date>2020-05-26 08:26:16 -0700</date>
            <delta_ts>2020-05-27 01:02:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194802-20200526172615.patch</filename>
            <type>text/plain</type>
            <size>11869</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYyM2JmMGIyM2NhZDE4
YzcxNWQyOWJlMzI3MTBiZDU3ZmFlYjdiMS4uZDZmNWRmYmEzNmQwZWViNjY0Y2I1N2Q0NjFmZTI5
ZjUwMTVhMGRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA1LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBmcmVlemVzIHdo
ZW4gYXR0YWNoaW5nIGEgbG9jYWwgTWVkaWFTdHJlYW0gdG8gbXVsdGlwbGUgZWxlbWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDgwMgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDkyNzQwODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgc29tZXRp
bWVzIGRvZXMgbm90IHVwZGF0ZSB0aGUgcmVuZGVyaW5nIHdoZW4gdGhlIHNhbWUgbG9jYWwgc291
cmNlIGlzIHJlbmRlcmVkIHNldmVyYWwgdGltZXMuCisgICAgICAgIFRvIHdvcmthcm91bmQgdGhp
cywgd2Ugc2V0IGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5IHRvIHRy
dWUsIHdoaWNoIGZpeGVzIHRoZSBpc3N1ZSBhcyBwZXIgbXkgdGVzdGluZy4KKyAgICAgICAgV2Ug
Y2xvbmUgdGhlIHNhbXBsZSBidWZmZXIgYmVmb3JlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBhcyBp
dCBtaWdodCBub3QgYmUgdGhyZWFkIHNhZmUgdG8gbW9kaWZ5IHRoZSBhdHRhY2htZW50cyBvZiBh
IHNhbXBsZQorICAgICAgICB0aGF0IG1pZ2h0IGFsc28gYmUgZW5jb2RlZC4KKyAgICAgICAgV2Ug
aW1wbGVtZW50IHRoaXMgYXQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgbGV2ZWwgYW5k
IGVuYWJsZSB0aGlzIGZvciBsb2NhbCBjYXB0dXJlIHNvdXJjZXMgb25seS4KKworICAgICAgICBN
YW51YWxseSB0ZXN0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OnNldFJlbmRlclBvbGljeSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzZXRS
ZW5kZXJQb2xpY3kpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnJlbW92ZU9sZFNhbXBsZXNG
cm9tUGVuZGluZ1F1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuc3VyZUxh
eWVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OmNoZWNrU2VsZWN0ZWRWaWRlb1RyYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpzZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVk
aWF0ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1w
bGVCdWZmZXIpOgorCiAyMDIwLTA1LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLNF0gVXNlIHNjcmVlbiBmb250IG9wdGlvbnMgYXMg
ZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmlu
ZGV4IDliN2Q4MGI5MzVlMmZmMTVlYzVlYmQ2ZjRmZmI3YjhmM2E5M2IzYmQuLmQzNDQ5NDFlNDQ5
N2E2ZjI0MDQzMmM3ZWIzNzkxYzc4Y2UzZDI3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIoKSA9IDA7CiAKKyAgICBlbnVtIGNsYXNz
IFJlbmRlclBvbGljeSB7IFRpbWluZ0luZm8sIEltbWVkaWF0ZWx5IH07CisgICAgdmlydHVhbCB2
b2lkIHNldFJlbmRlclBvbGljeShSZW5kZXJQb2xpY3kpIHsgfTsKKwogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihDbGllbnQmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgK
aW5kZXggYmUwOTczNGY2ZGRmY2RkZTUwMGJlODFhMjBlY2E1MDAwZDM3ZDM0MS4uOWM5ZGNhMmE1
YzFkYzg0NWE4Mzg3YTc1NmYwNTdkZDYzNGE4MWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC03Miw2ICs3
Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBsZSYpIGZp
bmFsOwogICAgIHZvaWQgY2xlYXJFbnF1ZXVlZFNhbXBsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNl
dFJlbmRlclBvbGljeShSZW5kZXJQb2xpY3kpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQg
cmVtb3ZlT2xkU2FtcGxlc0Zyb21QZW5kaW5nUXVldWUoKTsKQEAgLTgyLDExICs4MywxNyBAQCBw
cml2YXRlOgogICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3Rl
bmVyPiBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyOwogICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CiAgICAgUmV0YWluUHRy
PFBsYXRmb3JtTGF5ZXI+IG1fcm9vdExheWVyOworICAgIFJlbmRlclBvbGljeSBtX3JlbmRlclBv
bGljeSB7IFJlbmRlclBvbGljeTo6VGltaW5nSW5mbyB9OwogCiAgICAgdXNpbmcgUGVuZGluZ1Nh
bXBsZVF1ZXVlID0gRGVxdWU8UmVmPE1lZGlhU2FtcGxlPj47CiAgICAgUGVuZGluZ1NhbXBsZVF1
ZXVlIG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWU7CiB9OwogCitpbmxpbmUgdm9pZCBMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0UmVuZGVyUG9saWN5KFJlbmRlclBvbGljeSByZW5k
ZXJQb2xpY3kpCit7CisgICAgbV9yZW5kZXJQb2xpY3kgPSByZW5kZXJQb2xpY3k7Cit9CisKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLm1tCmluZGV4IDUwYTAzZmE0MjMzZjgxODVlZjdkZGJjZmFkNzg3ZDZiNjNjNTgzMzYu
LjJmZGIyNGMwMGNhYjVlNjhhMTg4ZDcyZDYwMzMwYWZkNjA2N2Q0YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1t
CkBAIC0zMCw3ICszMCw4IEBACiAKICNpbXBvcnQgIkNvbG9yLmgiCiAjaW1wb3J0ICJJbnRTaXpl
LmgiCi0jaW1wb3J0ICJNZWRpYVNhbXBsZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9y
dCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+CkBA
IC0yOTUsNyArMjk2LDE2IEBAIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVu
cXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVyOnNh
bXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcl07CisgICAgYXV0byBz
YW1wbGVUb0VucXVldWUgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVC
dWZmZXI7CisgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBuZXdTYW1wbGVCdWZmZXI7
CisgICAgaWYgKG1fcmVuZGVyUG9saWN5ID09IFJlbmRlclBvbGljeTo6SW1tZWRpYXRlbHkpIHsK
KyAgICAgICAgbmV3U2FtcGxlQnVmZmVyID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjbG9uZVNhbXBs
ZUJ1ZmZlckFuZFNldEFzRGlzcGxheUltbWVkaWF0ZWx5KHNhbXBsZVRvRW5xdWV1ZSk7CisgICAg
ICAgIHNhbXBsZVRvRW5xdWV1ZSA9IG5ld1NhbXBsZUJ1ZmZlci5nZXQoKTsKKyAgICB9CisKKyAg
ICAvLyBJZiBuZWVkZWQsIHdlIHNldCB0aGUgc2FtcGxlIGJ1ZmZlciB0byBrQ01TYW1wbGVBdHRh
Y2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSBhcyBhIHdvcmthcm91bmQgdG8gcmRhcjovL3By
b2JsZW0vNDkyNzQwODMuCisgICAgLy8gV2UgY2xvbmUgdGhlIHNhbXBsZSBidWZmZXIgYXMgbW9k
aWZ5aW5nIHRoZSBhdHRhY2htZW50cyBvZiBhIHNhbXBsZSBidWZmZXIgdXNlZCBlbHNld2hlcmUg
KGVuY29kaW5nIGUuZy4pIG1heSBub3QgYmUgdGhyZWFkIHNhZmUuCisgICAgW21fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIGVucXVldWVTYW1wbGVCdWZmZXI6c2FtcGxlVG9FbnF1ZXVlXTsKIH0K
IAogdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cmVtb3ZlT2xkU2FtcGxlc0Zy
b21QZW5kaW5nUXVldWUoKQpAQCAtMzAzLDYgKzMxMywxMSBAQCB2b2lkIExvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpyZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRpbmdRdWV1ZSgpCiAgICAg
aWYgKG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuaXNFbXB0eSgpIHx8ICFtX2NsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fcmVuZGVyUG9saWN5ID09IFJlbmRlclBvbGljeTo6
SW1tZWRpYXRlbHkpIHsKKyAgICAgICAgbV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5jbGVhcigp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYXV0byBkZWNvZGVUaW1lID0gbV9wZW5k
aW5nVmlkZW9TYW1wbGVRdWV1ZS5maXJzdCgpLT5kZWNvZGVUaW1lKCk7CiAgICAgaWYgKCFkZWNv
ZGVUaW1lLmlzVmFsaWQoKSB8fCBkZWNvZGVUaW1lIDwgTWVkaWFUaW1lOjp6ZXJvVGltZSgpKSB7
CiAgICAgICAgIHdoaWxlIChtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLnNpemUoKSA+IDUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggOTAxNzRjOWZiODBhODAyNDYzMjAwOGU2MThj
ZjNhMGJkOWRkMjg5Mi4uZjg0Y2I0YWY1Y2JmMGVjYmM4YjFkMmUwNmQwZThmM2JiNjQ3Njg5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzc5LDYgKzM3OSw5IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgIGlm
ICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlm
IChhY3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS5pc0NhcHR1cmVTb3VyY2UoKSkKKyAgICAgICAg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnNldFJlbmRlclBvbGljeShTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OlJlbmRlclBvbGljeTo6SW1tZWRpYXRlbHkpOworCiAgICAgYXV0byBzaXpl
ID0gc25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUo
KTsKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+aW5pdGlhbGl6ZShoaWRlUm9vdExh
eWVyKCksIHNpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzaXplXShh
dXRvIGRpZFN1Y2NlZWQpIHsKICAgICAgICAgaWYgKCFkaWRTdWNjZWVkKSB7CkBAIC04NjcsOCAr
ODcwLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjaGVj
a1NlbGVjdGVkVmlkZW9UcmFjaygpCiAgICAgICAgIGlmIChvbGRWaWRlb1RyYWNrICE9IG1fYWN0
aXZlVmlkZW9UcmFjaykgewogICAgICAgICAgICAgaWYgKG9sZFZpZGVvVHJhY2spCiAgICAgICAg
ICAgICAgICAgb2xkVmlkZW9UcmFjay0+c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5yZW1vdmVWaWRl
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAgICAgIGlmIChtX2FjdGl2ZVZpZGVvVHJh
Y2spCisgICAgICAgICAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICYmIG1fYWN0aXZlVmlkZW9UcmFjay0+
c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5pc0NhcHR1cmVTb3VyY2UoKSkKKyAgICAgICAgICAgICAg
ICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnNldFJlbmRlclBvbGljeShTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OlJlbmRlclBvbGljeTo6SW1tZWRpYXRlbHkpOwogICAgICAgICAg
ICAgICAgIG1fYWN0aXZlVmlkZW9UcmFjay0+c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5hZGRWaWRl
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAppbmRleCBj
OWRhZmE2YzUzNGJiNDY5MTljMDVkZTkzMGViY2NkYmI2MmVjZjUyLi44OTEzNGM1MmM4ODY1NjJh
MmQyM2U3Y2VjNmIwZmYzNWU4MjEzY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVNhbXBsZUFWRk9iakMuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFZlY3Rvcjx1aW50OF90
PiYmLCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNh
bXBsZSYpOworICAgIHN0YXRpYyBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNsb25lU2Ft
cGxlQnVmZmVyQW5kU2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYpOwog
CiAgICAgUmVmUHRyPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+IGdldFJHQkFJbWFnZURhdGEoKSBj
b25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZP
YmpDLm1tCmluZGV4IDEyMDFmZTFkYzExMGE0MzY3YjNlMGQxMWNhYmM1ZGNjYmEwMDU0YjYuLjI1
OTE5YzJhZjMxMmMzN2VjMjNlYmQ2NzE3MWEzZjllNzgyOTNlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KQEAgLTMxMSwxNSArMzExLDIwIEBAIFJl
ZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6OmdldFJHQkFJ
bWFnZURhdGEoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQor
c3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
LnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFy
cmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1l
bnRzQXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkg
PCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7ICsraSkgewogICAgICAgICBDRk11
dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJs
ZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwg
aSkpOwogICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxl
QXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9
CiB9CiAKK3ZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShN
ZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVk
aWF0ZWx5KHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Cit9
CisKIGJvb2wgTWVkaWFTYW1wbGVBVkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKICAg
ICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOwpAQCAtMzkwLDQgKzM5NSwzNyBA
QCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2
aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHJldHVybiBzYW1wbGVzOwogfQogCitSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVC
dWZmZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUp
Cit7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWSW1hZ2VCdWZmZXJSZWY+
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUpKTsKKyAgICBpZiAoIXBp
eGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0
dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBpZiAo
c3RhdHVzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNSXRlbUNvdW50IGl0ZW1D
b3VudCA9IDA7CisgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVUaW1pbmdJbmZv
QXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAgICBpZiAoc3RhdHVzKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+
IHRpbWluZ0luZm9BcnJheTsKKyAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVtQ291bnQpOwor
ICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KHNhbXBs
ZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsKKyAgICBpZiAo
c3RhdHVzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVm
IG5ld1NhbXBsZUJ1ZmZlcjsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5
V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyLCBmb3JtYXRE
ZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1ZmZlcik7Cisg
ICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBpZiAoc3RhdHVzKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0
ZWx5KG5ld1NhbXBsZUJ1ZmZlcik7CisKKyAgICByZXR1cm4gYWRvcHRDRihuZXdTYW1wbGVCdWZm
ZXIpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400314</attachid>
            <date>2020-05-27 01:02:44 -0700</date>
            <delta_ts>2020-05-27 02:38:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-194802-20200527100242.patch</filename>
            <type>text/plain</type>
            <size>11900</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYyM2JmMGIyM2NhZDE4
YzcxNWQyOWJlMzI3MTBiZDU3ZmFlYjdiMS4uMTM5MmFiNzAzOTkyZmRjNDcxYWE0YjhkNmUyNDJl
YWIxMzNjMWQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA1LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBmcmVlemVzIHdo
ZW4gYXR0YWNoaW5nIGEgbG9jYWwgTWVkaWFTdHJlYW0gdG8gbXVsdGlwbGUgZWxlbWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDgwMgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjM2MTMxMDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHNvbWV0aW1l
cyBkb2VzIG5vdCB1cGRhdGUgdGhlIHJlbmRlcmluZyB3aGVuIHRoZSBzYW1lIGxvY2FsIHNvdXJj
ZSBpcyByZW5kZXJlZCBzZXZlcmFsIHRpbWVzLgorICAgICAgICBUbyB3b3JrYXJvdW5kIHRoaXMs
IHdlIHNldCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSB0byB0cnVl
LCB3aGljaCBmaXhlcyB0aGUgaXNzdWUgYXMgcGVyIG15IHRlc3RpbmcuCisgICAgICAgIFdlIGNs
b25lIHRoZSBzYW1wbGUgYnVmZmVyIGJlZm9yZSBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYXMgaXQg
bWlnaHQgbm90IGJlIHRocmVhZCBzYWZlIHRvIG1vZGlmeSB0aGUgYXR0YWNobWVudHMgb2YgYSBz
YW1wbGUKKyAgICAgICAgdGhhdCBtaWdodCBhbHNvIGJlIGVuY29kZWQuCisgICAgICAgIFdlIGlt
cGxlbWVudCB0aGlzIGF0IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGxldmVsIGFuZCBl
bmFibGUgdGhpcyBmb3IgbG9jYWwgY2FwdHVyZSBzb3VyY2VzIG9ubHkuCisKKyAgICAgICAgTWFu
dWFsbHkgdGVzdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpzZXRSZW5kZXJQb2xpY3kpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0UmVu
ZGVyUG9saWN5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpyZW1vdmVPbGRTYW1wbGVzRnJv
bVBlbmRpbmdRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXll
cnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpjaGVja1NlbGVjdGVkVmlkZW9UcmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0U2FtcGxlQnVmZmVyQXNEaXNwbGF5SW1tZWRpYXRlbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlh
dGVseSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmNsb25lU2FtcGxl
QnVmZmVyKToKKwogMjAyMC0wNS0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIFVzZSBzY3JlZW4gZm9udCBvcHRpb25zIGFzIGRl
ZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAppbmRl
eCA5YjdkODBiOTM1ZTJmZjE1ZWM1ZWJkNmY0ZmZiN2I4ZjNhOTNiM2JkLi5kMzQ0OTQxZTQ0OTdh
NmYyNDA0MzJjN2ViMzc5MWM3OGNlM2QyNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC02OSw2ICs2OSw5IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgUGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgPSAwOwogCisgICAgZW51bSBjbGFzcyBS
ZW5kZXJQb2xpY3kgeyBUaW1pbmdJbmZvLCBJbW1lZGlhdGVseSB9OworICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZW5kZXJQb2xpY3koUmVuZGVyUG9saWN5KSB7IH07CisKIHByb3RlY3RlZDoKICAgICBl
eHBsaWNpdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmlu
ZGV4IGJlMDk3MzRmNmRkZmNkZGU1MDBiZTgxYTIwZWNhNTAwMGQzN2QzNDEuLjljOWRjYTJhNWMx
ZGM4NDVhODM4N2E3NTZmMDU3ZGQ2MzRhODFlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtNzIsNiArNzIs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmKSBmaW5h
bDsKICAgICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CisgICAgdm9pZCBzZXRS
ZW5kZXJQb2xpY3koUmVuZGVyUG9saWN5KSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lkIHJl
bW92ZU9sZFNhbXBsZXNGcm9tUGVuZGluZ1F1ZXVlKCk7CkBAIC04MiwxMSArODMsMTcgQEAgcHJp
dmF0ZToKICAgICBSZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5l
cj4gbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOwogICAgIFJldGFpblB0cjxQ
bGF0Zm9ybUxheWVyPiBtX3Jvb3RMYXllcjsKKyAgICBSZW5kZXJQb2xpY3kgbV9yZW5kZXJQb2xp
Y3kgeyBSZW5kZXJQb2xpY3k6OlRpbWluZ0luZm8gfTsKIAogICAgIHVzaW5nIFBlbmRpbmdTYW1w
bGVRdWV1ZSA9IERlcXVlPFJlZjxNZWRpYVNhbXBsZT4+OwogICAgIFBlbmRpbmdTYW1wbGVRdWV1
ZSBtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlOwogfTsKIAoraW5saW5lIHZvaWQgTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldFJlbmRlclBvbGljeShSZW5kZXJQb2xpY3kgcmVuZGVy
UG9saWN5KQoreworICAgIG1fcmVuZGVyUG9saWN5ID0gcmVuZGVyUG9saWN5OworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5tbQppbmRleCA1MGEwM2ZhNDIzM2Y4MTg1ZWY3ZGRiY2ZhZDc4N2Q2YjYzYzU4MzM2Li4z
NGZiOTM4YzNkZmIxZWQ0ZWUyZjQ4N2U2M2M2YzJjM2UwZjQ5NWUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQpA
QCAtMzAsNyArMzAsOCBAQAogCiAjaW1wb3J0ICJDb2xvci5oIgogI2ltcG9ydCAiSW50U2l6ZS5o
IgotI2ltcG9ydCAiTWVkaWFTYW1wbGUuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQg
Ik1lZGlhU2FtcGxlQVZGT2JqQy5oIgogCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FMYXllci5oPgpAQCAt
Mjk1LDcgKzI5NiwxNyBAQCB2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1
ZXVlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBbbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpzYW1w
bGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOworICAgIGF1dG8gc2Ft
cGxlVG9FbnF1ZXVlID0gc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVm
ZmVyOworICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbmV3U2FtcGxlQnVmZmVyOwor
CisgICAgLy8gSWYgbmVlZGVkLCB3ZSBzZXQgdGhlIHNhbXBsZSBidWZmZXIgdG8ga0NNU2FtcGxl
QXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHkgYXMgYSB3b3JrYXJvdW5kIHRvIHJkYXI6
Ly9wcm9ibGVtLzQ5Mjc0MDgzLgorICAgIC8vIFdlIGNsb25lIHRoZSBzYW1wbGUgYnVmZmVyIGFz
IG1vZGlmeWluZyB0aGUgYXR0YWNobWVudHMgb2YgYSBzYW1wbGUgYnVmZmVyIHVzZWQgZWxzZXdo
ZXJlIChlbmNvZGluZyBlLmcuKSBtYXkgbm90IGJlIHRocmVhZCBzYWZlLgorICAgIGlmIChtX3Jl
bmRlclBvbGljeSA9PSBSZW5kZXJQb2xpY3k6OkltbWVkaWF0ZWx5KSB7CisgICAgICAgIG5ld1Nh
bXBsZUJ1ZmZlciA9IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVCdWZmZXJBbmRTZXRB
c0Rpc3BsYXlJbW1lZGlhdGVseShzYW1wbGVUb0VucXVldWUpOworICAgICAgICBzYW1wbGVUb0Vu
cXVldWUgPSBuZXdTYW1wbGVCdWZmZXIuZ2V0KCk7CisgICAgfQorCisgICAgW21fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIGVucXVldWVTYW1wbGVCdWZmZXI6c2FtcGxlVG9FbnF1ZXVlXTsKIH0K
IAogdm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cmVtb3ZlT2xkU2FtcGxlc0Zy
b21QZW5kaW5nUXVldWUoKQpAQCAtMzAzLDYgKzMxNCwxMSBAQCB2b2lkIExvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpyZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRpbmdRdWV1ZSgpCiAgICAg
aWYgKG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuaXNFbXB0eSgpIHx8ICFtX2NsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fcmVuZGVyUG9saWN5ID09IFJlbmRlclBvbGljeTo6
SW1tZWRpYXRlbHkpIHsKKyAgICAgICAgbV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5jbGVhcigp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgYXV0byBkZWNvZGVUaW1lID0gbV9wZW5k
aW5nVmlkZW9TYW1wbGVRdWV1ZS5maXJzdCgpLT5kZWNvZGVUaW1lKCk7CiAgICAgaWYgKCFkZWNv
ZGVUaW1lLmlzVmFsaWQoKSB8fCBkZWNvZGVUaW1lIDwgTWVkaWFUaW1lOjp6ZXJvVGltZSgpKSB7
CiAgICAgICAgIHdoaWxlIChtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLnNpemUoKSA+IDUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggOTAxNzRjOWZiODBhODAyNDYzMjAwOGU2MThj
ZjNhMGJkOWRkMjg5Mi4uZjg0Y2I0YWY1Y2JmMGVjYmM4YjFkMmUwNmQwZThmM2JiNjQ3Njg5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzc5LDYgKzM3OSw5IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgIGlm
ICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlm
IChhY3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS5pc0NhcHR1cmVTb3VyY2UoKSkKKyAgICAgICAg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnNldFJlbmRlclBvbGljeShTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OlJlbmRlclBvbGljeTo6SW1tZWRpYXRlbHkpOworCiAgICAgYXV0byBzaXpl
ID0gc25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUo
KTsKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+aW5pdGlhbGl6ZShoaWRlUm9vdExh
eWVyKCksIHNpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzaXplXShh
dXRvIGRpZFN1Y2NlZWQpIHsKICAgICAgICAgaWYgKCFkaWRTdWNjZWVkKSB7CkBAIC04NjcsOCAr
ODcwLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjaGVj
a1NlbGVjdGVkVmlkZW9UcmFjaygpCiAgICAgICAgIGlmIChvbGRWaWRlb1RyYWNrICE9IG1fYWN0
aXZlVmlkZW9UcmFjaykgewogICAgICAgICAgICAgaWYgKG9sZFZpZGVvVHJhY2spCiAgICAgICAg
ICAgICAgICAgb2xkVmlkZW9UcmFjay0+c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5yZW1vdmVWaWRl
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAgICAgIGlmIChtX2FjdGl2ZVZpZGVvVHJh
Y2spCisgICAgICAgICAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICYmIG1fYWN0aXZlVmlkZW9UcmFjay0+
c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5pc0NhcHR1cmVTb3VyY2UoKSkKKyAgICAgICAgICAgICAg
ICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnNldFJlbmRlclBvbGljeShTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OlJlbmRlclBvbGljeTo6SW1tZWRpYXRlbHkpOwogICAgICAgICAg
ICAgICAgIG1fYWN0aXZlVmlkZW9UcmFjay0+c3RyZWFtVHJhY2soKS5zb3VyY2UoKS5hZGRWaWRl
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAppbmRleCBj
OWRhZmE2YzUzNGJiNDY5MTljMDVkZTkzMGViY2NkYmI2MmVjZjUyLi44OTEzNGM1MmM4ODY1NjJh
MmQyM2U3Y2VjNmIwZmYzNWU4MjEzY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVNhbXBsZUFWRk9iakMuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZlB0cjxNZWRpYVNhbXBsZUFWRk9iakM+IGNyZWF0ZUltYWdlU2FtcGxlKFZlY3Rvcjx1aW50OF90
PiYmLCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNh
bXBsZSYpOworICAgIHN0YXRpYyBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNsb25lU2Ft
cGxlQnVmZmVyQW5kU2V0QXNEaXNwbGF5SW1tZWRpYXRlbHkoQ01TYW1wbGVCdWZmZXJSZWYpOwog
CiAgICAgUmVmUHRyPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+IGdldFJHQkFJbWFnZURhdGEoKSBj
b25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZP
YmpDLm1tCmluZGV4IDEyMDFmZTFkYzExMGE0MzY3YjNlMGQxMWNhYmM1ZGNjYmEwMDU0YjYuLjJk
YTI2NzZmOGQwZWFhMWZkOWI1YWVhNjI3ODQ2ZWI4MmIyYTgyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KQEAgLTMxMSwxNSArMzExLDIwIEBAIFJl
ZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBNZWRpYVNhbXBsZUFWRk9iakM6OmdldFJHQkFJ
bWFnZURhdGEoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgTWVkaWFTYW1w
bGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShNZWRpYVNhbXBsZSYgc2FtcGxlKQor
c3RhdGljIGlubGluZSB2b2lkIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVkaWF0ZWx5KENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsKLSAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxl
LnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyLCB0cnVlKTsKKyAgICBDRkFy
cmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1l
bnRzQXJyYXkoc2FtcGxlQnVmZmVyLCB0cnVlKTsKICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkg
PCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHNBcnJheSk7ICsraSkgewogICAgICAgICBDRk11
dGFibGVEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnRzID0gY2hlY2tlZF9jZl9jYXN0PENGTXV0YWJs
ZURpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwg
aSkpOwogICAgICAgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShhdHRhY2htZW50cywga0NNU2FtcGxl
QXR0YWNobWVudEtleV9EaXNwbGF5SW1tZWRpYXRlbHksIGtDRkJvb2xlYW5UcnVlKTsKICAgICB9
CiB9CiAKK3ZvaWQgTWVkaWFTYW1wbGVBVkZPYmpDOjpzZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShN
ZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIHNldFNhbXBsZUJ1ZmZlckFzRGlzcGxheUltbWVk
aWF0ZWx5KHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Cit9
CisKIGJvb2wgTWVkaWFTYW1wbGVBVkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKIHsKICAg
ICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0
dGFjaG1lbnRzQXJyYXkobV9zYW1wbGUuZ2V0KCksIHRydWUpOwpAQCAtMzkwLDQgKzM5NSwzNyBA
QCBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IE1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2
aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcwogICAgIHJldHVybiBzYW1wbGVzOwogfQogCitSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y2xvbmVTYW1wbGVC
dWZmZXJBbmRTZXRBc0Rpc3BsYXlJbW1lZGlhdGVseShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUp
Cit7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWSW1hZ2VCdWZmZXJSZWY+
KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUpKTsKKyAgICBpZiAoIXBp
eGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0
dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBpZiAo
c3RhdHVzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIHJldGFpbmVkRm9ybWF0
RGVzY3JpcHRpb24gPSBhZG9wdENGKGZvcm1hdERlc2NyaXB0aW9uKTsKKworICAgIENNSXRlbUNv
dW50IGl0ZW1Db3VudCA9IDA7CisgICAgc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVU
aW1pbmdJbmZvQXJyYXkoc2FtcGxlLCAwLCBudWxscHRyLCAmaXRlbUNvdW50KTsKKyAgICBpZiAo
c3RhdHVzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFZlY3RvcjxDTVNhbXBsZVRp
bWluZ0luZm8+IHRpbWluZ0luZm9BcnJheTsKKyAgICB0aW1pbmdJbmZvQXJyYXkuZ3JvdyhpdGVt
Q291bnQpOworICAgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0Fy
cmF5KHNhbXBsZSwgaXRlbUNvdW50LCB0aW1pbmdJbmZvQXJyYXkuZGF0YSgpLCBudWxscHRyKTsK
KyAgICBpZiAoc3RhdHVzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxl
QnVmZmVyUmVmIG5ld1NhbXBsZUJ1ZmZlcjsKKyAgICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNy
ZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVy
LCBmb3JtYXREZXNjcmlwdGlvbiwgdGltaW5nSW5mb0FycmF5LmRhdGEoKSwgJm5ld1NhbXBsZUJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBz
ZXRTYW1wbGVCdWZmZXJBc0Rpc3BsYXlJbW1lZGlhdGVseShuZXdTYW1wbGVCdWZmZXIpOworCisg
ICAgcmV0dXJuIGFkb3B0Q0YobmV3U2FtcGxlQnVmZmVyKTsKK30KKwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>