<?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>164248</bug_id>
          
          <creation_ts>2016-10-31 15:56:16 -0700</creation_ts>
          <short_desc>Address style feedback in https://bugs.webkit.org/show_bug.cgi?id=164097</short_desc>
          <delta_ts>2017-03-16 11:28:18 -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>WebCore 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1246648</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-31 15:56:16 -0700</bug_when>
    <thetext>Address style feedback in https://bugs.webkit.org/show_bug.cgi?id=164097

Many style comments on new code in that patch applied to multiple established places in the given file(s)

This bug is to do a once-over on those entire files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246650</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-31 15:58:04 -0700</bug_when>
    <thetext>I have this done; Just waiting on the patch in 164097 to land first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246706</commentid>
    <comment_count>2</comment_count>
      <attachid>293494</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-31 16:49:53 -0700</bug_when>
    <thetext>Created attachment 293494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246747</commentid>
    <comment_count>3</comment_count>
      <attachid>293494</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-31 17:49:48 -0700</bug_when>
    <thetext>Comment on attachment 293494
Patch

Clearing flags on attachment: 293494

Committed r208203: &lt;http://trac.webkit.org/changeset/208203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246748</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-31 17:49:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293494</attachid>
            <date>2016-10-31 16:49:53 -0700</date>
            <delta_ts>2016-10-31 17:49:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164248-20161031164557.patch</filename>
            <type>text/plain</type>
            <size>56882</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFkNzE4NWYzZmExMGNk
NGY2MmVjYWE1ZjE2NzZjZDdmYTcyYzhlNC4uYmFjMDE5NTExMWIzZWY1ZjM0MzJlMjJiYWZkZjhi
N2U1NjNkNjM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg1IEBACiAyMDE2LTEwLTMxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGRyZXNzIHN0eWxlIGZl
ZWRiYWNrIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwOTcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDI0OAor
CisgICAgICAgIFVucmV2aWV3ZWQuIEFkZHJlc3NpbmcgcmV2aWV3IGZlZWRiYWNrIChhbmQgdGhl
biBzb21lKSBmcm9tIERhcmluIEFkbGVyIG9uIGVhcmxpZXIgcGF0Y2guCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIChObyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b246OmNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2Jq
ZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJlbmFtZU9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3RPcGVuQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkb1JlcXVlc3RPcGVuQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0QWxsT2JqZWN0U3RvcmVSZWNvcmRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0UmVjb3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3RJbmRleFJlY29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbjo6cmVxdWVzdENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uOjpyZXF1ZXN0RGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uOjpyZXF1ZXN0Q2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbjo6cmVxdWVzdFB1dE9yQWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uOjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbjo6ZGVsZXRlSW5kZXgpOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Qcm94eTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OnJlbmFtZU9iamVjdFN0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpyZW5hbWVJbmRl
eCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6ZGVs
ZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHk6OmNsZWFyT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uUHJveHk6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6cHV0T3JBZGQpOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmdldFJlY29yZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsUmVjb3Jk
cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0
Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6
OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eTo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eTo6aXRlcmF0ZUN1cnNvcik6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpy
ZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVJ
bmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRBbGxS
ZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0
b3JlOjpnZXRJbmRleFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9y
eUlEQkJhY2tpbmdTdG9yZTo6Z2V0Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjppdGVyYXRl
Q3Vyc29yKToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlc3VsdERhdGE6OmVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlJlc3VsdERhdGE6Om9wZW5EYXRhYmFzZVN1Y2Nlc3MpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVzdWx0RGF0YTo6b3BlbkRhdGFiYXNlVXBncmFkZU5lZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXN1bHREYXRhOjpkZWxldGVEYXRhYmFzZVN1Y2Nlc3MpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVzdWx0RGF0YTo6cHV0T3JBZGRTdWNjZXNzKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlJlc3VsdERhdGE6OmdldFJlY29yZFN1Y2Nlc3MpOgorICAgICAgICAo
V2ViQ29yZTo6SURCUmVzdWx0RGF0YTo6Z2V0QWxsUmVjb3Jkc1N1Y2Nlc3MpOgorICAgICAgICAo
V2ViQ29yZTo6SURCUmVzdWx0RGF0YTo6Z2V0Q291bnRTdWNjZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlc3VsdERhdGE6Om9wZW5DdXJzb3JTdWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlJlc3VsdERhdGE6Oml0ZXJhdGVDdXJzb3JTdWNjZXNzKToKKworMjAxNi0xMC0zMSAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgSW5kZXhlZERCIDIuMDog
U3VwcG9ydCBJREJPYmplY3RTdG9yZSBnZXRBbGwvZ2V0QWxsS2V5cy4KICAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzI4ODA2OTM0PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NDA5NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggZGY2N2EyMDAxMmRjM2YwNWNkZTcxMzMyNWU1MDhh
NTNiZDNjZDk0My4uNmY5NDM0NWU4ZmY4MDVlODE3ZTExODE3OGJkMmJmY2ZlYWI4M2Q2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmNwcApAQCAtMzY2LDggKzM2Niw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmNvbW1pdCgpCiAg
ICAgdHJhbnNpdGlvbmVkVG9GaW5pc2hpbmcoSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpD
b21taXR0aW5nKTsKICAgICBtX2RhdGFiYXNlLT53aWxsQ29tbWl0VHJhbnNhY3Rpb24oKnRoaXMp
OwogCi0gICAgYXV0byBvcGVyYXRpb24gPSBJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3Bl
cmF0aW9uKCp0aGlzLCBudWxscHRyLCAmSURCVHJhbnNhY3Rpb246OmNvbW1pdE9uU2VydmVyKTsK
LSAgICBzY2hlZHVsZU9wZXJhdGlvbihXVEZNb3ZlKG9wZXJhdGlvbikpOworICAgIHNjaGVkdWxl
T3BlcmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIG51
bGxwdHIsICZJREJUcmFuc2FjdGlvbjo6Y29tbWl0T25TZXJ2ZXIpKTsKIH0KIAogdm9pZCBJREJU
cmFuc2FjdGlvbjo6Y29tbWl0T25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlv
biYgb3BlcmF0aW9uKQpAQCAtNTIxLDggKzUyMCw3IEBAIFJlZjxJREJPYmplY3RTdG9yZT4gSURC
VHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYK
ICAgICBSZWY8SURCT2JqZWN0U3RvcmU+IG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3RvcmU6OmNy
ZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbmZvLCAqdGhpcyk7CiAgICAgbV9yZWZl
cmVuY2VkT2JqZWN0U3RvcmVzLnNldChpbmZvLm5hbWUoKSwgJm9iamVjdFN0b3JlLmdldCgpKTsK
IAotICAgIGF1dG8gb3BlcmF0aW9uID0gSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJh
dGlvbigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjpkaWRDcmVhdGVPYmplY3RTdG9yZU9uU2VydmVy
LCAmSURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlT25TZXJ2ZXIsIGluZm8pOwotICAg
IHNjaGVkdWxlT3BlcmF0aW9uKFdURk1vdmUob3BlcmF0aW9uKSk7CisgICAgc2NoZWR1bGVPcGVy
YXRpb24oSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgJklEQlRy
YW5zYWN0aW9uOjpkaWRDcmVhdGVPYmplY3RTdG9yZU9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246
OmNyZWF0ZU9iamVjdFN0b3JlT25TZXJ2ZXIsIGluZm8pKTsKIAogICAgIHJldHVybiBvYmplY3RT
dG9yZTsKIH0KQEAgLTU1NSw4ICs1NTMsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpyZW5hbWVP
YmplY3RTdG9yZShJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0IFN0cmluZwogICAg
IEFTU0VSVChtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuZ2V0KG9iamVjdFN0b3JlLmluZm8oKS5u
YW1lKCkpID09ICZvYmplY3RTdG9yZSk7CiAKICAgICB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIgPSBvYmplY3RTdG9yZS5pbmZvKCkuaWRlbnRpZmllcigpOwotICAgIGF1dG8gb3BlcmF0
aW9uID0gSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgJklEQlRy
YW5zYWN0aW9uOjpkaWRSZW5hbWVPYmplY3RTdG9yZU9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246
OnJlbmFtZU9iamVjdFN0b3JlT25TZXJ2ZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFt
ZSk7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oV1RGTW92ZShvcGVyYXRpb24pKTsKKyAgICBzY2hl
ZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlz
LCAmSURCVHJhbnNhY3Rpb246OmRpZFJlbmFtZU9iamVjdFN0b3JlT25TZXJ2ZXIsICZJREJUcmFu
c2FjdGlvbjo6cmVuYW1lT2JqZWN0U3RvcmVPblNlcnZlciwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBuZXdOYW1lKSk7CiAKICAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KG5ld05hbWUs
IG1fcmVmZXJlbmNlZE9iamVjdFN0b3Jlcy50YWtlKG9iamVjdFN0b3JlLmluZm8oKS5uYW1lKCkp
KTsKIH0KQEAgLTU4Niw4ICs1ODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SURCSW5kZXg+IElEQlRy
YW5zYWN0aW9uOjpjcmVhdGVJbmRleChJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcgogICAgIGlm
ICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIGF1dG8gb3BlcmF0aW9uID0gSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlv
bigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjpkaWRDcmVhdGVJbmRleE9uU2VydmVyLCAmSURCVHJh
bnNhY3Rpb246OmNyZWF0ZUluZGV4T25TZXJ2ZXIsIGluZm8pOwotICAgIHNjaGVkdWxlT3BlcmF0
aW9uKFdURk1vdmUob3BlcmF0aW9uKSk7CisgICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50
OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjpkaWRD
cmVhdGVJbmRleE9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246OmNyZWF0ZUluZGV4T25TZXJ2ZXIs
IGluZm8pKTsKIAogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPElEQkluZGV4Pigqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBpbmZvLCBvYmplY3RTdG9yZSk7CiB9CkBAIC02MzMsOCArNjI5
LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXgoSURCSW5kZXgmIGluZGV4LCBj
b25zdCBTdHJpbmcmIG5ld05hbWUpCiAKICAgICB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIgPSBpbmRleC5vYmplY3RTdG9yZSgpLmluZm8oKS5pZGVudGlmaWVyKCk7CiAgICAgdWludDY0
X3QgaW5kZXhJZGVudGlmaWVyID0gaW5kZXguaW5mbygpLmlkZW50aWZpZXIoKTsKLSAgICBhdXRv
IG9wZXJhdGlvbiA9IElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMs
ICZJREJUcmFuc2FjdGlvbjo6ZGlkUmVuYW1lSW5kZXhPblNlcnZlciwgJklEQlRyYW5zYWN0aW9u
OjpyZW5hbWVJbmRleE9uU2VydmVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRp
ZmllciwgbmV3TmFtZSk7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oV1RGTW92ZShvcGVyYXRpb24p
KTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3Bl
cmF0aW9uKCp0aGlzLCAmSURCVHJhbnNhY3Rpb246OmRpZFJlbmFtZUluZGV4T25TZXJ2ZXIsICZJ
REJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXhPblNlcnZlciwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpKTsKIH0KIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6
cmVuYW1lSW5kZXhPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVy
YXRpb24sIGNvbnN0IHVpbnQ2NF90JiBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IHVpbnQ2
NF90JiBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSkKQEAgLTY1Myw0MSAr
NjQ4LDM5IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZFJlbmFtZUluZGV4T25TZXJ2ZXIoY29u
c3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdERh
dGEsIHJlc3VsdERhdGEudHlwZSgpID09IElEQlJlc3VsdFR5cGU6OlJlbmFtZUluZGV4U3VjY2Vz
cyB8fCByZXN1bHREYXRhLnR5cGUoKSA9PSBJREJSZXN1bHRUeXBlOjpFcnJvcik7CiB9CiAKLVJl
ZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6cmVxdWVzdE9wZW5DdXJzb3IoRXhlY1N0YXRl
JiBleGVjU3RhdGUsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgY29uc3QgSURCQ3Vyc29y
SW5mbyYgaW5mbykKK1JlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6cmVxdWVzdE9wZW5D
dXJzb3IoRXhlY1N0YXRlJiBzdGF0ZSwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBjb25z
dCBJREJDdXJzb3JJbmZvJiBpbmZvKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6cmVxdWVzdE9wZW5DdXJzb3IiKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09
IG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZElEKCkpOwogCiAgICAgaWYgKGluZm8uY3Vyc29yVHlw
ZSgpID09IEluZGV4ZWREQjo6Q3Vyc29yVHlwZTo6S2V5T25seSkKLSAgICAgICAgcmV0dXJuIGRv
UmVxdWVzdE9wZW5DdXJzb3IoZXhlY1N0YXRlLCBJREJDdXJzb3I6OmNyZWF0ZSgqdGhpcywgb2Jq
ZWN0U3RvcmUsIGluZm8pKTsKKyAgICAgICAgcmV0dXJuIGRvUmVxdWVzdE9wZW5DdXJzb3Ioc3Rh
dGUsIElEQkN1cnNvcjo6Y3JlYXRlKCp0aGlzLCBvYmplY3RTdG9yZSwgaW5mbykpOwogCi0gICAg
cmV0dXJuIGRvUmVxdWVzdE9wZW5DdXJzb3IoZXhlY1N0YXRlLCBJREJDdXJzb3JXaXRoVmFsdWU6
OmNyZWF0ZSgqdGhpcywgb2JqZWN0U3RvcmUsIGluZm8pKTsKKyAgICByZXR1cm4gZG9SZXF1ZXN0
T3BlbkN1cnNvcihzdGF0ZSwgSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoKnRoaXMsIG9iamVj
dFN0b3JlLCBpbmZvKSk7CiB9CiAKLVJlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6cmVx
dWVzdE9wZW5DdXJzb3IoRXhlY1N0YXRlJiBleGVjU3RhdGUsIElEQkluZGV4JiBpbmRleCwgY29u
c3QgSURCQ3Vyc29ySW5mbyYgaW5mbykKK1JlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6
cmVxdWVzdE9wZW5DdXJzb3IoRXhlY1N0YXRlJiBzdGF0ZSwgSURCSW5kZXgmIGluZGV4LCBjb25z
dCBJREJDdXJzb3JJbmZvJiBpbmZvKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6cmVxdWVzdE9wZW5DdXJzb3IiKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09
IG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZElEKCkpOwogCiAgICAgaWYgKGluZm8uY3Vyc29yVHlw
ZSgpID09IEluZGV4ZWREQjo6Q3Vyc29yVHlwZTo6S2V5T25seSkKLSAgICAgICAgcmV0dXJuIGRv
UmVxdWVzdE9wZW5DdXJzb3IoZXhlY1N0YXRlLCBJREJDdXJzb3I6OmNyZWF0ZSgqdGhpcywgaW5k
ZXgsIGluZm8pKTsKKyAgICAgICAgcmV0dXJuIGRvUmVxdWVzdE9wZW5DdXJzb3Ioc3RhdGUsIElE
QkN1cnNvcjo6Y3JlYXRlKCp0aGlzLCBpbmRleCwgaW5mbykpOwogCi0gICAgcmV0dXJuIGRvUmVx
dWVzdE9wZW5DdXJzb3IoZXhlY1N0YXRlLCBJREJDdXJzb3JXaXRoVmFsdWU6OmNyZWF0ZSgqdGhp
cywgaW5kZXgsIGluZm8pKTsKKyAgICByZXR1cm4gZG9SZXF1ZXN0T3BlbkN1cnNvcihzdGF0ZSwg
SURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoKnRoaXMsIGluZGV4LCBpbmZvKSk7CiB9CiAKLVJl
ZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6ZG9SZXF1ZXN0T3BlbkN1cnNvcihFeGVjU3Rh
dGUmIGV4ZWNTdGF0ZSwgUmVmPElEQkN1cnNvcj4mJiBjdXJzb3IpCitSZWY8SURCUmVxdWVzdD4g
SURCVHJhbnNhY3Rpb246OmRvUmVxdWVzdE9wZW5DdXJzb3IoRXhlY1N0YXRlJiBzdGF0ZSwgUmVm
PElEQkN1cnNvcj4mJiBjdXJzb3IpCiB7CiAgICAgQVNTRVJUKGlzQWN0aXZlKCkpOwogICAgIEFT
U0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkSUQoKSk7CiAK
LSAgICBSRUxFQVNFX0FTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIEFTU0VS
VF9VTlVTRUQoZXhlY1N0YXRlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJmV4ZWNTdGF0ZSkpOworICAgIEFTU0VSVF9VTlVT
RUQoc3RhdGUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSBzY3JpcHRFeGVjdXRpb25Db250
ZXh0RnJvbUV4ZWNTdGF0ZSgmc3RhdGUpKTsKIAotICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0
ID0gSURCUmVxdWVzdDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGN1cnNvci5n
ZXQoKSwgKnRoaXMpOworICAgIGF1dG8gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZSgqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBjdXJzb3IuZ2V0KCksICp0aGlzKTsKICAgICBhZGRSZXF1
ZXN0KHJlcXVlc3QuZ2V0KCkpOwogCi0gICAgYXV0byBvcGVyYXRpb24gPSBJREJDbGllbnQ6OmNy
ZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJhbnNh
Y3Rpb246OmRpZE9wZW5DdXJzb3JPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpvcGVuQ3Vyc29y
T25TZXJ2ZXIsIGN1cnNvci0+aW5mbygpKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihXVEZNb3Zl
KG9wZXJhdGlvbikpOworICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJh
bnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIHJlcXVlc3QuZ2V0KCksICZJREJUcmFuc2FjdGlvbjo6
ZGlkT3BlbkN1cnNvck9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246Om9wZW5DdXJzb3JPblNlcnZl
ciwgY3Vyc29yLT5pbmZvKCkpKTsKIAogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtNzE3LDgg
KzcxMCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Oml0ZXJhdGVDdXJzb3IoSURCQ3Vyc29yJiBj
dXJzb3IsIGNvbnN0IElEQktleURhdGEmIGtleSwgdW5zCiAKICAgICBhZGRSZXF1ZXN0KCpjdXJz
b3IucmVxdWVzdCgpKTsKIAotICAgIGF1dG8gb3BlcmF0aW9uID0gSURCQ2xpZW50OjpjcmVhdGVU
cmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgKmN1cnNvci5yZXF1ZXN0KCksICZJREJUcmFuc2Fj
dGlvbjo6ZGlkSXRlcmF0ZUN1cnNvck9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246Oml0ZXJhdGVD
dXJzb3JPblNlcnZlciwga2V5LCBjb3VudCk7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oV1RGTW92
ZShvcGVyYXRpb24pKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRy
YW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCAqY3Vyc29yLnJlcXVlc3QoKSwgJklEQlRyYW5zYWN0
aW9uOjpkaWRJdGVyYXRlQ3Vyc29yT25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1
cnNvck9uU2VydmVyLCBrZXksIGNvdW50KSk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246Oml0
ZXJhdGVDdXJzb3JPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVy
YXRpb24sIGNvbnN0IElEQktleURhdGEmIGtleSwgY29uc3QgdW5zaWduZWQgbG9uZyYgY291bnQp
CkBAIC03NDUsMTMgKzczNywxMiBAQCBSZWY8SURCUmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJl
cXVlc3RHZXRBbGxPYmplY3RTdG9yZVJlY29yZHMoSlNDOjpFeGVjU3RhdGUmCiAKICAgICBBU1NF
UlRfVU5VU0VEKHN0YXRlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJnN0YXRlKSk7CiAKLSAgICBSZWY8SURCUmVxdWVzdD4g
cmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBv
YmplY3RTdG9yZSwgKnRoaXMpOworICAgIGF1dG8gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0
ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBvYmplY3RTdG9yZSwgKnRoaXMpOwogICAgIGFk
ZFJlcXVlc3QocmVxdWVzdC5nZXQoKSk7CiAKICAgICBJREJHZXRBbGxSZWNvcmRzRGF0YSBnZXRB
bGxSZWNvcmRzRGF0YSB7IGtleVJhbmdlRGF0YSwgZ2V0QWxsVHlwZSwgY291bnQsIG9iamVjdFN0
b3JlLmluZm8oKS5pZGVudGlmaWVyKCksIDAgfTsKIAotICAgIGF1dG8gb3BlcmF0aW9uID0gSURC
Q2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwg
JklEQlRyYW5zYWN0aW9uOjpkaWRHZXRBbGxSZWNvcmRzT25TZXJ2ZXIsICZJREJUcmFuc2FjdGlv
bjo6Z2V0QWxsUmVjb3Jkc09uU2VydmVyLCBnZXRBbGxSZWNvcmRzRGF0YSk7Ci0gICAgc2NoZWR1
bGVPcGVyYXRpb24oV1RGTW92ZShvcGVyYXRpb24pKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJ
REJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgp
LCAmSURCVHJhbnNhY3Rpb246OmRpZEdldEFsbFJlY29yZHNPblNlcnZlciwgJklEQlRyYW5zYWN0
aW9uOjpnZXRBbGxSZWNvcmRzT25TZXJ2ZXIsIGdldEFsbFJlY29yZHNEYXRhKSk7CiAKICAgICBy
ZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTc4OSw1NyArNzgwLDUzIEBAIHZvaWQgSURCVHJhbnNhY3Rp
b246OmRpZEdldEFsbFJlY29yZHNPblNlcnZlcihJREJSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBJ
REJSZXN1CiAgICAgcmVxdWVzdC5yZXF1ZXN0Q29tcGxldGVkKHJlc3VsdERhdGEpOwogfQogCi1S
ZWY8SURCUmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRSZWNvcmQoRXhlY1N0YXRl
JiBleGVjU3RhdGUsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgY29uc3QgSURCR2V0UmVj
b3JkRGF0YSYgZ2V0UmVjb3JkRGF0YSkKK1JlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6
cmVxdWVzdEdldFJlY29yZChFeGVjU3RhdGUmIHN0YXRlLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0
U3RvcmUsIGNvbnN0IElEQkdldFJlY29yZERhdGEmIGdldFJlY29yZERhdGEpCiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0UmVjb3JkIik7CiAgICAgQVNT
RVJUKGlzQWN0aXZlKCkpOwogICAgIEFTU0VSVCghZ2V0UmVjb3JkRGF0YS5rZXlSYW5nZURhdGEu
aXNOdWxsKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9yaWdp
blRocmVhZElEKCkpOwogCi0gICAgUkVMRUFTRV9BU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBBU1NFUlRfVU5VU0VEKGV4ZWNTdGF0ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpID09IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZleGVjU3RhdGUpKTsK
KyAgICBBU1NFUlRfVU5VU0VEKHN0YXRlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJnN0YXRlKSk7CiAKLSAgICBSZWY8SURC
UmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBvYmplY3RTdG9yZSwgKnRoaXMpOworICAgIGF1dG8gcmVxdWVzdCA9IElEQlJlcXVl
c3Q6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBvYmplY3RTdG9yZSwgKnRoaXMp
OwogICAgIGFkZFJlcXVlc3QocmVxdWVzdC5nZXQoKSk7CiAKLSAgICBhdXRvIG9wZXJhdGlvbiA9
IElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIHJlcXVlc3QuZ2V0
KCksICZJREJUcmFuc2FjdGlvbjo6ZGlkR2V0UmVjb3JkT25TZXJ2ZXIsICZJREJUcmFuc2FjdGlv
bjo6Z2V0UmVjb3JkT25TZXJ2ZXIsIGdldFJlY29yZERhdGEpOwotICAgIHNjaGVkdWxlT3BlcmF0
aW9uKFdURk1vdmUob3BlcmF0aW9uKSk7CisgICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50
OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRy
YW5zYWN0aW9uOjpkaWRHZXRSZWNvcmRPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpnZXRSZWNv
cmRPblNlcnZlciwgZ2V0UmVjb3JkRGF0YSkpOwogCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAK
LVJlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6cmVxdWVzdEdldFZhbHVlKEV4ZWNTdGF0
ZSYgZXhlY1N0YXRlLCBJREJJbmRleCYgaW5kZXgsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFu
Z2UpCitSZWY8SURCUmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRWYWx1ZShFeGVj
U3RhdGUmIHN0YXRlLCBJREJJbmRleCYgaW5kZXgsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFu
Z2UpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0VmFs
dWUiKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9yaWdpblRo
cmVhZElEKCkpOwogCi0gICAgcmV0dXJuIHJlcXVlc3RJbmRleFJlY29yZChleGVjU3RhdGUsIGlu
ZGV4LCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZTo6VmFsdWUsIHJhbmdlKTsKKyAgICByZXR1
cm4gcmVxdWVzdEluZGV4UmVjb3JkKHN0YXRlLCBpbmRleCwgSW5kZXhlZERCOjpJbmRleFJlY29y
ZFR5cGU6OlZhbHVlLCByYW5nZSk7CiB9CiAKLVJlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlv
bjo6cmVxdWVzdEdldEtleShFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgSURCSW5kZXgmIGluZGV4LCBj
b25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQorUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0
aW9uOjpyZXF1ZXN0R2V0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIElEQkluZGV4JiBpbmRleCwgY29u
c3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCVHJh
bnNhY3Rpb246OnJlcXVlc3RHZXRWYWx1ZSIpOwogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkg
PT0gbV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkSUQoKSk7CiAKLSAgICByZXR1cm4gcmVxdWVzdElu
ZGV4UmVjb3JkKGV4ZWNTdGF0ZSwgaW5kZXgsIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlOjpL
ZXksIHJhbmdlKTsKKyAgICByZXR1cm4gcmVxdWVzdEluZGV4UmVjb3JkKHN0YXRlLCBpbmRleCwg
SW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGU6OktleSwgcmFuZ2UpOwogfQogCi1SZWY8SURCUmVx
dWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RJbmRleFJlY29yZChFeGVjU3RhdGUmIGV4ZWNT
dGF0ZSwgSURCSW5kZXgmIGluZGV4LCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSB0eXBlLCBj
b25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQorUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0
aW9uOjpyZXF1ZXN0SW5kZXhSZWNvcmQoRXhlY1N0YXRlJiBzdGF0ZSwgSURCSW5kZXgmIGluZGV4
LCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSB0eXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEm
IHJhbmdlKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6cmVxdWVzdEdl
dFZhbHVlIik7CiAgICAgQVNTRVJUKGlzQWN0aXZlKCkpOwogICAgIEFTU0VSVCghcmFuZ2UuaXNO
dWxsKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fZGF0YWJhc2UtPm9yaWdpblRo
cmVhZElEKCkpOwogCi0gICAgUkVMRUFTRV9BU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKLSAgICBBU1NFUlRfVU5VU0VEKGV4ZWNTdGF0ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
ID09IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZleGVjU3RhdGUpKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKHN0YXRlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gc2NyaXB0
RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJnN0YXRlKSk7CiAKLSAgICBSZWY8SURCUmVx
dWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZUdldCgqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBpbmRleCwgdHlwZSwgKnRoaXMpOworICAgIGF1dG8gcmVxdWVzdCA9IElEQlJlcXVl
c3Q6OmNyZWF0ZUdldCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbmRleCwgdHlwZSwgKnRo
aXMpOwogICAgIGFkZFJlcXVlc3QocmVxdWVzdC5nZXQoKSk7CiAKICAgICBJREJHZXRSZWNvcmRE
YXRhIGdldFJlY29yZERhdGEgPSB7IHJhbmdlIH07Ci0gICAgYXV0byBvcGVyYXRpb24gPSBJREJD
bGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgpLCAm
SURCVHJhbnNhY3Rpb246OmRpZEdldFJlY29yZE9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246Omdl
dFJlY29yZE9uU2VydmVyLCBnZXRSZWNvcmREYXRhKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihX
VEZNb3ZlKG9wZXJhdGlvbikpOworICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6Y3Jl
YXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIHJlcXVlc3QuZ2V0KCksICZJREJUcmFuc2Fj
dGlvbjo6ZGlkR2V0UmVjb3JkT25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6Z2V0UmVjb3JkT25T
ZXJ2ZXIsIGdldFJlY29yZERhdGEpKTsKIAogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtODgx
LDE3ICs4NjgsMTYgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkR2V0UmVjb3JkT25TZXJ2ZXIo
SURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWx0RGEKICAgICByZXF1ZXN0LnJlcXVl
c3RDb21wbGV0ZWQocmVzdWx0RGF0YSk7CiB9CiAKLVJlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2Fj
dGlvbjo6cmVxdWVzdENvdW50KEV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBJREJPYmplY3RTdG9yZSYg
b2JqZWN0U3RvcmUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpCitSZWY8SURCUmVxdWVz
dD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RDb3VudChFeGVjU3RhdGUmIHN0YXRlLCBJREJPYmpl
Y3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpCiB7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0Q291bnQgKElEQk9iamVj
dFN0b3JlKSIpOwogICAgIEFTU0VSVChpc0FjdGl2ZSgpKTsKICAgICBBU1NFUlQoIXJhbmdlLmlz
TnVsbCk7CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2RhdGFiYXNlLT5vcmlnaW5U
aHJlYWRJRCgpKTsKIAotICAgIFJFTEVBU0VfQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgQVNTRVJUX1VOVVNFRChleGVjU3RhdGUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSA9PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZSgmZXhlY1N0YXRlKSk7Cisg
ICAgQVNTRVJUX1VOVVNFRChzdGF0ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpID09IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZzdGF0ZSkpOwogCi0gICAgUmVmPElEQlJl
cXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgb2JqZWN0U3RvcmUsICp0aGlzKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBJREJSZXF1ZXN0
OjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgb2JqZWN0U3RvcmUsICp0aGlzKTsK
ICAgICBhZGRSZXF1ZXN0KHJlcXVlc3QuZ2V0KCkpOwogCiAgICAgc2NoZWR1bGVPcGVyYXRpb24o
SURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQo
KSwgJklEQlRyYW5zYWN0aW9uOjpkaWRHZXRDb3VudE9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246
OmdldENvdW50T25TZXJ2ZXIsIHJhbmdlKSk7CkBAIC04OTksMTcgKzg4NSwxNiBAQCBSZWY8SURC
UmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RDb3VudChFeGVjU3RhdGUmIGV4ZWNTdGF0
ZSwgSURCT2JqZWN0U3RvcgogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi1SZWY8SURCUmVxdWVz
dD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RDb3VudChFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgSURC
SW5kZXgmIGluZGV4LCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQorUmVmPElEQlJlcXVl
c3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0Q291bnQoRXhlY1N0YXRlJiBzdGF0ZSwgSURCSW5k
ZXgmIGluZGV4LCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQogewogICAgIExPRyhJbmRl
eGVkREIsICJJREJUcmFuc2FjdGlvbjo6cmVxdWVzdENvdW50IChJREJJbmRleCkiKTsKICAgICBB
U1NFUlQoaXNBY3RpdmUoKSk7CiAgICAgQVNTRVJUKCFyYW5nZS5pc051bGwpOwogICAgIEFTU0VS
VChjdXJyZW50VGhyZWFkKCkgPT0gbV9kYXRhYmFzZS0+b3JpZ2luVGhyZWFkSUQoKSk7CiAKLSAg
ICBSRUxFQVNFX0FTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIEFTU0VSVF9V
TlVTRUQoZXhlY1N0YXRlLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJmV4ZWNTdGF0ZSkpOworICAgIEFTU0VSVF9VTlVTRUQo
c3RhdGUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0
RnJvbUV4ZWNTdGF0ZSgmc3RhdGUpKTsKIAotICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0g
SURCUmVxdWVzdDo6Y3JlYXRlQ291bnQoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW5kZXgs
ICp0aGlzKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGVDb3VudCgqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbmRleCwgKnRoaXMpOwogICAgIGFkZFJlcXVlc3QocmVx
dWVzdC5nZXQoKSk7CiAKICAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRy
YW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJhbnNhY3Rpb246
OmRpZEdldENvdW50T25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6Z2V0Q291bnRPblNlcnZlciwg
cmFuZ2UpKTsKQEAgLTkzNCwxNyArOTE5LDE2IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZEdl
dENvdW50T25TZXJ2ZXIoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWx0RGF0CiAg
ICAgcmVxdWVzdC5yZXF1ZXN0Q29tcGxldGVkKHJlc3VsdERhdGEpOwogfQogCi1SZWY8SURCUmVx
dWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3REZWxldGVSZWNvcmQoRXhlY1N0YXRlJiBleGVj
U3RhdGUsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
JiByYW5nZSkKK1JlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6cmVxdWVzdERlbGV0ZVJl
Y29yZChFeGVjU3RhdGUmIHN0YXRlLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5z
YWN0aW9uOjpyZXF1ZXN0RGVsZXRlUmVjb3JkIik7CiAgICAgQVNTRVJUKGlzQWN0aXZlKCkpOwog
ICAgIEFTU0VSVCghcmFuZ2UuaXNOdWxsKTsKICAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09
IG1fZGF0YWJhc2UtPm9yaWdpblRocmVhZElEKCkpOwogCi0gICAgUkVMRUFTRV9BU1NFUlQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBBU1NFUlRfVU5VU0VEKGV4ZWNTdGF0ZSwgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpID09IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0
YXRlKCZleGVjU3RhdGUpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0YXRlLCBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgPT0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJnN0YXRl
KSk7CiAKLSAgICBSZWY8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZSgq
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBvYmplY3RTdG9yZSwgKnRoaXMpOworICAgIGF1dG8g
cmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBv
YmplY3RTdG9yZSwgKnRoaXMpOwogICAgIGFkZFJlcXVlc3QocmVxdWVzdC5nZXQoKSk7CiAKICAg
ICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9u
KCp0aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJhbnNhY3Rpb246OmRpZERlbGV0ZVJlY29yZE9u
U2VydmVyLCAmSURCVHJhbnNhY3Rpb246OmRlbGV0ZVJlY29yZE9uU2VydmVyLCByYW5nZSkpOwpA
QCAtOTY4LDIxICs5NTIsMTkgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkRGVsZXRlUmVjb3Jk
T25TZXJ2ZXIoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWwKICAgICByZXF1ZXN0
LnJlcXVlc3RDb21wbGV0ZWQocmVzdWx0RGF0YSk7CiB9CiAKLVJlZjxJREJSZXF1ZXN0PiBJREJU
cmFuc2FjdGlvbjo6cmVxdWVzdENsZWFyT2JqZWN0U3RvcmUoRXhlY1N0YXRlJiBleGVjU3RhdGUs
IElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSkKK1JlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2Fj
dGlvbjo6cmVxdWVzdENsZWFyT2JqZWN0U3RvcmUoRXhlY1N0YXRlJiBzdGF0ZSwgSURCT2JqZWN0
U3RvcmUmIG9iamVjdFN0b3JlKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlv
bjo6cmVxdWVzdENsZWFyT2JqZWN0U3RvcmUiKTsKICAgICBBU1NFUlQoaXNBY3RpdmUoKSk7CiAg
ICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2RhdGFiYXNlLT5vcmlnaW5UaHJlYWRJRCgp
KTsKIAotICAgIFJFTEVBU0VfQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAg
QVNTRVJUX1VOVVNFRChleGVjU3RhdGUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZSgmZXhlY1N0YXRlKSk7CisgICAgQVNTRVJU
X1VOVVNFRChzdGF0ZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpID09IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRGcm9tRXhlY1N0YXRlKCZzdGF0ZSkpOwogCi0gICAgUmVmPElEQlJlcXVlc3Q+IHJl
cXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgb2Jq
ZWN0U3RvcmUsICp0aGlzKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUo
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgb2JqZWN0U3RvcmUsICp0aGlzKTsKICAgICBhZGRS
ZXF1ZXN0KHJlcXVlc3QuZ2V0KCkpOwogCiAgICAgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyID0gb2JqZWN0U3RvcmUuaW5mbygpLmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIG9wZXJhdGlv
biA9IElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIHJlcXVlc3Qu
Z2V0KCksICZJREJUcmFuc2FjdGlvbjo6ZGlkQ2xlYXJPYmplY3RTdG9yZU9uU2VydmVyLCAmSURC
VHJhbnNhY3Rpb246OmNsZWFyT2JqZWN0U3RvcmVPblNlcnZlciwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihXVEZNb3ZlKG9wZXJhdGlvbikpOworICAgIHNj
aGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRo
aXMsIHJlcXVlc3QuZ2V0KCksICZJREJUcmFuc2FjdGlvbjo6ZGlkQ2xlYXJPYmplY3RTdG9yZU9u
U2VydmVyLCAmSURCVHJhbnNhY3Rpb246OmNsZWFyT2JqZWN0U3RvcmVPblNlcnZlciwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyKSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTEwMDQsNyAr
OTg2LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkQ2xlYXJPYmplY3RTdG9yZU9uU2VydmVy
KElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQlIKICAgICByZXF1ZXN0LnJlcXVlc3RDb21w
bGV0ZWQocmVzdWx0RGF0YSk7CiB9CiAKLVJlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6
cmVxdWVzdFB1dE9yQWRkKEV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBJREJPYmplY3RTdG9yZSYgb2Jq
ZWN0U3RvcmUsIElEQktleSoga2V5LCBTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZhbHVlLCBJbmRl
eGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSBvdmVyd3JpdGVNb2RlKQorUmVmPElEQlJl
cXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0UHV0T3JBZGQoRXhlY1N0YXRlJiBzdGF0ZSwg
SURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJREJLZXkqIGtleSwgU2VyaWFsaXplZFNjcmlw
dFZhbHVlJiB2YWx1ZSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3Zlcndy
aXRlTW9kZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OnJlcXVlc3RQ
dXRPckFkZCIpOwogICAgIEFTU0VSVChpc0FjdGl2ZSgpKTsKQEAgLTEwMTIsMTQgKzk5NCwxMiBA
QCBSZWY8SURCUmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RQdXRPckFkZChFeGVjU3Rh
dGUmIGV4ZWNTdGF0ZSwgSURCT2JqZWN0UwogICAgIEFTU0VSVChvYmplY3RTdG9yZS5pbmZvKCku
YXV0b0luY3JlbWVudCgpIHx8IGtleSk7CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBt
X2RhdGFiYXNlLT5vcmlnaW5UaHJlYWRJRCgpKTsKIAotICAgIFJFTEVBU0VfQVNTRVJUKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChleGVjU3RhdGUsIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSA9PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0
ZSgmZXhlY1N0YXRlKSk7CisgICAgQVNTRVJUX1VOVVNFRChzdGF0ZSwgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpID09IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZzdGF0ZSkp
OwogCi0gICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgb2JqZWN0U3RvcmUsICp0aGlzKTsKKyAgICBhdXRvIHJl
cXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgb2Jq
ZWN0U3RvcmUsICp0aGlzKTsKICAgICBhZGRSZXF1ZXN0KHJlcXVlc3QuZ2V0KCkpOwogCi0gICAg
YXV0byBvcGVyYXRpb24gPSBJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0
aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJhbnNhY3Rpb246OmRpZFB1dE9yQWRkT25TZXJ2ZXIs
ICZJREJUcmFuc2FjdGlvbjo6cHV0T3JBZGRPblNlcnZlciwga2V5LCAmdmFsdWUsIG92ZXJ3cml0
ZU1vZGUpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9uKFdURk1vdmUob3BlcmF0aW9uKSk7CisgICAg
c2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigq
dGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5zYWN0aW9uOjpkaWRQdXRPckFkZE9uU2VydmVy
LCAmSURCVHJhbnNhY3Rpb246OnB1dE9yQWRkT25TZXJ2ZXIsIGtleSwgJnZhbHVlLCBvdmVyd3Jp
dGVNb2RlKSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTEwOTMsOCArMTA3Myw3IEBA
IHZvaWQgSURCVHJhbnNhY3Rpb246OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2Jq
ZWN0U3RvcmVOYW1lKQogICAgIGlmIChhdXRvIG9iamVjdFN0b3JlID0gbV9yZWZlcmVuY2VkT2Jq
ZWN0U3RvcmVzLnRha2Uob2JqZWN0U3RvcmVOYW1lKSkKICAgICAgICAgb2JqZWN0U3RvcmUtPm1h
cmtBc0RlbGV0ZWQoKTsKIAotICAgIGF1dG8gb3BlcmF0aW9uID0gSURCQ2xpZW50OjpjcmVhdGVU
cmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjpkaWREZWxldGVPYmpl
Y3RTdG9yZU9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246OmRlbGV0ZU9iamVjdFN0b3JlT25TZXJ2
ZXIsIG9iamVjdFN0b3JlTmFtZSk7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oV1RGTW92ZShvcGVy
YXRpb24pKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0
aW9uT3BlcmF0aW9uKCp0aGlzLCAmSURCVHJhbnNhY3Rpb246OmRpZERlbGV0ZU9iamVjdFN0b3Jl
T25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6ZGVsZXRlT2JqZWN0U3RvcmVPblNlcnZlciwgb2Jq
ZWN0U3RvcmVOYW1lKSk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRlbGV0ZU9iamVjdFN0
b3JlT25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBj
b25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKQEAgLTExMTksOCArMTA5OCw3IEBAIHZvaWQg
SURCVHJhbnNhY3Rpb246OmRlbGV0ZUluZGV4KHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBpCiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2RhdGFi
YXNlLT5vcmlnaW5UaHJlYWRJRCgpKTsKICAgICBBU1NFUlQoaXNWZXJzaW9uQ2hhbmdlKCkpOwog
Ci0gICAgYXV0byBvcGVyYXRpb24gPSBJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0
aW9uKCp0aGlzLCAmSURCVHJhbnNhY3Rpb246OmRpZERlbGV0ZUluZGV4T25TZXJ2ZXIsICZJREJU
cmFuc2FjdGlvbjo6ZGVsZXRlSW5kZXhPblNlcnZlciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBp
bmRleE5hbWUpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9uKFdURk1vdmUob3BlcmF0aW9uKSk7Cisg
ICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlv
bigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjpkaWREZWxldGVJbmRleE9uU2VydmVyLCAmSURCVHJh
bnNhY3Rpb246OmRlbGV0ZUluZGV4T25TZXJ2ZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5k
ZXhOYW1lKSk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRlbGV0ZUluZGV4T25TZXJ2ZXIo
SURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCB1aW50NjRf
dCYgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Qcm94eS5jcHAKaW5kZXggNzk4OGIyZDAwM2M4NmE5YThlYTY0ZDg0OGQ1ZmFj
YjZlY2M1ZGU3Yy4uY2U1ODYwN2Y0Njk2Njk3MjY4N2ZkODI1ZGY5MDU2MzM4ODk1Yzk0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIElEQkNv
bm5lY3Rpb25Qcm94eTo6Y29tcGxldGVPcGVuREJSZXF1ZXN0KGNvbnN0IElEQlJlc3VsdERhdGEm
IHJlc3VsdERhdGEpCiAKIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpjcmVhdGVPYmplY3RTdG9y
ZShUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJPYmplY3RTdG9yZUlu
Zm8mIGluZm8pCiB7Ci0gICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0
aW9uKTsKKyAgICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSB7IG9wZXJhdGlvbiB9
OwogICAgIHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKIAogICAgIGNhbGxDb25uZWN0aW9uT25N
YWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZU9iamVjdFN0b3JlLCByZXF1
ZXN0RGF0YSwgaW5mbyk7CkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJv
eHk6OmNyZWF0ZU9iamVjdFN0b3JlKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNv
bnMKIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnJlbmFtZU9iamVjdFN0b3JlKFRyYW5zYWN0
aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuZXdOYW1lKQogewotICAgIGNvbnN0IElEQlJlcXVlc3REYXRhIHJlcXVl
c3REYXRhKG9wZXJhdGlvbik7CisgICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEg
eyBvcGVyYXRpb24gfTsKICAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CiAKICAgICBjYWxs
Q29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVjdGlvblRvU2VydmVyOjpyZW5hbWVPYmpl
Y3RTdG9yZSwgcmVxdWVzdERhdGEsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CkBA
IC0xMzUsNyArMTM1LDcgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnJlbmFtZU9iamVjdFN0
b3JlKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIHVpbnQKIAogdm9pZCBJREJDb25u
ZWN0aW9uUHJveHk6OnJlbmFtZUluZGV4KFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24s
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCiB7Ci0gICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVx
dWVzdERhdGEob3BlcmF0aW9uKTsKKyAgICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0
YSB7IG9wZXJhdGlvbiB9OwogICAgIHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKIAogICAgIGNh
bGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OnJlbmFtZUlu
ZGV4LCByZXF1ZXN0RGF0YSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIs
IG5ld05hbWUpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5Ojpy
ZW5hbWVJbmRleChUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1aW50NjRfdCBvCiAK
IHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkZWxldGVPYmplY3RTdG9yZShUcmFuc2FjdGlvbk9w
ZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKIHsKLSAg
ICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRpb24pOworICAgIGNvbnN0
IElEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhIHsgb3BlcmF0aW9uIH07CiAgICAgc2F2ZU9wZXJh
dGlvbihvcGVyYXRpb24pOwogCiAgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlT2JqZWN0U3RvcmUsIHJlcXVlc3REYXRhLCBvYmplY3RT
dG9yZU5hbWUpOwpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5Ojpk
ZWxldGVPYmplY3RTdG9yZShUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zCiAK
IHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpjbGVhck9iamVjdFN0b3JlKFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiBvcGVyYXRpb24sIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikKIHsKLSAg
ICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRpb24pOworICAgIGNvbnN0
IElEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhIHsgb3BlcmF0aW9uIH07CiAgICAgc2F2ZU9wZXJh
dGlvbihvcGVyYXRpb24pOwogCiAgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6Y2xlYXJPYmplY3RTdG9yZSwgcmVxdWVzdERhdGEsIG9iamVjdFN0
b3JlSWRlbnRpZmllcik7CkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJv
eHk6OmNsZWFyT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgdWlu
dDYKIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmNyZWF0ZUluZGV4KFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbykKIHsKLSAgICBjb25z
dCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRpb24pOworICAgIGNvbnN0IElEQlJl
cXVlc3REYXRhIHJlcXVlc3REYXRhIHsgb3BlcmF0aW9uIH07CiAgICAgc2F2ZU9wZXJhdGlvbihv
cGVyYXRpb24pOwogCiAgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6Y3JlYXRlSW5kZXgsIHJlcXVlc3REYXRhLCBpbmZvKTsKQEAgLTE2Nyw3ICsx
NjcsNyBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Y3JlYXRlSW5kZXgoVHJhbnNhY3Rpb25P
cGVyYXRpb24mIG9wZXJhdGlvbiwgY29uc3QgSURCSQogCiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94
eTo6ZGVsZXRlSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSkKIHsKLSAgICBj
b25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRpb24pOworICAgIGNvbnN0IElE
QlJlcXVlc3REYXRhIHJlcXVlc3REYXRhIHsgb3BlcmF0aW9uIH07CiAgICAgc2F2ZU9wZXJhdGlv
bihvcGVyYXRpb24pOwogCiAgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGVsZXRlSW5kZXgsIHJlcXVlc3REYXRhLCBXVEZNb3ZlKG9iamVjdFN0
b3JlSWRlbnRpZmllciksIGluZGV4TmFtZSk7CkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBJREJD
b25uZWN0aW9uUHJveHk6OmRlbGV0ZUluZGV4KFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRp
b24sIHVpbnQ2NF90IG8KIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnB1dE9yQWRkKFRyYW5z
YWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIElEQktleURhdGEmJiBrZXlEYXRhLCBjb25zdCBJ
REJWYWx1ZSYgdmFsdWUsIGNvbnN0IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2Rl
IG1vZGUpCiB7Ci0gICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9u
KTsKKyAgICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSB7IG9wZXJhdGlvbiB9Owog
ICAgIHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKIAogICAgIGNhbGxDb25uZWN0aW9uT25NYWlu
VGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OnB1dE9yQWRkLCByZXF1ZXN0RGF0YSwga2V5
RGF0YSwgdmFsdWUsIG1vZGUpOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgSURCQ29ubmVjdGlv
blByb3h5OjpwdXRPckFkZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBJREJLZXlE
YXRhJiYKIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmdldFJlY29yZChUcmFuc2FjdGlvbk9w
ZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJHZXRSZWNvcmREYXRhJiBnZXRSZWNvcmREYXRh
KQogewotICAgIGNvbnN0IElEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhKG9wZXJhdGlvbik7Cisg
ICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEgeyBvcGVyYXRpb24gfTsKICAgICBz
YXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CiAKICAgICBjYWxsQ29ubmVjdGlvbk9uTWFpblRocmVh
ZCgmSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRSZWNvcmQsIHJlcXVlc3REYXRhLCBnZXRSZWNv
cmREYXRhKTsKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0
UmVjb3JkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQkdldAogCiB2
b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsUmVjb3JkcyhUcmFuc2FjdGlvbk9wZXJhdGlv
biYgb3BlcmF0aW9uLCBjb25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYgZ2V0QWxsUmVjb3Jkc0Rh
dGEpCiB7Ci0gICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsK
KyAgICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSB7IG9wZXJhdGlvbiB9OwogICAg
IHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKIAogICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhy
ZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbFJlY29yZHMsIHJlcXVlc3REYXRhLCBn
ZXRBbGxSZWNvcmRzRGF0YSk7CkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBJREJDb25uZWN0aW9u
UHJveHk6OmdldEFsbFJlY29yZHMoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgY29u
c3QgSUQKIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmdldENvdW50KFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UpCiB7Ci0g
ICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsKKyAgICBjb25z
dCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSB7IG9wZXJhdGlvbiB9OwogICAgIHNhdmVPcGVy
YXRpb24ob3BlcmF0aW9uKTsKIAogICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmdldENvdW50LCByZXF1ZXN0RGF0YSwga2V5UmFuZ2UpOwpAQCAt
MjA3LDcgKzIwNyw3IEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpnZXRDb3VudChUcmFuc2Fj
dGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJLZXlSCiAKIHZvaWQgSURCQ29ubmVj
dGlvblByb3h5OjpkZWxldGVSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSkKIHsKLSAgICBjb25zdCBJREJSZXF1ZXN0
RGF0YSByZXF1ZXN0RGF0YShvcGVyYXRpb24pOworICAgIGNvbnN0IElEQlJlcXVlc3REYXRhIHJl
cXVlc3REYXRhIHsgb3BlcmF0aW9uIH07CiAgICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwog
CiAgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
ZGVsZXRlUmVjb3JkLCByZXF1ZXN0RGF0YSwga2V5UmFuZ2UpOwpAQCAtMjE1LDcgKzIxNSw3IEBA
IHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkZWxldGVSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRp
b24mIG9wZXJhdGlvbiwgY29uc3QgSURCCiAKIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpvcGVu
Q3Vyc29yKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQkN1cnNvcklu
Zm8mIGluZm8pCiB7Ci0gICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0
aW9uKTsKKyAgICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSB7IG9wZXJhdGlvbiB9
OwogICAgIHNhdmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKIAogICAgIGNhbGxDb25uZWN0aW9uT25N
YWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5DdXJzb3IsIHJlcXVlc3REYXRh
LCBpbmZvKTsKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6b3Bl
bkN1cnNvcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJDdQogCiB2
b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6aXRlcmF0ZUN1cnNvcihUcmFuc2FjdGlvbk9wZXJhdGlv
biYgb3BlcmF0aW9uLCBjb25zdCBJREJLZXlEYXRhJiBrZXksIHVuc2lnbmVkIGxvbmcgY291bnQp
CiB7Ci0gICAgY29uc3QgSURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEob3BlcmF0aW9uKTsKKyAg
ICBjb25zdCBJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSB7IG9wZXJhdGlvbiB9OwogICAgIHNh
dmVPcGVyYXRpb24ob3BlcmF0aW9uKTsKIAogICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhyZWFk
KCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Oml0ZXJhdGVDdXJzb3IsIHJlcXVlc3REYXRhLCBrZXks
IGNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZDUzNjQwYmI5
ZmViY2Y1ZGM3Nzk1NmY2MzIzMTRmOWQ5MmRiNmI3YS4uZjk0YTBmODBkOTU2YjNjOTQxNmRlODY3
MTIyN2ZmZTgzODQyNTY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAg
LTgwLDcgKzgwLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5z
YWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKICAgICBMT0coSW5kZXhlZERC
LCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uIik7CiAKICAgICBpZiAo
bV90cmFuc2FjdGlvbnMuY29udGFpbnMoaW5mby5pZGVudGlmaWVyKCkpKQotICAgICAgICByZXR1
cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gaXQgYWxyZWFkeSBoYXMgYSBy
ZWNvcmQgb2YiKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24g
aXQgYWxyZWFkeSBoYXMgYSByZWNvcmQgb2YiIH07CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0g
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgaW5mbyk7CiAKQEAg
LTk3LDcgKzk3LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5z
YWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKIAogICAgIG1fdHJhbnNhY3Rp
b25zLnNldChpbmZvLmlkZW50aWZpZXIoKSwgV1RGTW92ZSh0cmFuc2FjdGlvbikpOwogCi0gICAg
cmV0dXJuIElEQkVycm9yKCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogSURCRXJyb3IgTWVtb3J5
SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQpAQCAtMTA2LDExICsxMDYsMTEgQEAgSURCRXJy
b3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHIKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9u
cy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKLSAg
ICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNhY3Rpb24gaXQgZGlkbid0
IGhhdmUgcmVjb3JkIG9mIik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNh
Y3Rpb24gaXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIiB9OwogCiAgICAgdHJhbnNhY3Rpb24tPmFi
b3J0KCk7CiAKLSAgICByZXR1cm4gSURCRXJyb3IoKTsKKyAgICByZXR1cm4geyB9OwogfQogCiBJ
REJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQpAQCAtMTE5LDExICsx
MTksMTEgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlv
bihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24g
PSBtX3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0
cmFuc2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5z
YWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiIpOworICAgICAgICByZXR1cm4geyBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2Vk
IHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNvcmQgb2YiIH07CiAKICAg
ICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CiAKLSAgICByZXR1cm4gSURCRXJyb3IoKTsKKyAgICBy
ZXR1cm4geyB9OwogfQogCiBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8pCkBAIC0xMzIsNyArMTMyLDcgQEAg
SURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHQKIAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAg
ICAgaWYgKG1fZGF0YWJhc2VJbmZvLT5oYXNPYmplY3RTdG9yZShpbmZvLm5hbWUoKSkpCi0gICAg
ICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3RyYWludEVycm9y
KTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJv
ciB9OwogCiAgICAgQVNTRVJUKCFtX29iamVjdFN0b3Jlc0J5SWRlbnRpZmllci5jb250YWlucyhp
bmZvLmlkZW50aWZpZXIoKSkpOwogICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBNZW1vcnlPYmplY3RT
dG9yZTo6Y3JlYXRlKGluZm8pOwpAQCAtMTQ2LDcgKzE0Niw3IEBAIElEQkVycm9yIE1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0CiAgICAgcmF3VHJhbnNhY3Rpb24tPmFkZE5ld09iamVjdFN0b3JlKG9iamVjdFN0b3Jl
LmdldCgpKTsKICAgICByZWdpc3Rlck9iamVjdFN0b3JlKFdURk1vdmUob2JqZWN0U3RvcmUpKTsK
IAotICAgIHJldHVybiBJREJFcnJvcigpOworICAgIHJldHVybiB7IH07CiB9CiAKIElEQkVycm9y
IE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllcikKQEAgLTE1NSw3ICsxNTUsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAog
CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKICAgICBpZiAoIW1fZGF0YWJhc2VJbmZvLT5p
bmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpKQotICAgICAg
ICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvcik7
CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50RXJyb3Ig
fTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rp
b25JZGVudGlmaWVyKTsKICAgICBBU1NFUlQodHJhbnNhY3Rpb24pOwpAQCAtMTY0LDEyICsxNjQs
MTIgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZShj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAgICBhdXRvIG9iamVjdFN0b3JlID0gdGFr
ZU9iamVjdFN0b3JlQnlJZGVudGlmaWVyKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgQVNT
RVJUKG9iamVjdFN0b3JlKTsKICAgICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAgICByZXR1cm4g
SURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvcik7CisgICAgICAg
IHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50RXJyb3IgfTsKIAogICAg
IG1fZGF0YWJhc2VJbmZvLT5kZWxldGVPYmplY3RTdG9yZShvYmplY3RTdG9yZS0+aW5mbygpLm5h
bWUoKSk7CiAgICAgdHJhbnNhY3Rpb24tPm9iamVjdFN0b3JlRGVsZXRlZCgqb2JqZWN0U3RvcmUp
OwogCi0gICAgcmV0dXJuIElEQkVycm9yKCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogSURCRXJy
b3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVPYmplY3RTdG9yZShjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCkBAIC0xNzgsNyArMTc4LDcgQEAg
SURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHQKIAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAg
ICAgaWYgKCFtX2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0
U3RvcmVJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpDb25zdHJhaW50RXJyb3IpOworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6Q29uc3RyYWludEVycm9yIH07CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90
cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgQVNTRVJUKHRyYW5z
YWN0aW9uKTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3Rv
cmU6OnJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAg
IGF1dG8gb2JqZWN0U3RvcmUgPSBtX29iamVjdFN0b3Jlc0J5SWRlbnRpZmllci5nZXQob2JqZWN0
U3RvcmVJZGVudGlmaWVyKTsKICAgICBBU1NFUlQob2JqZWN0U3RvcmUpOwogICAgIGlmICghb2Jq
ZWN0U3RvcmUpCi0gICAgICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
Q29uc3RyYWludEVycm9yKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246
OkNvbnN0cmFpbnRFcnJvciB9OwogCiAgICAgU3RyaW5nIG9sZE5hbWUgPSBvYmplY3RTdG9yZS0+
aW5mbygpLm5hbWUoKTsKICAgICBvYmplY3RTdG9yZS0+cmVuYW1lKG5ld05hbWUpOwpAQCAtMTk1
LDcgKzE5NSw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1lT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBtX2RhdGFiYXNlSW5m
by0+cmVuYW1lT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lKTsKIAot
ICAgIHJldHVybiBJREJFcnJvcigpOworICAgIHJldHVybiB7IH07CiB9CiAKIElEQkVycm9yIE1l
bW9yeUlEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyKQpAQCAtMjEyLDExICsyMTIsMTEgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0
b3JlOjpjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHIKIAog
ICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBtX29iamVjdFN0b3Jlc0J5SWRlbnRpZmllci5nZXQob2Jq
ZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAgICByZXR1
cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvcik7CisgICAg
ICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50RXJyb3IgfTsKIAog
ICAgIG9iamVjdFN0b3JlLT5jbGVhcigpOwogCi0gICAgcmV0dXJuIElEQkVycm9yKCk7CisgICAg
cmV0dXJuIHsgfTsKIH0KIAogSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjcmVhdGVJ
bmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCSW5kZXhJbmZvJiBpbmZvKQpAQCAtMjI5LDcgKzIyOSw3IEBAIElEQkVycm9yIE1l
bW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjCiAKICAgICBhdXRvKiBvYmplY3RTdG9yZSA9IG1fb2JqZWN0U3RvcmVzQnlJ
ZGVudGlmaWVyLmdldChpbmZvLm9iamVjdFN0b3JlSWRlbnRpZmllcigpKTsKICAgICBpZiAoIW9i
amVjdFN0b3JlKQotICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246
OkNvbnN0cmFpbnRFcnJvcik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpDb25zdHJhaW50RXJyb3IgfTsKIAogICAgIHJldHVybiBvYmplY3RTdG9yZS0+Y3JlYXRlSW5k
ZXgoKnJhd1RyYW5zYWN0aW9uLCBpbmZvKTsKIH0KQEAgLTI0NCw3ICsyNDQsNyBAQCBJREJFcnJv
ciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhYwogCiAgICAgYXV0byogb2JqZWN0U3RvcmUgPSBtX29iamVjdFN0b3Jl
c0J5SWRlbnRpZmllci5nZXQob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVj
dFN0b3JlKQotICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNv
bnN0cmFpbnRFcnJvcik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpD
b25zdHJhaW50RXJyb3IgfTsKIAogICAgIHJldHVybiBvYmplY3RTdG9yZS0+ZGVsZXRlSW5kZXgo
KnJhd1RyYW5zYWN0aW9uLCBpbmRleElkZW50aWZpZXIpOwogfQpAQCAtMjU2LDExICsyNTYsMTEg
QEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW5hbWVJbmRleChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWMKICAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOwog
ICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3Rp
bmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIGlmICghb2JqZWN0U3Rv
cmVJbmZvKQotICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNv
bnN0cmFpbnRFcnJvcik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpD
b25zdHJhaW50RXJyb3IgfTsKIAogICAgIGF1dG8qIGluZGV4SW5mbyA9IG9iamVjdFN0b3JlSW5m
by0+aW5mb0ZvckV4aXN0aW5nSW5kZXgoaW5kZXhJZGVudGlmaWVyKTsKICAgICBpZiAoIWluZGV4
SW5mbykKLSAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25z
dHJhaW50RXJyb3IpOworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29u
c3RyYWludEVycm9yIH07CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMu
Z2V0KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uKTsKQEAg
LTI2OSwxMiArMjY5LDEyIEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVuYW1l
SW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjCiAgICAgYXV0byBvYmpl
Y3RTdG9yZSA9IG1fb2JqZWN0U3RvcmVzQnlJZGVudGlmaWVyLmdldChvYmplY3RTdG9yZUlkZW50
aWZpZXIpOwogICAgIEFTU0VSVChvYmplY3RTdG9yZSk7CiAgICAgaWYgKCFvYmplY3RTdG9yZSkK
LSAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50
RXJyb3IpOworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3RyYWlu
dEVycm9yIH07CiAKICAgICBhdXRvKiBpbmRleCA9IG9iamVjdFN0b3JlLT5pbmRleEZvcklkZW50
aWZpZXIoaW5kZXhJZGVudGlmaWVyKTsKICAgICBBU1NFUlQoaW5kZXgpOwogICAgIGlmICghaW5k
ZXgpCi0gICAgICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3Ry
YWludEVycm9yKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0
cmFpbnRFcnJvciB9OwogCiAgICAgU3RyaW5nIG9sZE5hbWUgPSBpbmRleC0+aW5mbygpLm5hbWUo
KTsKICAgICBvYmplY3RTdG9yZS0+cmVuYW1lSW5kZXgoKmluZGV4LCBuZXdOYW1lKTsKQEAgLTI4
Miw3ICsyODIsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJlbmFtZUluZGV4
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhYwogCiAgICAgaW5kZXhJbmZvLT5y
ZW5hbWUobmV3TmFtZSk7CiAKLSAgICByZXR1cm4gSURCRXJyb3IoKTsKKyAgICByZXR1cm4geyB9
OwogfQogCiB2b2lkIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVtb3ZlT2JqZWN0U3RvcmVGb3JW
ZXJzaW9uQ2hhbmdlQWJvcnQoTWVtb3J5T2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlKQpAQCAtMzEy
LDcgKzMxMiw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6a2V5RXhpc3RzSW5P
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpCiAgICAgUkVMRUFTRV9BU1NFUlQo
b2JqZWN0U3RvcmUpOwogCiAgICAga2V5RXhpc3RzID0gb2JqZWN0U3RvcmUtPmNvbnRhaW5zUmVj
b3JkKGtleURhdGEpOwotICAgIHJldHVybiBJREJFcnJvcigpOworICAgIHJldHVybiB7IH07CiB9
CiAKIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSkKQEAgLTMyMiwx
NCArMzIyLDE0IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2Uo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjCiAgICAgQVNTRVJUKG9iamVjdFN0
b3JlSWRlbnRpZmllcik7CiAKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5z
YWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgdHJh
bnNhY3Rpb24gZm91bmQgdG8gZGVsZXRlIGZyb20iKSk7CisgICAgICAgIHJldHVybiB7IElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBz
dG9yZSB0cmFuc2FjdGlvbiBmb3VuZCB0byBkZWxldGUgZnJvbSIpIH07CiAKICAgICBNZW1vcnlP
YmplY3RTdG9yZSogb2JqZWN0U3RvcmUgPSBtX29iamVjdFN0b3Jlc0J5SWRlbnRpZmllci5nZXQo
b2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAgICBy
ZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlM
aXRlcmFsKCJObyBiYWNraW5nIHN0b3JlIG9iamVjdCBzdG9yZSBmb3VuZCIpKTsKKyAgICAgICAg
cmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFs
KCJObyBiYWNraW5nIHN0b3JlIG9iamVjdCBzdG9yZSBmb3VuZCIpIH07CiAKICAgICBvYmplY3RT
dG9yZS0+ZGVsZXRlUmFuZ2UocmFuZ2UpOwotICAgIHJldHVybiBJREJFcnJvcigpOworICAgIHJl
dHVybiB7IH07CiB9CiAKIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWRkUmVjb3Jk
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJPYmplY3RTdG9yZUluZm8mIG9iamVjdFN0b3JlSW5mbywgY29uc3QgSURCS2V5RGF0YSYg
a2V5RGF0YSwgY29uc3QgSURCVmFsdWUmIHZhbHVlKQpAQCAtMzQwLDExICszNDAsMTEgQEAgSURC
RXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGkKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0
aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQot
ICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJv
ciwgQVNDSUlMaXRlcmFsKCJObyBiYWNraW5nIHN0b3JlIHRyYW5zYWN0aW9uIGZvdW5kIHRvIHB1
dCByZWNvcmQiKSk7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSB0cmFuc2FjdGlvbiBmb3Vu
ZCB0byBwdXQgcmVjb3JkIikgfTsKIAogICAgIE1lbW9yeU9iamVjdFN0b3JlKiBvYmplY3RTdG9y
ZSA9IG1fb2JqZWN0U3RvcmVzQnlJZGVudGlmaWVyLmdldChvYmplY3RTdG9yZUluZm8uaWRlbnRp
ZmllcigpKTsKICAgICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAgICByZXR1cm4gSURCRXJyb3Io
SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJObyBiYWNr
aW5nIHN0b3JlIG9iamVjdCBzdG9yZSBmb3VuZCB0byBwdXQgcmVjb3JkIikpOworICAgICAgICBy
ZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
Ik5vIGJhY2tpbmcgc3RvcmUgb2JqZWN0IHN0b3JlIGZvdW5kIHRvIHB1dCByZWNvcmQiKSB9Owog
CiAgICAgcmV0dXJuIG9iamVjdFN0b3JlLT5hZGRSZWNvcmQoKnRyYW5zYWN0aW9uLCBrZXlEYXRh
LCB2YWx1ZSk7CiB9CkBAIC0zNTYsMTQgKzM1NiwxNCBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aQogICAgIEFTU0VSVChvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCiAgICAgaWYgKCFtX3RyYW5z
YWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlvbklkZW50aWZpZXIpKQotICAgICAgICByZXR1cm4g
SURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFs
KCJObyBiYWNraW5nIHN0b3JlIHRyYW5zYWN0aW9uIGZvdW5kIHRvIGdldCByZWNvcmQiKSk7Cisg
ICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJ
TGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSB0cmFuc2FjdGlvbiBmb3VuZCB0byBnZXQgcmVjb3Jk
IikgfTsKIAogICAgIE1lbW9yeU9iamVjdFN0b3JlKiBvYmplY3RTdG9yZSA9IG1fb2JqZWN0U3Rv
cmVzQnlJZGVudGlmaWVyLmdldChvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIGlmICghb2Jq
ZWN0U3RvcmUpCi0gICAgICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgb2JqZWN0IHN0b3Jl
IGZvdW5kIikpOworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93
bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgb2JqZWN0IHN0b3JlIGZvdW5k
IikgfTsKIAogICAgIG91dFZhbHVlID0gb2JqZWN0U3RvcmUtPnZhbHVlRm9yS2V5UmFuZ2UocmFu
Z2UpOwotICAgIHJldHVybiBJREJFcnJvcigpOworICAgIHJldHVybiB7IH07CiB9CiAKIElEQkVy
cm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCR2V0QWxsUmVjb3Jk
c0RhdGEmIGdldEFsbFJlY29yZHNEYXRhLCBJREJHZXRBbGxSZXN1bHQmIHJlc3VsdCkKQEAgLTM3
MywxMSArMzczLDExIEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0QWxsUmVj
b3Jkcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zCiAgICAgQVNTRVJUKGdldEFs
bFJlY29yZHNEYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAKICAgICBpZiAoIW1fdHJhbnNh
Y3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIHJldHVybiBJ
REJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
Ik5vIGJhY2tpbmcgc3RvcmUgdHJhbnNhY3Rpb24gZm91bmQgdG8gZ2V0IGFsbCByZWNvcmRzIikp
OworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBB
U0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgdHJhbnNhY3Rpb24gZm91bmQgdG8gZ2V0IGFs
bCByZWNvcmRzIikgfTsKIAogICAgIE1lbW9yeU9iamVjdFN0b3JlKiBvYmplY3RTdG9yZSA9IG1f
b2JqZWN0U3RvcmVzQnlJZGVudGlmaWVyLmdldChnZXRBbGxSZWNvcmRzRGF0YS5vYmplY3RTdG9y
ZUlkZW50aWZpZXIpOwogICAgIGlmICghb2JqZWN0U3RvcmUpCi0gICAgICAgIHJldHVybiBJREJF
cnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5v
IGJhY2tpbmcgc3RvcmUgb2JqZWN0IHN0b3JlIGZvdW5kIikpOworICAgICAgICByZXR1cm4geyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tp
bmcgc3RvcmUgb2JqZWN0IHN0b3JlIGZvdW5kIikgfTsKIAogICAgIG9iamVjdFN0b3JlLT5nZXRB
bGxSZWNvcmRzKGdldEFsbFJlY29yZHNEYXRhLmtleVJhbmdlRGF0YSwgZ2V0QWxsUmVjb3Jkc0Rh
dGEuY291bnQsIGdldEFsbFJlY29yZHNEYXRhLmdldEFsbFR5cGUsIHJlc3VsdCk7CiAgICAgcmV0
dXJuIHsgfTsKQEAgLTM5MCwxNCArMzkwLDE0IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6Z2V0SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuCiAg
ICAgQVNTRVJUKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAKICAgICBpZiAoIW1fdHJhbnNhY3Rp
b25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIHJldHVybiBJREJF
cnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5v
IGJhY2tpbmcgc3RvcmUgdHJhbnNhY3Rpb24gZm91bmQgdG8gZ2V0IHJlY29yZCIpKTsKKyAgICAg
ICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRl
cmFsKCJObyBiYWNraW5nIHN0b3JlIHRyYW5zYWN0aW9uIGZvdW5kIHRvIGdldCByZWNvcmQiKSB9
OwogCiAgICAgTWVtb3J5T2JqZWN0U3RvcmUqIG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXNC
eUlkZW50aWZpZXIuZ2V0KG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgaWYgKCFvYmplY3RT
dG9yZSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBvYmplY3Qgc3RvcmUgZm91
bmQiKSk7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBvYmplY3Qgc3RvcmUgZm91bmQiKSB9
OwogCiAgICAgb3V0VmFsdWUgPSBvYmplY3RTdG9yZS0+aW5kZXhWYWx1ZUZvcktleVJhbmdlKGlu
ZGV4SWRlbnRpZmllciwgcmVjb3JkVHlwZSwgcmFuZ2UpOwotICAgIHJldHVybiBJREJFcnJvcigp
OworICAgIHJldHVybiB7IH07CiB9CiAKIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Z2V0Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlm
aWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlLCB1aW50NjRfdCYgb3V0Q291bnQpCkBA
IC00MDcsMTUgKzQwNywxNSBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldENv
dW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3RpbwogICAgIEFTU0VSVChv
YmplY3RTdG9yZUlkZW50aWZpZXIpOwogCiAgICAgaWYgKCFtX3RyYW5zYWN0aW9ucy5jb250YWlu
cyh0cmFuc2FjdGlvbklkZW50aWZpZXIpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0
YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJObyBiYWNraW5nIHN0
b3JlIHRyYW5zYWN0aW9uIGZvdW5kIHRvIGdldCBjb3VudCIpKTsKKyAgICAgICAgcmV0dXJuIHsg
SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJObyBiYWNr
aW5nIHN0b3JlIHRyYW5zYWN0aW9uIGZvdW5kIHRvIGdldCBjb3VudCIpIH07CiAKICAgICBNZW1v
cnlPYmplY3RTdG9yZSogb2JqZWN0U3RvcmUgPSBtX29iamVjdFN0b3Jlc0J5SWRlbnRpZmllci5n
ZXQob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAg
ICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVND
SUlMaXRlcmFsKCJObyBiYWNraW5nIHN0b3JlIG9iamVjdCBzdG9yZSBmb3VuZCIpKTsKKyAgICAg
ICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRl
cmFsKCJObyBiYWNraW5nIHN0b3JlIG9iamVjdCBzdG9yZSBmb3VuZCIpIH07CiAKICAgICBvdXRD
b3VudCA9IG9iamVjdFN0b3JlLT5jb3VudEZvcktleVJhbmdlKGluZGV4SWRlbnRpZmllciwgcmFu
Z2UpOwogCi0gICAgcmV0dXJuIElEQkVycm9yKCk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogSURC
RXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCYga2V5TnVtYmVyKQpAQCAtNDM0LDcgKzQzNCw3IEBA
IElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBvYmplY3RTdG9yZS0+c2V0S2V5R2VuZXJh
dG9yVmFsdWUoa2V5TnVtYmVyICsgMSk7CiAKLSAgICByZXR1cm4gSURCRXJyb3IoKTsKKyAgICBy
ZXR1cm4geyB9OwogfQogCiBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJldmVydEdl
bmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBrZXlO
dW1iZXIpCkBAIC00ODMsMTcgKzQ4MywxNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3Rv
cmU6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdAogICAg
IEFTU0VSVCghTWVtb3J5Q3Vyc29yOjpjdXJzb3JGb3JJZGVudGlmaWVyKGluZm8uaWRlbnRpZmll
cigpKSk7CiAKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWRl
bnRpZmllcikpCi0gICAgICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgdHJhbnNhY3Rpb24g
Zm91bmQgaW4gd2hpY2ggdG8gb3BlbiBhIGN1cnNvciIpKTsKKyAgICAgICAgcmV0dXJuIHsgSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJObyBiYWNraW5n
IHN0b3JlIHRyYW5zYWN0aW9uIGZvdW5kIGluIHdoaWNoIHRvIG9wZW4gYSBjdXJzb3IiKSB9Owog
CiAgICAgc3dpdGNoIChpbmZvLmN1cnNvclNvdXJjZSgpKSB7CiAgICAgY2FzZSBJbmRleGVkREI6
OkN1cnNvclNvdXJjZTo6T2JqZWN0U3RvcmU6IHsKICAgICAgICAgYXV0byogb2JqZWN0U3RvcmUg
PSBtX29iamVjdFN0b3Jlc0J5SWRlbnRpZmllci5nZXQoaW5mby5zb3VyY2VJZGVudGlmaWVyKCkp
OwogICAgICAgICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAgICAgICAgcmV0dXJuIElEQkVycm9y
KElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFj
a2luZyBzdG9yZSBvYmplY3Qgc3RvcmUgZm91bmQiKSk7CisgICAgICAgICAgICByZXR1cm4geyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tp
bmcgc3RvcmUgb2JqZWN0IHN0b3JlIGZvdW5kIikgfTsKIAogICAgICAgICBNZW1vcnlDdXJzb3Iq
IGN1cnNvciA9IG9iamVjdFN0b3JlLT5tYXliZU9wZW5DdXJzb3IoaW5mbyk7CiAgICAgICAgIGlm
ICghY3Vyc29yKQotICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IGNyZWF0ZSBvYmplY3Qg
c3RvcmUgY3Vyc29yIGluIGJhY2tpbmcgc3RvcmUiKSk7CisgICAgICAgICAgICByZXR1cm4geyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkNvdWxkIG5v
dCBjcmVhdGUgb2JqZWN0IHN0b3JlIGN1cnNvciBpbiBiYWNraW5nIHN0b3JlIikgfTsKIAogICAg
ICAgICBjdXJzb3ItPmN1cnJlbnREYXRhKG91dERhdGEpOwogICAgICAgICBicmVhazsKQEAgLTUw
MSwxNSArNTAxLDE1IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6b3BlbkN1cnNv
cihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0CiAgICAgY2FzZSBJbmRleGVk
REI6OkN1cnNvclNvdXJjZTo6SW5kZXg6CiAgICAgICAgIGF1dG8qIG9iamVjdFN0b3JlID0gbV9v
YmplY3RTdG9yZXNCeUlkZW50aWZpZXIuZ2V0KGluZm8ub2JqZWN0U3RvcmVJZGVudGlmaWVyKCkp
OwogICAgICAgICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAgICAgICAgcmV0dXJuIElEQkVycm9y
KElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFj
a2luZyBzdG9yZSBvYmplY3Qgc3RvcmUgZm91bmQiKSk7CisgICAgICAgICAgICByZXR1cm4geyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tp
bmcgc3RvcmUgb2JqZWN0IHN0b3JlIGZvdW5kIikgfTsKIAogICAgICAgICBhdXRvKiBpbmRleCA9
IG9iamVjdFN0b3JlLT5pbmRleEZvcklkZW50aWZpZXIoaW5mby5zb3VyY2VJZGVudGlmaWVyKCkp
OwogICAgICAgICBpZiAoIWluZGV4KQotICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBz
dG9yZSBpbmRleCBmb3VuZCIpKTsKKyAgICAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBpbmRl
eCBmb3VuZCIpIH07CiAKICAgICAgICAgTWVtb3J5Q3Vyc29yKiBjdXJzb3IgPSBpbmRleC0+bWF5
YmVPcGVuQ3Vyc29yKGluZm8pOwogICAgICAgICBpZiAoIWN1cnNvcikKLSAgICAgICAgICAgIHJl
dHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxp
dGVyYWwoIkNvdWxkIG5vdCBjcmVhdGUgaW5kZXggY3Vyc29yIGluIGJhY2tpbmcgc3RvcmUiKSk7
CisgICAgICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9y
LCBBU0NJSUxpdGVyYWwoIkNvdWxkIG5vdCBjcmVhdGUgaW5kZXggY3Vyc29yIGluIGJhY2tpbmcg
c3RvcmUiKSB9OwogCiAgICAgICAgIGN1cnNvci0+Y3VycmVudERhdGEob3V0RGF0YSk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNTIzLDExICs1MjMsMTEgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnMK
ICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29y
Iik7CiAKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWRlbnRp
ZmllcikpCi0gICAgICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5r
bm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgdHJhbnNhY3Rpb24gZm91
bmQgaW4gd2hpY2ggdG8gaXRlcmF0ZSBjdXJzb3IiKSk7CisgICAgICAgIHJldHVybiB7IElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBz
dG9yZSB0cmFuc2FjdGlvbiBmb3VuZCBpbiB3aGljaCB0byBpdGVyYXRlIGN1cnNvciIpIH07CiAK
ICAgICBhdXRvKiBjdXJzb3IgPSBNZW1vcnlDdXJzb3I6OmN1cnNvckZvcklkZW50aWZpZXIoY3Vy
c29ySWRlbnRpZmllcik7CiAgICAgaWYgKCFjdXJzb3IpCi0gICAgICAgIHJldHVybiBJREJFcnJv
cihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJh
Y2tpbmcgc3RvcmUgY3Vyc29yIGZvdW5kIGluIHdoaWNoIHRvIGl0ZXJhdGUgY3Vyc29yIikpOwor
ICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJ
SUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUgY3Vyc29yIGZvdW5kIGluIHdoaWNoIHRvIGl0ZXJh
dGUgY3Vyc29yIikgfTsKIAogICAgIGN1cnNvci0+aXRlcmF0ZShrZXksIGNvdW50LCBvdXREYXRh
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQlJlc3VsdERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlc3VsdERhdGEuY3BwCmluZGV4IGE4MTE5ZGM0Y2Q5YzM5OTI2MWM3YzYzMzgyMDY2
MmQxMDZiNWJiOTUuLjYzODNmMTA1ODg4YzNiYjgyYWZlMDAzY2E1MWY4NDFlMTI4YTMzMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1
bHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCUmVzdWx0RGF0YS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBJREJSZXN1bHREYXRhOjpp
c29sYXRlZENvcHkoY29uc3QgSURCUmVzdWx0RGF0YSYgc291cmNlLCBJREJSZXN1bHREYXRhJiBk
ZXMKIAogSURCUmVzdWx0RGF0YSBJREJSZXN1bHREYXRhOjplcnJvcihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCiB7
Ci0gICAgSURCUmVzdWx0RGF0YSByZXN1bHQocmVxdWVzdElkZW50aWZpZXIpOworICAgIElEQlJl
c3VsdERhdGEgcmVzdWx0IHsgcmVxdWVzdElkZW50aWZpZXIgfTsKICAgICByZXN1bHQubV90eXBl
ID0gSURCUmVzdWx0VHlwZTo6RXJyb3I7CiAgICAgcmVzdWx0Lm1fZXJyb3IgPSBlcnJvcjsKICAg
ICByZXR1cm4gcmVzdWx0OwpAQCAtMTA2LDcgKzEwNiw3IEBAIElEQlJlc3VsdERhdGEgSURCUmVz
dWx0RGF0YTo6ZXJyb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRp
ZmllCiAKIElEQlJlc3VsdERhdGEgSURCUmVzdWx0RGF0YTo6b3BlbkRhdGFiYXNlU3VjY2Vzcyhj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKLSAgICBJREJSZXN1
bHREYXRhIHJlc3VsdChyZXF1ZXN0SWRlbnRpZmllcik7CisgICAgSURCUmVzdWx0RGF0YSByZXN1
bHQgeyByZXF1ZXN0SWRlbnRpZmllciB9OwogICAgIHJlc3VsdC5tX3R5cGUgPSBJREJSZXN1bHRU
eXBlOjpPcGVuRGF0YWJhc2VTdWNjZXNzOwogICAgIHJlc3VsdC5tX2RhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIgPSBjb25uZWN0aW9uLmlkZW50aWZpZXIoKTsKICAgICByZXN1bHQubV9kYXRh
YmFzZUluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4oY29ubmVjdGlvbi5k
YXRhYmFzZSgpLmluZm8oKSk7CkBAIC0xMTYsNyArMTE2LDcgQEAgSURCUmVzdWx0RGF0YSBJREJS
ZXN1bHREYXRhOjpvcGVuRGF0YWJhc2VTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmUKIAogSURCUmVzdWx0RGF0YSBJREJSZXN1bHREYXRhOjpvcGVuRGF0YWJhc2VVcGdyYWRl
TmVlZGVkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIElE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0g
ICAgSURCUmVzdWx0RGF0YSByZXN1bHQocmVxdWVzdElkZW50aWZpZXIpOworICAgIElEQlJlc3Vs
dERhdGEgcmVzdWx0IHsgcmVxdWVzdElkZW50aWZpZXIgfTsKICAgICByZXN1bHQubV90eXBlID0g
SURCUmVzdWx0VHlwZTo6T3BlbkRhdGFiYXNlVXBncmFkZU5lZWRlZDsKICAgICByZXN1bHQubV9k
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyID0gdHJhbnNhY3Rpb24uZGF0YWJhc2VDb25uZWN0
aW9uKCkuaWRlbnRpZmllcigpOwogICAgIHJlc3VsdC5tX2RhdGFiYXNlSW5mbyA9IHN0ZDo6bWFr
ZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPih0cmFuc2FjdGlvbi5kYXRhYmFzZUNvbm5lY3Rpb24o
KS5kYXRhYmFzZSgpLmluZm8oKSk7CkBAIC0xMjYsNyArMTI2LDcgQEAgSURCUmVzdWx0RGF0YSBJ
REJSZXN1bHREYXRhOjpvcGVuRGF0YWJhc2VVcGdyYWRlTmVlZGVkKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmkKIAogSURCUmVzdWx0RGF0YSBJREJSZXN1bHREYXRhOjpkZWxldGVEYXRhYmFzZVN1
Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29u
c3QgSURCRGF0YWJhc2VJbmZvJiBpbmZvKQogewotICAgIElEQlJlc3VsdERhdGEgcmVzdWx0KElE
QlJlc3VsdFR5cGU6OkRlbGV0ZURhdGFiYXNlU3VjY2VzcywgcmVxdWVzdElkZW50aWZpZXIpOwor
ICAgIElEQlJlc3VsdERhdGEgcmVzdWx0IHtJREJSZXN1bHRUeXBlOjpEZWxldGVEYXRhYmFzZVN1
Y2Nlc3MsIHJlcXVlc3RJZGVudGlmaWVyIH07CiAgICAgcmVzdWx0Lm1fZGF0YWJhc2VJbmZvID0g
c3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KGluZm8pOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CkBAIC0xNjgsMjggKzE2OCwyOCBAQCBJREJSZXN1bHREYXRhIElEQlJlc3VsdERhdGE6
OnJlbmFtZUluZGV4U3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcQogCiBJ
REJSZXN1bHREYXRhIElEQlJlc3VsdERhdGE6OnB1dE9yQWRkU3VjY2Vzcyhjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiByZXN1
bHRLZXkpCiB7Ci0gICAgSURCUmVzdWx0RGF0YSByZXN1bHQoSURCUmVzdWx0VHlwZTo6UHV0T3JB
ZGRTdWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgSURCUmVzdWx0RGF0YSByZXN1bHQg
eyBJREJSZXN1bHRUeXBlOjpQdXRPckFkZFN1Y2Nlc3MsIHJlcXVlc3RJZGVudGlmaWVyIH07CiAg
ICAgcmVzdWx0Lm1fcmVzdWx0S2V5ID0gc3RkOjptYWtlX3VuaXF1ZTxJREJLZXlEYXRhPihyZXN1
bHRLZXkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIElEQlJlc3VsdERhdGEgSURCUmVzdWx0
RGF0YTo6Z2V0UmVjb3JkU3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBJREJHZXRSZXN1bHQmIGdldFJlc3VsdCkKIHsKLSAgICBJREJS
ZXN1bHREYXRhIHJlc3VsdChJREJSZXN1bHRUeXBlOjpHZXRSZWNvcmRTdWNjZXNzLCByZXF1ZXN0
SWRlbnRpZmllcik7CisgICAgSURCUmVzdWx0RGF0YSByZXN1bHQgeyBJREJSZXN1bHRUeXBlOjpH
ZXRSZWNvcmRTdWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllciB9OwogICAgIHJlc3VsdC5tX2dldFJl
c3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8SURCR2V0UmVzdWx0PihnZXRSZXN1bHQpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKIElEQlJlc3VsdERhdGEgSURCUmVzdWx0RGF0YTo6Z2V0QWxsUmVj
b3Jkc1N1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgSURCR2V0QWxsUmVzdWx0JiBnZXRBbGxSZXN1bHQpCiB7Ci0gICAgSURCUmVzdWx0
RGF0YSByZXN1bHQoSURCUmVzdWx0VHlwZTo6R2V0QWxsUmVjb3Jkc1N1Y2Nlc3MsIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKKyAgICBJREJSZXN1bHREYXRhIHJlc3VsdCB7IElEQlJlc3VsdFR5cGU6Okdl
dEFsbFJlY29yZHNTdWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllciB9OwogICAgIHJlc3VsdC5tX2dl
dEFsbFJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8SURCR2V0QWxsUmVzdWx0PihnZXRBbGxSZXN1
bHQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIElEQlJlc3VsdERhdGEgSURCUmVzdWx0RGF0
YTo6Z2V0Q291bnRTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIsIHVpbnQ2NF90IGNvdW50KQogewotICAgIElEQlJlc3VsdERhdGEgcmVzdWx0KElE
QlJlc3VsdFR5cGU6OkdldFJlY29yZFN1Y2Nlc3MsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBJ
REJSZXN1bHREYXRhIHJlc3VsdCB7IElEQlJlc3VsdFR5cGU6OkdldFJlY29yZFN1Y2Nlc3MsIHJl
cXVlc3RJZGVudGlmaWVyIH07CiAgICAgcmVzdWx0Lm1fcmVzdWx0SW50ZWdlciA9IGNvdW50Owog
ICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0yMDEsMTQgKzIwMSwxNCBAQCBJREJSZXN1bHREYXRh
IElEQlJlc3VsdERhdGE6OmRlbGV0ZVJlY29yZFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZQogCiBJREJSZXN1bHREYXRhIElEQlJlc3VsdERhdGE6Om9wZW5DdXJzb3JTdWNj
ZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IElEQkdldFJlc3VsdCYgZ2V0UmVzdWx0KQogewotICAgIElEQlJlc3VsdERhdGEgcmVzdWx0KElE
QlJlc3VsdFR5cGU6Ok9wZW5DdXJzb3JTdWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
SURCUmVzdWx0RGF0YSByZXN1bHQgeyBJREJSZXN1bHRUeXBlOjpPcGVuQ3Vyc29yU3VjY2Vzcywg
cmVxdWVzdElkZW50aWZpZXIgfTsKICAgICByZXN1bHQubV9nZXRSZXN1bHQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPElEQkdldFJlc3VsdD4oZ2V0UmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
CiBJREJSZXN1bHREYXRhIElEQlJlc3VsdERhdGE6Oml0ZXJhdGVDdXJzb3JTdWNjZXNzKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IElEQkdldFJl
c3VsdCYgZ2V0UmVzdWx0KQogewotICAgIElEQlJlc3VsdERhdGEgcmVzdWx0KElEQlJlc3VsdFR5
cGU6Okl0ZXJhdGVDdXJzb3JTdWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgSURCUmVz
dWx0RGF0YSByZXN1bHQgeyBJREJSZXN1bHRUeXBlOjpJdGVyYXRlQ3Vyc29yU3VjY2VzcywgcmVx
dWVzdElkZW50aWZpZXIgfTsKICAgICByZXN1bHQubV9nZXRSZXN1bHQgPSBzdGQ6Om1ha2VfdW5p
cXVlPElEQkdldFJlc3VsdD4oZ2V0UmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>