<?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>212561</bug_id>
          
          <creation_ts>2020-05-29 21:08:00 -0700</creation_ts>
          <short_desc>AssemblyHelpers::callExceptionFuzz() is passing a wrong argument to operationExceptionFuzz().</short_desc>
          <delta_ts>2020-05-30 14:10:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          
          <blocked>212556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1657567</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 21:08:00 -0700</bug_when>
    <thetext>operationExceptionFuzz() expects a JSGlobalObject*.  AssemblyHelpers::callExceptionFuzz() is passing an ExecState* to it.  The FTL implementation is passing a globalObject as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657582</commentid>
    <comment_count>1</comment_count>
      <attachid>400652</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 23:54:10 -0700</bug_when>
    <thetext>Created attachment 400652
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657583</commentid>
    <comment_count>2</comment_count>
      <attachid>400652</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-29 23:56:06 -0700</bug_when>
    <thetext>Comment on attachment 400652
proposed patch.

Patch attached to wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657598</commentid>
    <comment_count>3</comment_count>
      <attachid>400659</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-30 00:57:32 -0700</bug_when>
    <thetext>Created attachment 400659
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657599</commentid>
    <comment_count>4</comment_count>
      <attachid>400659</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-30 01:06:32 -0700</bug_when>
    <thetext>Comment on attachment 400659
proposed patch.

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

r=me with comments.

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.cpp:255
&gt; +    move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR1);

This is not necessary if prepareCallOperation is called. Let&apos;s just pass VM pointer.

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.cpp:257
&gt;      prepareCallOperation(vm);

Since we are using prepareCallOperation, you can get CallFrame* via `CallFrame* callFrame = DECLARE_CALL_FRAME(vm);` as it is done in operationExceptionFuzz.
Let&apos;s define operationExceptionFuzzWithVM(VM* vmPointer), and implement it as,

operationExceptionFuzzWith(VM* vmPointer)
{
    VM&amp; vm = *vmPointer;
    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);  /* Note that this frame tracer must be in the direct caller function from JIT code. */
    ...
}

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:2644
&gt; +    operationExceptionFuzz(callFrame-&gt;lexicalGlobalObject(*vm));

Can you factor out the code of operationExceptionFuzz and share it with operationExceptionFuzz and operationExceptionFuzzWithCallFrame? JIT_OPERATION functions cannot be called from non JIT code (in particular if JITOperationPrologueCallFrameTracer is used).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657622</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-30 08:55:37 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Yusuke Suzuki from comment #4)
&gt; &gt; Source/JavaScriptCore/jit/AssemblyHelpers.cpp:255
&gt; &gt; +    move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR1);
&gt; 
&gt; This is not necessary if prepareCallOperation is called. Let&apos;s just pass VM
&gt; pointer.

Fixed.

&gt; &gt; Source/JavaScriptCore/jit/AssemblyHelpers.cpp:257
&gt; &gt;      prepareCallOperation(vm);
&gt; 
&gt; Since we are using prepareCallOperation, you can get CallFrame* via
&gt; `CallFrame* callFrame = DECLARE_CALL_FRAME(vm);` as it is done in
&gt; operationExceptionFuzz.
&gt; Let&apos;s define operationExceptionFuzzWithVM(VM* vmPointer), and implement it
&gt; as,
&gt; 
&gt; operationExceptionFuzzWith(VM* vmPointer)
&gt; {
&gt;     VM&amp; vm = *vmPointer;
&gt;     CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
&gt;     JITOperationPrologueCallFrameTracer tracer(vm, callFrame);  /* Note that
&gt; this frame tracer must be in the direct caller function from JIT code. */
&gt;     ...
&gt; }

Fixed.

&gt; &gt; Source/JavaScriptCore/jit/JITOperations.cpp:2644
&gt; &gt; +    operationExceptionFuzz(callFrame-&gt;lexicalGlobalObject(*vm));
&gt; 
&gt; Can you factor out the code of operationExceptionFuzz and share it with
&gt; operationExceptionFuzz and operationExceptionFuzzWithCallFrame?
&gt; JIT_OPERATION functions cannot be called from non JIT code (in particular if
&gt; JITOperationPrologueCallFrameTracer is used).

Since the common part is just a few lines, and the interesting line in there involves calling __builtin_return_address(0), the common part needs to be completely inlined.  I&apos;m not sure what the behavior of __builtin_return_address() is from an inlined function.  Also, on debug builds, inlining is turned off, which breaks this code.

The alternative is to macroize the common part or just copy-paste.  Since the lines are really short, and the effective part that matters is just 2 lines, there isn&apos;t a lot of benefit to macroizing this.  I&apos;m going with copy-paste since it makes the code more readable and easier to step through with a debugger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657623</commentid>
    <comment_count>6</comment_count>
      <attachid>400669</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-05-30 09:01:12 -0700</bug_when>
    <thetext>Created attachment 400669
patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657666</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-30 14:09:37 -0700</bug_when>
    <thetext>Committed r262351: &lt;https://trac.webkit.org/changeset/262351&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400669.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657667</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-30 14:10:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/63794162&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400652</attachid>
            <date>2020-05-29 23:54:10 -0700</date>
            <delta_ts>2020-05-29 23:56:06 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212556.patch</filename>
            <type>text/plain</type>
            <size>17651</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyMzM5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBA
CisyMDIwLTA1LTI5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
YWtlIE9wdGlvbnM6OnVzZUpJVCgpIGJlIHRoZSBjYW5vbmljYWwgc291cmNlIG9mIHRydXRoIG9u
IHdoZXRoZXIgd2Ugc2hvdWxkIHVzZSB0aGUgSklUcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBtYWtlIE9wdGlvbnM6OnVzZUpJVCgp
IG1lYW5zIHdoYXQgaXQgc2F5cyBpbnN0ZWFkIG9mIGhhdmluZyB0byByZWx5IG9uCisgICAgICAg
IGEgc2VwYXJhdGUgVk06OnNfY2FuVXNlSklULiAgVGhpcyByZW1vdmVzIGFueSBwb3RlbnRpYWwg
Y29uZnVzaW9uIGFyaXNpbmcgZnJvbQorICAgICAgICBoYXZpbmcgMiB2YWx1ZXMgdG8gY2hlY2ss
IGFuZCBmcm9tIHVzZUpJVCgpIGJlaW5nIHRydWUgd2hlbiB3ZSBjYW4ndCBhY3R1YWxseQorICAg
ICAgICB1c2UgdGhlIEpJVHMuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxp
bWl0VGVzdC5jcHA6CisgICAgICAgICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAg
KiBBUEkvdGVzdHMvRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcDoKKyAgICAgICAgKHRlc3RGdW5j
dGlvbk92ZXJyaWRlcyk6CisgICAgICAgICogQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxv
d1Rlc3QuY3BwOgorICAgICAgICAodGVzdFBpbmdQb25nU3RhY2tPdmVyZmxvdyk6CisgICAgICAg
IC0gUmVtb3ZlZCByZWR1bmRhbnQgY2FsbHMgdG8gT3B0aW9uczo6aW5pdGlhbGl6ZSgpLgorCisg
ICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAt
IG1vdmUgdGhlIGNhbGwgdG8gdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpIHRvIGFmdGVyIGZpbmFs
aXplTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0KCkKKyAgICAgICAgICByZXR1cm5z
LiAgVGhpcyBpcyBiZWNhdXNlIHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKSBtb2RpZmllcyBKSVQg
b3B0aW9ucyBhdCBydW50aW1lCisgICAgICAgICAgYXMgcGFydCBvZiBpdHMgdGVzdGluZy4gIFRo
aXMgY2FuIHdyZWFrIGhhdm9jIG9uIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gdGhhdCBleHBlY3Rz
CisgICAgICAgICAgdGhlIG9wdGlvbnMgdG8gYmUgZnJvemVuLiAgSWRlYWxseSwgd2UnbGwgZmlu
ZCBhIHdheSBmb3IgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpIHRvCisgICAgICAgICAgZG8gaXRz
IHdvcmsgd2l0aG91dCBjaGFuZ2luZyBKSVQgb3B0aW9ucywgYnV0IHRoYXQgaXMgbm90IGVhc3kg
dG8gZG8uICBGb3Igbm93LAorICAgICAgICAgIHdlJ2xsIGp1c3QgcnVuIGl0IGF0IHRoZSBlbmQg
YXMgYSB3b3JrYXJvdW5kLgorCisgICAgICAgICogcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
LmNwcDoKKyAgICAgICAgKEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisgICAgICAgICogcnVu
dGltZS9KU0NDb25maWcuaDoKKworICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAg
ICAgIChKU0M6OmRpc2FibGVBbGxKSVRPcHRpb25zKToKKyAgICAgICAgKEpTQzo6cmVjb21wdXRl
RGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmFkZHJlc3NPZk9wdGlv
bik6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmFkZHJlc3NPZk9wdGlvbkRlZmF1bHQpOgorICAg
ICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplKToKKyAgICAgICAgLSBNb3ZlIHRoZSBjYWxs
cyB0byBkdW1wT3B0aW9uc0lmTmVlZGVkKCkgYW5kIGVuc3VyZU9wdGlvbnNBcmVDb2hlcmVudCgp
IHRvIHRoZQorICAgICAgICAgIGVuZCBhZnRlciBhbGwgdGhlIG9wdGlvbnMgaGF2ZSBiZWVuIGlu
aXRpYWxpemVkIGJlY2F1c2UgdGhpcyB3aGVyZSB0aGV5IGJlbG9uZy4KKyAgICAgICAgKEpTQzo6
T3B0aW9uczo6ZmluYWxpemVKSVRPcHRpb25zKToKKyAgICAgICAgLSBMb2dpYyB0byBjaGVjayBp
ZiB0aGUgSklUcyBjYW4gYmUgZW5hYmxlZCwgYWRhcHRlZCBmcm9tIFZNLmNwcCdzIG5vdyBkZWxl
dGVkCisgICAgICAgICAgZW5hYmxlQXNzZW1ibGVyKCkuCisKKyAgICAgICAgKiBydW50aW1lL09w
dGlvbnMuaDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6ZmluYWxpemVKSVRPcHRpb25zKToKKyAg
ICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6ZW5hYmxlQXNzZW1ibGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Vk06OmNhblVzZUFzc2VtYmxlcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OlZNOjpjb21wdXRlQ2FuVXNlSklUKTogRGVsZXRlZC4KKworICAgICAgICAq
IHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06OmNhblVzZUpJVCk6CisgICAgICAgIC0g
Rm9yIG5vdywgdGhpcyBpcyBqdXN0IGEgd3JhcHBlciBhcm91bmQgT3B0aW9uczo6dXNlSklUKCkg
c28gdGhhdCB3ZSBtaW5pbWl6ZQorICAgICAgICAgIHRoZSBhbW91bnQgb2YgY29kZSBjaGFuZ2Uu
ICBXZSBjYW4gcmVtb3ZlIHRoaXMgYW5kIGNoYW5nZSBhbGwgaXRzIGNsaWVudHMgdG8KKyAgICAg
ICAgICB1c2UgT3B0aW9uczo6dXNlSklUKCkgaW4gYSBmb2xsb3cgdXAgcmVmYWN0b3JpbmcgcGF0
Y2ggaWYgZGVzaXJlZC4KKwogMjAyMC0wNS0yOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZSBuZWVkIHRvIHByb3Blcmx5IG1vZGVsIGhlYXAgcmFuZ2VzIG9m
IERlbGV0ZSBpbiBERkcvQjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
RXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAkocmV2aXNpb24gMjYy
MzM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGlt
aXRUZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjgsNyArMTI4LDYgQEAgaW50IHRlc3RFeGVjdXRp
b25UaW1lTGltaXQoKQogICAgIGJvb2wgZmFpbGVkID0gZmFsc2U7CiAKICAgICBKU0M6OmluaXRp
YWxpemVUaHJlYWRpbmcoKTsKLSAgICBPcHRpb25zOjppbml0aWFsaXplKCk7IC8vIEVuc3VyZSBv
cHRpb25zIGlzIGluaXRpYWxpemVkIGZpcnN0LgogCiAgICAgZm9yIChhdXRvIHRpZXJPcHRpb25z
IDogdGllck9wdGlvbnNMaXN0KSB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2F2ZWRPcHRpb25z
QnVpbGRlcjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRnVuY3Rpb25P
dmVycmlkZXNUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0Z1bmN0aW9uT3ZlcnJpZGVzVGVzdC5jcHAJKHJldmlzaW9uIDI2MjMzNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zOCw3ICszOCw2IEBAIGludCB0ZXN0RnVuY3Rpb25PdmVycmlkZXMoKQog
ICAgIGJvb2wgZmFpbGVkID0gZmFsc2U7CiAKICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKLSAgICBPcHRpb25zOjppbml0aWFsaXplKCk7IC8vIEVuc3VyZSBvcHRpb25zIGlzIGluaXRp
YWxpemVkIGZpcnN0LgogCiAgICAgY29uc3QgY2hhciogb2xkRnVuY3Rpb25PdmVycmlkZXMgPSBP
cHRpb25zOjpmdW5jdGlvbk92ZXJyaWRlcygpOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxv
d1Rlc3QuY3BwCShyZXZpc2lvbiAyNjIzMzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExNyw3
ICsxMTcsNiBAQCBpbnQgdGVzdFBpbmdQb25nU3RhY2tPdmVyZmxvdygpCiAgICAgYm9vbCBmYWls
ZWQgPSBmYWxzZTsKIAogICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgIE9wdGlv
bnM6OmluaXRpYWxpemUoKTsgLy8gRW5zdXJlIG9wdGlvbnMgaXMgaW5pdGlhbGl6ZWQgZmlyc3Qu
CiAKICAgICBhdXRvIG9yaWdTb2Z0UmVzZXJ2ZWRab25lU2l6ZSA9IE9wdGlvbnM6OnNvZnRSZXNl
cnZlZFpvbmVTaXplKCk7CiAgICAgYXV0byBvcmlnUmVzZXJ2ZWRab25lU2l6ZSA9IE9wdGlvbnM6
OnJlc2VydmVkWm9uZVNpemUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5jCShyZXZpc2lvbiAyNjIzMzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjEwMSw3ICsyMTAxLDYg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgSlNHbG9iYWxDb250
ZXh0UmVsZWFzZShjb250ZXh0KTsKICAgICB9CiAgICAgZmFpbGVkIHw9IHRlc3RUeXBlZEFycmF5
Q0FQSSgpOwotICAgIGZhaWxlZCB8PSB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCk7CiAgICAgZmFp
bGVkIHw9IHRlc3RGdW5jdGlvbk92ZXJyaWRlcygpOwogICAgIGZhaWxlZCB8PSB0ZXN0R2xvYmFs
Q29udGV4dFdpdGhGaW5hbGl6ZXIoKTsKICAgICBmYWlsZWQgfD0gdGVzdFBpbmdQb25nU3RhY2tP
dmVyZmxvdygpOwpAQCAtMjE1Nyw2ICsyMTU2LDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiBhcmd2W10pCiAKICAgICBmYWlsZWQgPSBmaW5hbGl6ZU11bHRpdGhyZWFkZWRNdWx0aVZNRXhl
Y3V0aW9uVGVzdCgpIHx8IGZhaWxlZDsKIAorICAgIC8vIERvbid0IHJ1biB0aGlzIHRpbGwgYWZ0
ZXIgdGhlIE11bHRpdGhyZWFkZWRNdWx0aVZNRXhlY3V0aW9uVGVzdCBoYXMgZmluaXNoZWQuCisg
ICAgLy8gVGhpcyBpcyBiZWNhdXNlIHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKSBtb2RpZmllcyBK
SVQgb3B0aW9ucyBhdCBydW50aW1lCisgICAgLy8gYXMgcGFydCBvZiBpdHMgdGVzdGluZy4gVGhp
cyBjYW4gd3JlYWsgaGF2b2Mgb24gdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSB0aGF0CisgICAgLy8g
ZXhwZWN0cyB0aGUgb3B0aW9ucyB0byBiZSBmcm96ZW4uIElkZWFsbHksIHdlJ2xsIGZpbmQgYSB3
YXkgZm9yIHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQorICAgIC8vIHRvIGRvIGl0cyB3b3JrIHdp
dGhvdXQgY2hhbmdpbmcgSklUIG9wdGlvbnMsIGJ1dCB0aGF0IGlzIG5vdCBlYXN5IHRvIGRvLgor
ICAgIC8vIEZvciBub3csIHdlJ2xsIGp1c3QgcnVuIGl0IGhlcmUgYXQgdGhlIGVuZCBhcyBhIHdv
cmthcm91bmQuCisgICAgZmFpbGVkIHw9IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKTsKKwogICAg
IGlmIChmYWlsZWQpIHsKICAgICAgICAgcHJpbnRmKCJGQUlMOiBTb21lIHRlc3RzIGZhaWxlZC5c
biIpOwogICAgICAgICByZXR1cm4gMTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwCShyZXZpc2lvbiAyNjIzMzQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRp
bmcoKQogI2VuZGlmCiAKICAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6aW5pdGlhbGl6ZSgp
OwotICAgICAgICBWTTo6Y29tcHV0ZUNhblVzZUpJVCgpOworICAgICAgICBPcHRpb25zOjpmaW5h
bGl6ZUpJVE9wdGlvbnMoKTsKIAogICAgICAgICBpZiAoVk06OmNhblVzZUpJVCgpICYmIE9wdGlv
bnM6OnVzZVNpZ2lsbENyYXNoQW5hbHl6ZXIoKSkKICAgICAgICAgICAgIGVuYWJsZVNpZ2lsbENy
YXNoQW5hbHl6ZXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0Nv
bmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0Nv
bmZpZy5oCShyZXZpc2lvbiAyNjIzMzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NDb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsOCArNzcsMTAgQEAgc3RydWN0IENv
bmZpZyB7CiAgICAgICAgICAgICBKSVRXcml0ZVNlcGFyYXRlSGVhcHNGdW5jdGlvbiBqaXRXcml0
ZVNlcGFyYXRlSGVhcHM7CiAgICAgICAgICAgICBib29sIHVzZUZhc3RQZXJtaXNpb25zSklUQ29w
eTsKICNlbmRpZgotCi0gICAgICAgICAgICBPcHRpb25zU3RvcmFnZSBvcHRpb25zOworICAgICAg
ICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgICAgICBib29sIGNhbkVuYWJsZUpJVDsKKyAgICAg
ICAgICAgICAgICBPcHRpb25zU3RvcmFnZSBzdG9yYWdlOworICAgICAgICAgICAgfSBvcHRpb25z
OwogCiAgICAgICAgICAgICB2b2lkICgqc2hlbGxUaW1lb3V0Q2hlY2tDYWxsYmFjaykoVk0mKTsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlz
aW9uIDI2MjMzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQXNzZW1ibGVy
Q29tbW9uLmgiCiAjaW5jbHVkZSAiQ1BVLmgiCisjaW5jbHVkZSAiRXhlY3V0YWJsZUFsbG9jYXRv
ci5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTWluaW11bVJlc2VydmVk
Wm9uZVNpemUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CkBAIC0zNzUsMTIgKzM3Niw4IEBAIHN0
YXRpYyB2b2lkIGNvcnJlY3RPcHRpb25zKCkKICAgICAgICAgT3B0aW9uczo6dGhyZXNob2xkRm9y
R2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaCgpID0gVUlOVF9NQVg7CiB9CiAKLXN0YXRpYyB2b2lk
IHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQorc3RhdGljIHZvaWQgZGlzYWJsZUFsbEpJVE9w
dGlvbnMoKQogewotI2lmICFkZWZpbmVkKE5ERUJVRykKLSAgICBPcHRpb25zOjp2YWxpZGF0ZURG
R0V4Y2VwdGlvbkhhbmRsaW5nKCkgPSB0cnVlOwotI2VuZGlmCi0jaWYgIUVOQUJMRShKSVQpCiAg
ICAgT3B0aW9uczo6dXNlTExJbnQoKSA9IHRydWU7CiAgICAgT3B0aW9uczo6dXNlSklUKCkgPSBm
YWxzZTsKICAgICBPcHRpb25zOjp1c2VCYXNlbGluZUpJVCgpID0gZmFsc2U7CkBAIC0zODgsNiAr
Mzg1LDE3IEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQogICAgIE9w
dGlvbnM6OnVzZUZUTEpJVCgpID0gZmFsc2U7CiAgICAgT3B0aW9uczo6dXNlRE9NSklUKCkgPSBm
YWxzZTsKICAgICBPcHRpb25zOjp1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOworCisgICAgT3B0aW9u
czo6dXNlQ29uY3VycmVudEpJVCgpID0gZmFsc2U7Cit9OworCitzdGF0aWMgdm9pZCByZWNvbXB1
dGVEZXBlbmRlbnRPcHRpb25zKCkKK3sKKyNpZiAhZGVmaW5lZChOREVCVUcpCisgICAgT3B0aW9u
czo6dmFsaWRhdGVERkdFeGNlcHRpb25IYW5kbGluZygpID0gdHJ1ZTsKKyNlbmRpZgorI2lmICFF
TkFCTEUoSklUKQorICAgIGRpc2FibGVBbGxKSVRPcHRpb25zKCk7CiAjZW5kaWYKICNpZiAhRU5B
QkxFKENPTkNVUlJFTlRfSlMpCiAgICAgT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID0gZmFs
c2U7CkBAIC01MTksMTMgKzUyNywxMyBAQCBzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRP
cHRpb25zKCkKIGlubGluZSB2b2lkKiBPcHRpb25zOjphZGRyZXNzT2ZPcHRpb24oT3B0aW9uczo6
SUQgaWQpCiB7CiAgICAgYXV0byBvZmZzZXQgPSBPcHRpb25zOjpzX2NvbnN0TWV0YURhdGFbaWRd
Lm9mZnNldE9mT3B0aW9uOwotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigm
Z19qc2NDb25maWcub3B0aW9ucykgKyBvZmZzZXQ7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KCZnX2pzY0NvbmZpZy5vcHRpb25zLnN0b3JhZ2UpICsgb2Zmc2V0OwogfQog
CiBpbmxpbmUgdm9pZCogT3B0aW9uczo6YWRkcmVzc09mT3B0aW9uRGVmYXVsdChPcHRpb25zOjpJ
RCBpZCkKIHsKICAgICBhdXRvIG9mZnNldCA9IE9wdGlvbnM6OnNfY29uc3RNZXRhRGF0YVtpZF0u
b2Zmc2V0T2ZPcHRpb25EZWZhdWx0OwotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4
X3QqPigmZ19qc2NDb25maWcub3B0aW9ucykgKyBvZmZzZXQ7CisgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludDhfdCo+KCZnX2pzY0NvbmZpZy5vcHRpb25zLnN0b3JhZ2UpICsgb2Zmc2V0
OwogfQogCiAjaWYgT1MoV0lORE9XUykKQEAgLTU5OCw3ICs2MDYsNyBAQCB2b2lkIE9wdGlvbnM6
OmluaXRpYWxpemUoKQogI2VuZGlmCiAKICAgICAgICAgICAgIGNvcnJlY3RPcHRpb25zKCk7Ci0g
ICAgCisKICAgICAgICAgICAgIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKTsKIAogICAgICAg
ICAgICAgLy8gRG8gcmFuZ2UgY2hlY2tzIHdoZXJlIG5lZWRlZCBhbmQgbWFrZSBjb3JyZWN0aW9u
cyB0byB0aGUgb3B0aW9uczoKQEAgLTYwNyw5ICs2MTUsNiBAQCB2b2lkIE9wdGlvbnM6OmluaXRp
YWxpemUoKQogICAgICAgICAgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXpl
QWZ0ZXJXYXJtVXAoKSA+PSAwKTsKICAgICAgICAgICAgIEFTU0VSVChPcHRpb25zOjpjcml0aWNh
bEdDTWVtb3J5VGhyZXNob2xkKCkgPiAwLjAgJiYgT3B0aW9uczo6Y3JpdGljYWxHQ01lbW9yeVRo
cmVzaG9sZCgpIDwgMS4wKTsKIAotICAgICAgICAgICAgZHVtcE9wdGlvbnNJZk5lZWRlZCgpOwot
ICAgICAgICAgICAgZW5zdXJlT3B0aW9uc0FyZUNvaGVyZW50KCk7Ci0KICNpZiBIQVZFKE1BQ0hf
RVhDRVBUSU9OUykKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp1c2VNYWNoRm9yRXhjZXB0aW9u
cygpKQogICAgICAgICAgICAgICAgIGhhbmRsZVNpZ25hbHNXaXRoTWFjaCgpOwpAQCAtNjM5LDkg
KzY0NCw1MCBAQCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAgICAgICAgICAgT3B0aW9u
czo6ZHVtcFphcHBlZENlbGxDcmFzaERhdGEoKSA9CiAgICAgICAgICAgICAgICAgKGh3UGh5c2lj
YWxDUFVNYXgoKSA+PSA0KSAmJiAoaHdMM0NhY2hlU2l6ZSgpID49IHN0YXRpY19jYXN0PGludDY0
X3Q+KDYgKiBNQikpOwogI2VuZGlmCisKKyAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgc2hv
dWxkIG9ubHkgYmUgZG9uZSBhdCB0aGUgZW5kIGFmdGVyIGFsbCBvcHRpb25zCisgICAgICAgICAg
ICAvLyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQuCisgICAgICAgICAgICBkdW1wT3B0aW9uc0lmTmVl
ZGVkKCk7CisgICAgICAgICAgICBlbnN1cmVPcHRpb25zQXJlQ29oZXJlbnQoKTsKICAgICAgICAg
fSk7CiB9CiAKKy8vIE5vdGU6IFBsYXRmb3JtLmggd2lsbCBlbmZvcmNlIHRoYXQgRU5BQkxFKEFT
U0VNQkxFUikgaXMgdHJ1ZSBpZiBlaXRoZXIKKy8vIEVOQUJMRShKSVQpIG9yIEVOQUJMRShZQVJS
X0pJVCkgb3IgYm90aCBhcmUgZW5hYmxlZC4gVGhlIGNvZGUgYmVsb3cKKy8vIGp1c3QgY2hlY2tz
IGZvciBFTkFCTEUoSklUKSBvciBFTkFCTEUoWUFSUl9KSVQpIHdpdGggdGhpcyBwcmVtaXNlIGlu
IG1pbmQuCisjaWYgRU5BQkxFKEFTU0VNQkxFUikKK3ZvaWQgT3B0aW9uczo6ZmluYWxpemVKSVRP
cHRpb25zKCkKK3sKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUtleTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlS2V5LCBbXSB7CisgICAgICAgIEFTU0VSVCghZ19qc2NDb25maWcub3B0
aW9ucy5jYW5FbmFibGVKSVQpOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGlmICghT3B0
aW9uczo6dXNlSklUKCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNo
YXIqIGNhblVzZUpJVFN0cmluZyA9IGdldGVudigiSmF2YVNjcmlwdENvcmVVc2VKSVQiKTsKKyAg
ICAgICAgICAgIGlmIChjYW5Vc2VKSVRTdHJpbmcgJiYgIWF0b2koY2FuVXNlSklUU3RyaW5nKSkK
KyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRv
cjo6aW5pdGlhbGl6ZVVuZGVybHlpbmdBbGxvY2F0b3IoKTsKKyAgICAgICAgICAgIGlmICghRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6c2luZ2xldG9uKCkuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKE9wdGlvbnM6OmNyYXNoSWZDYW50QWxsb2NhdGVKSVRNZW1vcnkoKSkKKyAgICAgICAg
ICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZ19qc2NDb25maWcub3B0aW9ucy5jYW5FbmFibGVKSVQgPSB0cnVl
OworICAgICAgICB9IHdoaWxlIChmYWxzZSk7CisKKyAgICAgICAgaWYgKCFnX2pzY0NvbmZpZy5v
cHRpb25zLmNhbkVuYWJsZUpJVCkgeworICAgICAgICAgICAgZGlzYWJsZUFsbEpJVE9wdGlvbnMo
KTsKKyAgICAgICAgICAgIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKTsKKyAgICAgICAgfQor
ICAgIH0pOworfQorI2VuZGlmIC8vIEVOQUJMRShBU1NFTUJMRVIpCisKIHZvaWQgT3B0aW9uczo6
ZHVtcE9wdGlvbnNJZk5lZWRlZCgpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmR1bXBPcHRpb25zKCkp
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9u
IDI2MjMzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTc0LDYgKzc0LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBKU19F
WFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CisgICAgc3RhdGljIHZvaWQg
ZmluYWxpemVKSVRPcHRpb25zKCk7CiAKICAgICAvLyBQYXJzZXMgYSBzdHJpbmcgb2Ygb3B0aW9u
cyB3aGVyZSBlYWNoIG9wdGlvbiBpcyBvZiB0aGUgZm9ybWF0ICItLTxvcHRpb25OYW1lPj08dmFs
dWU+IgogICAgIC8vIGFuZCBhcmUgc2VwYXJhdGVkIGJ5IGEgc3BhY2UuIFRoZSBsZWFkaW5nICIt
LSIgaXMgb3B0aW9uYWwgYW5kIHdpbGwgYmUgaWdub3JlZC4KQEAgLTg5LDggKzkwLDggQEAgcHVi
bGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGVuc3VyZU9wdGlvbnNBcmVD
b2hlcmVudCgpOwogCiAjZGVmaW5lIERFQ0xBUkVfT1BUSU9OX0FDQ0VTU09SUyh0eXBlXywgbmFt
ZV8sIGRlZmF1bHRWYWx1ZV8sIGF2YWlsYWJpbGl0eV8sIGRlc2NyaXB0aW9uXykgXAotICAgIEFM
V0FZU19JTkxJTkUgc3RhdGljIE9wdGlvbnNTdG9yYWdlOjp0eXBlXyYgbmFtZV8oKSB7IHJldHVy
biBnX2pzY0NvbmZpZy5vcHRpb25zLm5hbWVfOyB9ICBcCi0gICAgQUxXQVlTX0lOTElORSBzdGF0
aWMgT3B0aW9uc1N0b3JhZ2U6OnR5cGVfJiBuYW1lXyMjRGVmYXVsdCgpIHsgcmV0dXJuIGdfanNj
Q29uZmlnLm9wdGlvbnMubmFtZV8jI0RlZmF1bHQ7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRp
YyBPcHRpb25zU3RvcmFnZTo6dHlwZV8mIG5hbWVfKCkgeyByZXR1cm4gZ19qc2NDb25maWcub3B0
aW9ucy5zdG9yYWdlLm5hbWVfOyB9ICBcCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgT3B0aW9u
c1N0b3JhZ2U6OnR5cGVfJiBuYW1lXyMjRGVmYXVsdCgpIHsgcmV0dXJuIGdfanNjQ29uZmlnLm9w
dGlvbnMuc3RvcmFnZS5uYW1lXyMjRGVmYXVsdDsgfQogCiAgICAgRk9SX0VBQ0hfSlNDX09QVElP
TihERUNMQVJFX09QVElPTl9BQ0NFU1NPUlMpCiAjdW5kZWYgREVDTEFSRV9PUFRJT05fQUNDRVNT
T1JTCkBAIC0xMzEsNCArMTMyLDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgc3RydWN0IE9wdGlv
blJlYWRlcjsKIH07CiAKKyNpZiAhRU5BQkxFKEFTU0VNQkxFUikKK2lubGluZSB2b2lkIE9wdGlv
bnM6OmZpbmFsaXplSklUT3B0aW9ucygpIHsgfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMjYyMzM0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTYsNjcgKzE5NiwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVOQUJMRShK
SVQpCi0jaWYgQVNTRVJUX0VOQUJMRUQKLWJvb2wgVk06OnNfY2FuVXNlSklUSXNTZXQgPSBmYWxz
ZTsKLSNlbmRpZgotYm9vbCBWTTo6c19jYW5Vc2VKSVQgPSBmYWxzZTsKLSNlbmRpZgotCiBBdG9t
aWM8dW5zaWduZWQ+IFZNOjpzX251bWJlck9mSURzOwogCiBERUZJTkVfQUxMT0NBVE9SX1dJVEhf
SEVBUF9JREVOVElGSUVSKFZNKTsKIAotLy8gTm90ZTogUGxhdGZvcm0uaCB3aWxsIGVuZm9yY2Ug
dGhhdCBFTkFCTEUoQVNTRU1CTEVSKSBpcyB0cnVlIGlmIGVpdGhlcgotLy8gRU5BQkxFKEpJVCkg
b3IgRU5BQkxFKFlBUlJfSklUKSBvciBib3RoIGFyZSBlbmFibGVkLiBUaGUgY29kZSBiZWxvdwot
Ly8ganVzdCBjaGVja3MgZm9yIEVOQUJMRShKSVQpIG9yIEVOQUJMRShZQVJSX0pJVCkgd2l0aCB0
aGlzIHByZW1pc2UgaW4gbWluZC4KLQotI2lmIEVOQUJMRShBU1NFTUJMRVIpCi1zdGF0aWMgYm9v
bCBlbmFibGVBc3NlbWJsZXIoKQotewotICAgIGlmICghT3B0aW9uczo6dXNlSklUKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNoYXIqIGNhblVzZUpJVFN0cmluZyA9IGdldGVudigi
SmF2YVNjcmlwdENvcmVVc2VKSVQiKTsKLSAgICBpZiAoY2FuVXNlSklUU3RyaW5nICYmICFhdG9p
KGNhblVzZUpJVFN0cmluZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmluaXRpYWxpemVVbmRlcmx5aW5nQWxsb2NhdG9yKCk7Ci0gICAgaWYgKCFF
eGVjdXRhYmxlQWxsb2NhdG9yOjpzaW5nbGV0b24oKS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgaWYg
KE9wdGlvbnM6OmNyYXNoSWZDYW50QWxsb2NhdGVKSVRNZW1vcnkoKSkKLSAgICAgICAgICAgIENS
QVNIKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLSNlbmRpZiAvLyBFTkFCTEUoIUFTU0VNQkxFUikKLQotYm9vbCBWTTo6Y2FuVXNlQXNzZW1i
bGVyKCkKLXsKLSNpZiBFTkFCTEUoQVNTRU1CTEVSKQotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlS2V5OwotICAgIHN0YXRpYyBib29sIGVuYWJsZWQgPSBmYWxzZTsKLSAgICBzdGQ6OmNh
bGxfb25jZShvbmNlS2V5LCBbXSB7Ci0gICAgICAgIGVuYWJsZWQgPSBlbmFibGVBc3NlbWJsZXIo
KTsKLSAgICB9KTsKLSAgICByZXR1cm4gZW5hYmxlZDsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNl
OyAvLyBpbnRlcnByZXRlciBvbmx5Ci0jZW5kaWYKLX0KLQotdm9pZCBWTTo6Y29tcHV0ZUNhblVz
ZUpJVCgpCi17Ci0jaWYgRU5BQkxFKEpJVCkKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIFJFTEVB
U0VfQVNTRVJUKCFzX2NhblVzZUpJVElzU2V0KTsKLSAgICBzX2NhblVzZUpJVElzU2V0ID0gdHJ1
ZTsKLSNlbmRpZgotICAgIHNfY2FuVXNlSklUID0gVk06OmNhblVzZUFzc2VtYmxlcigpICYmIE9w
dGlvbnM6OnVzZUpJVCgpOwotI2VuZGlmCi19Ci0KIGlubGluZSB1bnNpZ25lZCBWTTo6bmV4dElE
KCkKIHsKICAgICBmb3IgKDs7KSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJ
KHJldmlzaW9uIDI2MjMzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc4OSw3ICs3ODksNiBAQCBwdWJsaWM6CiAgICAgICAgIERlbGV0
ZVByb3BlcnR5TW9kZSBtX3ByZXZpb3VzTW9kZTsKICAgICB9OwogCi0gICAgc3RhdGljIEpTX0VY
UE9SVF9QUklWQVRFIGJvb2wgY2FuVXNlQXNzZW1ibGVyKCk7CiAgICAgc3RhdGljIGJvb2wgaXNJ
bk1pbmlNb2RlKCkKICAgICB7CiAgICAgICAgIHJldHVybiAhY2FuVXNlSklUKCkgfHwgT3B0aW9u
czo6Zm9yY2VNaW5pVk1Nb2RlKCk7CkBAIC04MDAsMTIgKzc5OSwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBPcHRpb25zOjp1c2VVbmxpbmtlZENvZGVCbG9ja0pldHRpc29uaW5nKCkgfHwg
aXNJbk1pbmlNb2RlKCk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgY29tcHV0ZUNhblVzZUpJ
VCgpOwogICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgY2FuVXNlSklUKCkKICAgICB7CiAj
aWYgRU5BQkxFKEpJVCkKLSAgICAgICAgQVNTRVJUKHNfY2FuVXNlSklUSXNTZXQpOwotICAgICAg
ICByZXR1cm4gc19jYW5Vc2VKSVQ7CisgICAgICAgIHJldHVybiBPcHRpb25zOjp1c2VKSVQoKTsK
ICNlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpAQCAtMTIzMiwxMyArMTIyOSw2
IEBAIHByaXZhdGU6CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKFZNJik+IG1fb25FYWNoTWljcm90
YXNrVGljazsKICAgICB1aW50cHRyX3QgbV9jdXJyZW50V2Vha1JlZlZlcnNpb24geyAwIH07CiAK
LSNpZiBFTkFCTEUoSklUKQotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIGJvb2wgc19jYW5Vc2VKSVRJc1NldDsKLSNlbmRpZgotICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyBib29sIHNfY2FuVXNlSklUOwotI2VuZGlmCi0KICAgICBWTSogbV9wcmV2
OyAvLyBSZXF1aXJlZCBieSBEb3VibHlMaW5rZWRMaXN0Tm9kZS4KICAgICBWTSogbV9uZXh0OyAv
LyBSZXF1aXJlZCBieSBEb3VibHlMaW5rZWRMaXN0Tm9kZS4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400659</attachid>
            <date>2020-05-30 00:57:32 -0700</date>
            <delta_ts>2020-05-30 09:01:12 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-212561.patch</filename>
            <type>text/plain</type>
            <size>4385</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyMzQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDIwLTA1LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OmNhbGxFeGNlcHRpb25GdXp6KCkgaXMgcGFzc2luZyBhIHdyb25nIGFy
Z3VtZW50IHRvIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enooKS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjU2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlJ3MgMiBwb3NzaWJsZSBzb2x1dGlvbiB0
byB0aGlzIGlzc3VlOgorICAgICAgICAxLiBUaHJlYWQgdGhlIGdsb2JhbE9iamVjdCBmcm9tIGFs
bCB0aGUgd2F5IHVwIHRoZSBjbGllbnRzIGNhbGxpbmcgaW50bworICAgICAgICAgICBjYWxsRXhj
ZXB0aW9uRnV6eigpLCBvcgorICAgICAgICAyLiBJbnRyb2R1Y2UgYSBvcGVyYXRpb25FeGNlcHRp
b25GdXp6V2l0aENhbGxGcmFtZSgpIHdyYXBwZXIgdGFrZSByZWNlaXZlcyBhIFZNKgorICAgICAg
ICAgICBhbmQgQ2FsbEZyYW1lKiwgYW5kIHVzZSB0aGVzZSB0byBnZXQgdGhlIGxleGljYWxHbG9i
YWxPYmplY3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhcHBsaWVzIHNvbHV0aW9uIDIuCisKKyAg
ICAgICAgU29sdXRpb24gMSBpcyB0b28gdW53aWVsZHkgYmVjYXVzZSBpdCB3aWxsIGNhdXNlIHRo
ZSB0aHJlYWRpbmcgb2YgdGhlIGdsb2JhbE9iamVjdAorICAgICAgICBhcmd1bWVudCB0byBmYW4g
b3V0IHRvIG1hbnkgY2xpZW50cywgYW5kIGFsbW9zdCBhbGwgb2YgdGhvc2UgY2xpZW50cyBjdXJy
ZW50bHkKKyAgICAgICAgZG8gbm90IG5lZWQgdGhlIGdsb2JhbE9iamVjdC4gIEhlbmNlLCBpbXBs
ZW1lbnRpbmcgdGhpcyBzb2x1dGlvbiBtYXkgaW5jdXIgc29tZQorICAgICAgICBwZXJmb3JtYW5j
ZSBwZW5hbHR5IGluIG5vcm1hbCBjb2RlLCBmb3IgdGhlIHNvbGUgYmVuZWZpdCBvZiB0aGlzIG9u
ZSBmdXp6aW5nIHRvb2wuCisKKyAgICAgICAgU2Vjb25kbHksIHRoZSBleGNlcHRpb24gZnV6emVy
IGRvZXNuJ3QgcmVhbGx5IGNhcmUgd2hpY2ggZ2xvYmFsT2JqZWN0IGlzIHVzZWQuCisgICAgICAg
IEl0IG9ubHkgY2FyZXMgdGhhdCBhbiBleGNlcHRpb24gaXMgdGhyb3duLCBhbmQgd2UgbmVlZCBh
IGdsb2JhbE9iamVjdCBpbiBvcmRlciB0bworICAgICAgICB0aHJvdyB0aGF0IGV4Y2VwdGlvbi4g
IEhlbmNlLCB0aGVyZSBpcyBubyBiZW5lZml0IHRvIHRocmVhZGluZyB0aGUgZ2xvYmFsT2JqZWN0
CisgICAgICAgIGRvd24gZnJvbSBhbGwgdGhlIGNsaWVudHMuCisKKyAgICAgICAgKiBqaXQvQXNz
ZW1ibHlIZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpjYWxsRXhj
ZXB0aW9uRnV6eik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAq
IGppdC9KSVRPcGVyYXRpb25zLmg6CisKIDIwMjAtMDUtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgV2UgbmVlZCB0byBwcm9wZXJseSBtb2RlbCBoZWFwIHJh
bmdlcyBvZiBEZWxldGUgaW4gREZHL0IzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCShyZXZpc2lvbiAyNjIzMzQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
MSw4ICsyNTEsOSBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6Y2FsbEV4Y2VwdGlvbkZ1enooCiAg
ICAgfQogCiAgICAgLy8gU2V0IHVwIG9uZSBhcmd1bWVudC4KLSAgICBtb3ZlKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIG1vdmUoVHJ1c3Rl
ZEltbVB0cih0YWdDRnVuY3Rpb248T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25FeGNlcHRpb25G
dXp6KSksIEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7CisgICAgbW92ZShUcnVz
dGVkSW1tUHRyKCZ2bSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgbW92ZShHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICBtb3ZlKFRy
dXN0ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uRXhjZXB0
aW9uRnV6eldpdGhDYWxsRnJhbWUpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BS
KTsKICAgICBwcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7CiAgICAgY2FsbChHUFJJbmZvOjpub25Q
cmVzZXJ2ZWROb25SZXR1cm5HUFIsIE9wZXJhdGlvblB0clRhZyk7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjYyMzM0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYzOSw2ICsyNjM5LDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25F
eGNlcHRpb25GdXoKICNlbmRpZiAvLyBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKIH0KIAordm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enpXaXRoQ2FsbEZyYW1lKFZNKiB2
bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgb3BlcmF0aW9uRXhjZXB0aW9uRnV6eihj
YWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKnZtKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjYyMzM0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yODIsNiArMjgyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldyaXRlQmFycmll
cgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9TUldyaXRlQmFycmllcihWTSosIEpTQ2Vs
bCopOwogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRXhjZXB0aW9uRnV6eihKU0dsb2Jh
bE9iamVjdCopOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enpXaXRo
Q2FsbEZyYW1lKFZNKiwgQ2FsbEZyYW1lKik7CiAKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25DaGVja0lmRXhjZXB0aW9uSXNVbmNhdGNoYWJsZUFuZE5vdGlmeVByb2ZpbGVyKFZNKik7
CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0
b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkgV1RGX0lOVEVSTkFMOwo=
</data>
<flag name="review"
          id="416059"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400669</attachid>
            <date>2020-05-30 09:01:12 -0700</date>
            <delta_ts>2020-05-30 14:09:38 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-212561.patch</filename>
            <type>text/plain</type>
            <size>4652</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYyMzQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDIwLTA1LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
c3NlbWJseUhlbHBlcnM6OmNhbGxFeGNlcHRpb25GdXp6KCkgaXMgcGFzc2luZyBhIHdyb25nIGFy
Z3VtZW50IHRvIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enooKS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjU2MQorCisgICAgICAgIFJldmlld2VkIGJ5
IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgVGhlcmUncyAyIHBvc3NpYmxlIHNvbHV0aW9uIHRv
IHRoaXMgaXNzdWU6CisgICAgICAgIDEuIFRocmVhZCB0aGUgZ2xvYmFsT2JqZWN0IGZyb20gYWxs
IHRoZSB3YXkgdXAgdGhlIGNsaWVudHMgY2FsbGluZyBpbnRvCisgICAgICAgICAgIGNhbGxFeGNl
cHRpb25GdXp6KCksIG9yCisgICAgICAgIDIuIEludHJvZHVjZSBhIG9wZXJhdGlvbkV4Y2VwdGlv
bkZ1enpXaXRoQ2FsbEZyYW1lKCkgd3JhcHBlciB0YWtlIHJlY2VpdmVzIGEgVk0qCisgICAgICAg
ICAgIGFuZCBDYWxsRnJhbWUqLCBhbmQgdXNlIHRoZXNlIHRvIGdldCB0aGUgbGV4aWNhbEdsb2Jh
bE9iamVjdC4KKworICAgICAgICBUaGlzIHBhdGNoIGFwcGxpZXMgc29sdXRpb24gMi4KKworICAg
ICAgICBTb2x1dGlvbiAxIGlzIHRvbyB1bndpZWxkeSBiZWNhdXNlIGl0IHdpbGwgY2F1c2UgdGhl
IHRocmVhZGluZyBvZiB0aGUgZ2xvYmFsT2JqZWN0CisgICAgICAgIGFyZ3VtZW50IHRvIGZhbiBv
dXQgdG8gbWFueSBjbGllbnRzLCBhbmQgYWxtb3N0IGFsbCBvZiB0aG9zZSBjbGllbnRzIGN1cnJl
bnRseQorICAgICAgICBkbyBub3QgbmVlZCB0aGUgZ2xvYmFsT2JqZWN0LiAgSGVuY2UsIGltcGxl
bWVudGluZyB0aGlzIHNvbHV0aW9uIG1heSBpbmN1ciBzb21lCisgICAgICAgIHBlcmZvcm1hbmNl
IHBlbmFsdHkgaW4gbm9ybWFsIGNvZGUsIGZvciB0aGUgc29sZSBiZW5lZml0IG9mIHRoaXMgb25l
IGZ1enppbmcgdG9vbC4KKworICAgICAgICBTZWNvbmRseSwgdGhlIGV4Y2VwdGlvbiBmdXp6ZXIg
ZG9lc24ndCByZWFsbHkgY2FyZSB3aGljaCBnbG9iYWxPYmplY3QgaXMgdXNlZC4KKyAgICAgICAg
SXQgb25seSBjYXJlcyB0aGF0IGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24sIGFuZCB3ZSBuZWVkIGEg
Z2xvYmFsT2JqZWN0IGluIG9yZGVyIHRvCisgICAgICAgIHRocm93IHRoYXQgZXhjZXB0aW9uLiAg
SGVuY2UsIHRoZXJlIGlzIG5vIGJlbmVmaXQgdG8gdGhyZWFkaW5nIHRoZSBnbG9iYWxPYmplY3QK
KyAgICAgICAgZG93biBmcm9tIGFsbCB0aGUgY2xpZW50cy4KKworICAgICAgICAqIGppdC9Bc3Nl
bWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNhbGxFeGNl
cHRpb25GdXp6KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuaDoKKwogMjAyMC0wNS0yOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBuZWVkIHRvIHByb3Blcmx5IG1vZGVsIGhlYXAgcmFu
Z2VzIG9mIERlbGV0ZSBpbiBERkcvQjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5jcHAJKHJldmlzaW9uIDI2MjMzNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUx
LDggKzI1MSw4IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpjYWxsRXhjZXB0aW9uRnV6eigKICAg
ICB9CiAKICAgICAvLyBTZXQgdXAgb25lIGFyZ3VtZW50LgotICAgIG1vdmUoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgbW92ZShUcnVzdGVk
SW1tUHRyKHRhZ0NGdW5jdGlvbjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkV4Y2VwdGlvbkZ1
enopKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKKyAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoJnZtKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBtb3ZlKFRydXN0ZWRJ
bW1QdHIodGFnQ0Z1bmN0aW9uPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uRXhjZXB0aW9uRnV6
eldpdGhDYWxsRnJhbWUpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAg
ICBwcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7CiAgICAgY2FsbChHUFJJbmZvOjpub25QcmVzZXJ2
ZWROb25SZXR1cm5HUFIsIE9wZXJhdGlvblB0clRhZyk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjYyMzM0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjYzOSw2ICsyNjM5LDE5IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25FeGNlcHRp
b25GdXoKICNlbmRpZiAvLyBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKIH0KIAordm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enpXaXRoQ2FsbEZyYW1lKFZNKiB2bVBvaW50
ZXIpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBVTlVTRURfUEFSQU0oc2NvcGUpOworI2lmIENPTVBJ
TEVSKEdDQ19DT01QQVRJQkxFKQorICAgIHZvaWQqIHJldHVyblBDID0gX19idWlsdGluX3JldHVy
bl9hZGRyZXNzKDApOworICAgIGRvRXhjZXB0aW9uRnV6emluZyhjYWxsRnJhbWUtPmxleGljYWxH
bG9iYWxPYmplY3Qodm0pLCBzY29wZSwgIkpJVE9wZXJhdGlvbnMiLCByZXR1cm5QQyk7CisjZW5k
aWYgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVmFsdWVBZGQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjYyMzM0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODIs
NiArMjgyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldyaXRlQmFycmllcgogdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9TUldyaXRlQmFycmllcihWTSosIEpTQ2VsbCopOwog
CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRXhjZXB0aW9uRnV6eihKU0dsb2JhbE9iamVj
dCopOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enpXaXRoQ2FsbEZy
YW1lKFZNKik7CiAKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DaGVja0lmRXhjZXB0
aW9uSXNVbmNhdGNoYWJsZUFuZE5vdGlmeVByb2ZpbGVyKFZNKik7CiBzaXplX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRIYXNJbnN0YW5jZSkgV1RGX0lOVEVSTkFMOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>