<?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>165256</bug_id>
          
          <creation_ts>2016-12-01 09:33:01 -0800</creation_ts>
          <short_desc>IndexedDB 2.0: Implement IDBObjectStore.getKey()</short_desc>
          <delta_ts>2016-12-01 13:34:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>160306</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1255267</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-01 09:33:01 -0800</bug_when>
    <thetext>IndexedDB 2.0: Implement IDBObjectStore.getKey()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255341</commentid>
    <comment_count>1</comment_count>
      <attachid>295876</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-01 12:22:58 -0800</bug_when>
    <thetext>Created attachment 295876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255416</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-01 13:34:06 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/209197</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295876</attachid>
            <date>2016-12-01 12:22:58 -0800</date>
            <delta_ts>2016-12-01 13:28:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165256-20161201122229.patch</filename>
            <type>text/plain</type>
            <size>43588</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhmMzE1OTk2MzBjMzll
ODI5MDQ4NTE0ZDQ3NmRkZjdhY2U2Njg2NC4uNjM2ZTRhZmYwZWEzMWMwMDFhZTA5MjUzODhiZWZi
MWJkNDllZjRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE2LTEyLTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREIgMi4wOiBJ
bXBsZW1lbnQgSURCT2JqZWN0U3RvcmUuZ2V0S2V5KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUyNTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYm9iamVjdHN0b3JlLWdldGtleS0xLXByaXZhdGUuaHRtbAorICAgICAgICAgICAgICAgc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldGtleS0xLmh0bWwKKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQk9iamVjdFN0b3JlOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0
U3RvcmU6OmdldEtleSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGw6CisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0ZU9iamVjdFN0b3JlR2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6cmVxdWVzdGVkT2JqZWN0U3RvcmVSZWNvcmRUeXBlKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6cmVxdWVz
dEdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6cmVxdWVzdElu
ZGV4UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaWRHZXRSZWNv
cmRPblNlcnZlcik6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVkREIuaDoK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaDoK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3Rv
cmU6OmdldFJlY29yZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUlEQkJhY2tpbmdTdG9yZS5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeU9iamVjdFN0b3JlLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKworICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29y
ZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
Lmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJHZXRSZWNvcmREYXRhOjppc29sYXRlZENvcHkp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmg6
CisgICAgICAgIChXZWJDb3JlOjpJREJHZXRSZWNvcmREYXRhOjplbmNvZGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCR2V0UmVjb3JkRGF0YTo6ZGVjb2RlKToKKwogMjAxNi0xMS0yOCAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRd
IE1vdmUgbW9yZSBhdHRyaWJ1dGVzIGZyb20gUmVuZGVyR3JpZCB0byB0aGUgbmV3IEdyaWQgY2xh
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlLmNwcAppbmRleCBmNTY4NGU4ZjEyMTBiNWZjNDhjOTZmOTM4ZTMyMWI2YzY3YzdkZmI1Li5h
YzljMmQ4ZGFkZDIxOTlhMTMwMTQ4NjNjZGU0NGY4NDNmNTAzNDBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0yMjAs
NyArMjIwLDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBJREJPYmplY3RTdG9yZTo6
Z2V0KEV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBKU1ZhbHVlIGsKICAgICBpZiAoIWlkYktleS0+aXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSURCRGF0YWJhc2VFeGNlcHRpb246
OkRhdGFFcnJvciwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnZ2V0JyBvbiAnSURC
T2JqZWN0U3RvcmUnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iKSB9OwogCi0g
ICAgcmV0dXJuIG1fdHJhbnNhY3Rpb24ucmVxdWVzdEdldFJlY29yZChleGVjU3RhdGUsICp0aGlz
LCB7IGlkYktleS5wdHIoKSB9KTsKKyAgICByZXR1cm4gbV90cmFuc2FjdGlvbi5yZXF1ZXN0R2V0
UmVjb3JkKGV4ZWNTdGF0ZSwgKnRoaXMsIHsgaWRiS2V5LnB0cigpLCBJREJHZXRSZWNvcmREYXRh
VHlwZTo6S2V5QW5kVmFsdWUgfSk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4g
SURCT2JqZWN0U3RvcmU6OmdldChFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgSURCS2V5UmFuZ2UqIGtl
eVJhbmdlKQpAQCAtMjM4LDcgKzIzOCw0MyBAQCBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+
IElEQk9iamVjdFN0b3JlOjpnZXQoRXhlY1N0YXRlJiBleGVjU3RhdGUsIElEQktleVJhbgogICAg
IGlmICgha2V5UmFuZ2VEYXRhLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRhRXJyb3IgfTsKIAotICAgIHJldHVybiBtX3RyYW5z
YWN0aW9uLnJlcXVlc3RHZXRSZWNvcmQoZXhlY1N0YXRlLCAqdGhpcywgeyBrZXlSYW5nZURhdGEg
fSk7CisgICAgcmV0dXJuIG1fdHJhbnNhY3Rpb24ucmVxdWVzdEdldFJlY29yZChleGVjU3RhdGUs
ICp0aGlzLCB7IGtleVJhbmdlRGF0YSwgSURCR2V0UmVjb3JkRGF0YVR5cGU6OktleUFuZFZhbHVl
IH0pOworfQorCitFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IElEQk9iamVjdFN0b3JlOjpn
ZXRLZXkoRXhlY1N0YXRlJiBleGVjU3RhdGUsIEpTVmFsdWUga2V5KQoreworICAgIExPRyhJbmRl
eGVkREIsICJJREJPYmplY3RTdG9yZTo6Z2V0S2V5Iik7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJl
YWQoKSA9PSBtX3RyYW5zYWN0aW9uLmRhdGFiYXNlKCkub3JpZ2luVGhyZWFkSUQoKSk7CisKKyAg
ICBpZiAobV9kZWxldGVkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSURCRGF0YWJhc2VF
eGNlcHRpb246OkludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVj
dXRlICdnZXRLZXknIG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSBvYmplY3Qgc3RvcmUgaGFzIGJl
ZW4gZGVsZXRlZC4iKSB9OworCisgICAgaWYgKCFtX3RyYW5zYWN0aW9uLmlzQWN0aXZlKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VHJhbnNhY3Rp
b25JbmFjdGl2ZUVycm9yLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdnZXRLZXkn
IG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSB0cmFuc2FjdGlvbiBpcyBpbmFjdGl2ZSBvciBmaW5p
c2hlZC4iKSB9OworCisgICAgYXV0byBpZGJLZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KGV4ZWNT
dGF0ZSwga2V5KTsKKyAgICBpZiAoIWlkYktleS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvciwgQVNDSUlMaXRlcmFs
KCJGYWlsZWQgdG8gZXhlY3V0ZSAnZ2V0S2V5JyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUgcGFy
YW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iKSB9OworCisgICAgcmV0dXJuIG1fdHJhbnNhY3Rp
b24ucmVxdWVzdEdldFJlY29yZChleGVjU3RhdGUsICp0aGlzLCB7IGlkYktleS5wdHIoKSwgSURC
R2V0UmVjb3JkRGF0YVR5cGU6OktleU9ubHkgfSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxJREJS
ZXF1ZXN0Pj4gSURCT2JqZWN0U3RvcmU6OmdldEtleShFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgSURC
S2V5UmFuZ2UqIGtleVJhbmdlKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJPYmplY3RTdG9y
ZTo6Z2V0S2V5Iik7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX3RyYW5zYWN0aW9u
LmRhdGFiYXNlKCkub3JpZ2luVGhyZWFkSUQoKSk7CisKKyAgICBpZiAobV9kZWxldGVkKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRTdGF0
ZUVycm9yLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdnZXRLZXknIG9uICdJREJP
YmplY3RTdG9yZSc6IFRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZC4iKSB9OworCisg
ICAgaWYgKCFtX3RyYW5zYWN0aW9uLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yLCBBU0NJ
SUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdnZXRLZXknIG9uICdJREJPYmplY3RTdG9yZSc6
IFRoZSB0cmFuc2FjdGlvbiBpcyBpbmFjdGl2ZSBvciBmaW5pc2hlZC4iKSB9OworCisgICAgSURC
S2V5UmFuZ2VEYXRhIGtleVJhbmdlRGF0YShrZXlSYW5nZSk7CisgICAgaWYgKCFrZXlSYW5nZURh
dGEuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSURCRGF0YWJhc2VFeGNl
cHRpb246OkRhdGFFcnJvciwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnZ2V0S2V5
JyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSBy
YW5nZS4iKSB9OworCisgICAgcmV0dXJuIG1fdHJhbnNhY3Rpb24ucmVxdWVzdEdldFJlY29yZChl
eGVjU3RhdGUsICp0aGlzLCB7IGtleVJhbmdlRGF0YSwgSURCR2V0UmVjb3JkRGF0YVR5cGU6Oktl
eU9ubHkgfSk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gSURCT2JqZWN0U3Rv
cmU6OmFkZChFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBrZXkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
aAppbmRleCAwODE3MDBiMTI3ODc2YjBlNDhhNjlmYTA2MjNlYTQ4NzUwZDVjMmQyLi5iNjJiMDMw
OWNkY2YwM2IwMjRhYmZlZTViMjlmYTUyOTc4NmY2Mzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTc3LDYgKzc3LDggQEAg
cHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gb3BlbktleUN1cnNvcihK
U0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBrZXksIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9u
KTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGdldChKU0M6OkV4ZWNTdGF0ZSYs
IEpTQzo6SlNWYWx1ZSBrZXkpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gZ2V0
KEpTQzo6RXhlY1N0YXRlJiwgSURCS2V5UmFuZ2UqKTsKKyAgICBFeGNlcHRpb25PcjxSZWY8SURC
UmVxdWVzdD4+IGdldEtleShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBrZXkpOworICAg
IEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gZ2V0S2V5KEpTQzo6RXhlY1N0YXRlJiwgSURC
S2V5UmFuZ2UqKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGFkZChKU0M6OkV4
ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlIGtleSk7CiAgICAgRXhjZXB0aW9u
T3I8UmVmPElEQlJlcXVlc3Q+PiBwdXQoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6SlNWYWx1ZSBrZXkpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gZGVsZXRl
RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUmLCBJREJLZXlSYW5nZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsCmluZGV4IGVkZDc4
ZTlhMzYxZjY3NDkzMmE4NTVhOGQxZDBjNTA1YzYxZGFjYzcuLmQzOWExMWY2MWZhZWY2NzM0NzIy
N2E5NGQyZWI4ZmIyMDBiODI1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwKQEAgLTQyLDYgKzQyLDggQEAKICAgICBbQ2Fs
bFdpdGg9U2NyaXB0U3RhdGUsIEltcGxlbWVudGVkQXM9ZGVsZXRlRnVuY3Rpb24sIE1heVRocm93
RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGRlbGV0ZShhbnkga2V5KTsKICAgICBbQ2FsbFdpdGg9U2Ny
aXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldChJREJLZXlSYW5nZT8g
a2V5KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJS
ZXF1ZXN0IGdldChhbnkga2V5KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93
RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEtleShJREJLZXlSYW5nZT8ga2V5KTsKKyAgICBbQ2Fs
bFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJREJSZXF1ZXN0IGdldEtleShh
bnkga2V5KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBJ
REJSZXF1ZXN0IGNsZWFyKCk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBNYXlUaHJvd0V4
Y2VwdGlvbl0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKG9wdGlvbmFsIElEQktleVJhbmdlPyByYW5n
ZSA9IG51bGwsIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24gPSAibmV4dCIpOwogICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIElEQlJlcXVlc3Qgb3BlbkN1
cnNvcihhbnkga2V5LCBvcHRpb25hbCBET01TdHJpbmcgZGlyZWN0aW9uID0gIm5leHQiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXgg
N2U3MzI5MjAzMTg4MTE4Y2ZmMTVmMjlhZjc1YTA5MTZkZDk4MGU0My4uOWQ5Yzk2MDI3ZTg1MTA3
YzRhYzY2NjkwNDgwMWVkNmI3ZTk5NmMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTY4LDYgKzY4LDExIEBAIFJlZjxJREJSZXF1
ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
SURCSW5kZXgmIGluCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0
LCBpbmRleCwgdHJhbnNhY3Rpb24pKTsKIH0KIAorUmVmPElEQlJlcXVlc3Q+IElEQlJlcXVlc3Q6
OmNyZWF0ZU9iamVjdFN0b3JlR2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElE
Qk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZVJlY29yZFR5
cGUgdHlwZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHR5cGUsIHRyYW5zYWN0
aW9uKSk7Cit9CisKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIEluZGV4ZWRE
Qjo6SW5kZXhSZWNvcmRUeXBlIHJlcXVlc3RlZFJlY29yZFR5cGUsIElEQlRyYW5zYWN0aW9uJiB0
cmFuc2FjdGlvbikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRl
eHQsIGluZGV4LCByZXF1ZXN0ZWRSZWNvcmRUeXBlLCB0cmFuc2FjdGlvbikpOwpAQCAtMTE1LDYg
KzEyMCwxNyBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIElEQkluZGV4JiBpbmRleCwgSURCVHJhbgogICAgIHN1c3BlbmRJZk5lZWRlZCgp
OwogfQogCitJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSW5kZXhlZERCOjpPYmplY3RTdG9y
ZVJlY29yZFR5cGUgdHlwZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQorICAgIDogSURC
QWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorICAgICwgbV90cmFuc2FjdGlvbigmdHJhbnNhY3Rp
b24pCisgICAgLCBtX3Jlc291cmNlSWRlbnRpZmllcih0cmFuc2FjdGlvbi5jb25uZWN0aW9uUHJv
eHkoKSkKKyAgICAsIG1fb2JqZWN0U3RvcmVTb3VyY2UoJm9iamVjdFN0b3JlKQorICAgICwgbV9y
ZXF1ZXN0ZWRPYmplY3RTdG9yZVJlY29yZFR5cGUodHlwZSkKKyAgICAsIG1fY29ubmVjdGlvblBy
b3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCkuY29ubmVjdGlvblByb3h5KCkpCit7CisgICAgc3Vz
cGVuZElmTmVlZGVkKCk7Cit9CisKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgSURCSW5kZXgmIGluZGV4LCBJbmRleGVkREI6OkluZGV4UmVj
b3JkVHlwZSByZXF1ZXN0ZWRSZWNvcmRUeXBlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24p
CiAgICAgOiBJREJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCB0cmFuc2FjdGlvbikKIHsKQEAgLTE5
OCw2ICsyMTQsMTMgQEAgdWludDY0X3QgSURCUmVxdWVzdDo6c291cmNlSW5kZXhJZGVudGlmaWVy
KCkgY29uc3QKICAgICByZXR1cm4gbV9pbmRleFNvdXJjZS0+aW5mbygpLmlkZW50aWZpZXIoKTsK
IH0KIAorSW5kZXhlZERCOjpPYmplY3RTdG9yZVJlY29yZFR5cGUgSURCUmVxdWVzdDo6cmVxdWVz
dGVkT2JqZWN0U3RvcmVSZWNvcmRUeXBlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoY3VycmVudFRo
cmVhZCgpID09IG9yaWdpblRocmVhZElEKCkpOworCisgICAgcmV0dXJuIG1fcmVxdWVzdGVkT2Jq
ZWN0U3RvcmVSZWNvcmRUeXBlOworfQorCiBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSBJREJS
ZXF1ZXN0OjpyZXF1ZXN0ZWRJbmRleFJlY29yZFR5cGUoKSBjb25zdAogewogICAgIEFTU0VSVChj
dXJyZW50VGhyZWFkKCkgPT0gb3JpZ2luVGhyZWFkSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggOGY1M2RjOTY0YTE2YTQ0MTk4MDhl
Nzk2ODNlOGVlYzljZTk4MGUzMS4uNGNlYjIwNzY5ZTBkODFmYjY5YmMzODIyNDI0NzMxZTk2ZmIx
MmUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aApAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJREJSZXF1ZXN0PiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0b3JlJiwgSURCVHJhbnNh
Y3Rpb24mKTsKICAgICBzdGF0aWMgUmVmPElEQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgSURCQ3Vyc29yJiwgSURCVHJhbnNhY3Rpb24mKTsKICAgICBzdGF0aWMgUmVm
PElEQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCSW5kZXgmLCBJ
REJUcmFuc2FjdGlvbiYpOworICAgIHN0YXRpYyBSZWY8SURCUmVxdWVzdD4gY3JlYXRlT2JqZWN0
U3RvcmVHZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0b3JlJiwgSW5kZXhl
ZERCOjpPYmplY3RTdG9yZVJlY29yZFR5cGUsIElEQlRyYW5zYWN0aW9uJik7CiAgICAgc3RhdGlj
IFJlZjxJREJSZXF1ZXN0PiBjcmVhdGVJbmRleEdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
SURCSW5kZXgmLCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSwgSURCVHJhbnNhY3Rpb24mKTsK
IAogICAgIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVzb3VyY2VJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUlkZW50aWZpZXI7IH0KQEAgLTgwLDYgKzgxLDcgQEAg
cHVibGljOgogCiAgICAgdWludDY0X3Qgc291cmNlT2JqZWN0U3RvcmVJZGVudGlmaWVyKCkgY29u
c3Q7CiAgICAgdWludDY0X3Qgc291cmNlSW5kZXhJZGVudGlmaWVyKCkgY29uc3Q7CisgICAgSW5k
ZXhlZERCOjpPYmplY3RTdG9yZVJlY29yZFR5cGUgcmVxdWVzdGVkT2JqZWN0U3RvcmVSZWNvcmRU
eXBlKCkgY29uc3Q7CiAgICAgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgcmVxdWVzdGVkSW5k
ZXhSZWNvcmRUeXBlKCkgY29uc3Q7CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KQEAgLTEzMiw2ICsxMzQsNyBAQCBwcml2YXRl
OgogICAgIElEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0b3Jl
JiwgSURCVHJhbnNhY3Rpb24mKTsKICAgICBJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBJREJDdXJzb3ImLCBJREJUcmFuc2FjdGlvbiYpOwogICAgIElEQlJlcXVlc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIElEQkluZGV4JiwgSURCVHJhbnNhY3Rpb24mKTsKKyAgICBJREJS
ZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBJREJPYmplY3RTdG9yZSYsIEluZGV4ZWRE
Qjo6T2JqZWN0U3RvcmVSZWNvcmRUeXBlLCBJREJUcmFuc2FjdGlvbiYpOwogICAgIElEQlJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQkluZGV4JiwgSW5kZXhlZERCOjpJbmRleFJl
Y29yZFR5cGUsIElEQlRyYW5zYWN0aW9uJik7CiAKICAgICB2b2lkIGNsZWFyUmVzdWx0KCk7CkBA
IC0xNjgsNyArMTcxLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBtX2N1cnNv
clNvdXJjZTsKIAogICAgIGJvb2wgbV9oYXNQZW5kaW5nQWN0aXZpdHkgeyB0cnVlIH07Ci0gICAg
SW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgbV9yZXF1ZXN0ZWRJbmRleFJlY29yZFR5cGU7Cisg
ICAgSW5kZXhlZERCOjpPYmplY3RTdG9yZVJlY29yZFR5cGUgbV9yZXF1ZXN0ZWRPYmplY3RTdG9y
ZVJlY29yZFR5cGUgeyBJbmRleGVkREI6Ok9iamVjdFN0b3JlUmVjb3JkVHlwZTo6VmFsdWVPbmx5
IH07CisgICAgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgbV9yZXF1ZXN0ZWRJbmRleFJlY29y
ZFR5cGUgeyBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZTo6S2V5IH07CiAKICAgICBSZWZQdHI8
SURCQ3Vyc29yPiBtX3BlbmRpbmdDdXJzb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA0NDk3MzQ3N2YyMGU5MjYz
ZDUyYWJkODM4MmEzMTA1MWMyNDgwZWE3Li4wNWRhMDJmYjI5MDcyYzVjNTBkYzZiYmQ1MWZhMGI3
ZWM5NjU5NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb24uY3BwCkBAIC05NTIsNyArOTUyLDkgQEAgUmVmPElEQlJlcXVlc3Q+IElE
QlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0UmVjb3JkKEV4ZWNTdGF0ZSYgc3RhdGUsIElEQk9iamVj
dFN0b3IKIAogICAgIEFTU0VSVF9VTlVTRUQoc3RhdGUsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSA9PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZSgmc3RhdGUpKTsKIAotICAg
IGF1dG8gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCBvYmplY3RTdG9yZSwgKnRoaXMpOworICAgIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVSZWNv
cmRUeXBlIHR5cGUgPSBnZXRSZWNvcmREYXRhLnR5cGUgPT0gSURCR2V0UmVjb3JkRGF0YVR5cGU6
OktleUFuZFZhbHVlID8gSW5kZXhlZERCOjpPYmplY3RTdG9yZVJlY29yZFR5cGU6OlZhbHVlT25s
eSA6IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVSZWNvcmRUeXBlOjpLZXlPbmx5OworCisgICAgYXV0
byByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlT2JqZWN0U3RvcmVHZXQoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgb2JqZWN0U3RvcmUsIHR5cGUsICp0aGlzKTsKICAgICBhZGRSZXF1ZXN0
KHJlcXVlc3QuZ2V0KCkpOwogCiAgICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpjcmVh
dGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5zYWN0
aW9uOjpkaWRHZXRSZWNvcmRPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRPblNl
cnZlciwgZ2V0UmVjb3JkRGF0YSkpOwpAQCAtOTg4LDcgKzk5MCw3IEBAIFJlZjxJREJSZXF1ZXN0
PiBJREJUcmFuc2FjdGlvbjo6cmVxdWVzdEluZGV4UmVjb3JkKEV4ZWNTdGF0ZSYgc3RhdGUsIElE
QkluZGV4JiBpCiAgICAgYXV0byByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlSW5kZXhHZXQo
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW5kZXgsIHR5cGUsICp0aGlzKTsKICAgICBhZGRS
ZXF1ZXN0KHJlcXVlc3QuZ2V0KCkpOwogCi0gICAgSURCR2V0UmVjb3JkRGF0YSBnZXRSZWNvcmRE
YXRhID0geyByYW5nZSB9OworICAgIElEQkdldFJlY29yZERhdGEgZ2V0UmVjb3JkRGF0YSA9IHsg
cmFuZ2UsIElEQkdldFJlY29yZERhdGFUeXBlOjpLZXlBbmRWYWx1ZSB9OwogICAgIHNjaGVkdWxl
T3BlcmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIHJl
cXVlc3QuZ2V0KCksICZJREJUcmFuc2FjdGlvbjo6ZGlkR2V0UmVjb3JkT25TZXJ2ZXIsICZJREJU
cmFuc2FjdGlvbjo6Z2V0UmVjb3JkT25TZXJ2ZXIsIGdldFJlY29yZERhdGEpKTsKIAogICAgIHJl
dHVybiByZXF1ZXN0OwpAQCAtMTAxNCw5ICsxMDE2LDEzIEBAIHZvaWQgSURCVHJhbnNhY3Rpb246
OmRpZEdldFJlY29yZE9uU2VydmVyKElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQlJlc3Vs
dERhCiAKICAgICBBU1NFUlQocmVzdWx0RGF0YS50eXBlKCkgPT0gSURCUmVzdWx0VHlwZTo6R2V0
UmVjb3JkU3VjY2Vzcyk7CiAKKyAgICBib29sIHVzZVJlc3VsdEtleSA9IHJlcXVlc3Quc291cmNl
SW5kZXhJZGVudGlmaWVyKCkgJiYgcmVxdWVzdC5yZXF1ZXN0ZWRJbmRleFJlY29yZFR5cGUoKSA9
PSBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZTo6S2V5OworICAgIGlmICghdXNlUmVzdWx0S2V5
KQorICAgICAgICB1c2VSZXN1bHRLZXkgPSByZXF1ZXN0LnJlcXVlc3RlZE9iamVjdFN0b3JlUmVj
b3JkVHlwZSgpID09IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVSZWNvcmRUeXBlOjpLZXlPbmx5Owor
CiAgICAgY29uc3QgSURCR2V0UmVzdWx0JiByZXN1bHQgPSByZXN1bHREYXRhLmdldFJlc3VsdCgp
OwogCi0gICAgaWYgKHJlcXVlc3Quc291cmNlSW5kZXhJZGVudGlmaWVyKCkgJiYgcmVxdWVzdC5y
ZXF1ZXN0ZWRJbmRleFJlY29yZFR5cGUoKSA9PSBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZTo6
S2V5KSB7CisgICAgaWYgKHVzZVJlc3VsdEtleSkgewogICAgICAgICBpZiAoIXJlc3VsdC5rZXlE
YXRhKCkuaXNOdWxsKCkpCiAgICAgICAgICAgICByZXF1ZXN0LnNldFJlc3VsdChyZXN1bHQua2V5
RGF0YSgpKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSW5kZXhlZERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JbmRleGVkREIuaAppbmRleCAwMTA5ZDU5Nzc1OTU4YTYyY2JkMTlhOTM5YjdmZWJiNTg0MmYw
ZTEyLi5kN2RmMGUxMTY2ZjgzZjNkMzUxZTc3OTNhM2ViYmQyMjM4YjA3MTYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVkREIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVkREIuaApAQCAtNzQsNiArNzQsMTEg
QEAgZW51bSBjbGFzcyBJbmRleFJlY29yZFR5cGUgewogICAgIFZhbHVlLAogfTsKIAorZW51bSBj
bGFzcyBPYmplY3RTdG9yZVJlY29yZFR5cGUgeworICAgIFZhbHVlT25seSwKKyAgICBLZXlPbmx5
LAorfTsKKwogLy8gSW4gb3JkZXIgb2YgdGhlIGxlYXN0IHRvIHRoZSBoaWdoZXN0IHByZWNlZGVu
dCBpbiB0ZXJtcyBvZiBzb3J0IG9yZGVyLgogZW51bSBLZXlUeXBlIHsKICAgICBNYXggPSAtMSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJC
YWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJCYWNraW5nU3RvcmUuaAppbmRleCA1OTY5YmNhMjQxY2U4MzJmMzc5YmVlYjNlNGQ2MDhmNTFh
MGI0N2Q0Li40OTBiOTA4NTg4MDNmODJiNGJmODJhNWI1NWViOWQyNzUzMzQzN2U2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0
b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJh
Y2tpbmdTdG9yZS5oCkBAIC00Myw2ICs0Myw4IEBAIGNsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsK
IGNsYXNzIElEQlZhbHVlOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKK2VudW0gY2xh
c3MgSURCR2V0UmVjb3JkRGF0YVR5cGU7CisKIHN0cnVjdCBJREJHZXRBbGxSZWNvcmRzRGF0YTsK
IHN0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKIHN0cnVjdCBJREJLZXlSYW5nZURhdGE7CkBA
IC04MCw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0c0lu
T2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYs
IGJvb2wmIGtleUV4aXN0cykgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlUmFuZ2Uo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgPSAwOwog
ICAgIHZpcnR1YWwgSURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25z
dCBJREJLZXlEYXRhJiwgY29uc3QgSURCVmFsdWUmKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJv
ciBnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VE
YXRhJiwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3Ig
Z2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYsIElEQkdldFJlY29yZERhdGFUeXBlLCBJREJHZXRSZXN1bHQmIG91dFZhbHVlKSA9IDA7CiAg
ICAgdmlydHVhbCBJREJFcnJvciBnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYs
IElEQkdldEFsbFJlc3VsdCYgb3V0VmFsdWUpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGdl
dEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRl
bnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGdl
dENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmll
ciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgdWludDY0X3QmIG91dENvdW50KSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURC
QmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDBhMTY1MmFmMDAxNjk5MDkyM2Y1ZDM0
YTYzNmY2NjU5NmRhZDAzMjAuLmU2MzMwODkxZjNhYmNmMDk1ZmJhZDc4MmNkNDc3Nzg1YzdhMjli
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCR2V0QWxsUmVjb3Jk
c0RhdGEuaCIKKyNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgiCiAjaW5jbHVkZSAiSURCR2V0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSURCSW5kZXhJbmZvLmgiCiAjaW5jbHVkZSAiSURCSXRlcmF0
ZUN1cnNvckRhdGEuaCIKQEAgLTM1MCw3ICszNTEsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aQogICAgIHJldHVybiBvYmplY3RTdG9yZS0+YWRkUmVjb3JkKCp0cmFuc2FjdGlvbiwga2V5RGF0
YSwgdmFsdWUpOwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldFJlY29y
ZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdl
LCBJREJHZXRSZXN1bHQmIG91dFZhbHVlKQorSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VE
YXRhJiByYW5nZSwgSURCR2V0UmVjb3JkRGF0YVR5cGUgdHlwZSwgSURCR2V0UmVzdWx0JiBvdXRW
YWx1ZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZXRS
ZWNvcmQiKTsKIApAQCAtMzYzLDcgKzM2NCwxNSBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQog
ICAgIGlmICghb2JqZWN0U3RvcmUpCiAgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBvYmplY3Qg
c3RvcmUgZm91bmQiKSB9OwogCi0gICAgb3V0VmFsdWUgPSBvYmplY3RTdG9yZS0+dmFsdWVGb3JL
ZXlSYW5nZShyYW5nZSk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBJREJHZXRSZWNv
cmREYXRhVHlwZTo6S2V5QW5kVmFsdWU6CisgICAgICAgIG91dFZhbHVlID0gb2JqZWN0U3RvcmUt
PnZhbHVlRm9yS2V5UmFuZ2UocmFuZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElEQkdl
dFJlY29yZERhdGFUeXBlOjpLZXlPbmx5OgorICAgICAgICBvdXRWYWx1ZSA9IG9iamVjdFN0b3Jl
LT5sb3dlc3RLZXlXaXRoUmVjb3JkSW5SYW5nZShyYW5nZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaApp
bmRleCBlODViODA1ZjU0YmI3YzgwYWZiN2NmMzY5MDU4OGZkOGQ4ZTUxOTI2Li4zNzcxNWFjZTI1
ZGY1Yjc2ODMyZDBmMjVjZjA4NjE2N2VhOTg1ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICBJREJFcnJvciBrZXlFeGlzdHNJ
bk9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEm
LCBib29sJiBrZXlFeGlzdHMpIGZpbmFsOwogICAgIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpIGZpbmFsOwogICAg
IElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgSURCS2V5RGF0
YSYsIGNvbnN0IElEQlZhbHVlJikgZmluYWw7Ci0gICAgSURCRXJyb3IgZ2V0UmVjb3JkKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3Vs
dCYgb3V0VmFsdWUpIGZpbmFsOworICAgIElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBJREJHZXRSZWNvcmREYXRhVHlw
ZSwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkgZmluYWw7CiAgICAgSURCRXJyb3IgZ2V0QWxsUmVj
b3Jkcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCR2V0QWxsUmVjb3Jkc0RhdGEmLCBJREJHZXRBbGxSZXN1bHQmIG91dFZhbHVlKSBm
aW5hbDsKICAgICBJREJFcnJvciBnZXRJbmRleFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBl
LCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBJREJHZXRSZXN1bHQmIG91dFZhbHVlKSBmaW5hbDsK
ICAgICBJREJFcnJvciBnZXRDb3VudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRf
dCBpbmRleElkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIHVpbnQ2NF90JiBvdXRD
b3VudCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCmluZGV4IGU2MWEwZWU5ODIwYzEzNzRm
ZjViMTU4OWNiNDQyMDY5YjJiM2M4MWYuLjg4Mzk1OWUzMmM1ZmNhZDQ4ZjQwODFlOTQ0ZGJiNGZh
YmMyNzMxMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCkBAIC04NSw2ICs4NSw3IEBAIHB1Ymxp
YzoKIAogICAgIFRocmVhZFNhZmVEYXRhQnVmZmVyIHZhbHVlRm9yS2V5KGNvbnN0IElEQktleURh
dGEmKSBjb25zdDsKICAgICBUaHJlYWRTYWZlRGF0YUJ1ZmZlciB2YWx1ZUZvcktleVJhbmdlKGNv
bnN0IElEQktleVJhbmdlRGF0YSYpIGNvbnN0OworICAgIElEQktleURhdGEgbG93ZXN0S2V5V2l0
aFJlY29yZEluUmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7CiAgICAgSURCR2V0
UmVzdWx0IGluZGV4VmFsdWVGb3JLZXlSYW5nZSh1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIElu
ZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBjb25zdDsK
ICAgICB1aW50NjRfdCBjb3VudEZvcktleVJhbmdlKHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7CiAKQEAgLTEwNiw3ICsxMDcsNiBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIE1lbW9yeU9iamVjdFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3Jl
SW5mbyYpOwogCi0gICAgSURCS2V5RGF0YSBsb3dlc3RLZXlXaXRoUmVjb3JkSW5SYW5nZShjb25z
dCBJREJLZXlSYW5nZURhdGEmKSBjb25zdDsKICAgICBzdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRl
cmF0b3IgbG93ZXN0SXRlcmF0b3JJblJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYsIGJvb2wg
cmV2ZXJzZSkgY29uc3Q7CiAKICAgICBJREJFcnJvciBwb3B1bGF0ZUluZGV4V2l0aEV4aXN0aW5n
UmVjb3JkcyhNZW1vcnlJbmRleCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApp
bmRleCBmYjZkMzc4ZWZjODA2NmE0YzRiMGU1YWYxYzIzZjI0NzlhN2U0ZjQ1Li4wMzk4YTM4Zjk4
N2ZjM2U5YjJlMjRjNzg1YjMzYzRmNmNjZThjNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLmgiCiAjaW5jbHVkZSAiSURCR2V0QWxsUmVjb3Jkc0RhdGEuaCIKICNpbmNsdWRlICJJREJH
ZXRBbGxSZXN1bHQuaCIKKyNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgiCiAjaW5jbHVkZSAi
SURCR2V0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIKICNpbmNs
dWRlICJJREJLZXlEYXRhLmgiCkBAIC0xNzg1LDcgKzE3ODYsNyBAQCBJREJFcnJvciBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmdldEJsb2JSZWNvcmRzRm9yT2JqZWN0U3RvcmVSZWNvcmQoaW50NjRf
dCBvYmplYwogICAgIHJldHVybiB7IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZURhdGEm
IGtleVJhbmdlLCBJREJHZXRSZXN1bHQmIHJlc3VsdFZhbHVlKQorSURCRXJyb3IgU1FMaXRlSURC
QmFja2luZ1N0b3JlOjpnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IElEQktleVJh
bmdlRGF0YSYga2V5UmFuZ2UsIElEQkdldFJlY29yZERhdGFUeXBlIHR5cGUsIElEQkdldFJlc3Vs
dCYgcmVzdWx0VmFsdWUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6Z2V0UmVjb3JkIC0ga2V5IHJhbmdlICVzLCBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBr
ZXlSYW5nZS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgb2JqZWN0U3RvcmVJRCk7CiAK
QEAgLTE4MjQsMTcgKzE4MjUsMzkgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpn
ZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGkKICAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEFTQ0lJTGl0ZXJhbD4gbG93ZXJDbG9zZWRVcHBlck9wZW4o
IlNFTEVDVCB2YWx1ZSwgUk9XSUQgRlJPTSBSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/
IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkgT1JE
RVIgQlkga2V5OyIpOwogICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QVNDSUlMaXRlcmFs
PiBsb3dlckNsb3NlZFVwcGVyQ2xvc2VkKCJTRUxFQ1QgdmFsdWUsIFJPV0lEIEZST00gUmVjb3Jk
cyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQg
a2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7Iik7CiAKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEFTQ0lJTGl0ZXJhbD4gbG93ZXJPcGVuVXBwZXJPcGVuS2V5T25seSgi
U0VMRUNUIGtleSBGUk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA+
IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsi
KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFTQ0lJTGl0ZXJhbD4gbG93ZXJPcGVu
VXBwZXJDbG9zZWRLZXlPbmx5KCJTRUxFQ1Qga2V5IEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RT
dG9yZUlEID0gPyBBTkQga2V5ID4gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPD0gQ0FTVCg/IEFT
IFRFWFQpIE9SREVSIEJZIGtleTsiKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFT
Q0lJTGl0ZXJhbD4gbG93ZXJDbG9zZWRVcHBlck9wZW5LZXlPbmx5KCJTRUxFQ1Qga2V5IEZST00g
UmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhU
KSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsiKTsKKyAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEFTQ0lJTGl0ZXJhbD4gbG93ZXJDbG9zZWRVcHBlckNsb3NlZEtl
eU9ubHkoIlNFTEVDVCBrZXkgRlJPTSBSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/IEFO
RCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPD0gQ0FTVCg/IEFTIFRFWFQpIE9SREVS
IEJZIGtleTsiKTsKKwogICAgICAgICBTUUxpdGVTdGF0ZW1lbnQqIHNxbCA9IG51bGxwdHI7Ci0g
ICAgICAgIGlmIChrZXlSYW5nZS5sb3dlck9wZW4pIHsKLSAgICAgICAgICAgIGlmIChrZXlSYW5n
ZS51cHBlck9wZW4pCi0gICAgICAgICAgICAgICAgc3FsID0gY2FjaGVkU3RhdGVtZW50KFNRTDo6
R2V0VmFsdWVSZWNvcmRzTG93ZXJPcGVuVXBwZXJPcGVuLCBsb3dlck9wZW5VcHBlck9wZW4uZ2V0
KCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNxbCA9IGNhY2hlZFN0YXRl
bWVudChTUUw6OkdldFZhbHVlUmVjb3Jkc0xvd2VyT3BlblVwcGVyQ2xvc2VkLCBsb3dlck9wZW5V
cHBlckNsb3NlZC5nZXQoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoa2V5
UmFuZ2UudXBwZXJPcGVuKQotICAgICAgICAgICAgICAgIHNxbCA9IGNhY2hlZFN0YXRlbWVudChT
UUw6OkdldFZhbHVlUmVjb3Jkc0xvd2VyQ2xvc2VkVXBwZXJPcGVuLCBsb3dlckNsb3NlZFVwcGVy
T3Blbi5nZXQoKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc3FsID0gY2Fj
aGVkU3RhdGVtZW50KFNRTDo6R2V0VmFsdWVSZWNvcmRzTG93ZXJDbG9zZWRVcHBlckNsb3NlZCwg
bG93ZXJDbG9zZWRVcHBlckNsb3NlZC5nZXQoKSk7CisKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgICAgIGNhc2UgSURCR2V0UmVjb3JkRGF0YVR5cGU6OktleUFuZFZhbHVlOgorICAgICAg
ICAgICAgaWYgKGtleVJhbmdlLmxvd2VyT3BlbikgeworICAgICAgICAgICAgICAgIGlmIChrZXlS
YW5nZS51cHBlck9wZW4pCisgICAgICAgICAgICAgICAgICAgIHNxbCA9IGNhY2hlZFN0YXRlbWVu
dChTUUw6OkdldFZhbHVlUmVjb3Jkc0xvd2VyT3BlblVwcGVyT3BlbiwgbG93ZXJPcGVuVXBwZXJP
cGVuLmdldCgpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNx
bCA9IGNhY2hlZFN0YXRlbWVudChTUUw6OkdldFZhbHVlUmVjb3Jkc0xvd2VyT3BlblVwcGVyQ2xv
c2VkLCBsb3dlck9wZW5VcHBlckNsb3NlZC5nZXQoKSk7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIGlmIChrZXlSYW5nZS51cHBlck9wZW4pCisgICAgICAgICAgICAgICAg
ICAgIHNxbCA9IGNhY2hlZFN0YXRlbWVudChTUUw6OkdldFZhbHVlUmVjb3Jkc0xvd2VyQ2xvc2Vk
VXBwZXJPcGVuLCBsb3dlckNsb3NlZFVwcGVyT3Blbi5nZXQoKSk7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBzcWwgPSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpHZXRW
YWx1ZVJlY29yZHNMb3dlckNsb3NlZFVwcGVyQ2xvc2VkLCBsb3dlckNsb3NlZFVwcGVyQ2xvc2Vk
LmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IElEQkdldFJlY29yZERhdGFUeXBlOjpLZXlPbmx5OgorICAgICAgICAgICAgaWYgKGtleVJhbmdl
Lmxvd2VyT3BlbikgeworICAgICAgICAgICAgICAgIGlmIChrZXlSYW5nZS51cHBlck9wZW4pCisg
ICAgICAgICAgICAgICAgICAgIHNxbCA9IGNhY2hlZFN0YXRlbWVudChTUUw6OkdldEtleVJlY29y
ZHNMb3dlck9wZW5VcHBlck9wZW4sIGxvd2VyT3BlblVwcGVyT3BlbktleU9ubHkuZ2V0KCkpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc3FsID0gY2FjaGVkU3Rh
dGVtZW50KFNRTDo6R2V0S2V5UmVjb3Jkc0xvd2VyT3BlblVwcGVyQ2xvc2VkLCBsb3dlck9wZW5V
cHBlckNsb3NlZEtleU9ubHkuZ2V0KCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBpZiAoa2V5UmFuZ2UudXBwZXJPcGVuKQorICAgICAgICAgICAgICAgICAgICBzcWwg
PSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpHZXRLZXlSZWNvcmRzTG93ZXJDbG9zZWRVcHBlck9wZW4s
IGxvd2VyQ2xvc2VkVXBwZXJPcGVuS2V5T25seS5nZXQoKSk7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBzcWwgPSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpHZXRLZXlS
ZWNvcmRzTG93ZXJDbG9zZWRVcHBlckNsb3NlZCwgbG93ZXJDbG9zZWRVcHBlckNsb3NlZEtleU9u
bHkuZ2V0KCkpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFzcWwK
QEAgLTE4NjEsNyArMTg4NCwyNSBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6Omdl
dFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQogICAgICAgICBz
cWwtPmdldENvbHVtbkJsb2JBc1ZlY3RvcigwLCBidWZmZXIpOwogICAgICAgICByZXN1bHRCdWZm
ZXIgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6YWRvcHRWZWN0b3IoYnVmZmVyKTsKIAotICAgICAg
ICByZWNvcmRJRCA9IHNxbC0+Z2V0Q29sdW1uSW50NjQoMSk7CisgICAgICAgIGlmICh0eXBlID09
IElEQkdldFJlY29yZERhdGFUeXBlOjpLZXlBbmRWYWx1ZSkKKyAgICAgICAgICAgIHJlY29yZElE
ID0gc3FsLT5nZXRDb2x1bW5JbnQ2NCgxKTsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBJREJH
ZXRSZWNvcmREYXRhVHlwZTo6S2V5T25seSkgeworICAgICAgICBhdXRvKiB2ZWN0b3IgPSByZXN1
bHRCdWZmZXIuZGF0YSgpOworICAgICAgICBpZiAoIXZlY3RvcikgeworICAgICAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gZGVzZXJpYWxpemUga2V5IGRhdGEgZnJvbSBkYXRhYmFzZSBmb3Ig
SURCT2JqZWN0U3RvcmUuZ2V0S2V5KCkiKTsKKyAgICAgICAgICAgIHJldHVybiB7IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiRXJyb3IgZXh0cmFjdGlu
ZyBrZXkgZGF0YSBmcm9tIGRhdGFiYXNlIGV4ZWN1dGluZyBJREJPYmplY3RTdG9yZS5nZXRLZXko
KSIpIH07CisgICAgICAgIH0KKworICAgICAgICBJREJLZXlEYXRhIGtleURhdGE7CisgICAgICAg
IGlmICghZGVzZXJpYWxpemVJREJLZXlEYXRhKHZlY3Rvci0+ZGF0YSgpLCB2ZWN0b3ItPnNpemUo
KSwga2V5RGF0YSkpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGRlc2VyaWFs
aXplIGtleSBkYXRhIGZyb20gZGF0YWJhc2UgZm9yIElEQk9iamVjdFN0b3JlLmdldEtleSgpIik7
CisgICAgICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9y
LCBBU0NJSUxpdGVyYWwoIkVycm9yIGV4dHJhY3Rpbmcga2V5IGRhdGEgZnJvbSBkYXRhYmFzZSBl
eGVjdXRpbmcgSURCT2JqZWN0U3RvcmUuZ2V0S2V5KCkiKSB9OworICAgICAgICB9CisKKyAgICAg
ICAgcmVzdWx0VmFsdWUgPSB7IGtleURhdGEgfTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKICAgICBBU1NFUlQocmVjb3JkSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmlu
ZGV4IGU0Zjk2NzI1MjQ4ZWEyOTUyMWUxODEwYjI1NmU4OWE3Nzg2NGYwY2EuLjIxMTFkOTU0NDlj
MWQ0NGY3NjUyYWFhNjUwYmIzMmQ5MGYyYTk2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0
b3JlLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIElEQkVycm9yIGtleUV4aXN0c0lu
T2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYs
IGJvb2wmIGtleUV4aXN0cykgZmluYWw7CiAgICAgSURCRXJyb3IgZGVsZXRlUmFuZ2UoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgZmluYWw7CiAgICAg
SURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25zdCBJREJLZXlEYXRh
JiwgY29uc3QgSURCVmFsdWUmKSBmaW5hbDsKLSAgICBJREJFcnJvciBnZXRSZWNvcmQoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVzdWx0
JiBvdXRWYWx1ZSkgZmluYWw7CisgICAgSURCRXJyb3IgZ2V0UmVjb3JkKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlY29yZERhdGFUeXBl
LCBJREJHZXRSZXN1bHQmIG91dFZhbHVlKSBmaW5hbDsKICAgICBJREJFcnJvciBnZXRBbGxSZWNv
cmRzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJHZXRBbGxSZWNvcmRzRGF0YSYsIElEQkdldEFsbFJlc3VsdCYgb3V0VmFsdWUpIGZp
bmFsOwogICAgIElEQkVycm9yIGdldEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUs
IGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpIGZpbmFsOwog
ICAgIElEQkVycm9yIGdldENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGluZGV4SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgdWludDY0X3QmIG91dENv
dW50KSBmaW5hbDsKQEAgLTE1OSw2ICsxNTksMTAgQEAgcHJpdmF0ZToKICAgICAgICAgR2V0VmFs
dWVSZWNvcmRzTG93ZXJPcGVuVXBwZXJDbG9zZWQsCiAgICAgICAgIEdldFZhbHVlUmVjb3Jkc0xv
d2VyQ2xvc2VkVXBwZXJPcGVuLAogICAgICAgICBHZXRWYWx1ZVJlY29yZHNMb3dlckNsb3NlZFVw
cGVyQ2xvc2VkLAorICAgICAgICBHZXRLZXlSZWNvcmRzTG93ZXJPcGVuVXBwZXJPcGVuLAorICAg
ICAgICBHZXRLZXlSZWNvcmRzTG93ZXJPcGVuVXBwZXJDbG9zZWQsCisgICAgICAgIEdldEtleVJl
Y29yZHNMb3dlckNsb3NlZFVwcGVyT3BlbiwKKyAgICAgICAgR2V0S2V5UmVjb3Jkc0xvd2VyQ2xv
c2VkVXBwZXJDbG9zZWQsCiAgICAgICAgIENvdW50CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKaW5kZXggY2IwNDg2MWNjN2NjYzVjZjJmN2NlYmFkNzNjZDU5N2JkMmEyNzBhYS4u
OTkxMDE1N2MyZDhiOWE4YTliNTk2ZTI0N2I1YmMwYzVjYTdjMGZkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJH
ZQogICAgIGlmICh1aW50NjRfdCBpbmRleElkZW50aWZpZXIgPSByZXF1ZXN0RGF0YS5pbmRleElk
ZW50aWZpZXIoKSkKICAgICAgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRh
c2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldEluZGV4UmVjb3JkLCBjYWxs
YmFja0lELCByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEu
b2JqZWN0U3RvcmVJZGVudGlmaWVyKCksIGluZGV4SWRlbnRpZmllciwgcmVxdWVzdERhdGEuaW5k
ZXhSZWNvcmRUeXBlKCksIGdldFJlY29yZERhdGEua2V5UmFuZ2VEYXRhKSk7CiAgICAgZWxzZQot
ICAgICAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVjb3JkLCBjYWxsYmFja0lELCByZXF1ZXN0RGF0
YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlm
aWVyKCksIGdldFJlY29yZERhdGEua2V5UmFuZ2VEYXRhKSk7CisgICAgICAgIHBvc3REYXRhYmFz
ZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBl
cmZvcm1HZXRSZWNvcmQsIGNhbGxiYWNrSUQsIHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRp
ZmllcigpLCByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwgZ2V0UmVjb3JkRGF0
YS5rZXlSYW5nZURhdGEsIGdldFJlY29yZERhdGEudHlwZSkpOwogfQogCiB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCR2V0QWxsUmVjb3Jkc0RhdGEmIGdldEFsbFJlY29yZHNEYXRhLCBHZXRBbGxS
ZXN1bHRzQ2FsbGJhY2sgY2FsbGJhY2spCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSQogICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNr
KCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1HZXRBbGxSZWNvcmRzLCBjYWxsYmFj
a0lELCByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgZ2V0QWxsUmVjb3Jkc0Rh
dGEpKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCh1aW50
NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhLCBJREJH
ZXRSZWNvcmREYXRhVHlwZSB0eXBlKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwog
ICAgIExPRyhJbmRleGVkREIsICIoZGIpIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVj
b3JkIik7CkBAIC0xMDc0LDcgKzEwNzQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJm
b3JtR2V0UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUgogICAg
IEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7CiAKICAgICBJREJHZXRSZXN1bHQgcmVzdWx0OwotICAg
IElEQkVycm9yIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldFJlY29yZCh0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5UmFuZ2VEYXRhLCByZXN1bHQpOwor
ICAgIElEQkVycm9yIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldFJlY29yZCh0cmFuc2FjdGlv
bklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5UmFuZ2VEYXRhLCB0eXBlLCBy
ZXN1bHQpOwogCiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtR2V0UmVjb3JkLCBjYWxsYmFj
a0lkZW50aWZpZXIsIGVycm9yLCByZXN1bHQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5k
ZXggNzZhYWZjOTkxMDhmODgyODU1Yzg0ZTAwZjgzMThlODczNTFmYmEyZi4uODZlYWJhMmY5YTIz
OTFkYjdlNmFhZWUyOGQxMjVhNmFmNjdiY2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAg
LTU3LDYgKzU3LDggQEAgY2xhc3MgSURCR2V0QWxsUmVzdWx0OwogY2xhc3MgSURCUmVxdWVzdERh
dGE7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkluZm87CiAKK2VudW0gY2xhc3MgSURCR2V0UmVjb3Jk
RGF0YVR5cGU7CisKIG5hbWVzcGFjZSBJbmRleGVkREIgewogZW51bSBjbGFzcyBJbmRleFJlY29y
ZFR5cGU7CiB9CkBAIC0xNTYsNyArMTU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1E
ZWxldGVJbmRleCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllcik7CiAgICAgdm9pZCBwZXJmb3JtUmVu
YW1lSW5kZXgodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7
CiAgICAgdm9pZCBwZXJmb3JtUHV0T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgSURCVmFs
dWUmLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7Ci0gICAgdm9pZCBwZXJm
b3JtR2V0UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CisgICAgdm9pZCBwZXJmb3JtR2V0
UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVjb3JkRGF0YVR5cGUpOwogICAg
IHZvaWQgcGVyZm9ybUdldEFsbFJlY29yZHModWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
SURCR2V0QWxsUmVjb3Jkc0RhdGEmKTsKICAgICB2b2lkIHBlcmZvcm1HZXRJbmRleFJlY29yZCh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQgcGVyZm9ybUdldENvdW50KHVpbnQ2NF90IGNh
bGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5k
ZXhJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRh
LmNwcAppbmRleCBkMTlhMjZhYjkwZmY4YjkxMzQ4NzlhZjU2NTVhZjZmZGYxMDA0NGQ1Li42ODg0
ZjJiNmNlOGFmNjdhYjVlMjg3NzVjYjg1ZWRiNDk4ZTFlOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldFJlY29yZERh
dGEuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSURCR2V0UmVj
b3JkRGF0YSBJREJHZXRSZWNvcmREYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAogewotICAgIHJl
dHVybiB7IGtleVJhbmdlRGF0YS5pc29sYXRlZENvcHkoKSB9OworICAgIHJldHVybiB7IGtleVJh
bmdlRGF0YS5pc29sYXRlZENvcHkoKSwgdHlwZSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCR2V0UmVjb3JkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkdldFJlY29yZERhdGEuaAppbmRleCBmZWNmYTUwYTc4YTk5NjJlNzZiMmRiNzI5OWIy
MjE5ZjRhN2VmZjhhLi42MTgyMDQyMGUwOTdkZmVhMTU3ZmIxMTE4YzZhNmYxZjdhNjRjY2Y1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0
UmVjb3JkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJHZXRSZWNvcmREYXRhLmgKQEAgLTMxLDggKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorZW51bSBjbGFzcyBJREJHZXRSZWNvcmREYXRhVHlwZSB7CisgICAgS2V5T25seSwK
KyAgICBLZXlBbmRWYWx1ZSwKK307CisKIHN0cnVjdCBJREJHZXRSZWNvcmREYXRhIHsKICAgICBJ
REJLZXlSYW5nZURhdGEga2V5UmFuZ2VEYXRhOworICAgIElEQkdldFJlY29yZERhdGFUeXBlIHR5
cGU7CiAKICAgICBJREJHZXRSZWNvcmREYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCkBAIC00
NCw2ICs1MCw3IEBAIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIElEQkdldFJlY29yZERh
dGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwga2V5
UmFuZ2VEYXRhOworICAgIGVuY29kZXIuZW5jb2RlRW51bSh0eXBlKTsKIH0KIAogdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KQEAgLTUyLDYgKzU5LDkgQEAgYm9vbCBJREJHZXRSZWNvcmREYXRhOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCR2V0UmVjb3JkRGF0YSYgZ2V0UmVjb3JkRGF0YSkK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGdldFJlY29yZERhdGEua2V5UmFuZ2VEYXRhKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oZ2V0UmVj
b3JkRGF0YS50eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA3OGRjZDU4MjY4MjI5MzBkYjgwNzI2NDdiZjgxYzM3N2M1YzA3NzczLi4x
MmViZTUyYzVkNDJiMjgwZDNmMGIyY2NkMzdkZmEyZTk2NDEwOGNiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTYtMTItMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIEluZGV4ZWREQiAyLjA6IEltcGxlbWVudCBJREJPYmplY3RTdG9yZS5nZXRLZXkoKS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTI1Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldGtleS0xLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3Jl
LWdldGtleS0xLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEtcHJpdmF0ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUt
Z2V0a2V5LTEuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS5qczogQWRkZWQuCisKIDIwMTYtMTEt
MzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pT
Q10gU3BlY2lmeWluZyBzYW1lIG1vZHVsZSBlbnRyeSBwb2ludCBtdWx0aXBsZSB0aW1lcyBjYXVz
ZSBUeXBlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM0NmQ3YjY1MjQ4ODM5MGY4NTZlNGVkMDczNDBlODE5MTI2YThhZGMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
aWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1Rl
c3QgSURCT2JqZWN0U3RvcmUuZ2V0S2V5KCkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8
IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERC
OworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQorSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9u
IC0gMQorZ2V0S2V5KDYpIHJlc3VsdCBpczogdW5kZWZpbmVkCitnZXRLZXkoMykgcmVzdWx0IGlz
OiAzCitnZXRLZXkoSURCS2V5UmFuZ2Uub25seSg1KSkgcmVzdWx0IGlzOiA1CitnZXRLZXkoSURC
S2V5UmFuZ2UubG93ZXJCb3VuZCgyKSkgcmVzdWx0IGlzOiAyCitnZXRLZXkoSURCS2V5UmFuZ2Uu
dXBwZXJCb3VuZCgyKSkgcmVzdWx0IGlzOiAxCitnZXRLZXkoSURCS2V5UmFuZ2UuYm91bmQoMiwg
NCkpIHJlc3VsdCBpczogMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS1w
cml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDZkN2I2NTI0ODgzOTBmODU2ZTRlZDA3
MzQwZTgxOTEyNmE4YWRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldGtleS0xLXByaXZhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjAgQEAKK1Rlc3QgSURCT2JqZWN0U3RvcmUuZ2V0S2V5KCkKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xk
IHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQorZ2V0S2V5KDYpIHJlc3VsdCBpczogdW5kZWZp
bmVkCitnZXRLZXkoMykgcmVzdWx0IGlzOiAzCitnZXRLZXkoSURCS2V5UmFuZ2Uub25seSg1KSkg
cmVzdWx0IGlzOiA1CitnZXRLZXkoSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgyKSkgcmVzdWx0IGlz
OiAyCitnZXRLZXkoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgyKSkgcmVzdWx0IGlzOiAxCitnZXRL
ZXkoSURCS2V5UmFuZ2UuYm91bmQoMiwgNCkpIHJlc3VsdCBpczogMgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS1wcml2
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0
c3RvcmUtZ2V0a2V5LTEtcHJpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZDU4OTA0YmUyNzQ3MDA2
Nzc1MThjYWFhYWM0ZjE0NzA5ZGY1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEtcHJpdmF0ZS5o
dG1sCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZW5hYmxlUHJp
dmF0ZUJyb3dzaW5nID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
c2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2lkYm9iamVjdHN0b3JlLWdldGtleS0xLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJvYmplY3RzdG9yZS1nZXRrZXktMS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldGtleS0xLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYzNmVk
MjU0MDJjNTEwNzY0NzkxNGQwMjZiM2E4YTk3Y2QwMTg5OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXRrZXkt
MS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtZ2V0a2V5
LTEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjFkNzE5MGVlMzg5YjBjYjg2ZTYyOWRhNWNiMzdiM2YzZTU3MTE5
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEuanMKQEAgLTAsMCArMSw5MCBAQAor
ZGVzY3JpcHRpb24oIlRlc3QgSURCT2JqZWN0U3RvcmUuZ2V0S2V5KCkiKTsKKworaW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UpOworCitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZGVidWcobWVzc2Fn
ZSk7Cit9CisKK3ZhciB0ZXN0R2VuZXJhdG9yOworCitmdW5jdGlvbiBjb250aW51ZVdpdGhFdmVu
dChldmVudCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yLm5leHQoZXZlbnQpOworfQorCitmdW5jdGlv
biBhc3luY0NvbnRpbnVlKCkKK3sKKyAgICBzZXRUaW1lb3V0KCJ0ZXN0R2VuZXJhdG9yLm5leHQo
KTsiLCAwKTsKK30KKworZnVuY3Rpb24gaWRiUmVxdWVzdChyZXF1ZXN0KQoreworICAgIHJlcXVl
c3Qub25lcnJvciA9IGNvbnRpbnVlV2l0aEV2ZW50OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Y29udGludWVXaXRoRXZlbnQ7CisJcmV0dXJuIHJlcXVlc3Q7Cit9CisKK3ZhciBkYjsKKworZnVu
Y3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQoreworICAgIGRlYnVnKCJJbml0aWFsIHVwZ3Jh
ZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVy
c2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsKKworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJmb28iKTsKKwlvcy5hZGQoZmFs
c2UsIDEpOworCW9zLmFkZCgtMTAsIDIpOworCW9zLmFkZCgxMCwgMyk7CisJb3MuYWRkKCJoZWxs
byIsIDQpOworCW9zLmFkZCgiaGVsbG90aGVyZSIsIDUpOworCisgICAgZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdEdlbmVyYXRv
ciA9IHRlc3RTdGVwcygpOworICAgICAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKKyAgICB9Owor
fQorCitmdW5jdGlvbiogdGVzdFN0ZXBzKCkKK3sKKyAgICBvYmplY3RTdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCJmb28iKS5vYmplY3RTdG9yZSgiZm9vIik7CisJCisJLy8gTm9uLWV4aXN0ZW50IGtl
eQorICAgIHJlcSA9IGlkYlJlcXVlc3Qob2JqZWN0U3RvcmUuZ2V0S2V5KDYpKTsKKyAgICBldmVu
dCA9IHlpZWxkOyAgICAKKwlkZWJ1ZygiZ2V0S2V5KDYpIHJlc3VsdCBpczogIiArIHJlcS5yZXN1
bHQpOworCisJLy8gRXhpc3RlbnQga2V5CisgICAgcmVxID0gaWRiUmVxdWVzdChvYmplY3RTdG9y
ZS5nZXRLZXkoMykpOworICAgIGV2ZW50ID0geWllbGQ7ICAgIAorCWRlYnVnKCJnZXRLZXkoMykg
cmVzdWx0IGlzOiAiICsgcmVxLnJlc3VsdCk7CisJCisJLy8gS2V5IHJhbmdlIG9ubHkKKyAgICBy
ZXEgPSBpZGJSZXF1ZXN0KG9iamVjdFN0b3JlLmdldEtleShJREJLZXlSYW5nZS5vbmx5KDUpKSk7
CisgICAgZXZlbnQgPSB5aWVsZDsgICAgCisJZGVidWcoImdldEtleShJREJLZXlSYW5nZS5vbmx5
KDUpKSByZXN1bHQgaXM6ICIgKyByZXEucmVzdWx0KTsKKworCS8vIEtleSByYW5nZSBsb3dlciBi
b3VuZAorICAgIHJlcSA9IGlkYlJlcXVlc3Qob2JqZWN0U3RvcmUuZ2V0S2V5KElEQktleVJhbmdl
Lmxvd2VyQm91bmQoMikpKTsKKyAgICBldmVudCA9IHlpZWxkOyAgICAKKwlkZWJ1ZygiZ2V0S2V5
KElEQktleVJhbmdlLmxvd2VyQm91bmQoMikpIHJlc3VsdCBpczogIiArIHJlcS5yZXN1bHQpOwor
CisJLy8gS2V5IHJhbmdlIHVwcGVyIGJvdW5kCisgICAgcmVxID0gaWRiUmVxdWVzdChvYmplY3RT
dG9yZS5nZXRLZXkoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgyKSkpOworICAgIGV2ZW50ID0geWll
bGQ7ICAgIAorCWRlYnVnKCJnZXRLZXkoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgyKSkgcmVzdWx0
IGlzOiAiICsgcmVxLnJlc3VsdCk7CisKKwkvLyBLZXkgcmFuZ2UgYm91bmQKKyAgICByZXEgPSBp
ZGJSZXF1ZXN0KG9iamVjdFN0b3JlLmdldEtleShJREJLZXlSYW5nZS5ib3VuZCgyLCA0KSkpOwor
ICAgIGV2ZW50ID0geWllbGQ7ICAgIAorCWRlYnVnKCJnZXRLZXkoSURCS2V5UmFuZ2UuYm91bmQo
MiwgNCkpIHJlc3VsdCBpczogIiArIHJlcS5yZXN1bHQpOworICAgIAorICAgIGZpbmlzaEpTVGVz
dCgpOworIH0KKyAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="318400"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>