<?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>128374</bug_id>
          
          <creation_ts>2014-02-07 07:28:05 -0800</creation_ts>
          <short_desc>IDB: Some Mozilla cursor mutation tests fail</short_desc>
          <delta_ts>2014-02-07 16:26:23 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>977819</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-07 07:28:05 -0800</bug_when>
    <thetext>IDB: Some Mozilla cursor mutation tests fail

This includes:
storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html failed unexpectedly (text diff)
storage/indexeddb/mozilla/cursor-mutation.html failed unexpectedly (text diff)
storage/indexeddb/mozilla/cursor-update-updates-indexes.html failed unexpectedly (text diff)

Because of the close relation, I suspect (at this point) that the causes of the failures are the same or related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977820</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-07 07:28:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/16011680&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978105</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-07 15:39:53 -0800</bug_when>
    <thetext>I have a patch to fix:
storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html failed unexpectedly (text diff)
storage/indexeddb/mozilla/cursor-mutation.html failed unexpectedly (text diff)

But not the third one.  It will come in the continued layout test cleanup effort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978113</commentid>
    <comment_count>3</comment_count>
      <attachid>223507</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-07 15:57:21 -0800</bug_when>
    <thetext>Created attachment 223507
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978130</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-02-07 16:26:23 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/163662</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223507</attachid>
            <date>2014-02-07 15:57:21 -0800</date>
            <delta_ts>2014-02-07 16:05:37 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>47010</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZTZiYjZmLi4zYjZjYTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDIt
MDcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIElEQjogU29t
ZSBNb3ppbGxhIGN1cnNvciBtdXRhdGlvbiB0ZXN0cyBmYWlsCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xNjAxMTY4MD4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjgzNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczogQWRkIHR3byB0ZXN0cyB0aGF0
IG5vdyBwYXNzLgorCiAyMDE0LTAyLTA2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1pbmRleC13aXRoLWlu
dGVnZXIta2V5cy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggNjA1ZTk1ZS4uNDY3NTc3YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDc1LDYgKzQ3NSw4IEBAIHN0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUuaHRtbCBbIFBhc3MgXQog
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMuaHRtbCBbIFBh
c3MgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jbGVhci5odG1sIFsgUGFzcyBdCiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5odG1s
IFsgUGFzcyBdCitzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1vYmpl
Y3RzdG9yZS1vbmx5Lmh0bWwgWyBQYXNzIF0KK3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vy
c29yLW11dGF0aW9uLmh0bWwgWyBQYXNzIF0KIAogCiAjIyMgRU5EIE9GICg1KSBGZWF0dXJlcyB0
aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGluIFdlYktpdDEsIHNvIHNraXBwZWQgaW4gbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgdGhlbiByZS1lbmFibGVkIGhlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNjk0NDk2Li5j
NGM0MmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTQtMDItMDcgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIElEQjogU29tZSBNb3ppbGxhIGN1
cnNvciBtdXRhdGlvbiB0ZXN0cyBmYWlsCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjAxMTY4
MD4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgzNzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0ZWQgYnk6
CisgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLW9iamVj
dHN0b3JlLW9ubHkuaHRtbAorICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNv
ci1tdXRhdGlvbi5odG1sCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGNvbW1lbnQgYWJvdXQgTGV2
ZWxEQiB3YXMgd3JvbmcuCisgICAgICAgIEFwcGFyZW50bHkgY2FsbGluZyBvblN1Y2Nlc3MoKSB3
aXRoIGEgbnVsbCBTaGFyZWRCdWZmZXIgbWVhbnMgdGhlIGN1cnNvciByZWFjaGVkIHRoZSBlbmQu
CisgICAgICAgIFVwZGF0ZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGFuIGVycm9yIGFuZCByZWFj
aGluZyB0aGUgZW5kOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tl
bmRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvckFkdmFuY2VPcGVyYXRp
b246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9u
OjpwZXJmb3JtKToKKyAKKyAgICAgICAgQWRkIGEgbmV3IElEQktleSB0eXBlIC0gTWF4aW11bSAt
IFRvIGJlIHVzZWQgaW4gY29tcGFyaXNvbnMgYmV0d2VlbiBrZXlzLgorICAgICAgICBUaGlzIHdp
bGwgYWxsb3cgdGhlIERhdGFiYXNlUHJvY2VzcyB0byBvcGVyYXRlIG9uIHRoZSByYW5nZSBvZiBh
bGwga2V5czoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5Ojpjb21wYXJlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXkuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6SURCS2V5RGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJLZXlEYXRhOjptYXliZUNyZWF0ZUlEQktleSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJLZXlEYXRhOjppc29sYXRlZENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0
YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmRlY29kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpjb21wYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QktleURhdGE6OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6Om1pbmltdW0pOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6bWF4aW11bSk6CisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlkYktleVRv
SlNWYWx1ZSk6CisKKyAgICAgICAgUmVtb3ZlIGFuIHVudXNlZCBjYWxsYmFjazoKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaDoKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisKIDIwMTQtMDItMDYgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIElEQjogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLWlu
ZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKaW5kZXggNjk1NzY2Mi4uMThiNDczOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKQEAg
LTY4LDggKzY4LDYgQEAgcHVibGljOgogICAgIC8vIEZyb20gSURCQ3Vyc29yLmFkdmFuY2UoKS9j
b250aW51ZSgpCiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4p
ID0gMDsKIAotICAgIC8vIEZyb20gSURCQ3Vyc29yLmFkdmFuY2UoKS9jb250aW51ZSgpCi0gICAg
dmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElE
QktleT4+JiBrZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4+JiBwcmltYXJ5S2V5cywg
Y29uc3QgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYgdmFsdWVzKSA9IDA7CiAgICAgLy8g
RnJvbSBJREJGYWN0b3J5Lm9wZW4oKS9kZWxldGVEYXRhYmFzZSgpCiAgICAgdmlydHVhbCB2b2lk
IG9uQmxvY2tlZCh1aW50NjRfdCAvKiBleGlzdGluZ1ZlcnNpb24gKi8pIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICAvLyBGcm9tIElEQkZhY3Rvcnkub3BlbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5k
T3BlcmF0aW9ucy5jcHAKaW5kZXggZmIxNmZjNi4uYmQ2Y2MyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRP
cGVyYXRpb25zLmNwcApAQCAtNDMsOCArNDMsMTAgQEAgdm9pZCBDdXJzb3JBZHZhbmNlT3BlcmF0
aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spCiAg
ICAgYXV0byBjYWxsYmFjayA9IFt0aGlzLCBvcGVyYXRpb24sIGNvbXBsZXRpb25DYWxsYmFja10o
UGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZUJ1ZmZlciwgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUVycm9yPiBlcnJvcikgewogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgIG1fY3Vy
c29yLT5jbGVhcigpOwotICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBMZXZlbERCIGJhY2tlbmQg
Y2FsbHMgb25TdWNjZXNzIGV2ZW4gb24gZmFpbHVyZS4KLSAgICAgICAgICAgIC8vIFRoaXMgd2ls
bCBwcm9iYWJseSBoYXZlIHRvIGNoYW5nZSBzb29uIChmb3Igc2FuaXR5KSBhbmQgd2lsbCBwcm9i
YWJseSBicmVhayBMZXZlbERCCisgICAgICAgICAgICBtX2NhbGxiYWNrcy0+b25FcnJvcihlcnJv
cik7CisgICAgICAgIH0gZWxzZSBpZiAoIWtleSkgeworICAgICAgICAgICAgLy8gSWYgdGhlcmUn
cyBubyBlcnJvciBidXQgYWxzbyBubyBrZXksIHRoZW4gdGhlIGN1cnNvciByZWFjaGVkIHRoZSBl
bmQuCisgICAgICAgICAgICBtX2N1cnNvci0+Y2xlYXIoKTsKICAgICAgICAgICAgIG1fY2FsbGJh
Y2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgbV9jdXJzb3ItPnVwZGF0ZUN1cnNvckRhdGEoa2V5LmdldCgp
LCBwcmltYXJ5S2V5LmdldCgpLCB2YWx1ZUJ1ZmZlci5nZXQoKSk7CkBAIC02Niw4ICs2OCwxMCBA
QCB2b2lkIEN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKQogICAgIGF1dG8gY2FsbGJhY2sgPSBbdGhpcywgb3Bl
cmF0aW9uLCBjb21wbGV0aW9uQ2FsbGJhY2tdKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NS
ZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWVC
dWZmZXIsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpIHsKICAgICAgICAgaWYg
KGVycm9yKSB7CiAgICAgICAgICAgICBtX2N1cnNvci0+Y2xlYXIoKTsKLSAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGUgTGV2ZWxEQiBiYWNrZW5kIGNhbGxzIG9uU3VjY2VzcyBldmVuIG9uIGZhaWx1
cmUuCi0gICAgICAgICAgICAvLyBUaGlzIHdpbGwgcHJvYmFibHkgaGF2ZSB0byBjaGFuZ2Ugc29v
biAoZm9yIHNhbml0eSkgYW5kIHdpbGwgcHJvYmFibHkgYnJlYWsgTGV2ZWxEQgorICAgICAgICAg
ICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoZXJyb3IpOworICAgICAgICB9IGVsc2UgaWYgKCFrZXkp
IHsKKyAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gZXJyb3IgYnV0IGFsc28gbm8ga2V5LCB0
aGVuIHRoZSBjdXJzb3IgcmVhY2hlZCB0aGUgZW5kLgorICAgICAgICAgICAgbV9jdXJzb3ItPmNs
ZWFyKCk7CiAgICAgICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHN0YXRpY19jYXN0PFNo
YXJlZEJ1ZmZlcio+KDApKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fY3Vyc29y
LT51cGRhdGVDdXJzb3JEYXRhKGtleS5nZXQoKSwgcHJpbWFyeUtleS5nZXQoKSwgdmFsdWVCdWZm
ZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAK
aW5kZXggM2QyZjkyYy4uYjU2MzE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXkuY3BwCkBAIC03Niw2ICs3Niw3IEBAIGludCBJREJLZXk6OmNvbXBhcmUoY29u
c3QgSURCS2V5KiBvdGhlcikgY29uc3QKICAgICAgICAgICAgICAgICAobV9udW1iZXIgPiBvdGhl
ci0+IG1fbnVtYmVyKSA/IDEgOiAwOwogICAgIGNhc2UgSW52YWxpZFR5cGU6CiAgICAgY2FzZSBN
aW5UeXBlOgorICAgIGNhc2UgTWF4VHlwZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5LmgKaW5kZXggZjQyZjI1OC4uNWI4MGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gSW4gb3JkZXIgb2YgdGhlIGxlYXN0IHRvIHRoZSBoaWdoZXN0IHByZWNlZGVudCBpbiB0ZXJt
cyBvZiBzb3J0IG9yZGVyLgogICAgIGVudW0gVHlwZSB7CisgICAgICAgIE1heFR5cGUgPSAtMSwK
ICAgICAgICAgSW52YWxpZFR5cGUgPSAwLAogICAgICAgICBBcnJheVR5cGUsCiAgICAgICAgIFN0
cmluZ1R5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURh
dGEuY3BwCmluZGV4IDE5NzExNDQuLjJhOWZkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC02MSw4ICs2MSw4IEBAIElEQktleURh
dGE6OklEQktleURhdGEoY29uc3QgSURCS2V5KiBrZXkpCiAgICAgY2FzZSBJREJLZXk6Ok51bWJl
clR5cGU6CiAgICAgICAgIG51bWJlclZhbHVlID0ga2V5LT5udW1iZXIoKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJREJLZXk6Ok1heFR5cGU6CiAgICAgY2FzZSBJREJLZXk6Ok1pblR5cGU6
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CiB9
CkBAIC05MCw2ICs5MCw3IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBJREJLZXlEYXRhOjptYXliZUNy
ZWF0ZUlEQktleSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUobnVt
YmVyVmFsdWUpOwogICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgogICAgICAgICByZXR1cm4g
SURCS2V5OjpjcmVhdGVOdW1iZXIobnVtYmVyVmFsdWUpOworICAgIGNhc2UgSURCS2V5OjpNYXhU
eXBlOgogICAgIGNhc2UgSURCS2V5OjpNaW5UeXBlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMTksOCArMTIwLDggQEAgSURCS2V5
RGF0YSBJREJLZXlEYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgIGNhc2UgSURCS2V5OjpO
dW1iZXJUeXBlOgogICAgICAgICByZXN1bHQubnVtYmVyVmFsdWUgPSBudW1iZXJWYWx1ZTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICBjYXNlIElEQktleTo6TWF4VHlwZToKICAgICBjYXNl
IElEQktleTo6TWluVHlwZToKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC0xNTEsOCArMTUyLDggQEAgdm9pZCBJREJLZXlE
YXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGNhc2UgSURCS2V5
OjpOdW1iZXJUeXBlOgogICAgICAgICBlbmNvZGVyLmVuY29kZURvdWJsZSgibnVtYmVyIiwgbnVt
YmVyVmFsdWUpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBJREJLZXk6Ok1heFR5cGU6CiAg
ICAgY2FzZSBJREJLZXk6Ok1pblR5cGU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNjgsNyArMTY5LDggQEAgYm9vbCBJREJLZXlE
YXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgYXV0byBlbnVtRnVuY3Rpb24gPSBbXShpbnQ2NF90
IHZhbHVlKSB7Ci0gICAgICAgIHJldHVybiB2YWx1ZSA9PSBJREJLZXk6OkludmFsaWRUeXBlCisg
ICAgICAgIHJldHVybiB2YWx1ZSA9PSBJREJLZXk6Ok1heFR5cGUKKyAgICAgICAgICAgIHx8IHZh
bHVlID09IElEQktleTo6SW52YWxpZFR5cGUKICAgICAgICAgICAgIHx8IHZhbHVlID09IElEQktl
eTo6QXJyYXlUeXBlCiAgICAgICAgICAgICB8fCB2YWx1ZSA9PSBJREJLZXk6OlN0cmluZ1R5cGUK
ICAgICAgICAgICAgIHx8IHZhbHVlID09IElEQktleTo6RGF0ZVR5cGUKQEAgLTE4MSwxMCArMTgz
LDExIEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURC
S2V5RGF0YSYgcmVzdWx0KQogICAgIGlmIChyZXN1bHQudHlwZSA9PSBJREJLZXk6OkludmFsaWRU
eXBlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChyZXN1bHQudHlwZSA9PSBJREJL
ZXk6Ok1pblR5cGUpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgaWYgKHJl
c3VsdC50eXBlID09IElEQktleTo6TWF4VHlwZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBpZiAocmVzdWx0LnR5cGUgPT0gSURCS2V5OjpNaW5UeXBlKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9CiAKICAgICBpZiAocmVzdWx0LnR5cGUgPT0gSURCS2V5OjpTdHJpbmdUeXBlKQog
ICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHJlc3VsdC5zdHJp
bmdWYWx1ZSk7CkBAIC0yMzcsOCArMjQwLDggQEAgaW50IElEQktleURhdGE6OmNvbXBhcmUoY29u
c3QgSURCS2V5RGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgICAgIGlmIChudW1iZXJWYWx1ZSA9PSBv
dGhlci5udW1iZXJWYWx1ZSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4g
bnVtYmVyVmFsdWUgPiBvdGhlci5udW1iZXJWYWx1ZSA/IDEgOiAtMTsKKyAgICBjYXNlIElEQktl
eTo6TWF4VHlwZToKICAgICBjYXNlIElEQktleTo6TWluVHlwZToKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMjcyLDYgKzI3NSw4
IEBAIFN0cmluZyBJREJLZXlEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0
dXJuIFN0cmluZzo6Zm9ybWF0KCJEYXRlIHR5cGUgLSAlZiIsIG51bWJlclZhbHVlKTsKICAgICBj
YXNlIElEQktleTo6TnVtYmVyVHlwZToKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8
bnVtYmVyPiAtICVmIiwgbnVtYmVyVmFsdWUpOworICAgIGNhc2UgSURCS2V5OjpNYXhUeXBlOgor
ICAgICAgICByZXR1cm4gIjxtYXhpbXVtPiI7CiAgICAgY2FzZSBJREJLZXk6Ok1pblR5cGU6CiAg
ICAgICAgIHJldHVybiAiPG1pbmltdW0+IjsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oCmluZGV4IGM1OTYxZDcuLjcwMTRiMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKQEAg
LTQ1LDYgKzQ1LDIyIEBAIHN0cnVjdCBJREJLZXlEYXRhIHsKIAogICAgIElEQktleURhdGEoY29u
c3QgSURCS2V5Kik7CiAKKyAgICBzdGF0aWMgSURCS2V5RGF0YSBtaW5pbXVtKCkKKyAgICB7Cisg
ICAgICAgIElEQktleURhdGEgcmVzdWx0OworICAgICAgICByZXN1bHQudHlwZSA9IElEQktleTo6
TWluVHlwZTsKKyAgICAgICAgcmVzdWx0LmlzTnVsbCA9IGZhbHNlOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKworICAgIHN0YXRpYyBJREJLZXlEYXRhIG1heGltdW0oKQorICAgIHsK
KyAgICAgICAgSURCS2V5RGF0YSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC50eXBlID0gSURCS2V5
OjpNYXhUeXBlOworICAgICAgICByZXN1bHQuaXNOdWxsID0gZmFsc2U7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorCiAgICAgUGFzc1JlZlB0cjxJREJLZXk+IG1heWJlQ3JlYXRlSURC
S2V5KCkgY29uc3Q7CiAKICAgICBJREJLZXlEYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDQ0Mjdm
MTkuLjMzMzllNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmgKQEAgLTkzLDcgKzkzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoaW50NjRfdCk7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOwogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4g
cHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKLSAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5Pj4mLCBjb25z
dCBWZWN0b3I8UmVmUHRyPElEQktleT4+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZm
ZXI+PiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0gLy8gTm90IGltcGxlbWVudGVkLiBDYWxs
YmFjayBzaG91bGQgbm90IHJlYWNoIHRoZSByZW5kZXJlciBzaWRlLgogCiAgICAgLy8gQWN0aXZl
RE9NT2JqZWN0CiAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGlu
Z1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRp
bGl0aWVzLmNwcAppbmRleCA4NzkzMDI5Li4zZDc2YmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMTAxLDYgKzEwMSw3
IEBAIHN0YXRpYyBKU1ZhbHVlIGlkYktleVRvSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgY2FzZSBJREJLZXk6Ok51bWJlclR5cGU6
CiAgICAgICAgIHJldHVybiBqc051bWJlcihrZXktPm51bWJlcigpKTsKICAgICBjYXNlIElEQktl
eTo6TWluVHlwZToKKyAgICBjYXNlIElEQktleTo6TWF4VHlwZToKICAgICBjYXNlIElEQktleTo6
SW52YWxpZFR5cGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzMTJkZGIxLi44ZTA1ZTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTQtMDItMDcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgorCisgICAgICAgIElEQjogU29tZSBNb3ppbGxhIGN1cnNvciBtdXRhdGlvbiB0
ZXN0cyBmYWlsCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjAxMTY4MD4gYW5kIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgzNzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciBhIFNRTGl0ZSBzdGF0ZW1lbnQg
aXMgcHJlcGFyZWQsIHN0ZXBwaW5nIGl0IHdpbGwgbm90IHBpY2sgdXAgYW55IHN1YnNlcXVlbnQg
Y2hhbmdlcworICAgICAgICB0byB0aGUgb2JqZWN0IHN0b3JlLgorCisgICAgICAgIEJ5IGtlZXBp
bmcgdHJhY2sgb2YgdGhlIGN1cnJlbnQgcmVjb3JkIHdl4oCZcmUgbG9va2luZyBhdCBpbiB0aGUg
b2JqZWN0IHN0b3JlIGFuZCBiZWluZyB0b2xkCisgICAgICAgIHRoYXQgdGhlIG9iamVjdCBzdG9y
ZSBjaGFuZ2VkIGl0cyBjb250ZW50cywgd2UgY2FuIHJlc2V0IHRoZSBzdGF0ZW1lbnQgdG8gcGlj
ayB1cCB3aGVyZSBpdAorICAgICAgICBsZWZ0IG9mZiBidXQgd2l0aCB0aGUgbmV3IG9iamVjdCBz
dG9yZSBjb250ZW50cy4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6
cHV0UmVjb3JkSW5CYWNraW5nU3RvcmUpOiBUZWxsIHRoZSBiYWNraW5nIHN0b3JlIHRvIG5vdGlm
eQorICAgICAgICAgIGl0cyBjdXJzb3JzIHRoYXQgdGhlIG9iamVjdCBzdG9yZSBjaGFuZ2VkIGl0
cyByZWNvcmRzLgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmFu
Z2VJbkJhY2tpbmdTdG9yZSk6IERpdHRvLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6Om5vdGlmeUN1cnNvcnNPZkNoYW5nZXMpOiBUZWxsIHRoZSB0cmFuc2FjdGlvbgor
ICAgICAgICAgIHRvIG5vdGlmeSBpdHMgY3Vyc29ycyB0aGF0IHRoZSBvYmplY3Qgc3RvcmUgY2hh
bmdlZCBpdHMgcmVjb3Jkcy4KKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3Nx
bGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oOgorCisgICAgICAgICog
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCVHJhbnNhY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTUUxpdGVJREJUcmFuc2FjdGlvbjo6bm90aWZ5Q3Vyc29yc09m
Q2hhbmdlcyk6IFRlbGwgdGhlIHJlbGV2YW50IGN1cnNvcnMgdGhhdCB0aGVpcgorICAgICAgICAg
IG9iamVjdCBzdG9yZSBjaGFuZ2VkIGl0cyByZWNvcmRzLgorICAgICAgICAqIERhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmg6CisKKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJDdXJzb3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTUUxpdGVJREJDdXJzb3I6OlNRTGl0ZUlEQkN1cnNvcik6CisgICAg
ICAgIChXZWJLaXQ6OmdldEluZGV4U3RhdGVtZW50KTogQWxsIHN0YXRlbWVudHMgbm93IGhhdmUg
YSBsb3dlciBhbmQgdXBwZXIgcmFuZ2UuIEJ5IGRlZmF1bHQgd2UgYmluZAorICAgICAgICAgIElE
QktleTo6TWluaW11bSB0byB0aGUgbG93ZXIgcmFuZ2UgYW5kIElEQktleTo6TWF4aW11bSB0byB0
aGUgdXBwZXIgcmFuZ2UuCisgICAgICAgIChXZWJLaXQ6OmdldE9iamVjdFN0b3JlU3RhdGVtZW50
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlNRTGl0ZUlEQkN1cnNvcjo6ZXN0YWJsaXNoU3Rh
dGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6U1FMaXRlSURCQ3Vyc29yOjpjcmVhdGVTUUxpdGVT
dGF0ZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpTUUxpdGVJREJDdXJzb3I6Om9iamVjdFN0b3Jl
UmVjb3Jkc0NoYW5nZWQpOiBTZXQgdGhlIGZsYWcgaW5kaWNhdGluZyB0aGUgc3RhdGVtZW50Cisg
ICAgICAgICAgbmVlZHMgdG8gYmUgcmVzZXQgYW5kIHJlYm91bmQuCisgICAgICAgIChXZWJLaXQ6
OlNRTGl0ZUlEQkN1cnNvcjo6cmVzZXRBbmRSZWJpbmRTdGF0ZW1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpTUUxpdGVJREJDdXJzb3I6OmJpbmRBcmd1bWVudHMpOiBGYWN0b3JlZCBvdXQgdG8gYmUg
c2hhcmVkIGJldHdlZW4gc3RhdGVtZW50IHByZXBhcmUoKQorICAgICAgICAgIGFuZCBzdGF0ZW1l
bnQgcmVzZXQoKS4KKyAgICAgICAgKFdlYktpdDo6U1FMaXRlSURCQ3Vyc29yOjphZHZhbmNlKToK
KyAgICAgICAgKFdlYktpdDo6U1FMaXRlSURCQ3Vyc29yOjphZHZhbmNlT25jZSk6IElmIHRoZSBz
dGF0ZW1lbnQgbmVlZHMgdG8gYmUgcmVzZXQsIGRvIHNvIGJlZm9yZSBhZHZhbmNpbmcgaXQuCisg
ICAgICAgIChXZWJLaXQ6OlNRTGl0ZUlEQkN1cnNvcjo6aW50ZXJuYWxBZHZhbmNlT25jZSk6IElu
IGEgZmV3IGNhc2VzLCB0ZWxsIGFkdmFuY2VPbmNlIHRoYXQgaXQgbmVlZHMgdG8KKyAgICAgICAg
ICB0cnkgYWdhaW4gYmVjYXVzZSBpdCBpcyBvbiBhIG1pc3NpbmcgcmVjb3JkIG9yIGlzIHJlcGVh
dGluZyBhIHJlY29yZC4KKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9TUUxpdGVJREJDdXJzb3IuaDoKKyAgICAgICAgKFdlYktpdDo6U1FMaXRlSURCQ3Vyc29yOjpv
YmplY3RTdG9yZUlEKToKKworICAgICAgICBNYWtlIHN1cmUgTWF4aW11bSBhbmQgTWluaW11bSBr
ZXlzIGFyZSBuZXZlciBzZW50IGFjcm9zcyBJUEMsIGFzIHRoYXQgZG9lc27igJl0IG1ha2Ugc2Vu
c2U6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8SURCS2V5RGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8SURCS2V5RGF0YT46OmRlY29kZSk6CisKIDIwMTQtMDItMDYgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIElEQjogc3RvcmFnZS9pbmRl
eGVkZGIvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmh0bWwgZmFpbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAKaW5kZXggNjhhNjg1MC4uZWRkNjJhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZS5jcHAKQEAgLTg2Niw2ICs4NjYsOCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpwdXRSZWNvcmRJbkJhY2tpbmdTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IElEQklk
ZQogICAgICAgICB9CiAgICAgfQogCisgICAgbV9iYWNraW5nU3RvcmUtPm5vdGlmeUN1cnNvcnNP
ZkNoYW5nZXModHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTWV0YWRhdGEuaWQpOworCiAgICAgaWYg
KHB1dE1vZGUgIT0gSURCRGF0YWJhc2VCYWNrZW5kOjpDdXJzb3JVcGRhdGUgJiYgb2JqZWN0U3Rv
cmVNZXRhZGF0YS5hdXRvSW5jcmVtZW50ICYmIGtleS50eXBlID09IElEQktleTo6TnVtYmVyVHlw
ZSkgewogICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlLT51cGRhdGVLZXlHZW5lcmF0b3JOdW1i
ZXIodHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTWV0YWRhdGEuaWQsIGtleU51bWJlciwga2V5V2Fz
R2VuZXJhdGVkKSkgewogICAgICAgICAgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5j
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQdXRSZWNvcmRJbkJhY2tpbmdTdG9y
ZSwgcmVxdWVzdElELCBJREJLZXlEYXRhKCksIElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3du
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiSW50ZXJuYWwgYmFja2luZyBzdG9yZSBlcnJvciB1cGRhdGlu
ZyBrZXkgZ2VuZXJhdG9yIikpKTsKQEAgLTEwNDksNiArMTA1MSw4IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmRlbGV0ZVJhbmdlSW5CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBj
b25zdCBJREJJCiAgICAgICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRo
aXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlUmFuZ2VJbkJhY2tpbmdTdG9yZSwgcmVx
dWVzdElELCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
IkZhaWxlZCB0byBnZXQgY291bnQgZnJvbSBiYWNraW5nIHN0b3JlIikpKTsKICAgICB9CiAKKyAg
ICBtX2JhY2tpbmdTdG9yZS0+bm90aWZ5Q3Vyc29yc09mQ2hhbmdlcyh0cmFuc2FjdGlvbklkZW50
aWZpZXIsIG9iamVjdFN0b3JlSUQpOworCiAgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFz
eW5jVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVSYW5nZUluQmFja2lu
Z1N0b3JlLCByZXF1ZXN0SUQsIDAsIFN0cmluZyhTdHJpbmdJbXBsOjplbXB0eSgpKSkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1Vu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKaW5kZXggYzYx
MTA0Yy4uNDBiOGE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmUuaApAQCAtODIsNiArODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG9wZW5D
dXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90
IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJz
b3JEaXJlY3Rpb24sIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgV2ViQ29yZTo6SURC
RGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRh
JiwgaW50NjRfdCYgY3Vyc29ySUQsIFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiwgVmVjdG9yPHVpbnQ4X3Q+JikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZHZhbmNl
Q3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbnQ2NF90IGNv
dW50LCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3Rvcjx1
aW50OF90PiYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJJ
ZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiwg
V2ViQ29yZTo6SURCS2V5RGF0YSYsIFdlYkNvcmU6OklEQktleURhdGEmLCBWZWN0b3I8dWludDhf
dD4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUN1cnNvcnNPZkNoYW5nZXMoY29uc3Qg
SURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SUQpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29y
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NR
TGl0ZUlEQkN1cnNvci5jcHAKaW5kZXggNmRjYjgzNy4uYzdhOGEyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vy
c29yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3Nx
bGl0ZS9TUUxpdGVJREJDdXJzb3IuY3BwCkBAIC01OCw2ICs1OCw5IEBAIFNRTGl0ZUlEQkN1cnNv
cjo6U1FMaXRlSURCQ3Vyc29yKFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29u
c3QgSURCSWRlCiAgICAgLCBtX2luZGV4SUQoaW5kZXhJRCkKICAgICAsIG1fY3Vyc29yRGlyZWN0
aW9uKGN1cnNvckRpcmVjdGlvbikKICAgICAsIG1fa2V5UmFuZ2Uoa2V5UmFuZ2UpCisgICAgLCBt
X2N1cnJlbnRSZWNvcmRJRCgtMSkKKyAgICAsIG1fc3RhdGVtZW50TmVlZHNSZXNldChmYWxzZSkK
KyAgICAsIG1fYm91bmRJRCgwKQogICAgICwgbV9jb21wbGV0ZWQoZmFsc2UpCiAgICAgLCBtX2Vy
cm9yZWQoZmFsc2UpCiB7CkBAIC02OSw0NiArNzIsMzIgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYg
Z2V0SW5kZXhTdGF0ZW1lbnQoYm9vbCBoYXNMb3dlcktleSwgYm9vbCBpc0xvd2VyT3BlbiwgYm9v
bAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0cmluZz4sIGluZGV4U3RhdGVtZW50
cywgKCkpOwogCiAgICAgaWYgKGluZGV4U3RhdGVtZW50cy5pc0VtcHR5KCkpIHsKLSAgICAgICAg
aW5kZXhTdGF0ZW1lbnRzLnJlc2VydmVDYXBhY2l0eSgxOCk7Ci0KLSAgICAgICAgLy8gTm8gbG93
ZXIga2V5IHN0YXRlbWVudHMgKDYpCi0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVND
SUlMaXRlcmFsKCJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRl
eElEID0gPyBPUkRFUiBCWSBrZXk7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5k
KEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUg
aW5kZXhJRCA9ID8gT1JERVIgQlkga2V5IERFU0M7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVu
dHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29y
ZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA8PSBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkg
a2V5OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNF
TEVDVCBrZXksIHZhbHVlIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQgPSA/IEFORCBr
ZXkgPD0gQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleSBERVNDOyIpKTsKLSAgICAgICAgaW5k
ZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00g
SW5kZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQgPSA/IEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkg
T1JERVIgQlkga2V5OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxp
dGVyYWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQg
PSA/IEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0M7IikpOwotCi0g
ICAgICAgIC8vIENsb3NlZCBsb3dlciBrZXkgc3RhdGVtZW50cyAoNikKLSAgICAgICAgaW5kZXhT
dGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00gSW5k
ZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQgPSA/IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIE9S
REVSIEJZIGtleTsiKSk7Ci0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRl
cmFsKCJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRleElEID0g
PyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQzsiKSk7Ci0gICAg
ICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qga2V5LCB2YWx1
ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5ID49IENBU1QoPyBB
UyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7IikpOwotICAg
ICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFs
dWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+PSBDQVNUKD8g
QVMgVEVYVCkgQU5EIGtleSA8PSBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0M7Iikp
OwotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtl
eSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+PSBD
QVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7Iikp
OwotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtl
eSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+PSBD
QVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVT
QzsiKSk7Ci0KLSAgICAgICAgLy8gT3BlbiBsb3dlciBrZXkgc3RhdGVtZW50cyAoNikKLSAgICAg
ICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCBrZXksIHZhbHVl
IEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQgPSA/IEFORCBrZXkgPiBDQVNUKD8gQVMg
VEVYVCkgT1JERVIgQlkga2V5OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChB
U0NJSUxpdGVyYWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIGlu
ZGV4SUQgPSA/IEFORCBrZXkgPiBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0M7Iikp
OwotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtl
eSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+IENB
U1QoPyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7Iikp
OwotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtl
eSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+IENB
U1QoPyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVT
QzsiKSk7Ci0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxF
Q1Qga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQga2V5
ID4gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5
OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVD
VCBrZXksIHZhbHVlIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIGluZGV4SUQgPSA/IEFORCBrZXkg
PiBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkg
REVTQzsiKSk7CisgICAgICAgIGluZGV4U3RhdGVtZW50cy5yZXNlcnZlQ2FwYWNpdHkoOCk7CisK
KyAgICAgICAgLy8gTG93ZXIgbWlzc2luZy9vcGVuLCB1cHBlciBtaXNzaW5nL29wZW4uCisgICAg
ICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtl
eSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+IENB
U1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsiKSk7
CisgICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93
aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtl
eSA+IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtl
eSBERVNDOyIpKTsKKworICAgICAgICAvLyBMb3dlciBtaXNzaW5nL29wZW4sIHVwcGVyIGNsb3Nl
ZC4KKyAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCBy
b3dpZCwga2V5LCB2YWx1ZSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBpbmRleElEID0gPyBBTkQg
a2V5ID4gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPD0gQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZ
IGtleTsiKSk7CisgICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJT
RUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJRCA9
ID8gQU5EIGtleSA+IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBP
UkRFUiBCWSBrZXkgREVTQzsiKSk7CisKKyAgICAgICAgLy8gTG93ZXIgY2xvc2VkLCB1cHBlciBt
aXNzaW5nL29wZW4uCisgICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFs
KCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMgV0hFUkUgaW5kZXhJ
RCA9ID8gQU5EIGtleSA+PSBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8IENBU1QoPyBBUyBURVhU
KSBPUkRFUiBCWSBrZXk7IikpOworICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCgiU0VMRUNUIHJvd2lkLCBrZXksIHZhbHVlIEZST00gSW5kZXhSZWNvcmRzIFdIRVJF
IGluZGV4SUQgPSA/IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPCBDQVNUKD8g
QVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0M7IikpOworCisgICAgICAgIC8vIExvd2VyIGNsb3Nl
ZCwgdXBwZXIgY2xvc2VkLgorICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCgiU0VMRUNUIHJvd2lkLCBrZXksIHZhbHVlIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIGlu
ZGV4SUQgPSA/IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPD0gQ0FTVCg/IEFT
IFRFWFQpIE9SREVSIEJZIGtleTsiKSk7CisgICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQo
QVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUgRlJPTSBJbmRleFJlY29yZHMg
V0hFUkUgaW5kZXhJRCA9ID8gQU5EIGtleSA+PSBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8PSBD
QVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0M7IikpOwogICAgIH0KIAogICAgIHNpemVf
dCBpID0gMDsKIAotICAgIGlmIChoYXNMb3dlcktleSkgewotICAgICAgICBpICs9IDY7Ci0gICAg
ICAgIGlmIChpc0xvd2VyT3BlbikKLSAgICAgICAgICAgIGkgKz0gNjsKLSAgICB9CisgICAgaWYg
KGhhc0xvd2VyS2V5ICYmICFpc0xvd2VyT3BlbikKKyAgICAgICAgaSArPSA0OwogCi0gICAgaWYg
KGhhc1VwcGVyS2V5KSB7CisgICAgaWYgKGhhc1VwcGVyS2V5ICYmICFpc1VwcGVyT3BlbikKICAg
ICAgICAgaSArPSAyOwotICAgICAgICBpZiAoaXNVcHBlck9wZW4pCi0gICAgICAgICAgICBpICs9
IDI7Ci0gICAgfQogCiAgICAgaWYgKGRlc2NlbmRpbmcpCiAgICAgICAgIGkgKz0gMTsKQEAgLTEx
OCwxMDIgKzEwNywxMzMgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgZ2V0SW5kZXhTdGF0ZW1lbnQo
Ym9vbCBoYXNMb3dlcktleSwgYm9vbCBpc0xvd2VyT3BlbiwgYm9vbAogCiBzdGF0aWMgY29uc3Qg
U3RyaW5nJiBnZXRPYmplY3RTdG9yZVN0YXRlbWVudChib29sIGhhc0xvd2VyS2V5LCBib29sIGlz
TG93ZXJPcGVuLCBib29sIGhhc1VwcGVyS2V5LCBib29sIGlzVXBwZXJPcGVuLCBib29sIGRlc2Nl
bmRpbmcpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3RyaW5nPiwgaW5kZXhT
dGF0ZW1lbnRzLCAoKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3RyaW5nPiwg
c3RhdGVtZW50cywgKCkpOwogCi0gICAgaWYgKGluZGV4U3RhdGVtZW50cy5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLnJlc2VydmVDYXBhY2l0eSgxOCk7Ci0KLSAgICAgICAg
Ly8gTm8gbG93ZXIga2V5IHN0YXRlbWVudHMgKDYpCi0gICAgICAgIGluZGV4U3RhdGVtZW50cy5h
cHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9NIFJlY29yZHMgV0hFUkUg
b2JqZWN0U3RvcmVJRCA9ID8gT1JERVIgQlkga2V5OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1l
bnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00gUmVjb3JkcyBX
SEVSRSBvYmplY3RTdG9yZUlEID0gPyBPUkRFUiBCWSBrZXkgREVTQzsiKSk7Ci0gICAgICAgIGlu
ZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9N
IFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA8PSBDQVNUKD8gQVMgVEVY
VCkgT1JERVIgQlkga2V5OyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJ
SUxpdGVyYWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9y
ZUlEID0gPyBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQzsiKSk7
Ci0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qga2V5
LCB2YWx1ZSBGUk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA8IENB
U1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVudHMu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBSZWNvcmRzIFdIRVJF
IG9iamVjdFN0b3JlSUQgPSA/IEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5
IERFU0M7IikpOwotCi0gICAgICAgIC8vIENsb3NlZCBsb3dlciBrZXkgc3RhdGVtZW50cyAoNikK
LSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCBrZXks
IHZhbHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID49IENB
U1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVudHMu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBSZWNvcmRzIFdIRVJF
IG9iamVjdFN0b3JlSUQgPSA/IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtl
eSBERVNDOyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwo
IlNFTEVDVCBrZXksIHZhbHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBB
TkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRF
UiBCWSBrZXk7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/
IEFORCBrZXkgPj0gQ0FTVCg/IEFTIFRFWFQpIEFORCBrZXkgPD0gQ0FTVCg/IEFTIFRFWFQpIE9S
REVSIEJZIGtleSBERVNDOyIpKTsKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJ
SUxpdGVyYWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9y
ZUlEID0gPyBBTkQga2V5ID49IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRF
WFQpIE9SREVSIEJZIGtleTsiKSk7Ci0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQoQVND
SUlMaXRlcmFsKCJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0U3Rv
cmVJRCA9ID8gQU5EIGtleSA+PSBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8IENBU1QoPyBBUyBU
RVhUKSBPUkRFUiBCWSBrZXkgREVTQzsiKSk7Ci0KLSAgICAgICAgLy8gT3BlbiBsb3dlciBrZXkg
c3RhdGVtZW50cyAoNikKLSAgICAgICAgaW5kZXhTdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVy
YWwoIlNFTEVDVCBrZXksIHZhbHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0g
PyBBTkQga2V5ID4gQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsiKSk7Ci0gICAgICAgIGlu
ZGV4U3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9N
IFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBBUyBURVhU
KSBPUkRFUiBCWSBrZXkgREVTQzsiKSk7Ci0gICAgICAgIGluZGV4U3RhdGVtZW50cy5hcHBlbmQo
QVNDSUlMaXRlcmFsKCJTRUxFQ1Qga2V5LCB2YWx1ZSBGUk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0
U3RvcmVJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBB
UyBURVhUKSBPUkRFUiBCWSBrZXk7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVudHMuYXBwZW5k
KEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBSZWNvcmRzIFdIRVJFIG9iamVj
dFN0b3JlSUQgPSA/IEFORCBrZXkgPiBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8PSBDQVNUKD8g
QVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0M7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVudHMu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBSZWNvcmRzIFdIRVJF
IG9iamVjdFN0b3JlSUQgPSA/IEFORCBrZXkgPiBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8IENB
U1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7IikpOwotICAgICAgICBpbmRleFN0YXRlbWVudHMu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIGtleSwgdmFsdWUgRlJPTSBSZWNvcmRzIFdIRVJF
IG9iamVjdFN0b3JlSUQgPSA/IEFORCBrZXkgPiBDQVNUKD8gQVMgVEVYVCkgQU5EIGtleSA8IENB
U1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQzsiKSk7CisgICAgaWYgKHN0YXRlbWVudHMu
aXNFbXB0eSgpKSB7CisgICAgICAgIHN0YXRlbWVudHMucmVzZXJ2ZUNhcGFjaXR5KDgpOworCisg
ICAgICAgIC8vIExvd2VyIG1pc3Npbmcvb3BlbiwgdXBwZXIgbWlzc2luZy9vcGVuLgorICAgICAg
ICBzdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1
ZSBGUk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBB
UyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsiKSk7CisgICAg
ICAgIHN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIHJvd2lkLCBrZXksIHZh
bHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID4gQ0FTVCg/
IEFTIFRFWFQpIEFORCBrZXkgPCBDQVNUKD8gQVMgVEVYVCkgT1JERVIgQlkga2V5IERFU0M7Iikp
OworCisgICAgICAgIC8vIExvd2VyIG1pc3Npbmcvb3BlbiwgdXBwZXIgY2xvc2VkLgorICAgICAg
ICBzdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2YWx1
ZSBGUk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA+IENBU1QoPyBB
UyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXk7IikpOworICAg
ICAgICBzdGF0ZW1lbnRzLmFwcGVuZChBU0NJSUxpdGVyYWwoIlNFTEVDVCByb3dpZCwga2V5LCB2
YWx1ZSBGUk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA+IENBU1Qo
PyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQzsi
KSk7CisKKyAgICAgICAgLy8gTG93ZXIgY2xvc2VkLCB1cHBlciBtaXNzaW5nL29wZW4uCisgICAg
ICAgIHN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIHJvd2lkLCBrZXksIHZh
bHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID49IENBU1Qo
PyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsiKSk7Cisg
ICAgICAgIHN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIHJvd2lkLCBrZXks
IHZhbHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID49IENB
U1QoPyBBUyBURVhUKSBBTkQga2V5IDwgQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleSBERVND
OyIpKTsKKworICAgICAgICAvLyBMb3dlciBjbG9zZWQsIHVwcGVyIGNsb3NlZC4KKyAgICAgICAg
c3RhdGVtZW50cy5hcHBlbmQoQVNDSUlMaXRlcmFsKCJTRUxFQ1Qgcm93aWQsIGtleSwgdmFsdWUg
RlJPTSBSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/IEFORCBrZXkgPj0gQ0FTVCg/IEFT
IFRFWFQpIEFORCBrZXkgPD0gQ0FTVCg/IEFTIFRFWFQpIE9SREVSIEJZIGtleTsiKSk7CisgICAg
ICAgIHN0YXRlbWVudHMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgiU0VMRUNUIHJvd2lkLCBrZXksIHZh
bHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID49IENBU1Qo
PyBBUyBURVhUKSBBTkQga2V5IDw9IENBU1QoPyBBUyBURVhUKSBPUkRFUiBCWSBrZXkgREVTQzsi
KSk7CiAgICAgfQogCiAgICAgc2l6ZV90IGkgPSAwOwogCi0gICAgaWYgKGhhc0xvd2VyS2V5KSB7
Ci0gICAgICAgIGkgKz0gNjsKLSAgICAgICAgaWYgKGlzTG93ZXJPcGVuKQotICAgICAgICAgICAg
aSArPSA2OwotICAgIH0KKyAgICBpZiAoaGFzTG93ZXJLZXkgJiYgIWlzTG93ZXJPcGVuKQorICAg
ICAgICBpICs9IDQ7CiAKLSAgICBpZiAoaGFzVXBwZXJLZXkpIHsKKyAgICBpZiAoaGFzVXBwZXJL
ZXkgJiYgIWlzVXBwZXJPcGVuKQogICAgICAgICBpICs9IDI7Ci0gICAgICAgIGlmIChpc1VwcGVy
T3BlbikKLSAgICAgICAgICAgIGkgKz0gMjsKLSAgICB9CiAKICAgICBpZiAoZGVzY2VuZGluZykK
ICAgICAgICAgaSArPSAxOwogCi0gICAgcmV0dXJuIGluZGV4U3RhdGVtZW50c1tpXTsKKyAgICBy
ZXR1cm4gc3RhdGVtZW50c1tpXTsKIH0KIAogYm9vbCBTUUxpdGVJREJDdXJzb3I6OmVzdGFibGlz
aFN0YXRlbWVudCgpCiB7CisgICAgQVNTRVJUKCFtX3N0YXRlbWVudCk7CiAgICAgU3RyaW5nIHNx
bDsKLSAgICBpbnQ2NF90IGlkOwogCiAgICAgaWYgKG1faW5kZXhJRCAhPSBJREJJbmRleE1ldGFk
YXRhOjpJbnZhbGlkSWQpIHsKICAgICAgICAgc3FsID0gZ2V0SW5kZXhTdGF0ZW1lbnQoIW1fa2V5
UmFuZ2UubG93ZXJLZXkuaXNOdWxsLCBtX2tleVJhbmdlLmxvd2VyT3BlbiwgIW1fa2V5UmFuZ2Uu
dXBwZXJLZXkuaXNOdWxsLCBtX2tleVJhbmdlLnVwcGVyT3BlbiwgbV9jdXJzb3JEaXJlY3Rpb24g
PT0gSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb246OlByZXYgfHwgbV9jdXJzb3JEaXJlY3Rpb24g
PT0gSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb246OlByZXZOb0R1cGxpY2F0ZSk7Ci0gICAgICAg
IGlkID0gbV9pbmRleElEOworICAgICAgICBtX2JvdW5kSUQgPSBtX2luZGV4SUQ7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgc3FsID0gZ2V0T2JqZWN0U3RvcmVTdGF0ZW1lbnQoIW1fa2V5UmFuZ2Uu
bG93ZXJLZXkuaXNOdWxsLCBtX2tleVJhbmdlLmxvd2VyT3BlbiwgIW1fa2V5UmFuZ2UudXBwZXJL
ZXkuaXNOdWxsLCBtX2tleVJhbmdlLnVwcGVyT3BlbiwgbV9jdXJzb3JEaXJlY3Rpb24gPT0gSW5k
ZXhlZERCOjpDdXJzb3JEaXJlY3Rpb246OlByZXYgfHwgbV9jdXJzb3JEaXJlY3Rpb24gPT0gSW5k
ZXhlZERCOjpDdXJzb3JEaXJlY3Rpb246OlByZXZOb0R1cGxpY2F0ZSk7Ci0gICAgICAgIGlkID0g
bV9vYmplY3RTdG9yZUlEOworICAgICAgICBtX2JvdW5kSUQgPSBtX29iamVjdFN0b3JlSUQ7CiAg
ICAgfQogCi0gICAgcmV0dXJuIGNyZWF0ZVNRTGl0ZVN0YXRlbWVudChzcWwsIGlkKTsKKyAgICBt
X2N1cnJlbnRMb3dlcktleSA9IG1fa2V5UmFuZ2UubG93ZXJLZXkuaXNOdWxsID8gSURCS2V5RGF0
YTo6bWluaW11bSgpIDogbV9rZXlSYW5nZS5sb3dlcktleTsKKyAgICBtX2N1cnJlbnRVcHBlcktl
eSA9IG1fa2V5UmFuZ2UudXBwZXJLZXkuaXNOdWxsID8gSURCS2V5RGF0YTo6bWF4aW11bSgpIDog
bV9rZXlSYW5nZS51cHBlcktleTsKKworICAgIHJldHVybiBjcmVhdGVTUUxpdGVTdGF0ZW1lbnQo
c3FsKTsKIH0KIAotYm9vbCBTUUxpdGVJREJDdXJzb3I6OmNyZWF0ZVNRTGl0ZVN0YXRlbWVudChj
b25zdCBTdHJpbmcmIHNxbCwgaW50NjRfdCBpZFRvQmluZCkKK2Jvb2wgU1FMaXRlSURCQ3Vyc29y
OjpjcmVhdGVTUUxpdGVTdGF0ZW1lbnQoY29uc3QgU3RyaW5nJiBzcWwpCiB7Ci0gICAgQVNTRVJU
KG1fdHJhbnNhY3Rpb24tPnNxbGl0ZVRyYW5zYWN0aW9uKCkpOwotICAgIFNRTGl0ZURhdGFiYXNl
JiBkYXRhYmFzZSA9IG1fdHJhbnNhY3Rpb24tPnNxbGl0ZVRyYW5zYWN0aW9uKCktPmRhdGFiYXNl
KCk7Ci0KICAgICBMT0coSURCLCAiQ3JlYXRpbmcgY3Vyc29yIHdpdGggU1FMIHF1ZXJ5OiBcIiVz
XCIiLCBzcWwudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBtX3N0YXRlbWVudCA9IHN0ZDo6bWFrZV91
bmlxdWU8U1FMaXRlU3RhdGVtZW50PihkYXRhYmFzZSwgc3FsKTsKKyAgICBBU1NFUlQoIW1fY3Vy
cmVudExvd2VyS2V5LmlzTnVsbCk7CisgICAgQVNTRVJUKCFtX2N1cnJlbnRVcHBlcktleS5pc051
bGwpOworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5zcWxpdGVUcmFuc2FjdGlvbigpKTsKKwor
ICAgIG1fc3RhdGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxpdGVTdGF0ZW1lbnQ+KG1fdHJh
bnNhY3Rpb24tPnNxbGl0ZVRyYW5zYWN0aW9uKCktPmRhdGFiYXNlKCksIHNxbCk7CiAKLSAgICBp
ZiAobV9zdGF0ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPawotICAgICAgICB8fCBtX3N0
YXRlbWVudC0+YmluZEludDY0KDEsIGlkVG9CaW5kKSAhPSBTUUxSZXN1bHRPaykgewotICAgICAg
ICBMT0dfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgY3Vyc29yIHN0YXRlbWVudCIpOworICAgIGlm
IChtX3N0YXRlbWVudC0+cHJlcGFyZSgpICE9IFNRTFJlc3VsdE9rKSB7CisgICAgICAgIExPR19F
UlJPUigiQ291bGQgbm90IGNyZWF0ZSBjdXJzb3Igc3RhdGVtZW50IChwcmVwYXJlL2lkKSAtICcl
cyciLCBtX3RyYW5zYWN0aW9uLT5zcWxpdGVUcmFuc2FjdGlvbigpLT5kYXRhYmFzZSgpLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGludCBuZXh0
QmluZEFyZ3VtZW50ID0gMjsKKyAgICByZXR1cm4gYmluZEFyZ3VtZW50cygpOworfQogCi0gICAg
aWYgKCFtX2tleVJhbmdlLmxvd2VyS2V5LmlzTnVsbCkgewotICAgICAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBidWZmZXIgPSBzZXJpYWxpemVJREJLZXlEYXRhKG1fa2V5UmFuZ2UubG93ZXJLZXkp
OwotICAgICAgICBpZiAobV9zdGF0ZW1lbnQtPmJpbmRCbG9iKG5leHRCaW5kQXJndW1lbnQrKywg
YnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSAhPSBTUUxSZXN1bHRPaykgewotICAgICAg
ICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIGN1cnNvciBzdGF0ZW1lbnQiKTsKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQordm9pZCBTUUxpdGVJREJDdXJzb3I6
Om9iamVjdFN0b3JlUmVjb3Jkc0NoYW5nZWQoKQoreworICAgIC8vIElmIE9iamVjdFN0b3JlIG9y
IEluZGV4IGNvbnRlbnRzIGNoYW5nZWQsIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHN0YXRlbWVudCBh
bmQgYmluZCBuZXcgcGFyYW1ldGVycyB0byBpdC4KKyAgICAvLyBUaGlzIGlzIHRvIHBpY2sgdXAg
YW55IGNoYW5nZXMgdGhhdCBtaWdodCBleGlzdC4KKworICAgIG1fc3RhdGVtZW50TmVlZHNSZXNl
dCA9IHRydWU7Cit9CisKK3ZvaWQgU1FMaXRlSURCQ3Vyc29yOjpyZXNldEFuZFJlYmluZFN0YXRl
bWVudCgpCit7CisgICAgQVNTRVJUKCFtX2N1cnJlbnRMb3dlcktleS5pc051bGwpOworICAgIEFT
U0VSVCghbV9jdXJyZW50VXBwZXJLZXkuaXNOdWxsKTsKKyAgICBBU1NFUlQobV90cmFuc2FjdGlv
bi0+c3FsaXRlVHJhbnNhY3Rpb24oKSk7CisgICAgQVNTRVJUKG1fc3RhdGVtZW50KTsKKyAgICBB
U1NFUlQobV9zdGF0ZW1lbnROZWVkc1Jlc2V0KTsKKworICAgIG1fc3RhdGVtZW50TmVlZHNSZXNl
dCA9IGZhbHNlOworCisgICAgLy8gSWYgdGhpcyBjdXJzb3IgbmV2ZXIgZmV0Y2hlZCBhbnkgcmVj
b3Jkcywgd2UgZG9uJ3QgbmVlZCB0byByZXNldCB0aGUgc3RhdGVtZW50LgorICAgIGlmIChtX2N1
cnJlbnRLZXkuaXNOdWxsKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBPdGhlcndpc2UgdXBk
YXRlIHRoZSBsb3dlciBrZXkgb3IgdXBwZXIga2V5IHVzZWQgZm9yIHRoZSBjdXJzb3IgcmFuZ2Uu
CisgICAgLy8gVGhpcyBpcyBzbyB0aGUgY3Vyc29yIGNhbiBwaWNrIHVwIHdoZXJlIHdlIGxlZnQg
b2ZmLgorICAgIGlmIChtX2N1cnNvckRpcmVjdGlvbiA9PSBJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbjo6TmV4dCB8fCBtX2N1cnNvckRpcmVjdGlvbiA9PSBJbmRleGVkREI6OkN1cnNvckRpcmVj
dGlvbjo6TmV4dE5vRHVwbGljYXRlKQorICAgICAgICBtX2N1cnJlbnRMb3dlcktleSA9IG1fY3Vy
cmVudEtleTsKKyAgICBlbHNlCisgICAgICAgIG1fY3VycmVudFVwcGVyS2V5ID0gbV9jdXJyZW50
S2V5OworCisgICAgaWYgKG1fc3RhdGVtZW50LT5yZXNldCgpICE9IFNRTFJlc3VsdE9rKSB7Cisg
ICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHJlc2V0IGN1cnNvciBzdGF0ZW1lbnQgdG8gcmVz
cG9uZCB0byBvYmplY3Qgc3RvcmUgY2hhbmdlcyIpOworICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIGlmICghbV9rZXlSYW5nZS51cHBlcktleS5pc051bGwpIHsKLSAgICAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gYnVmZmVyID0gc2VyaWFsaXplSURCS2V5RGF0YShtX2tleVJhbmdlLnVwcGVy
S2V5KTsKLSAgICAgICAgaWYgKG1fc3RhdGVtZW50LT5iaW5kQmxvYihuZXh0QmluZEFyZ3VtZW50
LCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpICE9IFNRTFJlc3VsdE9rKSB7Ci0gICAg
ICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBjcmVhdGUgY3Vyc29yIHN0YXRlbWVudCIpOwot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CisKKyAgICBiaW5kQXJndW1lbnRz
KCk7Cit9CisKK2Jvb2wgU1FMaXRlSURCQ3Vyc29yOjpiaW5kQXJndW1lbnRzKCkKK3sKKyAgICBp
ZiAobV9zdGF0ZW1lbnQtPmJpbmRJbnQ2NCgxLCBtX2JvdW5kSUQpICE9IFNRTFJlc3VsdE9rKSB7
CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGJpbmQgaWQgYXJndW1lbnQgKGJvdW5kIElE
KSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gYnVmZmVyID0gc2VyaWFsaXplSURCS2V5RGF0YShtX2N1cnJlbnRMb3dlcktleSk7Cisg
ICAgaWYgKG1fc3RhdGVtZW50LT5iaW5kQmxvYigyLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5z
aXplKCkpICE9IFNRTFJlc3VsdE9rKSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNy
ZWF0ZSBjdXJzb3Igc3RhdGVtZW50IChsb3dlciBrZXkpIik7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICBidWZmZXIgPSBzZXJpYWxpemVJREJLZXlEYXRhKG1fY3VycmVudFVw
cGVyS2V5KTsKKyAgICBpZiAobV9zdGF0ZW1lbnQtPmJpbmRCbG9iKDMsIGJ1ZmZlci0+ZGF0YSgp
LCBidWZmZXItPnNpemUoKSkgIT0gU1FMUmVzdWx0T2spIHsKKyAgICAgICAgTE9HX0VSUk9SKCJD
b3VsZCBub3QgY3JlYXRlIGN1cnNvciBzdGF0ZW1lbnQgKHVwcGVyIGtleSkiKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjI3LDExICsyNDcs
MTAgQEAgYm9vbCBTUUxpdGVJREJDdXJzb3I6OmFkdmFuY2UodWludDY0X3QgY291bnQpCiAgICAg
ICAgIGlmICghaXNVbmlxdWUpIHsKICAgICAgICAgICAgIGlmICghYWR2YW5jZU9uY2UoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghYWR2YW5jZVVuaXF1ZSgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotCi0gICAgICAgIGlmICghYWR2YW5jZVVu
aXF1ZSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHJldHVybiB0
cnVlOwpAQCAtMjUzLDE1ICsyNzIsMjcgQEAgYm9vbCBTUUxpdGVJREJDdXJzb3I6OmFkdmFuY2VV
bmlxdWUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotCiBib29sIFNRTGl0ZUlEQkN1cnNvcjo6
YWR2YW5jZU9uY2UoKQogeworICAgIGlmIChtX3N0YXRlbWVudE5lZWRzUmVzZXQpCisgICAgICAg
IHJlc2V0QW5kUmViaW5kU3RhdGVtZW50KCk7CisKKyAgICBBZHZhbmNlUmVzdWx0IHJlc3VsdDsK
KyAgICBkbyB7CisgICAgICAgIHJlc3VsdCA9IGludGVybmFsQWR2YW5jZU9uY2UoKTsKKyAgICB9
IHdoaWxlIChyZXN1bHQgPT0gQWR2YW5jZVJlc3VsdDo6U2hvdWxkQWR2YW5jZUFnYWluKTsKKwor
ICAgIHJldHVybiByZXN1bHQgPT0gQWR2YW5jZVJlc3VsdDo6U3VjY2VzczsKK30KKworU1FMaXRl
SURCQ3Vyc29yOjpBZHZhbmNlUmVzdWx0IFNRTGl0ZUlEQkN1cnNvcjo6aW50ZXJuYWxBZHZhbmNl
T25jZSgpCit7CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPnNxbGl0ZVRyYW5zYWN0aW9uKCkp
OwogICAgIEFTU0VSVChtX3N0YXRlbWVudCk7CiAKICAgICBpZiAobV9jb21wbGV0ZWQpIHsKICAg
ICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0IHRvIGFkdmFuY2UgYSBjb21wbGV0ZWQgY3Vyc29yIik7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIEFkdmFuY2VSZXN1bHQ6OkZh
aWx1cmU7CiAgICAgfQogCiAgICAgaW50IHJlc3VsdCA9IG1fc3RhdGVtZW50LT5zdGVwKCk7CkBA
IC0yNzMsMjcgKzMwNCwzNyBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZU9uY2UoKQog
ICAgICAgICBtX2N1cnJlbnRQcmltYXJ5S2V5ID0gSURCS2V5RGF0YSgpOwogICAgICAgICBtX2N1
cnJlbnRWYWx1ZUJ1ZmZlci5jbGVhcigpOwogCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICByZXR1cm4gQWR2YW5jZVJlc3VsdDo6U3VjY2VzczsKICAgICB9CiAKICAgICBpZiAocmVzdWx0
ICE9IFNRTFJlc3VsdFJvdykgewogICAgICAgICBMT0dfRVJST1IoIkVycm9yIGFkdmFuY2luZyBj
dXJzb3IgLSAoJWkpICVzIiwgcmVzdWx0LCBtX3RyYW5zYWN0aW9uLT5zcWxpdGVUcmFuc2FjdGlv
bigpLT5kYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgbV9jb21wbGV0ZWQgPSB0
cnVlOwogICAgICAgICBtX2Vycm9yZWQgPSB0cnVlOwotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJldHVybiBBZHZhbmNlUmVzdWx0OjpGYWlsdXJlOwogICAgIH0KIAorICAgIGludDY0
X3QgcmVjb3JkSUQgPSBtX3N0YXRlbWVudC0+Z2V0Q29sdW1uSW50NjQoMCk7CisKKyAgICAvLyBJ
ZiB0aGUgcmVjb3JkSUQgb2YgdGhlIHJlY29yZCBqdXN0IGZldGNoZWQgaXMgdGhlIHNhbWUgYXMg
dGhlIGN1cnJlbnQgcmVjb3JkIElECisgICAgLy8gdGhlbiB0aGlzIHN0YXRlbWVudCBtdXN0IGhh
dmUgYmVlbiByZS1wcmVwYXJlZCBpbiByZXNwb25zZSB0byBhbiBvYmplY3Qgc3RvcmUgY2hhbmdl
LgorICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcmUtdXNlIHRoZSBjdXJyZW50IHJlY29yZCBzbyB3
ZSdsbCBtb3ZlIG9uIHRvIHRoZSBuZXh0IG9uZS4KKyAgICBpZiAocmVjb3JkSUQgPT0gbV9jdXJy
ZW50UmVjb3JkSUQpCisgICAgICAgIHJldHVybiBBZHZhbmNlUmVzdWx0OjpTaG91bGRBZHZhbmNl
QWdhaW47CisKKyAgICBtX2N1cnJlbnRSZWNvcmRJRCA9IHJlY29yZElEOworCiAgICAgVmVjdG9y
PHVpbnQ4X3Q+IGtleURhdGE7Ci0gICAgbV9zdGF0ZW1lbnQtPmdldENvbHVtbkJsb2JBc1ZlY3Rv
cigwLCBrZXlEYXRhKTsKKyAgICBtX3N0YXRlbWVudC0+Z2V0Q29sdW1uQmxvYkFzVmVjdG9yKDEs
IGtleURhdGEpOwogCiAgICAgaWYgKCFkZXNlcmlhbGl6ZUlEQktleURhdGEoa2V5RGF0YS5kYXRh
KCksIGtleURhdGEuc2l6ZSgpLCBtX2N1cnJlbnRLZXkpKSB7CiAgICAgICAgIExPR19FUlJPUigi
VW5hYmxlIHRvIGRlc2VyaWFsaXplIGtleSBkYXRhIGZyb20gZGF0YWJhc2Ugd2hpbGUgYWR2YW5j
aW5nIGN1cnNvciIpOwogICAgICAgICBtX2NvbXBsZXRlZCA9IHRydWU7CiAgICAgICAgIG1fZXJy
b3JlZCA9IHRydWU7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIEFkdmFu
Y2VSZXN1bHQ6OkZhaWx1cmU7CiAgICAgfQogCi0gICAgbV9zdGF0ZW1lbnQtPmdldENvbHVtbkJs
b2JBc1ZlY3RvcigxLCBrZXlEYXRhKTsKKyAgICBtX3N0YXRlbWVudC0+Z2V0Q29sdW1uQmxvYkFz
VmVjdG9yKDIsIGtleURhdGEpOwogICAgIG1fY3VycmVudFZhbHVlQnVmZmVyID0ga2V5RGF0YTsK
IAogICAgIGlmIChtX2luZGV4SUQgIT0gSURCSW5kZXhNZXRhZGF0YTo6SW52YWxpZElkKSB7CkBA
IC0zMDEsMjUgKzM0MiwzOCBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZU9uY2UoKQog
ICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gZGVzZXJpYWxpemUgdmFsdWUgZGF0YSBm
cm9tIGRhdGFiYXNlIHdoaWxlIGFkdmFuY2luZyBpbmRleCBjdXJzb3IiKTsKICAgICAgICAgICAg
IG1fY29tcGxldGVkID0gdHJ1ZTsKICAgICAgICAgICAgIG1fZXJyb3JlZCA9IHRydWU7Ci0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gQWR2YW5jZVJlc3VsdDo6
RmFpbHVyZTsKICAgICAgICAgfQogCiAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBvYmplY3RTdG9y
ZVN0YXRlbWVudCgqbV9zdGF0ZW1lbnQtPmRhdGFiYXNlKCksICJTRUxFQ1QgdmFsdWUgRlJPTSBS
ZWNvcmRzIFdIRVJFIGtleSA9IENBU1QoPyBBUyBURVhUKSBhbmQgb2JqZWN0U3RvcmVJRCA9ID87
Iik7CiAKICAgICAgICAgaWYgKG9iamVjdFN0b3JlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxS
ZXN1bHRPawogICAgICAgICAgICAgfHwgb2JqZWN0U3RvcmVTdGF0ZW1lbnQuYmluZEJsb2IoMSwg
bV9jdXJyZW50VmFsdWVCdWZmZXIuZGF0YSgpLCBtX2N1cnJlbnRWYWx1ZUJ1ZmZlci5zaXplKCkp
ICE9IFNRTFJlc3VsdE9rCi0gICAgICAgICAgICB8fCBvYmplY3RTdG9yZVN0YXRlbWVudC5iaW5k
SW50NjQoMiwgbV9vYmplY3RTdG9yZUlEKSAhPSBTUUxSZXN1bHRPawotICAgICAgICAgICAgfHwg
b2JqZWN0U3RvcmVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTFJlc3VsdFJvdykgewotICAgICAgICAg
ICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIGluZGV4IGN1cnNvciBzdGF0ZW1lbnQgaW50
byBvYmplY3Qgc3RvcmUgcmVjb3JkcyIpOworICAgICAgICAgICAgfHwgb2JqZWN0U3RvcmVTdGF0
ZW1lbnQuYmluZEludDY0KDIsIG1fb2JqZWN0U3RvcmVJRCkgIT0gU1FMUmVzdWx0T2spIHsKKyAg
ICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNyZWF0ZSBpbmRleCBjdXJzb3Igc3RhdGVt
ZW50IGludG8gb2JqZWN0IHN0b3JlIHJlY29yZHMgKCVpKSAnJXMnIiwgbV9zdGF0ZW1lbnQtPmRh
dGFiYXNlKCktPmxhc3RFcnJvcigpLCBtX3N0YXRlbWVudC0+ZGF0YWJhc2UoKS0+bGFzdEVycm9y
TXNnKCkpOwogICAgICAgICAgICAgbV9jb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICAgICAgbV9l
cnJvcmVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJl
dHVybiBBZHZhbmNlUmVzdWx0OjpGYWlsdXJlOwogICAgICAgICB9CiAKLSAgICAgICAgb2JqZWN0
U3RvcmVTdGF0ZW1lbnQuZ2V0Q29sdW1uQmxvYkFzVmVjdG9yKDAsIG1fY3VycmVudFZhbHVlQnVm
ZmVyKTsKKyAgICAgICAgaW50IHJlc3VsdCA9IG9iamVjdFN0b3JlU3RhdGVtZW50LnN0ZXAoKTsK
KworICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3VsdFJvdykKKyAgICAgICAgICAgIG9iamVj
dFN0b3JlU3RhdGVtZW50LmdldENvbHVtbkJsb2JBc1ZlY3RvcigwLCBtX2N1cnJlbnRWYWx1ZUJ1
ZmZlcik7CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHREb25lKSB7CisgICAg
ICAgICAgICAvLyBUaGlzIGluZGljYXRlcyB0aGF0IHRoZSByZWNvcmQgd2UncmUgdHJ5aW5nIHRv
IHJldHJpZXZlIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgb2JqZWN0IHN0b3JlLgorICAgICAg
ICAgICAgLy8gU2tpcCBvdmVyIGl0LgorICAgICAgICAgICAgcmV0dXJuIEFkdmFuY2VSZXN1bHQ6
OlNob3VsZEFkdmFuY2VBZ2FpbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExPR19F
UlJPUigiQ291bGQgbm90IHN0ZXAgaW5kZXggY3Vyc29yIHN0YXRlbWVudCBpbnRvIG9iamVjdCBz
dG9yZSByZWNvcmRzICglaSkgJyVzJyIsIG1fc3RhdGVtZW50LT5kYXRhYmFzZSgpLT5sYXN0RXJy
b3IoKSwgbV9zdGF0ZW1lbnQtPmRhdGFiYXNlKCktPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
ICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fZXJyb3JlZCA9IHRydWU7Cisg
ICAgICAgICAgICByZXR1cm4gQWR2YW5jZVJlc3VsdDo6RmFpbHVyZTsKKworICAgICAgICB9CiAg
ICAgfQogCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIEFkdmFuY2VSZXN1bHQ6OlN1Y2Nl
c3M7CiB9CiAKIGJvb2wgU1FMaXRlSURCQ3Vyc29yOjppdGVyYXRlKGNvbnN0IFdlYkNvcmU6OklE
QktleURhdGEmIHRhcmdldEtleSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5oIGIvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmgKaW5k
ZXggODFiNDM3Zi4uYzg2YjVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmgKKysrIGIvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmgK
QEAgLTU2LDYgKzU2LDggQEAgcHVibGljOgogICAgIGNvbnN0IElEQklkZW50aWZpZXImIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2N1cnNvcklkZW50aWZpZXI7IH0KICAgICBTUUxpdGVJ
REJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9u
OyB9CiAKKyAgICBpbnQ2NF90IG9iamVjdFN0b3JlSUQoKSBjb25zdCB7IHJldHVybiBtX29iamVj
dFN0b3JlSUQ7IH0KKwogICAgIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmIGN1cnJlbnRLZXko
KSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRLZXk7IH0KICAgICBjb25zdCBXZWJDb3JlOjpJREJL
ZXlEYXRhJiBjdXJyZW50UHJpbWFyeUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFByaW1h
cnlLZXk7IH0KICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGN1cnJlbnRWYWx1ZUJ1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFZhbHVlQnVmZmVyOyB9CkBAIC02NSwxMiArNjcsMjQg
QEAgcHVibGljOgogCiAgICAgYm9vbCBkaWRFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3Jl
ZDsgfQogCisgICAgdm9pZCBvYmplY3RTdG9yZVJlY29yZHNDaGFuZ2VkKCk7CisKIHByaXZhdGU6
CiAgICAgU1FMaXRlSURCQ3Vyc29yKFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiwgY29uc3QgSURCSWRl
bnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90
IGluZGV4SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBXZWJDb3JlOjpJ
bmRleGVkREI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5
cGUsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpOwogCiAgICAgYm9vbCBlc3RhYmxp
c2hTdGF0ZW1lbnQoKTsKLSAgICBib29sIGNyZWF0ZVNRTGl0ZVN0YXRlbWVudChjb25zdCBTdHJp
bmcmIHNxbCwgaW50NjRfdCBpZFRvQmluZCk7CisgICAgYm9vbCBjcmVhdGVTUUxpdGVTdGF0ZW1l
bnQoY29uc3QgU3RyaW5nJiBzcWwpOworICAgIGJvb2wgYmluZEFyZ3VtZW50cygpOworCisgICAg
dm9pZCByZXNldEFuZFJlYmluZFN0YXRlbWVudCgpOwogCisgICAgZW51bSBjbGFzcyBBZHZhbmNl
UmVzdWx0IHsKKyAgICAgICAgU3VjY2VzcywKKyAgICAgICAgRmFpbHVyZSwKKyAgICAgICAgU2hv
dWxkQWR2YW5jZUFnYWluCisgICAgfTsKKworICAgIEFkdmFuY2VSZXN1bHQgaW50ZXJuYWxBZHZh
bmNlT25jZSgpOwogICAgIGJvb2wgYWR2YW5jZU9uY2UoKTsKICAgICBib29sIGFkdmFuY2VVbmlx
dWUoKTsKIApAQCAtODEsMTEgKzk1LDE3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24gbV9jdXJzb3JEaXJlY3Rpb247CiAgICAgV2ViQ29yZTo6SURC
S2V5UmFuZ2VEYXRhIG1fa2V5UmFuZ2U7CiAKKyAgICBXZWJDb3JlOjpJREJLZXlEYXRhIG1fY3Vy
cmVudExvd2VyS2V5OworICAgIFdlYkNvcmU6OklEQktleURhdGEgbV9jdXJyZW50VXBwZXJLZXk7
CisKKyAgICBpbnQ2NF90IG1fY3VycmVudFJlY29yZElEOwogICAgIFdlYkNvcmU6OklEQktleURh
dGEgbV9jdXJyZW50S2V5OwogICAgIFdlYkNvcmU6OklEQktleURhdGEgbV9jdXJyZW50UHJpbWFy
eUtleTsKICAgICBWZWN0b3I8dWludDhfdD4gbV9jdXJyZW50VmFsdWVCdWZmZXI7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50PiBtX3N0YXRlbWVudDsKKyAg
ICBib29sIG1fc3RhdGVtZW50TmVlZHNSZXNldDsKKyAgICBpbnQ2NF90IG1fYm91bmRJRDsKIAog
ICAgIGJvb2wgbV9jb21wbGV0ZWQ7CiAgICAgYm9vbCBtX2Vycm9yZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJU
cmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L3NxbGl0ZS9TUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggNzg2ZGNkNi4uOTI5MmZjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxp
dGUvU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcApAQCAtMTIz
LDYgKzEyMywxNCBAQCB2b2lkIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpjbG9zZUN1cnNvcihTUUxp
dGVJREJDdXJzb3ImIGN1cnNvcikKICAgICBtX2N1cnNvcnMucmVtb3ZlKGN1cnNvci5pZGVudGlm
aWVyKCkpOwogfQogCit2b2lkIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpub3RpZnlDdXJzb3JzT2ZD
aGFuZ2VzKGludDY0X3Qgb2JqZWN0U3RvcmVJRCkKK3sKKyAgICBmb3IgKGF1dG8mIGkgOiBtX2N1
cnNvcnMpIHsKKyAgICAgICAgaWYgKGkudmFsdWUtPm9iamVjdFN0b3JlSUQoKSA9PSBvYmplY3RT
dG9yZUlEKQorICAgICAgICAgICAgaS52YWx1ZS0+b2JqZWN0U3RvcmVSZWNvcmRzQ2hhbmdlZCgp
OworICAgIH0KK30KKwogdm9pZCBTUUxpdGVJREJUcmFuc2FjdGlvbjo6Y2xlYXJDdXJzb3JzKCkK
IHsKICAgICBmb3IgKGF1dG8mIGN1cnNvciA6IG1fY3Vyc29ycy52YWx1ZXMoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0
ZUlEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL3NxbGl0ZS9TUUxpdGVJREJUcmFuc2FjdGlvbi5oCmluZGV4IDY1Mzg0NDMuLjNhOTFlMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3Fs
aXRlL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCVHJhbnNhY3Rpb24uaApAQCAtNzMsNiAr
NzMsNyBAQCBwdWJsaWM6CiAgICAgU1FMaXRlSURCQ3Vyc29yKiBvcGVuQ3Vyc29yKGludDY0X3Qg
b2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRleElELCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNv
ckRpcmVjdGlvbiwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlLCBXZWJDb3JlOjpJREJE
YXRhYmFzZUJhY2tlbmQ6OlRhc2tUeXBlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEm
KTsKIAogICAgIHZvaWQgY2xvc2VDdXJzb3IoU1FMaXRlSURCQ3Vyc29yJik7CisgICAgdm9pZCBu
b3RpZnlDdXJzb3JzT2ZDaGFuZ2VzKGludDY0X3Qgb2JqZWN0U3RvcmVJRCk7CiAKICAgICBXZWJD
b3JlOjpJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9t
b2RlOyB9CiAgICAgYm9vbCBpblByb2dyZXNzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAK
aW5kZXggMjBlNmRhMi4uMWQxNjRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
c3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApAQCAtMTI2Nyw2
ICsxMjY3LDIxIEBAIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Oml0
ZXJhdGVDdXJzb3IoY29uc3QgSURCSWRlbnRpZmllciYgY3VyCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6Om5vdGlmeUN1cnNv
cnNPZkNoYW5nZXMoY29uc3QgSURCSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBp
bnQ2NF90IG9iamVjdFN0b3JlSUQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cisg
ICAgQVNTRVJUKG1fc3FsaXRlREIpOworICAgIEFTU0VSVChtX3NxbGl0ZURCLT5pc09wZW4oKSk7
CisKKyAgICBTUUxpdGVJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9u
cy5nZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uIHx8ICF0
cmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0
byBub3RpZnkgY3Vyc29ycyBvZiBjaGFuZ2VzIGluIGRhdGFiYXNlIHdpdGhvdXQgYW4gZXN0YWJs
aXNoZWQsIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICB0cmFuc2FjdGlvbi0+bm90aWZ5Q3Vyc29yc09mQ2hhbmdlcyhvYmplY3RTdG9yZUlE
KTsKK30KKwogaW50IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjppZGJLZXlD
b2xsYXRlKGludCBhTGVuZ3RoLCBjb25zdCB2b2lkKiBhQnVmZmVyLCBpbnQgYkxlbmd0aCwgY29u
c3Qgdm9pZCogYkJ1ZmZlcikKIHsKICAgICBJREJLZXlEYXRhIGEsIGI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUu
aAppbmRleCBhZWNjMTA2Li45NDQxNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9y
ZVNRTGl0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
c3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmgKQEAgLTkxLDYgKzkx
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBvcGVuQ3Vyc29yKGNvbnN0IElEQklkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2
NF90IGluZGV4SUQsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uLCBXZWJDb3Jl
OjpJbmRleGVkREI6OkN1cnNvclR5cGUsIFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6VGFz
a1R5cGUsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYsIGludDY0X3QmIGN1cnNvcklE
LCBXZWJDb3JlOjpJREJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3Rvcjx1aW50
OF90PiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBhZHZhbmNlQ3Vyc29yKGNvbnN0IElE
QklkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIHVpbnQ2NF90IGNvdW50LCBXZWJDb3JlOjpJ
REJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3Rvcjx1aW50OF90PiYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQklkZW50aWZpZXIm
IGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBXZWJDb3JlOjpJ
REJLZXlEYXRhJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYsIFZlY3Rvcjx1aW50OF90PiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDdXJzb3JzT2ZDaGFuZ2VzKGNvbnN0IElEQklk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlEKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgdW5yZWdpc3RlckN1cnNvcihTUUxpdGVJREJDdXJzb3IqKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCBmZDUzYjBjLi41NTkyY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTcyNCw3ICsxNzI0LDEwIEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxJREJLZXlEYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgSURCS2V5RGF0CiAgICAgY2FzZSBJREJLZXk6Ok51bWJlclR5cGU6CiAgICAgICAgIGVuY29k
ZXIgPDwga2V5RGF0YS5udW1iZXJWYWx1ZTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJREJL
ZXk6Ok1heFR5cGU6CiAgICAgY2FzZSBJREJLZXk6Ok1pblR5cGU6CisgICAgICAgIC8vIE1heFR5
cGUgYW5kIE1pblR5cGUgYXJlIG9ubHkgdXNlZCBmb3IgY29tcGFyaXNvbiB0byBvdGhlciBrZXlz
LgorICAgICAgICAvLyBUaGV5IHNob3VsZCBuZXZlciBiZSBzZW50IGFjcm9zcyB0aGUgd2lyZS4K
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAg
LTE3NTcsNyArMTc2MCwxMCBAQCBib29sIEFyZ3VtZW50Q29kZXI8SURCS2V5RGF0YT46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEmIGtleQogICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGtleURhdGEubnVtYmVyVmFsdWUpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIElEQktleTo6TWF4VHlwZToKICAgICBj
YXNlIElEQktleTo6TWluVHlwZToKKyAgICAgICAgLy8gTWF4VHlwZSBhbmQgTWluVHlwZSBhcmUg
b25seSB1c2VkIGZvciBjb21wYXJpc29uIHRvIG90aGVyIGtleXMuCisgICAgICAgIC8vIFRoZXkg
c2hvdWxkIG5ldmVyIGJlIHNlbnQgYWNyb3NzIHRoZSB3aXJlLgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
</data>
<flag name="review"
          id="247547"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>