<?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>233921</bug_id>
          
          <creation_ts>2021-12-07 03:55:22 -0800</creation_ts>
          <short_desc>TextDecoder doesn&apos;t detect invalid UTF-8 sequences early enough</short_desc>
          <delta_ts>2025-12-15 15:41:59 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=216202</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=234030</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=304181</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreu Botella">andreu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andreu</cc>
    
    <cc>ap</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820971</commentid>
    <comment_count>0</comment_count>
    <who name="Andreu Botella">andreu</who>
    <bug_when>2021-12-07 03:55:22 -0800</bug_when>
    <thetext>WPT tests: https://wpt.fyi/results/encoding/textdecoder-eof.any.html?label=experimental&amp;label=master&amp;aligned (stream: true case), https://wpt.fyi/results/encoding/textdecoder-streaming.any.html?label=experimental&amp;label=master&amp;aligned, https://wpt.fyi/results/encoding/streams/decode-utf8.any.html?label=experimental&amp;label=master&amp;aligned (non-SharedArrayBuffer cases)

Related Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=796697

When the TextCodecUTF8 decoder finds a non-ASCII lead byte, it waits until enough bytes are consumed to make a valid sequence starting at that position, before starting to process the bytes. This goes against the encoding spec, which requires the replacement character to be emitted as soon as enough bytes are consumed to tell that the sequence is in fact invalid.

While this does not make a difference for non-streaming input, or for streaming data coming from the network, it does make a difference in that TextDecoder returns the wrong result as per the spec when in streaming mode:

const decoder = new TextDecoder();
console.log(decoder.decode(new Uint8Array([0xF0, 0x9F]), { stream: true }));
console.log(decoder.decode(new Uint8Array([0x41]), { stream: true }));
console.log(decoder.decode(new Uint8Array([0x42]), { stream: true }));

As per the spec, and in Firefox and Chromium 98, this prints &quot;&quot;, &quot;�A&quot;, &quot;B&quot;. In WebKit and previous versions of Chromium, it prints &quot;&quot;, &quot;&quot;, &quot;�AB&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821756</commentid>
    <comment_count>1</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-08 13:23:00 -0800</bug_when>
    <thetext>I think we will need to do basically the same thing as Chromium, but it won&apos;t be a simple cherry pick because their DecodeNonASCIISequence returns a different value than our decodeNonASCIISequence and doesn&apos;t change the length, and their handlePartialSequence for LChar and UChar are more similar than ours are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822165</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-09 09:50:17 -0800</bug_when>
    <thetext>*** Bug 234030 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823495</commentid>
    <comment_count>3</comment_count>
      <attachid>446994</attachid>
    <who name="Andreu Botella">andreu</who>
    <bug_when>2021-12-13 05:50:55 -0800</bug_when>
    <thetext>Created attachment 446994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823496</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-12-13 05:52:03 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823780</commentid>
    <comment_count>5</comment_count>
      <attachid>447070</attachid>
    <who name="Andreu Botella">andreu</who>
    <bug_when>2021-12-13 14:38:43 -0800</bug_when>
    <thetext>Created attachment 447070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823958</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-14 03:56:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86461983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824007</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-14 08:30:29 -0800</bug_when>
    <thetext>Committed r287024 (245229@main): &lt;https://commits.webkit.org/245229@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447070.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446994</attachid>
            <date>2021-12-13 05:50:55 -0800</date>
            <delta_ts>2021-12-13 14:38:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233921-20211213145053.patch</filename>
            <type>text/plain</type>
            <size>17028</size>
            <attacher name="Andreu Botella">andreu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAxZjg5ZDA3
NTQ5ODFjYjExZjZjNjU4NWRjOWRlZDIyYWJmOGU4YmE5Li45NGZiZjYzODcxNzBmN2EyZmU5NDM5
ZjQwNDdjN2VjNzVmYzI5MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAor
MjAyMS0xMi0xMyAgQW5kcmV1IEJvdGVsbGEgIDxhbmRyZXVAYW5kcmV1Ym90ZWxsYS5jb20+CisK
KyAgICAgICAgVGV4dERlY29kZXIgZG9lc24ndCBkZXRlY3QgaW52YWxpZCBVVEYtOCBzZXF1ZW5j
ZXMgZWFybHkgZW5vdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBzdHJlYW1pbmcgbW9kZSwgd2hlbiBUZXh0Q29kZWNVVEY4IGZvdW5kIGEgbGVh
ZCBieXRlIGZvciB3aGljaCBhCisgICAgICAgIHZhbGlkIHNlcXVlbmNlIHdvdWxkIHNwYW4gbG9u
Z2VyIHRoYW4gdGhlIGN1cnJlbnRseSBhdmFpbGFibGUgYnl0ZXMsIGl0CisgICAgICAgIHVzZWQg
dG8gZGVmZXIgYW55IHByb2Nlc3Npbmcgb2YgdGhhdCBzZXF1ZW5jZSB1bnRpbCBhbGwgc3VjaCBi
eXRlcyB3ZXJlCisgICAgICAgIGF2YWlsYWJsZSwgZXZlbiBpZiBlcnJvcnMgY291bGQgYmUgZGV0
ZWN0ZWQgZWFybGllci4gQWRkaXRpb25hbGx5LCBpZgorICAgICAgICB0aGUgc3RyZWFtIHdhcyBm
bHVzaGVkIGF0IHRoYXQgcG9pbnQsIGl0IHdvdWxkIGVtaXQgYSBzaW5nbGUgcmVwbGFjZW1lbnQK
KyAgICAgICAgY2hhcmFjdGVyLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHJlbWFpbmluZyBi
eXRlcyBmb3JtZWQgYSB2YWxpZAorICAgICAgICBzZXF1ZW5jZSwgZXZlbiBpZiB0aGV5IGhhZCBs
ZWFkIGJ5dGVzLCByZXN1bHRpbmcgaW4gc2tpcHBlZCBjaGFyYWN0ZXJzLgorICAgICAgICBCb3Ro
IGlzc3VlcyBhcmUgc29sdmVkIGJ5IGFsd2F5cyBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgcGFy
dGlhbAorICAgICAgICBzZXF1ZW5jZXMuCisKKyAgICAgICAgVGhlIGFwcHJvYWNoIHVzZWQgaW4g
dGhpcyBwYXRjaCB1c2VzIGBkZWNvZGVOb25BU0NJSVNlcXVlbmNlYCB0byBmaW5kCisgICAgICAg
IHRoZSBsZW5ndGggb2YgdGhlIG1heGltYWwgc3VicGFydCBvZiBhIHBhcnRpYWwgc2VxdWVuY2Us
IGFuZCBpZiB0aGUKKyAgICAgICAgbGVuZ3RoIGlzIGVxdWFsIHRvIHRoZSBwYXJ0aWFsIHNlcXVl
bmNlIHNpemUgYW5kIHdlJ3JlIG5vdCBhdCBFT0YsIHdlCisgICAgICAgIGRvbid0IGVtaXQgdGhl
IGVycm9yLiBUaGlzIGlzIGVub3VnaCB0byBoYW5kbGUgdGhlIG1pc3NpbmcgY2hhcmFjdGVycyBh
dAorICAgICAgICBFT0YsIGFuZCB3aGVuIGNvbWJpbmVkIHdpdGggY2hhbmdpbmcgdGhlIGNvbmRp
dGlvbiBvZiB0aGUgb3V0ZXIgZG8td2hpbGUKKyAgICAgICAgbG9vcHMgaW4gdGhlIGBkZWNvZGVg
IG1ldGhvZCBmcm9tIGBmbHVzaCAmJiBtX3BhcnRpYWxTZXF1ZW5jZVNpemVgIHRvCisgICAgICAg
IG9ubHkgYG1fcGFydGlhbFNlcXVlbmNlU2l6ZWAsIGl0IGFsc28gZml4ZXMgdGhlIHN0cmVhbWlu
ZyBpc3N1ZS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGEgcG9ydCBvZgorICAgICAgICBodHRw
czovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMzI2
MzkzOAorCisgICAgICAgICogcGFsL3RleHQvVGV4dENvZGVjVVRGOC5jcHA6CisgICAgICAgIChQ
QUw6OlRleHRDb2RlY1VURjg6OmhhbmRsZVBhcnRpYWxTZXF1ZW5jZSk6IENoYW5nZWQgdG8gYWx3
YXlzIHByb2Nlc3MKKyAgICAgICAgcGFydGlhbCBzZXF1ZW5jZXMuCisgICAgICAgIChQQUw6OlRl
eHRDb2RlY1VURjg6OmRlY29kZSk6IENoYW5nZWQgdGhlIGxvb3AgY29uZGl0aW9uIG9mIHRoZSBv
dXRlcgorICAgICAgICBkby13aGlsZSBsb29wcyB0byBub3QgZGVwZW5kIG9uIGBmbHVzaGAuCisK
IDIwMjEtMTItMTEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2ODkzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC90ZXh0L1RleHRDb2RlY1VURjguY3BwIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC90ZXh0L1RleHRDb2RlY1VURjguY3BwCmluZGV4IGQwY2E0YTYwOTE5MGVmMDdhNTAw
NjJjODgwYTE4MjNmNmU4MmNlZGEuLjg1YzkxZjdkYmU1YWM3YjFjNGVjMDc0ZThlZDdkN2JhZTAy
YWUwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvdGV4dC9UZXh0Q29kZWNV
VEY4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3RleHQvVGV4dENvZGVjVVRGOC5j
cHAKQEAgLTE4OSwyNSArMTg5LDM0IEBAIGJvb2wgVGV4dENvZGVjVVRGODo6aGFuZGxlUGFydGlh
bFNlcXVlbmNlKExDaGFyKiYgZGVzdGluYXRpb24sIGNvbnN0IHVpbnQ4X3QqJiBzCiAgICAgICAg
IGlmICghY291bnQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgICAgICAvLyBDb3B5
IGZyb20gYHNvdXJjZWAgdW50aWwgd2UgaGF2ZSBgY291bnRgIGJ5dGVzLgorICAgICAgICBpZiAo
Y291bnQgPiBtX3BhcnRpYWxTZXF1ZW5jZVNpemUgJiYgZW5kID4gc291cmNlKSB7CisgICAgICAg
ICAgICBzaXplX3QgYWRkaXRpb25hbEJ5dGVzID0gc3RkOjptaW48c2l6ZV90Pihjb3VudCAtIG1f
cGFydGlhbFNlcXVlbmNlU2l6ZSwgZW5kIC0gc291cmNlKTsKKyAgICAgICAgICAgIG1lbWNweSht
X3BhcnRpYWxTZXF1ZW5jZSArIG1fcGFydGlhbFNlcXVlbmNlU2l6ZSwgc291cmNlLCBhZGRpdGlv
bmFsQnl0ZXMpOworICAgICAgICAgICAgc291cmNlICs9IGFkZGl0aW9uYWxCeXRlczsKKyAgICAg
ICAgICAgIG1fcGFydGlhbFNlcXVlbmNlU2l6ZSArPSBhZGRpdGlvbmFsQnl0ZXM7CisgICAgICAg
IH0KKworICAgICAgICAvLyBJZiB3ZSBzdGlsbCBkb24ndCBoYXZlIGBjb3VudGAgYnl0ZXMsIGZp
bGwgdGhlIHJlc3Qgd2l0aCB6ZXJvcyAoYW55CisgICAgICAgIC8vIG90aGVyIGxlYWQgYnl0ZSB3
b3VsZCBkbyksIHNvIHdlIGNhbiBydW4gYGRlY29kZU5vbkFTQ0lJU2VxdWVuY2VgIHRvCisgICAg
ICAgIC8vIHRlbGwgaWYgdGhlIGNodW5rIHRoYXQgd2UgaGF2ZSBpcyB2YWxpZC4gVGhlc2UgYnl0
ZXMgYXJlIG5vdCBwYXJ0IG9mCisgICAgICAgIC8vIHRoZSBwYXJ0aWFsIHNlcXVlbmNlLCBzbyBk
b24ndCBpbmNyZW1lbnQgYG1fcGFydGlhbFNlcXVlbmNlU2l6ZWAuCisgICAgICAgIGJvb2wgcGFy
dGlhbFNlcXVlbmNlSXNUb29TaG9ydCA9IGZhbHNlOwogICAgICAgICBpZiAoY291bnQgPiBtX3Bh
cnRpYWxTZXF1ZW5jZVNpemUpIHsKLSAgICAgICAgICAgIGlmIChjb3VudCAtIG1fcGFydGlhbFNl
cXVlbmNlU2l6ZSA+IGVuZCAtIHNvdXJjZSkgewotICAgICAgICAgICAgICAgIGlmICghZmx1c2gp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG5ldyBkYXRhIGlzIG5vdCBlbm91Z2ggdG8g
Y29tcGxldGUgdGhlIHNlcXVlbmNlLCBzbwotICAgICAgICAgICAgICAgICAgICAvLyBhZGQgaXQg
dG8gdGhlIGV4aXN0aW5nIHBhcnRpYWwgc2VxdWVuY2UuCi0gICAgICAgICAgICAgICAgICAgIG1l
bWNweShtX3BhcnRpYWxTZXF1ZW5jZSArIG1fcGFydGlhbFNlcXVlbmNlU2l6ZSwgc291cmNlLCBl
bmQgLSBzb3VyY2UpOwotICAgICAgICAgICAgICAgICAgICBtX3BhcnRpYWxTZXF1ZW5jZVNpemUg
Kz0gZW5kIC0gc291cmNlOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8vIEFuIGluY29tcGxldGUgcGFydGlhbCBz
ZXF1ZW5jZSBhdCB0aGUgZW5kIGlzIGFuIGVycm9yLCBidXQgaXQgd2lsbCBjcmVhdGUKLSAgICAg
ICAgICAgICAgICAvLyBhIDE2IGJpdCBzdHJpbmcgZHVlIHRvIHRoZSByZXBsYWNlbWVudENoYXJh
Y3Rlci4gTGV0IHRoZSAxNiBiaXQgcGF0aCBoYW5kbGUKLSAgICAgICAgICAgICAgICAvLyB0aGUg
ZXJyb3IuCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtZW1jcHkobV9wYXJ0aWFsU2VxdWVuY2UgKyBtX3BhcnRpYWxTZXF1ZW5jZVNpemUs
IHNvdXJjZSwgY291bnQgLSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUpOwotICAgICAgICAgICAgc291
cmNlICs9IGNvdW50IC0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplOwotICAgICAgICAgICAgbV9wYXJ0
aWFsU2VxdWVuY2VTaXplID0gY291bnQ7CisgICAgICAgICAgICBwYXJ0aWFsU2VxdWVuY2VJc1Rv
b1Nob3J0ID0gdHJ1ZTsKKyAgICAgICAgICAgIG1lbXNldChtX3BhcnRpYWxTZXF1ZW5jZSArIG1f
cGFydGlhbFNlcXVlbmNlU2l6ZSwgMCwgY291bnQgLSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUpOwog
ICAgICAgICB9CisKICAgICAgICAgaW50IGNoYXJhY3RlciA9IGRlY29kZU5vbkFTQ0lJU2VxdWVu
Y2UobV9wYXJ0aWFsU2VxdWVuY2UsIGNvdW50KTsKKyAgICAgICAgaWYgKHBhcnRpYWxTZXF1ZW5j
ZUlzVG9vU2hvcnQpIHsKKyAgICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgPT0gbm9uQ2hhcmFj
dGVyKTsKKyAgICAgICAgICAgIEFTU0VSVChjb3VudCA8PSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUp
OworICAgICAgICAgICAgLy8gSWYgd2UncmUgbm90IGF0IHRoZSBlbmQsIGFuZCB0aGUgcGFydGlh
bCBzZXF1ZW5jZSB0aGF0IHdlIGhhdmUgaXMKKyAgICAgICAgICAgIC8vIGluY29tcGxldGUgYnV0
IG90aGVyd2lzZSB2YWxpZCwgYSBub24tY2hhcmFjdGVyIGlzIG5vdCBhbiBlcnJvci4KKyAgICAg
ICAgICAgIGlmICghZmx1c2ggJiYgY291bnQgPT0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghaXNM
YXRpbjEoY2hhcmFjdGVyKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC0yMzYsMjkg
KzI0NSwzNSBAQCB2b2lkIFRleHRDb2RlY1VURjg6OmhhbmRsZVBhcnRpYWxTZXF1ZW5jZShVQ2hh
ciomIGRlc3RpbmF0aW9uLCBjb25zdCB1aW50OF90KiYgcwogICAgICAgICAgICAgY29uc3VtZVBh
cnRpYWxTZXF1ZW5jZUJ5dGUoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisK
KyAgICAgICAgLy8gQ29weSBmcm9tIGBzb3VyY2VgIHVudGlsIHdlIGhhdmUgYGNvdW50YCBieXRl
cy4KKyAgICAgICAgaWYgKGNvdW50ID4gbV9wYXJ0aWFsU2VxdWVuY2VTaXplICYmIGVuZCA+IHNv
dXJjZSkgeworICAgICAgICAgICAgc2l6ZV90IGFkZGl0aW9uYWxCeXRlcyA9IHN0ZDo6bWluPHNp
emVfdD4oY291bnQgLSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUsIGVuZCAtIHNvdXJjZSk7CisgICAg
ICAgICAgICBtZW1jcHkobV9wYXJ0aWFsU2VxdWVuY2UgKyBtX3BhcnRpYWxTZXF1ZW5jZVNpemUs
IHNvdXJjZSwgYWRkaXRpb25hbEJ5dGVzKTsKKyAgICAgICAgICAgIHNvdXJjZSArPSBhZGRpdGlv
bmFsQnl0ZXM7CisgICAgICAgICAgICBtX3BhcnRpYWxTZXF1ZW5jZVNpemUgKz0gYWRkaXRpb25h
bEJ5dGVzOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBg
Y291bnRgIGJ5dGVzLCBmaWxsIHRoZSByZXN0IHdpdGggemVyb3MgKGFueQorICAgICAgICAvLyBv
dGhlciBsZWFkIGJ5dGUgd291bGQgZG8pLCBzbyB3ZSBjYW4gcnVuIGBkZWNvZGVOb25BU0NJSVNl
cXVlbmNlYCB0bworICAgICAgICAvLyB0ZWxsIGlmIHRoZSBjaHVuayB0aGF0IHdlIGhhdmUgaXMg
dmFsaWQuIFRoZXNlIGJ5dGVzIGFyZSBub3QgcGFydCBvZgorICAgICAgICAvLyB0aGUgcGFydGlh
bCBzZXF1ZW5jZSwgc28gZG9uJ3QgaW5jcmVtZW50IGBtX3BhcnRpYWxTZXF1ZW5jZVNpemVgLgor
ICAgICAgICBib29sIHBhcnRpYWxTZXF1ZW5jZUlzVG9vU2hvcnQgPSBmYWxzZTsKICAgICAgICAg
aWYgKGNvdW50ID4gbV9wYXJ0aWFsU2VxdWVuY2VTaXplKSB7Ci0gICAgICAgICAgICBpZiAoY291
bnQgLSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUgPiBlbmQgLSBzb3VyY2UpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIWZsdXNoKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBuZXcgZGF0YSBp
cyBub3QgZW5vdWdoIHRvIGNvbXBsZXRlIHRoZSBzZXF1ZW5jZSwgc28KLSAgICAgICAgICAgICAg
ICAgICAgLy8gYWRkIGl0IHRvIHRoZSBleGlzdGluZyBwYXJ0aWFsIHNlcXVlbmNlLgotICAgICAg
ICAgICAgICAgICAgICBtZW1jcHkobV9wYXJ0aWFsU2VxdWVuY2UgKyBtX3BhcnRpYWxTZXF1ZW5j
ZVNpemUsIHNvdXJjZSwgZW5kIC0gc291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgbV9wYXJ0
aWFsU2VxdWVuY2VTaXplICs9IGVuZCAtIHNvdXJjZTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBBbiBpbmNvbXBsZXRl
IHBhcnRpYWwgc2VxdWVuY2UgYXQgdGhlIGVuZCBpcyBhbiBlcnJvci4KLSAgICAgICAgICAgICAg
ICBzYXdFcnJvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKHN0b3BPbkVycm9yKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgKmRlc3RpbmF0aW9uKysg
PSByZXBsYWNlbWVudENoYXJhY3RlcjsKLSAgICAgICAgICAgICAgICBtX3BhcnRpYWxTZXF1ZW5j
ZVNpemUgPSAwOwotICAgICAgICAgICAgICAgIHNvdXJjZSA9IGVuZDsKLSAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1lbWNweShtX3BhcnRpYWxT
ZXF1ZW5jZSArIG1fcGFydGlhbFNlcXVlbmNlU2l6ZSwgc291cmNlLCBjb3VudCAtIG1fcGFydGlh
bFNlcXVlbmNlU2l6ZSk7Ci0gICAgICAgICAgICBzb3VyY2UgKz0gY291bnQgLSBtX3BhcnRpYWxT
ZXF1ZW5jZVNpemU7Ci0gICAgICAgICAgICBtX3BhcnRpYWxTZXF1ZW5jZVNpemUgPSBjb3VudDsK
KyAgICAgICAgICAgIHBhcnRpYWxTZXF1ZW5jZUlzVG9vU2hvcnQgPSB0cnVlOworICAgICAgICAg
ICAgbWVtc2V0KG1fcGFydGlhbFNlcXVlbmNlICsgbV9wYXJ0aWFsU2VxdWVuY2VTaXplLCAwLCBj
b3VudCAtIG1fcGFydGlhbFNlcXVlbmNlU2l6ZSk7CiAgICAgICAgIH0KKwogICAgICAgICBpbnQg
Y2hhcmFjdGVyID0gZGVjb2RlTm9uQVNDSUlTZXF1ZW5jZShtX3BhcnRpYWxTZXF1ZW5jZSwgY291
bnQpOworICAgICAgICBpZiAocGFydGlhbFNlcXVlbmNlSXNUb29TaG9ydCkgeworICAgICAgICAg
ICAgQVNTRVJUKGNoYXJhY3RlciA9PSBub25DaGFyYWN0ZXIpOworICAgICAgICAgICAgQVNTRVJU
KGNvdW50IDw9IG1fcGFydGlhbFNlcXVlbmNlU2l6ZSk7CisgICAgICAgICAgICAvLyBJZiB3ZSdy
ZSBub3QgYXQgdGhlIGVuZCwgYW5kIHRoZSBwYXJ0aWFsIHNlcXVlbmNlIHRoYXQgd2UgaGF2ZSBp
cworICAgICAgICAgICAgLy8gaW5jb21wbGV0ZSBidXQgb3RoZXJ3aXNlIHZhbGlkLCBhIG5vbi1j
aGFyYWN0ZXIgaXMgbm90IGFuIGVycm9yLgorICAgICAgICAgICAgaWYgKCFmbHVzaCAmJiBjb3Vu
dCA9PSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKICAgICAgICAgaWYgKGNoYXJhY3RlciA9PSBub25DaGFyYWN0ZXIpIHsKICAgICAg
ICAgICAgIHNhd0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgIGlmIChzdG9wT25FcnJvcikKQEAg
LTM1Myw3ICszNjgsNyBAQCBTdHJpbmcgVGV4dENvZGVjVVRGODo6ZGVjb2RlKGNvbnN0IGNoYXIq
IGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBib29sIGZsdXNoLCBib29sCiAgICAgICAgICAgICBzb3Vy
Y2UgKz0gY291bnQ7CiAgICAgICAgICAgICAqZGVzdGluYXRpb24rKyA9IGNoYXJhY3RlcjsKICAg
ICAgICAgfQotICAgIH0gd2hpbGUgKGZsdXNoICYmIG1fcGFydGlhbFNlcXVlbmNlU2l6ZSk7Cisg
ICAgfSB3aGlsZSAobV9wYXJ0aWFsU2VxdWVuY2VTaXplKTsKIAogICAgIGJ1ZmZlci5zaHJpbmso
ZGVzdGluYXRpb24gLSBidWZmZXIuY2hhcmFjdGVycygpKTsKICAgICBpZiAoZmx1c2gpCkBAIC00
MzMsNyArNDQ4LDcgQEAgdXBDb252ZXJ0VG8xNkJpdDoKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIGRlc3RpbmF0aW9uMTYgPSBhcHBlbmRDaGFyYWN0ZXIoZGVzdGluYXRp
b24xNiwgY2hhcmFjdGVyKTsKICAgICAgICAgfQotICAgIH0gd2hpbGUgKGZsdXNoICYmIG1fcGFy
dGlhbFNlcXVlbmNlU2l6ZSk7CisgICAgfSB3aGlsZSAobV9wYXJ0aWFsU2VxdWVuY2VTaXplKTsK
IAogICAgIGJ1ZmZlcjE2LnNocmluayhkZXN0aW5hdGlvbjE2IC0gYnVmZmVyMTYuY2hhcmFjdGVy
cygpKTsKICAgICBpZiAoZmx1c2gpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBi
YTg3ZGM5ODhhM2RjZTBmYzhiOGZhMWEzOTQ0MjM2ZWM0NTI1NTU4Li4yMzE4MjM5YjQxMGQ4MjQ0
MWQyNzE2YjNiNzg1MmFmOThkMGFlM2IwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMi0xMyAgQW5kcmV1IEJvdGVsbGEgIDxhbmRyZXVAYW5k
cmV1Ym90ZWxsYS5jb20+CisKKyAgICAgICAgVGV4dERlY29kZXIgZG9lc24ndCBkZXRlY3QgaW52
YWxpZCBVVEYtOCBzZXF1ZW5jZXMgZWFybHkgZW5vdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBvcnQgV1BUIHRlc3RzIGZyb20KKyAgICAgICAg
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8zMTUzNy4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1lb2YuYW55
LmpzOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29k
aW5nL3RleHRkZWNvZGVyLXN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1zdHJlYW1pbmcuYW55LmpzOgor
ICAgICAgICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUuZm9yRWFjaC4pOgorICAgICAgICAoc3RyaW5n
X2FwcGVhcmVkX2hlcmUuZm9yRWFjaC50ZXN0KToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9o
ZXJlLmZvckVhY2gpOgorCiAyMDIxLTEyLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgc3RlcCAxNyBvZiBtYWluIGZldGNoIGFsZ29yaXRo
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1lb2YuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1lb2YuYW55LmpzCmlu
ZGV4IDg1ZDYwZWJkM2I2YTdkOGY3YmRiZDhjZTVkY2U0MjZhNmVmODg5YWUuLmU0MWUzMjZhYWNl
MjQ0MGY5ZjQ2OTY5YmJjZTZkODJjMWU1ODI1MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRlY29kZXItZW9mLmFu
eS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL3RleHRkZWNvZGVyLWVvZi5hbnkuanMKQEAgLTEsNyArMSwxNCBAQAogdGVzdCgoKSA9
PiB7CisgIC8vIFRydW5jYXRlZCBzZXF1ZW5jZXMKICAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4dERl
Y29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjBdKSksICJcdUZGRkQiKTsKICAgYXNz
ZXJ0X2VxdWFscyhuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAs
IDB4OUZdKSksICJcdUZGRkQiKTsKICAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4dERlY29kZXIoKS5k
ZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4OUYsIDB4OTJdKSksICJcdUZGRkQiKTsKKwor
ICAvLyBFcnJvcnMgbmVhciBlbmQtb2YtcXVldWUKKyAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4dERl
Y29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4OUYsIDB4NDFdKSksICJcdUZG
RkRBIik7CisgIGFzc2VydF9lcXVhbHMobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50
OEFycmF5KFsweEYwLCAweDQxLCAweDQyXSkpLCAiXHVGRkZEQUIiKTsKKyAgYXNzZXJ0X2VxdWFs
cyhuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4NDEsIDB4
RjBdKSksICJcdUZGRkRBXHVGRkZEIik7CisgIGFzc2VydF9lcXVhbHMobmV3IFRleHREZWNvZGVy
KCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KFsweEYwLCAweDhGLCAweDkyXSkpLCAiXHVGRkZEXHVG
RkZEXHVGRkZEIik7CiB9LCAiVGV4dERlY29kZXIgZW5kLW9mLXF1ZXVlIGhhbmRsaW5nIik7CiAK
IHRlc3QoKCkgPT4gewpAQCAtMTUsNCArMjIsMTkgQEAgdGVzdCgoKSA9PiB7CiAKICAgZGVjb2Rl
ci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4OUZdKSwgeyBzdHJlYW06IHRydWUgfSk7
CiAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4OTJdKSks
ICJcdUZGRkQiKTsKKworICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKG5ldyBVaW50OEFy
cmF5KFsweEYwLCAweDlGXSksIHsgc3RyZWFtOiB0cnVlIH0pLCAiIik7CisgIGFzc2VydF9lcXVh
bHMoZGVjb2Rlci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4NDFdKSwgeyBzdHJlYW06IHRydWUg
fSksICJcdUZGRkRBIik7CisgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoKSwgIiIpOwor
CisgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4
NDEsIDB4NDJdKSwgeyBzdHJlYW06IHRydWUgfSksICJcdUZGRkRBQiIpOworICBhc3NlcnRfZXF1
YWxzKGRlY29kZXIuZGVjb2RlKCksICIiKTsKKworICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVj
b2RlKG5ldyBVaW50OEFycmF5KFsweEYwLCAweDQxLCAweEYwXSksIHsgc3RyZWFtOiB0cnVlIH0p
LCAiXHVGRkZEQSIpOworICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKCksICJcdUZGRkQi
KTsKKworICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKG5ldyBVaW50OEFycmF5KFsweEYw
XSksIHsgc3RyZWFtOiB0cnVlIH0pLCAiIik7CisgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNv
ZGUobmV3IFVpbnQ4QXJyYXkoWzB4OEZdKSwgeyBzdHJlYW06IHRydWUgfSksICJcdUZGRkRcdUZG
RkQiKTsKKyAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShuZXcgVWludDhBcnJheShbMHg5
Ml0pLCB7IHN0cmVhbTogdHJ1ZSB9KSwgIlx1RkZGRCIpOworICBhc3NlcnRfZXF1YWxzKGRlY29k
ZXIuZGVjb2RlKCksICIiKTsKIH0sICJUZXh0RGVjb2RlciBlbmQtb2YtcXVldWUgaGFuZGxpbmcg
dXNpbmcgc3RyZWFtOiB0cnVlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3RleHRkZWNvZGVyLXN0cmVhbWluZy5hbnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1zdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dAppbmRleCBi
OGRlNTViOGNjM2YzOWE5ZTM2OWQyYjUzM2RkMWRhYzgyZjE0OGZmLi45NTFkNzMxMGFjZDZiNThi
OGRhMWYxMzdlNTdhZjEzMDAwYmRiZjkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3RleHRkZWNvZGVyLXN0cmVhbWluZy5h
bnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRlY29kZXItc3RyZWFtaW5nLmFueS1leHBlY3RlZC50eHQK
QEAgLTE0LDYgKzE0LDcgQEAgUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgMiBieXRl
IHdpbmRvdyAoQXJyYXlCdWZmZXIpCiBQQVNTIFN0cmVhbWluZyBkZWNvZGU6IHV0Zi0xNmJlLCAz
IGJ5dGUgd2luZG93IChBcnJheUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5nIGRlY29kZTogdXRmLTE2
YmUsIDQgYnl0ZSB3aW5kb3cgKEFycmF5QnVmZmVyKQogUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1
dGYtMTZiZSwgNSBieXRlIHdpbmRvdyAoQXJyYXlCdWZmZXIpCitQQVNTIFN0cmVhbWluZyBkZWNv
ZGU6IFVURi04IGNodW5rIHRlc3RzIChBcnJheUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5nIGRlY29k
ZTogdXRmLTgsIDEgYnl0ZSB3aW5kb3cgKFNoYXJlZEFycmF5QnVmZmVyKQogUEFTUyBTdHJlYW1p
bmcgZGVjb2RlOiB1dGYtOCwgMiBieXRlIHdpbmRvdyAoU2hhcmVkQXJyYXlCdWZmZXIpCiBQQVNT
IFN0cmVhbWluZyBkZWNvZGU6IHV0Zi04LCAzIGJ5dGUgd2luZG93IChTaGFyZWRBcnJheUJ1ZmZl
cikKQEAgLTI5LDQgKzMwLDUgQEAgUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgMiBi
eXRlIHdpbmRvdyAoU2hhcmVkQXJyYXlCdWZmZXIpCiBQQVNTIFN0cmVhbWluZyBkZWNvZGU6IHV0
Zi0xNmJlLCAzIGJ5dGUgd2luZG93IChTaGFyZWRBcnJheUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5n
IGRlY29kZTogdXRmLTE2YmUsIDQgYnl0ZSB3aW5kb3cgKFNoYXJlZEFycmF5QnVmZmVyKQogUEFT
UyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgNSBieXRlIHdpbmRvdyAoU2hhcmVkQXJyYXlC
dWZmZXIpCitQQVNTIFN0cmVhbWluZyBkZWNvZGU6IFVURi04IGNodW5rIHRlc3RzIChTaGFyZWRB
cnJheUJ1ZmZlcikKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1zdHJlYW1pbmcuYW55LmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVj
b2Rlci1zdHJlYW1pbmcuYW55LmpzCmluZGV4IDU3MTdjMmRiZTAwYTJhNTU3MjIyY2RmOWQ5NDJk
ZTIwZWQ5YjYzMzIuLmU0NzNhNzA1NmUyNGQzZGJjNDM4M2JiOTA0ZjE0ZTk5ZTU1OWQyZjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5j
b2RpbmcvdGV4dGRlY29kZXItc3RyZWFtaW5nLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3RleHRkZWNvZGVyLXN0cmVhbWlu
Zy5hbnkuanMKQEAgLTI4LDEwICsyOCwxMSBAQCB2YXIgb2N0ZXRzID0gewogICAgICAgICAgICAg
ICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGVuY29kaW5nKTsKICAgICAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVuY29kZWQubGVuZ3RoOyBpICs9IGxlbikgewogICAg
ICAgICAgICAgICAgICAgICB2YXIgc3ViID0gW107Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGogPSBpOyBqIDwgZW5jb2RlZC5sZW5ndGggJiYgaiA8IGkgKyBsZW47ICsraikKKyAgICAg
ICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IGk7IGogPCBlbmNvZGVkLmxlbmd0aCAmJiBqIDwg
aSArIGxlbjsgKytqKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdWIucHVzaChlbmNvZGVk
W2pdKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1aW50QXJyYXkgPSBuZXcgVWludDhB
cnJheShjcmVhdGVCdWZmZXIoYXJyYXlCdWZmZXJPclNoYXJlZEFycmF5QnVmZmVyLCBzdWIubGVu
Z3RoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50QXJyYXkuc2V0KHN1Yik7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdmFyIHVpbnRBcnJheSA9IG5l
dyBVaW50OEFycmF5KGNyZWF0ZUJ1ZmZlcihhcnJheUJ1ZmZlck9yU2hhcmVkQXJyYXlCdWZmZXIs
IHN1Yi5sZW5ndGgpKTsKKyAgICAgICAgICAgICAgICAgICAgdWludEFycmF5LnNldChzdWIpOwog
ICAgICAgICAgICAgICAgICAgICBvdXQgKz0gZGVjb2Rlci5kZWNvZGUodWludEFycmF5LCB7c3Ry
ZWFtOiB0cnVlfSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG91dCArPSBk
ZWNvZGVyLmRlY29kZSgpOwpAQCAtMzksNCArNDAsNTAgQEAgdmFyIG9jdGV0cyA9IHsKICAgICAg
ICAgICAgIH0sICdTdHJlYW1pbmcgZGVjb2RlOiAnICsgZW5jb2RpbmcgKyAnLCAnICsgbGVuICsg
JyBieXRlIHdpbmRvdyAoJyArIGFycmF5QnVmZmVyT3JTaGFyZWRBcnJheUJ1ZmZlciArICcpJyk7
CiAgICAgICAgIH0KICAgICB9KTsKKworICAgIHRlc3QoKCkgPT4geworICAgICAgICBmdW5jdGlv
biBieXRlcyhieXRlQXJyYXkpIHsKKyAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgVWludDhB
cnJheShjcmVhdGVCdWZmZXIoYXJyYXlCdWZmZXJPclNoYXJlZEFycmF5QnVmZmVyLCBieXRlQXJy
YXkubGVuZ3RoKSk7CisgICAgICAgICAgICB2aWV3LnNldChieXRlQXJyYXkpOworICAgICAgICAg
ICAgcmV0dXJuIHZpZXc7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBkZWNvZGVyID0gbmV3
IFRleHREZWNvZGVyKCk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShi
eXRlcyhbMHhDMV0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkQiKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhkZWNvZGVyLmRlY29kZSgpLCAiIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhk
ZWNvZGVyLmRlY29kZShieXRlcyhbMHhGNV0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkQiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZSgpLCAiIik7CisKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhFMCwgMHg0MV0pLCB7c3RyZWFt
OiB0cnVlfSksICJcdUZGRkRBIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNv
ZGUoYnl0ZXMoWzB4NDJdKSksICJCIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVy
LmRlY29kZShieXRlcyhbMHhFMCwgMHg4MF0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkRcdUZG
RkQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg4MF0p
KSwgIlx1RkZGRCIpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0
ZXMoWzB4RUQsIDB4QTBdKSwge3N0cmVhbTogdHJ1ZX0pLCAiXHVGRkZEXHVGRkZEIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4ODBdKSksICJcdUZGRkQi
KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKGJ5dGVzKFsweEYwLCAw
eDQxXSksIHtzdHJlYW06IHRydWV9KSwgIlx1RkZGREEiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg0Ml0pLCB7c3RyZWFtOiB0cnVlfSksICJCIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4NDNdKSksICJDIik7
CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhGMCwgMHg4
MF0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkRcdUZGRkQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg4MF0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZG
RkQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg4MF0p
KSwgIlx1RkZGRCIpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0
ZXMoWzB4RjQsIDB4QTBdKSwge3N0cmVhbTogdHJ1ZX0pLCAiXHVGRkZEXHVGRkZEIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4ODBdKSwge3N0cmVhbTog
dHJ1ZX0pLCAiXHVGRkZEIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUo
Ynl0ZXMoWzB4ODBdKSksICJcdUZGRkQiKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKGRlY29k
ZXIuZGVjb2RlKGJ5dGVzKFsweEYwLCAweDkwLCAweDQxXSksIHtzdHJlYW06IHRydWV9KSwgIlx1
RkZGREEiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg0
Ml0pKSwgIkIiKTsKKworICAgICAgICAvLyA0LWJ5dGUgVVRGLTggc2VxdWVuY2VzIGFsd2F5cyBj
b3JyZXNwb25kIHRvIG5vbi1CTVAgY2hhcmFjdGVycy4gSGVyZQorICAgICAgICAvLyB3ZSBtYWtl
IHN1cmUgdGhhdCwgYWx0aG91Z2ggdGhlIGZpcnN0IDMgYnl0ZXMgYXJlIGVub3VnaCB0byBlbWl0
IHRoZQorICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSwgaXQgb25seSBnZXRzIGVtaXR0ZWQgd2hl
biB0aGUgZm91cnRoIGJ5dGUgaXMgcmVhZC4KKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVy
LmRlY29kZShieXRlcyhbMHhGMCwgMHg5RiwgMHg5Ml0pLCB7c3RyZWFtOiB0cnVlfSksICIiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhBOV0pKSwgIlx1
ezFGNEE5fSIpOworICAgIH0sIGBTdHJlYW1pbmcgZGVjb2RlOiBVVEYtOCBjaHVuayB0ZXN0cyAo
JHthcnJheUJ1ZmZlck9yU2hhcmVkQXJyYXlCdWZmZXJ9KWApOwogfSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447070</attachid>
            <date>2021-12-13 14:38:43 -0800</date>
            <delta_ts>2021-12-14 08:30:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233921-20211213233841.patch</filename>
            <type>text/plain</type>
            <size>18740</size>
            <attacher name="Andreu Botella">andreu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAxZjg5ZDA3
NTQ5ODFjYjExZjZjNjU4NWRjOWRlZDIyYWJmOGU4YmE5Li40NjQwMjFmZjYzNjBjODM0YjJkYTUy
YzNkOGYxMDFmOTZhN2UyZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAor
MjAyMS0xMi0xMyAgQW5kcmV1IEJvdGVsbGEgIDxhbmRyZXVAYW5kcmV1Ym90ZWxsYS5jb20+CisK
KyAgICAgICAgVGV4dERlY29kZXIgZG9lc24ndCBkZXRlY3QgaW52YWxpZCBVVEYtOCBzZXF1ZW5j
ZXMgZWFybHkgZW5vdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzM5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBzdHJlYW1pbmcgbW9kZSwgd2hlbiBUZXh0Q29kZWNVVEY4IGZvdW5kIGEgbGVh
ZCBieXRlIGZvciB3aGljaCBhCisgICAgICAgIHZhbGlkIHNlcXVlbmNlIHdvdWxkIHNwYW4gbG9u
Z2VyIHRoYW4gdGhlIGN1cnJlbnRseSBhdmFpbGFibGUgYnl0ZXMsIGl0CisgICAgICAgIHVzZWQg
dG8gZGVmZXIgYW55IHByb2Nlc3Npbmcgb2YgdGhhdCBzZXF1ZW5jZSB1bnRpbCBhbGwgc3VjaCBi
eXRlcyB3ZXJlCisgICAgICAgIGF2YWlsYWJsZSwgZXZlbiBpZiBlcnJvcnMgY291bGQgYmUgZGV0
ZWN0ZWQgZWFybGllci4gQWRkaXRpb25hbGx5LCBpZgorICAgICAgICB0aGUgc3RyZWFtIHdhcyBm
bHVzaGVkIGF0IHRoYXQgcG9pbnQsIGl0IHdvdWxkIGVtaXQgYSBzaW5nbGUgcmVwbGFjZW1lbnQK
KyAgICAgICAgY2hhcmFjdGVyLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHJlbWFpbmluZyBi
eXRlcyBmb3JtZWQgYSB2YWxpZAorICAgICAgICBzZXF1ZW5jZSwgZXZlbiBpZiB0aGV5IGhhZCBs
ZWFkIGJ5dGVzLCByZXN1bHRpbmcgaW4gc2tpcHBlZCBjaGFyYWN0ZXJzLgorICAgICAgICBCb3Ro
IGlzc3VlcyBhcmUgc29sdmVkIGJ5IGFsd2F5cyBjaGVja2luZyB0aGUgdmFsaWRpdHkgb2YgcGFy
dGlhbAorICAgICAgICBzZXF1ZW5jZXMuCisKKyAgICAgICAgVGhlIGFwcHJvYWNoIHVzZWQgaW4g
dGhpcyBwYXRjaCB1c2VzIGBkZWNvZGVOb25BU0NJSVNlcXVlbmNlYCB0byBmaW5kCisgICAgICAg
IHRoZSBsZW5ndGggb2YgdGhlIG1heGltYWwgc3VicGFydCBvZiBhIHBhcnRpYWwgc2VxdWVuY2Us
IGFuZCBpZiB0aGUKKyAgICAgICAgbGVuZ3RoIGlzIGVxdWFsIHRvIHRoZSBwYXJ0aWFsIHNlcXVl
bmNlIHNpemUgYW5kIHdlJ3JlIG5vdCBhdCBFT0YsIHdlCisgICAgICAgIGRvbid0IGVtaXQgdGhl
IGVycm9yLiBUaGlzIGlzIGVub3VnaCB0byBoYW5kbGUgdGhlIG1pc3NpbmcgY2hhcmFjdGVycyBh
dAorICAgICAgICBFT0YsIGFuZCB3aGVuIGNvbWJpbmVkIHdpdGggY2hhbmdpbmcgdGhlIGNvbmRp
dGlvbiBvZiB0aGUgb3V0ZXIgZG8td2hpbGUKKyAgICAgICAgbG9vcHMgaW4gdGhlIGBkZWNvZGVg
IG1ldGhvZCBmcm9tIGBmbHVzaCAmJiBtX3BhcnRpYWxTZXF1ZW5jZVNpemVgIHRvCisgICAgICAg
IG9ubHkgYG1fcGFydGlhbFNlcXVlbmNlU2l6ZWAsIGl0IGFsc28gZml4ZXMgdGhlIHN0cmVhbWlu
ZyBpc3N1ZS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGEgcG9ydCBvZgorICAgICAgICBodHRw
czovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMzI2
MzkzOAorCisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL3RleHRkZWNvZGVyLWVvZi5hbnkuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1zdHJlYW0uYW55Lmh0
bWwKKworICAgICAgICAqIHBhbC90ZXh0L1RleHRDb2RlY1VURjguY3BwOgorICAgICAgICAoUEFM
OjpUZXh0Q29kZWNVVEY4OjpoYW5kbGVQYXJ0aWFsU2VxdWVuY2UpOiBDaGFuZ2VkIHRvIGFsd2F5
cyBwcm9jZXNzCisgICAgICAgIHBhcnRpYWwgc2VxdWVuY2VzLgorICAgICAgICAoUEFMOjpUZXh0
Q29kZWNVVEY4OjpkZWNvZGUpOiBDaGFuZ2VkIHRoZSBsb29wIGNvbmRpdGlvbiBvZiB0aGUgb3V0
ZXIKKyAgICAgICAgZG8td2hpbGUgbG9vcHMgdG8gbm90IGRlcGVuZCBvbiBgZmx1c2hgLgorCiAy
MDIxLTEyLTExICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4Njg5My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvdGV4dC9UZXh0Q29kZWNVVEY4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvdGV4dC9UZXh0Q29kZWNVVEY4LmNwcAppbmRleCBkMGNhNGE2MDkxOTBlZjA3YTUwMDYy
Yzg4MGExODIzZjZlODJjZWRhLi44NWM5MWY3ZGJlNWFjN2IxYzRlYzA3NGU4ZWQ3ZDdiYWUwMmFl
MGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3RleHQvVGV4dENvZGVjVVRG
OC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC90ZXh0L1RleHRDb2RlY1VURjguY3Bw
CkBAIC0xODksMjUgKzE4OSwzNCBAQCBib29sIFRleHRDb2RlY1VURjg6OmhhbmRsZVBhcnRpYWxT
ZXF1ZW5jZShMQ2hhciomIGRlc3RpbmF0aW9uLCBjb25zdCB1aW50OF90KiYgcwogICAgICAgICBp
ZiAoIWNvdW50KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAgICAgLy8gQ29weSBm
cm9tIGBzb3VyY2VgIHVudGlsIHdlIGhhdmUgYGNvdW50YCBieXRlcy4KKyAgICAgICAgaWYgKGNv
dW50ID4gbV9wYXJ0aWFsU2VxdWVuY2VTaXplICYmIGVuZCA+IHNvdXJjZSkgeworICAgICAgICAg
ICAgc2l6ZV90IGFkZGl0aW9uYWxCeXRlcyA9IHN0ZDo6bWluPHNpemVfdD4oY291bnQgLSBtX3Bh
cnRpYWxTZXF1ZW5jZVNpemUsIGVuZCAtIHNvdXJjZSk7CisgICAgICAgICAgICBtZW1jcHkobV9w
YXJ0aWFsU2VxdWVuY2UgKyBtX3BhcnRpYWxTZXF1ZW5jZVNpemUsIHNvdXJjZSwgYWRkaXRpb25h
bEJ5dGVzKTsKKyAgICAgICAgICAgIHNvdXJjZSArPSBhZGRpdGlvbmFsQnl0ZXM7CisgICAgICAg
ICAgICBtX3BhcnRpYWxTZXF1ZW5jZVNpemUgKz0gYWRkaXRpb25hbEJ5dGVzOworICAgICAgICB9
CisKKyAgICAgICAgLy8gSWYgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBgY291bnRgIGJ5dGVzLCBmaWxs
IHRoZSByZXN0IHdpdGggemVyb3MgKGFueQorICAgICAgICAvLyBvdGhlciBsZWFkIGJ5dGUgd291
bGQgZG8pLCBzbyB3ZSBjYW4gcnVuIGBkZWNvZGVOb25BU0NJSVNlcXVlbmNlYCB0bworICAgICAg
ICAvLyB0ZWxsIGlmIHRoZSBjaHVuayB0aGF0IHdlIGhhdmUgaXMgdmFsaWQuIFRoZXNlIGJ5dGVz
IGFyZSBub3QgcGFydCBvZgorICAgICAgICAvLyB0aGUgcGFydGlhbCBzZXF1ZW5jZSwgc28gZG9u
J3QgaW5jcmVtZW50IGBtX3BhcnRpYWxTZXF1ZW5jZVNpemVgLgorICAgICAgICBib29sIHBhcnRp
YWxTZXF1ZW5jZUlzVG9vU2hvcnQgPSBmYWxzZTsKICAgICAgICAgaWYgKGNvdW50ID4gbV9wYXJ0
aWFsU2VxdWVuY2VTaXplKSB7Ci0gICAgICAgICAgICBpZiAoY291bnQgLSBtX3BhcnRpYWxTZXF1
ZW5jZVNpemUgPiBlbmQgLSBzb3VyY2UpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWZsdXNoKSB7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBuZXcgZGF0YSBpcyBub3QgZW5vdWdoIHRvIGNv
bXBsZXRlIHRoZSBzZXF1ZW5jZSwgc28KLSAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGl0IHRv
IHRoZSBleGlzdGluZyBwYXJ0aWFsIHNlcXVlbmNlLgotICAgICAgICAgICAgICAgICAgICBtZW1j
cHkobV9wYXJ0aWFsU2VxdWVuY2UgKyBtX3BhcnRpYWxTZXF1ZW5jZVNpemUsIHNvdXJjZSwgZW5k
IC0gc291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgbV9wYXJ0aWFsU2VxdWVuY2VTaXplICs9
IGVuZCAtIHNvdXJjZTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBBbiBpbmNvbXBsZXRlIHBhcnRpYWwgc2Vx
dWVuY2UgYXQgdGhlIGVuZCBpcyBhbiBlcnJvciwgYnV0IGl0IHdpbGwgY3JlYXRlCi0gICAgICAg
ICAgICAgICAgLy8gYSAxNiBiaXQgc3RyaW5nIGR1ZSB0byB0aGUgcmVwbGFjZW1lbnRDaGFyYWN0
ZXIuIExldCB0aGUgMTYgYml0IHBhdGggaGFuZGxlCi0gICAgICAgICAgICAgICAgLy8gdGhlIGVy
cm9yLgotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbWVtY3B5KG1fcGFydGlhbFNlcXVlbmNlICsgbV9wYXJ0aWFsU2VxdWVuY2VTaXplLCBz
b3VyY2UsIGNvdW50IC0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplKTsKLSAgICAgICAgICAgIHNvdXJj
ZSArPSBjb3VudCAtIG1fcGFydGlhbFNlcXVlbmNlU2l6ZTsKLSAgICAgICAgICAgIG1fcGFydGlh
bFNlcXVlbmNlU2l6ZSA9IGNvdW50OworICAgICAgICAgICAgcGFydGlhbFNlcXVlbmNlSXNUb29T
aG9ydCA9IHRydWU7CisgICAgICAgICAgICBtZW1zZXQobV9wYXJ0aWFsU2VxdWVuY2UgKyBtX3Bh
cnRpYWxTZXF1ZW5jZVNpemUsIDAsIGNvdW50IC0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplKTsKICAg
ICAgICAgfQorCiAgICAgICAgIGludCBjaGFyYWN0ZXIgPSBkZWNvZGVOb25BU0NJSVNlcXVlbmNl
KG1fcGFydGlhbFNlcXVlbmNlLCBjb3VudCk7CisgICAgICAgIGlmIChwYXJ0aWFsU2VxdWVuY2VJ
c1Rvb1Nob3J0KSB7CisgICAgICAgICAgICBBU1NFUlQoY2hhcmFjdGVyID09IG5vbkNoYXJhY3Rl
cik7CisgICAgICAgICAgICBBU1NFUlQoY291bnQgPD0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplKTsK
KyAgICAgICAgICAgIC8vIElmIHdlJ3JlIG5vdCBhdCB0aGUgZW5kLCBhbmQgdGhlIHBhcnRpYWwg
c2VxdWVuY2UgdGhhdCB3ZSBoYXZlIGlzCisgICAgICAgICAgICAvLyBpbmNvbXBsZXRlIGJ1dCBv
dGhlcndpc2UgdmFsaWQsIGEgbm9uLWNoYXJhY3RlciBpcyBub3QgYW4gZXJyb3IuCisgICAgICAg
ICAgICBpZiAoIWZsdXNoICYmIGNvdW50ID09IG1fcGFydGlhbFNlcXVlbmNlU2l6ZSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIWlzTGF0
aW4xKGNoYXJhY3RlcikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMjM2LDI5ICsy
NDUsMzUgQEAgdm9pZCBUZXh0Q29kZWNVVEY4OjpoYW5kbGVQYXJ0aWFsU2VxdWVuY2UoVUNoYXIq
JiBkZXN0aW5hdGlvbiwgY29uc3QgdWludDhfdComIHMKICAgICAgICAgICAgIGNvbnN1bWVQYXJ0
aWFsU2VxdWVuY2VCeXRlKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorCisg
ICAgICAgIC8vIENvcHkgZnJvbSBgc291cmNlYCB1bnRpbCB3ZSBoYXZlIGBjb3VudGAgYnl0ZXMu
CisgICAgICAgIGlmIChjb3VudCA+IG1fcGFydGlhbFNlcXVlbmNlU2l6ZSAmJiBlbmQgPiBzb3Vy
Y2UpIHsKKyAgICAgICAgICAgIHNpemVfdCBhZGRpdGlvbmFsQnl0ZXMgPSBzdGQ6Om1pbjxzaXpl
X3Q+KGNvdW50IC0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplLCBlbmQgLSBzb3VyY2UpOworICAgICAg
ICAgICAgbWVtY3B5KG1fcGFydGlhbFNlcXVlbmNlICsgbV9wYXJ0aWFsU2VxdWVuY2VTaXplLCBz
b3VyY2UsIGFkZGl0aW9uYWxCeXRlcyk7CisgICAgICAgICAgICBzb3VyY2UgKz0gYWRkaXRpb25h
bEJ5dGVzOworICAgICAgICAgICAgbV9wYXJ0aWFsU2VxdWVuY2VTaXplICs9IGFkZGl0aW9uYWxC
eXRlczsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIHN0aWxsIGRvbid0IGhhdmUgYGNv
dW50YCBieXRlcywgZmlsbCB0aGUgcmVzdCB3aXRoIHplcm9zIChhbnkKKyAgICAgICAgLy8gb3Ro
ZXIgbGVhZCBieXRlIHdvdWxkIGRvKSwgc28gd2UgY2FuIHJ1biBgZGVjb2RlTm9uQVNDSUlTZXF1
ZW5jZWAgdG8KKyAgICAgICAgLy8gdGVsbCBpZiB0aGUgY2h1bmsgdGhhdCB3ZSBoYXZlIGlzIHZh
bGlkLiBUaGVzZSBieXRlcyBhcmUgbm90IHBhcnQgb2YKKyAgICAgICAgLy8gdGhlIHBhcnRpYWwg
c2VxdWVuY2UsIHNvIGRvbid0IGluY3JlbWVudCBgbV9wYXJ0aWFsU2VxdWVuY2VTaXplYC4KKyAg
ICAgICAgYm9vbCBwYXJ0aWFsU2VxdWVuY2VJc1Rvb1Nob3J0ID0gZmFsc2U7CiAgICAgICAgIGlm
IChjb3VudCA+IG1fcGFydGlhbFNlcXVlbmNlU2l6ZSkgewotICAgICAgICAgICAgaWYgKGNvdW50
IC0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplID4gZW5kIC0gc291cmNlKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFmbHVzaCkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbmV3IGRhdGEgaXMg
bm90IGVub3VnaCB0byBjb21wbGV0ZSB0aGUgc2VxdWVuY2UsIHNvCi0gICAgICAgICAgICAgICAg
ICAgIC8vIGFkZCBpdCB0byB0aGUgZXhpc3RpbmcgcGFydGlhbCBzZXF1ZW5jZS4KLSAgICAgICAg
ICAgICAgICAgICAgbWVtY3B5KG1fcGFydGlhbFNlcXVlbmNlICsgbV9wYXJ0aWFsU2VxdWVuY2VT
aXplLCBzb3VyY2UsIGVuZCAtIHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fcGFydGlh
bFNlcXVlbmNlU2l6ZSArPSBlbmQgLSBzb3VyY2U7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLy8gQW4gaW5jb21wbGV0ZSBw
YXJ0aWFsIHNlcXVlbmNlIGF0IHRoZSBlbmQgaXMgYW4gZXJyb3IuCi0gICAgICAgICAgICAgICAg
c2F3RXJyb3IgPSB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChzdG9wT25FcnJvcikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICpkZXN0aW5hdGlvbisrID0g
cmVwbGFjZW1lbnRDaGFyYWN0ZXI7Ci0gICAgICAgICAgICAgICAgbV9wYXJ0aWFsU2VxdWVuY2VT
aXplID0gMDsKLSAgICAgICAgICAgICAgICBzb3VyY2UgPSBlbmQ7Ci0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtZW1jcHkobV9wYXJ0aWFsU2Vx
dWVuY2UgKyBtX3BhcnRpYWxTZXF1ZW5jZVNpemUsIHNvdXJjZSwgY291bnQgLSBtX3BhcnRpYWxT
ZXF1ZW5jZVNpemUpOwotICAgICAgICAgICAgc291cmNlICs9IGNvdW50IC0gbV9wYXJ0aWFsU2Vx
dWVuY2VTaXplOwotICAgICAgICAgICAgbV9wYXJ0aWFsU2VxdWVuY2VTaXplID0gY291bnQ7Cisg
ICAgICAgICAgICBwYXJ0aWFsU2VxdWVuY2VJc1Rvb1Nob3J0ID0gdHJ1ZTsKKyAgICAgICAgICAg
IG1lbXNldChtX3BhcnRpYWxTZXF1ZW5jZSArIG1fcGFydGlhbFNlcXVlbmNlU2l6ZSwgMCwgY291
bnQgLSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUpOwogICAgICAgICB9CisKICAgICAgICAgaW50IGNo
YXJhY3RlciA9IGRlY29kZU5vbkFTQ0lJU2VxdWVuY2UobV9wYXJ0aWFsU2VxdWVuY2UsIGNvdW50
KTsKKyAgICAgICAgaWYgKHBhcnRpYWxTZXF1ZW5jZUlzVG9vU2hvcnQpIHsKKyAgICAgICAgICAg
IEFTU0VSVChjaGFyYWN0ZXIgPT0gbm9uQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgIEFTU0VSVChj
b3VudCA8PSBtX3BhcnRpYWxTZXF1ZW5jZVNpemUpOworICAgICAgICAgICAgLy8gSWYgd2UncmUg
bm90IGF0IHRoZSBlbmQsIGFuZCB0aGUgcGFydGlhbCBzZXF1ZW5jZSB0aGF0IHdlIGhhdmUgaXMK
KyAgICAgICAgICAgIC8vIGluY29tcGxldGUgYnV0IG90aGVyd2lzZSB2YWxpZCwgYSBub24tY2hh
cmFjdGVyIGlzIG5vdCBhbiBlcnJvci4KKyAgICAgICAgICAgIGlmICghZmx1c2ggJiYgY291bnQg
PT0gbV9wYXJ0aWFsU2VxdWVuY2VTaXplKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCiAgICAgICAgIGlmIChjaGFyYWN0ZXIgPT0gbm9uQ2hhcmFjdGVyKSB7CiAgICAgICAg
ICAgICBzYXdFcnJvciA9IHRydWU7CiAgICAgICAgICAgICBpZiAoc3RvcE9uRXJyb3IpCkBAIC0z
NTMsNyArMzY4LDcgQEAgU3RyaW5nIFRleHRDb2RlY1VURjg6OmRlY29kZShjb25zdCBjaGFyKiBi
eXRlcywgc2l6ZV90IGxlbmd0aCwgYm9vbCBmbHVzaCwgYm9vbAogICAgICAgICAgICAgc291cmNl
ICs9IGNvdW50OwogICAgICAgICAgICAgKmRlc3RpbmF0aW9uKysgPSBjaGFyYWN0ZXI7CiAgICAg
ICAgIH0KLSAgICB9IHdoaWxlIChmbHVzaCAmJiBtX3BhcnRpYWxTZXF1ZW5jZVNpemUpOworICAg
IH0gd2hpbGUgKG1fcGFydGlhbFNlcXVlbmNlU2l6ZSk7CiAKICAgICBidWZmZXIuc2hyaW5rKGRl
c3RpbmF0aW9uIC0gYnVmZmVyLmNoYXJhY3RlcnMoKSk7CiAgICAgaWYgKGZsdXNoKQpAQCAtNDMz
LDcgKzQ0OCw3IEBAIHVwQ29udmVydFRvMTZCaXQ6CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICBkZXN0aW5hdGlvbjE2ID0gYXBwZW5kQ2hhcmFjdGVyKGRlc3RpbmF0aW9u
MTYsIGNoYXJhY3Rlcik7CiAgICAgICAgIH0KLSAgICB9IHdoaWxlIChmbHVzaCAmJiBtX3BhcnRp
YWxTZXF1ZW5jZVNpemUpOworICAgIH0gd2hpbGUgKG1fcGFydGlhbFNlcXVlbmNlU2l6ZSk7CiAK
ICAgICBidWZmZXIxNi5zaHJpbmsoZGVzdGluYXRpb24xNiAtIGJ1ZmZlcjE2LmNoYXJhY3RlcnMo
KSk7CiAgICAgaWYgKGZsdXNoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDJk
Yjk4Mzg5MzA1YjBmNDVlYjYzOGEyNDRkNzNhYjM1NjUyZjA3NS4uNmYzNjg3MmZjYjU3YmJjYzVh
YzE1MjA1NzZmMzQ0ZDY1YjE5MDI4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMjEtMTItMTMgIEFuZHJldSBCb3RlbGxhICA8YW5kcmV1QGFuZHJl
dWJvdGVsbGEuY29tPgorCisgICAgICAgIFRleHREZWNvZGVyIGRvZXNuJ3QgZGV0ZWN0IGludmFs
aWQgVVRGLTggc2VxdWVuY2VzIGVhcmx5IGVub3VnaAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wb3J0IFdQVCB0ZXN0cyBmcm9tCisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvMzE1MzcuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRlY29kZXItZW9mLmFueS5q
czoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGlu
Zy90ZXh0ZGVjb2Rlci1zdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRlY29kZXItc3RyZWFtaW5nLmFueS5qczoKKyAg
ICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLmZvckVhY2guKToKKyAgICAgICAgKHN0cmluZ19h
cHBlYXJlZF9oZXJlLmZvckVhY2gudGVzdCk6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVy
ZS5mb3JFYWNoKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRl
Y29kZXItc3RyZWFtaW5nLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTEyLTEzICBT
ZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3Mt
d3JpdGluZy1tb2Rlc10gVXNlIHRoZSBjb3JyZWN0IG1hcmdpbnMgaW4gY29tcHV0ZUlubGluZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMgaW4gb3J0aG9nb25hbCBmbG93cwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVj
b2Rlci1lb2YuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1lb2YuYW55LmpzCmluZGV4IDg1ZDYwZWJkM2I2YTdk
OGY3YmRiZDhjZTVkY2U0MjZhNmVmODg5YWUuLmU0MWUzMjZhYWNlMjQ0MGY5ZjQ2OTY5YmJjZTZk
ODJjMWU1ODI1MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRlY29kZXItZW9mLmFueS5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3RleHRkZWNvZGVy
LWVvZi5hbnkuanMKQEAgLTEsNyArMSwxNCBAQAogdGVzdCgoKSA9PiB7CisgIC8vIFRydW5jYXRl
ZCBzZXF1ZW5jZXMKICAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3
IFVpbnQ4QXJyYXkoWzB4RjBdKSksICJcdUZGRkQiKTsKICAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4
dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4OUZdKSksICJcdUZGRkQi
KTsKICAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJy
YXkoWzB4RjAsIDB4OUYsIDB4OTJdKSksICJcdUZGRkQiKTsKKworICAvLyBFcnJvcnMgbmVhciBl
bmQtb2YtcXVldWUKKyAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3
IFVpbnQ4QXJyYXkoWzB4RjAsIDB4OUYsIDB4NDFdKSksICJcdUZGRkRBIik7CisgIGFzc2VydF9l
cXVhbHMobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KFsweEYwLCAweDQx
LCAweDQyXSkpLCAiXHVGRkZEQUIiKTsKKyAgYXNzZXJ0X2VxdWFscyhuZXcgVGV4dERlY29kZXIo
KS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4NDEsIDB4RjBdKSksICJcdUZGRkRBXHVG
RkZEIik7CisgIGFzc2VydF9lcXVhbHMobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50
OEFycmF5KFsweEYwLCAweDhGLCAweDkyXSkpLCAiXHVGRkZEXHVGRkZEXHVGRkZEIik7CiB9LCAi
VGV4dERlY29kZXIgZW5kLW9mLXF1ZXVlIGhhbmRsaW5nIik7CiAKIHRlc3QoKCkgPT4gewpAQCAt
MTUsNCArMjIsMTkgQEAgdGVzdCgoKSA9PiB7CiAKICAgZGVjb2Rlci5kZWNvZGUobmV3IFVpbnQ4
QXJyYXkoWzB4RjAsIDB4OUZdKSwgeyBzdHJlYW06IHRydWUgfSk7CiAgIGFzc2VydF9lcXVhbHMo
ZGVjb2Rlci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4OTJdKSksICJcdUZGRkQiKTsKKworICBh
c3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKG5ldyBVaW50OEFycmF5KFsweEYwLCAweDlGXSks
IHsgc3RyZWFtOiB0cnVlIH0pLCAiIik7CisgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUo
bmV3IFVpbnQ4QXJyYXkoWzB4NDFdKSwgeyBzdHJlYW06IHRydWUgfSksICJcdUZGRkRBIik7Cisg
IGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoKSwgIiIpOworCisgIGFzc2VydF9lcXVhbHMo
ZGVjb2Rlci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoWzB4RjAsIDB4NDEsIDB4NDJdKSwgeyBzdHJl
YW06IHRydWUgfSksICJcdUZGRkRBQiIpOworICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2Rl
KCksICIiKTsKKworICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKG5ldyBVaW50OEFycmF5
KFsweEYwLCAweDQxLCAweEYwXSksIHsgc3RyZWFtOiB0cnVlIH0pLCAiXHVGRkZEQSIpOworICBh
c3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKCksICJcdUZGRkQiKTsKKworICBhc3NlcnRfZXF1
YWxzKGRlY29kZXIuZGVjb2RlKG5ldyBVaW50OEFycmF5KFsweEYwXSksIHsgc3RyZWFtOiB0cnVl
IH0pLCAiIik7CisgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUobmV3IFVpbnQ4QXJyYXko
WzB4OEZdKSwgeyBzdHJlYW06IHRydWUgfSksICJcdUZGRkRcdUZGRkQiKTsKKyAgYXNzZXJ0X2Vx
dWFscyhkZWNvZGVyLmRlY29kZShuZXcgVWludDhBcnJheShbMHg5Ml0pLCB7IHN0cmVhbTogdHJ1
ZSB9KSwgIlx1RkZGRCIpOworICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKCksICIiKTsK
IH0sICJUZXh0RGVjb2RlciBlbmQtb2YtcXVldWUgaGFuZGxpbmcgdXNpbmcgc3RyZWFtOiB0cnVl
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2VuY29kaW5nL3RleHRkZWNvZGVyLXN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVj
b2Rlci1zdHJlYW1pbmcuYW55LWV4cGVjdGVkLnR4dAppbmRleCBiOGRlNTViOGNjM2YzOWE5ZTM2
OWQyYjUzM2RkMWRhYzgyZjE0OGZmLi45NTFkNzMxMGFjZDZiNThiOGRhMWYxMzdlNTdhZjEzMDAw
YmRiZjkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2VuY29kaW5nL3RleHRkZWNvZGVyLXN0cmVhbWluZy5hbnktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rpbmcv
dGV4dGRlY29kZXItc3RyZWFtaW5nLmFueS1leHBlY3RlZC50eHQKQEAgLTE0LDYgKzE0LDcgQEAg
UEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgMiBieXRlIHdpbmRvdyAoQXJyYXlCdWZm
ZXIpCiBQQVNTIFN0cmVhbWluZyBkZWNvZGU6IHV0Zi0xNmJlLCAzIGJ5dGUgd2luZG93IChBcnJh
eUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5nIGRlY29kZTogdXRmLTE2YmUsIDQgYnl0ZSB3aW5kb3cg
KEFycmF5QnVmZmVyKQogUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgNSBieXRlIHdp
bmRvdyAoQXJyYXlCdWZmZXIpCitQQVNTIFN0cmVhbWluZyBkZWNvZGU6IFVURi04IGNodW5rIHRl
c3RzIChBcnJheUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5nIGRlY29kZTogdXRmLTgsIDEgYnl0ZSB3
aW5kb3cgKFNoYXJlZEFycmF5QnVmZmVyKQogUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtOCwg
MiBieXRlIHdpbmRvdyAoU2hhcmVkQXJyYXlCdWZmZXIpCiBQQVNTIFN0cmVhbWluZyBkZWNvZGU6
IHV0Zi04LCAzIGJ5dGUgd2luZG93IChTaGFyZWRBcnJheUJ1ZmZlcikKQEAgLTI5LDQgKzMwLDUg
QEAgUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgMiBieXRlIHdpbmRvdyAoU2hhcmVk
QXJyYXlCdWZmZXIpCiBQQVNTIFN0cmVhbWluZyBkZWNvZGU6IHV0Zi0xNmJlLCAzIGJ5dGUgd2lu
ZG93IChTaGFyZWRBcnJheUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5nIGRlY29kZTogdXRmLTE2YmUs
IDQgYnl0ZSB3aW5kb3cgKFNoYXJlZEFycmF5QnVmZmVyKQogUEFTUyBTdHJlYW1pbmcgZGVjb2Rl
OiB1dGYtMTZiZSwgNSBieXRlIHdpbmRvdyAoU2hhcmVkQXJyYXlCdWZmZXIpCitQQVNTIFN0cmVh
bWluZyBkZWNvZGU6IFVURi04IGNodW5rIHRlc3RzIChTaGFyZWRBcnJheUJ1ZmZlcikKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNv
ZGluZy90ZXh0ZGVjb2Rlci1zdHJlYW1pbmcuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1zdHJlYW1pbmcuYW55
LmpzCmluZGV4IDU3MTdjMmRiZTAwYTJhNTU3MjIyY2RmOWQ5NDJkZTIwZWQ5YjYzMzIuLmU0NzNh
NzA1NmUyNGQzZGJjNDM4M2JiOTA0ZjE0ZTk5ZTU1OWQyZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRlY29kZXIt
c3RyZWFtaW5nLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY29kaW5nL3RleHRkZWNvZGVyLXN0cmVhbWluZy5hbnkuanMKQEAgLTI4LDEw
ICsyOCwxMSBAQCB2YXIgb2N0ZXRzID0gewogICAgICAgICAgICAgICAgIHZhciBkZWNvZGVyID0g
bmV3IFRleHREZWNvZGVyKGVuY29kaW5nKTsKICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGVuY29kZWQubGVuZ3RoOyBpICs9IGxlbikgewogICAgICAgICAgICAgICAgICAgICB2
YXIgc3ViID0gW107Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSBpOyBqIDwgZW5j
b2RlZC5sZW5ndGggJiYgaiA8IGkgKyBsZW47ICsraikKKyAgICAgICAgICAgICAgICAgICAgZm9y
ICh2YXIgaiA9IGk7IGogPCBlbmNvZGVkLmxlbmd0aCAmJiBqIDwgaSArIGxlbjsgKytqKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWIucHVzaChlbmNvZGVkW2pdKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciB1aW50QXJyYXkgPSBuZXcgVWludDhBcnJheShjcmVhdGVCdWZmZXIo
YXJyYXlCdWZmZXJPclNoYXJlZEFycmF5QnVmZmVyLCBzdWIubGVuZ3RoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB1aW50QXJyYXkuc2V0KHN1Yik7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgdmFyIHVpbnRBcnJheSA9IG5ldyBVaW50OEFycmF5KGNyZWF0
ZUJ1ZmZlcihhcnJheUJ1ZmZlck9yU2hhcmVkQXJyYXlCdWZmZXIsIHN1Yi5sZW5ndGgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgdWludEFycmF5LnNldChzdWIpOwogICAgICAgICAgICAgICAgICAg
ICBvdXQgKz0gZGVjb2Rlci5kZWNvZGUodWludEFycmF5LCB7c3RyZWFtOiB0cnVlfSk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG91dCArPSBkZWNvZGVyLmRlY29kZSgpOwpA
QCAtMzksNCArNDAsNTAgQEAgdmFyIG9jdGV0cyA9IHsKICAgICAgICAgICAgIH0sICdTdHJlYW1p
bmcgZGVjb2RlOiAnICsgZW5jb2RpbmcgKyAnLCAnICsgbGVuICsgJyBieXRlIHdpbmRvdyAoJyAr
IGFycmF5QnVmZmVyT3JTaGFyZWRBcnJheUJ1ZmZlciArICcpJyk7CiAgICAgICAgIH0KICAgICB9
KTsKKworICAgIHRlc3QoKCkgPT4geworICAgICAgICBmdW5jdGlvbiBieXRlcyhieXRlQXJyYXkp
IHsKKyAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgVWludDhBcnJheShjcmVhdGVCdWZmZXIo
YXJyYXlCdWZmZXJPclNoYXJlZEFycmF5QnVmZmVyLCBieXRlQXJyYXkubGVuZ3RoKSk7CisgICAg
ICAgICAgICB2aWV3LnNldChieXRlQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHZpZXc7Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7CisK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhDMV0pLCB7c3Ry
ZWFtOiB0cnVlfSksICJcdUZGRkQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRl
Y29kZSgpLCAiIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRl
cyhbMHhGNV0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkQiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkZWNvZGVyLmRlY29kZSgpLCAiIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNv
ZGVyLmRlY29kZShieXRlcyhbMHhFMCwgMHg0MV0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkRB
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4NDJdKSks
ICJCIik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhF
MCwgMHg4MF0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkRcdUZGRkQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg4MF0pKSwgIlx1RkZGRCIpOworCisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4RUQsIDB4QTBdKSwg
e3N0cmVhbTogdHJ1ZX0pLCAiXHVGRkZEXHVGRkZEIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
ZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4ODBdKSksICJcdUZGRkQiKTsKKworICAgICAgICBhc3Nl
cnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKGJ5dGVzKFsweEYwLCAweDQxXSksIHtzdHJlYW06IHRy
dWV9KSwgIlx1RkZGREEiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShi
eXRlcyhbMHg0Ml0pLCB7c3RyZWFtOiB0cnVlfSksICJCIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4NDNdKSksICJDIik7CisKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhGMCwgMHg4MF0pLCB7c3RyZWFtOiB0cnVl
fSksICJcdUZGRkRcdUZGRkQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29k
ZShieXRlcyhbMHg4MF0pLCB7c3RyZWFtOiB0cnVlfSksICJcdUZGRkQiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg4MF0pKSwgIlx1RkZGRCIpOworCisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4RjQsIDB4QTBdKSwg
e3N0cmVhbTogdHJ1ZX0pLCAiXHVGRkZEXHVGRkZEIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
ZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4ODBdKSwge3N0cmVhbTogdHJ1ZX0pLCAiXHVGRkZEIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGVjb2Rlci5kZWNvZGUoYnl0ZXMoWzB4ODBdKSksICJc
dUZGRkQiKTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKGRlY29kZXIuZGVjb2RlKGJ5dGVzKFsw
eEYwLCAweDkwLCAweDQxXSksIHtzdHJlYW06IHRydWV9KSwgIlx1RkZGREEiKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHg0Ml0pKSwgIkIiKTsKKworICAg
ICAgICAvLyA0LWJ5dGUgVVRGLTggc2VxdWVuY2VzIGFsd2F5cyBjb3JyZXNwb25kIHRvIG5vbi1C
TVAgY2hhcmFjdGVycy4gSGVyZQorICAgICAgICAvLyB3ZSBtYWtlIHN1cmUgdGhhdCwgYWx0aG91
Z2ggdGhlIGZpcnN0IDMgYnl0ZXMgYXJlIGVub3VnaCB0byBlbWl0IHRoZQorICAgICAgICAvLyBs
ZWFkIHN1cnJvZ2F0ZSwgaXQgb25seSBnZXRzIGVtaXR0ZWQgd2hlbiB0aGUgZm91cnRoIGJ5dGUg
aXMgcmVhZC4KKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhG
MCwgMHg5RiwgMHg5Ml0pLCB7c3RyZWFtOiB0cnVlfSksICIiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkZWNvZGVyLmRlY29kZShieXRlcyhbMHhBOV0pKSwgIlx1ezFGNEE5fSIpOworICAgIH0s
IGBTdHJlYW1pbmcgZGVjb2RlOiBVVEYtOCBjaHVuayB0ZXN0cyAoJHthcnJheUJ1ZmZlck9yU2hh
cmVkQXJyYXlCdWZmZXJ9KWApOwogfSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvdGV4dGRlY29kZXItc3RyZWFtaW5nLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1zdHJlYW1pbmcuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKaW5kZXggYjhkZTU1YjhjYzNmMzlhOWUzNjlkMmI1MzNkZDFkYWM4MmYxNDhmZi4u
OTUxZDczMTBhY2Q2YjU4YjhkYTFmMTM3ZTU3YWYxMzAwMGJkYmY5MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVj
b2Rlci1zdHJlYW1pbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy90ZXh0ZGVjb2Rlci1zdHJl
YW1pbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTE0LDYgKzE0LDcgQEAgUEFTUyBTdHJl
YW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgMiBieXRlIHdpbmRvdyAoQXJyYXlCdWZmZXIpCiBQQVNT
IFN0cmVhbWluZyBkZWNvZGU6IHV0Zi0xNmJlLCAzIGJ5dGUgd2luZG93IChBcnJheUJ1ZmZlcikK
IFBBU1MgU3RyZWFtaW5nIGRlY29kZTogdXRmLTE2YmUsIDQgYnl0ZSB3aW5kb3cgKEFycmF5QnVm
ZmVyKQogUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgNSBieXRlIHdpbmRvdyAoQXJy
YXlCdWZmZXIpCitQQVNTIFN0cmVhbWluZyBkZWNvZGU6IFVURi04IGNodW5rIHRlc3RzIChBcnJh
eUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5nIGRlY29kZTogdXRmLTgsIDEgYnl0ZSB3aW5kb3cgKFNo
YXJlZEFycmF5QnVmZmVyKQogUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtOCwgMiBieXRlIHdp
bmRvdyAoU2hhcmVkQXJyYXlCdWZmZXIpCiBQQVNTIFN0cmVhbWluZyBkZWNvZGU6IHV0Zi04LCAz
IGJ5dGUgd2luZG93IChTaGFyZWRBcnJheUJ1ZmZlcikKQEAgLTI5LDQgKzMwLDUgQEAgUEFTUyBT
dHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZiZSwgMiBieXRlIHdpbmRvdyAoU2hhcmVkQXJyYXlCdWZm
ZXIpCiBQQVNTIFN0cmVhbWluZyBkZWNvZGU6IHV0Zi0xNmJlLCAzIGJ5dGUgd2luZG93IChTaGFy
ZWRBcnJheUJ1ZmZlcikKIFBBU1MgU3RyZWFtaW5nIGRlY29kZTogdXRmLTE2YmUsIDQgYnl0ZSB3
aW5kb3cgKFNoYXJlZEFycmF5QnVmZmVyKQogUEFTUyBTdHJlYW1pbmcgZGVjb2RlOiB1dGYtMTZi
ZSwgNSBieXRlIHdpbmRvdyAoU2hhcmVkQXJyYXlCdWZmZXIpCitQQVNTIFN0cmVhbWluZyBkZWNv
ZGU6IFVURi04IGNodW5rIHRlc3RzIChTaGFyZWRBcnJheUJ1ZmZlcikKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>