<?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>86652</bug_id>
          
          <creation_ts>2012-05-16 10:25:04 -0700</creation_ts>
          <short_desc>IndexedDB: Use accessors for backing store / database id in store/index backends</short_desc>
          <delta_ts>2012-05-16 13:40:46 -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>New Bugs</component>
          <version>528+ (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>83074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>625602</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 10:25:04 -0700</bug_when>
    <thetext>IndexedDB: Use accessors for backing store / database id in store/index backends</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625621</commentid>
    <comment_count>1</comment_count>
      <attachid>142296</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 10:39:36 -0700</bug_when>
    <thetext>Created attachment 142296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625625</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-16 10:42:24 -0700</bug_when>
    <thetext>tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625816</commentid>
    <comment_count>3</comment_count>
      <attachid>142296</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 13:40:41 -0700</bug_when>
    <thetext>Comment on attachment 142296
Patch

Clearing flags on attachment: 142296

Committed r117334: &lt;http://trac.webkit.org/changeset/117334&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625817</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 13:40:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142296</attachid>
            <date>2012-05-16 10:39:36 -0700</date>
            <delta_ts>2012-05-16 13:40:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86652-20120516103934.patch</filename>
            <type>text/plain</type>
            <size>25243</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExODA2YTJiNTU1MDcy
YWEzZmM2NjA3NzI4YmVmM2EzZWI3M2ZiNi4uZmVmNTdlMTkzNzZiMzQzMDdiMTQyMDU1NWIyYjEz
YzE2Njc4N2ZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA1LTE2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBVc2Ug
YWNjZXNzb3JzIGZvciBiYWNraW5nIHN0b3JlIC8gZGF0YWJhc2UgaWQgaW4gc3RvcmUvaW5kZXgg
YmFja2VuZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2NjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SGlkZSB0aGUgcHJpdmF0ZSBtZW1iZXJzIG1fYmFja2luZ1N0b3JlIGFuZCBtX2RhdGFiYXNlSWQg
b2YgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbAorICAgICAgICBhbmQgSURCSW5kZXhCYWNrZW5k
SW1wbCBiZWhpbmQgYWNjZXNzb3JzLiBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciByZW1vdmluZyB0
aGVzZQorICAgICAgICBtZW1iZXJzIGFuZCBvbmx5IGhvbGRpbmcgcmVmZXJlbmNlcyB0byB0aGUg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDogd2Via2l0Lm9yZy9iLzgzMDc0CisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIC0gbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJ
bmRleEJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
SURCSW5kZXhCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJJbmRleEJhY2tlbmRJbXBsOjpnZXRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJ
bmRleEJhY2tlbmRJbXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
SURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0S2V5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
SURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0S2V5QnlSYW5nZUludGVybmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkluZGV4QmFja2VuZEltcGw6OmFkZGluZ0tleUFsbG93ZWQpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4QmFja2VuZEltcGw6OmJhY2tpbmdTdG9yZSk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6ZGF0YWJhc2VJZCk6IEFkZGVkLgorICAgICAg
ICAoSURCSW5kZXhCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Z2V0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW50ZXJuYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y2xlYXJJbnRlcm5hbCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGw6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw6OmNyZWF0ZUluZGV4SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW5kZXhJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpsb2FkSW5kZXhl
cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpnZW5BdXRv
SW5jcmVtZW50S2V5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsOjpiYWNraW5nU3RvcmUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw6OmRhdGFiYXNlSWQpOiBBZGRlZC4KKyAgICAgICAgKElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwpOgorCiAyMDEyLTA1LTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE3
MDUwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXhCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcAppbmRleCA2M2Q0ODQxNDc4NDBmNjg5NTNiYTM0NTA3ZDBlZmNh
NzkxZThmZDY3Li5mYzcyMGRhMjc3NjA1OGY2MjA3ZjQzNzQyZDNmZTgwZTJlNjRiOWMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJh
Y2tlbmRJbXBsLmNwcApAQCAtODAsMTAgKzgwLDEwIEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6b3BlbkN1cnNvckludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
CiAKICAgICBzd2l0Y2ggKGN1cnNvclR5cGUpIHsKICAgICBjYXNlIElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yOgotICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBp
bmRleC0+bV9iYWNraW5nU3RvcmUtPm9wZW5JbmRleEtleUN1cnNvcihpbmRleC0+bV9kYXRhYmFz
ZUlkLCBpbmRleC0+bV9vYmplY3RTdG9yZUJhY2tlbmQtPmlkKCksIGluZGV4LT5pZCgpLCByYW5n
ZS5nZXQoKSwgZGlyZWN0aW9uKTsKKyAgICAgICAgYmFja2luZ1N0b3JlQ3Vyc29yID0gaW5kZXgt
PmJhY2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhLZXlDdXJzb3IoaW5kZXgtPmRhdGFiYXNlSWQoKSwg
aW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgcmFuZ2UuZ2V0
KCksIGRpcmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSURCQ3Vyc29yQmFja2Vu
ZEludGVyZmFjZTo6SW5kZXhDdXJzb3I6Ci0gICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvciA9IGlu
ZGV4LT5tX2JhY2tpbmdTdG9yZS0+b3BlbkluZGV4Q3Vyc29yKGluZGV4LT5tX2RhdGFiYXNlSWQs
IGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZC0+aWQoKSwgaW5kZXgtPmlkKCksIHJhbmdlLmdl
dCgpLCBkaXJlY3Rpb24pOworICAgICAgICBiYWNraW5nU3RvcmVDdXJzb3IgPSBpbmRleC0+YmFj
a2luZ1N0b3JlKCktPm9wZW5JbmRleEN1cnNvcihpbmRleC0+ZGF0YWJhc2VJZCgpLCBpbmRleC0+
bV9vYmplY3RTdG9yZUJhY2tlbmQtPmlkKCksIGluZGV4LT5pZCgpLCByYW5nZS5nZXQoKSwgZGly
ZWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlOjpPYmplY3RTdG9yZUN1cnNvcjoKICAgICBjYXNlIElEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2U6OkludmFsaWRDdXJzb3JUeXBlOgpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSURCSW5kZXhC
YWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1Jl
ZlB0cjxJREJJCiAgICAgSURCX1RSQUNFKCJJREJJbmRleEJhY2tlbmRJbXBsOjpjb3VudEludGVy
bmFsIik7CiAgICAgdWludDMyX3QgY291bnQgPSAwOwogCi0gICAgUmVmUHRyPElEQkJhY2tpbmdT
dG9yZTo6Q3Vyc29yPiBiYWNraW5nU3RvcmVDdXJzb3IgPSBpbmRleC0+bV9iYWNraW5nU3RvcmUt
Pm9wZW5JbmRleEtleUN1cnNvcihpbmRleC0+bV9kYXRhYmFzZUlkLCBpbmRleC0+bV9vYmplY3RT
dG9yZUJhY2tlbmQtPmlkKCksIGluZGV4LT5pZCgpLCByYW5nZS5nZXQoKSwgSURCQ3Vyc29yOjpO
RVhUKTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1
cnNvciA9IGluZGV4LT5iYWNraW5nU3RvcmUoKS0+b3BlbkluZGV4S2V5Q3Vyc29yKGluZGV4LT5k
YXRhYmFzZUlkKCksIGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZC0+aWQoKSwgaW5kZXgtPmlk
KCksIHJhbmdlLmdldCgpLCBJREJDdXJzb3I6Ok5FWFQpOwogICAgIGlmICghYmFja2luZ1N0b3Jl
Q3Vyc29yKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6bnVtYmVyVmFsdWUoY291bnQpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTU0LDcgKzE1
NCw3IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4gcmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsCiB2b2lkIElEQkluZGV4QmFja2VuZEltcGw6
OmdldEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkluZGV4
QmFja2VuZEltcGw+IGluZGV4LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogewogICAgIElEQl9UUkFDRSgiSURCSW5kZXhCYWNrZW5k
SW1wbDo6Z2V0SW50ZXJuYWwiKTsKLSAgICBTdHJpbmcgdmFsdWUgPSBpbmRleC0+bV9iYWNraW5n
U3RvcmUtPmdldE9iamVjdFZpYUluZGV4KGluZGV4LT5tX2RhdGFiYXNlSWQsIGluZGV4LT5tX29i
amVjdFN0b3JlQmFja2VuZC0+aWQoKSwgaW5kZXgtPmlkKCksICprZXkpOworICAgIFN0cmluZyB2
YWx1ZSA9IGluZGV4LT5iYWNraW5nU3RvcmUoKS0+Z2V0T2JqZWN0VmlhSW5kZXgoaW5kZXgtPmRh
dGFiYXNlSWQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQo
KSwgKmtleSk7CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+
b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkVmFsdWUoKSk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTE2NywxNCArMTY3LDE0IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6Z2V0QnlSYW5nZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
CiAgICAgSURCX1RSQUNFKCJJREJJbmRleEJhY2tlbmRJbXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwi
KTsKIAogICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vy
c29yID0KLSAgICAgICAgICAgIGluZGV4LT5tX2JhY2tpbmdTdG9yZS0+b3BlbkluZGV4Q3Vyc29y
KGluZGV4LT5tX2RhdGFiYXNlSWQsIGluZGV4LT5tX29iamVjdFN0b3JlQmFja2VuZC0+aWQoKSwg
aW5kZXgtPmlkKCksIGtleVJhbmdlLmdldCgpLCBJREJDdXJzb3I6Ok5FWFQpOworICAgICAgICAg
ICAgaW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5vcGVuSW5kZXhDdXJzb3IoaW5kZXgtPmRhdGFiYXNl
SWQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwga2V5
UmFuZ2UuZ2V0KCksIElEQkN1cnNvcjo6TkVYVCk7CiAKICAgICBpZiAoIWJhY2tpbmdTdG9yZUN1
cnNvcikgewogICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OnVuZGVmaW5lZFZhbHVlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3Ry
aW5nIHZhbHVlID0gaW5kZXgtPm1fYmFja2luZ1N0b3JlLT5nZXRPYmplY3RWaWFJbmRleChpbmRl
eC0+bV9kYXRhYmFzZUlkLCBpbmRleC0+bV9vYmplY3RTdG9yZUJhY2tlbmQtPmlkKCksIGluZGV4
LT5pZCgpLCAqYmFja2luZ1N0b3JlQ3Vyc29yLT5rZXkoKSk7CisgICAgU3RyaW5nIHZhbHVlID0g
aW5kZXgtPmJhY2tpbmdTdG9yZSgpLT5nZXRPYmplY3RWaWFJbmRleChpbmRleC0+ZGF0YWJhc2VJ
ZCgpLCBpbmRleC0+bV9vYmplY3RTdG9yZUJhY2tlbmQtPmlkKCksIGluZGV4LT5pZCgpLCAqYmFj
a2luZ1N0b3JlQ3Vyc29yLT5rZXkoKSk7CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7CiAgICAg
ICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dW5kZWZpbmVk
VmFsdWUoKSk7CiAgICAgICAgIGJhY2tpbmdTdG9yZUN1cnNvci0+Y2xvc2UoKTsKQEAgLTE4Nyw3
ICsxODcsNyBAQCB2b2lkIElEQkluZGV4QmFja2VuZEltcGw6OmdldEJ5UmFuZ2VJbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cgogdm9pZCBJREJJbmRleEJhY2tlbmRJ
bXBsOjpnZXRLZXlJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJJbmRleEJhY2tlbmRJbXBsPiBpbmRleCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4
QmFja2VuZEltcGw6OmdldEtleUludGVybmFsIik7Ci0gICAgUmVmUHRyPElEQktleT4ga2V5UmVz
dWx0ID0gaW5kZXgtPm1fYmFja2luZ1N0b3JlLT5nZXRQcmltYXJ5S2V5VmlhSW5kZXgoaW5kZXgt
Pm1fZGF0YWJhc2VJZCwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+
aWQoKSwgKmtleSk7CisgICAgUmVmUHRyPElEQktleT4ga2V5UmVzdWx0ID0gaW5kZXgtPmJhY2tp
bmdTdG9yZSgpLT5nZXRQcmltYXJ5S2V5VmlhSW5kZXgoaW5kZXgtPmRhdGFiYXNlSWQoKSwgaW5k
ZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmtleSk7CiAgICAg
aWYgKCFrZXlSZXN1bHQpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nh
c3Q8SURCS2V5Kj4oMCkpOwogICAgICAgICByZXR1cm47CkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2
b2lkIElEQkluZGV4QmFja2VuZEltcGw6OmdldEtleUJ5UmFuZ2VJbnRlcm5hbChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgIElEQl9UUkFDRSgiSURCSW5kZXhCYWNrZW5kSW1w
bDo6Z2V0QnlSYW5nZUludGVybmFsIik7CiAKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpD
dXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9Ci0gICAgICAgICAgICBpbmRleC0+bV9iYWNraW5n
U3RvcmUtPm9wZW5JbmRleEtleUN1cnNvcihpbmRleC0+bV9kYXRhYmFzZUlkLCBpbmRleC0+bV9v
YmplY3RTdG9yZUJhY2tlbmQtPmlkKCksIGluZGV4LT5pZCgpLCBrZXlSYW5nZS5nZXQoKSwgSURC
Q3Vyc29yOjpORVhUKTsKKyAgICAgICAgICAgIGluZGV4LT5iYWNraW5nU3RvcmUoKS0+b3Blbklu
ZGV4S2V5Q3Vyc29yKGluZGV4LT5kYXRhYmFzZUlkKCksIGluZGV4LT5tX29iamVjdFN0b3JlQmFj
a2VuZC0+aWQoKSwgaW5kZXgtPmlkKCksIGtleVJhbmdlLmdldCgpLCBJREJDdXJzb3I6Ok5FWFQp
OwogCiAgICAgaWYgKCFiYWNraW5nU3RvcmVDdXJzb3IpIHsKICAgICAgICAgY2FsbGJhY2tzLT5v
blN1Y2Nlc3Moc3RhdGljX2Nhc3Q8SURCS2V5Kj4oMCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPElEQktleT4ga2V5UmVzdWx0ID0gaW5kZXgtPm1fYmFja2luZ1N0b3Jl
LT5nZXRQcmltYXJ5S2V5VmlhSW5kZXgoaW5kZXgtPm1fZGF0YWJhc2VJZCwgaW5kZXgtPm1fb2Jq
ZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBpbmRleC0+aWQoKSwgKmJhY2tpbmdTdG9yZUN1cnNvci0+
a2V5KCkpOworICAgIFJlZlB0cjxJREJLZXk+IGtleVJlc3VsdCA9IGluZGV4LT5iYWNraW5nU3Rv
cmUoKS0+Z2V0UHJpbWFyeUtleVZpYUluZGV4KGluZGV4LT5kYXRhYmFzZUlkKCksIGluZGV4LT5t
X29iamVjdFN0b3JlQmFja2VuZC0+aWQoKSwgaW5kZXgtPmlkKCksICpiYWNraW5nU3RvcmVDdXJz
b3ItPmtleSgpKTsKICAgICBpZiAoIWtleVJlc3VsdCkgewogICAgICAgICBjYWxsYmFja3MtPm9u
U3VjY2VzcyhzdGF0aWNfY2FzdDxJREJLZXkqPigwKSk7CiAgICAgICAgIGJhY2tpbmdTdG9yZUN1
cnNvci0+Y2xvc2UoKTsKQEAgLTI2NCw3ICsyNjQsNyBAQCBib29sIElEQkluZGV4QmFja2VuZElt
cGw6OmFkZGluZ0tleUFsbG93ZWQoY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5
KgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFJlZlB0cjxJREJLZXk+IGZvdW5kUHJpbWFy
eUtleTsKLSAgICBib29sIGZvdW5kID0gbV9iYWNraW5nU3RvcmUtPmtleUV4aXN0c0luSW5kZXgo
bV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlQmFja2VuZC0+aWQoKSwgbV9pZCwgKmluZGV4S2V5
LCBmb3VuZFByaW1hcnlLZXkpOworICAgIGJvb2wgZm91bmQgPSBiYWNraW5nU3RvcmUoKS0+a2V5
RXhpc3RzSW5JbmRleChkYXRhYmFzZUlkKCksIG1fb2JqZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBt
X2lkLCAqaW5kZXhLZXksIGZvdW5kUHJpbWFyeUtleSk7CiAgICAgaWYgKCFmb3VuZCkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHByaW1hcnlLZXkgJiYgZm91bmRQcmltYXJ5S2V5LT5p
c0VxdWFsKHByaW1hcnlLZXkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5oCmluZGV4IGU2NDg1YjY2NGMzYTRlMzAzNzQ0
YTMxYmE2NDU5YzI1YTUzZWNlOWEuLjMwYjdiNjY4YTE2ODAyNTZiN2RkYWMwOWUxMWFjYzczNjE2
OWI5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleEJhY2tlbmRJbXBsLmgKQEAgLTg2LDYgKzg2LDkgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBnZXRLZXlJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJJbmRleEJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4pOwogICAgIHN0YXRpYyB2b2lkIGdldEtleUJ5UmFuZ2VJbnRlcm5hbChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAKKyAgICBQ
YXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNraW5nU3RvcmU7IH0KKyAgICBpbnQ2NF90IGRhdGFiYXNlSWQoKSBjb25zdCB7IHJldHVy
biBtX2RhdGFiYXNlSWQ7IH0KKwogICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IEludmFsaWRJZCA9
IDA7CiAKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggN2UyYjU1MjcxZjc4Njc5NzIzZWJhZmFlODE1MWI0
Y2IyYmI1NWFkMi4uZWUxZmYzNmU0YjlkMmRjYWI3NGIyMzI5MjI5YTE5MzJjYjVmMmQ2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTEwOCwxMyArMTA4LDEzIEBAIHZvaWQgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHBycEtl
eVJhbmdlLCBQYXNzUmVmCiB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmdldEJ5UmFu
Z2VJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpnZXRCeVJhbmdlSW50ZXJuYWwiKTsKLSAg
ICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9IG9i
amVjdFN0b3JlLT5tX2JhY2tpbmdTdG9yZS0+b3Blbk9iamVjdFN0b3JlQ3Vyc29yKG9iamVjdFN0
b3JlLT5tX2RhdGFiYXNlSWQsIG9iamVjdFN0b3JlLT5pZCgpLCBrZXlSYW5nZS5nZXQoKSwgSURC
Q3Vyc29yOjpORVhUKTsKKyAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IGJhY2tp
bmdTdG9yZUN1cnNvciA9IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+b3Blbk9iamVjdFN0
b3JlQ3Vyc29yKG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCBr
ZXlSYW5nZS5nZXQoKSwgSURCQ3Vyc29yOjpORVhUKTsKICAgICBpZiAoIWJhY2tpbmdTdG9yZUN1
cnNvcikgewogICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OnVuZGVmaW5lZFZhbHVlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3Ry
aW5nIHdpcmVEYXRhID0gb2JqZWN0U3RvcmUtPm1fYmFja2luZ1N0b3JlLT5nZXRPYmplY3RTdG9y
ZVJlY29yZChvYmplY3RTdG9yZS0+bV9kYXRhYmFzZUlkLCBvYmplY3RTdG9yZS0+aWQoKSwgKmJh
Y2tpbmdTdG9yZUN1cnNvci0+a2V5KCkpOworICAgIFN0cmluZyB3aXJlRGF0YSA9IG9iamVjdFN0
b3JlLT5iYWNraW5nU3RvcmUoKS0+Z2V0T2JqZWN0U3RvcmVSZWNvcmQob2JqZWN0U3RvcmUtPmRh
dGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUtPmlkKCksICpiYWNraW5nU3RvcmVDdXJzb3ItPmtleSgp
KTsKICAgICBpZiAod2lyZURhdGEuaXNOdWxsKCkpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vblN1
Y2Nlc3MoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1ZSgpKTsKICAgICAgICAg
YmFja2luZ1N0b3JlQ3Vyc29yLT5jbG9zZSgpOwpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Z2V0QnlSYW5nZUludGVybmFsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzCiB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmdldEludGVy
bmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbDo6Z2V0SW50ZXJuYWwiKTsKLSAgICBTdHJpbmcgd2lyZURhdGEgPSBvYmpl
Y3RTdG9yZS0+bV9iYWNraW5nU3RvcmUtPmdldE9iamVjdFN0b3JlUmVjb3JkKG9iamVjdFN0b3Jl
LT5tX2RhdGFiYXNlSWQsIG9iamVjdFN0b3JlLT5pZCgpLCAqa2V5KTsKKyAgICBTdHJpbmcgd2ly
ZURhdGEgPSBvYmplY3RTdG9yZS0+YmFja2luZ1N0b3JlKCktPmdldE9iamVjdFN0b3JlUmVjb3Jk
KG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCAqa2V5KTsKICAg
ICBpZiAod2lyZURhdGEuaXNOdWxsKCkpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp1bmRlZmluZWRWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMjgxLDggKzI4MSw4IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0
SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8CiAKICAgICBBU1NF
UlQoa2V5ICYmIGtleS0+dmFsaWQoKSk7CiAKLSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpP
YmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IHJlY29yZElkZW50aWZpZXIgPSBvYmplY3RTdG9y
ZS0+bV9iYWNraW5nU3RvcmUtPmNyZWF0ZUludmFsaWRSZWNvcmRJZGVudGlmaWVyKCk7Ci0gICAg
aWYgKHB1dE1vZGUgPT0gQWRkT25seSAmJiBvYmplY3RTdG9yZS0+bV9iYWNraW5nU3RvcmUtPmtl
eUV4aXN0c0luT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUtPm1fZGF0YWJhc2VJZCwgb2JqZWN0U3Rv
cmUtPmlkKCksICprZXksIHJlY29yZElkZW50aWZpZXIuZ2V0KCkpKSB7CisgICAgUmVmUHRyPElE
QkJhY2tpbmdTdG9yZTo6T2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyPiByZWNvcmRJZGVudGlm
aWVyID0gb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLT5jcmVhdGVJbnZhbGlkUmVjb3JkSWRl
bnRpZmllcigpOworICAgIGlmIChwdXRNb2RlID09IEFkZE9ubHkgJiYgb2JqZWN0U3RvcmUtPmJh
Y2tpbmdTdG9yZSgpLT5rZXlFeGlzdHNJbk9iamVjdFN0b3JlKG9iamVjdFN0b3JlLT5kYXRhYmFz
ZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCAqa2V5LCByZWNvcmRJZGVudGlmaWVyLmdldCgpKSkg
ewogICAgICAgICBvYmplY3RTdG9yZS0+cmVzZXRBdXRvSW5jcmVtZW50S2V5Q2FjaGUoKTsKICAg
ICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6Q09OU1RSQUlOVF9FUlIsICJLZXkgYWxyZWFkeSBleGlzdHMgaW4gdGhl
IG9iamVjdCBzdG9yZS4iKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTMyMCw3ICszMjAsNyBAQCB2
b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPAogCiAgICAgLy8gQmVmb3JlIHRoaXMgcG9pbnQsIGRvbid0
IGRvIGFueSBtdXRhdGlvbi4gIEFmdGVyIHRoaXMgcG9pbnQsIHJvbGxiYWNrIHRoZSB0cmFuc2Fj
dGlvbiBpbiBjYXNlIG9mIGVycm9yLgogCi0gICAgaWYgKCFvYmplY3RTdG9yZS0+bV9iYWNraW5n
U3RvcmUtPnB1dE9iamVjdFN0b3JlUmVjb3JkKG9iamVjdFN0b3JlLT5tX2RhdGFiYXNlSWQsIG9i
amVjdFN0b3JlLT5pZCgpLCAqa2V5LCB2YWx1ZS0+dG9XaXJlU3RyaW5nKCksIHJlY29yZElkZW50
aWZpZXIuZ2V0KCkpKSB7CisgICAgaWYgKCFvYmplY3RTdG9yZS0+YmFja2luZ1N0b3JlKCktPnB1
dE9iamVjdFN0b3JlUmVjb3JkKG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3Jl
LT5pZCgpLCAqa2V5LCB2YWx1ZS0+dG9XaXJlU3RyaW5nKCksIHJlY29yZElkZW50aWZpZXIuZ2V0
KCkpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGUgSW5kZXhlZCBEYXRhYmFzZSBzcGVjaWZpY2F0
aW9uIGRvZXMgbm90IGhhdmUgYW4gZXJyb3IgY29kZSBkZWRpY2F0ZWQgdG8gSS9PIGVycm9ycy4K
ICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9FUlIsICJFcnJvciB3cml0aW5nIGRhdGEgdG8gc3Rh
YmxlIHN0b3JhZ2UuIikpOwogICAgICAgICB0cmFuc2FjdGlvbi0+YWJvcnQoKTsKQEAgLTMzMyw3
ICszMzMsNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPAogICAgICAgICBpZiAoIWluZGV4LT5o
YXNWYWxpZElkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhlIGluZGV4IG9iamVjdCBo
YXMgYmVlbiBjcmVhdGVkLCBidXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGRhdGFiYXNlIHlldC4K
IAotICAgICAgICBpZiAoIW9iamVjdFN0b3JlLT5tX2JhY2tpbmdTdG9yZS0+ZGVsZXRlSW5kZXhE
YXRhRm9yUmVjb3JkKG9iamVjdFN0b3JlLT5tX2RhdGFiYXNlSWQsIG9iamVjdFN0b3JlLT5pZCgp
LCBpbmRleC0+aWQoKSwgcmVjb3JkSWRlbnRpZmllci5nZXQoKSkpIHsKKyAgICAgICAgaWYgKCFv
YmplY3RTdG9yZS0+YmFja2luZ1N0b3JlKCktPmRlbGV0ZUluZGV4RGF0YUZvclJlY29yZChvYmpl
Y3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwgaW5kZXgtPmlkKCksIHJl
Y29yZElkZW50aWZpZXIuZ2V0KCkpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhlIEluZGV4
ZWQgRGF0YWJhc2Ugc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGFuIGVycm9yIGNvZGUgZGVk
aWNhdGVkIHRvIEkvTyBlcnJvcnMuCiAgICAgICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURC
RGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VSUiwg
IkVycm9yIHdyaXRpbmcgZGF0YSB0byBzdGFibGUgc3RvcmFnZS4iKSk7CiAgICAgICAgICAgICB0
cmFuc2FjdGlvbi0+YWJvcnQoKTsKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPAogICAgICAgICBSZWZQdHI8SURCS2V5PiBpbmRleEtleSA9IGluZGV4S2V5c1tpXTsK
IAogICAgICAgICBpZiAoIWluZGV4LT5tdWx0aUVudHJ5KCkgfHwgaW5kZXhLZXktPnR5cGUoKSAh
PSBJREJLZXk6OkFycmF5VHlwZSkgewotICAgICAgICAgICAgaWYgKCFvYmplY3RTdG9yZS0+bV9i
YWNraW5nU3RvcmUtPnB1dEluZGV4RGF0YUZvclJlY29yZChvYmplY3RTdG9yZS0+bV9kYXRhYmFz
ZUlkLCBvYmplY3RTdG9yZS0+aWQoKSwgaW5kZXgtPmlkKCksICppbmRleEtleSwgcmVjb3JkSWRl
bnRpZmllci5nZXQoKSkpIHsKKyAgICAgICAgICAgIGlmICghb2JqZWN0U3RvcmUtPmJhY2tpbmdT
dG9yZSgpLT5wdXRJbmRleERhdGFGb3JSZWNvcmQob2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwg
b2JqZWN0U3RvcmUtPmlkKCksIGluZGV4LT5pZCgpLCAqaW5kZXhLZXksIHJlY29yZElkZW50aWZp
ZXIuZ2V0KCkpKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBJbmRleGVkIERhdGFi
YXNlIHNwZWNpZmljYXRpb24gZG9lcyBub3QgaGF2ZSBhbiBlcnJvciBjb2RlIGRlZGljYXRlZCB0
byBJL08gZXJyb3JzLgogICAgICAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRh
YmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiRXJy
b3Igd3JpdGluZyBkYXRhIHRvIHN0YWJsZSBzdG9yYWdlLiIpKTsKICAgICAgICAgICAgICAgICB0
cmFuc2FjdGlvbi0+YWJvcnQoKTsKQEAgLTM1NSw3ICszNTUsNyBAQCB2b2lkIElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPAogICAgICAgICAgICAgQVNTRVJUKGluZGV4LT5tdWx0aUVudHJ5KCkpOwogICAgICAg
ICAgICAgQVNTRVJUKGluZGV4S2V5LT50eXBlKCkgPT0gSURCS2V5OjpBcnJheVR5cGUpOwogICAg
ICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBpbmRleEtleS0+YXJyYXkoKS5zaXplKCk7
ICsraikgewotICAgICAgICAgICAgICAgIGlmICghb2JqZWN0U3RvcmUtPm1fYmFja2luZ1N0b3Jl
LT5wdXRJbmRleERhdGFGb3JSZWNvcmQob2JqZWN0U3RvcmUtPm1fZGF0YWJhc2VJZCwgb2JqZWN0
U3RvcmUtPmlkKCksIGluZGV4LT5pZCgpLCAqaW5kZXhLZXktPmFycmF5KClbal0sIHJlY29yZElk
ZW50aWZpZXIuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFvYmplY3RTdG9yZS0+YmFj
a2luZ1N0b3JlKCktPnB1dEluZGV4RGF0YUZvclJlY29yZChvYmplY3RTdG9yZS0+ZGF0YWJhc2VJ
ZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwgaW5kZXgtPmlkKCksICppbmRleEtleS0+YXJyYXkoKVtq
XSwgcmVjb3JkSWRlbnRpZmllci5nZXQoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IFRoZSBJbmRleGVkIERhdGFiYXNlIHNwZWNpZmljYXRpb24gZG9lcyBub3QgaGF2ZSBhbiBl
cnJvciBjb2RlIGRlZGljYXRlZCB0byBJL08gZXJyb3JzLgogICAgICAgICAgICAgICAgICAgICBj
YWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpVTktOT1dOX0VSUiwgIkVycm9yIHdyaXRpbmcgZGF0YSB0byBzdGFibGUgc3RvcmFn
ZS4iKSk7CiAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOwpAQCAtNDA1
LDcgKzQwNSw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQCiAgICAgSURCX1RSQUNFKCJJREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsOjpkZWxldGVJbnRlcm5hbCIpOwogICAgIFJlZlB0cjxJREJC
YWNraW5nU3RvcmU6Ok9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllcj4gcmVjb3JkSWRlbnRpZmll
cjsKIAotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gYmFja2luZ1N0b3JlQ3Vy
c29yID0gb2JqZWN0U3RvcmUtPm1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJzb3Io
b2JqZWN0U3RvcmUtPm1fZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUtPmlkKCksIGtleVJhbmdlLmdl
dCgpLCBJREJDdXJzb3I6Ok5FWFQpOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNv
cj4gYmFja2luZ1N0b3JlQ3Vyc29yID0gb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLT5vcGVu
T2JqZWN0U3RvcmVDdXJzb3Iob2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUt
PmlkKCksIGtleVJhbmdlLmdldCgpLCBJREJDdXJzb3I6Ok5FWFQpOwogICAgIGlmIChiYWNraW5n
U3RvcmVDdXJzb3IpIHsKIAogICAgICAgICBkbyB7CkBAIC00MTUsMTEgKzQxNSwxMSBAQCB2b2lk
IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmRlbGV0ZUludGVybmFsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUAogICAgICAgICAgICAgICAgIGlmICghaXQtPnNlY29uZC0+aGFz
VmFsaWRJZCgpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhlIGluZGV4IG9i
amVjdCBoYXMgYmVlbiBjcmVhdGVkLCBidXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGRhdGFiYXNl
IHlldC4KIAotICAgICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IG9iamVjdFN0b3JlLT5tX2Jh
Y2tpbmdTdG9yZS0+ZGVsZXRlSW5kZXhEYXRhRm9yUmVjb3JkKG9iamVjdFN0b3JlLT5tX2RhdGFi
YXNlSWQsIG9iamVjdFN0b3JlLT5pZCgpLCBpdC0+c2Vjb25kLT5pZCgpLCByZWNvcmRJZGVudGlm
aWVyLmdldCgpKTsKKyAgICAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBvYmplY3RTdG9yZS0+
YmFja2luZ1N0b3JlKCktPmRlbGV0ZUluZGV4RGF0YUZvclJlY29yZChvYmplY3RTdG9yZS0+ZGF0
YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwgaXQtPnNlY29uZC0+aWQoKSwgcmVjb3JkSWRl
bnRpZmllci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChzdWNjZXNzLCBz
dWNjZXNzKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb2JqZWN0U3RvcmUtPm1fYmFj
a2luZ1N0b3JlLT5kZWxldGVPYmplY3RTdG9yZVJlY29yZChvYmplY3RTdG9yZS0+bV9kYXRhYmFz
ZUlkLCBvYmplY3RTdG9yZS0+aWQoKSwgcmVjb3JkSWRlbnRpZmllci5nZXQoKSk7CisgICAgICAg
ICAgICBvYmplY3RTdG9yZS0+YmFja2luZ1N0b3JlKCktPmRlbGV0ZU9iamVjdFN0b3JlUmVjb3Jk
KG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCByZWNvcmRJZGVu
dGlmaWVyLmdldCgpKTsKIAogICAgICAgICB9IHdoaWxlIChiYWNraW5nU3RvcmVDdXJzb3ItPmNv
bnRpbnVlRnVuY3Rpb24oMCkpOwogCkBAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpjbGVhcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJh
Y2tzLCBJREIKIAogdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjbGVhckludGVybmFs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQog
ewotICAgIG9iamVjdFN0b3JlLT5tX2JhY2tpbmdTdG9yZS0+Y2xlYXJPYmplY3RTdG9yZShvYmpl
Y3RTdG9yZS0+bV9kYXRhYmFzZUlkLCBvYmplY3RTdG9yZS0+aWQoKSk7CisgICAgb2JqZWN0U3Rv
cmUtPmJhY2tpbmdTdG9yZSgpLT5jbGVhck9iamVjdFN0b3JlKG9iamVjdFN0b3JlLT5kYXRhYmFz
ZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpKTsKICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnVuZGVmaW5lZFZhbHVlKCkpOwogfQogCkBAIC01MTgsNyArNTE4
LDcgQEAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGw6OmNyZWF0ZUluZGV4KGNvbnMKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
Ci0gICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gSURCSW5kZXhCYWNrZW5k
SW1wbDo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLmdldCgpLCBtX2RhdGFiYXNlSWQsIHRoaXMsIG5h
bWUsIG1fbmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KTsKKyAgICBSZWZQdHI8SURC
SW5kZXhCYWNrZW5kSW1wbD4gaW5kZXggPSBJREJJbmRleEJhY2tlbmRJbXBsOjpjcmVhdGUoYmFj
a2luZ1N0b3JlKCkuZ2V0KCksIGRhdGFiYXNlSWQoKSwgdGhpcywgbmFtZSwgbV9uYW1lLCBrZXlQ
YXRoLCB1bmlxdWUsIG11bHRpRW50cnkpOwogICAgIEFTU0VSVChpbmRleC0+bmFtZSgpID09IG5h
bWUpOwogCiAgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3Jl
ID0gdGhpczsKQEAgLTUzOSwxNCArNTM5LDE0IEBAIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5k
SW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjcmVhdGVJbmRleChjb25zCiB2
b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4SW50ZXJuYWwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4g
b2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXgsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbikKIHsKICAg
ICBpbnQ2NF90IGlkOwotICAgIGlmICghb2JqZWN0U3RvcmUtPm1fYmFja2luZ1N0b3JlLT5jcmVh
dGVJbmRleChvYmplY3RTdG9yZS0+bV9kYXRhYmFzZUlkLCBvYmplY3RTdG9yZS0+aWQoKSwgaW5k
ZXgtPm5hbWUoKSwgaW5kZXgtPmtleVBhdGgoKSwgaW5kZXgtPnVuaXF1ZSgpLCBpbmRleC0+bXVs
dGlFbnRyeSgpLCBpZCkpIHsKKyAgICBpZiAoIW9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+
Y3JlYXRlSW5kZXgob2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUtPmlkKCks
IGluZGV4LT5uYW1lKCksIGluZGV4LT5rZXlQYXRoKCksIGluZGV4LT51bmlxdWUoKSwgaW5kZXgt
Pm11bHRpRW50cnkoKSwgaWQpKSB7CiAgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaW5kZXgtPnNldElkKGlkKTsKIAotICAgIGlmICgh
cG9wdWxhdGVJbmRleCgqb2JqZWN0U3RvcmUtPm1fYmFja2luZ1N0b3JlLCBvYmplY3RTdG9yZS0+
bV9kYXRhYmFzZUlkLCBvYmplY3RTdG9yZS0+bV9pZCwgaW5kZXgpKSB7CisgICAgaWYgKCFwb3B1
bGF0ZUluZGV4KCpvYmplY3RTdG9yZS0+YmFja2luZ1N0b3JlKCksIG9iamVjdFN0b3JlLT5kYXRh
YmFzZUlkKCksIG9iamVjdFN0b3JlLT5tX2lkLCBpbmRleCkpIHsKICAgICAgICAgdHJhbnNhY3Rp
b24tPmFib3J0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01OTIsNyArNTkyLDcgQEAg
dm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpkZWxldGVJbmRleChjb25zdCBTdHJpbmcm
IG5hbWUsIElEQlRyYW5zYWN0aW9uQmEKIAogdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpkZWxldGVJbmRleEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQklu
ZGV4QmFja2VuZEltcGw+IGluZGV4LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gdHJhbnNhY3Rpb24pCiB7Ci0gICAgb2JqZWN0U3RvcmUtPm1fYmFja2luZ1N0b3Jl
LT5kZWxldGVJbmRleChvYmplY3RTdG9yZS0+bV9kYXRhYmFzZUlkLCBvYmplY3RTdG9yZS0+aWQo
KSwgaW5kZXgtPmlkKCkpOworICAgIG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+ZGVsZXRl
SW5kZXgob2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUtPmlkKCksIGluZGV4
LT5pZCgpKTsKICAgICB0cmFuc2FjdGlvbi0+ZGlkQ29tcGxldGVUYXNrRXZlbnRzKCk7CiB9CiAK
QEAgLTYxNSw3ICs2MTUsNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6Om9wZW5D
dXJzb3JJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzcwogICAgIElEQl9UUkFD
RSgiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6b3BlbkN1cnNvckludGVybmFsIik7CiAgICAg
SURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uID0gc3RhdGljX2Nhc3Q8SURCQ3Vyc29yOjpE
aXJlY3Rpb24+KHRtcERpcmVjdGlvbik7CiAKLSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpD
dXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9IG9iamVjdFN0b3JlLT5tX2JhY2tpbmdTdG9yZS0+
b3Blbk9iamVjdFN0b3JlQ3Vyc29yKG9iamVjdFN0b3JlLT5tX2RhdGFiYXNlSWQsIG9iamVjdFN0
b3JlLT5pZCgpLCByYW5nZS5nZXQoKSwgZGlyZWN0aW9uKTsKKyAgICBSZWZQdHI8SURCQmFja2lu
Z1N0b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9IG9iamVjdFN0b3JlLT5iYWNraW5n
U3RvcmUoKS0+b3Blbk9iamVjdFN0b3JlQ3Vyc29yKG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCks
IG9iamVjdFN0b3JlLT5pZCgpLCByYW5nZS5nZXQoKSwgZGlyZWN0aW9uKTsKICAgICBpZiAoIWJh
Y2tpbmdTdG9yZUN1cnNvcikgewogICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhTZXJpYWxp
emVkU2NyaXB0VmFsdWU6Om51bGxWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjM2LDcg
KzYzNiw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0CiB7CiAgICAgSURCX1RSQUNFKCJJREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsIik7CiAgICAgdWludDMyX3QgY291
bnQgPSAwOwotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gYmFja2luZ1N0b3Jl
Q3Vyc29yID0gb2JqZWN0U3RvcmUtPm1fYmFja2luZ1N0b3JlLT5vcGVuT2JqZWN0U3RvcmVDdXJz
b3Iob2JqZWN0U3RvcmUtPm1fZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUtPmlkKCksIHJhbmdlLmdl
dCgpLCBJREJDdXJzb3I6Ok5FWFQpOworICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNv
cj4gYmFja2luZ1N0b3JlQ3Vyc29yID0gb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLT5vcGVu
T2JqZWN0U3RvcmVDdXJzb3Iob2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUt
PmlkKCksIHJhbmdlLmdldCgpLCBJREJDdXJzb3I6Ok5FWFQpOwogICAgIGlmICghYmFja2luZ1N0
b3JlQ3Vyc29yKSB7CiAgICAgICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6bnVtYmVyVmFsdWUoY291bnQpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjU3LDcg
KzY1Nyw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bG9hZEluZGV4ZXMoKQog
ICAgIFZlY3RvcjxTdHJpbmc+IGtleVBhdGhzOwogICAgIFZlY3Rvcjxib29sPiB1bmlxdWVGbGFn
czsKICAgICBWZWN0b3I8Ym9vbD4gbXVsdGlFbnRyeUZsYWdzOwotICAgIG1fYmFja2luZ1N0b3Jl
LT5nZXRJbmRleGVzKG1fZGF0YWJhc2VJZCwgbV9pZCwgaWRzLCBuYW1lcywga2V5UGF0aHMsIHVu
aXF1ZUZsYWdzLCBtdWx0aUVudHJ5RmxhZ3MpOworICAgIGJhY2tpbmdTdG9yZSgpLT5nZXRJbmRl
eGVzKGRhdGFiYXNlSWQoKSwgbV9pZCwgaWRzLCBuYW1lcywga2V5UGF0aHMsIHVuaXF1ZUZsYWdz
LCBtdWx0aUVudHJ5RmxhZ3MpOwogCiAgICAgQVNTRVJUKG5hbWVzLnNpemUoKSA9PSBpZHMuc2l6
ZSgpKTsKICAgICBBU1NFUlQoa2V5UGF0aHMuc2l6ZSgpID09IGlkcy5zaXplKCkpOwpAQCAtNjY1
LDcgKzY2NSw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bG9hZEluZGV4ZXMo
KQogICAgIEFTU0VSVChtdWx0aUVudHJ5RmxhZ3Muc2l6ZSgpID09IGlkcy5zaXplKCkpOwogCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpZHMuc2l6ZSgpOyBpKyspCi0gICAgICAgIG1faW5k
ZXhlcy5zZXQobmFtZXNbaV0sIElEQkluZGV4QmFja2VuZEltcGw6OmNyZWF0ZShtX2JhY2tpbmdT
dG9yZS5nZXQoKSwgbV9kYXRhYmFzZUlkLCB0aGlzLCBpZHNbaV0sIG5hbWVzW2ldLCBtX25hbWUs
IGtleVBhdGhzW2ldLCB1bmlxdWVGbGFnc1tpXSwgbXVsdGlFbnRyeUZsYWdzW2ldKSk7CisgICAg
ICAgIG1faW5kZXhlcy5zZXQobmFtZXNbaV0sIElEQkluZGV4QmFja2VuZEltcGw6OmNyZWF0ZShi
YWNraW5nU3RvcmUoKS5nZXQoKSwgZGF0YWJhc2VJZCgpLCB0aGlzLCBpZHNbaV0sIG5hbWVzW2ld
LCBtX25hbWUsIGtleVBhdGhzW2ldLCB1bmlxdWVGbGFnc1tpXSwgbXVsdGlFbnRyeUZsYWdzW2ld
KSk7CiB9CiAKIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cmVtb3ZlSW5kZXhGcm9t
TWFwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGlu
ZGV4KQpAQCAtNjg5LDcgKzY4OSw3IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsOjpnZW5BdXRvSW5jcmVtZW50S2V5KCkKICAgICBpZiAobV9hdXRvSW5jcmVt
ZW50TnVtYmVyID4gMCkKICAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlTnVtYmVyKG1fYXV0
b0luY3JlbWVudE51bWJlcisrKTsKIAotICAgIG1fYXV0b0luY3JlbWVudE51bWJlciA9IG1fYmFj
a2luZ1N0b3JlLT5uZXh0QXV0b0luY3JlbWVudE51bWJlcihtX2RhdGFiYXNlSWQsIGlkKCkpOwor
ICAgIG1fYXV0b0luY3JlbWVudE51bWJlciA9IGJhY2tpbmdTdG9yZSgpLT5uZXh0QXV0b0luY3Jl
bWVudE51bWJlcihkYXRhYmFzZUlkKCksIGlkKCkpOwogICAgIGlmIChtX2F1dG9JbmNyZW1lbnRO
dW1iZXIgPiBrTWF4R2VuZXJhdG9yVmFsdWUpCiAgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0
ZUludmFsaWQoKTsKICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIobV9hdXRvSW5jcmVt
ZW50TnVtYmVyKyspOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCmluZGV4IDZlMGM1ZThmZDZhYTFh
MzViYTNhMTc4MjNjNTMxODkxN2NmMTI3ZjkuLjNlYmM3N2NmODA4YmQ1ZDMxZDJjNjI4NDJhYjFi
ZWJjN2FkOWRlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAgLTU5LDcgKzU5LDYgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gbV9pZDsKICAgICB9CiAgICAgdm9pZCBzZXRJZChpbnQ2
NF90IGlkKSB7IG1faWQgPSBpZDsgfQotICAgIGludDY0X3QgZGF0YWJhc2VJZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YWJhc2VJZDsgfQogCiAgICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKSBjb25zdCB7
IHJldHVybiBtX2tleVBhdGg7IH0KQEAgLTEwNSw2ICsxMDQsOSBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyB2b2lkIGFkZEluZGV4VG9NYXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5k
SW1wbD4pOwogICAgIHN0YXRpYyB2b2lkIHJldmVydEF1dG9JbmNyZW1lbnRLZXlDYWNoZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
Pik7CiAKKyAgICBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlKCkgY29u
c3QgeyByZXR1cm4gbV9iYWNraW5nU3RvcmU7IH0KKyAgICBpbnQ2NF90IGRhdGFiYXNlSWQoKSBj
b25zdCB7IHJldHVybiBtX2RhdGFiYXNlSWQ7IH0KKwogICAgIFJlZlB0cjxJREJCYWNraW5nU3Rv
cmU+IG1fYmFja2luZ1N0b3JlOwogCiAgICAgaW50NjRfdCBtX2RhdGFiYXNlSWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>