<?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>233495</bug_id>
          
          <creation_ts>2021-11-25 06:51:32 -0800</creation_ts>
          <short_desc>[MSE][WPE] Parameterize maximum buffer size using the MSE_MAX_BUFFER_SIZE env var</short_desc>
          <delta_ts>2021-12-01 02:57:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrique Ocaña">eocanha</reporter>
          <assigned_to name="Enrique Ocaña">eocanha</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817805</commentid>
    <comment_count>0</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-11-25 06:51:32 -0800</bug_when>
    <thetext>The current MSE policy of SourceBuffers taking all the available system memory until the MemoryPressureHandler complains may work fine for a typical desktop system, when caching is preferred over memory footprint. However, memory is scarce on embedded systems and WebKit may compete with other software for memory resources. In that scenario, the embedder may prefer to restrict the amount of memory available for each kind of SourceBuffer (audio, video, text).

Metrological has been successfully using an environment variable for that purpose downstream since 2016. If that implementation is upstreamed, other WPE users can benefit from it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817989</commentid>
    <comment_count>1</comment_count>
      <attachid>445206</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-11-26 11:48:56 -0800</bug_when>
    <thetext>Created attachment 445206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818665</commentid>
    <comment_count>2</comment_count>
      <attachid>445206</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-11-30 02:46:51 -0800</bug_when>
    <thetext>Comment on attachment 445206
Patch

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

I think we should move this logic to a virtual method, maybe in SourceBufferPrivate.

&gt; Source/WebCore/html/MediaElementSession.cpp:946
&gt; +    String s(getenv(&quot;MSE_MAX_BUFFER_SIZE&quot;));

std::</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818700</commentid>
    <comment_count>3</comment_count>
      <attachid>445411</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-11-30 06:20:37 -0800</bug_when>
    <thetext>Created attachment 445411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818702</commentid>
    <comment_count>4</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-11-30 06:32:14 -0800</bug_when>
    <thetext>I discussed with Alicia the best place to have the logic and we realized that  MediaSessionManagerGLib might also be a good place for the platform logic. SourceBuffer asks HTMLMediaElement, which asks MediaElementSession, a subclass of PlatformMediaSession, which can talk to PlatformMediaSessionManager, which is subclassed by MediaSessionManagerGLib. 

However, all this Session stuff is related to attributes that can change and be set at runtime, while this platformMaximumBufferSize() is something more static, related to the platform. That&apos;s why I still think that SourceBufferPrivate should be its proper place to be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819151</commentid>
    <comment_count>5</comment_count>
      <attachid>445411</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-12-01 01:08:44 -0800</bug_when>
    <thetext>Comment on attachment 445411
Patch

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

&gt; Source/WebCore/ChangeLog:24
&gt; +        * platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp: Read the MSE_MAX_BUFFER_SIZE environment variable and compute the maximum buffer size if the size is specified in the variable for all the track types present in the SourceBufferPrivate. Otherwise, use the default size.

This line is too long.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:285
&gt; +static void maximumBufferSizeDefaults(size_t&amp; maxBufferSizeVideo, size_t&amp; maxBufferSizeAudio, size_t&amp; maxBufferSizeText)

If this function is going to operate on statics, I don&apos;t think you need the parameters, just use the statics.

Besides, I think considering this function is only called inside de std::once call, you could just inline the code there. You would even save a #ifdef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819157</commentid>
    <comment_count>6</comment_count>
      <attachid>445543</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2021-12-01 02:18:48 -0800</bug_when>
    <thetext>Created attachment 445543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819162</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-01 02:56:29 -0800</bug_when>
    <thetext>Committed r286358 (244717@main): &lt;https://commits.webkit.org/244717@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445543.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819163</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-01 02:57:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/85914688&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445206</attachid>
            <date>2021-11-26 11:48:56 -0800</date>
            <delta_ts>2021-11-30 06:20:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233495-20211126204855.patch</filename>
            <type>text/plain</type>
            <size>8262</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk2MDkwOTlhN2Q4NDVm
YmVmYzljYTEwZGE5YTgzZTAyMGE2YzE3ZS4uY2RjZmY3NTlmMjM5YjY1ZDc2YjkzZjcwNjg1MmIz
N2UxMjljMDI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTExLTI2ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW01T
RV1bV1BFXSBQYXJhbWV0ZXJpemUgbWF4aW11bSBidWZmZXIgc2l6ZSB1c2luZyB0aGUgTVNFX01B
WF9CVUZGRVJfU0laRSBlbnYgdmFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgY3VycmVudCBNU0UgcG9saWN5IG9mIFNvdXJjZUJ1ZmZlcnMgdGFr
aW5nIGFsbCB0aGUgYXZhaWxhYmxlIHN5c3RlbSBtZW1vcnkgdW50aWwgdGhlIE1lbW9yeVByZXNz
dXJlSGFuZGxlcgorICAgICAgICBjb21wbGFpbnMgbWF5IHdvcmsgZmluZSBmb3IgYSB0eXBpY2Fs
IGRlc2t0b3Agc3lzdGVtLCB3aGVuIGNhY2hpbmcgaXMgcHJlZmVycmVkIG92ZXIgbWVtb3J5IGZv
b3RwcmludC4gSG93ZXZlciwKKyAgICAgICAgbWVtb3J5IGlzIHNjYXJjZSBvbiBlbWJlZGRlZCBz
eXN0ZW1zIGFuZCBXZWJLaXQgbWF5IGNvbXBldGUgd2l0aCBvdGhlciBzb2Z0d2FyZSBmb3IgbWVt
b3J5IHJlc291cmNlcy4gSW4gdGhhdAorICAgICAgICBzY2VuYXJpbywgdGhlIGVtYmVkZGVyIG1h
eSBwcmVmZXIgdG8gcmVzdHJpY3QgdGhlIGFtb3VudCBvZiBtZW1vcnkgYXZhaWxhYmxlIGZvciBl
YWNoIGtpbmQgb2YgU291cmNlQnVmZmVyCisgICAgICAgIChhdWRpbywgdmlkZW8sIHRleHQpLgor
CisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHRoZSBNU0VfTUFYX0JVRkZFUl9TSVpFIGVudmly
b25tZW50IHZhcmlhYmxlIGlzIGhvbm9yZWQuIEl0IGhhcyB0aGUgZm9sbG93aW5nIHN5bnRheDog
Q2FzZQorICAgICAgICBpbnNlbnNpdGl2ZSwgZnVsbCB0eXBlIChhdWRpbywgdmlkZW8sIHRleHQp
LCBjb21wYWN0IHR5cGUgKGEsIHYsIHQpLCB3aWxkY2FyZCAoKiksIHVuaXQgbXVsdGlwbGllcnMg
KE09TWIsCisgICAgICAgIEs9S2IsIDxlbXB0eT49Ynl0ZXMpLiBFeGFtcGxlczoKKworICAgICAg
ICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9J1Y6NTBNLGF1ZGlvOjEyayxUZVhUOjUwMEsnCisgICAg
ICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0nKjoxMDBNJworICAgICAgICAgIE1TRV9NQVhfQlVG
RkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEwMDAwMCcKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmNwcDogSW1wbGVtZW50ZWQgaGFzVGV4dCgpLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmg6IE5vdyBoYXNBdWRpbygpIGFuZCBo
YXNUZXh0KCkgYXJlIHB1YmxpYywganVzdCBsaWtlIGhhc1ZpZGVvKCkuCisgICAgICAgICogaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDogT24gdGhlIFdQRSBwbGF0Zm9ybSwgcmVhZCB0aGUg
TVNFX01BWF9CVUZGRVJfU0laRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQgY29tcHV0ZSB0aGUg
bWF4aW11bSBidWZmZXIgc2l6ZSBpZiB0aGUgc2l6ZSBpcyBzcGVjaWZpZWQgaW4gdGhlIHZhcmlh
YmxlIGZvciBhbGwgdGhlIHRyYWNrIHR5cGVzIHByZXNlbnQgaW4gdGhlIFNvdXJjZUJ1ZmZlci4g
T3RoZXJ3aXNlLCB1c2UgdGhlIGRlZmF1bHQgc2l6ZS4KKwogMjAyMS0xMC0xOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIE1lZGlhQ2FwYWJpbGl0
aWVzIHRvIFdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAppbmRleCBmODZkNmMxZGUzN2U3NmJmZmY5YWZjZTk2MmYwN2Iw
ZmI5NzdkNTNlLi40M2Q1YjM5Y2VmNGEwZDNjY2E1MDFkNGEyMTE0YTAyMDk0NDZhOTUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCkBAIC0xMDEyLDYgKzEwMTIsMTEgQEAgYm9vbCBTb3VyY2VCdWZmZXI6Omhhc1ZpZGVvKCkg
Y29uc3QKICAgICByZXR1cm4gbV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5sZW5ndGgo
KTsKIH0KIAorYm9vbCBTb3VyY2VCdWZmZXI6Omhhc1RleHQoKSBjb25zdAoreworICAgIHJldHVy
biBtX3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5sZW5ndGgoKTsKK30KKwogdm9pZCBTb3Vy
Y2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYgdHJhY2spCiB7
CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApp
bmRleCAyODA5OTI1ZjVkMjFmM2UzZjM0NzdhMWU0NTI0Mzg1MDc4NWQ0ZmFkLi5lOTUzNGVhOGNi
YTg1ZmM4ODBjZmU3YWVmMGQwMDlhZmY0M2RhYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTEwNiw3ICsxMDYsOSBAQCBw
dWJsaWM6CiAKICAgICBib29sIGNhblBsYXlUaHJvdWdoUmFuZ2UoUGxhdGZvcm1UaW1lUmFuZ2Vz
Jik7CiAKKyAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNWaWRlbygpIGNv
bnN0OworICAgIGJvb2wgaGFzVGV4dCgpIGNvbnN0OwogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25z
dCB7IHJldHVybiBtX2FjdGl2ZTsgfQogCkBAIC0yMDUsOCArMjA3LDYgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgYXBwZW5kRXJyb3IoYm9vbCk7CiAKLSAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Q7
Ci0KICAgICB2b2lkIHJhbmdlUmVtb3ZhbChjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRp
bWUmKTsKIAogICAgIGZyaWVuZCBjbGFzcyBJbnRlcm5hbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCBhODliODQ4ODA0ZjVmNzVjNDQ1YzBlYmU1
N2RkMmZhNjExYmRkYTQ0Li40Y2FkNzhlNGExMmYwNmEzYjI4OTAzMWFjY2M4N2JmY2NkZjA5MmI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTY5
LDYgKzY5LDEwIEBACiAjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFBMQVRGT1JN
KFdQRSkKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+Cisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBjbGll
bnREYXRhQnVmZmVyaW5nVGltZXJUaHJvdHRsZURlbGF5IHsgMTAwX21zIH07CkBAIC05MjksOCAr
OTMzLDg4IEBAIGJvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVxdWlyZXNQbGF5YmFja1Rhcmdl
dFJvdXRlTW9uaXRvcmluZygpIGNvbnN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCisKKyNpZiBQTEFURk9STShXUEUpCitzdGF0aWMgdm9pZCBtYXhpbXVtQnVmZmVyU2l6ZURl
ZmF1bHRzKHNpemVfdCYgbWF4QnVmZmVyU2l6ZVZpZGVvLCBzaXplX3QmIG1heEJ1ZmZlclNpemVB
dWRpbywgc2l6ZV90JiBtYXhCdWZmZXJTaXplVGV4dCkKK3sKKyAgICAvLyBTeW50YXg6IENhc2Ug
aW5zZW5zaXRpdmUsIGZ1bGwgdHlwZSAoYXVkaW8sIHZpZGVvLCB0ZXh0KSwgY29tcGFjdCB0eXBl
IChhLCB2LCB0KSwKKyAgICAvLyAgICAgICAgIHdpbGRjYXJkICgqKSwgdW5pdCBtdWx0aXBsaWVy
cyAoTT1NYiwgSz1LYiwgPGVtcHR5Pj1ieXRlcykuCisgICAgLy8gRXhhbXBsZXM6IE1TRV9NQVhf
QlVGRkVSX1NJWkU9J1Y6NTBNLGF1ZGlvOjEyayxUZVhUOjUwMEsnCisgICAgLy8gICAgICAgICAg
IE1TRV9NQVhfQlVGRkVSX1NJWkU9Jyo6MTAwTScKKyAgICAvLyAgICAgICAgICAgTVNFX01BWF9C
VUZGRVJfU0laRT0ndmlkZW86OTBNLFQ6MTAwMDAwJworCisgICAgU3RyaW5nIHMoZ2V0ZW52KCJN
U0VfTUFYX0JVRkZFUl9TSVpFIikpOworICAgIGlmICghcy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
VmVjdG9yPFN0cmluZz4gZW50cmllcyA9IHMuc3BsaXQoJywnKTsKKyAgICAgICAgZm9yIChjb25z
dCBTdHJpbmcmIGVudHJ5IDogZW50cmllcykgeworICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4g
a2V5dmFsdWUgPSBlbnRyeS5zcGxpdCgnOicpOworICAgICAgICAgICAgaWYgKGtleXZhbHVlLnNp
emUoKSAhPSAyKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgU3RyaW5n
IGtleSA9IGtleXZhbHVlWzBdLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdp
dGhvdXRMb2NhbGUoKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGtleXZhbHVlWzFdLnN0
cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUoKTsKKyAgICAg
ICAgICAgIHNpemVfdCB1bml0cyA9IDE7CisgICAgICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgo
J2snKSkKKyAgICAgICAgICAgICAgICB1bml0cyA9IDEwMjQ7CisgICAgICAgICAgICBlbHNlIGlm
ICh2YWx1ZS5lbmRzV2l0aCgnbScpKQorICAgICAgICAgICAgICAgIHVuaXRzID0gMTAyNCAqIDEw
MjQ7CisgICAgICAgICAgICBpZiAodW5pdHMgIT0gMSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9
IHZhbHVlLnN1YnN0cmluZygwLCB2YWx1ZS5sZW5ndGgoKS0xKTsKKyAgICAgICAgICAgIGF1dG8g
cGFyc2VkU2l6ZSA9IHBhcnNlSW50ZWdlcjxzaXplX3Q+KHZhbHVlKTsKKyAgICAgICAgICAgIGlm
ICghcGFyc2VkU2l6ZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHNp
emVfdCBzaXplID0gKnBhcnNlZFNpemU7CisKKyAgICAgICAgICAgIGlmIChrZXkgPT0gImEiIHx8
IGtleSA9PSAiYXVkaW8iIHx8IGtleSA9PSAiKiIpCisgICAgICAgICAgICAgICAgbWF4QnVmZmVy
U2l6ZUF1ZGlvID0gc2l6ZSAqIHVuaXRzOworICAgICAgICAgICAgaWYgKGtleSA9PSAidiIgfHwg
a2V5ID09ICJ2aWRlbyIgfHwga2V5ID09ICIqIikKKyAgICAgICAgICAgICAgICBtYXhCdWZmZXJT
aXplVmlkZW8gPSBzaXplICogdW5pdHM7CisgICAgICAgICAgICBpZiAoa2V5ID09ICJ0IiB8fCBr
ZXkgPT0gInRleHQiIHx8IGtleSA9PSAiKiIpCisgICAgICAgICAgICAgICAgbWF4QnVmZmVyU2l6
ZVRleHQgPSBzaXplICogdW5pdHM7CisgICAgICAgIH0KKyAgICB9Cit9CisjZW5kaWYgLy8gUExB
VEZPUk0oV1BFKQorCiBzaXplX3QgTWVkaWFFbGVtZW50U2Vzc2lvbjo6bWF4aW11bU1lZGlhU291
cmNlQnVmZmVyU2l6ZShjb25zdCBTb3VyY2VCdWZmZXImIGJ1ZmZlcikgY29uc3QKIHsKKyAgICBz
aXplX3QgYnVmZmVyU2l6ZSA9IDA7CisKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RhdGljIHNp
emVfdCBtYXhCdWZmZXJTaXplVmlkZW8gPSAwOworICAgIHN0YXRpYyBzaXplX3QgbWF4QnVmZmVy
U2l6ZUF1ZGlvID0gMDsKKyAgICBzdGF0aWMgc2l6ZV90IG1heEJ1ZmZlclNpemVUZXh0ID0gMDsK
KworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2UsIFtdKCkgeworICAgICAgICBtYXhpbXVtQnVmZmVyU2l6ZURlZmF1bHRzKG1heEJ1ZmZlclNp
emVWaWRlbywgbWF4QnVmZmVyU2l6ZUF1ZGlvLCBtYXhCdWZmZXJTaXplVGV4dCk7CisgICAgfSk7
CisKKyAgICAvLyBJZiBhbnkgdHJhY2sgdHlwZSBzaXplIGlzbid0IHNwZWNpZmllZCwgd2UgY29u
c2lkZXIgdGhhdCBpdCBoYXMgbm8gbGltaXQgYW5kIHRoZSB2YWx1ZXMgZnJvbSB0aGUKKyAgICAv
LyBlbGVtZW50IGhhdmUgdG8gYmUgdXNlZC4gT3RoZXJ3aXNlLCB0aGUgdHJhY2sgbGltaXRzIGFy
ZSBhY2N1bXVsYXRpdmUuCisgICAgZG8geworICAgICAgICBpZiAoYnVmZmVyLmhhc1ZpZGVvKCkp
IHsKKyAgICAgICAgICAgIGlmIChtYXhCdWZmZXJTaXplVmlkZW8pCisgICAgICAgICAgICAgICAg
YnVmZmVyU2l6ZSArPSBtYXhCdWZmZXJTaXplVmlkZW87CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZmZlci5oYXNBdWRp
bygpKSB7CisgICAgICAgICAgICBpZiAobWF4QnVmZmVyU2l6ZUF1ZGlvKQorICAgICAgICAgICAg
ICAgIGJ1ZmZlclNpemUgKz0gbWF4QnVmZmVyU2l6ZUF1ZGlvOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChidWZmZXIuaGFz
VGV4dCgpKSB7CisgICAgICAgICAgICBpZiAobWF4QnVmZmVyU2l6ZVRleHQpCisgICAgICAgICAg
ICAgICAgYnVmZmVyU2l6ZSArPSBtYXhCdWZmZXJTaXplVGV4dDsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVmZmVyU2l6
ZSkKKyAgICAgICAgICAgIHJldHVybiBidWZmZXJTaXplOworICAgIH0gd2hpbGUgKGZhbHNlKTsK
KyNlbmRpZiAvLyBQTEFURk9STShXUEUpCisKICAgICAvLyBBIGdvb2QgcXVhbGl0eSAxMDgwcCB2
aWRlbyB1c2VzIDgsMDAwIGticHMgYW5kIHN0ZXJlbyBhdWRpbyB1c2VzIDM4NCBrYnBzLCBzbyBh
c3N1bWUgOTUlIGZvciB2aWRlbyBhbmQgNSUgZm9yIGF1ZGlvLgogICAgIGNvbnN0IGZsb2F0IGJ1
ZmZlckJ1ZGdldFBlcmNlbnRhZ2VGb3JWaWRlbyA9IC45NTsKICAgICBjb25zdCBmbG9hdCBidWZm
ZXJCdWRnZXRQZXJjZW50YWdlRm9yQXVkaW8gPSAuMDU7CkBAIC05MzgsNyArMTAyMiw3IEBAIHNp
emVfdCBNZWRpYUVsZW1lbnRTZXNzaW9uOjptYXhpbXVtTWVkaWFTb3VyY2VCdWZmZXJTaXplKGNv
bnN0IFNvdXJjZUJ1ZmZlciYgYnVmCiAgICAgc2l6ZV90IG1heGltdW0gPSBidWZmZXIuZG9jdW1l
bnQoKS5zZXR0aW5ncygpLm1heGltdW1Tb3VyY2VCdWZmZXJTaXplKCk7CiAKICAgICAvLyBBbGxv
dyBhIFNvdXJjZUJ1ZmZlciB0byBidWZmZXIgYXMgdGhvdWdoIGl0IGlzIGF1ZGlvLW9ubHkgZXZl
biBpZiBpdCBkb2Vzbid0IGhhdmUgYW55IGFjdGl2ZSB0cmFja3MgKHlldCkuCi0gICAgc2l6ZV90
IGJ1ZmZlclNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1heGltdW0gKiBidWZmZXJCdWRnZXRQ
ZXJjZW50YWdlRm9yQXVkaW8pOworICAgIGJ1ZmZlclNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+
KG1heGltdW0gKiBidWZmZXJCdWRnZXRQZXJjZW50YWdlRm9yQXVkaW8pOwogICAgIGlmIChidWZm
ZXIuaGFzVmlkZW8oKSkKICAgICAgICAgYnVmZmVyU2l6ZSArPSBzdGF0aWNfY2FzdDxzaXplX3Q+
KG1heGltdW0gKiBidWZmZXJCdWRnZXRQZXJjZW50YWdlRm9yVmlkZW8pOwogCkBAIC05NTAsNyAr
MTAzNCw3IEBAIHNpemVfdCBNZWRpYUVsZW1lbnRTZXNzaW9uOjptYXhpbXVtTWVkaWFTb3VyY2VC
dWZmZXJTaXplKGNvbnN0IFNvdXJjZUJ1ZmZlciYgYnVmCiAKICAgICByZXR1cm4gYnVmZmVyU2l6
ZTsKIH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKIHN0YXRpYyBi
b29sIGlzRWxlbWVudE1haW5Db250ZW50Rm9yUHVycG9zZXNPZkF1dG9wbGF5KGNvbnN0IEhUTUxN
ZWRpYUVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgc2hvdWxkSGl0VGVzdE1haW5GcmFtZSkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445411</attachid>
            <date>2021-11-30 06:20:37 -0800</date>
            <delta_ts>2021-12-01 02:18:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233495-20211130152036.patch</filename>
            <type>text/plain</type>
            <size>8733</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk2MDkwOTlhN2Q4NDVm
YmVmYzljYTEwZGE5YTgzZTAyMGE2YzE3ZS4uNzMxYTRlNTkyMDY4MDY2ZTU0Y2FjY2FmMjcxMzI3
ZmE0NjU3OWFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTExLTMwICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW01T
RV1bV1BFXSBQYXJhbWV0ZXJpemUgbWF4aW11bSBidWZmZXIgc2l6ZSB1c2luZyB0aGUgTVNFX01B
WF9CVUZGRVJfU0laRSBlbnYgdmFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgY3VycmVudCBNU0UgcG9saWN5IG9mIFNvdXJjZUJ1ZmZlcnMgdGFr
aW5nIGFsbCB0aGUgYXZhaWxhYmxlIHN5c3RlbSBtZW1vcnkgdW50aWwgdGhlIE1lbW9yeVByZXNz
dXJlSGFuZGxlcgorICAgICAgICBjb21wbGFpbnMgbWF5IHdvcmsgZmluZSBmb3IgYSB0eXBpY2Fs
IGRlc2t0b3Agc3lzdGVtLCB3aGVuIGNhY2hpbmcgaXMgcHJlZmVycmVkIG92ZXIgbWVtb3J5IGZv
b3RwcmludC4gSG93ZXZlciwKKyAgICAgICAgbWVtb3J5IGlzIHNjYXJjZSBvbiBlbWJlZGRlZCBz
eXN0ZW1zIGFuZCBXZWJLaXQgbWF5IGNvbXBldGUgd2l0aCBvdGhlciBzb2Z0d2FyZSBmb3IgbWVt
b3J5IHJlc291cmNlcy4gSW4gdGhhdAorICAgICAgICBzY2VuYXJpbywgdGhlIGVtYmVkZGVyIG1h
eSBwcmVmZXIgdG8gcmVzdHJpY3QgdGhlIGFtb3VudCBvZiBtZW1vcnkgYXZhaWxhYmxlIGZvciBl
YWNoIGtpbmQgb2YgU291cmNlQnVmZmVyCisgICAgICAgIChhdWRpbywgdmlkZW8sIHRleHQpLgor
CisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHRoZSBNU0VfTUFYX0JVRkZFUl9TSVpFIGVudmly
b25tZW50IHZhcmlhYmxlIGlzIGhvbm9yZWQuIEl0IGhhcyB0aGUgZm9sbG93aW5nIHN5bnRheDog
Q2FzZQorICAgICAgICBpbnNlbnNpdGl2ZSwgZnVsbCB0eXBlIChhdWRpbywgdmlkZW8sIHRleHQp
LCBjb21wYWN0IHR5cGUgKGEsIHYsIHQpLCB3aWxkY2FyZCAoKiksIHVuaXQgbXVsdGlwbGllcnMg
KE09TWIsCisgICAgICAgIEs9S2IsIDxlbXB0eT49Ynl0ZXMpLiBFeGFtcGxlczoKKworICAgICAg
ICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9J1Y6NTBNLGF1ZGlvOjEyayxUZVhUOjUwMEsnCisgICAg
ICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0nKjoxMDBNJworICAgICAgICAgIE1TRV9NQVhfQlVG
RkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEwMDAwMCcKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmNwcDogSG9ub3IgcGxhdGZvcm0gaW1wb3NlZCBidWZmZXIgc2l6
ZSByZXN0cmljdGlvbnMgd2l0aCBoaWdoZXIgcHJpb3JpdHkgKGlmIHByZXNlbnQpIHRoYW4gdGhl
IGVsZW1lbnQgb25lcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQ
cml2YXRlLmg6IEFkZGVkIHBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUoKSBkZWZhdWx0IGltcGxl
bWVudGF0aW9uIHRoYXQgc2V0cyBubyBidWZmZXIgc2l6ZSByZXN0cmljdGlvbnMuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmNwcDogUmVhZCB0aGUgTVNFX01BWF9CVUZGRVJfU0laRSBlbnZpcm9ubWVudCB2YXJp
YWJsZSBhbmQgY29tcHV0ZSB0aGUgbWF4aW11bSBidWZmZXIgc2l6ZSBpZiB0aGUgc2l6ZSBpcyBz
cGVjaWZpZWQgaW4gdGhlIHZhcmlhYmxlIGZvciBhbGwgdGhlIHRyYWNrIHR5cGVzIHByZXNlbnQg
aW4gdGhlIFNvdXJjZUJ1ZmZlclByaXZhdGUuIE90aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IHNp
emUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyLmg6IE92ZXJyaWRlIGRlZmF1bHQgcGxhdGZvcm1NYXhpbXVtQnVm
ZmVyU2l6ZSgpIGltcGxlbWVudGF0aW9uLgorCiAyMDIxLTEwLTE5ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgTWVkaWFDYXBhYmlsaXRpZXMgdG8g
V29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwCmluZGV4IGY4NmQ2YzFkZTM3ZTc2YmZmZjlhZmNlOTYyZjA3YjBmYjk3N2Q1
M2UuLjJiM2NkZTM2MDgyNDcxYzExYzg3ZmNmNjFjYzgxY2MzNjBjMzlkOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAg
LTYzMCw2ICs2MzAsMTAgQEAgdWludDY0X3QgU291cmNlQnVmZmVyOjptYXhpbXVtQnVmZmVyU2l6
ZSgpIGNvbnN0CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gMDsKIAorICAgIHNp
emVfdCBwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplID0gbV9wcml2YXRlLT5wbGF0Zm9ybU1heGlt
dW1CdWZmZXJTaXplKCk7CisgICAgaWYgKHBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUpCisgICAg
ICAgIHJldHVybiBwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplOworCiAgICAgcmV0dXJuIGVsZW1l
bnQtPm1heGltdW1Tb3VyY2VCdWZmZXJTaXplKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4
IGY1OTc0ZGZmNzE0MjJiMjM0MzFhNGZiM2VhNmM5NzViZTQ1ODczYjQuLmVhZmZkODhiMDQ5MzY4
YzU1OGRlYjhkM2U3MWM0NDViNTQ1OTNmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTExMSw2ICsxMTEs
OCBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVRpbWUgdGltZXN0YW1wT2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV90aW1lc3RhbXBPZmZzZXQ7IH0KIAorICAgIHZpcnR1YWwgc2l6ZV90IHBsYXRmb3Jt
TWF4aW11bUJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9CisKICAgICBzdHJ1Y3QgVHJh
Y2tCdWZmZXIgewogICAgICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAg
ICAgIE1lZGlhVGltZSBsYXN0RGVjb2RlVGltZXN0YW1wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYzllMDFlODU0NzY5
NjYzZGM4ZTc3MDQ3YWY4OTBjOTBjODQ5MzkyMC4uNTU1MjQ3Y2NiNzk5OWYwMjgzZDUyMWRjODQw
YzE5OWFhMjQzMzYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC01MSw2ICs1MSwxMCBAQAogI2luY2x1ZGUgIlZpZGVv
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3Ry
ZWFtZXIuaCIKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdU
b0ludGVnZXJDb252ZXJzaW9uLmg+CisjZW5kaWYKKwogR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVS
Tih3ZWJraXRfbXNlX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF9tc2Vf
ZGVidWcKIApAQCAtMjczLDUgKzI3NywxMTEgQEAgV1RGTG9nQ2hhbm5lbCYgU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKFdQRSkKK3N0YXRpYyBzaXplX3QgbWF4QnVmZmVyU2l6ZVZpZGVvID0gMDsKK3N0YXRp
YyBzaXplX3QgbWF4QnVmZmVyU2l6ZUF1ZGlvID0gMDsKK3N0YXRpYyBzaXplX3QgbWF4QnVmZmVy
U2l6ZVRleHQgPSAwOworCitzdGF0aWMgdm9pZCBtYXhpbXVtQnVmZmVyU2l6ZURlZmF1bHRzKHNp
emVfdCYgbWF4QnVmZmVyU2l6ZVZpZGVvLCBzaXplX3QmIG1heEJ1ZmZlclNpemVBdWRpbywgc2l6
ZV90JiBtYXhCdWZmZXJTaXplVGV4dCkKK3sKKyAgICAvLyBTeW50YXg6IENhc2UgaW5zZW5zaXRp
dmUsIGZ1bGwgdHlwZSAoYXVkaW8sIHZpZGVvLCB0ZXh0KSwgY29tcGFjdCB0eXBlIChhLCB2LCB0
KSwKKyAgICAvLyAgICAgICAgIHdpbGRjYXJkICgqKSwgdW5pdCBtdWx0aXBsaWVycyAoTT1NYiwg
Sz1LYiwgPGVtcHR5Pj1ieXRlcykuCisgICAgLy8gRXhhbXBsZXM6IE1TRV9NQVhfQlVGRkVSX1NJ
WkU9J1Y6NTBNLGF1ZGlvOjEyayxUZVhUOjUwMEsnCisgICAgLy8gICAgICAgICAgIE1TRV9NQVhf
QlVGRkVSX1NJWkU9Jyo6MTAwTScKKyAgICAvLyAgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0la
RT0ndmlkZW86OTBNLFQ6MTAwMDAwJworCisgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9N
QVhfQlVGRkVSX1NJWkUiKSk7CisgICAgaWYgKCFzLmlzRW1wdHkoKSkgeworICAgICAgICBWZWN0
b3I8U3RyaW5nPiBlbnRyaWVzID0gcy5zcGxpdCgnLCcpOworICAgICAgICBmb3IgKGNvbnN0IFN0
cmluZyYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBrZXl2
YWx1ZSA9IGVudHJ5LnNwbGl0KCc6Jyk7CisgICAgICAgICAgICBpZiAoa2V5dmFsdWUuc2l6ZSgp
ICE9IDIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBTdHJpbmcga2V5
ID0ga2V5dmFsdWVbMF0uc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRvTG93ZXJjYXNlV2l0aG91
dExvY2FsZSgpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0ga2V5dmFsdWVbMV0uc3RyaXBX
aGl0ZVNwYWNlKCkuY29udmVydFRvTG93ZXJjYXNlV2l0aG91dExvY2FsZSgpOworICAgICAgICAg
ICAgc2l6ZV90IHVuaXRzID0gMTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnaycp
KQorICAgICAgICAgICAgICAgIHVuaXRzID0gMTAyNDsKKyAgICAgICAgICAgIGVsc2UgaWYgKHZh
bHVlLmVuZHNXaXRoKCdtJykpCisgICAgICAgICAgICAgICAgdW5pdHMgPSAxMDI0ICogMTAyNDsK
KyAgICAgICAgICAgIGlmICh1bml0cyAhPSAxKQorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFs
dWUuc3Vic3RyaW5nKDAsIHZhbHVlLmxlbmd0aCgpLTEpOworICAgICAgICAgICAgYXV0byBwYXJz
ZWRTaXplID0gcGFyc2VJbnRlZ2VyPHNpemVfdD4odmFsdWUpOworICAgICAgICAgICAgaWYgKCFw
YXJzZWRTaXplKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgc2l6ZV90
IHNpemUgPSAqcGFyc2VkU2l6ZTsKKworICAgICAgICAgICAgaWYgKGtleSA9PSAiYSIgfHwga2V5
ID09ICJhdWRpbyIgfHwga2V5ID09ICIqIikKKyAgICAgICAgICAgICAgICBtYXhCdWZmZXJTaXpl
QXVkaW8gPSBzaXplICogdW5pdHM7CisgICAgICAgICAgICBpZiAoa2V5ID09ICJ2IiB8fCBrZXkg
PT0gInZpZGVvIiB8fCBrZXkgPT0gIioiKQorICAgICAgICAgICAgICAgIG1heEJ1ZmZlclNpemVW
aWRlbyA9IHNpemUgKiB1bml0czsKKyAgICAgICAgICAgIGlmIChrZXkgPT0gInQiIHx8IGtleSA9
PSAidGV4dCIgfHwga2V5ID09ICIqIikKKyAgICAgICAgICAgICAgICBtYXhCdWZmZXJTaXplVGV4
dCA9IHNpemUgKiB1bml0czsKKyAgICAgICAgfQorICAgIH0KK30KKyNlbmRpZgorCitzaXplX3Qg
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgp
IGNvbnN0Cit7CisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmICghbV9jbGllbnQpCisgICAgICAg
IHJldHVybiAwOworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CisgICAgc3RkOjpj
YWxsX29uY2Uob25jZSwgW10oKSB7CisgICAgICAgIG1heGltdW1CdWZmZXJTaXplRGVmYXVsdHMo
bWF4QnVmZmVyU2l6ZVZpZGVvLCBtYXhCdWZmZXJTaXplQXVkaW8sIG1heEJ1ZmZlclNpemVUZXh0
KTsKKyAgICB9KTsKKworICAgIC8vIElmIGFueSB0cmFjayB0eXBlIHNpemUgaXNuJ3Qgc3BlY2lm
aWVkLCB3ZSBjb25zaWRlciB0aGF0IGl0IGhhcyBubyBsaW1pdCBhbmQgdGhlIHZhbHVlcyBmcm9t
IHRoZQorICAgIC8vIGVsZW1lbnQgaGF2ZSB0byBiZSB1c2VkLiBPdGhlcndpc2UsIHRoZSB0cmFj
ayBsaW1pdHMgYXJlIGFjY3VtdWxhdGl2ZS4KKyAgICBkbyB7CisgICAgICAgIGJvb2wgaGFzVmlk
ZW8gPSBmYWxzZTsKKyAgICAgICAgYm9vbCBoYXNBdWRpbyA9IGZhbHNlOworICAgICAgICBib29s
IGhhc1RleHQgPSBmYWxzZTsKKyAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSAwOworCisgICAg
ICAgIGZvciAoYXV0byB0cmFjayA6IG1fdHJhY2tzLnZhbHVlcygpKSB7CisgICAgICAgICAgICBz
d2l0Y2ggKHRyYWNrLT50eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lcjo6VmlkZW86CisgICAgICAgICAgICAgICAgaGFzVmlkZW8gPSB0cnVlOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUcmFja1ByaXZhdGVCYXNlR1N0
cmVhbWVyOjpBdWRpbzoKKyAgICAgICAgICAgICAgICBoYXNBdWRpbyA9IHRydWU7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXI6OlRleHQ6CisgICAgICAgICAgICAgICAgaGFzVGV4dCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGhhc1ZpZGVvKSB7CisgICAg
ICAgICAgICBpZiAobWF4QnVmZmVyU2l6ZVZpZGVvKQorICAgICAgICAgICAgICAgIGJ1ZmZlclNp
emUgKz0gbWF4QnVmZmVyU2l6ZVZpZGVvOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChoYXNBdWRpbykgeworICAgICAgICAg
ICAgaWYgKG1heEJ1ZmZlclNpemVBdWRpbykKKyAgICAgICAgICAgICAgICBidWZmZXJTaXplICs9
IG1heEJ1ZmZlclNpemVBdWRpbzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaGFzVGV4dCkgeworICAgICAgICAgICAgaWYg
KG1heEJ1ZmZlclNpemVUZXh0KQorICAgICAgICAgICAgICAgIGJ1ZmZlclNpemUgKz0gbWF4QnVm
ZmVyU2l6ZVRleHQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZmZlclNpemUpCisgICAgICAgICAgICByZXR1cm4gYnVm
ZmVyU2l6ZTsKKyAgICB9IHdoaWxlIChmYWxzZSk7CisjZW5kaWYKKworICAgIHJldHVybiAwOwor
fQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyLmgKaW5kZXggZDY5OTBjYzgwYTZhYzc0NDZmMDBiZDIwODNjMTVlZTQ3Njk3
NDdkMC4uOGJmYWU2NGZkZTUwNGU1YTZiYTU0MzFiYzRhZjEzNDNhMmMwMjA3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTk0
LDYgKzk0LDggQEAgcHVibGljOgogICAgIGNvbnN0IHZvaWQqIHNvdXJjZUJ1ZmZlckxvZ0lkZW50
aWZpZXIoKSBmaW5hbCB7IHJldHVybiBsb2dJZGVudGlmaWVyKCk7IH0KICNlbmRpZgogCisgICAg
c2l6ZV90IHBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUoKSBjb25zdCBvdmVycmlkZTsKKwogcHJp
dmF0ZToKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0
ZUdTdHJlYW1lciosIGNvbnN0IENvbnRlbnRUeXBlJiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyTVNFJik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445543</attachid>
            <date>2021-12-01 02:18:48 -0800</date>
            <delta_ts>2021-12-01 02:56:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233495-20211201111846.patch</filename>
            <type>text/plain</type>
            <size>8643</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk2MDkwOTlhN2Q4NDVm
YmVmYzljYTEwZGE5YTgzZTAyMGE2YzE3ZS4uOGM2OTkxOGFhYTA3NTI0MWIxM2FhZDViYjNlZjE1
NjgwNjM4NmZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTEyLTAxICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW01T
RV1bV1BFXSBQYXJhbWV0ZXJpemUgbWF4aW11bSBidWZmZXIgc2l6ZSB1c2luZyB0aGUgTVNFX01B
WF9CVUZGRVJfU0laRSBlbnYgdmFyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBYYWJpZXIgUm9kcmln
dWV6LUNhbHZhci4KKworICAgICAgICBUaGUgY3VycmVudCBNU0UgcG9saWN5IG9mIFNvdXJjZUJ1
ZmZlcnMgdGFraW5nIGFsbCB0aGUgYXZhaWxhYmxlIHN5c3RlbSBtZW1vcnkgdW50aWwgdGhlIE1l
bW9yeVByZXNzdXJlSGFuZGxlcgorICAgICAgICBjb21wbGFpbnMgbWF5IHdvcmsgZmluZSBmb3Ig
YSB0eXBpY2FsIGRlc2t0b3Agc3lzdGVtLCB3aGVuIGNhY2hpbmcgaXMgcHJlZmVycmVkIG92ZXIg
bWVtb3J5IGZvb3RwcmludC4gSG93ZXZlciwKKyAgICAgICAgbWVtb3J5IGlzIHNjYXJjZSBvbiBl
bWJlZGRlZCBzeXN0ZW1zIGFuZCBXZWJLaXQgbWF5IGNvbXBldGUgd2l0aCBvdGhlciBzb2Z0d2Fy
ZSBmb3IgbWVtb3J5IHJlc291cmNlcy4gSW4gdGhhdAorICAgICAgICBzY2VuYXJpbywgdGhlIGVt
YmVkZGVyIG1heSBwcmVmZXIgdG8gcmVzdHJpY3QgdGhlIGFtb3VudCBvZiBtZW1vcnkgYXZhaWxh
YmxlIGZvciBlYWNoIGtpbmQgb2YgU291cmNlQnVmZmVyCisgICAgICAgIChhdWRpbywgdmlkZW8s
IHRleHQpLgorCisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHRoZSBNU0VfTUFYX0JVRkZFUl9T
SVpFIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGhvbm9yZWQuIEl0IGhhcyB0aGUgZm9sbG93aW5n
IHN5bnRheDogQ2FzZQorICAgICAgICBpbnNlbnNpdGl2ZSwgZnVsbCB0eXBlIChhdWRpbywgdmlk
ZW8sIHRleHQpLCBjb21wYWN0IHR5cGUgKGEsIHYsIHQpLCB3aWxkY2FyZCAoKiksIHVuaXQgbXVs
dGlwbGllcnMgKE09TWIsCisgICAgICAgIEs9S2IsIDxlbXB0eT49Ynl0ZXMpLiBFeGFtcGxlczoK
KworICAgICAgICAgIE1TRV9NQVhfQlVGRkVSX1NJWkU9J1Y6NTBNLGF1ZGlvOjEyayxUZVhUOjUw
MEsnCisgICAgICAgICAgTVNFX01BWF9CVUZGRVJfU0laRT0nKjoxMDBNJworICAgICAgICAgIE1T
RV9NQVhfQlVGRkVSX1NJWkU9J3ZpZGVvOjkwTSxUOjEwMDAwMCcKKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDogSG9ub3IgcGxhdGZvcm0gaW1wb3NlZCBi
dWZmZXIgc2l6ZSByZXN0cmljdGlvbnMgd2l0aCBoaWdoZXIgcHJpb3JpdHkgKGlmIHByZXNlbnQp
IHRoYW4gdGhlIGVsZW1lbnQgb25lcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlLmg6IEFkZGVkIHBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUoKSBkZWZh
dWx0IGltcGxlbWVudGF0aW9uIHRoYXQgc2V0cyBubyBidWZmZXIgc2l6ZSByZXN0cmljdGlvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcDogUmVhZCB0aGUgTVNFX01BWF9CVUZGRVJfU0laRSBlbnZpcm9u
bWVudCB2YXJpYWJsZSBhbmQgY29tcHV0ZSB0aGUgbWF4aW11bSBidWZmZXIKKyAgICAgICAgc2l6
ZSBpZiB0aGUgc2l6ZSBpcyBzcGVjaWZpZWQgaW4gdGhlIHZhcmlhYmxlIGZvciBhbGwgdGhlIHRy
YWNrIHR5cGVzIHByZXNlbnQgaW4gdGhlIFNvdXJjZUJ1ZmZlclByaXZhdGUuIE90aGVyd2lzZSwg
dXNlIHRoZSBkZWZhdWx0IHNpemUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmg6IE92ZXJyaWRlIGRlZmF1bHQg
cGxhdGZvcm1NYXhpbXVtQnVmZmVyU2l6ZSgpIGltcGxlbWVudGF0aW9uLgorCiAyMDIxLTEwLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgTWVk
aWFDYXBhYmlsaXRpZXMgdG8gV29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IGY4NmQ2YzFkZTM3ZTc2YmZmZjlh
ZmNlOTYyZjA3YjBmYjk3N2Q1M2UuLjJiM2NkZTM2MDgyNDcxYzExYzg3ZmNmNjFjYzgxY2MzNjBj
MzlkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHAKQEAgLTYzMCw2ICs2MzAsMTAgQEAgdWludDY0X3QgU291cmNlQnVmZmVy
OjptYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICBy
ZXR1cm4gMDsKIAorICAgIHNpemVfdCBwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplID0gbV9wcml2
YXRlLT5wbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplKCk7CisgICAgaWYgKHBsYXRmb3JtTWF4aW11
bUJ1ZmZlclNpemUpCisgICAgICAgIHJldHVybiBwbGF0Zm9ybU1heGltdW1CdWZmZXJTaXplOwor
CiAgICAgcmV0dXJuIGVsZW1lbnQtPm1heGltdW1Tb3VyY2VCdWZmZXJTaXplKCp0aGlzKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oCmluZGV4IGY1OTc0ZGZmNzE0MjJiMjM0MzFhNGZiM2VhNmM5NzViZTQ1ODcz
YjQuLmVhZmZkODhiMDQ5MzY4YzU1OGRlYjhkM2U3MWM0NDViNTQ1OTNmZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRl
LmgKQEAgLTExMSw2ICsxMTEsOCBAQCBwdWJsaWM6CiAKICAgICBNZWRpYVRpbWUgdGltZXN0YW1w
T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXBPZmZzZXQ7IH0KIAorICAgIHZpcnR1
YWwgc2l6ZV90IHBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiAwOyB9
CisKICAgICBzdHJ1Y3QgVHJhY2tCdWZmZXIgewogICAgICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFT
VF9BTExPQ0FURUQ7CiAgICAgICAgIE1lZGlhVGltZSBsYXN0RGVjb2RlVGltZXN0YW1wOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
aW5kZXggYzllMDFlODU0NzY5NjYzZGM4ZTc3MDQ3YWY4OTBjOTBjODQ5MzkyMC4uYjYxNTBkYTQz
ZDE3ODRmZDU1MjVmYmJmYTliODUyNzBlZTAzMDk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC01MSw2ICs1MSwxMCBA
QAogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CisjZW5kaWYKKwogR1NUX0RF
QlVHX0NBVEVHT1JZX0VYVEVSTih3ZWJraXRfbXNlX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9E
RUZBVUxUIHdlYmtpdF9tc2VfZGVidWcKIApAQCAtMjczLDUgKzI3NywxMDQgQEAgV1RGTG9nQ2hh
bm5lbCYgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB9
CiAjZW5kaWYKIAorc2l6ZV90IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnBsYXRmb3Jt
TWF4aW11bUJ1ZmZlclNpemUoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBpZiAo
IW1fY2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHN0YXRpYyBzaXplX3QgbWF4QnVm
ZmVyU2l6ZVZpZGVvID0gMDsKKyAgICBzdGF0aWMgc2l6ZV90IG1heEJ1ZmZlclNpemVBdWRpbyA9
IDA7CisgICAgc3RhdGljIHNpemVfdCBtYXhCdWZmZXJTaXplVGV4dCA9IDA7CisKKyAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSgpIHsK
KyAgICAgICAgLy8gU3ludGF4OiBDYXNlIGluc2Vuc2l0aXZlLCBmdWxsIHR5cGUgKGF1ZGlvLCB2
aWRlbywgdGV4dCksIGNvbXBhY3QgdHlwZSAoYSwgdiwgdCksCisgICAgICAgIC8vICAgICAgICAg
d2lsZGNhcmQgKCopLCB1bml0IG11bHRpcGxpZXJzIChNPU1iLCBLPUtiLCA8ZW1wdHk+PWJ5dGVz
KS4KKyAgICAgICAgLy8gRXhhbXBsZXM6IE1TRV9NQVhfQlVGRkVSX1NJWkU9J1Y6NTBNLGF1ZGlv
OjEyayxUZVhUOjUwMEsnCisgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpF
PScqOjEwME0nCisgICAgICAgIC8vICAgICAgICAgICBNU0VfTUFYX0JVRkZFUl9TSVpFPSd2aWRl
bzo5ME0sVDoxMDAwMDAnCisKKyAgICAgICAgU3RyaW5nIHMoc3RkOjpnZXRlbnYoIk1TRV9NQVhf
QlVGRkVSX1NJWkUiKSk7CisgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IGVudHJpZXMgPSBzLnNwbGl0KCcsJyk7CisgICAgICAgICAgICBmb3Ig
KGNvbnN0IFN0cmluZyYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAgICAgICAgICAgICAgVmVjdG9y
PFN0cmluZz4ga2V5dmFsdWUgPSBlbnRyeS5zcGxpdCgnOicpOworICAgICAgICAgICAgICAgIGlm
IChrZXl2YWx1ZS5zaXplKCkgIT0gMikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IGtleXZhbHVlWzBdLnN0cmlwV2hpdGVTcGFjZSgp
LmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICBTdHJp
bmcgdmFsdWUgPSBrZXl2YWx1ZVsxXS5zdHJpcFdoaXRlU3BhY2UoKS5jb252ZXJ0VG9Mb3dlcmNh
c2VXaXRob3V0TG9jYWxlKCk7CisgICAgICAgICAgICAgICAgc2l6ZV90IHVuaXRzID0gMTsKKyAg
ICAgICAgICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ2snKSkKKyAgICAgICAgICAgICAgICAg
ICAgdW5pdHMgPSAxMDI0OworICAgICAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlLmVuZHNXaXRo
KCdtJykpCisgICAgICAgICAgICAgICAgICAgIHVuaXRzID0gMTAyNCAqIDEwMjQ7CisgICAgICAg
ICAgICAgICAgaWYgKHVuaXRzICE9IDEpCisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFs
dWUuc3Vic3RyaW5nKDAsIHZhbHVlLmxlbmd0aCgpLTEpOworICAgICAgICAgICAgICAgIGF1dG8g
cGFyc2VkU2l6ZSA9IHBhcnNlSW50ZWdlcjxzaXplX3Q+KHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIXBhcnNlZFNpemUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIHNpemVfdCBzaXplID0gKnBhcnNlZFNpemU7CisKKyAgICAgICAgICAgICAgICBp
ZiAoa2V5ID09ICJhIiB8fCBrZXkgPT0gImF1ZGlvIiB8fCBrZXkgPT0gIioiKQorICAgICAgICAg
ICAgICAgICAgICBtYXhCdWZmZXJTaXplQXVkaW8gPSBzaXplICogdW5pdHM7CisgICAgICAgICAg
ICAgICAgaWYgKGtleSA9PSAidiIgfHwga2V5ID09ICJ2aWRlbyIgfHwga2V5ID09ICIqIikKKyAg
ICAgICAgICAgICAgICAgICAgbWF4QnVmZmVyU2l6ZVZpZGVvID0gc2l6ZSAqIHVuaXRzOworICAg
ICAgICAgICAgICAgIGlmIChrZXkgPT0gInQiIHx8IGtleSA9PSAidGV4dCIgfHwga2V5ID09ICIq
IikKKyAgICAgICAgICAgICAgICAgICAgbWF4QnVmZmVyU2l6ZVRleHQgPSBzaXplICogdW5pdHM7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIC8vIElmIGFueSB0cmFj
ayB0eXBlIHNpemUgaXNuJ3Qgc3BlY2lmaWVkLCB3ZSBjb25zaWRlciB0aGF0IGl0IGhhcyBubyBs
aW1pdCBhbmQgdGhlIHZhbHVlcyBmcm9tIHRoZQorICAgIC8vIGVsZW1lbnQgaGF2ZSB0byBiZSB1
c2VkLiBPdGhlcndpc2UsIHRoZSB0cmFjayBsaW1pdHMgYXJlIGFjY3VtdWxhdGl2ZS4KKyAgICBk
byB7CisgICAgICAgIGJvb2wgaGFzVmlkZW8gPSBmYWxzZTsKKyAgICAgICAgYm9vbCBoYXNBdWRp
byA9IGZhbHNlOworICAgICAgICBib29sIGhhc1RleHQgPSBmYWxzZTsKKyAgICAgICAgc2l6ZV90
IGJ1ZmZlclNpemUgPSAwOworCisgICAgICAgIGZvciAoYXV0byB0cmFjayA6IG1fdHJhY2tzLnZh
bHVlcygpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHRyYWNrLT50eXBlKCkpIHsKKyAgICAgICAg
ICAgIGNhc2UgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6VmlkZW86CisgICAgICAgICAgICAg
ICAgaGFzVmlkZW8gPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpBdWRpbzoKKyAgICAgICAgICAgICAgICBo
YXNBdWRpbyA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OlRleHQ6CisgICAgICAgICAgICAgICAgaGFzVGV4
dCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGhhc1ZpZGVvKSB7CisgICAgICAgICAgICBpZiAobWF4QnVmZmVyU2l6ZVZpZGVvKQor
ICAgICAgICAgICAgICAgIGJ1ZmZlclNpemUgKz0gbWF4QnVmZmVyU2l6ZVZpZGVvOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlm
IChoYXNBdWRpbykgeworICAgICAgICAgICAgaWYgKG1heEJ1ZmZlclNpemVBdWRpbykKKyAgICAg
ICAgICAgICAgICBidWZmZXJTaXplICs9IG1heEJ1ZmZlclNpemVBdWRpbzsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaGFz
VGV4dCkgeworICAgICAgICAgICAgaWYgKG1heEJ1ZmZlclNpemVUZXh0KQorICAgICAgICAgICAg
ICAgIGJ1ZmZlclNpemUgKz0gbWF4QnVmZmVyU2l6ZVRleHQ7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZmZlclNpemUp
CisgICAgICAgICAgICByZXR1cm4gYnVmZmVyU2l6ZTsKKyAgICB9IHdoaWxlIChmYWxzZSk7Cisj
ZW5kaWYKKworICAgIHJldHVybiAwOworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZDY5OTBjYzgwYTZh
Yzc0NDZmMDBiZDIwODNjMTVlZTQ3Njk3NDdkMC4uOGJmYWU2NGZkZTUwNGU1YTZiYTU0MzFiYzRh
ZjEzNDNhMmMwMjA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyLmgKQEAgLTk0LDYgKzk0LDggQEAgcHVibGljOgogICAgIGNvbnN0IHZv
aWQqIHNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSBmaW5hbCB7IHJldHVybiBsb2dJZGVudGlm
aWVyKCk7IH0KICNlbmRpZgogCisgICAgc2l6ZV90IHBsYXRmb3JtTWF4aW11bUJ1ZmZlclNpemUo
KSBjb25zdCBvdmVycmlkZTsKKwogcHJpdmF0ZToKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lciosIGNvbnN0IENvbnRlbnRUeXBlJiwg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>