<?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>237130</bug_id>
          
          <creation_ts>2022-02-23 22:36:05 -0800</creation_ts>
          <short_desc>SQLiteDatabase::open should return early if journal mode cannot be set</short_desc>
          <delta_ts>2022-03-04 00:44:02 -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>New Bugs</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="Ben Nham">nham</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>nham</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845517</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-23 22:36:05 -0800</bug_when>
    <thetext>SQLiteDatabase should bail out if opening fails</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845520</commentid>
    <comment_count>1</comment_count>
      <attachid>453076</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-23 22:40:53 -0800</bug_when>
    <thetext>Created attachment 453076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845521</commentid>
    <comment_count>2</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-23 22:41:50 -0800</bug_when>
    <thetext>&lt;rdar://83130954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845523</commentid>
    <comment_count>3</comment_count>
      <attachid>453076</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-23 23:13:11 -0800</bug_when>
    <thetext>Comment on attachment 453076
Patch

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

&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:145
&gt; +    if (!isOpen()) {

Why not return earlier? E.g. after sqlite3_open_v2() call above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847653</commentid>
    <comment_count>4</comment_count>
      <attachid>453671</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-02 16:00:58 -0800</bug_when>
    <thetext>Created attachment 453671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848027</commentid>
    <comment_count>5</comment_count>
      <attachid>453774</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-03 12:08:15 -0800</bug_when>
    <thetext>Created attachment 453774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848108</commentid>
    <comment_count>6</comment_count>
      <attachid>453774</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-03 16:34:08 -0800</bug_when>
    <thetext>Comment on attachment 453774
Patch

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

&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:132
&gt; +        int result = SQLITE_OK;

Just because there are braces below doesn’t mean we need to initialize this here. I suppose it’s OK.

&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:102
&gt; +    int checkpoint(CheckpointMode);

Why add this return value? No caller is checking it. Is it for future use?

&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:172
&gt; +    int useWALJournalMode();

Seems like returning an error code as an int with no comment or type to disambiguate and say what the return value means is not a great pattern.

In this particular case, the caller just needs to know if this succeeded or failed, so a bool for success would work and I think might be better than returning the error code.

I suppose it’s not a *disaster* to return an SQLite error code as an int, but how would I know that’s what this function returns? Elsewhere we use named types whenever possible for error codes, or enums or special-purpose objects. I think booleans for success work too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848119</commentid>
    <comment_count>7</comment_count>
      <attachid>453774</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-03 17:04:12 -0800</bug_when>
    <thetext>Comment on attachment 453774
Patch

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

&gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:102
&gt;&gt; +    int checkpoint(CheckpointMode);
&gt; 
&gt; Why add this return value? No caller is checking it. Is it for future use?

I was planned to use the return value to decide if error is lethal and we should close database immediately. 
Then I decided to just keep existing behavior that ignores the checkpoint error. So this is unused; I will revert this change.

&gt;&gt; Source/WebCore/platform/sql/SQLiteDatabase.h:172
&gt;&gt; +    int useWALJournalMode();
&gt; 
&gt; Seems like returning an error code as an int with no comment or type to disambiguate and say what the return value means is not a great pattern.
&gt; 
&gt; In this particular case, the caller just needs to know if this succeeded or failed, so a bool for success would work and I think might be better than returning the error code.
&gt; 
&gt; I suppose it’s not a *disaster* to return an SQLite error code as an int, but how would I know that’s what this function returns? Elsewhere we use named types whenever possible for error codes, or enums or special-purpose objects. I think booleans for success work too.

Sure, will use bool instead. We can get the error with sqlite3_errcode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848156</commentid>
    <comment_count>8</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-03 19:40:25 -0800</bug_when>
    <thetext>Patch looks reasonable to me. Just for the future, here is what we found:

1. sqlite3_open_v2 can succeed even if you can&apos;t open or create the -shm file for whatever reason (e.g. out of disk space or file handles).
2. Executing `PRAGMA journal_mode=wal` seems to fail if you can&apos;t open or create the -shm file. But we were ignoring the result of this operation.
3. Then we would try to call sqlite3_wal_checkpoint_v2 on the connection. This actually crashes if you can&apos;t open the -shm file.

So the workaround in this patch was to add a bailout at (2) rather than crashing at (3).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848190</commentid>
    <comment_count>9</comment_count>
      <attachid>453817</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-03 23:19:41 -0800</bug_when>
    <thetext>Created attachment 453817
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848195</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-04 00:43:59 -0800</bug_when>
    <thetext>Committed r290822 (248058@main): &lt;https://commits.webkit.org/248058@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453817.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453076</attachid>
            <date>2022-02-23 22:40:53 -0800</date>
            <delta_ts>2022-03-02 16:00:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237130-20220223224052.patch</filename>
            <type>text/plain</type>
            <size>2054</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkyZmNhZWU1YWFiMmJk
NzI4ZmFiZWFjMTNkMzM4YjI4NWNlMGZjMS4uNDVjZGFlYTcyZDQ3MTQyMDRhMjc2MzQ1YjU4MTM3
MjI4NzVlMzg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAyLTIzICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIFNRTGl0ZURhdGFiYXNlIHNob3VsZCBi
YWlsIG91dCBpZiBvcGVuaW5nIGZhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzcxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTUUxpdGVEYXRhYmFzZSBkb2Vzbid0IGFjdHVhbGx5IHJldHVybiB3
aGVuIG9wZW5pbmcgdGhlIGRhdGFiYXNlIGZhaWxzLiBUaGlzIG1lYW5zIHRoYXQgaWYKKyAgICAg
ICAgc3FsaXRlM19vcGVuX3YyIGZhaWxzIGFuZCByZXR1cm5zIGEgbnVsbCBkYXRhYmFzZSBoYW5k
bGUsIHdlIHRoZW4gY29udGludWUgdG8gdXNlIHRoYXQKKyAgICAgICAgbnVsbCBkYXRhYmFzZSBo
YW5kbGUgaW4gZnVydGhlciBTUUxpdGUgQVBJIGNhbGxzLiBJbiBwYXJ0aWN1bGFyLCB0aGlzIGV2
ZW50dWFsbHkgY2F1c2VzIGEKKyAgICAgICAgY3Jhc2ggaW4gc3FsaXRlM193YWxfYXV0b2NoZWNr
cG9pbnRfdjIuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIGJhaWwgb3V0IGZyb20gdGhlIGZ1bmN0
aW9uIGlmIHNxbGl0ZTNfb3Blbl92MiBmYWlscy4KKworICAgICAgICAqIHBsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6b3Bl
bik6CisKIDIwMjItMDItMjEgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
RW5mb3JjZSBzaWxlbnQgcHVzaCBxdW90YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5jcHAKaW5kZXggMDE4YTU4ZTE5MTMwY2ZkNDg5MmQzYmFlNmRlMTdm
ODU4MDFjZWEyZi4uYmVlYmRlYzhlZjUyMWU1M2E1NGRkMWIxOGZhOTc0YzQ1M2EyMDMyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCkBAIC0x
NDIsMTAgKzE0MiwxMiBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUsIE9wZW5Nb2RlIG9wZW5Nb2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgaWYgKGlzT3BlbigpKQotICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSAmVGhyZWFk
OjpjdXJyZW50KCk7Ci0gICAgZWxzZQorICAgIGlmICghaXNPcGVuKCkpIHsKICAgICAgICAgbV9v
cGVuRXJyb3JNZXNzYWdlID0gInNxbGl0ZV9vcGVuIHJldHVybmVkIG51bGwiOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbV9vcGVuaW5nVGhyZWFkID0gJlRocmVhZDo6Y3Vy
cmVudCgpOwogCiAgICAgewogICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRv
Q291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CkBAIC0xNjYsNyArMTY4LDcgQEAgYm9vbCBTUUxp
dGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBPcGVuTW9kZSBvcGVuTW9k
ZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBpc09wZW4oKTsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogc3RhdGljIGludCB3YWxBdXRvbWF0aWNUcnVuY2F0aW9uSG9vayh2b2lkKiBj
b250ZXh0LCBzcWxpdGUzKiBkYiwgY29uc3QgY2hhciogZGJOYW1lLCBpbnQgd2FsUGFnZUNvdW50
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453671</attachid>
            <date>2022-03-02 16:00:58 -0800</date>
            <delta_ts>2022-03-03 12:08:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237130-20220302160057.patch</filename>
            <type>text/plain</type>
            <size>9673</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzZmZWZkYmJlMDY5ODU4
ODgwZjljZjQ5YmViNGNkZTY2ZmE5OTNhZi4uOTMzODU3OWM4ZWIwZTY4MjAzM2UzZjBmMzc2ODI0
YzdmMDJlM2RlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTAzLTAyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNRTGl0ZURhdGFiYXNlOjpv
cGVuIHNob3VsZCByZXR1cm4gZWFybHkgaWYgam91cm5hbCBtb2RlIGNhbm5vdCBiZSBzZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzEzMAorICAg
ICAgICA8cmRhcjovLzgzMTMwOTU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBlYXJseSByZXR1cm4gaW4gU1FMaXRlRGF0YWJhc2UgaWYgb3Bl
cmF0aW9uIGZhaWxzOyBhbHNvIG1ha2Ugc3VyZSBlcnJvciBpcyBwcm9wZXJseSBzZXQgYW5kIGRh
dGFiYXNlIGlzIAorICAgICAgICBjbG9zZWQgaW4gdGhlIGNhc2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0
YWJhc2U6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNoZWNrcG9p
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnVzZVdBTEpvdXJuYWxNb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpjbG9zZSk6CisgICAgICAgICog
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisKIDIwMjItMDMtMDEgIFBlciBBcm5lIFZv
bGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByZWxlYXNlIGFzc2Vy
dCB3aGVuIFVJIHByb2Nlc3MgaXMgYmxvY2tpbmcgSU9TdXJmYWNlIElPS2l0IGFjY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKaW5kZXggMDE4
YTU4ZTE5MTMwY2ZkNDg5MmQzYmFlNmRlMTdmODU4MDFjZWEyZi4uYTRjYTc2MmYwZWZkMDlhNjE5
YjE2YzE1N2Q3OWQ1OWI5OTE2Mzk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8dGhyZWFk
PgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNp
bmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlTnVtYmVycy5oPgpAQCAtOTYsOSArOTcsMTggQEAgY29uc3QgY2hhciogU1FMaXRlRGF0YWJh
c2U6OmluTWVtb3J5UGF0aCgpCiBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmlu
ZyYgZmlsZW5hbWUsIE9wZW5Nb2RlIG9wZW5Nb2RlKQogewogICAgIGluaXRpYWxpemVTUUxpdGVJ
Zk5lY2Vzc2FyeSgpOwotCiAgICAgY2xvc2UoKTsKIAorICAgIGF1dG8gY2xvc2VEYXRhYmFzZSA9
IG1ha2VTY29wZUV4aXQoWyZdKCkgeworICAgICAgICBpZiAoIW1fZGIpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbV9vcGVuaW5nVGhyZWFkID0gbnVsbHB0cjsKKyAgICAgICAgbV9v
cGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIG1fb3BlbkVy
cm9yID0gc3FsaXRlM19lcnJjb2RlKG1fZGIpOworICAgICAgICBjbG9zZSgpOworICAgIH0pOwor
CiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgaXNEYXRhYmFzZU9wZW5pbmdGb3JiaWRk
ZW5Mb2NrIH07CiAgICAgICAgIGlmIChpc0RhdGFiYXNlT3BlbmluZ0ZvcmJpZGRlbikgewpAQCAt
MTE5LDMzICsxMjksMjYgQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBPcGVuTW9kZSBvcGVuTW9kZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAKKyAgICAgICAgaW50IHJlc3VsdCA9IFNRTElURV9PSzsKICAgICAgICAgewogICAgICAg
ICAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25D
b3VudGVyOwotICAgICAgICAgICAgbV9vcGVuRXJyb3IgPSBzcWxpdGUzX29wZW5fdjIoRmlsZVN5
c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGZpbGVuYW1lKS5kYXRhKCksICZtX2RiLCBm
bGFncywgbnVsbHB0cik7CisgICAgICAgICAgICByZXN1bHQgPSBzcWxpdGUzX29wZW5fdjIoRmls
ZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGZpbGVuYW1lKS5kYXRhKCksICZtX2Ri
LCBmbGFncywgbnVsbHB0cik7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG1fb3BlbkVycm9yICE9
IFNRTElURV9PSykgewotICAgICAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gbV9kYiA/IHNx
bGl0ZTNfZXJybXNnKG1fZGIpIDogInNxbGl0ZV9vcGVuIHJldHVybmVkIG51bGwiOwotICAgICAg
ICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFpbGVkIHRvIGxvYWQgZnJvbSAlc1xu
Q2F1c2UgLSAlcyIsIGZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpLAotICAgICAgICAgICAgICAgIG1f
b3BlbkVycm9yTWVzc2FnZS5kYXRhKCkpOwotICAgICAgICAgICAgY2xvc2UoU2hvdWxkU2V0RXJy
b3JTdGF0ZTo6Tm8pOworCisgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMSVRFX09LKSB7CisgICAg
ICAgICAgICBpZiAoIW1fZGIpIHsKKyAgICAgICAgICAgICAgICBtX29wZW5FcnJvciA9IHJlc3Vs
dDsKKyAgICAgICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0
dXJuZWQgbnVsbCI7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KICAgICB9CiAKICAgICBvdmVycmlkZVVuYXV0aG9yaXplZEZ1bmN0aW9ucygpOwog
Ci0gICAgbV9vcGVuRXJyb3IgPSBzcWxpdGUzX2V4dGVuZGVkX3Jlc3VsdF9jb2RlcyhtX2RiLCAx
KTsKLSAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIG1fb3BlbkVy
cm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1fZGIpOwotICAgICAgICBMT0dfRVJST1IoIlNR
TGl0ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJsaW5nIGV4dGVuZGVkIGVycm9ycyAtICVzIiwg
bV9vcGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7Ci0gICAgICAgIGNsb3NlKFNob3VsZFNldEVycm9y
U3RhdGU6Ok5vKTsKKyAgICBtX29wZW5pbmdUaHJlYWQgPSAmVGhyZWFkOjpjdXJyZW50KCk7Cisg
ICAgaWYgKHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1fZGIsIDEpICE9IFNRTElURV9P
SykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChpc09wZW4oKSkKLSAg
ICAgICAgbV9vcGVuaW5nVGhyZWFkID0gJlRocmVhZDo6Y3VycmVudCgpOwotICAgIGVsc2UKLSAg
ICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gInNxbGl0ZV9vcGVuIHJldHVybmVkIG51bGwiOwog
CiAgICAgewogICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0
cmFuc2FjdGlvbkNvdW50ZXI7CkBAIC0xNTQsMTkgKzE1NywxOCBAQCBib29sIFNRTGl0ZURhdGFi
YXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIE9wZW5Nb2RlIG9wZW5Nb2RlKQogICAg
IH0KIAogICAgIGlmIChmaWxlbmFtZSAhPSBpbk1lbW9yeVBhdGgoKSkgewotICAgICAgICBpZiAo
b3Blbk1vZGUgIT0gT3Blbk1vZGU6OlJlYWRPbmx5KQotICAgICAgICAgICAgdXNlV0FMSm91cm5h
bE1vZGUoKTsKKyAgICAgICAgaWYgKG9wZW5Nb2RlICE9IE9wZW5Nb2RlOjpSZWFkT25seSAmJiB1
c2VXQUxKb3VybmFsTW9kZSgpICE9IFNRTElURV9PSykKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgICAgICBhdXRvIHNobUZpbGVOYW1lID0gbWFrZVN0cmluZyhmaWxlbmFtZSwgIi1z
aG0iX3MpOwotICAgICAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhzaG1GaWxlTmFtZSkp
IHsKLSAgICAgICAgICAgIGlmICghRmlsZVN5c3RlbTo6aXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQ
YXRoKHNobUZpbGVOYW1lKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0ZBVUxUKFNR
TERhdGFiYXNlLCAiT3BlbmVkIGFuIFNRTGl0ZSBkYXRhYmFzZSB3aXRoIGEgQ2xhc3MgQSAtc2ht
IGZpbGUuIFRoaXMgbWF5IHRyaWdnZXIgYSBjcmFzaCB3aGVuIHRoZSB1c2VyIGxvY2tzIHRoZSBk
ZXZpY2UuICglcykiLCBzaG1GaWxlTmFtZS5sYXRpbjEoKS5kYXRhKCkpOwotICAgICAgICAgICAg
ICAgIEZpbGVTeXN0ZW06Om1ha2VTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKHNobUZpbGVOYW1l
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoc2ht
RmlsZU5hbWUpICYmICFGaWxlU3lzdGVtOjppc1NhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoc2ht
RmlsZU5hbWUpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19GQVVMVChTUUxEYXRhYmFzZSwg
Ik9wZW5lZCBhbiBTUUxpdGUgZGF0YWJhc2Ugd2l0aCBhIENsYXNzIEEgLXNobSBmaWxlLiBUaGlz
IG1heSB0cmlnZ2VyIGEgY3Jhc2ggd2hlbiB0aGUgdXNlciBsb2NrcyB0aGUgZGV2aWNlLiAoJXMp
Iiwgc2htRmlsZU5hbWUubGF0aW4xKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06
Om1ha2VTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKHNobUZpbGVOYW1lKTsKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJldHVybiBpc09wZW4oKTsKKyAgICBjbG9zZURhdGFiYXNlLnJlbGVhc2Uo
KTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGludCB3YWxBdXRvbWF0aWNUcnVuY2F0
aW9uSG9vayh2b2lkKiBjb250ZXh0LCBzcWxpdGUzKiBkYiwgY29uc3QgY2hhciogZGJOYW1lLCBp
bnQgd2FsUGFnZUNvdW50KQpAQCAtMjEzLDQxICsyMTUsNDIgQEAgc3RhdGljIGludCBjaGVja3Bv
aW50TW9kZVZhbHVlKFNRTGl0ZURhdGFiYXNlOjpDaGVja3BvaW50TW9kZSBtb2RlKQogICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgU1FMaXRlRGF0YWJhc2U6OmNo
ZWNrcG9pbnQoQ2hlY2twb2ludE1vZGUgbW9kZSkKK2ludCBTUUxpdGVEYXRhYmFzZTo6Y2hlY2tw
b2ludChDaGVja3BvaW50TW9kZSBtb2RlKQogewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9n
cmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKICAgICBpbnQgcmVzdWx0ID0gc3Fs
aXRlM193YWxfY2hlY2twb2ludF92MihtX2RiLCBudWxscHRyLCBjaGVja3BvaW50TW9kZVZhbHVl
KG1vZGUpLCBudWxscHRyLCBudWxscHRyKTsKLSAgICBpZiAocmVzdWx0ID09IFNRTElURV9PSykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKHJlc3VsdCA9PSBTUUxJVEVfQlVTWSkgewotICAg
ICAgICBMT0coU1FMRGF0YWJhc2UsICJTUUxpdGUgZGF0YWJhc2UgY2hlY2twb2ludCBpcyBibG9j
a2VkIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKHJlc3VsdCAhPSBTUUxJVEVf
T0spCisgICAgICAgIExPRyhTUUxEYXRhYmFzZSwgIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8g
Y2hlY2twb2ludDogJXMiLCBsYXN0RXJyb3JNc2coKSk7CiAKLSAgICBMT0dfRVJST1IoIlNRTGl0
ZSBkYXRhYmFzZSBmYWlsZWQgdG8gY2hlY2twb2ludDogJXMiLCBsYXN0RXJyb3JNc2coKSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6dXNlV0FMSm91cm5h
bE1vZGUoKQoraW50IFNRTGl0ZURhdGFiYXNlOjp1c2VXQUxKb3VybmFsTW9kZSgpCiB7CiAgICAg
bV91c2VXQUwgPSB0cnVlOwogICAgIHsKICAgICAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dy
ZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAgICAgICBhdXRvIHdhbFN0YXRl
bWVudCA9IHByZXBhcmVTdGF0ZW1lbnQoIlBSQUdNQSBqb3VybmFsX21vZGU9V0FMOyJfcyk7Ci0g
ICAgICAgIGlmICh3YWxTdGF0ZW1lbnQgJiYgd2FsU3RhdGVtZW50LT5zdGVwKCkgPT0gU1FMSVRF
X1JPVykgeworICAgICAgICBpZiAoIXdhbFN0YXRlbWVudCkKKyAgICAgICAgICAgIHJldHVybiB3
YWxTdGF0ZW1lbnQuZXJyb3IoKTsKKworICAgICAgICBpbnQgc3RlcFJlc3VsdCA9IHdhbFN0YXRl
bWVudC0+c3RlcCgpOworICAgICAgICBpZiAoc3RlcFJlc3VsdCAhPSBTUUxJVEVfUk9XKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZXBSZXN1bHQ7CisKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAg
ICBTdHJpbmcgbW9kZSA9IHdhbFN0YXRlbWVudC0+Y29sdW1uVGV4dCgwKTsKLSAgICAgICAgICAg
IGlmICghZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobW9kZSwgIndhbCIpKQotICAgICAg
ICAgICAgICAgIExPR19FUlJPUigiam91cm5hbF9tb2RlIG9mIGRhdGFiYXNlIHNob3VsZCBiZSAn
V0FMJywgYnV0IGlzICclcyciLCBtb2RlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBTdHJpbmcg
bW9kZSA9IHdhbFN0YXRlbWVudC0+Y29sdW1uVGV4dCgwKTsKKyAgICAgICAgaWYgKCFlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAid2FsIikpIHsKKyAgICAgICAgICAgIExPR19F
UlJPUigiU1FMaXRlIGRhdGFiYXNlIGpvdXJuYWxfbW9kZSBzaG91bGQgYmUgJ1dBTCcsIGJ1dCBp
cyAnJXMnIiwgbW9kZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVybiBTUUxJVEVf
RVJST1I7CisgICAgICAgIH0KICNlbmRpZgotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBzZXQgam91cm5hbF9tb2RlIHRvIFdB
TCwgZXJyb3I6ICVzIiwgbGFzdEVycm9yTXNnKCkpOwogICAgIH0KIAotICAgIGNoZWNrcG9pbnQo
Q2hlY2twb2ludE1vZGU6OlRydW5jYXRlKTsKKyAgICByZXR1cm4gY2hlY2twb2ludChDaGVja3Bv
aW50TW9kZTo6VHJ1bmNhdGUpOwogfQogCi12b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZShTaG91
bGRTZXRFcnJvclN0YXRlIHNob3VsZFNldEVycm9yU3RhdGUpCit2b2lkIFNRTGl0ZURhdGFiYXNl
OjpjbG9zZSgpCiB7CiAgICAgaWYgKG1fZGIpIHsKICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghbV9zdGF0ZW1lbnRDb3VudCwgIkFsbCBTUUxpdGVUcmFuc2FjdGlvbiBvYmplY3RzIHNob3Vs
ZCBiZSBkZXN0cm95ZWQgYmVmb3JlIGNsb3NpbmcgdGhlIGRhdGFiYXNlIik7CkBAIC0yNzEsMTIg
KzI3NCw2IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKFNob3VsZFNldEVycm9yU3RhdGUg
c2hvdWxkU2V0RXJyb3JTdGF0ZSkKICAgICAgICAgaWYgKGNsb3NlUmVzdWx0ICE9IFNRTElURV9P
SykKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNRTERhdGFiYXNlLCAiU1FMaXRlRGF0
YWJhc2U6OmNsb3NlOiBGYWlsZWQgdG8gY2xvc2UgZGF0YWJhc2UgKCVkKSAtICUiIFBVQkxJQ19M
T0dfU1RSSU5HLCBjbG9zZVJlc3VsdCwgbGFzdEVycm9yTXNnKCkpOwogICAgIH0KLQotICAgIGlm
IChzaG91bGRTZXRFcnJvclN0YXRlID09IFNob3VsZFNldEVycm9yU3RhdGU6OlllcykgewotICAg
ICAgICBtX29wZW5pbmdUaHJlYWQgPSBudWxscHRyOwotICAgICAgICBtX29wZW5FcnJvciA9IFNR
TElURV9FUlJPUjsKLSAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gQ1N0cmluZygpOwotICAg
IH0KIH0KIAogdm9pZCBTUUxpdGVEYXRhYmFzZTo6b3ZlcnJpZGVVbmF1dGhvcml6ZWRGdW5jdGlv
bnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAppbmRl
eCBjNWI1YjIzOWZkNjE0OGY5MjBlMDlmODc1ZGVlM2U3YmUzZTVkZDQ4Li44ZWY3MWUxOTZlODhh
MzE2YzU2YmI4MmE4MmE5N2ZiZTZjYzgwOWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuaApAQCAtNjEsOCArNjEsNyBAQCBwdWJsaWM6CiAgICAgZW51
bSBjbGFzcyBPcGVuTW9kZSB7IFJlYWRPbmx5LCBSZWFkV3JpdGUsIFJlYWRXcml0ZUNyZWF0ZSB9
OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgb3Blbihjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBP
cGVuTW9kZSA9IE9wZW5Nb2RlOjpSZWFkV3JpdGVDcmVhdGUpOwogICAgIGJvb2wgaXNPcGVuKCkg
Y29uc3QgeyByZXR1cm4gbV9kYjsgfQotICAgIGVudW0gY2xhc3MgU2hvdWxkU2V0RXJyb3JTdGF0
ZSA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbG9zZShTaG91
bGRTZXRFcnJvclN0YXRlID0gU2hvdWxkU2V0RXJyb3JTdGF0ZTo6WWVzKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNsb3NlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4ZWN1dGVD
b21tYW5kU2xvdyhjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4ZWN1
dGVDb21tYW5kKEFTQ0lJTGl0ZXJhbCk7CkBAIC0xMDAsNyArOTksNyBAQCBwdWJsaWM6CiAgICAg
Ly8gbG9ja3MsIHdoaWNoIGNhbiBsZWFkIHRvIHVuaW50ZW5kZWQgZGVsYXlzLgogICAgIHZvaWQg
ZW5hYmxlQXV0b21hdGljV0FMVHJ1bmNhdGlvbigpOwogICAgIGVudW0gY2xhc3MgQ2hlY2twb2lu
dE1vZGUgOiB1aW50OF90IHsgRnVsbCwgVHJ1bmNhdGUgfTsKLSAgICB2b2lkIGNoZWNrcG9pbnQo
Q2hlY2twb2ludE1vZGUpOworICAgIGludCBjaGVja3BvaW50KENoZWNrcG9pbnRNb2RlKTsKIAog
ICAgIC8vIEdldHMvc2V0cyB0aGUgbWF4aW11bSBzaXplIGluIGJ5dGVzCiAgICAgLy8gRGVwZW5k
aW5nIG9uIHBlci1kYXRhYmFzZSBhdHRyaWJ1dGVzLCB0aGUgc2l6ZSB3aWxsIG9ubHkgYmUgc2V0
dGFibGUgaW4gdW5pdHMgdGhhdCBhcmUgdGhlIHBhZ2Ugc2l6ZSBvZiB0aGUgZGF0YWJhc2UsIHdo
aWNoIGlzIGVzdGFibGlzaGVkIGF0IGNyZWF0aW9uCkBAIC0xNzAsNyArMTY5LDcgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgaW50IGF1dGhvcml6ZXJGdW5jdGlvbih2b2lkKiwgaW50LCBjb25zdCBj
aGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKik7CiAKICAgICB2b2lk
IGVuYWJsZUF1dGhvcml6ZXIoYm9vbCBlbmFibGUpIFdURl9SRVFVSVJFU19MT0NLKG1fYXV0aG9y
aXplckxvY2spOwotICAgIHZvaWQgdXNlV0FMSm91cm5hbE1vZGUoKTsKKyAgICBpbnQgdXNlV0FM
Sm91cm5hbE1vZGUoKTsKIAogICAgIGludCBwYWdlU2l6ZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453774</attachid>
            <date>2022-03-03 12:08:15 -0800</date>
            <delta_ts>2022-03-03 23:19:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237130-20220303120814.patch</filename>
            <type>text/plain</type>
            <size>9762</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc2NGVlYjFiMjMyYjdk
ODdjZDE2MTg3MmVkYmRkMzJjYzA3NTA2Zi4uMjUzMWFmN2E3NGQyZGY2MzE0OGFiZGU2NTUzZTRh
ZDAyMTQ2MTA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTAzLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNRTGl0ZURhdGFiYXNlOjpv
cGVuIHNob3VsZCByZXR1cm4gZWFybHkgaWYgam91cm5hbCBtb2RlIGNhbm5vdCBiZSBzZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzEzMAorICAg
ICAgICA8cmRhcjovLzgzMTMwOTU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBlYXJseSByZXR1cm4gaW4gU1FMaXRlRGF0YWJhc2U6Om9wZW4g
aWYga2V5IG9wZXJhdGlvbiBmYWlsczsgYWxzbyBtYWtlIHN1cmUgZXJyb3IgaXMgcHJvcGVybHkg
c2V0IGFuZCAKKyAgICAgICAgZGF0YWJhc2UgaXMgY2xvc2VkIGluIHRoZSBjYXNlLgorCisgICAg
ICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNRTGl0ZURhdGFiYXNlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNl
OjpjaGVja3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjp1c2VXQUxK
b3VybmFsTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorCiAyMDIyLTAzLTAyICBB
bmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBJVE06IENo
ZWNrYm94IHN0YXRlIGNoYW5nZSBpcyBub3QgdXBkYXRlZCBpbiBpc29sYXRlZCB0cmVlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAppbmRleCAwMThh
NThlMTkxMzBjZmQ0ODkyZDNiYWU2ZGUxN2Y4NTgwMWNlYTJmLi45NWIzMDk4MmE0NThlZDQ0YTkz
NDZkM2ExZTg3YTIzNGQzYzcwMzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDx0aHJlYWQ+
CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2lu
Y2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+CkBAIC05Niw5ICs5NywxOCBAQCBjb25zdCBjaGFyKiBTUUxpdGVEYXRhYmFz
ZTo6aW5NZW1vcnlQYXRoKCkKIGJvb2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4oY29uc3QgU3RyaW5n
JiBmaWxlbmFtZSwgT3Blbk1vZGUgb3Blbk1vZGUpCiB7CiAgICAgaW5pdGlhbGl6ZVNRTGl0ZUlm
TmVjZXNzYXJ5KCk7Ci0KICAgICBjbG9zZSgpOwogCisgICAgYXV0byBjbG9zZURhdGFiYXNlID0g
bWFrZVNjb3BlRXhpdChbJl0oKSB7CisgICAgICAgIGlmICghbV9kYikKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBudWxscHRyOworICAgICAgICBtX29w
ZW5FcnJvck1lc3NhZ2UgPSBzcWxpdGUzX2Vycm1zZyhtX2RiKTsKKyAgICAgICAgbV9vcGVuRXJy
b3IgPSBzcWxpdGUzX2VycmNvZGUobV9kYik7CisgICAgICAgIGNsb3NlKCk7CisgICAgfSk7CisK
ICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBpc0RhdGFiYXNlT3BlbmluZ0ZvcmJpZGRl
bkxvY2sgfTsKICAgICAgICAgaWYgKGlzRGF0YWJhc2VPcGVuaW5nRm9yYmlkZGVuKSB7CkBAIC0x
MTksMzMgKzEyOSwyNiBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUsIE9wZW5Nb2RlIG9wZW5Nb2RlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIAorICAgICAgICBpbnQgcmVzdWx0ID0gU1FMSVRFX09LOwogICAgICAgICB7CiAgICAgICAg
ICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNv
dW50ZXI7Ci0gICAgICAgICAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfb3Blbl92MihGaWxlU3lz
dGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZW5hbWUpLmRhdGEoKSwgJm1fZGIsIGZs
YWdzLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHNxbGl0ZTNfb3Blbl92MihGaWxl
U3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZW5hbWUpLmRhdGEoKSwgJm1fZGIs
IGZsYWdzLCBudWxscHRyKTsKICAgICAgICAgfQotICAgICAgICBpZiAobV9vcGVuRXJyb3IgIT0g
U1FMSVRFX09LKSB7Ci0gICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBtX2RiID8gc3Fs
aXRlM19lcnJtc2cobV9kYikgOiAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7Ci0gICAgICAg
ICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gbG9hZCBmcm9tICVzXG5D
YXVzZSAtICVzIiwgZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAgICAgICAgbV9v
cGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7Ci0gICAgICAgICAgICBjbG9zZShTaG91bGRTZXRFcnJv
clN0YXRlOjpObyk7CisKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxJVEVfT0spIHsKKyAgICAg
ICAgICAgIGlmICghbV9kYikgeworICAgICAgICAgICAgICAgIG1fb3BlbkVycm9yID0gcmVzdWx0
OworICAgICAgICAgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9ICJzcWxpdGVfb3BlbiByZXR1
cm5lZCBudWxsIjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgIH0KIAogICAgIG92ZXJyaWRlVW5hdXRob3JpemVkRnVuY3Rpb25zKCk7CiAK
LSAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1fZGIsIDEp
OwotICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgbV9vcGVuRXJy
b3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7Ci0gICAgICAgIExPR19FUlJPUigiU1FM
aXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBt
X29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKLSAgICAgICAgY2xvc2UoU2hvdWxkU2V0RXJyb3JT
dGF0ZTo6Tm8pOworICAgIG1fb3BlbmluZ1RocmVhZCA9ICZUaHJlYWQ6OmN1cnJlbnQoKTsKKyAg
ICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkgIT0gU1FMSVRFX09L
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKGlzT3BlbigpKQotICAg
ICAgICBtX29wZW5pbmdUaHJlYWQgPSAmVGhyZWFkOjpjdXJyZW50KCk7Ci0gICAgZWxzZQotICAg
ICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAK
ICAgICB7CiAgICAgICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRy
YW5zYWN0aW9uQ291bnRlcjsKQEAgLTE1NCwxOSArMTU3LDE4IEBAIGJvb2wgU1FMaXRlRGF0YWJh
c2U6Om9wZW4oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgT3Blbk1vZGUgb3Blbk1vZGUpCiAgICAg
fQogCiAgICAgaWYgKGZpbGVuYW1lICE9IGluTWVtb3J5UGF0aCgpKSB7Ci0gICAgICAgIGlmIChv
cGVuTW9kZSAhPSBPcGVuTW9kZTo6UmVhZE9ubHkpCi0gICAgICAgICAgICB1c2VXQUxKb3VybmFs
TW9kZSgpOworICAgICAgICBpZiAob3Blbk1vZGUgIT0gT3Blbk1vZGU6OlJlYWRPbmx5ICYmIHVz
ZVdBTEpvdXJuYWxNb2RlKCkgIT0gU1FMSVRFX09LKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIGF1dG8gc2htRmlsZU5hbWUgPSBtYWtlU3RyaW5nKGZpbGVuYW1lLCAiLXNo
bSJfcyk7Ci0gICAgICAgIGlmIChGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHNobUZpbGVOYW1lKSkg
ewotICAgICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjppc1NhZmVUb1VzZU1lbW9yeU1hcEZvclBh
dGgoc2htRmlsZU5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRkFVTFQoU1FM
RGF0YWJhc2UsICJPcGVuZWQgYW4gU1FMaXRlIGRhdGFiYXNlIHdpdGggYSBDbGFzcyBBIC1zaG0g
ZmlsZS4gVGhpcyBtYXkgdHJpZ2dlciBhIGNyYXNoIHdoZW4gdGhlIHVzZXIgbG9ja3MgdGhlIGRl
dmljZS4gKCVzKSIsIHNobUZpbGVOYW1lLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAg
ICAgRmlsZVN5c3RlbTo6bWFrZVNhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoc2htRmlsZU5hbWUp
OwotICAgICAgICAgICAgfQorICAgICAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhzaG1G
aWxlTmFtZSkgJiYgIUZpbGVTeXN0ZW06OmlzU2FmZVRvVXNlTWVtb3J5TWFwRm9yUGF0aChzaG1G
aWxlTmFtZSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0ZBVUxUKFNRTERhdGFiYXNlLCAi
T3BlbmVkIGFuIFNRTGl0ZSBkYXRhYmFzZSB3aXRoIGEgQ2xhc3MgQSAtc2htIGZpbGUuIFRoaXMg
bWF5IHRyaWdnZXIgYSBjcmFzaCB3aGVuIHRoZSB1c2VyIGxvY2tzIHRoZSBkZXZpY2UuICglcyki
LCBzaG1GaWxlTmFtZS5sYXRpbjEoKS5kYXRhKCkpOworICAgICAgICAgICAgRmlsZVN5c3RlbTo6
bWFrZVNhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoc2htRmlsZU5hbWUpOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgcmV0dXJuIGlzT3BlbigpOworICAgIGNsb3NlRGF0YWJhc2UucmVsZWFzZSgp
OworICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgaW50IHdhbEF1dG9tYXRpY1RydW5jYXRp
b25Ib29rKHZvaWQqIGNvbnRleHQsIHNxbGl0ZTMqIGRiLCBjb25zdCBjaGFyKiBkYk5hbWUsIGlu
dCB3YWxQYWdlQ291bnQpCkBAIC0yMTMsNDEgKzIxNSw0NSBAQCBzdGF0aWMgaW50IGNoZWNrcG9p
bnRNb2RlVmFsdWUoU1FMaXRlRGF0YWJhc2U6OkNoZWNrcG9pbnRNb2RlIG1vZGUpCiAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6Y2hl
Y2twb2ludChDaGVja3BvaW50TW9kZSBtb2RlKQoraW50IFNRTGl0ZURhdGFiYXNlOjpjaGVja3Bv
aW50KENoZWNrcG9pbnRNb2RlIG1vZGUpCiB7CiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dy
ZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogICAgIGludCByZXN1bHQgPSBzcWxp
dGUzX3dhbF9jaGVja3BvaW50X3YyKG1fZGIsIG51bGxwdHIsIGNoZWNrcG9pbnRNb2RlVmFsdWUo
bW9kZSksIG51bGxwdHIsIG51bGxwdHIpOwotICAgIGlmIChyZXN1bHQgPT0gU1FMSVRFX09LKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAocmVzdWx0ID09IFNRTElURV9CVVNZKSB7Ci0gICAg
ICAgIExPRyhTUUxEYXRhYmFzZSwgIlNRTGl0ZSBkYXRhYmFzZSBjaGVja3BvaW50IGlzIGJsb2Nr
ZWQiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IFNRTElURV9P
SykKKyAgICAgICAgTE9HKFNRTERhdGFiYXNlLCAiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBj
aGVja3BvaW50OiAlcyIsIGxhc3RFcnJvck1zZygpKTsKIAotICAgIExPR19FUlJPUigiU1FMaXRl
IGRhdGFiYXNlIGZhaWxlZCB0byBjaGVja3BvaW50OiAlcyIsIGxhc3RFcnJvck1zZygpKTsKKyAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFNRTGl0ZURhdGFiYXNlOjp1c2VXQUxKb3VybmFs
TW9kZSgpCitpbnQgU1FMaXRlRGF0YWJhc2U6OnVzZVdBTEpvdXJuYWxNb2RlKCkKIHsKICAgICBt
X3VzZVdBTCA9IHRydWU7CiAgICAgewogICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jl
c3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAgICAgICAgIGF1dG8gd2FsU3RhdGVt
ZW50ID0gcHJlcGFyZVN0YXRlbWVudCgiUFJBR01BIGpvdXJuYWxfbW9kZT1XQUw7Il9zKTsKLSAg
ICAgICAgaWYgKHdhbFN0YXRlbWVudCAmJiB3YWxTdGF0ZW1lbnQtPnN0ZXAoKSA9PSBTUUxJVEVf
Uk9XKSB7CisgICAgICAgIGlmICghd2FsU3RhdGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIHdh
bFN0YXRlbWVudC5lcnJvcigpOworCisgICAgICAgIGludCBzdGVwUmVzdWx0ID0gd2FsU3RhdGVt
ZW50LT5zdGVwKCk7CisgICAgICAgIGlmIChzdGVwUmVzdWx0ICE9IFNRTElURV9ST1cpCisgICAg
ICAgICAgICByZXR1cm4gc3RlcFJlc3VsdDsKKwogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAg
IFN0cmluZyBtb2RlID0gd2FsU3RhdGVtZW50LT5jb2x1bW5UZXh0KDApOwotICAgICAgICAgICAg
aWYgKCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAid2FsIikpCi0gICAgICAg
ICAgICAgICAgTE9HX0VSUk9SKCJqb3VybmFsX21vZGUgb2YgZGF0YWJhc2Ugc2hvdWxkIGJlICdX
QUwnLCBidXQgaXMgJyVzJyIsIG1vZGUudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFN0cmluZyBt
b2RlID0gd2FsU3RhdGVtZW50LT5jb2x1bW5UZXh0KDApOworICAgICAgICBpZiAoIWVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ3YWwiKSkgeworICAgICAgICAgICAgTE9HX0VS
Uk9SKCJTUUxpdGUgZGF0YWJhc2Ugam91cm5hbF9tb2RlIHNob3VsZCBiZSAnV0FMJywgYnV0IGlz
ICclcyciLCBtb2RlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIFNRTElURV9F
UlJPUjsKKyAgICAgICAgfQogI2VuZGlmCi0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgTE9H
X0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFpbGVkIHRvIHNldCBqb3VybmFsX21vZGUgdG8gV0FM
LCBlcnJvcjogJXMiLCBsYXN0RXJyb3JNc2coKSk7CiAgICAgfQogCisgICAgLy8gVGhlIGRhdGFi
YXNlIGNhbiBiZSB1c2VkIGV2ZW4gaWYgY2hlY2twb2ludCBmYWlscywgZS5nLiB3aGVuIHRoZXJl
IGFyZSBtdWx0aXBsZSBvcGVuIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgogICAgIGNoZWNrcG9pbnQo
Q2hlY2twb2ludE1vZGU6OlRydW5jYXRlKTsKKworICAgIHJldHVybiBTUUxJVEVfT0s7CiB9CiAK
LXZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKFNob3VsZFNldEVycm9yU3RhdGUgc2hvdWxkU2V0
RXJyb3JTdGF0ZSkKK3ZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKCkKIHsKICAgICBpZiAobV9k
YikgewogICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3N0YXRlbWVudENvdW50LCAiQWxs
IFNRTGl0ZVRyYW5zYWN0aW9uIG9iamVjdHMgc2hvdWxkIGJlIGRlc3Ryb3llZCBiZWZvcmUgY2xv
c2luZyB0aGUgZGF0YWJhc2UiKTsKQEAgLTI3MSwxMiArMjc3LDYgQEAgdm9pZCBTUUxpdGVEYXRh
YmFzZTo6Y2xvc2UoU2hvdWxkU2V0RXJyb3JTdGF0ZSBzaG91bGRTZXRFcnJvclN0YXRlKQogICAg
ICAgICBpZiAoY2xvc2VSZXN1bHQgIT0gU1FMSVRFX09LKQogICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoU1FMRGF0YWJhc2UsICJTUUxpdGVEYXRhYmFzZTo6Y2xvc2U6IEZhaWxlZCB0byBj
bG9zZSBkYXRhYmFzZSAoJWQpIC0gJSIgUFVCTElDX0xPR19TVFJJTkcsIGNsb3NlUmVzdWx0LCBs
YXN0RXJyb3JNc2coKSk7CiAgICAgfQotCi0gICAgaWYgKHNob3VsZFNldEVycm9yU3RhdGUgPT0g
U2hvdWxkU2V0RXJyb3JTdGF0ZTo6WWVzKSB7Ci0gICAgICAgIG1fb3BlbmluZ1RocmVhZCA9IG51
bGxwdHI7Ci0gICAgICAgIG1fb3BlbkVycm9yID0gU1FMSVRFX0VSUk9SOwotICAgICAgICBtX29w
ZW5FcnJvck1lc3NhZ2UgPSBDU3RyaW5nKCk7Ci0gICAgfQogfQogCiB2b2lkIFNRTGl0ZURhdGFi
YXNlOjpvdmVycmlkZVVuYXV0aG9yaXplZEZ1bmN0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCmluZGV4IGM1YjViMjM5ZmQ2MTQ4ZjkyMGUwOWY4
NzVkZWUzZTdiZTNlNWRkNDguLjhlZjcxZTE5NmU4OGEzMTZjNTZiYjgyYTgyYTk3ZmJlNmNjODA5
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCkBA
IC02MSw4ICs2MSw3IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIE9wZW5Nb2RlIHsgUmVhZE9u
bHksIFJlYWRXcml0ZSwgUmVhZFdyaXRlQ3JlYXRlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBvcGVuKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIE9wZW5Nb2RlID0gT3Blbk1vZGU6OlJlYWRX
cml0ZUNyZWF0ZSk7CiAgICAgYm9vbCBpc09wZW4oKSBjb25zdCB7IHJldHVybiBtX2RiOyB9Ci0g
ICAgZW51bSBjbGFzcyBTaG91bGRTZXRFcnJvclN0YXRlIDogYm9vbCB7IE5vLCBZZXMgfTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsb3NlKFNob3VsZFNldEVycm9yU3RhdGUgPSBTaG91bGRT
ZXRFcnJvclN0YXRlOjpZZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xvc2UoKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZXhlY3V0ZUNvbW1hbmRTbG93KGNvbnN0IFN0cmluZyYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZXhlY3V0ZUNvbW1hbmQoQVNDSUlMaXRlcmFsKTsK
QEAgLTEwMCw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAvLyBsb2Nrcywgd2hpY2ggY2FuIGxlYWQg
dG8gdW5pbnRlbmRlZCBkZWxheXMuCiAgICAgdm9pZCBlbmFibGVBdXRvbWF0aWNXQUxUcnVuY2F0
aW9uKCk7CiAgICAgZW51bSBjbGFzcyBDaGVja3BvaW50TW9kZSA6IHVpbnQ4X3QgeyBGdWxsLCBU
cnVuY2F0ZSB9OwotICAgIHZvaWQgY2hlY2twb2ludChDaGVja3BvaW50TW9kZSk7CisgICAgaW50
IGNoZWNrcG9pbnQoQ2hlY2twb2ludE1vZGUpOwogCiAgICAgLy8gR2V0cy9zZXRzIHRoZSBtYXhp
bXVtIHNpemUgaW4gYnl0ZXMKICAgICAvLyBEZXBlbmRpbmcgb24gcGVyLWRhdGFiYXNlIGF0dHJp
YnV0ZXMsIHRoZSBzaXplIHdpbGwgb25seSBiZSBzZXR0YWJsZSBpbiB1bml0cyB0aGF0IGFyZSB0
aGUgcGFnZSBzaXplIG9mIHRoZSBkYXRhYmFzZSwgd2hpY2ggaXMgZXN0YWJsaXNoZWQgYXQgY3Jl
YXRpb24KQEAgLTE3MCw3ICsxNjksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBpbnQgYXV0aG9y
aXplckZ1bmN0aW9uKHZvaWQqLCBpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3Qg
Y2hhciosIGNvbnN0IGNoYXIqKTsKIAogICAgIHZvaWQgZW5hYmxlQXV0aG9yaXplcihib29sIGVu
YWJsZSkgV1RGX1JFUVVJUkVTX0xPQ0sobV9hdXRob3JpemVyTG9jayk7Ci0gICAgdm9pZCB1c2VX
QUxKb3VybmFsTW9kZSgpOworICAgIGludCB1c2VXQUxKb3VybmFsTW9kZSgpOwogCiAgICAgaW50
IHBhZ2VTaXplKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453817</attachid>
            <date>2022-03-03 23:19:41 -0800</date>
            <delta_ts>2022-03-04 00:44:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237130-20220303231939.patch</filename>
            <type>text/plain</type>
            <size>8565</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM3NjI3YTk1ZDkyNTBi
ZTQzNzBkMTZkMTQ4NGQzMDBiMWRmYmI2Yy4uZWRlOTdkNGY0MDg2OGMxZjAxYmMzMDdiMjgzN2Qx
ZDgzM2EzNWZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAzLTAzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFNRTGl0ZURhdGFiYXNlOjpv
cGVuIHNob3VsZCByZXR1cm4gZWFybHkgaWYgam91cm5hbCBtb2RlIGNhbm5vdCBiZSBzZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzEzMAorICAg
ICAgICA8cmRhcjovLzgzMTMwOTU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBlYXJseSByZXR1cm4gaW4gU1FMaXRlRGF0YWJhc2U6Om9wZW4gaWYg
a2V5IG9wZXJhdGlvbiBmYWlsczsgYWxzbyBtYWtlIHN1cmUgZXJyb3IgaXMgcHJvcGVybHkgc2V0
IGFuZCAKKyAgICAgICAgZGF0YWJhc2UgaXMgY2xvc2VkIGluIHRoZSBjYXNlLgorCisgICAgICAg
ICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNR
TGl0ZURhdGFiYXNlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjp1
c2VXQUxKb3VybmFsTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xv
c2UpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorCiAyMDIyLTAz
LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIG5h
c2EuZ292IHBhZ2Ugd2l0aCBmaXhlZCBiYWNrZ3JvdW5kcyBwYWludHMgaW5jb3JyZWN0bHkgb24g
c2Nyb2xsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNw
cAppbmRleCAwMThhNThlMTkxMzBjZmQ0ODkyZDNiYWU2ZGUxN2Y4NTgwMWNlYTJmLi4yYzdhNDc4
NWE0NjYwNGM5YzE5ZWQzNmU4ZjE1NGIwNzc3OTFlMzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlIDx0aHJlYWQ+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYv
TG9jay5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CkBAIC05Niw5ICs5NywxOCBAQCBjb25zdCBjaGFyKiBT
UUxpdGVEYXRhYmFzZTo6aW5NZW1vcnlQYXRoKCkKIGJvb2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4o
Y29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgT3Blbk1vZGUgb3Blbk1vZGUpCiB7CiAgICAgaW5pdGlh
bGl6ZVNRTGl0ZUlmTmVjZXNzYXJ5KCk7Ci0KICAgICBjbG9zZSgpOwogCisgICAgYXV0byBjbG9z
ZURhdGFiYXNlID0gbWFrZVNjb3BlRXhpdChbJl0oKSB7CisgICAgICAgIGlmICghbV9kYikKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBudWxscHRyOwor
ICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBzcWxpdGUzX2Vycm1zZyhtX2RiKTsKKyAgICAg
ICAgbV9vcGVuRXJyb3IgPSBzcWxpdGUzX2VycmNvZGUobV9kYik7CisgICAgICAgIGNsb3NlKCk7
CisgICAgfSk7CisKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBpc0RhdGFiYXNlT3Bl
bmluZ0ZvcmJpZGRlbkxvY2sgfTsKICAgICAgICAgaWYgKGlzRGF0YWJhc2VPcGVuaW5nRm9yYmlk
ZGVuKSB7CkBAIC0xMTksMzMgKzEyOSwyNiBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIE9wZW5Nb2RlIG9wZW5Nb2RlKQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAorICAgICAgICBpbnQgcmVzdWx0ID0gU1FMSVRFX09LOwogICAgICAg
ICB7CiAgICAgICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0
cmFuc2FjdGlvbkNvdW50ZXI7Ci0gICAgICAgICAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfb3Bl
bl92MihGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZW5hbWUpLmRhdGEo
KSwgJm1fZGIsIGZsYWdzLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHNxbGl0ZTNf
b3Blbl92MihGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZW5hbWUpLmRh
dGEoKSwgJm1fZGIsIGZsYWdzLCBudWxscHRyKTsKICAgICAgICAgfQotICAgICAgICBpZiAobV9v
cGVuRXJyb3IgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2Ug
PSBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVs
bCI7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gbG9h
ZCBmcm9tICVzXG5DYXVzZSAtICVzIiwgZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCksCi0gICAgICAg
ICAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7Ci0gICAgICAgICAgICBjbG9zZShT
aG91bGRTZXRFcnJvclN0YXRlOjpObyk7CisKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxJVEVf
T0spIHsKKyAgICAgICAgICAgIGlmICghbV9kYikgeworICAgICAgICAgICAgICAgIG1fb3BlbkVy
cm9yID0gcmVzdWx0OworICAgICAgICAgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9ICJzcWxp
dGVfb3BlbiByZXR1cm5lZCBudWxsIjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIG92ZXJyaWRlVW5hdXRob3JpemVkRnVu
Y3Rpb25zKCk7CiAKLSAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2Nv
ZGVzKG1fZGIsIDEpOwotICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKLSAgICAg
ICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7Ci0gICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJy
b3JzIC0gJXMiLCBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKLSAgICAgICAgY2xvc2UoU2hv
dWxkU2V0RXJyb3JTdGF0ZTo6Tm8pOworICAgIG1fb3BlbmluZ1RocmVhZCA9ICZUaHJlYWQ6OmN1
cnJlbnQoKTsKKyAgICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkg
IT0gU1FMSVRFX09LKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKGlz
T3BlbigpKQotICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSAmVGhyZWFkOjpjdXJyZW50KCk7Ci0g
ICAgZWxzZQotICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0dXJu
ZWQgbnVsbCI7CiAKICAgICB7CiAgICAgICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1
dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKQEAgLTE1NCwxOSArMTU3LDE4IEBAIGJvb2wg
U1FMaXRlRGF0YWJhc2U6Om9wZW4oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgT3Blbk1vZGUgb3Bl
bk1vZGUpCiAgICAgfQogCiAgICAgaWYgKGZpbGVuYW1lICE9IGluTWVtb3J5UGF0aCgpKSB7Ci0g
ICAgICAgIGlmIChvcGVuTW9kZSAhPSBPcGVuTW9kZTo6UmVhZE9ubHkpCi0gICAgICAgICAgICB1
c2VXQUxKb3VybmFsTW9kZSgpOworICAgICAgICBpZiAob3Blbk1vZGUgIT0gT3Blbk1vZGU6OlJl
YWRPbmx5ICYmICF1c2VXQUxKb3VybmFsTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIGF1dG8gc2htRmlsZU5hbWUgPSBtYWtlU3RyaW5nKGZpbGVuYW1lLCAiLXNo
bSJfcyk7Ci0gICAgICAgIGlmIChGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHNobUZpbGVOYW1lKSkg
ewotICAgICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjppc1NhZmVUb1VzZU1lbW9yeU1hcEZvclBh
dGgoc2htRmlsZU5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRkFVTFQoU1FM
RGF0YWJhc2UsICJPcGVuZWQgYW4gU1FMaXRlIGRhdGFiYXNlIHdpdGggYSBDbGFzcyBBIC1zaG0g
ZmlsZS4gVGhpcyBtYXkgdHJpZ2dlciBhIGNyYXNoIHdoZW4gdGhlIHVzZXIgbG9ja3MgdGhlIGRl
dmljZS4gKCVzKSIsIHNobUZpbGVOYW1lLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAg
ICAgRmlsZVN5c3RlbTo6bWFrZVNhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoc2htRmlsZU5hbWUp
OwotICAgICAgICAgICAgfQorICAgICAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhzaG1G
aWxlTmFtZSkgJiYgIUZpbGVTeXN0ZW06OmlzU2FmZVRvVXNlTWVtb3J5TWFwRm9yUGF0aChzaG1G
aWxlTmFtZSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0ZBVUxUKFNRTERhdGFiYXNlLCAi
T3BlbmVkIGFuIFNRTGl0ZSBkYXRhYmFzZSB3aXRoIGEgQ2xhc3MgQSAtc2htIGZpbGUuIFRoaXMg
bWF5IHRyaWdnZXIgYSBjcmFzaCB3aGVuIHRoZSB1c2VyIGxvY2tzIHRoZSBkZXZpY2UuICglcyki
LCBzaG1GaWxlTmFtZS5sYXRpbjEoKS5kYXRhKCkpOworICAgICAgICAgICAgRmlsZVN5c3RlbTo6
bWFrZVNhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoc2htRmlsZU5hbWUpOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgcmV0dXJuIGlzT3BlbigpOworICAgIGNsb3NlRGF0YWJhc2UucmVsZWFzZSgp
OworICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgaW50IHdhbEF1dG9tYXRpY1RydW5jYXRp
b25Ib29rKHZvaWQqIGNvbnRleHQsIHNxbGl0ZTMqIGRiLCBjb25zdCBjaGFyKiBkYk5hbWUsIGlu
dCB3YWxQYWdlQ291bnQpCkBAIC0yMjgsMjYgKzIzMCwzNSBAQCB2b2lkIFNRTGl0ZURhdGFiYXNl
OjpjaGVja3BvaW50KENoZWNrcG9pbnRNb2RlIG1vZGUpCiAgICAgTE9HX0VSUk9SKCJTUUxpdGUg
ZGF0YWJhc2UgZmFpbGVkIHRvIGNoZWNrcG9pbnQ6ICVzIiwgbGFzdEVycm9yTXNnKCkpOwogfQog
Ci12b2lkIFNRTGl0ZURhdGFiYXNlOjp1c2VXQUxKb3VybmFsTW9kZSgpCitib29sIFNRTGl0ZURh
dGFiYXNlOjp1c2VXQUxKb3VybmFsTW9kZSgpCiB7CiAgICAgbV91c2VXQUwgPSB0cnVlOwogICAg
IHsKICAgICAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNh
Y3Rpb25Db3VudGVyOwogICAgICAgICBhdXRvIHdhbFN0YXRlbWVudCA9IHByZXBhcmVTdGF0ZW1l
bnQoIlBSQUdNQSBqb3VybmFsX21vZGU9V0FMOyJfcyk7Ci0gICAgICAgIGlmICh3YWxTdGF0ZW1l
bnQgJiYgd2FsU3RhdGVtZW50LT5zdGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBpZiAo
IXdhbFN0YXRlbWVudCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnQg
c3RlcFJlc3VsdCA9IHdhbFN0YXRlbWVudC0+c3RlcCgpOworICAgICAgICBpZiAoc3RlcFJlc3Vs
dCAhPSBTUUxJVEVfUk9XKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAjaWZuZGVmIE5E
RUJVRwotICAgICAgICAgICAgU3RyaW5nIG1vZGUgPSB3YWxTdGF0ZW1lbnQtPmNvbHVtblRleHQo
MCk7Ci0gICAgICAgICAgICBpZiAoIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUs
ICJ3YWwiKSkKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoImpvdXJuYWxfbW9kZSBvZiBkYXRh
YmFzZSBzaG91bGQgYmUgJ1dBTCcsIGJ1dCBpcyAnJXMnIiwgbW9kZS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgU3RyaW5nIG1vZGUgPSB3YWxTdGF0ZW1lbnQtPmNvbHVtblRleHQoMCk7CisgICAg
ICAgIGlmICghZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobW9kZSwgIndhbCIpKSB7Cisg
ICAgICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBqb3VybmFsX21vZGUgc2hvdWxk
IGJlICdXQUwnLCBidXQgaXMgJyVzJyIsIG1vZGUudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICNlbmRpZgotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBzZXQgam91cm5hbF9t
b2RlIHRvIFdBTCwgZXJyb3I6ICVzIiwgbGFzdEVycm9yTXNnKCkpOwogICAgIH0KIAorICAgIC8v
IFRoZSBkYXRhYmFzZSBjYW4gYmUgdXNlZCBldmVuIGlmIGNoZWNrcG9pbnQgZmFpbHMsIGUuZy4g
d2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgb3BlbiBkYXRhYmFzZSBjb25uZWN0aW9ucy4KICAgICBj
aGVja3BvaW50KENoZWNrcG9pbnRNb2RlOjpUcnVuY2F0ZSk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6Y2xvc2UoU2hvdWxkU2V0RXJyb3JTdGF0ZSBzaG91
bGRTZXRFcnJvclN0YXRlKQordm9pZCBTUUxpdGVEYXRhYmFzZTo6Y2xvc2UoKQogewogICAgIGlm
IChtX2RiKSB7CiAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fc3RhdGVtZW50Q291bnQs
ICJBbGwgU1FMaXRlVHJhbnNhY3Rpb24gb2JqZWN0cyBzaG91bGQgYmUgZGVzdHJveWVkIGJlZm9y
ZSBjbG9zaW5nIHRoZSBkYXRhYmFzZSIpOwpAQCAtMjcxLDEyICsyODIsNiBAQCB2b2lkIFNRTGl0
ZURhdGFiYXNlOjpjbG9zZShTaG91bGRTZXRFcnJvclN0YXRlIHNob3VsZFNldEVycm9yU3RhdGUp
CiAgICAgICAgIGlmIChjbG9zZVJlc3VsdCAhPSBTUUxJVEVfT0spCiAgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihTUUxEYXRhYmFzZSwgIlNRTGl0ZURhdGFiYXNlOjpjbG9zZTogRmFpbGVk
IHRvIGNsb3NlIGRhdGFiYXNlICglZCkgLSAlIiBQVUJMSUNfTE9HX1NUUklORywgY2xvc2VSZXN1
bHQsIGxhc3RFcnJvck1zZygpKTsKICAgICB9Ci0KLSAgICBpZiAoc2hvdWxkU2V0RXJyb3JTdGF0
ZSA9PSBTaG91bGRTZXRFcnJvclN0YXRlOjpZZXMpIHsKLSAgICAgICAgbV9vcGVuaW5nVGhyZWFk
ID0gbnVsbHB0cjsKLSAgICAgICAgbV9vcGVuRXJyb3IgPSBTUUxJVEVfRVJST1I7Ci0gICAgICAg
IG1fb3BlbkVycm9yTWVzc2FnZSA9IENTdHJpbmcoKTsKLSAgICB9CiB9CiAKIHZvaWQgU1FMaXRl
RGF0YWJhc2U6Om92ZXJyaWRlVW5hdXRob3JpemVkRnVuY3Rpb25zKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggYzViNWIyMzlmZDYxNDhmOTIw
ZTA5Zjg3NWRlZTNlN2JlM2U1ZGQ0OC4uZDQxNGI5YTZjYTM2MzYxZjdiMTE3MTE3NmExZTk0ZDQx
Y2I5ZTgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmgKQEAgLTYxLDggKzYxLDcgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgT3Blbk1vZGUgeyBS
ZWFkT25seSwgUmVhZFdyaXRlLCBSZWFkV3JpdGVDcmVhdGUgfTsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgT3Blbk1vZGUgPSBPcGVuTW9kZTo6
UmVhZFdyaXRlQ3JlYXRlKTsKICAgICBib29sIGlzT3BlbigpIGNvbnN0IHsgcmV0dXJuIG1fZGI7
IH0KLSAgICBlbnVtIGNsYXNzIFNob3VsZFNldEVycm9yU3RhdGUgOiBib29sIHsgTm8sIFllcyB9
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xvc2UoU2hvdWxkU2V0RXJyb3JTdGF0ZSA9IFNo
b3VsZFNldEVycm9yU3RhdGU6Olllcyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbG9zZSgp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBleGVjdXRlQ29tbWFuZFNsb3coY29uc3QgU3Ry
aW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBleGVjdXRlQ29tbWFuZChBU0NJSUxpdGVy
YWwpOwpAQCAtMTcwLDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGludCBhdXRob3Jp
emVyRnVuY3Rpb24odm9pZCosIGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBj
aGFyKiwgY29uc3QgY2hhciopOwogCiAgICAgdm9pZCBlbmFibGVBdXRob3JpemVyKGJvb2wgZW5h
YmxlKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2F1dGhvcml6ZXJMb2NrKTsKLSAgICB2b2lkIHVzZVdB
TEpvdXJuYWxNb2RlKCk7CisgICAgYm9vbCB1c2VXQUxKb3VybmFsTW9kZSgpOwogCiAgICAgaW50
IHBhZ2VTaXplKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>