<?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>201881</bug_id>
          
          <creation_ts>2019-09-17 13:03:06 -0700</creation_ts>
          <short_desc>WebProcess class methods should not need to take a sessionID</short_desc>
          <delta_ts>2019-09-17 18:29:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1571641</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-17 13:03:06 -0700</bug_when>
    <thetext>WebProcess class methods should not need to take a sessionID given that we have a single session per WebProcess now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571656</commentid>
    <comment_count>1</comment_count>
      <attachid>378983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-17 13:28:31 -0700</bug_when>
    <thetext>Created attachment 378983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571683</commentid>
    <comment_count>2</comment_count>
      <attachid>378983</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-09-17 14:11:56 -0700</bug_when>
    <thetext>Comment on attachment 378983
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571700</commentid>
    <comment_count>3</comment_count>
      <attachid>378983</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-17 14:57:14 -0700</bug_when>
    <thetext>Comment on attachment 378983
Patch

Clearing flags on attachment: 378983

Committed r249985: &lt;https://trac.webkit.org/changeset/249985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571701</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-17 14:57:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571702</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-17 14:58:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/55455033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571703</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-17 14:58:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/55455035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571766</commentid>
    <comment_count>7</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-09-17 18:29:17 -0700</bug_when>
    <thetext>This broke WinCairo; fixed in r250016.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378983</attachid>
            <date>2019-09-17 13:28:31 -0700</date>
            <delta_ts>2019-09-17 14:57:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201881-20190917132830.patch</filename>
            <type>text/plain</type>
            <size>42266</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmOGQ3NjA0NThkYzNkYjUy
NmQyNTlmZTU0MzE1NjhmMWZiODhhOTUuLjM5NTk1ODE3OTUzYjI5ZWQ2NmQ4ODQ5MTNkNzE1ZWVi
MTkyNGI1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTktMDktMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJQcm9jZXNzIGNsYXNzIG1ldGhv
ZHMgc2hvdWxkIG5vdCBuZWVkIHRvIHRha2UgYSBzZXNzaW9uSUQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTg4MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlByb2Nlc3MgY2xhc3MgbWV0aG9kcyBz
aG91bGQgbm90IG5lZWQgdG8gdGFrZSBhIHNlc3Npb25JRCBnaXZlbiB0aGF0IHdlIGhhdmUgYSBz
aW5nbGUKKyAgICAgICAgc2Vzc2lvbiBwZXIgV2ViUHJvY2VzcyBub3cuCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmFkZEF1dG9TdGFydE9yaWdpbkhhc2gpOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luSGFz
aGVzQ29weSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVy
OjpzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdCk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRl
ci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp3ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzZW5kVG9BbGxQcm9jZXNzZXMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6c2VuZFRvQWxsUHJvY2Vzc2VzRm9yU2Vzc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6ZXN0YWJsaXNoU2VydmljZVdvcmtlckNvbnRleHQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Vmlldzo6cGx1Z2luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbHVnSW5DbGllbnQ6OmRpZFN0YXJ0RnJvbU9yaWdpbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjbG9z
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpzZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnJlbW92ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpzaG91bGRQbHVnSW5BdXRvU3RhcnRGcm9tT3JpZ2luKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6cGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6ZGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9u
VG9OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA5LTE3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlcmUgc2hvdWxk
IGJlIGEgc2luZ2xlIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24gcGVyIFdlYlByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggMzg3MDM5YjAyMmY1ODU2NDQzZGIyOWU1YTg5YzllODQ3YzJhZTc5MC4uMWU3NDM1
YzExNjMzYTFiMTJmYTlkY2Q2ZWQxNzE5ZWI1MTAyYjM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTExMSw3
ICsxMTEsNiBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBub3RpZmljYXRpb25QZXJt
aXNzaW9uczsKICNlbmRpZgogCi0gICAgZW5jb2RlciA8PCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXM7CiAgICAgZW5jb2RlciA8PCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5zOwogICAgIGVuY29k
ZXIgPDwgbWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAgICBlbmNvZGVyIDw8IGF0dHJTdHlsZUVuYWJs
ZWQ7CkBAIC0zMTUsOCArMzE0LDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMucGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5wbHVnSW5BdXRvU3RhcnRPcmlnaW5z
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5tZW1vcnlDYWNoZURpc2FibGVkKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MmVjM2Q2ODBiOWRhMWQ3NDA4
ZjdmYmI3MmJhNWFhZjc5NzAwMjAxLi5iODg5ZmNkMTM3YTMzMDk1MGM0NGZkODk2OTNmNmVkNzAx
ZjlkZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0xNTgsNyArMTU4LDYgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPiBub3RpZmljYXRpb25Q
ZXJtaXNzaW9uczsKICNlbmRpZgogCi0gICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1h
cDx1bnNpZ25lZCwgV2FsbFRpbWU+PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAg
VmVjdG9yPFN0cmluZz4gcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKIAogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggOWM3ZTgyOWM4NmM0NGFlY2Q5NjU1MGYzZTYy
YTE5NGM3OTAxOWM2ZS4uN2RlNmZhYmI1ZDc0Y2MzMTgyMmU5OTEzOWIxNjMxZDgxMThiNWNmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVycy5oCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVycyB7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1lZGlhS2V5U3RvcmFnZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBTdHJpbmcgamF2YVNjcmlwdENvbmZpZ3VyYXRp
b25EaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIEhhc2hNYXA8dW5zaWduZWQs
IFdhbGxUaW1lPiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAgYm9vbCByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC02NCw2ICs2NSw3IEBAIHZv
aWQgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIgPDwgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOwogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rvcnk7
CiAgICAgZW5jb2RlciA8PCBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKICAg
ICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOwogfQogCkBAIC0xMjMs
NiArMTI1LDExIEBAIE9wdGlvbmFsPFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzPiBXZWJQ
cm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKERlCiAgICAgZGVjb2RlciA+PiBqYXZh
U2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIWph
dmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICAKKyAgICBPcHRpb25hbDxIYXNoTWFwPHVuc2ln
bmVkLCBXYWxsVGltZT4+IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKKyAgICBkZWNvZGVy
ID4+IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKKyAgICBpZiAoIXBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIGJvb2wg
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKSkKQEAgLTE0MSw2ICsxNDgsNyBA
QCBPcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycz4gV2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnM6OmRlY29kZShEZQogICAgICAgICBXVEZNb3ZlKCptZWRpYUtleVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogICAgICAgICBXVEZNb3ZlKGphdmFTY3JpcHRD
b25maWd1cmF0aW9uRGlyZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZSgqamF2YVNjcmlwdENvbmZp
Z3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAorICAgICAgICBXVEZNb3ZlKCpwbHVn
SW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMpLAogICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZAogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCmluZGV4IGM3ODllOTg2ZmY4
M2Y2ZDMxZmMzOWJiZWQwYzM1NzUzMTFjMmU1MGUuLmQyYjM1MWNlYzg4NGNlMTMwYjQ2YmRlZWVh
OTdlZjNiZTkwMGY1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCkBAIC02NiwyNCArNjYsMjQg
QEAgdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChj
b25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIHUKICAgICBpdC0+dmFsdWUuc2V0KHBsdWdJbk9yaWdp
bkhhc2gsIGV4cGlyYXRpb25UaW1lKTsKICAgICBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLnNldChw
bHVnSW5PcmlnaW5IYXNoLCBwYWdlT3JpZ2luKTsKIAotICAgIG1fcHJvY2Vzc1Bvb2wtPnNlbmRU
b0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlkQWRkUGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaChwbHVnSW5PcmlnaW5IYXNoLCBleHBpcmF0aW9uVGltZSwgc2Vzc2lvbklEKSk7
CisgICAgbV9wcm9jZXNzUG9vbC0+c2VuZFRvQWxsUHJvY2Vzc2VzRm9yU2Vzc2lvbihNZXNzYWdl
czo6V2ViUHJvY2Vzczo6RGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChwbHVnSW5Pcmln
aW5IYXNoLCBleHBpcmF0aW9uVGltZSksIHNlc3Npb25JRCk7CiAKICAgICBpZiAoIXNlc3Npb25J
RC5pc0VwaGVtZXJhbCgpKQogICAgICAgICBtX3Byb2Nlc3NQb29sLT5jbGllbnQoKS5wbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkKG1fcHJvY2Vzc1Bvb2wpOwogfQogCi1TZXNzaW9u
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3Rh
cnRPcmlnaW5IYXNoZXNDb3B5KCkgY29uc3QKK1BsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCBQbHVn
SW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ29weShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7Ci0gICAgU2Vzc2lvblBsdWdJbkF1dG9TdGFydE9yaWdp
bk1hcCBzZXNzaW9uTWFwOworICAgIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCBtYXA7CiAKLSAg
ICBmb3IgKGNvbnN0IGF1dG8mIHNlc3Npb25LZXlPcmlnaW5IYXNoIDogbV9hdXRvU3RhcnRUYWJs
ZSkgewotICAgICAgICBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAmIG1hcCA9IHNlc3Npb25NYXAu
YWRkKHNlc3Npb25LZXlPcmlnaW5IYXNoLmtleSwgUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwKCkp
Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBrZXlPcmlnaW5IYXNo
IDogc2Vzc2lvbktleU9yaWdpbkhhc2gudmFsdWUpIHsKKyAgICBhdXRvIGl0ID0gbV9hdXRvU3Rh
cnRUYWJsZS5maW5kKHNlc3Npb25JRCk7CisgICAgaWYgKGl0ICE9IG1fYXV0b1N0YXJ0VGFibGUu
ZW5kKCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBrZXlPcmlnaW5IYXNoIDogaXQtPnZh
bHVlKSB7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG9yaWdpbkhhc2ggOiBrZXlPcmln
aW5IYXNoLnZhbHVlKQogICAgICAgICAgICAgICAgIG1hcC5zZXQob3JpZ2luSGFzaC5rZXksIG9y
aWdpbkhhc2gudmFsdWUpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBzZXNzaW9uTWFw
OworICAgIHJldHVybiBtYXA7CiB9CiAKIFJlZjxBUEk6OkRpY3Rpb25hcnk+IFBsdWdJbkF1dG9T
dGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3QKQEAgLTE1Myw3
ICsxNTMsNyBAQCB2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmln
aW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdChBUEk6OgogICAgICAgICAgICAgYXN0LnNldChz
dHJEaWN0LmtleSwgaGFzaGVzKTsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3NQb29sLT5zZW5kVG9B
bGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlJlc2V0UGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luRGVmYXVsdEhhc2hlcyhoYXNoTWFwKSk7CisgICAgbV9wcm9jZXNzUG9vbC0+c2VuZFRvQWxs
UHJvY2Vzc2VzRm9yU2Vzc2lvbihNZXNzYWdlczo6V2ViUHJvY2Vzczo6UmVzZXRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoZXMoaGFzaE1hcCksIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkpOwogfQogCiB2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRP
cmlnaW5zQXJyYXkoQVBJOjpBcnJheSYgb3JpZ2luTGlzdCkKQEAgLTE4Myw3ICsxODMsNyBAQCB2
b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVu
c2lnbmVkIHBsdWdJbk9yaWdpbkhhcwogCiAgICAgV2FsbFRpbWUgbmV3RXhwaXJhdGlvblRpbWUg
PSBleHBpcmF0aW9uVGltZUZyb21Ob3coKTsKICAgICBtX2F1dG9TdGFydFRhYmxlLmFkZChzZXNz
aW9uSUQsIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQoaXQtPnZhbHVlLCBQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAoKSkuaXRlcmF0b3ItPnZhbHVlLnNldChwbHVnSW5Pcmln
aW5IYXNoLCBuZXdFeHBpcmF0aW9uVGltZSk7Ci0gICAgbV9wcm9jZXNzUG9vbC0+c2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKHBsdWdJbk9yaWdpbkhhc2gsIG5ld0V4cGlyYXRpb25UaW1lLCBzZXNzaW9uSUQpKTsK
KyAgICBtX3Byb2Nlc3NQb29sLT5zZW5kVG9BbGxQcm9jZXNzZXNGb3JTZXNzaW9uKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHBsdWdJbk9yaWdp
bkhhc2gsIG5ld0V4cGlyYXRpb25UaW1lKSwgc2Vzc2lvbklEKTsKICAgICBtX3Byb2Nlc3NQb29s
LT5jbGllbnQoKS5wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXNDaGFuZ2VkKG1fcHJvY2Vzc1Bv
b2wpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdJbkF1dG9TdGFydFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKaW5kZXggYzhkNzEwZTUxNjBmMjg2YWIxODM5OGM1
NTRmNjRlMDcyYTRjZDY4Zi4uNzM1Yjc2MDhjZDhhNjM4NmRmZjNjYTZlNmJmYWQ5ZTNiMTUyMGUy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRv
U3RhcnRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRBdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQ
STo6RGljdGlvbmFyeSYsIFdhbGxUaW1lKTsKICAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNB
cnJheShBUEk6OkFycmF5Jik7CiAKLSAgICBTZXNzaW9uUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFw
IGF1dG9TdGFydE9yaWdpbkhhc2hlc0NvcHkoKSBjb25zdDsKKyAgICBQbHVnSW5BdXRvU3RhcnRP
cmlnaW5NYXAgYXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ29weShQQUw6OlNlc3Npb25JRCkgY29uc3Q7
CiAgICAgY29uc3QgUGx1Z0luQXV0b1N0YXJ0T3JpZ2lucyYgYXV0b1N0YXJ0T3JpZ2lucygpIGNv
bnN0IHsgcmV0dXJuIG1fYXV0b1N0YXJ0T3JpZ2luczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDc4ZThjNzljM2VhZmViNDk1
YWNjNWM3ODNiNDM3NjM5ZGZkZDhmNDMuLmYwZTJlMWM5OTg2MTI5NmU4OWY4YTMwZDA5YmExNDRm
YmEwM2YwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
QEAgLTg5NCw2ICs4OTQsOCBAQCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJQcm9j
ZXNzUG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUAogICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKICAgICBpZiAoIWphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5LmlzRW1w
dHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29s
dmluZ1BhdGgoamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnksIFNhbmRib3hFeHRlbnNp
b246OlR5cGU6OlJlYWRXcml0ZSwgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworICAgICAgICAKKyAgICBhdXRvIHBsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2hlcyA9IG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuYXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ29w
eSh3ZWJzaXRlRGF0YVN0b3JlLnNlc3Npb25JRCgpKTsKIAogICAgIHJldHVybiBXZWJQcm9jZXNz
RGF0YVN0b3JlUGFyYW1ldGVycyB7CiAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUuc2Vzc2lvbklE
KCksCkBAIC05MDgsNiArOTEwLDcgQEAgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgV2Vi
UHJvY2Vzc1Bvb2w6OndlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlAKICAgICAgICAg
V1RGTW92ZShtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogICAgICAg
ICBXVEZNb3ZlKGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KSwKICAgICAgICAgV1RG
TW92ZShqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCisg
ICAgICAgIFdURk1vdmUocGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKSwKICAgICAgICAgd2Vi
c2l0ZURhdGFTdG9yZS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpCiAgICAgfTsKIH0K
QEAgLTk3MCw3ICs5NzMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2Vi
UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogICAgIHBhcmFtZXRl
cnMubm90aWZpY2F0aW9uUGVybWlzc2lvbnMgPSBzdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eT4oKS0+bm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKICNlbmRpZgogCi0gICAg
cGFyYW1ldGVycy5wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMgPSBtX3BsdWdJbkF1dG9TdGFy
dFByb3ZpZGVyLmF1dG9TdGFydE9yaWdpbkhhc2hlc0NvcHkoKTsKICAgICBwYXJhbWV0ZXJzLnBs
dWdJbkF1dG9TdGFydE9yaWdpbnMgPSBjb3B5VG9WZWN0b3IobV9wbHVnSW5BdXRvU3RhcnRQcm92
aWRlci5hdXRvU3RhcnRPcmlnaW5zKCkpOwogCiAgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURp
c2FibGVkID0gbV9tZW1vcnlDYWNoZURpc2FibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKaW5kZXggNmI3Yzc2MTEzYWQ5NmY5NDZlMWUyOGYyYWRmZDkxOTRlOGJi
OTMzYy4uNjJmZmUyMGI4OWNkZGJmYmUxZGEyZGViYWQwZGJhYzk1NDEzZmNhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xODcsNiArMTg3LDcgQEAgcHVi
bGljOgogICAgIElQQzo6Q29ubmVjdGlvbiogbmV0d29ya2luZ1Byb2Nlc3NDb25uZWN0aW9uKCk7
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb0FsbFByb2Nlc3Nlcyhjb25z
dCBUJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb0FsbFBy
b2Nlc3Nlc0ZvclNlc3Npb24oY29uc3QgVCYgbWVzc2FnZSwgUEFMOjpTZXNzaW9uSUQpOwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdU
aGVtSWZOZWNlc3NhcnkoY29uc3QgVCYgbWVzc2FnZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gdm9pZCBzZW5kVG9PbmVQcm9jZXNzKFQmJiBtZXNzYWdlKTsKIApAQCAtODQ1LDYgKzg0Niwx
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9BbGxQcm9jZXNzZXMoY29uc3QgVCYgbWVz
c2FnZSkKICAgICB9CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZW5kVG9BbGxQcm9jZXNzZXNGb3JTZXNzaW9uKGNvbnN0IFQmIG1lc3NhZ2UsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBzaXplX3QgcHJvY2Vzc0NvdW50ID0gbV9wcm9j
ZXNzZXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvY2Vzc0NvdW50OyAr
K2kpIHsKKyAgICAgICAgV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzID0gbV9wcm9jZXNzZXNbaV0u
Z2V0KCk7CisgICAgICAgIGlmIChwcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpICYmICFwcm9jZXNz
LT5pc1ByZXdhcm1lZCgpICYmIHByb2Nlc3MtPnNlc3Npb25JRCgpID09IHNlc3Npb25JRCkKKyAg
ICAgICAgICAgIHByb2Nlc3MtPnNlbmQoVChtZXNzYWdlKSwgMCk7CisgICAgfQorfQorCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvQWxsUHJvY2Vzc2Vz
UmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoY29uc3QgVCYgbWVzc2FnZSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVkNjNkNDUzODEzNzUz
NTViNjU5NDJhYjM2MTVmMjYwMDg1YzhmYjkuLjYzMGU2YjJhYjM2YjNjYWRmNzM1YjFmYTk4NmFm
OTIzNjNkMDM0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtOTc1LDUxICs5NzUsNTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OndpbmRvd1Nl
cnZlckNvbm5lY3Rpb25TdGF0ZUNoYW5nZWQoKQogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZldGNo
V2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiBkYXRhVHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKHNlc3Npb25JRCwgc2Vzc2lvbklEID09IHRoaXMtPnNlc3Npb25JRCgp
KTsKIAogICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tl
bigpOwotICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcg
YSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBmZXRjaGlu
ZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRihpc1JlbGVhc2VMb2dn
aW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlz
IHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlz
IGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwogCi0gICAgY29ubmVjdGlvbigpLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vz
c2lvbklELCBkYXRhVHlwZXMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
c2Vzc2lvbklEXSAoYXV0byByZXBseSkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoZGF0
YVR5cGVzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdG9rZW4sIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChhdXRvIHJlcGx5
KSBtdXRhYmxlIHsKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgICAgICBVTlVTRURfUEFS
QU0oc2Vzc2lvbklEKTsKICAgICAgICAgVU5VU0VEX1BBUkFNKHRoaXMpOwogI2VuZGlmCiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVwbHkpKTsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNz
ZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0ZSBk
YXRhIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzUmVsZWFzZUxvZ2dpbmdBbGxv
d2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFz
aW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9u
ZSBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKIH0KIAogdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNp
bmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOworICAgIEFTU0VSVF9VTlVTRUQoc2Vzc2lvbklE
LCBzZXNzaW9uSUQgPT0gdGhpcy0+c2Vzc2lvbklEKCkpOwogCiAgICAgYXV0byB0b2tlbiA9IHRo
cm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgUkVMRUFTRV9MT0dfSUYo
c2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwor
ICAgIFJFTEVBU0VfTE9HX0lGKGlzUmVsZWFzZUxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3Nl
cnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwg
dGhpcyk7CiAKLSAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlm
aWVkU2luY2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0b2tlbiwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklE
XSAoKSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoZGF0YVR5cGVzLCBtb2RpZmllZFNp
bmNlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdG9rZW4sIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewog
I2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIFVOVVNFRF9QQVJBTSh0aGlzKTsKLSAg
ICAgICAgVU5VU0VEX1BBUkFNKHNlc3Npb25JRCk7CiAjZW5kaWYKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5
IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9j
ZXNzIGlzIGRvbmUgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGKGlzUmVsZWFzZUxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0
aGlzKTsKICAgICB9KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4mIG9yaWdpbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoY2FuU2VuZE1lc3NhZ2UoKSk7CisgICAgQVNTRVJUX1VOVVNF
RChzZXNzaW9uSUQsIHNlc3Npb25JRCA9PSB0aGlzLT5zZXNzaW9uSUQoKSk7CiAKICAgICBhdXRv
IHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAgICBSRUxF
QVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NT
dXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBh
c3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRh
IGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRihpc1JlbGVh
c2VMb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1By
b3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9j
ZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7
CiAKLSAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6RGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBv
cmlnaW5zKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdG9rZW4sIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRF0g
KCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhkYXRhVHlwZXMsIG9y
aWdpbnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0b2tlbiwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7
CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgVU5VU0VEX1BBUkFNKHRoaXMpOwot
ICAgICAgICBVTlVTRURfUEFSQU0oc2Vzc2lvbklEKTsKICNlbmRpZgogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHBy
b2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIs
IHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihpc1JlbGVhc2VMb2dnaW5nQWxsb3dlZCgp
LCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBh
IGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRvbmUgZGVs
ZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsKICAgICB9KTsK
IH0KIApAQCAtMTUwNyw3ICsxNTA3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbGVhc2VC
YWNrZ3JvdW5kQWN0aXZpdHlUb2tlbkZvckZ1bGxzY3JlZW5JbnB1dCgpCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVzdGFibGlzaFNlcnZpY2VXb3Jr
ZXJDb250ZXh0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogewotICAgIHNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OkVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9O
ZXR3b3JrUHJvY2VzcyB7IHByb2Nlc3NQb29sKCkuZGVmYXVsdFBhZ2VHcm91cCgpLnBhZ2VHcm91
cElEKCksIG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uLT5zZXJ2aWNlV29ya2VyUGFnZVByb3h5
SUQsIG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uLT5zZXJ2aWNlV29ya2VyUGFnZUlELCBzdG9y
ZSwgKm1fcmVnaXN0cmFibGVEb21haW4sIG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkg
fSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzIHsgcHJvY2Vzc1Bvb2woKS5kZWZhdWx0UGFn
ZUdyb3VwKCkucGFnZUdyb3VwSUQoKSwgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPnNlcnZp
Y2VXb3JrZXJQYWdlUHJveHlJRCwgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPnNlcnZpY2VX
b3JrZXJQYWdlSUQsIHN0b3JlLCAqbV9yZWdpc3RyYWJsZURvbWFpbiB9LCAwKTsKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnNldFNlcnZpY2VXb3JrZXJVc2VyQWdlbnQoY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCmluZGV4IDExOWQyYjkwYzJiNDQyMzFmMjU2OTU3ZTYyZGRjYThmMTMwZmM3MzAu
LmJjYTkxZWM0MDA5ZGY2MWNhMjQ5MmZkNTM5YzY0MjdlM2U1ODUyZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xODQyLDcgKzE4
NDIsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBsdWdpbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24o
KQogICAgIFN0cmluZyBwbHVnaW5PcmlnaW4gPSBwbHVnSW5JbWFnZUVsZW1lbnQubG9hZGVkVXJs
KCkuaG9zdCgpLnRvU3RyaW5nKCk7CiAgICAgU3RyaW5nIG1pbWVUeXBlID0gcGx1Z0luSW1hZ2VF
bGVtZW50LnNlcnZpY2VUeXBlKCk7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wbHVn
SW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHBhZ2VPcmlnaW4sIHBsdWdpbk9yaWdpbiwgbWlt
ZVR5cGUsIHBsdWdJbkltYWdlRWxlbWVudC5kb2N1bWVudCgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkp
OworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJh
Y3Rpb24ocGFnZU9yaWdpbiwgcGx1Z2luT3JpZ2luLCBtaW1lVHlwZSk7CiB9CiAKIGJvb2wgUGx1
Z2luVmlldzo6c2hvdWxkQ3JlYXRlVHJhbnNpZW50UGFpbnRpbmdTbmFwc2hvdCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1
Z0luQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbHVnSW5DbGllbnQuY3BwCmluZGV4IDU1MTQ4ODAyMjg5NjczYWEzZmEzZGI5ZDU2MDhjYWVj
MTVkNjRjMjIuLjJmNTBiOTUwNDQ2MGEzNDU3NDMwZWI1MDQ5ZjIxNWVkNzBmZjRkYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbHVnSW5DbGllbnQuY3BwCkBAIC01NSw3ICs1NSw4IEBAIGJvb2wgV2ViUGx1Z0luQ2xpZW50
OjpzaG91bGRBdXRvU3RhcnRGcm9tT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29u
c3QKIAogdm9pZCBXZWJQbHVnSW5DbGllbnQ6OmRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJp
bmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKHBhZ2VPcmlnaW4sIHBsdWdpbk9y
aWdpbiwgbWltZVR5cGUsIHNlc3Npb25JRCk7CisgICAgQVNTRVJUX1VOVVNFRChzZXNzaW9uSUQs
IHNlc3Npb25JRCA9PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZXNzaW9uSUQoKSk7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKHBhZ2VPcmln
aW4sIHBsdWdpbk9yaWdpbiwgbWltZVR5cGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMDJl
OWQ1Yzk4MDE0ZGZhZDJjOTY3MDkzMzNjMjY1MWQ1ZTg1ODBkOS4uZDQzMGQwOWQ5YTJiNzQxZjMy
M2RkNTA5MGE1YTBlYjBlZTQwOThhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE0MjQsNyArMTQyNCw2IEBAIHZvaWQgV2ViUGFnZTo6Y2xv
c2UoKQogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZGV0YWNoRnJvbVBh
cmVudCgpOwogICAgIG1fZHJhd2luZ0FyZWEgPSBudWxscHRyOwogCi0gICAgYXV0byBzZXNzaW9u
SUQgPSB0aGlzLT5zZXNzaW9uSUQoKTsKICAgICBEZWZlcnJlZFBhZ2VEZXN0cnVjdG9yOjpjcmVh
dGVEZWZlcnJlZFBhZ2VEZXN0cnVjdG9yKFdURk1vdmUobV9wYWdlKSwgdGhpcyk7CiAKICAgICBi
b29sIGlzUnVubmluZ01vZGFsID0gbV9pc1J1bm5pbmdNb2RhbDsKQEAgLTE0NTMsNyArMTQ1Miw3
IEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogI2VuZGlmCiAKICAgICAvLyBUaGUgV2ViUGFnZSBj
YW4gYmUgZGVzdHJveWVkIGJ5IHRoaXMgY2FsbC4KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5yZW1vdmVXZWJQYWdlKHNlc3Npb25JRCwgbV9pZGVudGlmaWVyKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5yZW1vdmVXZWJQYWdlKG1faWRlbnRpZmllcik7CiAKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMGI3MmQzNmJmZGUzMjJjN2M1ZDY2ZmQwMWNlYWQz
MmNlZjc2ODYxNy4uNzdhODgwNDQzODUxNjNmMjI5MDNiYmRkODYyNjEzZDhhODQ3OWI1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjEzLDggKzIxMyw2IEBA
IFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+
KCk7CiAjZW5kaWYKLQotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGlt
ZT4oKSk7CiAgICAgCiAgICAgR2lnYWNhZ2U6OmZvcmJpZERpc2FibGluZ1ByaW1pdGl2ZUdpZ2Fj
YWdlKCk7CiB9CkBAIC0zODksNyArMzg3LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIAog
ICAgIHNldFRlcm1pbmF0aW9uVGltZW91dChwYXJhbWV0ZXJzLnRlcm1pbmF0aW9uVGltZW91dCk7
CiAKLSAgICByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhwYXJhbWV0ZXJzLnBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlcyk7CiAgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBwYXJhbWV0
ZXJzLnBsdWdJbkF1dG9TdGFydE9yaWdpbnMpCiAgICAgICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3Jp
Z2lucy5hZGQob3JpZ2luKTsKIApAQCAtNDU3LDYgKzQ1NCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6
c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRl
cnMmJiBwCiAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRTaGFyZWQoKm5ldyBXZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlcik7CiAjZW5kaWYKIAorICAgIHJlc2V0UGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzKFdURk1vdmUocGFyYW1ldGVycy5wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMpKTsKKwogICAgIGZvciAoYXV0byYgc3VwcGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVz
KCkpCiAgICAgICAgIHN1cHBsZW1lbnQtPnNldFdlYnNpdGVEYXRhU3RvcmUocGFyYW1ldGVycyk7
CiAKQEAgLTY2OCw5ICs2NjcsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OmNyZWF0ZVdlYlBhZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJgogICAgIEFTU0VS
VChyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVX
ZWJQYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQor
dm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsK
LSAgICBBU1NFUlQoc2Vzc2lvbklEID09IHRoaXMtPnNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQo
bV9wYWdlTWFwLmNvbnRhaW5zKHBhZ2VJRCkpOwogCiAgICAgcGFnZVdpbGxMZWF2ZVdpbmRvdyhw
YWdlSUQpOwpAQCAtODU3LDIyICs4NTUsMTIgQEAgc3RhdGljIHVuc2lnbmVkIGhhc2hGb3JQbHVn
SW5PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWcKICAg
ICByZXR1cm4gaGFzaGVyLmhhc2goKTsKIH0KIAotYm9vbCBXZWJQcm9jZXNzOjppc1BsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorYm9vbCBXZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCkKIHsKLSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lv
bklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9u
SXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7
Ci0gICAgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+Ojpjb25zdF9pdGVyYXRvciBpdDsKLSAg
ICBib29sIGNvbnRhaW5zID0gZmFsc2U7CisgICAgYXV0byBpdCA9IG1fcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzLmZpbmQocGx1Z0luT3JpZ2luSGFzaCk7CisgICAgaWYgKGl0ID09IG1fcGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpZiAoc2Vzc2lvbkl0ZXJhdG9yICE9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
LmVuZCgpKSB7Ci0gICAgICAgIGl0ID0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5maW5kKHBsdWdJ
bk9yaWdpbkhhc2gpOwotICAgICAgICBjb250YWlucyA9IGl0ICE9IHNlc3Npb25JdGVyYXRvci0+
dmFsdWUuZW5kKCk7Ci0gICAgfQotICAgIGlmICghY29udGFpbnMpIHsKLSAgICAgICAgc2Vzc2lv
bkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKLSAgICAgICAgaXQgPSBzZXNzaW9uSXRlcmF0b3It
PnZhbHVlLmZpbmQocGx1Z0luT3JpZ2luSGFzaCk7Ci0gICAgICAgIGlmIChpdCA9PSBzZXNzaW9u
SXRlcmF0b3ItPnZhbHVlLmVuZCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
ICAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpIDwgaXQtPnZhbHVlOwogfQogCkBAIC04OTAsMTAg
Kzg3OCwxMCBAQCBib29sIFdlYlByb2Nlc3M6OnNob3VsZFBsdWdJbkF1dG9TdGFydEZyb21Pcmln
aW4oV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgU3RyaW5nJgogI2VuZGlmCiAKICAgICAvLyBMYXN0
bHkgY2hlY2sgYWdhaW5zdCB0aGUgbW9yZSBleHBsaWNpdCBoYXNoIGxpc3QuCi0gICAgcmV0dXJu
IGlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaChoYXNoRm9yUGx1Z0luT3JpZ2luKHBhZ2VPcmln
aW4sIHBsdWdpbk9yaWdpbiwgbWltZVR5cGUpLCB3ZWJQYWdlLnNlc3Npb25JRCgpKTsKKyAgICBy
ZXR1cm4gaXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKGhhc2hGb3JQbHVnSW5PcmlnaW4ocGFn
ZU9yaWdpbiwgcGx1Z2luT3JpZ2luLCBtaW1lVHlwZSkpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6
OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0
IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdp
bihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIGlmIChwYWdlT3JpZ2luLmlzRW1wdHkoKSkg
ewogICAgICAgICBMT0coUGx1Z2lucywgIk5vdCBhZGRpbmcgZW1wdHkgcGFnZSBvcmlnaW4iKTsK
QEAgLTkwMSw3ICs4ODksNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9y
aWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZwogICAgIH0KIAogICAg
IHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2ggPSBoYXNoRm9yUGx1Z0luT3JpZ2luKHBhZ2VPcmln
aW4sIHBsdWdpbk9yaWdpbiwgbWltZVR5cGUpOwotICAgIGlmIChpc1BsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2gocGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklEKSkgeworICAgIGlmIChpc1BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2gocGx1Z0luT3JpZ2luSGFzaCkpIHsKICAgICAgICAgTE9HKFBs
dWdpbnMsICJIYXNoICV4IGFscmVhZHkgZXhpc3RzIGFzIGF1dG8tc3RhcnQgb3JpZ2luIChyZXF1
ZXN0IGZvciAlcykiLCBwbHVnSW5PcmlnaW5IYXNoLCBwYWdlT3JpZ2luLnV0ZjgoKS5kYXRhKCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTEwLDMxICs4OTgsMjUgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2lu
LCBjb25zdCBTdHJpbmcKICAgICAvLyBjb21lcyBiYWNrIGZyb20gdGhlIHBhcmVudCBwcm9jZXNz
LiBUZW1wb3JhcmlseSBhZGQgdGhpcyBoYXNoIHRvIHRoZSBsaXN0IHdpdGggYSB0aGlydHkKICAg
ICAvLyBzZWNvbmQgdGltZW91dC4gVGhhdCB3YXksIGV2ZW4gaWYgdGhlIHBhcmVudCBkZWNpZGVz
IG5vdCB0byBhZGQgaXQsIHdlJ2xsIG9ubHkgYmUKICAgICAvLyBpbmNvcnJlY3QgZm9yIGEgbGl0
dGxlIHdoaWxlLgotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChzZXNzaW9u
SUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPigpKS5pdGVyYXRvci0+dmFsdWUuc2V0KHBs
dWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lOjpub3coKSArIDMwX3MgKiAxMDAwKTsKKyAgICBtX3Bs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5zZXQocGx1Z0luT3JpZ2luSGFzaCwgV2FsbFRpbWU6
Om5vdygpICsgMzBfcyAqIDEwMDApOwogCi0gICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OkFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2gocGFnZU9yaWdpbiwgcGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklEKSwgMCk7CisgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OkFk
ZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gocGFnZU9yaWdpbiwgcGx1Z0luT3JpZ2luSGFzaCwg
c2Vzc2lvbklEKCkpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lIGV4cGly
YXRpb25UaW1lLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmRp
ZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwg
V2FsbFRpbWUgZXhwaXJhdGlvblRpbWUpCiB7CiAgICAgLy8gV2hlbiBjYWxsZWQsIHNvbWUgd2Vi
IHByb2Nlc3MgKHdoaWNoIGFsc28gbWlnaHQgYmUgdGhpcyBvbmUpIGFkZGVkIHRoZSBvcmlnaW4g
Zm9yIGF1dG8tc3RhcnRpbmcsCiAgICAgLy8gb3IgcmVjZWl2ZWQgdXNlciBpbnRlcmFjdGlvbi4K
ICAgICAvLyBTZXQgdGhlIGJpdCB0byBhdm9pZCBoYXZpbmcgcmVkdW5kYW50bHkgY2FsbCBpbnRv
IHRoZSBVSSBwcm9jZXNzIHVwb24gdXNlciBpbnRlcmFjdGlvbi4KLSAgICBtX3BsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2hlcy5hZGQoc2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGlt
ZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnNldChwbHVnSW5PcmlnaW5IYXNoLCBleHBpcmF0aW9uVGlt
ZSk7CisgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuc2V0KHBsdWdJbk9yaWdpbkhh
c2gsIGV4cGlyYXRpb25UaW1lKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1
dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29uc3QgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRp
bWU+JiBoYXNoZXMpCit2b2lkIFdlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaGVzKEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPiYmIGhhc2hlcykKIHsKLSAgICBtX3Bs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5jbGVhcigpOwotICAgIG1fcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNo
TWFwPHVuc2lnbmVkLCBXYWxsVGltZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnN3YXAoY29uc3RfY2Fz
dDxIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4mPihoYXNoZXMpKTsKKyAgICBtX3BsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2hlcyA9IFdURk1vdmUoaGFzaGVzKTsKIH0KIAotdm9pZCBXZWJQcm9j
ZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6
U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4+JiBoYXNoZXMpCi17Ci0gICAg
bV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8UEFM
OjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPj4mPihoYXNoZXMpKTsKLX0K
LQotdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0
IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vz
czo6cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmln
aW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQog
ewogICAgIGlmIChwYWdlT3JpZ2luLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTQz
LDI0ICs5MjUsMTQgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVy
YWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICBpZiAoIXBsdWdJbk9y
aWdpbkhhc2gpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQs
IEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVy
YXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKLSAg
ICBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT46OmNvbnN0X2l0ZXJhdG9yIGl0OwotICAgIGJv
b2wgY29udGFpbnMgPSBmYWxzZTsKLSAgICBpZiAoc2Vzc2lvbkl0ZXJhdG9yICE9IG1fcGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmVuZCgpKSB7Ci0gICAgICAgIGl0ID0gc2Vzc2lvbkl0ZXJh
dG9yLT52YWx1ZS5maW5kKHBsdWdJbk9yaWdpbkhhc2gpOwotICAgICAgICBjb250YWlucyA9IGl0
ICE9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCk7Ci0gICAgfQotICAgIGlmICghY29udGFp
bnMpIHsKLSAgICAgICAgc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuZmluZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKLSAgICAgICAg
aXQgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmZpbmQocGx1Z0luT3JpZ2luSGFzaCk7Ci0gICAg
ICAgIGlmIChpdCA9PSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmVuZCgpKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgIH0KKyAgICBhdXRvIGl0ID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMuZmluZChwbHVnSW5PcmlnaW5IYXNoKTsKKyAgICBpZiAoaXQgPT0gbV9wbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXMuZW5kKCkpCisgICAgICAgIHJldHVybjsKIAogICAgIGlmIChpdC0+dmFs
dWUgLSBXYWxsVGltZTo6bm93KCkgPiBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVVwZGF0
ZVRocmVzaG9sZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBsdWdJbkRpZFJlY2VpdmVVc2Vy
SW50ZXJhY3Rpb24ocGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklEKSwgMCk7CisgICAgcGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBsdWdJ
bkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24ocGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklEKCkp
LCAwKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVp
bnQ4X3QgcG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQpAQCAtMTMyOCwzNyArMTMwMCwz
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlbGVhc2VQYWdlQ2FjaGUoKQogICAgIFBhZ2VDYWNoZTo6
c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6TWVtb3J5UHJlc3N1
cmUpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0
ZURhdGEmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2Vic2l0ZURhdGEgd2Vic2l0
ZURhdGE7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpNZW1vcnlDYWNoZSkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBNZW1vcnlDYWNo
ZTo6c2luZ2xldG9uKCkub3JpZ2luc1dpdGhDYWNoZShzZXNzaW9uSUQpKQorICAgICAgICBmb3Ig
KGF1dG8mIG9yaWdpbiA6IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5vcmlnaW5zV2l0aENhY2hl
KHNlc3Npb25JRCgpKSkKICAgICAgICAgICAgIHdlYnNpdGVEYXRhLmVudHJpZXMuYXBwZW5kKFdl
YnNpdGVEYXRhOjpFbnRyeSB7IG9yaWdpbi0+ZGF0YSgpLCBXZWJzaXRlRGF0YVR5cGU6Ok1lbW9y
eUNhY2hlLCAwIH0pOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHdlYnNp
dGVEYXRhKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
KE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1v
ZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBVTlVTRURfUEFSQU0obW9kaWZpZWRTaW5jZSk7CiAKICAgICBpZiAod2Vic2l0
ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewogICAg
ICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFz
b246Ok5vbmUpOwotICAgICAgICBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkuZXZpY3RSZXNvdXJj
ZXMoc2Vzc2lvbklEKTsKKyAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLmV2aWN0UmVz
b3VyY2VzKHNlc3Npb25JRCgpKTsKIAogICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlOjpzaW5nbGV0b24oKS5jbGVhcigpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNp
dGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBv
cmlnaW5EYXRhcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29u
dGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgSGFzaFNldDxS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOwogICAgICAgICBmb3IgKGF1dG8mIG9yaWdp
bkRhdGEgOiBvcmlnaW5EYXRhcykKICAgICAgICAgICAgIG9yaWdpbnMuYWRkKG9yaWdpbkRhdGEu
c2VjdXJpdHlPcmlnaW4oKSk7CiAKLSAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnJl
bW92ZVJlc291cmNlc1dpdGhPcmlnaW5zKHNlc3Npb25JRCwgb3JpZ2lucyk7CisgICAgICAgIE1l
bW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lucyhzZXNzaW9u
SUQoKSwgb3JpZ2lucyk7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CkBAIC0x
ODE2LDEzICsxNzg4LDEzIEBAIExpYldlYlJUQ05ldHdvcmsmIFdlYlByb2Nlc3M6OmxpYldlYlJU
Q05ldHdvcmsoKQogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQcm9j
ZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3ModWlu
dDY0X3QgcGFnZUdyb3VwSUQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUs
IFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKK3ZvaWQgV2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rp
b25Ub05ldHdvcmtQcm9jZXNzKHVpbnQ2NF90IHBhZ2VHcm91cElELCBXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmIHN0b3JlLCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9t
YWluKQogewogICAgIC8vIFdlIGFyZSBpbiB0aGUgU2VydmljZSBXb3JrZXIgY29udGV4dCBwcm9j
ZXNzIGFuZCB0aGUgY2FsbCBiZWxvdyBlc3RhYmxpc2hlcyBvdXIgY29ubmVjdGlvbiB0byB0aGUg
TmV0d29yayBQcm9jZXNzCiAgICAgLy8gYnkgY2FsbGluZyBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uIFNXQ29udGV4dE1hbmFnZXIgbmVlZHMgdG8gdXNlIHRoZSBzYW1lIHVuZGVybHlp
bmcgSVBDOjpDb25uZWN0aW9uIGFzIHRoZQogICAgIC8vIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
biBmb3Igc3luY2hyb25pemF0aW9uIHB1cnBvc2VzLgogICAgIGF1dG8mIGlwY0Nvbm5lY3Rpb24g
PSBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0gICAgU1dD
b250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0Q29ubmVjdGlvbihtYWtlVW5pcXVlPFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uPihpcGNDb25uZWN0aW9uLCBXVEZNb3ZlKHJlZ2lzdHJh
YmxlRG9tYWluKSwgc2Vzc2lvbklELCBwYWdlR3JvdXBJRCwgd2ViUGFnZVByb3h5SUQsIHBhZ2VJ
RCwgc3RvcmUpKTsKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRDb25uZWN0
aW9uKG1ha2VVbmlxdWU8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24+KGlwY0Nvbm5lY3Rp
b24sIFdURk1vdmUocmVnaXN0cmFibGVEb21haW4pLCBzZXNzaW9uSUQoKSwgcGFnZUdyb3VwSUQs
IHdlYlBhZ2VQcm94eUlELCBwYWdlSUQsIHN0b3JlKSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAppbmRleCAwNGYzYmVlZjdkYzQyM2ViNzRlMDUzMWQ1ZmYwMjNiMTE4NTQ2N2RjLi5h
NWIxMmQzMGM3NzI3ZmU3ZWYwZDMzNmIzY2VhNmI3NGJmMjE5YzQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE1Nyw3ICsxNTcsNyBAQCBwdWJsaWM6CiAKICAgICBX
ZWJQYWdlKiB3ZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBjb25zdDsKICAgICB2b2lk
IGNyZWF0ZVdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmJik7Ci0gICAgdm9pZCByZW1vdmVXZWJQYWdlKFBBTDo6U2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVXZWJQYWdlKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKTsKICAgICBXZWJQYWdlKiBmb2N1c2VkV2ViUGFnZSgpIGNvbnN0OwogCiAg
ICAgSW5qZWN0ZWRCdW5kbGUqIGluamVjdGVkQnVuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9pbmpl
Y3RlZEJ1bmRsZS5nZXQoKTsgfQpAQCAtMTY5LDggKzE2OSw4IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAgICAgYm9vbCBzaG91bGRQbHVnSW5BdXRvU3RhcnRGcm9tT3JpZ2luKFdlYlBhZ2UmLCBjb25z
dCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKTsKLSAgICB2b2lkIHBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25z
dCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBwbHVnSW5EaWRSZWNl
aXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEKTsK
KyAgICB2b2lkIHBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmln
aW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsK
KyAgICB2b2lkIHBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBw
YWdlT3JpZ2luLCBjb25zdCBTdHJpbmcmIHBsdWdpbk9yaWdpbiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSk7CiAgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5
LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKTsKICAgICB2b2lkIHJlc2V0UGx1Z2luTG9hZENsaWVu
dFBvbGljaWVzKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxT
dHJpbmcsIHVpbnQ4X3Q+Pj4mKTsKICAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMo
KTsKQEAgLTMzOSwxMCArMzM5LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CiAgICAgdm9pZCBm
dWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQpOwogCi0gICAgYm9vbCBpc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1
Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGlkQWRkUGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBXYWxsVGltZSBleHBp
cmF0aW9uVGltZSwgUEFMOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5EZWZhdWx0SGFzaGVzKGNvbnN0IEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPiYg
aGFzaGVzKTsKLSAgICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKGNvbnN0
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPj4mIGhh
c2hlcyk7CisgICAgYm9vbCBpc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1
Z0luT3JpZ2luSGFzaCk7CisgICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
KHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKTsKKyAg
ICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dW5zaWduZWQs
IFdhbGxUaW1lPiYmIGhhc2hlcyk7CiAKICAgICB2b2lkIHBsYXRmb3JtU2V0Q2FjaGVNb2RlbChD
YWNoZU1vZGVsKTsKIApAQCAtMzY1LDE1ICszNjQsMTUgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4
dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKHVpbnQ2NF90IHBhZ2VHcm91cElELCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIFBBTDo6U2Vzc2lvbklE
KTsKKyAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJv
Y2Vzcyh1aW50NjRfdCBwYWdlR3JvdXBJRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmKTsKICAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dHMoKTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUGFnZUNhY2hlKCk7CiAKLSAgICB2b2lk
IGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhJiYpPiYmKTsKLSAgICB2b2lk
IGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAg
IHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0YSYmKT4mJik7CisgICAgdm9pZCBkZWxldGVXZWJz
aXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5j
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAKICAgICB2b2lkIHNldE1lbW9yeUNhY2hlRGlzYWJsZWQoYm9vbCk7CiAKQEAg
LTQ3Niw3ICs0NzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgUmVmUHRyPFdlYkluc3BlY3Rv
ckludGVycnVwdERpc3BhdGNoZXI+IG1fd2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlcjsK
IAotICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1l
Pj4gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwg
V2FsbFRpbWU+IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzOwogICAgIEhhc2hTZXQ8U3Ry
aW5nPiBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbnM7CiAKICAgICBib29sIG1faGFzU2V0Q2FjaGVN
b2RlbCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IGY0NDlmNWY0OTc2MjkyY2RmMDZiNTgxZTgxYzJiNDdiNDE5MTIx
NzAuLmNlYWQwMTY2NTA2NzJhNjY3YWI3ZDcyY2NkZjQ3NWMzNDA4NTg4YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Myw5ICs1
Myw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEZ1bGxL
ZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkK
IAogICAgICMgUGx1Zy1pbnMuCi0gICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1
aW50MzJfdCBoYXNoLCBXYWxsVGltZSBleHBpcmF0aW9uVGltZSwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQotICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhIYXNo
TWFwPHVpbnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCi0gICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXMoSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1aW50MzJfdCxXYWxs
VGltZT4+IGhhc2hlcykKKyAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQz
Ml90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQorICAgIFJlc2V0UGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykKICAgICBT
ZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5LCBTdHJpbmcgaG9zdCwgU3Ry
aW5nIGJ1bmRsZUlkZW50aWZpZXIsIFN0cmluZyB2ZXJzaW9uU3RyaW5nKQogICAgIFJlc2V0UGx1
Z2luTG9hZENsaWVudFBvbGljaWVzKEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFz
aE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1Z2luTG9hZENsaWVudFBvbGljaWVzKQogICAgIENs
ZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQpAQCAtNzgsOSArNzcsOSBAQCBtZXNzYWdlcyAtPiBX
ZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFJlbGVhc2VQYWdlQ2FjaGUoKQogCi0g
ICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcykgLT4gKHN0cnVjdCBXZWJL
aXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKSBBc3luYwotICAgIERlbGV0ZVdlYnNpdGVEYXRh
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFU
eXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKSBBc3lu
YwotICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4gKCkgQXN5bmMK
KyAgICBGZXRjaFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4g
d2Vic2l0ZURhdGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVE
YXRhKSBBc3luYworICAgIERlbGV0ZVdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkgLT4g
KCkgQXN5bmMKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKSBBc3luYwogCiAgICAgU2V0SGlkZGVuUGFn
ZURPTVRpbWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxpc2Vjb25kcykKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTExMSw3ICsxMTAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQot
ICAgIEVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcyh1aW50
NjRfdCBwYWdlR3JvdXBJRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQ
cm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6Oldl
YlByZWZlcmVuY2VzU3RvcmUgc3RvcmUsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFp
biwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKKyAgICBFc3RhYmxpc2hXb3JrZXJD
b250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3ModWludDY0X3QgcGFnZUdyb3VwSUQsIFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0
b3JlLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAgUmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50cygpCiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>