<?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>225435</bug_id>
          
          <creation_ts>2021-05-05 23:25:40 -0700</creation_ts>
          <short_desc>Drop some unnecessary code in LocalStorageDatabase</short_desc>
          <delta_ts>2021-05-06 12:10:19 -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>WebKit2</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1757254</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-05 23:25:40 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757255</commentid>
    <comment_count>1</comment_count>
      <attachid>427851</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-05 23:28:38 -0700</bug_when>
    <thetext>Created attachment 427851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757272</commentid>
    <comment_count>2</comment_count>
      <attachid>427851</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-06 00:37:10 -0700</bug_when>
    <thetext>Comment on attachment 427851
Patch

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

&gt; Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp:-83
&gt; -        m_tracker-&gt;didOpenDatabaseWithOrigin(m_securityOrigin);

didOpenDatabaseWithOrigin callback is no longer called.
It does not seem that it does much right now but maybe it will in the future?

&gt; Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp:296
&gt; +        SQLiteFileSystem::deleteDatabaseFile(m_databasePath);

Ditto here. Should we remove deleteDatabaseWithOrigin?

&gt; Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp:183
&gt; +        m_localStorageDatabase = LocalStorageDatabase::create(databasePath, m_quotaInBytes);

Could use WTFMove and take a String&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757275</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-06 00:40:08 -0700</bug_when>
    <thetext>Might be good to provide additional details in change log as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757404</commentid>
    <comment_count>4</comment_count>
      <attachid>427851</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-06 08:00:51 -0700</bug_when>
    <thetext>Comment on attachment 427851
Patch

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

&gt; Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp:-151
&gt; -        transaction.rollback();

Why are we dropping this? This seems like a potential change in behavior but the ChangeLog says nothing about this.

&gt; Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp:181
&gt; +        auto* localStorageDatabaseTracker = m_localStorageNamespace-&gt;storageManager()-&gt;localStorageDatabaseTracker();

The previous code used to assume his was non-null but now you are null-checking it. Which is right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757438</commentid>
    <comment_count>5</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-06 09:20:09 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 427851 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427851&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp:-83
&gt; &gt; -        m_tracker-&gt;didOpenDatabaseWithOrigin(m_securityOrigin);
&gt; 
&gt; didOpenDatabaseWithOrigin callback is no longer called.
&gt; It does not seem that it does much right now but maybe it will in the future?
&gt; 

The function is a no-op, and LocalStorageDatabaseTracker does not have client (like the comment in LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin). LocalStorageDatabaseTracker used to track all origins in memory so we had the function, but it does not any more. We may just remove that function in LocalStorageDatabaseTracker but want to limit this patch to LocalStorageDatabase.

&gt; &gt; Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp:296
&gt; &gt; +        SQLiteFileSystem::deleteDatabaseFile(m_databasePath);
&gt; 
&gt; Ditto here. Should we remove deleteDatabaseWithOrigin?
&gt; 

Since LocalStorageDatabaseTracker always traverses file folder for origins and data, I It seems Okay to untie LocalStorageDatabaseTracker and LocalStorageDatabase.

&gt; &gt; Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp:183
&gt; &gt; +        m_localStorageDatabase = LocalStorageDatabase::create(databasePath, m_quotaInBytes);
&gt; 
&gt; Could use WTFMove and take a String&amp;&amp;

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757445</commentid>
    <comment_count>6</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-06 09:29:12 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Comment on attachment 427851 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427851&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/WebStorage/LocalStorageDatabase.cpp:-151
&gt; &gt; -        transaction.rollback();
&gt; 
&gt; Why are we dropping this? This seems like a potential change in behavior but
&gt; the ChangeLog says nothing about this.
&gt; 

~SQLiteTransaction will do the rollback. Will update changeling.

&gt; &gt; Source/WebKit/NetworkProcess/WebStorage/StorageArea.cpp:181
&gt; &gt; +        auto* localStorageDatabaseTracker = m_localStorageNamespace-&gt;storageManager()-&gt;localStorageDatabaseTracker();
&gt; 
&gt; The previous code used to assume his was non-null but now you are
&gt; null-checking it. Which is right?

Technically it should be non-null. I just add the safe check because it returns a raw pointer; will change it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757453</commentid>
    <comment_count>7</comment_count>
      <attachid>427893</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-05-06 09:38:42 -0700</bug_when>
    <thetext>Created attachment 427893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757456</commentid>
    <comment_count>8</comment_count>
      <attachid>427893</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-06 09:43:27 -0700</bug_when>
    <thetext>Comment on attachment 427893
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757559</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-06 12:09:25 -0700</bug_when>
    <thetext>Committed r277106 (237408@main): &lt;https://commits.webkit.org/237408@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427893.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757560</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-06 12:10:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/77619330&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427851</attachid>
            <date>2021-05-05 23:28:38 -0700</date>
            <delta_ts>2021-05-06 09:38:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225435-20210505232837.patch</filename>
            <type>text/plain</type>
            <size>8865</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBmOGMyY2NmYTU4YWY3MTBj
YmY5MTdkNjU3YzlhMzJmYTYxNzgxYjQuLjYyZDJmNjMyNjI0MTVjMmI2ZDkzNTVjNDY3MGYzYTZm
NDY1MDRiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDUtMDUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzb21lIHVubmVjZXNzYXJ5
IGNvZGUgaW4gTG9jYWxTdG9yYWdlRGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTQzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6TG9jYWxTdG9yYWdlRGF0YWJhc2U6OkxvY2FsU3RvcmFnZURhdGFiYXNlKToKKyAgICAgICAg
KFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChX
ZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlOjptaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQpOgor
ICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6Y2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6dHJ5VG9PcGVuRGF0YWJhc2UpOiBEZWxldGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJh
c2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OmVuc3VyZURhdGFiYXNlIGNvbnN0KToK
KwogMjAyMS0wNS0wNSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgbmV0d29yayB3ZWJzaXRlIGRhdGEgd2hlbiBhIHVzZXIgY2xlYXJz
IGFuIGluZGl2aWR1YWwgZG9tYWluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAppbmRl
eCA3NGM2NzQ1MzJmZjg1NzcyY2RhYmFiMjUyZjRkNjhhZGFhNTRiMzc3Li5jYTgyYjhkZTNkZTAy
ZTBjMmM4M2FmOGRhMjIzZDQxN2UyMzA0ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFz
ZS5jcHAKQEAgLTI2LDM3ICsyNiwyNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkxvY2FsU3RvcmFnZURhdGFiYXNlLmgiCiAKLSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZUZpbGVTeXN0ZW0uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NRTGl0ZVN0YXRlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRl
U3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZVRyYW5z
YWN0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1N0b3JhZ2VNYXAuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N1ZGRlblRlcm1p
bmF0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgotI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBjb25zdCBjaGFyIGdldEl0
ZW1zUXVlcnlTdHJpbmdbXSA9ICJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9NIEl0ZW1UYWJsZSI7CiAK
LVJlZjxMb2NhbFN0b3JhZ2VEYXRhYmFzZT4gTG9jYWxTdG9yYWdlRGF0YWJhc2U6OmNyZWF0ZShS
ZWY8V29ya1F1ZXVlPiYmIHF1ZXVlLCBSZWY8TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyPiYm
IHRyYWNrZXIsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIHVuc2ln
bmVkIHF1b3RhSW5CeXRlcykKK1JlZjxMb2NhbFN0b3JhZ2VEYXRhYmFzZT4gTG9jYWxTdG9yYWdl
RGF0YWJhc2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCwgdW5zaWduZWQgcXVv
dGFJbkJ5dGVzKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IExvY2FsU3RvcmFnZURhdGFi
YXNlKFdURk1vdmUocXVldWUpLCBXVEZNb3ZlKHRyYWNrZXIpLCBzZWN1cml0eU9yaWdpbiwgcXVv
dGFJbkJ5dGVzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTG9jYWxTdG9yYWdlRGF0YWJh
c2UoZGF0YWJhc2VQYXRoLCBxdW90YUluQnl0ZXMpKTsKIH0KIAotTG9jYWxTdG9yYWdlRGF0YWJh
c2U6OkxvY2FsU3RvcmFnZURhdGFiYXNlKFJlZjxXb3JrUXVldWU+JiYgcXVldWUsIFJlZjxMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI+JiYgdHJhY2tlciwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBzZWN1cml0eU9yaWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKQotICAgIDogbV9xdWV1
ZShXVEZNb3ZlKHF1ZXVlKSkKLSAgICAsIG1fdHJhY2tlcihXVEZNb3ZlKHRyYWNrZXIpKQotICAg
ICwgbV9zZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbikKLSAgICAsIG1fZGF0YWJhc2VQYXRo
KG1fdHJhY2tlci0+ZGF0YWJhc2VQYXRoKG1fc2VjdXJpdHlPcmlnaW4pKQorTG9jYWxTdG9yYWdl
RGF0YWJhc2U6OkxvY2FsU3RvcmFnZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRo
LCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpCisgICAgOiBtX2RhdGFiYXNlUGF0aChkYXRhYmFzZVBh
dGgpCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CkBAIC02OCwyMiArNTgsNyBAQCBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZTo6fkxvY2FsU3RvcmFnZURhdGFiYXNlKCkKICAgICBBU1NFUlQobV9pc0Nsb3NlZCk7CiB9CiAK
LXZvaWQgTG9jYWxTdG9yYWdlRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShTaG91bGRDcmVhdGVEYXRh
YmFzZSBzaG91bGRDcmVhdGVEYXRhYmFzZSkKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKLSAgICBBU1NFUlQoIW1fZGF0YWJhc2UuaXNPcGVuKCkpOwotICAgIEFTU0VSVCghbV9m
YWlsZWRUb09wZW5EYXRhYmFzZSk7Ci0KLSAgICBpZiAoIXRyeVRvT3BlbkRhdGFiYXNlKHNob3Vs
ZENyZWF0ZURhdGFiYXNlKSkgewotICAgICAgICBtX2ZhaWxlZFRvT3BlbkRhdGFiYXNlID0gdHJ1
ZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtX2RhdGFiYXNlLmlzT3Blbigp
KQotICAgICAgICBtX3RyYWNrZXItPmRpZE9wZW5EYXRhYmFzZVdpdGhPcmlnaW4obV9zZWN1cml0
eU9yaWdpbik7Ci19Ci0KLWJvb2wgTG9jYWxTdG9yYWdlRGF0YWJhc2U6OnRyeVRvT3BlbkRhdGFi
YXNlKFNob3VsZENyZWF0ZURhdGFiYXNlIHNob3VsZENyZWF0ZURhdGFiYXNlKQorYm9vbCBMb2Nh
bFN0b3JhZ2VEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKFNob3VsZENyZWF0ZURhdGFiYXNlIHNob3Vs
ZENyZWF0ZURhdGFiYXNlKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAg
IGlmICghRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhtX2RhdGFiYXNlUGF0aCkgJiYgc2hvdWxkQ3Jl
YXRlRGF0YWJhc2UgPT0gU2hvdWxkQ3JlYXRlRGF0YWJhc2U6Ok5vKQpAQCAtMTQwLDcgKzExNSw3
IEBAIGJvb2wgTG9jYWxTdG9yYWdlRGF0YWJhc2U6Om1pZ3JhdGVJdGVtVGFibGVJZk5lZWRlZCgp
CiAgICAgICAgIDAsCiAgICAgfTsKIAotICAgIFNRTGl0ZVRyYW5zYWN0aW9uIHRyYW5zYWN0aW9u
KG1fZGF0YWJhc2UsIGZhbHNlKTsKKyAgICBTUUxpdGVUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbiht
X2RhdGFiYXNlKTsKICAgICB0cmFuc2FjdGlvbi5iZWdpbigpOwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGNvbW1hbmRzW2ldOyArK2kpIHsKQEAgLTE0OCw3ICsxMjMsNiBAQCBib29sIExvY2Fs
U3RvcmFnZURhdGFiYXNlOjptaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQoKQogICAgICAgICAgICAg
Y29udGludWU7CiAKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gbWlncmF0ZSB0YWJsZSBJ
dGVtVGFibGUgZm9yIGxvY2FsIHN0b3JhZ2Ugd2hlbiBleGVjdXRpbmc6ICVzIiwgY29tbWFuZHNb
aV0pOwotICAgICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CkBAIC0zMTksNyArMjkzLDcgQEAgdm9pZCBMb2NhbFN0b3JhZ2VEYXRhYmFz
ZTo6Y2xvc2UoKQogICAgICAgICBtX2RhdGFiYXNlLmNsb3NlKCk7CiAKICAgICBpZiAoaXNFbXB0
eSkKLSAgICAgICAgbV90cmFja2VyLT5kZWxldGVEYXRhYmFzZVdpdGhPcmlnaW4obV9zZWN1cml0
eU9yaWdpbik7CisgICAgICAgIFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZSht
X2RhdGFiYXNlUGF0aCk7CiB9CiAKIGJvb2wgTG9jYWxTdG9yYWdlRGF0YWJhc2U6OmRhdGFiYXNl
SXNFbXB0eSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oCmluZGV4IDA5NWU2NzY0
MmE3N2Q3NzU4YTRkMDgzYzdlNDc2MDNkMWI3ZDE4ODUuLjNlNWQ5Nzk3MjM5Nzc5MjgwMTU3MThh
MDE4MTNiMDg5NzdiY2U5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oCkBAIC0yNiwy
MyArMjYsMTkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRh
YmFzZS5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1FMaXRlU3RhdGVtZW50QXV0b1Jl
c2V0U2NvcGU7Ci1jbGFzcyBTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyOwogCiBzdHJ1Y3QgU2Vj
dXJpdHlPcmlnaW5EYXRhOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyOwotCiBjbGFzcyBMb2NhbFN0b3JhZ2VEYXRhYmFzZSA6IHB1
YmxpYyBSZWZDb3VudGVkPExvY2FsU3RvcmFnZURhdGFiYXNlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxMb2NhbFN0b3JhZ2VEYXRhYmFzZT4gY3JlYXRlKFJlZjxXb3JrUXVldWU+JiYsIFJl
ZjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI+JiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcyk7CisgICAgc3RhdGljIFJlZjxMb2Nh
bFN0b3JhZ2VEYXRhYmFzZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoLCB1bnNp
Z25lZCBxdW90YUluQnl0ZXMpOwogICAgIH5Mb2NhbFN0b3JhZ2VEYXRhYmFzZSgpOwogCiAgICAg
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gaXRlbXMoKSBjb25zdDsKQEAgLTU4LDI5ICs1NCwyMiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBoYW5kbGVMb3dNZW1vcnlXYXJuaW5nKCk7CiAKIHByaXZhdGU6
Ci0gICAgTG9jYWxTdG9yYWdlRGF0YWJhc2UoUmVmPFdvcmtRdWV1ZT4mJiwgUmVmPExvY2FsU3Rv
cmFnZURhdGFiYXNlVHJhY2tlcj4mJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKKyAgICBMb2NhbFN0b3JhZ2VEYXRhYmFzZShjb25z
dCBTdHJpbmcmIGRhdGFiYXNlUGF0aCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKIAogICAgIGVu
dW0gY2xhc3MgU2hvdWxkQ3JlYXRlRGF0YWJhc2UgOiBib29sIHsgTm8sIFllcyB9OwotICAgIGJv
b2wgdHJ5VG9PcGVuRGF0YWJhc2UoU2hvdWxkQ3JlYXRlRGF0YWJhc2UpOwotICAgIHZvaWQgb3Bl
bkRhdGFiYXNlKFNob3VsZENyZWF0ZURhdGFiYXNlKTsKKyAgICBib29sIG9wZW5EYXRhYmFzZShT
aG91bGRDcmVhdGVEYXRhYmFzZSk7CiAKICAgICBib29sIG1pZ3JhdGVJdGVtVGFibGVJZk5lZWRl
ZCgpOwogICAgIGJvb2wgZGF0YWJhc2VJc0VtcHR5KCkgY29uc3Q7CiAKICAgICBXZWJDb3JlOjpT
UUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRTY29wZSBzY29wZWRTdGF0ZW1lbnQoc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4mLCBjb25zdCBTdHJpbmcmIHF1ZXJ5KSBjb25z
dDsKIAotICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7Ci0gICAgUmVmPExvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlcj4gbV90cmFja2VyOwotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBtX3NlY3VyaXR5T3JpZ2luOwotCiAgICAgU3RyaW5nIG1fZGF0YWJhc2VQYXRoOwogICAgIG11
dGFibGUgV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKICAgICBjb25zdCB1bnNp
Z25lZCBtX3F1b3RhSW5CeXRlcyB7IDAgfTsKLSAgICBib29sIG1fZmFpbGVkVG9PcGVuRGF0YWJh
c2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CiAgICAgT3B0aW9u
YWw8dW5zaWduZWQ+IG1fZGF0YWJhc2VTaXplOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlN1ZGRlblRlcm1pbmF0aW9uRGlzYWJsZXI+IG1fZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9u
V2hpbGVXcml0aW5nVG9Mb2NhbFN0b3JhZ2U7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2NsZWFyU3RhdGVtZW50OwogICAgIG11dGFibGUg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudD4gbV9pbnNlcnRTdGF0ZW1l
bnQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50
PiBtX2dldEl0ZW1TdGF0ZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAppbmRleCBiNzNmMTQzNGZiZmMxZDhh
ZGY1MzViZTk5M2NlMDM3MmQ1Y2M4OGI5Li5jMDYyYWNiNmZjZDA4OWZmNTQ0ZTllMjg3YWU5ZTI2
NzdlYjAwYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKQEAgLTE3OCw3ICsxNzgsOSBAQCBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZSYgU3RvcmFnZUFyZWE6OmVuc3VyZURhdGFiYXNlKCkgY29uc3QKICAgICBBU1NF
UlQobV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VNYW5hZ2VyKCktPmxvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlcigpKTsKICAgICAvLyBXZSBvcGVuIHRoZSBkYXRhYmFzZSBoZXJlIGV2
ZW4gaWYgd2UndmUgYWxyZWFkeSBpbXBvcnRlZCBvdXIgaXRlbXMgdG8gZW5zdXJlIHRoYXQgdGhl
IGRhdGFiYXNlIGlzIG9wZW4gaWYgd2UgbmVlZCB0byB3cml0ZSB0byBpdC4KICAgICBpZiAoIW1f
bG9jYWxTdG9yYWdlRGF0YWJhc2UpIHsKLSAgICAgICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZSA9
IExvY2FsU3RvcmFnZURhdGFiYXNlOjpjcmVhdGUobV9xdWV1ZS5jb3B5UmVmKCksICptX2xvY2Fs
U3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU1hbmFnZXIoKS0+bG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyKCksIG1fc2VjdXJpdHlPcmlnaW4sIG1fcXVvdGFJbkJ5dGVzKTsKKyAgICAgICAgYXV0
byogbG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyID0gbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2Ut
PnN0b3JhZ2VNYW5hZ2VyKCktPmxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcigpOworICAgICAg
ICBhdXRvIGRhdGFiYXNlUGF0aCA9IGxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlciA/IGxvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlci0+ZGF0YWJhc2VQYXRoKG1fc2VjdXJpdHlPcmlnaW4pIDog
U3RyaW5nIHsgfTsKKyAgICAgICAgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZSA9IExvY2FsU3RvcmFn
ZURhdGFiYXNlOjpjcmVhdGUoZGF0YWJhc2VQYXRoLCBtX3F1b3RhSW5CeXRlcyk7CiAgICAgICAg
IG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UtPm9wZW5JZkV4aXN0aW5nKCk7CiAgICAgfQogICAgIHJl
dHVybiAqbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427893</attachid>
            <date>2021-05-06 09:38:42 -0700</date>
            <delta_ts>2021-05-06 12:09:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225435-20210506093841.patch</filename>
            <type>text/plain</type>
            <size>9000</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFjOGM2ZWVhNjYyYTNjZmEy
MGU3MTY4YTE0ZjU2YTc0OGY0M2QxNGMuLjI4ZjQ2MGQ0MDA4Zjk0ZGQxYWFmMjY4ZWZlNzFjOTI4
MWE2MjFmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDUtMDYgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzb21lIHVubmVjZXNzYXJ5
IGNvZGUgaW4gTG9jYWxTdG9yYWdlRGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTQzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6Y3JlYXRlKTogCisgICAgICAgIChXZWJL
aXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZSk6IFJlbW92ZSB0
d28gcGFyZW1ldGVycyB0aGF0IGFyZSBubyBsb25nZXIgbmVlZGVkIGFmdGVyIAorICAgICAgICBk
cm9wcGluZyBjb2RlLgorICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6b3Bl
bkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2U6Om1pZ3Jh
dGVJdGVtVGFibGVJZk5lZWRlZCk6IFNRTGl0ZVRyYW5zYWN0aW9uKCkgYnkgZGVmYXVsdCBzZXRz
IHJlYWRPbmx5IHRvIGZhbHNlLAorICAgICAgICBhbmQgaXQgd2lsbCBiZSByb2xsZWQgYmFjayBm
b3IgZmFpbHVyZSBpbiB+U1FMaXRlVHJhbnNhY3Rpb24uCisgICAgICAgIChXZWJLaXQ6OkxvY2Fs
U3RvcmFnZURhdGFiYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZURh
dGFiYXNlOjp0cnlUb09wZW5EYXRhYmFzZSk6IERlbGV0ZWQuIE1lcmdlZCB0byBvcGVuRGF0YWJh
c2UuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRh
YmFzZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6ZW5zdXJlRGF0YWJhc2UgY29uc3Qp
OgorCiAyMDIxLTA1LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTdHJlYW1saW5lIGNvZGVjIHBhcnNpbmcsIHJlcGxhY2luZyB1c2VzIG9mIEhhc2hNYXAgd2l0
aCBTb3J0ZWRBcnJheU1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKaW5kZXggNzRj
Njc0NTMyZmY4NTc3MmNkYWJhYjI1MmY0ZDY4YWRhYTU0YjM3Ny4uNTIzMjMzZDE4YjA0MDAzZWYz
MGQzMzYzMmNmZTYyZjAyZjI3YTM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3Bw
CkBAIC0yNiwzNyArMjYsMjcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2Nh
bFN0b3JhZ2VEYXRhYmFzZS5oIgogCi0jaW5jbHVkZSAiTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFj
a2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVGaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TUUxpdGVTdGF0ZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZVN0YXRl
bWVudEF1dG9SZXNldFNjb3BlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVUcmFuc2FjdGlv
bi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TdG9yYWdlTWFwLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TdWRkZW5UZXJtaW5hdGlv
bi5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLSNp
bmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgY29uc3QgY2hhciBnZXRJdGVtc1F1
ZXJ5U3RyaW5nW10gPSAiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBJdGVtVGFibGUiOwogCi1SZWY8
TG9jYWxTdG9yYWdlRGF0YWJhc2U+IExvY2FsU3RvcmFnZURhdGFiYXNlOjpjcmVhdGUoUmVmPFdv
cmtRdWV1ZT4mJiBxdWV1ZSwgUmVmPExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcj4mJiB0cmFj
a2VyLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCB1bnNpZ25lZCBx
dW90YUluQnl0ZXMpCitSZWY8TG9jYWxTdG9yYWdlRGF0YWJhc2U+IExvY2FsU3RvcmFnZURhdGFi
YXNlOjpjcmVhdGUoU3RyaW5nJiYgZGF0YWJhc2VQYXRoLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTG9jYWxTdG9yYWdlRGF0YWJhc2UoV1RGTW92
ZShxdWV1ZSksIFdURk1vdmUodHJhY2tlciksIHNlY3VyaXR5T3JpZ2luLCBxdW90YUluQnl0ZXMp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMb2NhbFN0b3JhZ2VEYXRhYmFzZShXVEZNb3Zl
KGRhdGFiYXNlUGF0aCksIHF1b3RhSW5CeXRlcykpOwogfQogCi1Mb2NhbFN0b3JhZ2VEYXRhYmFz
ZTo6TG9jYWxTdG9yYWdlRGF0YWJhc2UoUmVmPFdvcmtRdWV1ZT4mJiBxdWV1ZSwgUmVmPExvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlcj4mJiB0cmFja2VyLCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpCi0gICAgOiBtX3F1ZXVl
KFdURk1vdmUocXVldWUpKQotICAgICwgbV90cmFja2VyKFdURk1vdmUodHJhY2tlcikpCi0gICAg
LCBtX3NlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKQotICAgICwgbV9kYXRhYmFzZVBhdGgo
bV90cmFja2VyLT5kYXRhYmFzZVBhdGgobV9zZWN1cml0eU9yaWdpbikpCitMb2NhbFN0b3JhZ2VE
YXRhYmFzZTo6TG9jYWxTdG9yYWdlRGF0YWJhc2UoU3RyaW5nJiYgZGF0YWJhc2VQYXRoLCB1bnNp
Z25lZCBxdW90YUluQnl0ZXMpCisgICAgOiBtX2RhdGFiYXNlUGF0aChXVEZNb3ZlKGRhdGFiYXNl
UGF0aCkpCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC02OCwyMiArNTgsNyBAQCBMb2NhbFN0b3JhZ2VEYXRh
YmFzZTo6fkxvY2FsU3RvcmFnZURhdGFiYXNlKCkKICAgICBBU1NFUlQobV9pc0Nsb3NlZCk7CiB9
CiAKLXZvaWQgTG9jYWxTdG9yYWdlRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShTaG91bGRDcmVhdGVE
YXRhYmFzZSBzaG91bGRDcmVhdGVEYXRhYmFzZSkKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICBBU1NFUlQoIW1fZGF0YWJhc2UuaXNPcGVuKCkpOwotICAgIEFTU0VSVCgh
bV9mYWlsZWRUb09wZW5EYXRhYmFzZSk7Ci0KLSAgICBpZiAoIXRyeVRvT3BlbkRhdGFiYXNlKHNo
b3VsZENyZWF0ZURhdGFiYXNlKSkgewotICAgICAgICBtX2ZhaWxlZFRvT3BlbkRhdGFiYXNlID0g
dHJ1ZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtX2RhdGFiYXNlLmlzT3Bl
bigpKQotICAgICAgICBtX3RyYWNrZXItPmRpZE9wZW5EYXRhYmFzZVdpdGhPcmlnaW4obV9zZWN1
cml0eU9yaWdpbik7Ci19Ci0KLWJvb2wgTG9jYWxTdG9yYWdlRGF0YWJhc2U6OnRyeVRvT3BlbkRh
dGFiYXNlKFNob3VsZENyZWF0ZURhdGFiYXNlIHNob3VsZENyZWF0ZURhdGFiYXNlKQorYm9vbCBM
b2NhbFN0b3JhZ2VEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKFNob3VsZENyZWF0ZURhdGFiYXNlIHNo
b3VsZENyZWF0ZURhdGFiYXNlKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhtX2RhdGFiYXNlUGF0aCkgJiYgc2hvdWxk
Q3JlYXRlRGF0YWJhc2UgPT0gU2hvdWxkQ3JlYXRlRGF0YWJhc2U6Ok5vKQpAQCAtMTQwLDcgKzEx
NSw3IEBAIGJvb2wgTG9jYWxTdG9yYWdlRGF0YWJhc2U6Om1pZ3JhdGVJdGVtVGFibGVJZk5lZWRl
ZCgpCiAgICAgICAgIDAsCiAgICAgfTsKIAotICAgIFNRTGl0ZVRyYW5zYWN0aW9uIHRyYW5zYWN0
aW9uKG1fZGF0YWJhc2UsIGZhbHNlKTsKKyAgICBTUUxpdGVUcmFuc2FjdGlvbiB0cmFuc2FjdGlv
bihtX2RhdGFiYXNlKTsKICAgICB0cmFuc2FjdGlvbi5iZWdpbigpOwogCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGNvbW1hbmRzW2ldOyArK2kpIHsKQEAgLTE0OCw3ICsxMjMsNiBAQCBib29sIExv
Y2FsU3RvcmFnZURhdGFiYXNlOjptaWdyYXRlSXRlbVRhYmxlSWZOZWVkZWQoKQogICAgICAgICAg
ICAgY29udGludWU7CiAKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gbWlncmF0ZSB0YWJs
ZSBJdGVtVGFibGUgZm9yIGxvY2FsIHN0b3JhZ2Ugd2hlbiBleGVjdXRpbmc6ICVzIiwgY29tbWFu
ZHNbaV0pOwotICAgICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CkBAIC0zMTksNyArMjkzLDcgQEAgdm9pZCBMb2NhbFN0b3JhZ2VEYXRh
YmFzZTo6Y2xvc2UoKQogICAgICAgICBtX2RhdGFiYXNlLmNsb3NlKCk7CiAKICAgICBpZiAoaXNF
bXB0eSkKLSAgICAgICAgbV90cmFja2VyLT5kZWxldGVEYXRhYmFzZVdpdGhPcmlnaW4obV9zZWN1
cml0eU9yaWdpbik7CisgICAgICAgIFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmls
ZShtX2RhdGFiYXNlUGF0aCk7CiB9CiAKIGJvb2wgTG9jYWxTdG9yYWdlRGF0YWJhc2U6OmRhdGFi
YXNlSXNFbXB0eSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oCmluZGV4IDA5NWU2
NzY0MmE3N2Q3NzU4YTRkMDgzYzdlNDc2MDNkMWI3ZDE4ODUuLmI3ZWYwMzRkMmE4NmMyNGJkMDRk
Zjc5NDMxN2NhYmFmYzAzZTc0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oCkBAIC0y
NiwyMyArMjYsMTkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVE
YXRhYmFzZS5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1FMaXRlU3RhdGVtZW50QXV0
b1Jlc2V0U2NvcGU7Ci1jbGFzcyBTdWRkZW5UZXJtaW5hdGlvbkRpc2FibGVyOwogCiBzdHJ1Y3Qg
U2VjdXJpdHlPcmlnaW5EYXRhOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTG9j
YWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOwotCiBjbGFzcyBMb2NhbFN0b3JhZ2VEYXRhYmFzZSA6
IHB1YmxpYyBSZWZDb3VudGVkPExvY2FsU3RvcmFnZURhdGFiYXNlPiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxMb2NhbFN0b3JhZ2VEYXRhYmFzZT4gY3JlYXRlKFJlZjxXb3JrUXVldWU+JiYs
IFJlZjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI+JiYsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcyk7CisgICAgc3RhdGljIFJlZjxM
b2NhbFN0b3JhZ2VEYXRhYmFzZT4gY3JlYXRlKFN0cmluZyYmIGRhdGFiYXNlUGF0aCwgdW5zaWdu
ZWQgcXVvdGFJbkJ5dGVzKTsKICAgICB+TG9jYWxTdG9yYWdlRGF0YWJhc2UoKTsKIAogICAgIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zKCkgY29uc3Q7CkBAIC01OCwyOSArNTQsMjIgQEAg
cHVibGljOgogICAgIHZvaWQgaGFuZGxlTG93TWVtb3J5V2FybmluZygpOwogCiBwcml2YXRlOgot
ICAgIExvY2FsU3RvcmFnZURhdGFiYXNlKFJlZjxXb3JrUXVldWU+JiYsIFJlZjxMb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXI+JiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IHVuc2lnbmVkIHF1b3RhSW5CeXRlcyk7CisgICAgTG9jYWxTdG9yYWdlRGF0YWJhc2UoU3RyaW5n
JiYgZGF0YWJhc2VQYXRoLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpOwogCiAgICAgZW51bSBjbGFz
cyBTaG91bGRDcmVhdGVEYXRhYmFzZSA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgYm9vbCB0cnlU
b09wZW5EYXRhYmFzZShTaG91bGRDcmVhdGVEYXRhYmFzZSk7Ci0gICAgdm9pZCBvcGVuRGF0YWJh
c2UoU2hvdWxkQ3JlYXRlRGF0YWJhc2UpOworICAgIGJvb2wgb3BlbkRhdGFiYXNlKFNob3VsZENy
ZWF0ZURhdGFiYXNlKTsKIAogICAgIGJvb2wgbWlncmF0ZUl0ZW1UYWJsZUlmTmVlZGVkKCk7CiAg
ICAgYm9vbCBkYXRhYmFzZUlzRW1wdHkoKSBjb25zdDsKIAogICAgIFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudEF1dG9SZXNldFNjb3BlIHNjb3BlZFN0YXRlbWVudChzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50PiYsIGNvbnN0IFN0cmluZyYgcXVlcnkpIGNvbnN0OwogCi0g
ICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKLSAgICBSZWY8TG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyPiBtX3RyYWNrZXI7Ci0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG1fc2Vj
dXJpdHlPcmlnaW47Ci0KICAgICBTdHJpbmcgbV9kYXRhYmFzZVBhdGg7CiAgICAgbXV0YWJsZSBX
ZWJDb3JlOjpTUUxpdGVEYXRhYmFzZSBtX2RhdGFiYXNlOwogICAgIGNvbnN0IHVuc2lnbmVkIG1f
cXVvdGFJbkJ5dGVzIHsgMCB9OwotICAgIGJvb2wgbV9mYWlsZWRUb09wZW5EYXRhYmFzZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBPcHRpb25hbDx1bnNp
Z25lZD4gbV9kYXRhYmFzZVNpemU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3Vk
ZGVuVGVybWluYXRpb25EaXNhYmxlcj4gbV9kaXNhYmxlU3VkZGVuVGVybWluYXRpb25XaGlsZVdy
aXRpbmdUb0xvY2FsU3RvcmFnZTsKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpTUUxpdGVTdGF0ZW1lbnQ+IG1fY2xlYXJTdGF0ZW1lbnQ7CiAgICAgbXV0YWJsZSBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX2luc2VydFN0YXRlbWVudDsKICAg
ICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ+IG1fZ2V0
SXRlbVN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCmluZGV4IGI3M2YxNDM0ZmJmYzFkOGFkZjUzNWJl
OTkzY2UwMzcyZDVjYzg4YjkuLjNmM2VkNDQ5MzA0MmIxOWE0MDMxYWU0M2Q2OTAwMjBmMmY0YTA4
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhLmNwcApAQCAtMTc4LDcgKzE3OCw4IEBAIExvY2FsU3RvcmFnZURhdGFi
YXNlJiBTdG9yYWdlQXJlYTo6ZW5zdXJlRGF0YWJhc2UoKSBjb25zdAogICAgIEFTU0VSVChtX2xv
Y2FsU3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU1hbmFnZXIoKS0+bG9jYWxTdG9yYWdlRGF0YWJh
c2VUcmFja2VyKCkpOwogICAgIC8vIFdlIG9wZW4gdGhlIGRhdGFiYXNlIGhlcmUgZXZlbiBpZiB3
ZSd2ZSBhbHJlYWR5IGltcG9ydGVkIG91ciBpdGVtcyB0byBlbnN1cmUgdGhhdCB0aGUgZGF0YWJh
c2UgaXMgb3BlbiBpZiB3ZSBuZWVkIHRvIHdyaXRlIHRvIGl0LgogICAgIGlmICghbV9sb2NhbFN0
b3JhZ2VEYXRhYmFzZSkgewotICAgICAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlID0gTG9jYWxT
dG9yYWdlRGF0YWJhc2U6OmNyZWF0ZShtX3F1ZXVlLmNvcHlSZWYoKSwgKm1fbG9jYWxTdG9yYWdl
TmFtZXNwYWNlLT5zdG9yYWdlTWFuYWdlcigpLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIo
KSwgbV9zZWN1cml0eU9yaWdpbiwgbV9xdW90YUluQnl0ZXMpOworICAgICAgICBhdXRvKiBsb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIgPSBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFn
ZU1hbmFnZXIoKS0+bG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyKCk7CisgICAgICAgIG1fbG9j
YWxTdG9yYWdlRGF0YWJhc2UgPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6Y3JlYXRlKGxvY2FsU3Rv
cmFnZURhdGFiYXNlVHJhY2tlci0+ZGF0YWJhc2VQYXRoKG1fc2VjdXJpdHlPcmlnaW4pLCBtX3F1
b3RhSW5CeXRlcyk7CiAgICAgICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UtPm9wZW5JZkV4aXN0
aW5nKCk7CiAgICAgfQogICAgIHJldHVybiAqbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>