<?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>234890</bug_id>
          
          <creation_ts>2022-01-05 11:08:09 -0800</creation_ts>
          <short_desc>ReadableStream::lock should check whether there is an exception when getting ReadableStreamDefaultReader private constructor</short_desc>
          <delta_ts>2022-01-06 12:15:22 -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>WebCore Misc.</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1828329</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-05 11:08:09 -0800</bug_when>
    <thetext>ReadableStream::lock should check whether there is an exception when getting ReadableStreamDefaultReader private constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828330</commentid>
    <comment_count>1</comment_count>
      <attachid>448410</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-05 11:10:22 -0800</bug_when>
    <thetext>Created attachment 448410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828517</commentid>
    <comment_count>2</comment_count>
      <attachid>448410</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2022-01-06 00:49:46 -0800</bug_when>
    <thetext>Comment on attachment 448410
Patch

LGTM. Do we have a non-regression test for that? IIUC, the current return-if-exception line is not covered by our tests since otherwise it would currently crash when JSC::asObject is called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828546</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-06 02:55:55 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #2)
&gt; Comment on attachment 448410 [details]
&gt; Patch
&gt; 
&gt; LGTM. Do we have a non-regression test for that? IIUC, the current
&gt; return-if-exception line is not covered by our tests since otherwise it
&gt; would currently crash when JSC::asObject is called?

I&apos;ll try to write one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828553</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-06 03:38:31 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; (In reply to Frédéric Wang (:fredw) from comment #2)
&gt; &gt; Comment on attachment 448410 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; LGTM. Do we have a non-regression test for that? IIUC, the current
&gt; &gt; return-if-exception line is not covered by our tests since otherwise it
&gt; &gt; would currently crash when JSC::asObject is called?
&gt; 
&gt; I&apos;ll try to write one.

I tried to write one but I am not able to trigger the crash, using something like:
  const request = new Request(&quot;http://test.org&quot;, {&quot;method&quot;: &quot;POST&quot;, &quot;body&quot;: &quot;text&quot; });
  request.text();
  request.body;

I&apos;ll rewrite the patch to share the code and check between the two paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828569</commentid>
    <comment_count>5</comment_count>
      <attachid>448487</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-06 05:07:03 -0800</bug_when>
    <thetext>Created attachment 448487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828570</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-06 05:08:00 -0800</bug_when>
    <thetext>I was able to write a test and added it in addition to write the utility function. @fredw, PTAL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828580</commentid>
    <comment_count>7</comment_count>
      <attachid>448487</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2022-01-06 05:46:34 -0800</bug_when>
    <thetext>Comment on attachment 448487
Patch

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

still LGTM but since this is a bigger refactoring, I&apos;d prefer Mark Lam to check.

&gt; Source/WebCore/bindings/js/ReadableStream.cpp:-120
&gt; -    auto scope = DECLARE_CATCH_SCOPE(vm);

In the past, there was a catch scope here but I&apos;m not sure why since I don&apos;t see any explicit clearing of exceptions.

&gt; Source/WebCore/bindings/js/ReadableStream.cpp:135
&gt; +        args.append(readableStream());

I guess you should keep ASSERT(!args.hasOverflowed()) here?

&gt; LayoutTests/ChangeLog:9
&gt; +        * streams/readable-stream-lock-after-worker-terminates-crash.html: Added.

So this new test is crashing in ReadableStream::lock without your patch right? Just to be sure since the crashing cast operation is now shared in invokeConstructor... I believe ReadableStream::create is already covered by streams/readable-stream-create-after-worker-terminates-crash.html

&gt; LayoutTests/streams/readable-stream-lock-after-worker-terminates-crash.html:11
&gt; +    const worker = new Worker(&apos;data:application/javascript;charset=utf-8,&apos; + createRequest.toString() + &apos;;createRequest()&apos;);

nit: you can probably use backticks here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828581</commentid>
    <comment_count>8</comment_count>
      <attachid>448487</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2022-01-06 05:50:19 -0800</bug_when>
    <thetext>Comment on attachment 448487
Patch

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

&gt; Source/WebCore/bindings/js/ReadableStream.cpp:48
&gt; +    EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException());

I also forgot to say, in the past ReadableStream::create was not asserting for non-termination exception, but again I&apos;m not sure whether such an exception could happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828632</commentid>
    <comment_count>9</comment_count>
      <attachid>448487</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-01-06 09:01:48 -0800</bug_when>
    <thetext>Comment on attachment 448487
Patch

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

I have some comments below but LGTM too.

&gt; Source/WebCore/bindings/js/ReadableStream.cpp:40
&gt; +static inline ExceptionOr&lt;JSObject*&gt; invokeConstructor(JSC::JSGlobalObject&amp; lexicalGlobalObject, const JSC::Identifier&amp; identifier, const Function&lt;void(MarkedArgumentBuffer&amp;, JSC::JSGlobalObject&amp;, JSDOMGlobalObject&amp;)&gt;&amp; buildArguments)

nit: since you have declared `using namespace JSC` above, I think you can drop all the `JSC::` qualifiers here and below.  It&apos;ll make the code a lot more readable.

&gt;&gt; Source/WebCore/bindings/js/ReadableStream.cpp:48
&gt;&gt; +    EXCEPTION_ASSERT(!scope.exception() || vm.hasPendingTerminationException());
&gt; 
&gt; I also forgot to say, in the past ReadableStream::create was not asserting for non-termination exception, but again I&apos;m not sure whether such an exception could happen.

It can happen if the property being fetched from the globalObject is a lazy property which may entail some complex code.

Given the RETURN_IF_EXCEPTION below, I&apos;d almost say that this EXCEPTION_ASSERT is not necessary for exception check validation.  However, it does serve a purpose to document an invariant that we&apos;re not expecting any exception to be thrown here other than the TerminationException.  So, I think it&apos;s good to keep it.

&gt;&gt; Source/WebCore/bindings/js/ReadableStream.cpp:-120
&gt;&gt; -    auto scope = DECLARE_CATCH_SCOPE(vm);
&gt; 
&gt; In the past, there was a catch scope here but I&apos;m not sure why since I don&apos;t see any explicit clearing of exceptions.

This was a bug.  Since there&apos;s a possibility of a TerminationException, the use of a CatchScope here was incorrect.  This patch is doing the right thing.

&gt;&gt; Source/WebCore/bindings/js/ReadableStream.cpp:135
&gt;&gt; +        args.append(readableStream());
&gt; 
&gt; I guess you should keep ASSERT(!args.hasOverflowed()) here?

Or you can move ASSERT(!args.hasOverflowed()) to after the call to buildArguments() in invokeConstructor().  Asserting it here would be nicer as the crash trace will point to which call to invokeConstructor() caused the assertion failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828685</commentid>
    <comment_count>10</comment_count>
      <attachid>448514</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-06 11:37:48 -0800</bug_when>
    <thetext>Created attachment 448514
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828709</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-06 12:14:43 -0800</bug_when>
    <thetext>Committed r287711 (245796@main): &lt;https://commits.webkit.org/245796@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448514.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828711</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-06 12:15:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/87213143&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448410</attachid>
            <date>2022-01-05 11:10:22 -0800</date>
            <delta_ts>2022-01-06 05:06:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234890-20220105201020.patch</filename>
            <type>text/plain</type>
            <size>1928</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUzMDBkOTBkYzk1NWMy
NzliNDU2NDQ0ZmI2MGQ4OTgyMWY1YjU3Yi4uNzQ3NGM5YTIwY2UzNzYwMGRjNDI3MjI3MmE0NjM5
ODczOGE2MGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbTo6
bG9jayBzaG91bGQgY2hlY2sgd2hldGhlciB0aGVyZSBpcyBhbiBleGNlcHRpb24gd2hlbiBnZXR0
aW5nIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBwcml2YXRlIGNvbnN0cnVjdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4OTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEbyBpbiBSZWFkYWJs
ZVN0cmVhbTo6bG9jayBsaWtlIHdlIGFyZSBkb2luZyB3aGVuIGdldHRpbmcgUmVhZGFibGVTdHJl
YW0gcHJpdmF0ZSBjb25zdHJ1Y3RvciBpbiBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlLgorCisgICAg
ICAgICogYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwOgorCiAyMDIyLTAxLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrZXJNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydCBzaG91bGQgZ3VhcmFudGVl
IGV4ZWN1dGlvbiBvZiB0aGUgdGFrZU1lc3NhZ2VQb3J0IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKaW5kZXggNTAxMjczZTkxZjcwZmRm
MjFmMGE5NzFhMzc3OTcyYzI5Yjk0YmI3ZS4uN2FlZWY5MzhkZTlkYTBkOWIwMWJkNjliNWNkZTk1
ZmIzMDc3MmM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFi
bGVTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtLmNwcApAQCAtMTIxLDExICsxMjEsMTMgQEAgdm9pZCBSZWFkYWJsZVN0cmVhbTo6bG9jaygp
CiAKICAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSk7CiAKLSAgICBhdXRvKiBjb25zdHJ1Y3RvciA9IEpTQzo6YXNPYmplY3Qo
bV9nbG9iYWxPYmplY3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgY2xpZW50RGF0YS5idWls
dGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlTmFtZSgpKSk7Cisg
ICAgYXV0byBjb25zdHJ1Y3RvclZhbHVlID0gbV9nbG9iYWxPYmplY3QtPmdldCgmbGV4aWNhbEds
b2JhbE9iamVjdCwgY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXJQcml2YXRlTmFtZSgpKTsKICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNl
cHRpb24oKSB8fCB2bS5oYXNQZW5kaW5nVGVybWluYXRpb25FeGNlcHRpb24oKSk7CiAgICAgaWYg
KHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBhdXRvIGNvbnN0cnVj
dG9yID0gSlNDOjphc09iamVjdChjb25zdHJ1Y3RvclZhbHVlKTsKKwogICAgIGF1dG8gY29uc3Ry
dWN0RGF0YSA9IGdldENvbnN0cnVjdERhdGEodm0sIGNvbnN0cnVjdG9yKTsKICAgICBBU1NFUlQo
Y29uc3RydWN0RGF0YS50eXBlICE9IENhbGxEYXRhOjpUeXBlOjpOb25lKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448487</attachid>
            <date>2022-01-06 05:07:03 -0800</date>
            <delta_ts>2022-01-06 11:37:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234890-20220106140702.patch</filename>
            <type>text/plain</type>
            <size>8460</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRhODExZDIxYjFhZmI0
NWQzMmUxODkxNjAwZGE2M2RlZGY2OWQ5NS4uMDRhN2RiNGY1NDVhZjk4MGUyMjM4MTE5NWE4NDhj
MmQ3NWU1M2E2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAxLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbTo6
bG9jayBzaG91bGQgY2hlY2sgd2hldGhlciB0aGVyZSBpcyBhbiBleGNlcHRpb24gd2hlbiBnZXR0
aW5nIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBwcml2YXRlIGNvbnN0cnVjdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4OTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgRG8gaW4gUmVhZGFi
bGVTdHJlYW06OmxvY2sgbGlrZSB3ZSBhcmUgZG9pbmcgd2hlbiBnZXR0aW5nIFJlYWRhYmxlU3Ry
ZWFtIHByaXZhdGUgY29uc3RydWN0b3IgaW4gUmVhZGFibGVTdHJlYW06OmNyZWF0ZS4KKyAgICAg
ICAgRm9yIHRoYXQgcmVhc29uLCBpbnRyb2R1Y2UgYSBpbnZva2VDb25zdHJ1Y3RvciB1dGlsaXR5
IGZ1bmN0aW9uLgorCisgICAgICAgIFRlc3Q6IHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWxvY2st
YWZ0ZXItd29ya2VyLXRlcm1pbmF0ZXMtY3Jhc2guaHRtbAorCisgICAgICAgICogYmluZGluZ3Mv
anMvUmVhZGFibGVTdHJlYW0uY3BwOgorCiAyMDIyLTAxLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICAiUmVhZGFibGVTdHJlYW0gdXBsb2FkaW5nIGlzIG5v
dCBzdXBwb3J0ZWQiIHdoZW4gZmV0Y2goKWluZyBhIFJlcXVlc3QgdGhhdCBoYXMgYmVlbiBsb2dn
ZWQgdG8gY29uc29sZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVh
ZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJl
YW0uY3BwCmluZGV4IDUwMTI3M2U5MWY3MGZkZjIxZjBhOTcxYTM3Nzk3MmMyOWI5NGJiN2UuLmUy
ZGJlNDhlZTFlNDA1ZTgzN2U0ZThhZjhhYTRmNjA3ZDI2OTNhNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKQEAgLTM3LDE1ICszNywxNSBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotRXhjZXB0aW9uT3I8
UmVmPFJlYWRhYmxlU3RyZWFtPj4gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZWZQdHI8UmVhZGFibGVTdHJlYW1Tb3VyY2U+
JiYgc291cmNlKQorc3RhdGljIGlubGluZSBFeGNlcHRpb25PcjxKU09iamVjdCo+IGludm9rZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgRnVuY3Rpb248dm9pZChNYXJrZWRB
cmd1bWVudEJ1ZmZlciYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0RPTUdsb2JhbE9iamVjdCYp
PiYgYnVpbGRBcmd1bWVudHMpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGF1
dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnRE
YXRhKTsKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKLSAgICBhdXRvIGNvbnN0cnVjdG9yVmFs
dWUgPSBnbG9iYWxPYmplY3QuZ2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBjbGllbnREYXRhLmJ1
aWx0aW5OYW1lcygpLlJlYWRhYmxlU3RyZWFtUHJpdmF0ZU5hbWUoKSk7CisgICAgYXV0byBjb25z
dHJ1Y3RvclZhbHVlID0gZ2xvYmFsT2JqZWN0LmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgaWRl
bnRpZmllcik7CisgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgdm0u
aGFzUGVuZGluZ1Rlcm1pbmF0aW9uRXhjZXB0aW9uKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAgICAgYXV0
byBjb25zdHJ1Y3RvciA9IEpTQzo6YXNPYmplY3QoY29uc3RydWN0b3JWYWx1ZSk7CiAKQEAgLTUz
LDE0ICs1MywyOSBAQCBFeGNlcHRpb25PcjxSZWY8UmVhZGFibGVTdHJlYW0+PiBSZWFkYWJsZVN0
cmVhbTo6Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleAogICAgIEFTU0VSVChjb25zdHJ1
Y3REYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwogCiAgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZChzb3VyY2UgPyB0b0pTTmV3bHlDcmVhdGVk
KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCBzb3VyY2UucmVsZWFzZU5vbk51
bGwoKSkgOiBKU0M6OmpzVW5kZWZpbmVkKCkpOwotICAgIEFTU0VSVCghYXJncy5oYXNPdmVyZmxv
d2VkKCkpOworICAgIGJ1aWxkQXJndW1lbnRzKGFyZ3MsIGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCk7CiAKICAgICBKU09iamVjdCogb2JqZWN0ID0gSlNDOjpjb25zdHJ1Y3QoJmxl
eGljYWxHbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLCBjb25zdHJ1Y3REYXRhLCBhcmdzKTsKICAg
ICBBU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhb2JqZWN0KTsKKyAgICBFWENFUFRJT05f
QVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8fCB2bS5oYXNQZW5kaW5nVGVybWluYXRpb25FeGNl
cHRpb24oKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgRXhp
c3RpbmdFeGNlcHRpb25FcnJvciB9KTsKIAotICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0
LCAqanNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPihvYmplY3QpKTsKKyAgICByZXR1cm4gb2JqZWN0
OworfQorCitFeGNlcHRpb25PcjxSZWY8UmVhZGFibGVTdHJlYW0+PiBSZWFkYWJsZVN0cmVhbTo6
Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFJlZlB0cjxS
ZWFkYWJsZVN0cmVhbVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgYXV0byYgY2xpZW50RGF0YSA9
ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9iYWxPYmplY3Qudm0oKS5j
bGllbnREYXRhKTsKKworICAgIGF1dG8gb2JqZWN0T3JFeGNlcHRpb24gPSBpbnZva2VDb25zdHJ1
Y3RvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLlJlYWRh
YmxlU3RyZWFtUHJpdmF0ZU5hbWUoKSwgWyZzb3VyY2VdKGF1dG8mIGFyZ3MsIGF1dG8mIGxleGlj
YWxHbG9iYWxPYmplY3QsIGF1dG8mIGdsb2JhbE9iamVjdCkgeworICAgICAgICBhcmdzLmFwcGVu
ZChzb3VyY2UgPyB0b0pTTmV3bHlDcmVhdGVkKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmZ2xvYmFs
T2JqZWN0LCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSkgOiBKU0M6OmpzVW5kZWZpbmVkKCkpOwor
ICAgICAgICBBU1NFUlQoIWFyZ3MuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICB9KTsKKworICAgIGlm
IChvYmplY3RPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIG9iamVj
dE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIHJldHVybiBjcmVhdGUoKkpT
Qzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpLCAqanND
YXN0PEpTUmVhZGFibGVTdHJlYW0qPihvYmplY3RPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFs
dWUoKSkpOwogfQogCiBzdGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBp
bnZva2VSZWFkYWJsZVN0cmVhbUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNDOjpKU1Zh
bHVlIHRoaXNWYWx1ZSwgY29uc3QgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJndW1lbnRz
KQpAQCAtMTE1LDI2ICsxMzAsMTAgQEAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVmPFJlYWRh
YmxlU3RyZWFtPiwgUmVmPFJlYWRhYmxlU3RyZWFtPj4+IFJlYWRhYmxlU3RyZWEKIAogdm9pZCBS
ZWFkYWJsZVN0cmVhbTo6bG9jaygpCiB7Ci0gICAgYXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCA9
ICptX2dsb2JhbE9iamVjdDsKLSAgICBhdXRvJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0o
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0KLSAgICBhdXRv
JiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0
YSk7Ci0KLSAgICBhdXRvKiBjb25zdHJ1Y3RvciA9IEpTQzo6YXNPYmplY3QobV9nbG9iYWxPYmpl
Y3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5S
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlTmFtZSgpKSk7Ci0gICAgRVhDRVBUSU9O
X0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgdm0uaGFzUGVuZGluZ1Rlcm1pbmF0aW9uRXhj
ZXB0aW9uKCkpOwotICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgYXV0byBjb25zdHJ1Y3REYXRhID0gZ2V0Q29uc3RydWN0RGF0YSh2bSwgY29uc3RydWN0
b3IpOwotICAgIEFTU0VSVChjb25zdHJ1Y3REYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5v
bmUpOwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZChy
ZWFkYWJsZVN0cmVhbSgpKTsKLSAgICBBU1NFUlQoIWFyZ3MuaGFzT3ZlcmZsb3dlZCgpKTsKLQot
ICAgIEpTQzo6Y29uc3RydWN0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3RvciwgY29u
c3RydWN0RGF0YSwgYXJncyk7Ci0gICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9u
KCkgfHwgdm0uaGFzUGVuZGluZ1Rlcm1pbmF0aW9uRXhjZXB0aW9uKCkpOworICAgIGF1dG8mIGNs
aWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihtX2dsb2JhbE9iamVjdC0+
dm0oKS5jbGllbnREYXRhKTsKKyAgICBpbnZva2VDb25zdHJ1Y3RvcigqbV9nbG9iYWxPYmplY3Qs
IGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJp
dmF0ZU5hbWUoKSwgW3RoaXNdKGF1dG8mIGFyZ3MsIGF1dG8mLCBhdXRvJikgeworICAgICAgICBh
cmdzLmFwcGVuZChyZWFkYWJsZVN0cmVhbSgpKTsKKyAgICB9KTsKIH0KIAogc3RhdGljIGlubGlu
ZSBib29sIGNoZWNrUmVhZGFibGVTdHJlYW0oSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgSlNSZWFkYWJsZVN0cmVhbSogcmVhZGFibGVTdHJlYW0sIEpTQzo6SlNWYWx1ZSBmdW5jdGlv
bikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBhZTAzM2ZmNGYxMjg4ZjhlYmQyMDY0OWM5MmZhMzM2ZTRhODJjOTg3Li5jMDdi
OWQzYjdkYTY2MjgwNmFmYjI1MzRlMmViOWQ1YTA2MDQ2ZDhmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjItMDEtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlYWRhYmxlU3RyZWFtOjpsb2NrIHNob3VsZCBjaGVjayB3aGV0aGVyIHRoZXJlIGlzIGFu
IGV4Y2VwdGlvbiB3aGVuIGdldHRpbmcgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIHByaXZh
dGUgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNDg5MAorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKwor
ICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWxvY2stYWZ0ZXItd29ya2VyLXRlcm1p
bmF0ZXMtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlYWRh
YmxlLXN0cmVhbS1sb2NrLWFmdGVyLXdvcmtlci10ZXJtaW5hdGVzLWNyYXNoLmh0bWw6IEFkZGVk
LgorCiAyMDIyLTAxLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICAiUmVhZGFibGVTdHJlYW0gdXBsb2FkaW5nIGlzIG5vdCBzdXBwb3J0ZWQiIHdoZW4gZmV0
Y2goKWluZyBhIFJlcXVlc3QgdGhhdCBoYXMgYmVlbiBsb2dnZWQgdG8gY29uc29sZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tbG9jay1hZnRlci13b3Jr
ZXItdGVybWluYXRlcy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
YWRhYmxlLXN0cmVhbS1sb2NrLWFmdGVyLXdvcmtlci10ZXJtaW5hdGVzLWNyYXNoLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xOWQzYzg3NTk0NmMyMzI0ODYxOTJiOGUzNDBlM2ZmNTVhYmMxMzY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0t
bG9jay1hZnRlci13b3JrZXItdGVybWluYXRlcy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFRoaXMgdGVzdCBQQVNTIGlmIGl0IGRvZXMgbm90IGNy
YXNoLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1s
b2NrLWFmdGVyLXdvcmtlci10ZXJtaW5hdGVzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlYWRhYmxlLXN0cmVhbS1sb2NrLWFmdGVyLXdvcmtlci10ZXJtaW5hdGVzLWNyYXNoLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGY1ZDU3YTYzNDQzMjk2NjFmNWFhMDk4ZmNlZmViZTgwODEzNjBkYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWxv
Y2stYWZ0ZXItd29ya2VyLXRlcm1pbmF0ZXMtY3Jhc2guaHRtbApAQCAtMCwwICsxLDMwIEBACis8
c2NyaXB0PgorZnVuY3Rpb24gY3JlYXRlV29ya2VyKCkgeworICAgIGZ1bmN0aW9uIGNyZWF0ZVJl
cXVlc3QoKSB7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCJodHRwOi8vdGVzdC5vcmciLCB7Im1ldGhvZCI6ICJQT1NU
IiwgImJvZHkiOiAidGV4dCIgfSk7CisgICAgICAgICAgICByZXF1ZXN0LnRleHQoKTsKKyAgICAg
ICAgICAgIHJlcXVlc3QuYm9keTsKKyAgICAgICAgfSwgMCk7CisgICAgICAgIHNlbGYucG9zdE1l
c3NhZ2UoIiIpOworICAgIH07CisgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcignZGF0YTph
cHBsaWNhdGlvbi9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsJyArIGNyZWF0ZVJlcXVlc3QudG9T
dHJpbmcoKSArICc7Y3JlYXRlUmVxdWVzdCgpJyk7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJl
c29sdmUgPT4geworICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gKCkgPT4geworICAgICAgICAg
ICAgd29ya2VyLnRlcm1pbmF0ZSgpOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
CisgICAgfSk7Cit9CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIGNvbnNvbGUubG9nKCdU
aGlzIHRlc3QgUEFTUyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4nKQorICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc2NyaXB0Jyk7CisgICAgICAgIHNjcmlwdC5zcmMgPSBgZGF0YTphcHBsaWNhdGlv
bi9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsJHtjcmVhdGVXb3JrZXIudG9TdHJpbmcoKX07Y3Jl
YXRlV29ya2VyKCk7YDsKKyAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQp
OworICAgIH0KK307Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448514</attachid>
            <date>2022-01-06 11:37:48 -0800</date>
            <delta_ts>2022-01-06 12:14:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-234890-20220106203746.patch</filename>
            <type>text/plain</type>
            <size>8433</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRhODExZDIxYjFhZmI0
NWQzMmUxODkxNjAwZGE2M2RlZGY2OWQ5NS4uYTcxOWM5YWMyMzllZWNjNjNjYWQwNzMxOTZhNGI0
ZDYxMmRkZGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAxLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbTo6
bG9jayBzaG91bGQgY2hlY2sgd2hldGhlciB0aGVyZSBpcyBhbiBleGNlcHRpb24gd2hlbiBnZXR0
aW5nIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBwcml2YXRlIGNvbnN0cnVjdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4OTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcgYW5kIE1hcmsgTGFtLgorCisgICAgICAg
IERvIGluIFJlYWRhYmxlU3RyZWFtOjpsb2NrIGxpa2Ugd2UgYXJlIGRvaW5nIHdoZW4gZ2V0dGlu
ZyBSZWFkYWJsZVN0cmVhbSBwcml2YXRlIGNvbnN0cnVjdG9yIGluIFJlYWRhYmxlU3RyZWFtOjpj
cmVhdGUuCisgICAgICAgIEZvciB0aGF0IHJlYXNvbiwgaW50cm9kdWNlIGEgaW52b2tlQ29uc3Ry
dWN0b3IgdXRpbGl0eSBmdW5jdGlvbi4KKworICAgICAgICBUZXN0OiBzdHJlYW1zL3JlYWRhYmxl
LXN0cmVhbS1sb2NrLWFmdGVyLXdvcmtlci10ZXJtaW5hdGVzLWNyYXNoLmh0bWwKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcDoKKwogMjAyMi0wMS0wNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgIlJlYWRhYmxlU3RyZWFtIHVw
bG9hZGluZyBpcyBub3Qgc3VwcG9ydGVkIiB3aGVuIGZldGNoKClpbmcgYSBSZXF1ZXN0IHRoYXQg
aGFzIGJlZW4gbG9nZ2VkIHRvIGNvbnNvbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1JlYWRhYmxlU3RyZWFtLmNwcAppbmRleCA1MDEyNzNlOTFmNzBmZGYyMWYwYTk3MWEzNzc5NzJj
MjliOTRiYjdlLi42MDM2NDU5ZDE1YjgxOThhMzg0NGU5OTQwOTY4YWRiMzc3YjY1ZTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCkBAIC0zNywx
NSArMzcsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
LUV4Y2VwdGlvbk9yPFJlZjxSZWFkYWJsZVN0cmVhbT4+IFJlYWRhYmxlU3RyZWFtOjpjcmVhdGUo
SlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgUmVmUHRyPFJlYWRhYmxl
U3RyZWFtU291cmNlPiYmIHNvdXJjZSkKK3N0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8SlNPYmpl
Y3QqPiBpbnZva2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjb25zdCBKU0M6OklkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoTWFya2VkQXJndW1lbnRCdWZmZXImLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNET01H
bG9iYWxPYmplY3QmKT4mIGJ1aWxkQXJndW1lbnRzKQogewogICAgIFZNJiB2bSA9IGxleGljYWxH
bG9iYWxPYmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKLSAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRh
Kj4odm0uY2xpZW50RGF0YSk7CiAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpOwogCi0gICAgYXV0byBj
b25zdHJ1Y3RvclZhbHVlID0gZ2xvYmFsT2JqZWN0LmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwg
Y2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbVByaXZhdGVOYW1lKCkpOwor
ICAgIGF1dG8gY29uc3RydWN0b3JWYWx1ZSA9IGdsb2JhbE9iamVjdC5nZXQoJmxleGljYWxHbG9i
YWxPYmplY3QsIGlkZW50aWZpZXIpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2Vw
dGlvbigpIHx8IHZtLmhhc1BlbmRpbmdUZXJtaW5hdGlvbkV4Y2VwdGlvbigpKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9y
IH0pOwogICAgIGF1dG8gY29uc3RydWN0b3IgPSBKU0M6OmFzT2JqZWN0KGNvbnN0cnVjdG9yVmFs
dWUpOwogCkBAIC01MywxNCArNTMsMjkgQEAgRXhjZXB0aW9uT3I8UmVmPFJlYWRhYmxlU3RyZWFt
Pj4gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBB
U1NFUlQoY29uc3RydWN0RGF0YS50eXBlICE9IENhbGxEYXRhOjpUeXBlOjpOb25lKTsKIAogICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQoc291cmNlID8gdG9K
U05ld2x5Q3JlYXRlZCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCwgc291cmNl
LnJlbGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc1VuZGVmaW5lZCgpKTsKKyAgICBidWlsZEFyZ3Vt
ZW50cyhhcmdzLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VS
VCghYXJncy5oYXNPdmVyZmxvd2VkKCkpOwogCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IEpTQzo6
Y29uc3RydWN0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3RvciwgY29uc3RydWN0RGF0
YSwgYXJncyk7CiAgICAgQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIW9iamVjdCk7Cisg
ICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgdm0uaGFzUGVuZGluZ1Rl
cm1pbmF0aW9uRXhjZXB0aW9uKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4
Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAKLSAgICByZXR1cm4gY3JlYXRl
KGdsb2JhbE9iamVjdCwgKmpzQ2FzdDxKU1JlYWRhYmxlU3RyZWFtKj4ob2JqZWN0KSk7CisgICAg
cmV0dXJuIG9iamVjdDsKK30KKworRXhjZXB0aW9uT3I8UmVmPFJlYWRhYmxlU3RyZWFtPj4gUmVh
ZGFibGVTdHJlYW06OmNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBSZWZQdHI8UmVhZGFibGVTdHJlYW1Tb3VyY2U+JiYgc291cmNlKQoreworICAgIGF1dG8m
IGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihsZXhpY2FsR2xvYmFs
T2JqZWN0LnZtKCkuY2xpZW50RGF0YSk7CisKKyAgICBhdXRvIG9iamVjdE9yRXhjZXB0aW9uID0g
aW52b2tlQ29uc3RydWN0b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgY2xpZW50RGF0YS5idWlsdGlu
TmFtZXMoKS5SZWFkYWJsZVN0cmVhbVByaXZhdGVOYW1lKCksIFsmc291cmNlXShhdXRvJiBhcmdz
LCBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBhdXRvJiBnbG9iYWxPYmplY3QpIHsKKyAgICAg
ICAgYXJncy5hcHBlbmQoc291cmNlID8gdG9KU05ld2x5Q3JlYXRlZCgmbGV4aWNhbEdsb2JhbE9i
amVjdCwgJmdsb2JhbE9iamVjdCwgc291cmNlLnJlbGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc1Vu
ZGVmaW5lZCgpKTsKKyAgICB9KTsKKworICAgIGlmIChvYmplY3RPckV4Y2VwdGlvbi5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIG9iamVjdE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRp
b24oKTsKKworICAgIHJldHVybiBjcmVhdGUoKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpLCAqanNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPihvYmpl
Y3RPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwogfQogCiBzdGF0aWMgaW5saW5l
IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBpbnZva2VSZWFkYWJsZVN0cmVhbUZ1bmN0aW9u
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgaWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlIHRoaXNWYWx1ZSwgY29uc3QgSlNDOjpN
YXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJndW1lbnRzKQpAQCAtMTE1LDI2ICsxMzAsMTAgQEAgc3Rk
OjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVmPFJlYWRhYmxlU3RyZWFtPiwgUmVmPFJlYWRhYmxlU3Ry
ZWFtPj4+IFJlYWRhYmxlU3RyZWEKIAogdm9pZCBSZWFkYWJsZVN0cmVhbTo6bG9jaygpCiB7Ci0g
ICAgYXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCA9ICptX2dsb2JhbE9iamVjdDsKLSAgICBhdXRv
JiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9DQVRDSF9TQ09QRSh2bSk7Ci0KLSAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7Ci0KLSAgICBhdXRvKiBjb25zdHJ1Y3Rv
ciA9IEpTQzo6YXNPYmplY3QobV9nbG9iYWxPYmplY3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVj
dCwgY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQ
cml2YXRlTmFtZSgpKSk7Ci0gICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkg
fHwgdm0uaGFzUGVuZGluZ1Rlcm1pbmF0aW9uRXhjZXB0aW9uKCkpOwotICAgIGlmIChzY29wZS5l
eGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBjb25zdHJ1Y3REYXRhID0g
Z2V0Q29uc3RydWN0RGF0YSh2bSwgY29uc3RydWN0b3IpOwotICAgIEFTU0VSVChjb25zdHJ1Y3RE
YXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwotCi0gICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZChyZWFkYWJsZVN0cmVhbSgpKTsKLSAgICBBU1NF
UlQoIWFyZ3MuaGFzT3ZlcmZsb3dlZCgpKTsKLQotICAgIEpTQzo6Y29uc3RydWN0KCZsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3RvciwgY29uc3RydWN0RGF0YSwgYXJncyk7Ci0gICAgRVhD
RVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgdm0uaGFzUGVuZGluZ1Rlcm1pbmF0
aW9uRXhjZXB0aW9uKCkpOworICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNW
TUNsaWVudERhdGEqPihtX2dsb2JhbE9iamVjdC0+dm0oKS5jbGllbnREYXRhKTsKKyAgICBpbnZv
a2VDb25zdHJ1Y3RvcigqbV9nbG9iYWxPYmplY3QsIGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCku
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZU5hbWUoKSwgW3RoaXNdKGF1dG8mIGFy
Z3MsIGF1dG8mLCBhdXRvJikgeworICAgICAgICBhcmdzLmFwcGVuZChyZWFkYWJsZVN0cmVhbSgp
KTsKKyAgICB9KTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGNoZWNrUmVhZGFibGVTdHJlYW0o
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNSZWFkYWJsZVN0cmVhbSogcmVhZGFi
bGVTdHJlYW0sIEpTQzo6SlNWYWx1ZSBmdW5jdGlvbikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZTAzM2ZmNGYxMjg4Zjhl
YmQyMDY0OWM5MmZhMzM2ZTRhODJjOTg3Li5jMDdiOWQzYjdkYTY2MjgwNmFmYjI1MzRlMmViOWQ1
YTA2MDQ2ZDhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDEtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlYWRhYmxlU3RyZWFtOjpsb2NrIHNo
b3VsZCBjaGVjayB3aGV0aGVyIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiB3aGVuIGdldHRpbmcgUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIHByaXZhdGUgY29uc3RydWN0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg5MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUt
c3RyZWFtLWxvY2stYWZ0ZXItd29ya2VyLXRlcm1pbmF0ZXMtY3Jhc2gtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1sb2NrLWFmdGVyLXdvcmtl
ci10ZXJtaW5hdGVzLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDIyLTAxLTA2ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICAiUmVhZGFibGVTdHJlYW0gdXBsb2Fk
aW5nIGlzIG5vdCBzdXBwb3J0ZWQiIHdoZW4gZmV0Y2goKWluZyBhIFJlcXVlc3QgdGhhdCBoYXMg
YmVlbiBsb2dnZWQgdG8gY29uc29sZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9y
ZWFkYWJsZS1zdHJlYW0tbG9jay1hZnRlci13b3JrZXItdGVybWluYXRlcy1jcmFzaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1sb2NrLWFmdGVyLXdv
cmtlci10ZXJtaW5hdGVzLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWQzYzg3NTk0
NmMyMzI0ODYxOTJiOGUzNDBlM2ZmNTVhYmMxMzY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tbG9jay1hZnRlci13b3JrZXItdGVybWluYXRl
cy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFRo
aXMgdGVzdCBQQVNTIGlmIGl0IGRvZXMgbm90IGNyYXNoLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1sb2NrLWFmdGVyLXdvcmtlci10ZXJtaW5hdGVz
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1sb2NrLWFm
dGVyLXdvcmtlci10ZXJtaW5hdGVzLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY1ZDU3YTYzNDQz
Mjk2NjFmNWFhMDk4ZmNlZmViZTgwODEzNjBkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWxvY2stYWZ0ZXItd29ya2VyLXRlcm1pbmF0ZXMt
Y3Jhc2guaHRtbApAQCAtMCwwICsxLDMwIEBACis8c2NyaXB0PgorZnVuY3Rpb24gY3JlYXRlV29y
a2VyKCkgeworICAgIGZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3QoKSB7CisgICAgICAgIHNldFRpbWVv
dXQoKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCJodHRw
Oi8vdGVzdC5vcmciLCB7Im1ldGhvZCI6ICJQT1NUIiwgImJvZHkiOiAidGV4dCIgfSk7CisgICAg
ICAgICAgICByZXF1ZXN0LnRleHQoKTsKKyAgICAgICAgICAgIHJlcXVlc3QuYm9keTsKKyAgICAg
ICAgfSwgMCk7CisgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoIiIpOworICAgIH07CisgICAgY29u
c3Qgd29ya2VyID0gbmV3IFdvcmtlcignZGF0YTphcHBsaWNhdGlvbi9qYXZhc2NyaXB0O2NoYXJz
ZXQ9dXRmLTgsJyArIGNyZWF0ZVJlcXVlc3QudG9TdHJpbmcoKSArICc7Y3JlYXRlUmVxdWVzdCgp
Jyk7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICB3b3JrZXIu
b25tZXNzYWdlID0gKCkgPT4geworICAgICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOworICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgfSk7Cit9CisKK29ubG9hZCA9ICgp
ID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIGNvbnNvbGUubG9nKCdUaGlzIHRlc3QgUEFTUyBpZiBpdCBkb2VzIG5v
dCBjcmFzaC4nKQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAg
Y29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgICAg
IHNjcmlwdC5zcmMgPSBgZGF0YTphcHBsaWNhdGlvbi9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgs
JHtjcmVhdGVXb3JrZXIudG9TdHJpbmcoKX07Y3JlYXRlV29ya2VyKCk7YDsKKyAgICAgICAgZG9j
dW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOworICAgIH0KK307Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>