<?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>226589</bug_id>
          
          <creation_ts>2021-06-03 10:34:04 -0700</creation_ts>
          <short_desc>Make WebIDBServer use WorkQueue instead of Thread</short_desc>
          <delta_ts>2021-06-03 23:36:21 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1766434</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-06-03 10:34:04 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766436</commentid>
    <comment_count>1</comment_count>
      <attachid>430480</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-06-03 10:46:06 -0700</bug_when>
    <thetext>Created attachment 430480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766476</commentid>
    <comment_count>2</comment_count>
      <attachid>430480</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-03 12:26:37 -0700</bug_when>
    <thetext>Comment on attachment 430480
Patch

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

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:67
&gt; +        auto origins = m_server-&gt;getOrigins();

Why?

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:-394
&gt; -    tryClose();

Why don&apos;t we call this anymore? This is the kind of thing function-level changelogs are for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766486</commentid>
    <comment_count>3</comment_count>
      <attachid>430480</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-06-03 12:53:17 -0700</bug_when>
    <thetext>Comment on attachment 430480
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:67
&gt;&gt; +        auto origins = m_server-&gt;getOrigins();
&gt; 
&gt; Why?

Oops should remove

&gt;&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:-394
&gt;&gt; -    tryClose();
&gt; 
&gt; Why don&apos;t we call this anymore? This is the kind of thing function-level changelogs are for.

This was added to aggressively destroy WebIDBServer to ensure thread exits. It&apos;s possible a new connection is immediately created (web page is reloaded after web process crashes) after we close WebIDBServer, and we will create a new WebIDBServer. In this case both servers may access the same database on different work queues, unless we wait until the old WebIDBServer is destroyed before creating new one. To make things easy, we can just keep the WebIDBServer until session is destroyed.

Will add to changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766518</commentid>
    <comment_count>4</comment_count>
      <attachid>430498</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-06-03 14:23:53 -0700</bug_when>
    <thetext>Created attachment 430498
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766558</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-03 15:29:46 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 430498 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766679</commentid>
    <comment_count>6</comment_count>
      <attachid>430546</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-06-03 23:08:09 -0700</bug_when>
    <thetext>Created attachment 430546
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766689</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-03 23:35:45 -0700</bug_when>
    <thetext>Committed r278449 (238469@main): &lt;https://commits.webkit.org/238469@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430546.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766690</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-03 23:36:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/78856484&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430480</attachid>
            <date>2021-06-03 10:46:06 -0700</date>
            <delta_ts>2021-06-03 14:23:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226589-20210603104605.patch</filename>
            <type>text/plain</type>
            <size>14879</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ1ZjQ4OTA4OWExNTYyN2Fm
MmQ1MmFmZDRjZWViMDFkMzE3YjYwYTQuLjEzZjg2YWJhMTdkN2ZhOTNmYmRiY2U2MDg4ZWJlODM2
NDY1ZTA2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDYtMDMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBXZWJJREJTZXJ2ZXIgdXNl
IFdvcmtRdWV1ZSBpbnN0ZWFkIG9mIFRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtYXRjaGVzIG90aGVyIHN0b3JhZ2UgbWFuYWdlciBj
bGFzc2VzIGFuZCBtYWtlcyBtYW5hZ2VtZW50IG9mIHRocmVhZCBsaWZldGltZSBtdWNoIGVhc2ll
ci4gV2UgdXNlZCB0bworICAgICAgICBkZXN0cm95IFdlYklEQlNlcnZlciBhZ2dyZXNzaXZlbHkg
dG8gbWFrZSBzdXJlIHRocmVhZCBleGl0cywgYW5kIGl0IGNvbXBsaWNhdGVkIHRoaW5ncy4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQlNlcnZlcjo6V2ViSURCU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVy
Ojp+V2ViSURCU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpnZXRPcmln
aW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFi
YXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNl
cnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjphZGRD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpyZW1vdmVDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpwb3N0VGFzayk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQlNlcnZlcjo6cG9zdFRhc2tSZXBseSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlcjo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjptX2Nsb3NlQ2FsbGJhY2sp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmRpc3BhdGNoVG9UaHJl
YWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OnRyeUNsb3NlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKToKKwogMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgYSBSZWZQdHI8SVBDOjpD
b25uZWN0aW9uPiBhcyBIYXNoTWFwIGtleSBpbiBEaXNwbGF5TGluawpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5k
ZXggYmNlMTJhNDg2M2NlMmUyYWFiYzVjOGIxOTU3MzljOTU2Mjg3ZTRhZi4uNGNiYzI3MmY5NzIy
ZmNjMTE2ZTYxNGUxNzEwNGU4MzQyOGM4MGYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0yOCwyMCAr
MjgsMTcgQEAKIAogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgogI2luY2x1
ZGUgIldlYklEQlNlcnZlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6
Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rvcnks
IFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VS
ZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNs
b3NlQ2FsbGJhY2spCitSZWY8V2ViSURCU2VydmVyPiBXZWJJREJTZXJ2ZXI6OmNyZWF0ZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYg
c3BhY2VSZXF1ZXN0ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCU2VydmVy
KHNlc3Npb25JRCwgZGlyZWN0b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92ZShj
bG9zZUNhbGxiYWNrKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNlcnZlcihz
ZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlcikpKTsKIH0KIAotV2Vi
SURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VR
dW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY2xvc2VDYWxsYmFjaykKLSAgICA6IENyb3NzVGhyZWFkVGFza0hhbmRs
ZXIoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyIiwgV1RGOjpDcm9zc1RocmVhZFRh
c2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2UpCi0gICAgLCBtX2RhdGFU
YXNrQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHRyeUNsb3NlKCk7IH0pCi0gICAg
LCBtX2Nsb3NlQ2FsbGJhY2soV1RGTW92ZShjbG9zZUNhbGxiYWNrKSkKK1dlYklEQlNlcnZlcjo6
V2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJl
Y3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2Vy
U3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVl
OjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyIikpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNTYsOCArNTMsNiBAQCBXZWJJREJTZXJ2ZXI6
OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0b3J5LCBXZQogV2ViSURCU2VydmVyOjp+V2ViSURCU2VydmVyKCkKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwotICAgIC8vIGNsb3NlKCkgaGFzIHRvIGJlIGNhbGxlZCB0byBt
YWtlIHN1cmUgdGhyZWFkIGV4aXRzLgotICAgIEFTU0VSVCghbV9jbG9zZUNhbGxiYWNrKTsKICAg
ICBBU1NFUlQoIW1faXNTdXNwZW5kZWQpOwogfQogCkBAIC02NSwxMyArNjAsMTQgQEAgdm9pZCBX
ZWJJREJTZXJ2ZXI6OmdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdl
YkNvcmU6OlNlY3VyaXR5T3IKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0g
ICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgp
XSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAg
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBtX3NlcnZlckxvY2sgfTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2so
W2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gV1RGTW92ZSh0b2tlbiksIG9y
aWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSldKCkgbXV0YWJs
ZSB7CisgICAgICAgIGF1dG8gb3JpZ2lucyA9IG1fc2VydmVyLT5nZXRPcmlnaW5zKCk7CisgICAg
ICAgIHBvc3RUYXNrUmVwbHkoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIG9yaWdpbnMg
PSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKG9yaWdpbnMpKTsKLSAgICAgICAgfSkpOworICAg
ICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtNzksMTQgKzc1LDE0IEBAIHZvaWQgV2ViSURCU2Vy
dmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZp
Y2F0aW9uVGltCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RU
YXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWNhdGlvblRp
bWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50
ZXIuY291bnQoKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zZXJ2ZXJMb2NrIH07CiAgICAgICAgIG1f
c2VydmVyLT5jbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UobW9kaWZpY2F0aW9u
VGltZSk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgewor
ICAgICAgICBwb3N0VGFza1JlcGx5KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11
dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSkpOworICAgICAgICB9
KTsKICAgICB9KTsKIH0KIApAQCAtOTQsMTQgKzkwLDE0IEBAIHZvaWQgV2ViSURCU2VydmVyOjpj
bG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNl
Y3VyCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0gb3JpZ2lu
RGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2Vu
ID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQoKV0gKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2so
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb3JpZ2luRGF0YXMgPSBvcmln
aW5EYXRhcy5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkg
bXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX3NlcnZlckxvY2sgfTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhvcmlnaW5EYXRhcyk7Ci0gICAgICAgIHBvc3RU
YXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0
b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgeworICAgICAgICBwb3N0VGFza1JlcGx5
KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICAgICAg
Y2FsbGJhY2soKTsKLSAgICAgICAgfSkpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAt
MTA5LDE0ICsxMDUsMTQgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28KIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgb2xkT3JpZ2luID0gb2xkT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBu
ZXdPcmlnaW4gPSBuZXdPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQoKV0gKCkgbXV0YWJsZSB7
CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2xk
T3JpZ2luID0gb2xkT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdPcmlnaW4u
aXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUg
ewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9zZXJ2ZXJMb2NrIH07CiAgICAgICAgIG1fc2VydmVyLT5yZW5hbWVPcmlnaW4o
b2xkT3JpZ2luLCBuZXdPcmlnaW4pOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFk
VGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBXVEZNb3ZlKHRva2Vu
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcG9zdFRhc2tSZXBseShbY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAg
IH0pKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM3MCw3ICszNjYsNyBAQCB2b2lk
IFdlYklEQlNlcnZlcjo6YWRkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFdlYkNvcmU6OlByb2Nlc3NJZAogICAgICAgICBtX3NlcnZlci0+cmVnaXN0ZXJDb25uZWN0aW9u
KGl0ZXItPnZhbHVlLT5jb25uZWN0aW9uVG9DbGllbnQoKSk7CiAgICAgfSk7CiAgICAgbV9jb25u
ZWN0aW9ucy5hZGQoJmNvbm5lY3Rpb24pOwotICAgIGNvbm5lY3Rpb24uYWRkVGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
dGhpcyk7CisgICAgY29ubmVjdGlvbi5hZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3F1ZXVlLmdldCgpLCB0
aGlzKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQpAQCAtMzgxLDcgKzM3Nyw3IEBAIHZvaWQgV2ViSURCU2VydmVy
OjpyZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICAgICBpZiAo
IXRha2VuQ29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFrZW5Db25uZWN0aW9u
LT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICB0YWtlbkNvbm5lY3Rpb24tPnJlbW92ZVdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpOwogICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNvbm5lY3Rpb25JRCA9IGNvbm5lY3Rpb24udW5pcXVlSUQoKV0gewogICAgICAgICBhdXRv
IGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAudGFrZShjb25uZWN0aW9uSUQpOwogCkBAIC0z
OTAsNjYgKzM4Niw0MiBAQCB2b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NlcnZl
ckxvY2sgfTsKICAgICAgICAgbV9zZXJ2ZXItPnVucmVnaXN0ZXJDb25uZWN0aW9uKGNvbm5lY3Rp
b24tPmNvbm5lY3Rpb25Ub0NsaWVudCgpKTsKICAgICB9KTsKLQotICAgIHRyeUNsb3NlKCk7CiB9
CiAKIHZvaWQgV2ViSURCU2VydmVyOjpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgQ3Jvc3NUaHJlYWRUYXNr
SGFuZGxlcjo6cG9zdFRhc2soQ3Jvc3NUaHJlYWRUYXNrKFdURk1vdmUodGFzaykpKTsKKyAgICBt
X3F1ZXVlLT5kaXNwYXRjaChXVEZNb3ZlKHRhc2spKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXI6
OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCit2b2lkIFdlYklEQlNl
cnZlcjo6cG9zdFRhc2tSZXBseShGdW5jdGlvbjx2b2lkKCk+JiYgdGFza1JlcGx5KQogewotICAg
IENyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnBvc3RUYXNrKENyb3NzVGhyZWFkVGFzayhXVEZNb3Zl
KHRhc2spKSk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZSh0YXNrUmVwbHkpKTsKIH0KIAotdm9pZCBXZWJJREJT
ZXJ2ZXI6OmNsb3NlKCkKK3ZvaWQgV2ViSURCU2VydmVyOjpjbG9zZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICBpZiAoIW1fY2xvc2VDYWxsYmFjaykKLSAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gUmVtb3ZlIHRoZSByZWZlcmVuY2VzIGhlbGQgYnkgSVBDOjpDb25uZWN0aW9uLgogICAg
IGZvciAoYXV0byogY29ubmVjdGlvbiA6IG1fY29ubmVjdGlvbnMpCi0gICAgICAgIGNvbm5lY3Rp
b24tPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwotCi0gICAgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6c2V0
Q29tcGxldGlvbkNhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
KCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAg
ICBjb25uZWN0aW9uLT5yZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YklEQlNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIAorICAgIC8vIERpc3BhdGNoIGxh
c3QgdGFzayB0byBjbGVhbiB1cC4KKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBtX2Nvbm5lY3Rpb25NYXAuY2xlYXIoKTsKKwog
ICAgICAgICB7CiAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zZXJ2ZXJMb2NrIH07CiAg
ICAgICAgICAgICBtX3NlcnZlciA9IG51bGxwdHI7CiAgICAgICAgIH0KIAotICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsg
fSk7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW3Byb3RlY3RlZFRoaXMsIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKICAgICB9KTsKLQotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgLy8gTmV0d29yayBwcm9jZXNzIG1heSBiZWNvbWUgYWN0aXZl
IGFuZCBjbG9zZSBXZWJJREJTZXJ2ZXIgYmVmb3JlIHJlY2VpdmluZyByZXN1bWUgbWVzc2FnZS4K
LSAgICByZXN1bWUoKTsKLSNlbmRpZgotCi0gICAgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV9zZXJ2ZXJMb2NrIH07Ci0gICAgICAgIGlmIChtX3NlcnZlcikKLSAgICAgICAgICAgIG1fc2Vy
dmVyLT5zdG9wRGF0YWJhc2VBY3Rpdml0aWVzT25NYWluVGhyZWFkKCk7Ci0gICAgfQotCi0gICAg
Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6a2lsbCgpOwotCi0gICAgbV9jbG9zZUNhbGxiYWNrKCk7
Ci19Ci0KLXZvaWQgV2ViSURCU2VydmVyOjp0cnlDbG9zZSgpCi17Ci0gICAgaWYgKCFtX2Nvbm5l
Y3Rpb25zLmlzRW1wdHkoKSB8fCBtX2RhdGFUYXNrQ291bnRlci52YWx1ZSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBjbG9zZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
LmgKaW5kZXggOGI0YWRiYTVmN2MxODNmOWQ3ZGQ4YmRhODc3MTI0NGMwZGNlNmRkMC4uMzNjMDI2
ZmE1NDc0YzlhOTQ2ODczM2ZiZjY1YjU4MzEwYWYzYzEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKQEAgLTQyLDkg
KzQyLDkgQEAgY2xhc3MgSURCU2VydmVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3Mg
V2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFza0hhbmRsZXIsIHB1Ymxp
YyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgeworY2xh
c3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYklEQlNlcnZlcj4g
Y3JlYXRlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHN0YXRpYyBSZWY8V2ViSURCU2Vy
dmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVz
dGVyJiYpOwogCiAgICAgdm9pZCBnZXRPcmlnaW5zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFz
aFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiYpPiYmKTsKICAgICB2b2lkIGNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNhbGxiYWNrKTsKQEAgLTg2LDE2ICs4NiwxNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLSAgICB2b2lk
IGRpc3BhdGNoVG9UaHJlYWQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwotICAgIHZvaWQgY2xv
c2UoKTsKKyAgICB2b2lkIGNsb3NlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IHsgfSk7
CiAKIHByaXZhdGU6Ci0gICAgV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90
YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIFdlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rvcnks
IFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VS
ZXF1ZXN0ZXImJik7CiAgICAgfldlYklEQlNlcnZlcigpOwogCiAgICAgdm9pZCBwb3N0VGFzayhX
VEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBwb3N0VGFza1JlcGx5KEZ1bmN0aW9u
PHZvaWQoKT4mJik7CiAKLSAgICB2b2lkIHRyeUNsb3NlKCk7CisgICAgUmVmPFdvcmtRdWV1ZT4g
bV9xdWV1ZTsKIAogICAgIExvY2sgbV9zZXJ2ZXJMb2NrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcj4gbV9zZXJ2ZXIgV1RGX0dVQVJERURfQllfTE9D
SyhtX3NlcnZlckxvY2spOwpAQCAtMTAzLDEyICsxMDMsNiBAQCBwcml2YXRlOgogCiAgICAgSGFz
aE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Pj4gbV9jb25uZWN0aW9uTWFwOwogICAgIEhhc2hTZXQ8SVBDOjpDb25u
ZWN0aW9uKj4gbV9jb25uZWN0aW9uczsKLQotICAgIGVudW0gRGF0YVRhc2tDb3VudGVyVHlwZSB7
IH07Ci0gICAgdXNpbmcgRGF0YVRhc2tDb3VudGVyID0gUmVmQ291bnRlcjxEYXRhVGFza0NvdW50
ZXJUeXBlPjsKLSAgICB1c2luZyBEYXRhVGFza0NvdW50ZXJUb2tlbiA9IERhdGFUYXNrQ291bnRl
cjo6VG9rZW47Ci0gICAgRGF0YVRhc2tDb3VudGVyIG1fZGF0YVRhc2tDb3VudGVyOwotICAgIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9jbG9zZUNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IGIwZjBjNTAxMWJkNDM4NTUzNmM5MGY0N2M3MWZlNzUwMjBkYTE5YmUu
LjYyN2IxNzJiYzNlM2NmOGIwMDFmMzYzZmI1NDk1MjVkZjgyNjc3MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNzYsNyArMjc2
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAg
ICAvLyBNYWtlIHN1cmUgcmVmZXJlbmNlcyB0byBOZXR3b3JrUHJvY2VzcyBpbiBzcGFjZVJlcXVl
c3RlciBhbmQgY2xvc2VIYW5kbGVyIGlzIHJlbW92ZWQuCiAgICAgYXV0byBzZXJ2ZXJzID0gc3Rk
OjpleGNoYW5nZShtX3dlYklEQlNlcnZlcnMsIHsgfSk7CiAgICAgZm9yIChhdXRvJiBzZXJ2ZXIg
OiBzZXJ2ZXJzLnZhbHVlcygpKQotICAgICAgICBzZXJ2ZXItPmNsb3NlKCk7CisgICAgICAgIHNl
cnZlci0+Y2xvc2UoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGlkQ3JlYXRlRG93bmxvYWQoKQpAQCAtNTUzLDYgKzU1Myw4IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNl
bmRpZgogCiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7CisgICAg
aWYgKGF1dG8gc2VydmVyID0gbV93ZWJJREJTZXJ2ZXJzLnRha2Uoc2Vzc2lvbklEKSkKKyAgICAg
ICAgc2VydmVyLT5jbG9zZSgpOwogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKQEAgLTIzNDgsMTAgKzIzNTAsNyBAQCBSZWY8V2ViSURCU2VydmVyPiBOZXR3b3JrUHJv
Y2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBh
dXRvIHNwYWNlUmVxdWVzdGVyID0gW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgc2Vz
c2lvbklEXShjb25zdCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7CiAg
ICAgICAgIHJldHVybiBwcm90ZWN0ZWRUaGlzLT5zdG9yYWdlUXVvdGFNYW5hZ2VyKHNlc3Npb25J
RCwgb3JpZ2luKS0+cmVxdWVzdFNwYWNlT25CYWNrZ3JvdW5kVGhyZWFkKHNwYWNlUmVxdWVzdGVk
KTsKICAgICB9OwotICAgIGF1dG8gY2xvc2VIYW5kbGVyID0gW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgc2Vzc2lvbklEXSgpIHsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV93ZWJJ
REJTZXJ2ZXJzLnJlbW92ZShzZXNzaW9uSUQpOwotICAgIH07Ci0gICAgcmV0dXJuIFdlYklEQlNl
cnZlcjo6Y3JlYXRlKHNlc3Npb25JRCwgcGF0aCwgV1RGTW92ZShzcGFjZVJlcXVlc3RlciksIFdU
Rk1vdmUoY2xvc2VIYW5kbGVyKSk7CisgICAgcmV0dXJuIFdlYklEQlNlcnZlcjo6Y3JlYXRlKHNl
c3Npb25JRCwgcGF0aCwgV1RGTW92ZShzcGFjZVJlcXVlc3RlcikpOwogfQogCiBXZWJJREJTZXJ2
ZXImIE5ldHdvcmtQcm9jZXNzOjp3ZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430498</attachid>
            <date>2021-06-03 14:23:53 -0700</date>
            <delta_ts>2021-06-03 23:08:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226589-20210603142352.patch</filename>
            <type>text/plain</type>
            <size>15325</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVhZTFhZWY3NzNjMDcwMzA1
M2RjMmVmZjRmMGRhOGFmZmIxYzQyZDkuLjlhMDcyMmNhOTkwMDlhNWRiZjFjMWZmZWUxNGUzY2Nl
MmVhMDBhNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDYtMDMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBXZWJJREJTZXJ2ZXIgdXNl
IFdvcmtRdWV1ZSBpbnN0ZWFkIG9mIFRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgVGhpcyBtYXRjaGVzIG90aGVyIHN0b3JhZ2UgbWFuYWdlciBjbGFz
c2VzIGFuZCBtYWtlcyBtYW5hZ2VtZW50IG9mIHRocmVhZCBsaWZldGltZSBtdWNoIGVhc2llci4g
V2UgdXNlZCB0bworICAgICAgICBkZXN0cm95IFdlYklEQlNlcnZlciBhZ2dyZXNzaXZlbHkgKHdo
ZW4gdGhlcmUgaXMgbm8gY29ubmVjdGlvbiBvciB0YXNrIGxlZnQpIHRvIGVuc3VyZSB0aHJlYWQg
b2YgV2ViSURCU2VydmVyIAorICAgICAgICBkb2VzIG5vdCBzdGF5IGFyb3VuZCBpZGx5LCBhbmQg
dGhhdCBsZWQgdXMgdG8gY3JlYXRlIG5ldyBXZWJJREJTZXJ2ZXIgZm9yIG5ldyB0YXNrIHJpZ2h0
IGFmdGVyIGRlc3Ryb3lpbmcgCisgICAgICAgIFdlYklEQlNlcnZlciBhbmQgYmVmb3JlIGRhdGFi
YXNlcyBhcmUgcHJvcGVybHkgY2xvc2VkIGluIHNvbWUgY2FzZXMsIHdoaWNoIGNhbiBjYXVzZWQg
aXNzdWVzIGxpa2UgZGF0YWJhc2UgaXMgCisgICAgICAgIGxvY2tlZCBkdXJpbmcgbmV3IHRhc2su
IFdpdGggV29ya1F1ZXVlLCB3ZSBkb24ndCBuZWVkIHRvIG1hbmFnZSB0aGUgdGhyZWFkcywgYW5k
IHdlIGNhbiBjbG9zZSBXZWJJREJTZXJ2ZXIKKyAgICAgICAgd2hlbiBzZXNzaW9uIGlzIGRlc3Ry
b3llZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQlNlcnZlcjo6V2ViSURCU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCU2VydmVyOjp+V2ViSURCU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVy
OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpjbG9zZUFuZERl
bGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2
ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2Vy
dmVyOjphZGRDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpyZW1v
dmVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpwb3N0VGFzayk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6cG9zdFRhc2tSZXBseSk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjptX2Nsb3Nl
Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmRpc3Bh
dGNoVG9UaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OnRy
eUNsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKToKKwogMjAyMS0wNi0wMyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIElt
YWdlIGV4dHJhY3Rpb24gcHJldmlldyBwYW5lbCBzaG91bGQgYXV0b21hdGljYWxseSBjbG9zZSB3
aGVuIHRoZSB3ZWIgdmlldyBpcyB1bnBhcmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCBiY2UxMmE0
ODYzY2UyZTJhYWJjNWM4YjE5NTczOWM5NTYyODdlNGFmLi40Y2JjMjcyZjk3MjJmY2MxMTZlNjE0
ZTE3MTA0ZTgzNDI4YzgwZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTI4LDIwICsyOCwxNyBAQAog
CiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSURC
U2VydmVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURhdGFiYXNlVHJhY2tl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZVF1b3RhTWFuYWdlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotUmVmPFdlYklEQlNlcnZlcj4gV2ViSURCU2VydmVyOjpjcmVhdGUoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYm
IHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2xvc2VDYWxsYmFj
aykKK1JlZjxXZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6
SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVl
c3RlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJTZXJ2ZXIoc2Vzc2lvbklE
LCBkaXJlY3RvcnksIFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNsb3NlQ2FsbGJh
Y2spKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCU2VydmVyKHNlc3Npb25JRCwg
ZGlyZWN0b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSkpOwogfQogCi1XZWJJREJTZXJ2ZXI6
OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdl
clNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjbG9zZUNhbGxiYWNrKQotICAgIDogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcigiY29tLmFw
cGxlLldlYktpdC5JbmRleGVkREJTZXJ2ZXIiLCBXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6
OkF1dG9kcmFpbmVkUG9vbEZvclJ1bkxvb3A6OlVzZSkKLSAgICAsIG1fZGF0YVRhc2tDb3VudGVy
KFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdHJ5Q2xvc2UoKTsgfSkKLSAgICAsIG1fY2xvc2VD
YWxsYmFjayhXVEZNb3ZlKGNsb3NlQ2FsbGJhY2spKQorV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2
ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2Vi
Q29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVl
c3RlciYmIHNwYWNlUmVxdWVzdGVyKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5JbmRleGVkREJTZXJ2ZXIiKSkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCkBAIC01Niw4ICs1Myw2IEBAIFdlYklEQlNlcnZlcjo6V2ViSURCU2Vy
dmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdl
CiBXZWJJREJTZXJ2ZXI6On5XZWJJREJTZXJ2ZXIoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0gICAgLy8gY2xvc2UoKSBoYXMgdG8gYmUgY2FsbGVkIHRvIG1ha2Ugc3VyZSB0
aHJlYWQgZXhpdHMuCi0gICAgQVNTRVJUKCFtX2Nsb3NlQ2FsbGJhY2spOwogICAgIEFTU0VSVCgh
bV9pc1N1c3BlbmRlZCk7CiB9CiAKQEAgLTY1LDEzICs2MCwxNCBAQCB2b2lkIFdlYklEQlNlcnZl
cjo6Z2V0T3JpZ2lucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6U2Vj
dXJpdHlPcgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBwb3N0VGFz
ayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spLCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50KCldKCkgbXV0YWJs
ZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2VydmVy
TG9jayB9OwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBXVEZNb3ZlKHRva2VuKSwgb3JpZ2lucyA9IGNy
b3NzVGhyZWFkQ29weShtX3NlcnZlci0+Z2V0T3JpZ2lucygpKV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgYXV0byBvcmlnaW5zID0gbV9zZXJ2ZXItPmdldE9yaWdpbnMoKTsKKyAgICAgICAgcG9zdFRh
c2tSZXBseShbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgb3JpZ2lucyA9IGNyb3NzVGhy
ZWFkQ29weShtX3NlcnZlci0+Z2V0T3JpZ2lucygpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGNhbGxiYWNrKFdURk1vdmUob3JpZ2lucykpOwotICAgICAgICB9KSk7CisgICAgICAgIH0pOwog
ICAgIH0pOwogfQogCkBAIC03OSwxNCArNzUsMTQgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW0K
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZpY2F0aW9uVGltZSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgp
XSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIG1vZGlmaWNhdGlvblRpbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
ICAgIExvY2tlciBsb2NrZXIgeyBtX3NlcnZlckxvY2sgfTsKICAgICAgICAgbV9zZXJ2ZXItPmNs
b3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShtb2RpZmljYXRpb25UaW1lKTsKLSAg
ICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIHRva2VuID0gV1RGTW92ZSh0b2tlbildKCkgbXV0YWJsZSB7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9KSk7CisgICAgICAgIH0pOwogICAgIH0p
OwogfQogCkBAIC05NCwxNCArOTAsMTQgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3NlQW5kRGVs
ZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXIKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb3JpZ2luRGF0YXMgPSBvcmlnaW5EYXRhcy5pc29s
YXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFU
YXNrQ291bnRlci5jb3VudCgpXSAoKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvcmlnaW5EYXRhcyA9IG9yaWdpbkRhdGFzLmlz
b2xhdGVkQ29weSgpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IG1fc2VydmVyTG9jayB9OwogICAgICAgICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVE
YXRhYmFzZXNGb3JPcmlnaW5zKG9yaWdpbkRhdGFzKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShD
cm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gV1RG
TW92ZSh0b2tlbildKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoW2NhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjaygp
OwotICAgICAgICB9KSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCkBAIC0xMDksMTQgKzEw
NSwxNCBAQCB2b2lkIFdlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjbwogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKLSAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBvbGRPcmlnaW4gPSBvbGRPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIG5ld09yaWdpbiA9
IG5ld09yaWdpbi5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwg
dG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgpXSAoKSBtdXRhYmxlIHsKKyAgICBwb3N0
VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvbGRPcmlnaW4gPSBv
bGRPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIG5ld09yaWdpbiA9IG5ld09yaWdpbi5pc29sYXRlZENv
cHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CiAgICAgICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBt
X3NlcnZlckxvY2sgfTsKICAgICAgICAgbV9zZXJ2ZXItPnJlbmFtZU9yaWdpbihvbGRPcmlnaW4s
IG5ld09yaWdpbik7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFi
bGUgeworICAgICAgICBwb3N0VGFza1JlcGx5KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSkpOworICAg
ICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtMzcwLDcgKzM2Niw3IEBAIHZvaWQgV2ViSURCU2Vy
dmVyOjphZGRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6
UHJvY2Vzc0lkCiAgICAgICAgIG1fc2VydmVyLT5yZWdpc3RlckNvbm5lY3Rpb24oaXRlci0+dmFs
dWUtPmNvbm5lY3Rpb25Ub0NsaWVudCgpKTsKICAgICB9KTsKICAgICBtX2Nvbm5lY3Rpb25zLmFk
ZCgmY29ubmVjdGlvbik7Ci0gICAgY29ubmVjdGlvbi5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAg
ICBjb25uZWN0aW9uLmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURC
U2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcXVldWUuZ2V0KCksIHRoaXMpOwogfQog
CiB2b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCkBAIC0zODEsNyArMzc3LDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgIGlmICghdGFrZW5Db25u
ZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICB0YWtlbkNvbm5lY3Rpb24tPnJlbW92ZVRo
cmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpOworICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAg
ICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29ubmVj
dGlvbklEID0gY29ubmVjdGlvbi51bmlxdWVJRCgpXSB7CiAgICAgICAgIGF1dG8gY29ubmVjdGlv
biA9IG1fY29ubmVjdGlvbk1hcC50YWtlKGNvbm5lY3Rpb25JRCk7CiAKQEAgLTM5MCw2NiArMzg2
LDQyIEBAIHZvaWQgV2ViSURCU2VydmVyOjpyZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbikKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2VydmVyTG9jayB9Owog
ICAgICAgICBtX3NlcnZlci0+dW5yZWdpc3RlckNvbm5lY3Rpb24oY29ubmVjdGlvbi0+Y29ubmVj
dGlvblRvQ2xpZW50KCkpOwogICAgIH0pOwotCi0gICAgdHJ5Q2xvc2UoKTsKIH0KIAogdm9pZCBX
ZWJJREJTZXJ2ZXI6OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpw
b3N0VGFzayhDcm9zc1RocmVhZFRhc2soV1RGTW92ZSh0YXNrKSkpOworICAgIG1fcXVldWUtPmRp
c3BhdGNoKFdURk1vdmUodGFzaykpOwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6ZGlzcGF0Y2hU
b1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKK3ZvaWQgV2ViSURCU2VydmVyOjpwb3N0
VGFza1JlcGx5KEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrUmVwbHkpCiB7Ci0gICAgQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlcjo6cG9zdFRhc2soQ3Jvc3NUaHJlYWRUYXNrKFdURk1vdmUodGFzaykpKTsK
KyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChXVEZNb3ZlKHRhc2tSZXBseSkpOwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6Y2xv
c2UoKQordm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3NlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwot
ICAgIGlmICghbV9jbG9zZUNhbGxiYWNrKQotICAgICAgICByZXR1cm47CiAKLSAgICAvLyBSZW1v
dmUgdGhlIHJlZmVyZW5jZXMgaGVsZCBieSBJUEM6OkNvbm5lY3Rpb24uCiAgICAgZm9yIChhdXRv
KiBjb25uZWN0aW9uIDogbV9jb25uZWN0aW9ucykKLSAgICAgICAgY29ubmVjdGlvbi0+cmVtb3Zl
VGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSk7Ci0KLSAgICBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpzZXRDb21wbGV0aW9u
Q2FsbGJhY2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxl
IHsKLSAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgIGNvbm5lY3Rp
b24tPnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogCisgICAgLy8gRGlzcGF0Y2ggbGFzdCB0YXNrIHRv
IGNsZWFuIHVwLgorICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkg
bXV0YWJsZSB7CiAgICAgICAgIG1fY29ubmVjdGlvbk1hcC5jbGVhcigpOworCiAgICAgICAgIHsK
ICAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NlcnZlckxvY2sgfTsKICAgICAgICAgICAg
IG1fc2VydmVyID0gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0geyB9KTsKKyAgICAg
ICAgcG9zdFRhc2tSZXBseShbcHJvdGVjdGVkVGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgICAgIH0pOwogICAgIH0pOwotCi0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICAvLyBOZXR3b3JrIHByb2Nlc3MgbWF5IGJlY29tZSBhY3RpdmUgYW5kIGNsb3Nl
IFdlYklEQlNlcnZlciBiZWZvcmUgcmVjZWl2aW5nIHJlc3VtZSBtZXNzYWdlLgotICAgIHJlc3Vt
ZSgpOwotI2VuZGlmCi0KLSAgICB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NlcnZlckxv
Y2sgfTsKLSAgICAgICAgaWYgKG1fc2VydmVyKQotICAgICAgICAgICAgbV9zZXJ2ZXItPnN0b3BE
YXRhYmFzZUFjdGl2aXRpZXNPbk1haW5UaHJlYWQoKTsKLSAgICB9Ci0KLSAgICBDcm9zc1RocmVh
ZFRhc2tIYW5kbGVyOjpraWxsKCk7Ci0KLSAgICBtX2Nsb3NlQ2FsbGJhY2soKTsKLX0KLQotdm9p
ZCBXZWJJREJTZXJ2ZXI6OnRyeUNsb3NlKCkKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbnMuaXNF
bXB0eSgpIHx8IG1fZGF0YVRhc2tDb3VudGVyLnZhbHVlKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGNsb3NlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAppbmRleCA4
YjRhZGJhNWY3YzE4M2Y5ZDdkZDhiZGE4NzcxMjQ0YzBkY2U2ZGQwLi4zM2MwMjZmYTU0NzRjOWE5
NDY4NzMzZmJmNjViNTgzMTBhZjNjMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaApAQCAtNDIsOSArNDIsOSBAQCBj
bGFzcyBJREJTZXJ2ZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJJREJTZXJ2
ZXIgZmluYWwgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlciwgcHVibGljIElQQzo6Q29u
bmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CitjbGFzcyBXZWJJREJT
ZXJ2ZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6
OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNyZWF0
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNl
cnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJik7CiAK
ICAgICB2b2lkIGdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYpOwogICAgIHZvaWQgY2xvc2VBbmREZWxldGVE
YXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY2FsbGJhY2spOwpAQCAtODYsMTYgKzg2LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92
ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwotICAgIHZvaWQgZGlzcGF0Y2hU
b1RocmVhZChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBjbG9zZSgpOworICAg
IHZvaWQgY2xvc2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0geyB9KTsKIAogcHJpdmF0
ZToKLSAgICBXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0
b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNw
YWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV2ViSURC
U2VydmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYm
KTsKICAgICB+V2ViSURCU2VydmVyKCk7CiAKICAgICB2b2lkIHBvc3RUYXNrKFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmKTsKKyAgICB2b2lkIHBvc3RUYXNrUmVwbHkoRnVuY3Rpb248dm9pZCgpPiYm
KTsKIAotICAgIHZvaWQgdHJ5Q2xvc2UoKTsKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwog
CiAgICAgTG9jayBtX3NlcnZlckxvY2s7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklE
QlNlcnZlcjo6SURCU2VydmVyPiBtX3NlcnZlciBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc2VydmVy
TG9jayk7CkBAIC0xMDMsMTIgKzEwMyw2IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ+PiBtX2Nvbm5lY3Rpb25NYXA7CiAgICAgSGFzaFNldDxJUEM6OkNvbm5lY3Rpb24qPiBt
X2Nvbm5lY3Rpb25zOwotCi0gICAgZW51bSBEYXRhVGFza0NvdW50ZXJUeXBlIHsgfTsKLSAgICB1
c2luZyBEYXRhVGFza0NvdW50ZXIgPSBSZWZDb3VudGVyPERhdGFUYXNrQ291bnRlclR5cGU+Owot
ICAgIHVzaW5nIERhdGFUYXNrQ291bnRlclRva2VuID0gRGF0YVRhc2tDb3VudGVyOjpUb2tlbjsK
LSAgICBEYXRhVGFza0NvdW50ZXIgbV9kYXRhVGFza0NvdW50ZXI7Ci0gICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiBtX2Nsb3NlQ2FsbGJhY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
aW5kZXggYjBmMGM1MDExYmQ0Mzg1NTM2YzkwZjQ3YzcxZmU3NTAyMGRhMTliZS4uNjI3YjE3MmJj
M2UzY2Y4YjAwMWYzNjNmYjU0OTUyNWRmODI2NzcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI3Niw3ICsyNzYsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAgIC8vIE1ha2Ug
c3VyZSByZWZlcmVuY2VzIHRvIE5ldHdvcmtQcm9jZXNzIGluIHNwYWNlUmVxdWVzdGVyIGFuZCBj
bG9zZUhhbmRsZXIgaXMgcmVtb3ZlZC4KICAgICBhdXRvIHNlcnZlcnMgPSBzdGQ6OmV4Y2hhbmdl
KG1fd2ViSURCU2VydmVycywgeyB9KTsKICAgICBmb3IgKGF1dG8mIHNlcnZlciA6IHNlcnZlcnMu
dmFsdWVzKCkpCi0gICAgICAgIHNlcnZlci0+Y2xvc2UoKTsKKyAgICAgICAgc2VydmVyLT5jbG9z
ZShbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpk
aWRDcmVhdGVEb3dubG9hZCgpCkBAIC01NTMsNiArNTUzLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKICAg
ICBtX3N0b3JhZ2VNYW5hZ2VyU2V0LT5yZW1vdmUoc2Vzc2lvbklEKTsKKyAgICBpZiAoYXV0byBz
ZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMudGFrZShzZXNzaW9uSUQpKQorICAgICAgICBzZXJ2ZXIt
PmNsb3NlKCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAt
MjM0OCwxMCArMjM1MCw3IEBAIFJlZjxXZWJJREJTZXJ2ZXI+IE5ldHdvcmtQcm9jZXNzOjpjcmVh
dGVXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIGF1dG8gc3BhY2VS
ZXF1ZXN0ZXIgPSBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzZXNzaW9uSURdKGNv
bnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsKICAgICAgICAgcmV0
dXJuIHByb3RlY3RlZFRoaXMtPnN0b3JhZ2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBvcmlnaW4p
LT5yZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYWQoc3BhY2VSZXF1ZXN0ZWQpOwogICAgIH07
Ci0gICAgYXV0byBjbG9zZUhhbmRsZXIgPSBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBzZXNzaW9uSURdKCkgewotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3dlYklEQlNlcnZlcnMu
cmVtb3ZlKHNlc3Npb25JRCk7Ci0gICAgfTsKLSAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVh
dGUoc2Vzc2lvbklELCBwYXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92ZShjbG9z
ZUhhbmRsZXIpKTsKKyAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBw
YXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSk7CiB9CiAKIFdlYklEQlNlcnZlciYgTmV0d29y
a1Byb2Nlc3M6OndlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430546</attachid>
            <date>2021-06-03 23:08:09 -0700</date>
            <delta_ts>2021-06-03 23:35:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226589-20210603230808.patch</filename>
            <type>text/plain</type>
            <size>15511</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiYTZjMDFmNTFmMjllZGE5
MDZkMzkzMjcxNTQ3MTgyNTBjOTViN2UuLmEzMzM2NjRiNjI3ODlkNWNlZjc1YjRjZTY2MjJmMTAw
NjdlYzdmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDYtMDMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBXZWJJREJTZXJ2ZXIgdXNl
IFdvcmtRdWV1ZSBpbnN0ZWFkIG9mIFRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgVGhpcyBtYXRjaGVzIG90aGVyIHN0b3JhZ2UgbWFuYWdlciBjbGFz
c2VzIGFuZCBtYWtlcyBtYW5hZ2VtZW50IG9mIHRocmVhZCBsaWZldGltZSBtdWNoIGVhc2llci4g
V2UgdXNlZCB0bworICAgICAgICBkZXN0cm95IFdlYklEQlNlcnZlciBhZ2dyZXNzaXZlbHkgKHdo
ZW4gdGhlcmUgaXMgbm8gY29ubmVjdGlvbiBvciB0YXNrIGxlZnQpIHRvIGVuc3VyZSB0aHJlYWQg
b2YgV2ViSURCU2VydmVyIAorICAgICAgICBkb2VzIG5vdCBzdGF5IGFyb3VuZCBpZGx5LCBhbmQg
dGhhdCBsZWQgdXMgdG8gY3JlYXRlIG5ldyBXZWJJREJTZXJ2ZXIgZm9yIG5ldyB0YXNrIHJpZ2h0
IGFmdGVyIGRlc3Ryb3lpbmcgCisgICAgICAgIFdlYklEQlNlcnZlciBhbmQgYmVmb3JlIGRhdGFi
YXNlcyBhcmUgcHJvcGVybHkgY2xvc2VkIGluIHNvbWUgY2FzZXMsIHdoaWNoIGNhbiBjYXVzZWQg
aXNzdWVzIGxpa2UgZGF0YWJhc2UgaXMgCisgICAgICAgIGxvY2tlZCBkdXJpbmcgbmV3IHRhc2su
IFdpdGggV29ya1F1ZXVlLCB3ZSBkb24ndCBuZWVkIHRvIG1hbmFnZSB0aGUgdGhyZWFkcywgYW5k
IHdlIGNhbiBjbG9zZSBXZWJJREJTZXJ2ZXIKKyAgICAgICAgd2hlbiBzZXNzaW9uIGlzIGRlc3Ry
b3llZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQlNlcnZlcjo6V2ViSURCU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCU2VydmVyOjp+V2ViSURCU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVy
OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpjbG9zZUFuZERl
bGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2
ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2Vy
dmVyOjphZGRDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpyZW1v
dmVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpwb3N0VGFzayk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6cG9zdFRhc2tSZXBseSk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjptX2Nsb3Nl
Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmRpc3Bh
dGNoVG9UaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OnRy
eUNsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKToKKwogMjAyMS0wNi0wMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHN0b3BNYWtpbmdWaWV3Qmxh
bmtEdWVUb0xhY2tPZlJlbmRlcmluZ1VwZGF0ZSBsb2dnaW5nIHNob3dzIGV2ZW4gaWYgd2UgbmV2
ZXIgbWFkZSB0aGUgdmlldyBibGFuawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggZTI3ZDc3ZGVkMzJjY2Y3
MTJjNjFjNGI0OWM4MjQ0Y2ZkMmI5MzIxYy4uZWYyOTAzYTczZTJiNzA5YTExNDljYTkxYWI1ODdk
MWQwNjE0YjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0yOCwyMCArMjgsMTcgQEAKIAogI2luY2x1
ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgogI2luY2x1ZGUgIldlYklEQlNlcnZlck1l
c3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLVJlZjxXZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJl
cXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNsb3NlQ2FsbGJhY2spCitSZWY8
V2ViSURCU2VydmVyPiBXZWJJREJTZXJ2ZXI6OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZl
cjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCU2VydmVyKHNlc3Npb25JRCwgZGlyZWN0
b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92ZShjbG9zZUNhbGxiYWNrKSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9y
eSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlcikpKTsKIH0KIAotV2ViSURCU2VydmVyOjpXZWJJREJT
ZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwg
V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJl
cXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2xv
c2VDYWxsYmFjaykKLSAgICA6IENyb3NzVGhyZWFkVGFza0hhbmRsZXIoImNvbS5hcHBsZS5XZWJL
aXQuSW5kZXhlZERCU2VydmVyIiwgV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJh
aW5lZFBvb2xGb3JSdW5Mb29wOjpVc2UpCi0gICAgLCBtX2RhdGFUYXNrQ291bnRlcihbdGhpc10o
UmVmQ291bnRlckV2ZW50KSB7IHRyeUNsb3NlKCk7IH0pCi0gICAgLCBtX2Nsb3NlQ2FsbGJhY2so
V1RGTW92ZShjbG9zZUNhbGxiYWNrKSkKK1dlYklEQlNlcnZlcjo6V2ViSURCU2VydmVyKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklE
QlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBz
cGFjZVJlcXVlc3RlcikKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBs
ZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyIikpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIApAQCAtNTYsOCArNTMsNiBAQCBXZWJJREJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZQogV2ViSURC
U2VydmVyOjp+V2ViSURCU2VydmVyKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwotICAgIC8vIGNsb3NlKCkgaGFzIHRvIGJlIGNhbGxlZCB0byBtYWtlIHN1cmUgdGhyZWFkIGV4
aXRzLgotICAgIEFTU0VSVCghbV9jbG9zZUNhbGxiYWNrKTsKICAgICBBU1NFUlQoIW1faXNTdXNw
ZW5kZWQpOwogfQogCkBAIC02NSwxMyArNjAsMTMgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OmdldE9y
aWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3IK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgpXSgpIG11dGFibGUgeworICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NlcnZlckxvY2sgfTsK
LSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayksIHRva2VuID0gV1RGTW92ZSh0b2tlbiksIG9yaWdpbnMgPSBjcm9zc1RocmVh
ZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RU
YXNrUmVwbHkoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIG9yaWdpbnMgPSBjcm9zc1Ro
cmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBjYWxsYmFjayhXVEZNb3ZlKG9yaWdpbnMpKTsKLSAgICAgICAgfSkpOworICAgICAgICB9KTsK
ICAgICB9KTsKIH0KIApAQCAtNzksMTQgKzc0LDE0IEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9z
ZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGlt
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWNhdGlvblRpbWUsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQo
KV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zZXJ2ZXJMb2NrIH07CiAgICAgICAgIG1fc2VydmVyLT5j
bG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UobW9kaWZpY2F0aW9uVGltZSk7Ci0g
ICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgeworICAgICAgICBw
b3N0VGFza1JlcGx5KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewog
ICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSkpOworICAgICAgICB9KTsKICAgICB9
KTsKIH0KIApAQCAtOTQsMTQgKzg5LDE0IEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZUFuZERl
bGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0gb3JpZ2luRGF0YXMuaXNv
bGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRh
VGFza0NvdW50ZXIuY291bnQoKV0gKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb3JpZ2luRGF0YXMgPSBvcmlnaW5EYXRhcy5p
c29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7
CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX3NlcnZlckxvY2sgfTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRl
RGF0YWJhc2VzRm9yT3JpZ2lucyhvcmlnaW5EYXRhcyk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHko
Q3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdU
Rk1vdmUodG9rZW4pXSgpIG11dGFibGUgeworICAgICAgICBwb3N0VGFza1JlcGx5KFtjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2so
KTsKLSAgICAgICAgfSkpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIApAQCAtMTA5LDE0ICsx
MDQsMTQgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgb2xkT3JpZ2luID0gb2xkT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBuZXdPcmlnaW4g
PSBuZXdPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQoKV0gKCkgbXV0YWJsZSB7CisgICAgcG9z
dFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2xkT3JpZ2luID0g
b2xkT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdPcmlnaW4uaXNvbGF0ZWRD
b3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgewogICAgICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV9zZXJ2ZXJMb2NrIH07CiAgICAgICAgIG1fc2VydmVyLT5yZW5hbWVPcmlnaW4ob2xkT3JpZ2lu
LCBuZXdPcmlnaW4pOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBXVEZNb3ZlKHRva2VuKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgcG9zdFRhc2tSZXBseShbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pKTsKKyAg
ICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTM3MCw3ICszNjUsNyBAQCB2b2lkIFdlYklEQlNl
cnZlcjo6YWRkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6
OlByb2Nlc3NJZAogICAgICAgICBtX3NlcnZlci0+cmVnaXN0ZXJDb25uZWN0aW9uKGl0ZXItPnZh
bHVlLT5jb25uZWN0aW9uVG9DbGllbnQoKSk7CiAgICAgfSk7CiAgICAgbV9jb25uZWN0aW9ucy5h
ZGQoY29ubmVjdGlvbik7Ci0gICAgY29ubmVjdGlvbi5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAg
ICBjb25uZWN0aW9uLmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURC
U2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcXVldWUuZ2V0KCksIHRoaXMpOwogfQog
CiB2b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCkBAIC0zODAsNyArMzc1LDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgIGlmICghbV9jb25uZWN0
aW9ucy5yZW1vdmUoY29ubmVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbm5lY3Rp
b24ucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgY29ubmVjdGlvbi5yZW1vdmVXb3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KTsKICAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b25uZWN0aW9uSUQgPSBjb25uZWN0aW9uLnVuaXF1ZUlEKCldIHsKICAgICAgICAgYXV0byBjb25u
ZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLnRha2UoY29ubmVjdGlvbklEKTsKIApAQCAtMzg5LDY2
ICszODQsNDMgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zZXJ2ZXJMb2Nr
IH07CiAgICAgICAgIG1fc2VydmVyLT51bnJlZ2lzdGVyQ29ubmVjdGlvbihjb25uZWN0aW9uLT5j
b25uZWN0aW9uVG9DbGllbnQoKSk7CiAgICAgfSk7Ci0KLSAgICB0cnlDbG9zZSgpOwogfQogCiB2
b2lkIFdlYklEQlNlcnZlcjo6cG9zdFRhc2soRnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIENyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OnBvc3RUYXNrKENyb3NzVGhyZWFkVGFzayhXVEZNb3ZlKHRhc2spKSk7CisgICAgbV9xdWV1
ZS0+ZGlzcGF0Y2goV1RGTW92ZSh0YXNrKSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyOjpkaXNw
YXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQordm9pZCBXZWJJREJTZXJ2ZXI6
OnBvc3RUYXNrUmVwbHkoRnVuY3Rpb248dm9pZCgpPiYmIHRhc2tSZXBseSkKIHsKLSAgICBDcm9z
c1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0VGFzayhDcm9zc1RocmVhZFRhc2soV1RGTW92ZSh0YXNr
KSkpOworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFdURk1vdmUodGFza1JlcGx5KSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVy
OjpjbG9zZSgpCit2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7Ci0gICAgaWYgKCFtX2Nsb3NlQ2FsbGJhY2spCi0gICAgICAgIHJldHVybjsKIAogICAgIC8v
IFJlbW92ZSB0aGUgcmVmZXJlbmNlcyBoZWxkIGJ5IElQQzo6Q29ubmVjdGlvbi4KICAgICBmb3Ig
KGF1dG8mIGNvbm5lY3Rpb24gOiBtX2Nvbm5lY3Rpb25zKQotICAgICAgICBjb25uZWN0aW9uLnJl
bW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpOwotCi0gICAgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6c2V0Q29tcGxl
dGlvbkNhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgbXV0
YWJsZSB7Ci0gICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBjb25u
ZWN0aW9uLnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2Vy
dmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogCisgICAgLy8gRGlzcGF0Y2ggbGFzdCB0YXNr
IHRvIGNsZWFuIHVwLgorICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgbV9jb25uZWN0aW9uTWFwLmNsZWFyKCk7CisKICAgICAgICAg
ewogICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc2VydmVyTG9jayB9OwogICAgICAgICAg
ICAgbV9zZXJ2ZXIgPSBudWxscHRyOwogICAgICAgICB9CiAKLSAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7IH0pOworICAg
ICAgICBwb3N0VGFza1JlcGx5KFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIH0pOwogICAg
IH0pOwotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAvLyBOZXR3b3JrIHByb2Nlc3Mg
bWF5IGJlY29tZSBhY3RpdmUgYW5kIGNsb3NlIFdlYklEQlNlcnZlciBiZWZvcmUgcmVjZWl2aW5n
IHJlc3VtZSBtZXNzYWdlLgotICAgIHJlc3VtZSgpOwotI2VuZGlmCi0KLSAgICB7Ci0gICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX3NlcnZlckxvY2sgfTsKLSAgICAgICAgaWYgKG1fc2VydmVyKQot
ICAgICAgICAgICAgbV9zZXJ2ZXItPnN0b3BEYXRhYmFzZUFjdGl2aXRpZXNPbk1haW5UaHJlYWQo
KTsKLSAgICB9Ci0KLSAgICBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpraWxsKCk7Ci0KLSAgICBt
X2Nsb3NlQ2FsbGJhY2soKTsKLX0KLQotdm9pZCBXZWJJREJTZXJ2ZXI6OnRyeUNsb3NlKCkKLXsK
LSAgICBpZiAoIW1fY29ubmVjdGlvbnMuY29tcHV0ZXNFbXB0eSgpIHx8IG1fZGF0YVRhc2tDb3Vu
dGVyLnZhbHVlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNsb3NlKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAppbmRleCAyZWU0OWQ3NzFmNDI2YWY0MThlYjU0ZTc4
MTE3MmE3YTNlMTExY2FkLi42OTcwN2IyNzM5N2RiZTU2ZTQ2Zjc1YzMxZjMxOTA1OTZlMGI0MTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIuaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBJREJTZXJ2ZXI7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJJREJTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgQ3Jvc3NU
aHJlYWRUYXNrSGFuZGxlciwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJl
Y2VpdmVyUmVmQ291bnRlZCB7CitjbGFzcyBXZWJJREJTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgSVBD
OjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3Rh
TWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Cisg
ICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdl
UXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJik7CiAKICAgICB2b2lkIGdldE9yaWdpbnMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4m
Jik+JiYpOwogICAgIHZvaWQgY2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdh
bGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spOwpAQCAtODcsMTYg
Kzg3LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwotICAgIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJik7Ci0gICAgdm9pZCBjbG9zZSgpOworICAgIHZvaWQgY2xvc2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmID0geyB9KTsKIAogcHJpdmF0ZToKLSAgICBXZWJJREJTZXJ2ZXIoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6
OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0
b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKICAgICB+V2ViSURCU2VydmVyKCk7
CiAKICAgICB2b2lkIHBvc3RUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lk
IHBvc3RUYXNrUmVwbHkoRnVuY3Rpb248dm9pZCgpPiYmKTsKIAotICAgIHZvaWQgdHJ5Q2xvc2Uo
KTsKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCiAgICAgTG9jayBtX3NlcnZlckxvY2s7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPiBtX3Nl
cnZlciBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc2VydmVyTG9jayk7CkBAIC0xMDQsMTIgKzEwNCw2
IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHN0
ZDo6dW5pcXVlX3B0cjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBtX2Nvbm5lY3Rpb25NYXA7
CiAgICAgV2Vha0hhc2hTZXQ8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25zOyAvLyBPbmx5
IHVzZWQgb24gdGhlIG1haW4gdGhyZWFkLgotCi0gICAgZW51bSBEYXRhVGFza0NvdW50ZXJUeXBl
IHsgfTsKLSAgICB1c2luZyBEYXRhVGFza0NvdW50ZXIgPSBSZWZDb3VudGVyPERhdGFUYXNrQ291
bnRlclR5cGU+OwotICAgIHVzaW5nIERhdGFUYXNrQ291bnRlclRva2VuID0gRGF0YVRhc2tDb3Vu
dGVyOjpUb2tlbjsKLSAgICBEYXRhVGFza0NvdW50ZXIgbV9kYXRhVGFza0NvdW50ZXI7Ci0gICAg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBtX2Nsb3NlQ2FsbGJhY2s7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggYjBmMGM1MDExYmQ0Mzg1NTM2YzkwZjQ3YzcxZmU3NTAyMGRhMTli
ZS4uNGJkOGZiMGQyNTBlNjU2YzQ2OTI5MDhkZDllYzE4Njc3MjhkZmQzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI3MywxMCAr
MjczLDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYp
CiAgICAgICAgIHBsYXRmb3JtRmx1c2hDb29raWVzKG5ldHdvcmtTZXNzaW9uLnNlc3Npb25JRCgp
LCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOwogCi0gICAgLy8gTWFrZSBzdXJl
IHJlZmVyZW5jZXMgdG8gTmV0d29ya1Byb2Nlc3MgaW4gc3BhY2VSZXF1ZXN0ZXIgYW5kIGNsb3Nl
SGFuZGxlciBpcyByZW1vdmVkLgorICAgIC8vIE1ha2Ugc3VyZSByZWZlcmVuY2UgdG8gTmV0d29y
a1Byb2Nlc3MgaW4gc3BhY2VSZXF1ZXN0ZXIgaXMgcmVtb3ZlZC4KICAgICBhdXRvIHNlcnZlcnMg
PSBzdGQ6OmV4Y2hhbmdlKG1fd2ViSURCU2VydmVycywgeyB9KTsKICAgICBmb3IgKGF1dG8mIHNl
cnZlciA6IHNlcnZlcnMudmFsdWVzKCkpCi0gICAgICAgIHNlcnZlci0+Y2xvc2UoKTsKKyAgICAg
ICAgc2VydmVyLT5jbG9zZShbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpkaWRDcmVhdGVEb3dubG9hZCgpCkBAIC01NTMsNiArNTUzLDggQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogI2VuZGlmCiAKICAgICBtX3N0b3JhZ2VNYW5hZ2VyU2V0LT5yZW1vdmUoc2Vzc2lvbklEKTsK
KyAgICBpZiAoYXV0byBzZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMudGFrZShzZXNzaW9uSUQpKQor
ICAgICAgICBzZXJ2ZXItPmNsb3NlKCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQpAQCAtMjM0OCwxMCArMjM1MCw3IEBAIFJlZjxXZWJJREJTZXJ2ZXI+IE5ldHdv
cmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgIGF1dG8gc3BhY2VSZXF1ZXN0ZXIgPSBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBzZXNzaW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQp
IHsKICAgICAgICAgcmV0dXJuIHByb3RlY3RlZFRoaXMtPnN0b3JhZ2VRdW90YU1hbmFnZXIoc2Vz
c2lvbklELCBvcmlnaW4pLT5yZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYWQoc3BhY2VSZXF1
ZXN0ZWQpOwogICAgIH07Ci0gICAgYXV0byBjbG9zZUhhbmRsZXIgPSBbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBzZXNzaW9uSURdKCkgewotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5t
X3dlYklEQlNlcnZlcnMucmVtb3ZlKHNlc3Npb25JRCk7Ci0gICAgfTsKLSAgICByZXR1cm4gV2Vi
SURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBwYXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVy
KSwgV1RGTW92ZShjbG9zZUhhbmRsZXIpKTsKKyAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVh
dGUoc2Vzc2lvbklELCBwYXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSk7CiB9CiAKIFdlYklE
QlNlcnZlciYgTmV0d29ya1Byb2Nlc3M6OndlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>