<?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>235553</bug_id>
          
          <creation_ts>2022-01-24 17:50:42 -0800</creation_ts>
          <short_desc>Regression (r288298): NetworkStorageManager sends messages to wrong StorageAreaMap</short_desc>
          <delta_ts>2022-01-26 11:37:43 -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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833574</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-01-24 17:50:42 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833611</commentid>
    <comment_count>1</comment_count>
      <attachid>449898</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-01-24 22:27:44 -0800</bug_when>
    <thetext>Created attachment 449898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833617</commentid>
    <comment_count>2</comment_count>
      <attachid>449898</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-24 22:53:39 -0800</bug_when>
    <thetext>Comment on attachment 449898
Patch

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

&gt; Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.messages.in:32
&gt; +    SetItem(WebKit::StorageAreaIdentifier identifier, WebKit::StorageAreaImplIdentifier implIdentifier, uint64_t storageMapSeed, String key, String value, String urlString) -&gt; (uint64_t storageMapSeed, String key, bool quotaException) Async WantsConnection
&gt; +    RemoveItem(WebKit::StorageAreaIdentifier identifier, WebKit::StorageAreaImplIdentifier implIdentifier, uint64_t storageMapSeed, String key, String urlString) -&gt; (uint64_t storageMapSeed, String key) Async WantsConnection

We don’t need these keys in the return values, can just capture them instead. See below ...

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:692
&gt; +    completionHandler(storageMapSeed, key, hasQuotaError);

Why not use WTFMove(key) here to save a tiny bit of reference count churn? Except if you take the suggestion of not sending the key back in the return value, then you can use that WTFMove(key) above instead of String { key }.

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:700
&gt;          storageArea-&gt;removeItem(connection.uniqueID(), implIdentifier, key, WTFMove(urlString));

May be able to use WTFMove(key) here if we get rid of the key below. But if the removeItem function takes a const String&amp;, then I guess that won’t be helpful.

&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:108
&gt; +    auto callback = [weakThis = WeakPtr { *this }](uint64_t storageMapSeed, String key, bool quotaException) mutable {
&gt; +        if (weakThis)
&gt; +            weakThis-&gt;didSetItem(storageMapSeed, key, quotaException);
&gt; +    };

We could capture a copy of the key here and then we would not need the completion handler to pass the key back to us, saving some XPC.

&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:134
&gt; +    auto callback = [weakThis = WeakPtr { *this }](uint64_t storageMapSeed, String key) mutable {
&gt; +        if (weakThis)
&gt; +            weakThis-&gt;didRemoveItem(storageMapSeed, key);
&gt; +    };

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833623</commentid>
    <comment_count>3</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-01-24 23:07:52 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 449898 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449898&amp;action=review

Thanks for the review.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/WebStorage/StorageManagerSet.messages.in:32
&gt; &gt; +    SetItem(WebKit::StorageAreaIdentifier identifier, WebKit::StorageAreaImplIdentifier implIdentifier, uint64_t storageMapSeed, String key, String value, String urlString) -&gt; (uint64_t storageMapSeed, String key, bool quotaException) Async WantsConnection
&gt; &gt; +    RemoveItem(WebKit::StorageAreaIdentifier identifier, WebKit::StorageAreaImplIdentifier implIdentifier, uint64_t storageMapSeed, String key, String urlString) -&gt; (uint64_t storageMapSeed, String key) Async WantsConnection
&gt; 
&gt; We don’t need these keys in the return values, can just capture them
&gt; instead. See below ...

Ah right, will change.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:692
&gt; &gt; +    completionHandler(storageMapSeed, key, hasQuotaError);
&gt; 
&gt; Why not use WTFMove(key) here to save a tiny bit of reference count churn?
&gt; Except if you take the suggestion of not sending the key back in the return
&gt; value, then you can use that WTFMove(key) above instead of String { key }.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:700
&gt; &gt;          storageArea-&gt;removeItem(connection.uniqueID(), implIdentifier, key, WTFMove(urlString));
&gt; 
&gt; May be able to use WTFMove(key) here if we get rid of the key below. But if
&gt; the removeItem function takes a const String&amp;, then I guess that won’t be
&gt; helpful.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:108
&gt; &gt; +    auto callback = [weakThis = WeakPtr { *this }](uint64_t storageMapSeed, String key, bool quotaException) mutable {
&gt; &gt; +        if (weakThis)
&gt; &gt; +            weakThis-&gt;didSetItem(storageMapSeed, key, quotaException);
&gt; &gt; +    };
&gt; 
&gt; We could capture a copy of the key here and then we would not need the
&gt; completion handler to pass the key back to us, saving some XPC.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:134
&gt; &gt; +    auto callback = [weakThis = WeakPtr { *this }](uint64_t storageMapSeed, String key) mutable {
&gt; &gt; +        if (weakThis)
&gt; &gt; +            weakThis-&gt;didRemoveItem(storageMapSeed, key);
&gt; &gt; +    };
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833630</commentid>
    <comment_count>4</comment_count>
      <attachid>449902</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-01-25 00:20:05 -0800</bug_when>
    <thetext>Created attachment 449902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833723</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-25 08:34:27 -0800</bug_when>
    <thetext>Committed r288551 (246383@main): &lt;https://commits.webkit.org/246383@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449902.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833724</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-25 08:35:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88025071&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449898</attachid>
            <date>2022-01-24 22:27:44 -0800</date>
            <delta_ts>2022-01-25 00:20:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235553-20220124222743.patch</filename>
            <type>text/plain</type>
            <size>22488</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY2NDFmYTgzMDZjOWVjYTJm
M2QzY2YzODA4NzZjYmJiZTdhMDE3NzAuLjQxYjJjM2Q1MzBiOTcwMTJiY2E5OTY4Y2Q3ZDAwYjM5
ZDZkNTVjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjItMDEtMjQgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbiAocjIzNTIzNik6
IE5ldHdvcmtTdG9yYWdlTWFuYWdlciBzZW5kcyBtZXNzYWdlcyB0byB3cm9uZyBTdG9yYWdlQXJl
YU1hcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
NTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rh
cnRlZCBmcm9tIHIyMzUyMzYsIE5ldHdvcmtTdG9yYWdlTWFuYWdlciB1c2VzIFN0b3JhZ2VBcmVh
TWFwSWRlbnRpZmllciBpbnN0ZWFkIG9mIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBhcworICAgICAg
ICB0aGUgbWVzc2FnZSBkZXN0aW5hdGlvbiAoYXMgd2ViIHByb2Nlc3Mgc3RvcmVzIFN0b3JhZ2VB
cmVhTWFwIGJ5IFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllcikuIEhvd2V2ZXIsIHRoZQorICAgICAg
ICBkZXN0aW5hdGlvbiBpcyBub3QgY2hhbmdlZCBhY2NvcmRpbmdseSB3aGVuIHNlbmRpbmcgZGlk
U2V0SXRlbSwgZGlkUmVtb3ZlSXRlbSBhbmQgZGlkQ2xlYXIgbWVzc2FnZXMsIHNvIHRoZQorICAg
ICAgICBtZXNzYWdlcyBhcmUgZGlzcGF0Y2hlZCB0byB3cm9uZyBTdG9yYWdlQXJlYU1hcHMuCisK
KyAgICAgICAgU2luY2UgdGhlc2UgbWVzc2FnZXMgYXJlIHJlcGx5IGZvciBzb21lIG1lc3NhZ2Ug
c2VudCBmcm9tIFN0b3JhZ2VBcmVhTWFwIHRvIE5ldHdvcmtTdG9yYWdlTWFuYWdlciAoZS5nLiAK
KyAgICAgICAgZGlkU2V0SXRlbSBpcyByZXBseSBvZiBzZXRJdGVtKSwgd2UgbWF5IGp1c3QgdXNl
IHNlbmRNZXNzYWdlV2l0aEFzeW5jUmVwbHkgd2hlbiBzZW5kaW5nIG9yaWdpbmFsIG1lc3NhZ2Us
IGFuZAorICAgICAgICB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZSBkZXN0aW5hdGlv
bi4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJT
ZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVJdGVtKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNsZWFyKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6c2V0SXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZUFyZWFNYXA6OnNldEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
QXJlYU1hcDo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpj
bGVhcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmg6
IEZvciBhbiBpbnZhbGlkIHJlcGx5LCB0aGUgc2VlZCB3aWxsIGJlIDAsIHNvIGxldCdzIG1ha2Ug
dGhlIHZhbGlkIHNlZWQKKyAgICAgICAgbnVtYmVyIHN0YXJ0IGZyb20gMS4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW46CisKIDIwMjIt
MDEtMjQgIERhdmlkIFF1ZXNhZGEgIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTaW1wbGlmeSBhY2Nlc3NlcyB0byBTeXN0ZW1WZXJzaW9uLnBsaXN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyU2V0LmNwcAppbmRleCAzZmVlZGNkNjg4ZjExMjQxNzEwNDUxOGFiNDUyMjU5ZGQ5OTVhYjEy
Li41OTBkNDczOGI3OGJiZTBmNGQyMjk0MWUwOWU1NTUxNDdkNGVhZGQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TWFuYWdlclNldC5jcHAKQEAgLTM5OSw3ICszOTksNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0
OjpnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50
aQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBcmVhID8gc3RvcmFnZUFyZWEtPml0ZW1z
KCkgOiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpKTsKIH0KIAotdm9pZCBTdG9yYWdlTWFuYWdl
clNldDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRl
bnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3JhZ2VB
cmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9yYWdl
TWFuYWdlclNldDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VB
cmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0
b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBr
ZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90LCBTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC00MTAsMTAgKzQx
MCwxMCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaQogICAgIGlmIChzdG9yYWdlQXJlYSkKICAg
ICAgICAgc3RvcmFnZUFyZWEtPnNldEl0ZW0oY29ubmVjdGlvbi51bmlxdWVJRCgpLCBzdG9yYWdl
QXJlYUltcGxJRCwga2V5LCB2YWx1ZSwgdXJsU3RyaW5nLCBxdW90YUVycm9yKTsKIAotICAgIGNv
bm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZFNldEl0ZW0oc3RvcmFn
ZU1hcFNlZWQsIGtleSwgcXVvdGFFcnJvciksIHN0b3JhZ2VBcmVhSUQpOworICAgIGNvbXBsZXRp
b25IYW5kbGVyKHN0b3JhZ2VNYXBTZWVkLCBrZXksIHF1b3RhRXJyb3IpOwogfSAKIAotdm9pZCBT
dG9yYWdlTWFuYWdlclNldDo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9yYWdlTWFuYWdl
clNldDo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVh
SWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3Jh
Z2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90
LCBTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCkBAIC00MjMsMTAgKzQyMywxMCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0
OjpyZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVu
dAogICAgIGlmIChzdG9yYWdlQXJlYSkKICAgICAgICAgc3RvcmFnZUFyZWEtPnJlbW92ZUl0ZW0o
Y29ubmVjdGlvbi51bmlxdWVJRCgpLCBzdG9yYWdlQXJlYUltcGxJRCwga2V5LCB1cmxTdHJpbmcp
OwogCi0gICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6RGlkUmVt
b3ZlSXRlbShzdG9yYWdlTWFwU2VlZCwga2V5KSwgc3RvcmFnZUFyZWFJRCk7CisgICAgY29tcGxl
dGlvbkhhbmRsZXIoc3RvcmFnZU1hcFNlZWQsIGtleSk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFn
ZXJTZXQ6OmNsZWFyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVu
dGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFy
ZWFJbXBsSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykKK3ZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNsZWFyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFN0b3JhZ2VBcmVhSW1w
bElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBj
b25zdCBTdHJpbmcmIHVybFN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CiAKQEAgLTQzNiw3ICs0MzYsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpjbGVhcihJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllcgogICAgIGlmIChz
dG9yYWdlQXJlYSkKICAgICAgICAgc3RvcmFnZUFyZWEtPmNsZWFyKGNvbm5lY3Rpb24udW5pcXVl
SUQoKSwgc3RvcmFnZUFyZWFJbXBsSUQsIHVybFN0cmluZyk7CiAKLSAgICBjb25uZWN0aW9uLnNl
bmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaWRDbGVhcihzdG9yYWdlTWFwU2VlZCksIHN0
b3JhZ2VBcmVhSUQpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VNYXBTZWVkKTsKIH0K
IAogdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Y2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJ
UEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0b3JhZ2VOYW1lc3Bh
Y2VJZGVudGlmaWVyIGZyb21TdG9yYWdlTmFtZXNwYWNlSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyIHRvU3RvcmFnZU5hbWVzcGFjZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaAppbmRleCBk
NjAyYTVmOTA5OTlmYzdmNDQwZTI0NjhkNDAzMzI2MjVlZDM3MDgzLi5mNDM4N2M5NDQwY2VlMDhl
ZmEwMDA4ZTQ1YzRlZjBlZTE1MTNmYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaApAQCAtODks
OSArODksOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVh
KElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2sm
Jik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYs
IFN0b3JhZ2VBcmVhSWRlbnRpZmllcik7CiAgICAgdm9pZCBnZXRWYWx1ZXMoSVBDOjpDb25uZWN0
aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBHZXRWYWx1ZXNDYWxsYmFjayYmKTsKLSAgICB2
b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9y
YWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsK
LSAgICB2b2lkIHJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlm
aWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKLSAgICB2b2lkIGNs
ZWFyKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJ
bXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nKTsKKyAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFw
U2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90LCBTdHJpbmcsIGJv
b2wpPiYmKTsKKyAgICB2b2lkIHJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFy
ZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdl
TWFwU2VlZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90LCBTdHJpbmcpPiYmKTsKKyAgICB2b2lkIGNsZWFy
KElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBs
SWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAgICAgdm9pZCBjbG9u
ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklE
LCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBmcm9tU3RvcmFnZU5hbWVzcGFjZUlELCBTdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCk7CiAKICAgICBIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U3RvcmFnZU1hbmFnZXI+PiBtX3N0
b3JhZ2VNYW5hZ2VyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgpp
bmRleCA2ZDA2YzFkMmRkNzNkZTU3MWVjYTk2ZjA5MGM1MDg2YTg2YzdjZGI5Li44ZmRhMTRjMjEz
NzM0ODZlNTIwNWY4NWMyNjRlY2YzMzc1ZDc0MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyU2V0Lm1lc3NhZ2VzLmluCkBAIC0yOCw3ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VN
YW5hZ2VyU2V0IHsKICAgICBHZXRWYWx1ZXMoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIg
c3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykgU3luY2hy
b25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAgQ2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZp
ZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2FudHNDb25uZWN0aW9uCiAKLSAgICBTZXRJdGVt
KFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFdlYktpdDo6U3Rv
cmFnZUFyZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgdWludDY0X3Qgc3RvcmFn
ZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgV2Fu
dHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmll
ciBzdG9yYWdlQXJlYUlELCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFn
ZUFyZWFJbXBsSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcg
dXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KLSAgICBDbGVhcihXZWJLaXQ6OlN0b3JhZ2VBcmVh
SWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZp
ZXIgc3RvcmFnZUFyZWFJbXBsSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcgdXJs
U3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBp
bXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmlu
ZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgLT4gKHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBT
dHJpbmcga2V5LCBib29sIHF1b3RhRXhjZXB0aW9uKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAg
ICBSZW1vdmVJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgdWludDY0X3Qg
c3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIC0+ICh1aW50NjRf
dCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAg
Q2xlYXIoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpT
dG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdl
TWFwU2VlZCwgU3RyaW5nIHVybFN0cmluZykgLT4gKHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkKSBB
c3luYyBXYW50c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXgg
ZDk3NGU2ZGIzNTUzODcxNDI1YmFlNjJjMDcyMjU3MjEzMmM2ZDQyNS4uN2NmNTIxMjc2NThjYWY4
NGQ5OWE2ZDRhNTNiMjM2NGIxMjUyNzZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAK
QEAgLTY3OCw3ICs2NzgsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvbmVTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lYwogICAgIH0KIH0KIAot
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBs
SWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmlu
ZyYmIGtleSwgU3RyaW5nJiYgdmFsdWUsIFN0cmluZyYmIHVybFN0cmluZykKK3ZvaWQgTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3Rv
cmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIg
aW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcmJiBrZXksIFN0
cmluZyYmIHZhbHVlLCBTdHJpbmcmJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
dWludDY0X3QsIFN0cmluZywgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTY4OSwyNyArNjg5LDI3IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
U3RvcmFnZUFyZWFJZGVuCiAgICAgICAgICAgICBoYXNRdW90YUVycm9yID0gKHJlc3VsdC5lcnJv
cigpID09IFN0b3JhZ2VFcnJvcjo6UXVvdGFFeGNlZWRlZCk7CiAgICAgfQogCi0gICAgY29ubmVj
dGlvbi5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6RGlkU2V0SXRlbShzdG9yYWdlTWFw
U2VlZCwga2V5LCBoYXNRdW90YUVycm9yKSwgaWRlbnRpZmllcik7CisgICAgY29tcGxldGlvbkhh
bmRsZXIoc3RvcmFnZU1hcFNlZWQsIGtleSwgaGFzUXVvdGFFcnJvcik7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50
aWZpZXIgaW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcmJiBr
ZXksIFN0cmluZyYmIHVybFN0cmluZykKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZW1v
dmVJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIHVp
bnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcmJiBrZXksIFN0cmluZyYmIHVybFN0cmluZywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCwgU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChhdXRv
IHN0b3JhZ2VBcmVhID0gbV9zdG9yYWdlQXJlYVJlZ2lzdHJ5LT5nZXRTdG9yYWdlQXJlYShpZGVu
dGlmaWVyKSkKICAgICAgICAgc3RvcmFnZUFyZWEtPnJlbW92ZUl0ZW0oY29ubmVjdGlvbi51bmlx
dWVJRCgpLCBpbXBsSWRlbnRpZmllciwga2V5LCBXVEZNb3ZlKHVybFN0cmluZykpOwogCi0gICAg
Y29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6RGlkUmVtb3ZlSXRlbShz
dG9yYWdlTWFwU2VlZCwgV1RGTW92ZShrZXkpKSwgaWRlbnRpZmllcik7CisgICAgY29tcGxldGlv
bkhhbmRsZXIoc3RvcmFnZU1hcFNlZWQsIFdURk1vdmUoa2V5KSk7CiB9CiAKLXZvaWQgTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpjbGVhcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3Jh
Z2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGlt
cGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nJiYgdXJsU3RyaW5n
KQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsZWFyKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1w
bElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJp
bmcmJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
aWYgKGF1dG8gc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhUmVnaXN0cnktPmdldFN0b3JhZ2VB
cmVhKGlkZW50aWZpZXIpKQogICAgICAgICBzdG9yYWdlQXJlYS0+Y2xlYXIoY29ubmVjdGlvbi51
bmlxdWVJRCgpLCBpbXBsSWRlbnRpZmllciwgV1RGTW92ZSh1cmxTdHJpbmcpKTsKIAotICAgIGNv
bm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZENsZWFyKHN0b3JhZ2VN
YXBTZWVkKSwgaWRlbnRpZmllcik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZU1hcFNl
ZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApp
bmRleCBhMWYzMDc2NDQ2NzZlOGQ1MzU2NWJmZWM4Mzc5Njc5NmMzNDZhODZiLi4zNTk4NTdkMjcy
MWYyY2I2NmM5Mzg3MDEzODFmNDljOGJmMGU5NjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5o
CkBAIC0xMTQsOSArMTE0LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RUb1N0b3JhZ2VB
cmVhU3luYyhJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTdG9yYWdlVHlwZSwgU3RvcmFnZUFy
ZWFNYXBJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQXJlYUlkZW50
aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwogICAgIHZvaWQg
ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJUEM6OkNv
bm5lY3Rpb24mLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU3RvcmFnZU5hbWVzcGFjZUlk
ZW50aWZpZXIpOwotICAgIHZvaWQgc2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJl
YUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHNlZWQsIFN0
cmluZyYmIGtleSwgU3RyaW5nJiYgdmFsdWUsIFN0cmluZyYmIHVybFN0cmluZyk7Ci0gICAgdm9p
ZCByZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3Rv
cmFnZUFyZWFJbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc2VlZCwgU3RyaW5nJiYga2V5LCBTdHJp
bmcmJiB1cmxTdHJpbmcpOwotICAgIHZvaWQgY2xlYXIoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFn
ZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzZWVk
LCBTdHJpbmcmJiB1cmxTdHJpbmcpOworICAgIHZvaWQgc2V0SXRlbShJUEM6OkNvbm5lY3Rpb24m
LCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIHVpbnQ2
NF90IHNlZWQsIFN0cmluZyYmIGtleSwgU3RyaW5nJiYgdmFsdWUsIFN0cmluZyYmIHVybFN0cmlu
ZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCwgU3RyaW5nLCBib29sKT4mJik7Cisg
ICAgdm9pZCByZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmll
ciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc2VlZCwgU3RyaW5nJiYga2V5
LCBTdHJpbmcmJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QsIFN0
cmluZyk+JiYpOworICAgIHZvaWQgY2xlYXIoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzZWVkLCBTdHJp
bmcmJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKIAog
ICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxTdXNwZW5kYWJsZVdvcmtR
dWV1ZT4gbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
CmluZGV4IGZmYzg2ZjlkMDlmZDQ1OTU1MzVmODc1MDUzOTQ1YTE4YTc3MzFmMDEuLjEzNjQ0ZGQ4
NWU3MDZiZjVlZWJkNzcwYmNiMmI3MGM1MWE4OTRlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtNDQsNyArNDQsNyBAQAogICAgIENvbm5lY3RUb1N0
b3JhZ2VBcmVhU3luYyhXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBXZWJLaXQ6OlN0b3JhZ2VB
cmVhTWFwSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VOYW1lc3Bh
Y2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gb3JpZ2luKSAtPiAoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gaXRlbXMsIHVpbnQ2NF90IG1lc3NhZ2VJZGVudGlm
aWVyKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KICAgICBEaXNjb25uZWN0RnJvbVN0b3Jh
Z2VBcmVhKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIpIFdhbnRzQ29u
bmVjdGlvbgogICAgIENsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoV2ViS2l0OjpTdG9yYWdl
TmFtZXNwYWNlSWRlbnRpZmllciBmcm9tU3RvcmFnZU5hbWVzcGFjZUlELCBXZWJLaXQ6OlN0b3Jh
Z2VOYW1lc3BhY2VJZGVudGlmaWVyIHRvU3RvcmFnZU5hbWVzcGFjZUlEKSBXYW50c0Nvbm5lY3Rp
b24KLSAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgdWludDY0
X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0
cmluZykgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVh
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIg
aW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJp
bmcgdXJsU3RyaW5nKSBXYW50c0Nvbm5lY3Rpb24KLSAgICBDbGVhcihXZWJLaXQ6OlN0b3JhZ2VB
cmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZp
ZXIgaW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcgdXJsU3Ry
aW5nKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBs
SWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB2
YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgLT4gKHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJp
bmcga2V5LCBib29sIHF1b3RhRXhjZXB0aW9uKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBS
ZW1vdmVJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktp
dDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3Rv
cmFnZU1hcFNlZWQsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIC0+ICh1aW50NjRfdCBz
dG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAgQ2xl
YXIoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9y
YWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFw
U2VlZCwgU3RyaW5nIHVybFN0cmluZykgLT4gKHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkKSBBc3lu
YyBXYW50c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAppbmRleCBkZjRjMjZmMmFmZjMyOTFkOTE5
ZGVkNTNkZDc2MjdiNThmMjg5MjkwLi5kMjg3ODA4ODUxN2Q0ZmVlNjIyZGFiNjhkMmQxYzliYjMy
MmI0MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC05NywxMCArOTcsMTcgQEAgdm9pZCBTdG9yYWdlQXJl
YU1hcDo6c2V0SXRlbShGcmFtZSogc291cmNlRnJhbWUsIFN0b3JhZ2VBcmVhSW1wbCogc291cmNl
QXJlYSwgY28KIAogICAgIG1fcGVuZGluZ1ZhbHVlQ2hhbmdlcy5hZGQoa2V5KTsKIAotICAgIGlm
IChtX3JlbW90ZUFyZWFJZGVudGlmaWVyKQotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpTZXRJdGVtKCptX3JlbW90ZUFyZWFJZGVudGlm
aWVyLCBzb3VyY2VBcmVhLT5pZGVudGlmaWVyKCksIG1fY3VycmVudFNlZWQsIGtleSwgdmFsdWUs
IHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSksIDApOwotICAgIGVsc2UK
KyAgICBpZiAoIW1fcmVtb3RlQXJlYUlkZW50aWZpZXIpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoU3RvcmFnZSwgIlN0b3JhZ2VBcmVhTWFwOjpzZXRJdGVtIGZhaWxlZCBiZWNhdXNlIHN0
b3JhZ2UgbWFwIElEIGlzIGludmFsaWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAg
ICAgCisgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSh1
aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSwgYm9vbCBxdW90YUV4Y2VwdGlvbikg
bXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5k
aWRTZXRJdGVtKHN0b3JhZ2VNYXBTZWVkLCBrZXksIHF1b3RhRXhjZXB0aW9uKTsKKyAgICB9Owor
ICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CisgICAgY29ubmVjdGlvbi5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6U2V0SXRlbSgq
bV9yZW1vdGVBcmVhSWRlbnRpZmllciwgc291cmNlQXJlYS0+aWRlbnRpZmllcigpLCBtX2N1cnJl
bnRTZWVkLCBrZXksIHZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5n
KCkpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFNYXA6OnJlbW92
ZUl0ZW0oV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJj
ZUFyZWEsIGNvbnN0IFN0cmluZyYga2V5KQpAQCAtMTE2LDEwICsxMjMsMTYgQEAgdm9pZCBTdG9y
YWdlQXJlYU1hcDo6cmVtb3ZlSXRlbShXZWJDb3JlOjpGcmFtZSogc291cmNlRnJhbWUsIFN0b3Jh
Z2VBcmVhSW1wbCogc28KIAogICAgIG1fcGVuZGluZ1ZhbHVlQ2hhbmdlcy5hZGQoa2V5KTsKIAot
ICAgIGlmIChtX3JlbW90ZUFyZWFJZGVudGlmaWVyKQotICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVJdGVtKCptX3JlbW90ZUFy
ZWFJZGVudGlmaWVyLCBzb3VyY2VBcmVhLT5pZGVudGlmaWVyKCksIG1fY3VycmVudFNlZWQsIGtl
eSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKSwgMCk7Ci0gICAgZWxz
ZQorICAgIGlmICghbV9yZW1vdGVBcmVhSWRlbnRpZmllcikgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihTdG9yYWdlLCAiU3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0ZW0gZmFpbGVkIGJlY2F1
c2Ugc3RvcmFnZSBtYXAgSUQgaXMgaW52YWxpZCIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSh1aW50
NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3
ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRSZW1vdmVJdGVtKHN0b3JhZ2VNYXBT
ZWVkLCBrZXkpOworICAgIH07CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVJdGVtKCptX3JlbW90ZUFyZWFJ
ZGVudGlmaWVyLCBzb3VyY2VBcmVhLT5pZGVudGlmaWVyKCksIG1fY3VycmVudFNlZWQsIGtleSwg
c291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpjbGVhcihXZWJDb3JlOjpGcmFtZSogc291
cmNlRnJhbWUsIFN0b3JhZ2VBcmVhSW1wbCogc291cmNlQXJlYSkKQEAgLTEzMCwxMCArMTQzLDE2
IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNsZWFyKFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFt
ZSwgU3RvcmFnZUFyZWFJbXBsKiBzb3VyY2VBCiAgICAgbV9oYXNQZW5kaW5nQ2xlYXIgPSB0cnVl
OwogICAgIG1fbWFwID0gbWFrZVVuaXF1ZTxTdG9yYWdlTWFwPihtX3F1b3RhSW5CeXRlcyk7CiAK
LSAgICBpZiAobV9yZW1vdGVBcmVhSWRlbnRpZmllcikKLSAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xlYXIoKm1fcmVtb3RlQXJlYUlk
ZW50aWZpZXIsIHNvdXJjZUFyZWEtPmlkZW50aWZpZXIoKSwgbV9jdXJyZW50U2VlZCwgc291cmNl
RnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKSwgMCk7Ci0gICAgZWxzZQorICAgIGlm
ICghbV9yZW1vdGVBcmVhSWRlbnRpZmllcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihT
dG9yYWdlLCAiU3RvcmFnZUFyZWFNYXA6OmNsZWFyIGZhaWxlZCBiZWNhdXNlIHN0b3JhZ2UgbWFw
IElEIGlzIGludmFsaWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2Fs
bGJhY2sgPSBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0odWludDY0X3Qgc3RvcmFnZU1h
cFNlZWQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFr
VGhpcy0+ZGlkQ2xlYXIoc3RvcmFnZU1hcFNlZWQpOworICAgIH07CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDbGVh
cigqbV9yZW1vdGVBcmVhSWRlbnRpZmllciwgc291cmNlQXJlYS0+aWRlbnRpZmllcigpLCBtX2N1
cnJlbnRTZWVkLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CiAKIGJvb2wgU3RvcmFnZUFyZWFNYXA6OmNvbnRhaW5zKGNvbnN0
IFN0cmluZyYga2V5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhTWFwLmgKaW5kZXggYzYyNzFkOWY3OWVjYmFjM2U0ZjhmOGI4N2Y4N2Nj
MDRlZDNiZjgyZS4uOTY1M2Y3NjZmZDM2YTVmNjI4ZjIzZmQ3OTExZWVlZjU5MTZjOGQ1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFN
YXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YU1hcC5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6U3RvcmFnZU1hcD4gbV9tYXA7CiAgICAgc3RkOjpvcHRpb25hbDxTdG9yYWdlQXJl
YUlkZW50aWZpZXI+IG1fcmVtb3RlQXJlYUlkZW50aWZpZXI7CiAgICAgSGFzaENvdW50ZWRTZXQ8
U3RyaW5nPiBtX3BlbmRpbmdWYWx1ZUNoYW5nZXM7Ci0gICAgdWludDY0X3QgbV9jdXJyZW50U2Vl
ZCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX2N1cnJlbnRTZWVkIHsgMSB9OwogICAgIHVuc2lnbmVk
IG1fcXVvdGFJbkJ5dGVzOwogICAgIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIG1fdHlwZTsKICAgICB1
aW50NjRfdCBtX3VzZUNvdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5tZXNzYWdlcy5pbgppbmRl
eCA2ZGVlOGU4ZTM1YWI1YjY4ODY2ZjIyMDBhNzA2YTgyOTM3ZmRiY2FhLi42MGE2MzQ3ODM2MWQ3
YTBhNjI5N2RmNjRlZWNiY2RhNTcxMzNhOGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5tZXNzYWdlcy5p
bgpAQCAtMjEsMTAgKzIxLDYgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gU3RvcmFn
ZUFyZWFNYXAgTm90UmVmQ291bnRlZCB7Ci0gICAgRGlkU2V0SXRlbSh1aW50NjRfdCBzdG9yYWdl
TWFwU2VlZCwgU3RyaW5nIGtleSwgYm9vbCBxdW90YUV4Y2VwdGlvbikKLSAgICBEaWRSZW1vdmVJ
dGVtKHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5KQotICAgIERpZENsZWFyKHVp
bnQ2NF90IHN0b3JhZ2VNYXBTZWVkKQotCiAgICAgRGlzcGF0Y2hTdG9yYWdlRXZlbnQoc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXI+IHN0b3JhZ2VBcmVhSW1w
bElELCBTdHJpbmcga2V5LCBTdHJpbmcgb2xkVmFsdWUsIFN0cmluZyBuZXdWYWx1ZSwgU3RyaW5n
IHVybFN0cmluZywgdWludDY0X3QgbWVzc2FnZUlkZW50aWZpZXIpCiAgICAgQ2xlYXJDYWNoZSh1
aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449902</attachid>
            <date>2022-01-25 00:20:05 -0800</date>
            <delta_ts>2022-01-25 08:34:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235553-20220125002004.patch</filename>
            <type>text/plain</type>
            <size>21508</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY2NDFmYTgzMDZjOWVjYTJm
M2QzY2YzODA4NzZjYmJiZTdhMDE3NzAuLmRmODA1Mjk5Zjc1MWM3MjZmNDUyZGQ4ZjAxNmIyNDk0
N2U1MjVlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDEtMjUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbiAocjIzNTIzNik6
IE5ldHdvcmtTdG9yYWdlTWFuYWdlciBzZW5kcyBtZXNzYWdlcyB0byB3cm9uZyBTdG9yYWdlQXJl
YU1hcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1
NTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3RhcnRl
ZCBmcm9tIHIyMzUyMzYsIE5ldHdvcmtTdG9yYWdlTWFuYWdlciB1c2VzIFN0b3JhZ2VBcmVhTWFw
SWRlbnRpZmllciBpbnN0ZWFkIG9mIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBhcworICAgICAgICB0
aGUgbWVzc2FnZSBkZXN0aW5hdGlvbiAoYXMgd2ViIHByb2Nlc3Mgc3RvcmVzIFN0b3JhZ2VBcmVh
TWFwIGJ5IFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllcikuIEhvd2V2ZXIsIHRoZQorICAgICAgICBk
ZXN0aW5hdGlvbiBpcyBub3QgY2hhbmdlZCBhY2NvcmRpbmdseSB3aGVuIHNlbmRpbmcgZGlkU2V0
SXRlbSwgZGlkUmVtb3ZlSXRlbSBhbmQgZGlkQ2xlYXIgbWVzc2FnZXMsIHNvIHRoZQorICAgICAg
ICBtZXNzYWdlcyBhcmUgZGlzcGF0Y2hlZCB0byB3cm9uZyBTdG9yYWdlQXJlYU1hcHMuCisKKyAg
ICAgICAgU2luY2UgdGhlc2UgbWVzc2FnZXMgYXJlIHJlcGx5IGZvciBzb21lIG1lc3NhZ2Ugc2Vu
dCBmcm9tIFN0b3JhZ2VBcmVhTWFwIHRvIE5ldHdvcmtTdG9yYWdlTWFuYWdlciAoZS5nLiAKKyAg
ICAgICAgZGlkU2V0SXRlbSBpcyByZXBseSBvZiBzZXRJdGVtKSwgd2UgbWF5IGp1c3QgdXNlIHNl
bmRNZXNzYWdlV2l0aEFzeW5jUmVwbHkgd2hlbiBzZW5kaW5nIG9yaWdpbmFsIG1lc3NhZ2UsIGFu
ZAorICAgICAgICB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZSBkZXN0aW5hdGlvbi4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNsZWFyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6c2V0SXRlbSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZUFyZWFNYXA6OnNldEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcDo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpjbGVh
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmlu
OgorCiAyMDIyLTAxLTI0ICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+
CiAKICAgICAgICAgU2ltcGxpZnkgYWNjZXNzZXMgdG8gU3lzdGVtVmVyc2lvbi5wbGlzdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTWFuYWdlclNldC5jcHAKaW5kZXggM2ZlZWRjZDY4OGYxMTI0MTcxMDQ1MThhYjQ1MjI1
OWRkOTk1YWIxMi4uYTI1MjgwNDRlZWMwODdjZjcxN2UyODYzZmExNjUzYWExNTBiZTcxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCkBAIC0zOTksNyArMzk5LDcgQEAgdm9pZCBTdG9yYWdl
TWFuYWdlclNldDo6Z2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFn
ZUFyZWFJZGVudGkKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYSA/IHN0b3JhZ2VB
cmVhLT5pdGVtcygpIDogSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4oKSk7CiB9CiAKLXZvaWQgU3Rv
cmFnZU1hbmFnZXJTZXQ6OnNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9y
YWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
ciBzdG9yYWdlQXJlYUltcGxJRCwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3Zv
aWQgU3RvcmFnZU1hbmFnZXJTZXQ6OnNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgU3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC00MTAsMTAgKzQxMCwxMCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpz
ZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaQog
ICAgIGlmIChzdG9yYWdlQXJlYSkKICAgICAgICAgc3RvcmFnZUFyZWEtPnNldEl0ZW0oY29ubmVj
dGlvbi51bmlxdWVJRCgpLCBzdG9yYWdlQXJlYUltcGxJRCwga2V5LCB2YWx1ZSwgdXJsU3RyaW5n
LCBxdW90YUVycm9yKTsKIAotICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFy
ZWFNYXA6OkRpZFNldEl0ZW0oc3RvcmFnZU1hcFNlZWQsIGtleSwgcXVvdGFFcnJvciksIHN0b3Jh
Z2VBcmVhSUQpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHF1b3RhRXJyb3IpOwogfSAKIAotdm9p
ZCBTdG9yYWdlTWFuYWdlclNldDo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQordm9pZCBTdG9yYWdlTWFu
YWdlclNldDo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VB
cmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0
b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNDIzLDEwICs0MjMsMTAgQEAgdm9p
ZCBTdG9yYWdlTWFuYWdlclNldDo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFN0b3JhZ2VBcmVhSWRlbnQKICAgICBpZiAoc3RvcmFnZUFyZWEpCiAgICAgICAgIHN0b3Jh
Z2VBcmVhLT5yZW1vdmVJdGVtKGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc3RvcmFnZUFyZWFJbXBs
SUQsIGtleSwgdXJsU3RyaW5nKTsKIAotICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3Rv
cmFnZUFyZWFNYXA6OkRpZFJlbW92ZUl0ZW0oc3RvcmFnZU1hcFNlZWQsIGtleSksIHN0b3JhZ2VB
cmVhSUQpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFn
ZXJTZXQ6OmNsZWFyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVu
dGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFy
ZWFJbXBsSUQsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykKK3ZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNsZWFyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFN0b3JhZ2VBcmVhSW1w
bElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQzNiw3ICs0MzYsNyBAQCB2b2lkIFN0b3Jh
Z2VNYW5hZ2VyU2V0OjpjbGVhcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VB
cmVhSWRlbnRpZmllcgogICAgIGlmIChzdG9yYWdlQXJlYSkKICAgICAgICAgc3RvcmFnZUFyZWEt
PmNsZWFyKGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc3RvcmFnZUFyZWFJbXBsSUQsIHVybFN0cmlu
Zyk7CiAKLSAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VBcmVhTWFwOjpEaWRD
bGVhcihzdG9yYWdlTWFwU2VlZCksIHN0b3JhZ2VBcmVhSUQpOworICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiB9CiAKIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNsb25lU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoSVBDOjpDb25uZWN0aW9uJiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllciBmcm9tU3RvcmFnZU5hbWVzcGFjZUlELCBTdG9yYWdlTmFt
ZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0
LmgKaW5kZXggZDYwMmE1ZjkwOTk5ZmM3ZjQ0MGUyNDY4ZDQwMzMyNjI1ZWQzNzA4My4uYWMxNWZl
ZWQ0NjAyMzU1OWFjMzY4NTI1OWYzMDdlNTZiNTIzYjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0
LmgKQEAgLTg5LDkgKzg5LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RUb1Nlc3Npb25T
dG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Npb25JRCwgU3RvcmFnZU5hbWVz
cGFjZUlkZW50aWZpZXIsIFNlY3VyaXR5T3JpZ2luRGF0YSYmLCBDb25uZWN0VG9TdG9yYWdlQXJl
YUNhbGxiYWNrJiYpOwogICAgIHZvaWQgZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNv
bm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0VmFsdWVzKElQ
Qzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgR2V0VmFsdWVzQ2FsbGJhY2sm
Jik7Ci0gICAgdm9pZCBzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRp
ZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFnZU1hcFNlZWQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVy
bFN0cmluZyk7Ci0gICAgdm9pZCByZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VB
cmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc3RvcmFn
ZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7Ci0g
ICAgdm9pZCBjbGVhcihJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7CisgICAgdm9pZCBzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYsIFN0
b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlbW92ZUl0ZW0oSVBD
OjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhcihJUEM6OkNvbm5lY3Rpb24m
LCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgY2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNl
c3Npb25JRCwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJ
RCwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgdG9TdG9yYWdlTmFtZXNwYWNlSUQpOwogCiAg
ICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFN0b3JhZ2VNYW5hZ2Vy
Pj4gbV9zdG9yYWdlTWFuYWdlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2Fn
ZXMuaW4KaW5kZXggNmQwNmMxZDJkZDczZGU1NzFlY2E5NmYwOTBjNTA4NmE4NmM3Y2RiOS4uMDI0
OTVkMjU2NjBkYjFmMzRmNTJhNDcwNWM3YzRhMzAzYjdjNmVlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBT
dG9yYWdlTWFuYWdlclNldCB7CiAgICAgR2V0VmFsdWVzKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVu
dGlmaWVyIHN0b3JhZ2VBcmVhSUQpIC0+IChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YWx1ZXMp
IFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgogICAgIENsb25lU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyIGZyb21TdG9yYWdlTmFtZXNwYWNlSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFj
ZUlkZW50aWZpZXIgdG9TdG9yYWdlTmFtZXNwYWNlSUQpIFdhbnRzQ29ubmVjdGlvbgogCi0gICAg
U2V0SXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBXZWJL
aXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIHVpbnQ2NF90
IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUsIFN0cmluZyB1cmxTdHJp
bmcpIFdhbnRzQ29ubmVjdGlvbgotICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlk
ZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVy
IHN0b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSwg
U3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCi0gICAgQ2xlYXIoV2ViS2l0OjpTdG9y
YWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3Ry
aW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCisgICAgU2V0SXRlbShXZWJLaXQ6OlN0b3Jh
Z2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50
aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVy
bFN0cmluZykgLT4gKGJvb2wgcXVvdGFFeGNlcHRpb24pIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgor
ICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBTdHJpbmcg
a2V5LCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBD
bGVhcihXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyB1cmxTdHJpbmcp
IC0+ICgpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCBkOTc0ZTZkYjM1NTM4NzE0MjViYWU2MmMwNzIyNTcyMTMyYzZkNDI1Li45MGZhMWRm
YWU4Yzg2OWJlNWJmMmM1NGNlMmYxNzgxYzI3MjgwOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtNjc4LDcgKzY3OCw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
bG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjCiAgICAg
fQogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6c2V0SXRlbShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdG9yYWdl
QXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFwU2Vl
ZCwgU3RyaW5nJiYga2V5LCBTdHJpbmcmJiB2YWx1ZSwgU3RyaW5nJiYgdXJsU3RyaW5nKQordm9p
ZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5nJiYga2V5LCBTdHJpbmcmJiB2YWx1ZSwgU3Ry
aW5nJiYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC02ODks
MjcgKzY4OSwyNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6c2V0SXRlbShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbgogICAgICAgICAgICAgaGFzUXVv
dGFFcnJvciA9IChyZXN1bHQuZXJyb3IoKSA9PSBTdG9yYWdlRXJyb3I6OlF1b3RhRXhjZWVkZWQp
OwogICAgIH0KIAotICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6
OkRpZFNldEl0ZW0oc3RvcmFnZU1hcFNlZWQsIGtleSwgaGFzUXVvdGFFcnJvciksIGlkZW50aWZp
ZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhc1F1b3RhRXJyb3IpOwogfQogCi12b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyIGltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nJiYg
a2V5LCBTdHJpbmcmJiB1cmxTdHJpbmcpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVt
b3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBT
dHJpbmcmJiBrZXksIFN0cmluZyYmIHVybFN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAgICAgaWYgKGF1dG8gc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhUmVnaXN0cnktPmdl
dFN0b3JhZ2VBcmVhKGlkZW50aWZpZXIpKQotICAgICAgICBzdG9yYWdlQXJlYS0+cmVtb3ZlSXRl
bShjb25uZWN0aW9uLnVuaXF1ZUlEKCksIGltcGxJZGVudGlmaWVyLCBrZXksIFdURk1vdmUodXJs
U3RyaW5nKSk7CisgICAgICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVJdGVtKGNvbm5lY3Rpb24udW5p
cXVlSUQoKSwgaW1wbElkZW50aWZpZXIsIFdURk1vdmUoa2V5KSwgV1RGTW92ZSh1cmxTdHJpbmcp
KTsKIAotICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZFJl
bW92ZUl0ZW0oc3RvcmFnZU1hcFNlZWQsIFdURk1vdmUoa2V5KSksIGlkZW50aWZpZXIpOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
bGVhcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCB1aW50
NjRfdCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nJiYgdXJsU3RyaW5nKQordm9pZCBOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6OmNsZWFyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFy
ZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElk
ZW50aWZpZXIsIFN0cmluZyYmIHVybFN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CiAgICAgaWYgKGF1dG8gc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhUmVnaXN0cnktPmdldFN0
b3JhZ2VBcmVhKGlkZW50aWZpZXIpKQogICAgICAgICBzdG9yYWdlQXJlYS0+Y2xlYXIoY29ubmVj
dGlvbi51bmlxdWVJRCgpLCBpbXBsSWRlbnRpZmllciwgV1RGTW92ZSh1cmxTdHJpbmcpKTsKIAot
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6OkRpZENsZWFyKHN0
b3JhZ2VNYXBTZWVkKSwgaWRlbnRpZmllcik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggYTFm
MzA3NjQ0Njc2ZThkNTM1NjViZmVjODM3OTY3OTZjMzQ2YTg2Yi4uMTVjMDM3MmU2NmE3ZjYyODQ5
OTI3ZjFjMzdmMTZhNjk1ODdmNDUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMTE0
LDkgKzExNCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMo
SVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VBcmVhTWFwSWRl
bnRpZmllciwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiwgdWludDY0X3QpPiYmKTsKICAgICB2b2lkIGRpc2Nvbm5l
Y3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVy
KTsKICAgICB2b2lkIGNsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSVBDOjpDb25uZWN0aW9u
JiwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
KTsKLSAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlm
aWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzZWVkLCBTdHJpbmcmJiBr
ZXksIFN0cmluZyYmIHZhbHVlLCBTdHJpbmcmJiB1cmxTdHJpbmcpOwotICAgIHZvaWQgcmVtb3Zl
SXRlbShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIsIHVpbnQ2NF90IHNlZWQsIFN0cmluZyYmIGtleSwgU3RyaW5nJiYgdXJs
U3RyaW5nKTsKLSAgICB2b2lkIGNsZWFyKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRl
bnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgdWludDY0X3Qgc2VlZCwgU3RyaW5n
JiYgdXJsU3RyaW5nKTsKKyAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFn
ZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCBTdHJpbmcmJiBrZXks
IFN0cmluZyYmIHZhbHVlLCBTdHJpbmcmJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mLCBTdG9y
YWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIFN0cmluZyYmIGtl
eSwgU3RyaW5nJiYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAg
IHZvaWQgY2xlYXIoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9y
YWdlQXJlYUltcGxJZGVudGlmaWVyLCBTdHJpbmcmJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBS
ZWY8U3VzcGVuZGFibGVXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBmZmM4NmY5ZDA5ZmQ0NTk1NTM1Zjg3NTA1Mzk0NWEx
OGE3NzMxZjAxLi41MGI5NjcwMWIwNzBkZDVjMzI3MTFkYjE0Mjc5MzAzZmU2NTIxMWI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTQ0LDcgKzQ0LDcg
QEAKICAgICBDb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMoV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlw
ZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2Vi
S2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50
NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAg
RGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBp
ZGVudGlmaWVyKSBXYW50c0Nvbm5lY3Rpb24KICAgICBDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3Bh
Y2VJRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3Bh
Y2VJRCkgV2FudHNDb25uZWN0aW9uCi0gICAgU2V0SXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1w
bElkZW50aWZpZXIsIHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkLCBTdHJpbmcga2V5LCBTdHJpbmcg
dmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpIFdhbnRzQ29ubmVjdGlvbgotICAgIFJlbW92ZUl0ZW0o
V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdl
QXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFwU2Vl
ZCwgU3RyaW5nIGtleSwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCi0gICAgQ2xl
YXIoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9y
YWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCB1aW50NjRfdCBzdG9yYWdlTWFw
U2VlZCwgU3RyaW5nIHVybFN0cmluZykgV2FudHNDb25uZWN0aW9uCisgICAgU2V0SXRlbShXZWJL
aXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwg
U3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wgcXVvdGFFeGNlcHRpb24pIEFzeW5jIFdhbnRzQ29u
bmVjdGlvbgorICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVy
LCBTdHJpbmcga2V5LCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rp
b24KKyAgICBDbGVhcihXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyB1
cmxTdHJpbmcpIC0+ICgpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCmluZGV4
IGRmNGMyNmYyYWZmMzI5MWQ5MTlkZWQ1M2RkNzYyN2I1OGYyODkyOTAuLjVhNDE3YzRmYzFlZTQ2
ZmI2NWI4NjE1MDJjZTZjYmFmZWJhZWY0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKQEAgLTk3LDEwICs5Nywx
NyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpzZXRJdGVtKEZyYW1lKiBzb3VyY2VGcmFtZSwgU3Rv
cmFnZUFyZWFJbXBsKiBzb3VyY2VBcmVhLCBjbwogCiAgICAgbV9wZW5kaW5nVmFsdWVDaGFuZ2Vz
LmFkZChrZXkpOwogCi0gICAgaWYgKG1fcmVtb3RlQXJlYUlkZW50aWZpZXIpCi0gICAgICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlNldEl0ZW0o
Km1fcmVtb3RlQXJlYUlkZW50aWZpZXIsIHNvdXJjZUFyZWEtPmlkZW50aWZpZXIoKSwgbV9jdXJy
ZW50U2VlZCwga2V5LCB2YWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmlu
ZygpKSwgMCk7Ci0gICAgZWxzZQorICAgIGlmICghbV9yZW1vdGVBcmVhSWRlbnRpZmllcikgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTdG9yYWdlLCAiU3RvcmFnZUFyZWFNYXA6OnNldEl0
ZW0gZmFpbGVkIGJlY2F1c2Ugc3RvcmFnZSBtYXAgSUQgaXMgaW52YWxpZCIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICAgICAKKyAgICBhdXRvIGNhbGxiYWNrID0gW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHNlZWQgPSBtX2N1cnJlbnRTZWVkLCBrZXldKGJvb2wgaGFzUXVv
dGFFeGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAg
ICB3ZWFrVGhpcy0+ZGlkU2V0SXRlbShzZWVkLCBrZXksIGhhc1F1b3RhRXhjZXB0aW9uKTsKKyAg
ICB9OworICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CisgICAgY29ubmVjdGlv
bi5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6U2V0
SXRlbSgqbV9yZW1vdGVBcmVhSWRlbnRpZmllciwgc291cmNlQXJlYS0+aWRlbnRpZmllcigpLCBr
ZXksIHZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0ZW0oV2Vi
Q29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFyZWEsIGNv
bnN0IFN0cmluZyYga2V5KQpAQCAtMTE2LDEwICsxMjMsMTYgQEAgdm9pZCBTdG9yYWdlQXJlYU1h
cDo6cmVtb3ZlSXRlbShXZWJDb3JlOjpGcmFtZSogc291cmNlRnJhbWUsIFN0b3JhZ2VBcmVhSW1w
bCogc28KIAogICAgIG1fcGVuZGluZ1ZhbHVlQ2hhbmdlcy5hZGQoa2V5KTsKIAotICAgIGlmICht
X3JlbW90ZUFyZWFJZGVudGlmaWVyKQotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVJdGVtKCptX3JlbW90ZUFyZWFJZGVudGlm
aWVyLCBzb3VyY2VBcmVhLT5pZGVudGlmaWVyKCksIG1fY3VycmVudFNlZWQsIGtleSwgc291cmNl
RnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKSwgMCk7Ci0gICAgZWxzZQorICAgIGlm
ICghbV9yZW1vdGVBcmVhSWRlbnRpZmllcikgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihT
dG9yYWdlLCAiU3RvcmFnZUFyZWFNYXA6OnJlbW92ZUl0ZW0gZmFpbGVkIGJlY2F1c2Ugc3RvcmFn
ZSBtYXAgSUQgaXMgaW52YWxpZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBzZWVkID0gbV9jdXJy
ZW50U2VlZCwga2V5XSgpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAg
ICAgICB3ZWFrVGhpcy0+ZGlkUmVtb3ZlSXRlbShzZWVkLCBrZXkpOworICAgIH07CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpSZW1vdmVJdGVtKCptX3JlbW90ZUFyZWFJZGVudGlmaWVyLCBzb3VyY2VBcmVhLT5pZGVu
dGlmaWVyKCksIGtleSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKSwg
V1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpjbGVhcihXZWJD
b3JlOjpGcmFtZSogc291cmNlRnJhbWUsIFN0b3JhZ2VBcmVhSW1wbCogc291cmNlQXJlYSkKQEAg
LTEzMCwxMCArMTQzLDE2IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNsZWFyKFdlYkNvcmU6OkZy
YW1lKiBzb3VyY2VGcmFtZSwgU3RvcmFnZUFyZWFJbXBsKiBzb3VyY2VBCiAgICAgbV9oYXNQZW5k
aW5nQ2xlYXIgPSB0cnVlOwogICAgIG1fbWFwID0gbWFrZVVuaXF1ZTxTdG9yYWdlTWFwPihtX3F1
b3RhSW5CeXRlcyk7CiAKLSAgICBpZiAobV9yZW1vdGVBcmVhSWRlbnRpZmllcikKLSAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xlYXIo
Km1fcmVtb3RlQXJlYUlkZW50aWZpZXIsIHNvdXJjZUFyZWEtPmlkZW50aWZpZXIoKSwgbV9jdXJy
ZW50U2VlZCwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKSwgMCk7Ci0g
ICAgZWxzZQorICAgIGlmICghbV9yZW1vdGVBcmVhSWRlbnRpZmllcikgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihTdG9yYWdlLCAiU3RvcmFnZUFyZWFNYXA6OmNsZWFyIGZhaWxlZCBiZWNh
dXNlIHN0b3JhZ2UgbWFwIElEIGlzIGludmFsaWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgc2Vl
ZCA9IG1fY3VycmVudFNlZWRdKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAg
ICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbGVhcihzZWVkKTsKKyAgICB9OworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
Q2xlYXIoKm1fcmVtb3RlQXJlYUlkZW50aWZpZXIsIHNvdXJjZUFyZWEtPmlkZW50aWZpZXIoKSwg
c291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCiBib29sIFN0b3JhZ2VBcmVhTWFwOjpjb250YWlucyhjb25zdCBTdHJpbmcmIGtl
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VBcmVhTWFwLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYU1hcC5oCmluZGV4IGM2MjcxZDlmNzllY2JhYzNlNGY4ZjhiODdmODdjYzA0ZWQzYmY4MmUu
Ljk2NTNmNzY2ZmQzNmE1ZjYyOGYyM2ZkNzkxMWVlZWY1OTE2YzhkNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaApAQCAt
MTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlN0
b3JhZ2VNYXA+IG1fbWFwOwogICAgIHN0ZDo6b3B0aW9uYWw8U3RvcmFnZUFyZWFJZGVudGlmaWVy
PiBtX3JlbW90ZUFyZWFJZGVudGlmaWVyOwogICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gbV9w
ZW5kaW5nVmFsdWVDaGFuZ2VzOwotICAgIHVpbnQ2NF90IG1fY3VycmVudFNlZWQgeyAwIH07Cisg
ICAgdWludDY0X3QgbV9jdXJyZW50U2VlZCB7IDEgfTsKICAgICB1bnNpZ25lZCBtX3F1b3RhSW5C
eXRlczsKICAgICBXZWJDb3JlOjpTdG9yYWdlVHlwZSBtX3R5cGU7CiAgICAgdWludDY0X3QgbV91
c2VDb3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VBcmVhTWFwLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4KaW5kZXggNmRlZThlOGUz
NWFiNWI2ODg2NmYyMjAwYTcwNmE4MjkzN2ZkYmNhYS4uNjBhNjM0NzgzNjFkN2EwYTYyOTdkZjY0
ZWVjYmNkYTU3MTMzYThmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAubWVzc2FnZXMuaW4KQEAgLTIxLDEw
ICsyMSw2IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFN0b3JhZ2VBcmVhTWFwIE5v
dFJlZkNvdW50ZWQgewotICAgIERpZFNldEl0ZW0odWludDY0X3Qgc3RvcmFnZU1hcFNlZWQsIFN0
cmluZyBrZXksIGJvb2wgcXVvdGFFeGNlcHRpb24pCi0gICAgRGlkUmVtb3ZlSXRlbSh1aW50NjRf
dCBzdG9yYWdlTWFwU2VlZCwgU3RyaW5nIGtleSkKLSAgICBEaWRDbGVhcih1aW50NjRfdCBzdG9y
YWdlTWFwU2VlZCkKLQogICAgIERpc3BhdGNoU3RvcmFnZUV2ZW50KHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyPiBzdG9yYWdlQXJlYUltcGxJRCwgU3RyaW5n
IGtleSwgU3RyaW5nIG9sZFZhbHVlLCBTdHJpbmcgbmV3VmFsdWUsIFN0cmluZyB1cmxTdHJpbmcs
IHVpbnQ2NF90IG1lc3NhZ2VJZGVudGlmaWVyKQogICAgIENsZWFyQ2FjaGUodWludDY0X3QgbWVz
c2FnZUlkZW50aWZpZXIpCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>