<?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>82490</bug_id>
          
          <creation_ts>2012-03-28 11:19:22 -0700</creation_ts>
          <short_desc>Split WebKitCSSKeyframeRule into internal and CSSOM types</short_desc>
          <delta_ts>2012-04-11 20:58:41 -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>CSS</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>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>590179</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-28 11:19:22 -0700</bug_when>
    <thetext>WebKitCSSKeyframeRule is a CSSOM type and should not be used internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590384</commentid>
    <comment_count>1</comment_count>
      <attachid>134388</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-28 13:54:08 -0700</bug_when>
    <thetext>Created attachment 134388
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590393</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-28 13:57:41 -0700</bug_when>
    <thetext>Attachment 134388 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/css/CSSStyleSelector.cpp:1632:  Local variables should never be PassRefPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590429</commentid>
    <comment_count>3</comment_count>
      <attachid>134388</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-28 14:21:43 -0700</bug_when>
    <thetext>Comment on attachment 134388
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=134388&amp;action=review

&gt; Source/WebCore/css/WebKitCSSKeyframeRule.cpp:49
&gt; +        

Oops.

&gt; Source/WebCore/css/WebKitCSSKeyframeRule.cpp:-81
&gt; -

Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600857</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-11 20:58:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/112516</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134388</attachid>
            <date>2012-03-28 13:54:08 -0700</date>
            <delta_ts>2012-03-29 03:05:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>keyframe-rule-3.patch</filename>
            <type>text/plain</type>
            <size>29977</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjQyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk3IEBACisyMDEyLTAzLTI4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTcGxpdCBXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUgaW50byBpbnRlcm5hbCBhbmQgQ1NTT00gdHlwZXMgCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjQ5MCAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUgaXMg
YSBDU1NPTSB0eXBlIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgaW50ZXJuYWxseS4KKyAgICAgICAg
CisgICAgICAgIC0gQWRkIFN0eWxlS2V5ZnJhbWUgYXMgdGhlIGludGVybmFsIGRhdGEgc3RydWN0
dXJlIGZvciBrZXlmcmFtZXMuCisgICAgICAgIC0gV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIGJlY29t
ZXMgYSB3cmFwcGVyIGZvciBTdHlsZUtleWZyYW1lLgorICAgICAgICAtIFVzZSBTdHlsZUtleWZy
YW1lIGludGVybmFsbHkgc28gV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlcyBhcmUgY3JlYXRlZCBvbiBD
U1NPTSBhY2Nlc3Mgb25seS4KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAg
IAorICAgICAgICAgICAgVXNlIFN0eWxlS2V5ZnJhbWVzIGluc3RlYWQgb2YgV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlcy4KKyAgICAgICAgCisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5oOgorICAg
ICAgICAoQ1NTTWVkaWFSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6bGVu
Z3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6aXRlbSk6CisgICAgICAgIAor
ICAgICAgICAgICAgQWRhcHQgdG8gTGl2ZUNTU1J1bGVMaXN0IGNoYW5nZXMuCisgICAgICAgIAor
ICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZUtleWZyYW1lUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0
ZUtleWZyYW1lKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6ICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoQ1NTUGFyc2VyKToKKyAgICAgICAgCisgICAgICAgICAgICBD
b25zdHJ1Y3QgU3R5bGVLZXlmcmFtZXMuCisgICAgICAgIAorICAgICAgICAqIGNzcy9DU1NSdWxl
TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6TGl2ZUNTU1J1bGVMaXN0OjpsZW5ndGgpOgorICAg
ICAgICAoV2ViQ29yZTo6TGl2ZUNTU1J1bGVMaXN0OjppdGVtKToKKworICAgICAgICAgICAgTWFr
ZSBMaXZlQ1NTUnVsZUxpc3QgY2FsbCBydWxlIGl0ZW0oKS9sZW5ndGgoKSB0byBhdm9pZCBhY2Nl
c3NvciBkdXBsaWNhdGlvbi4KKyAgICAKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdS
dWxlc0Zvckxpc3QpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmg6CisgICAgICAg
IChDU1NTdHlsZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmNwcDoKKyAgICAgICAgCisgICAgICAgICAgICBVc2UgU3R5bGVLZXlmcmFtZS4KKyAgICAgICAg
ICAgIE1ha2UgMCUgYW5kIDEwMCUga2V5ZnJhbWVzIHN0YXRpYy4KKyAgICAgICAgCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlS2V5ZnJhbWU6OnNldFByb3BlcnRp
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVLZXlmcmFtZTo6cGFyc2VLZXlTdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVLZXlmcmFtZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6OldlYktpdENTU0tleWZyYW1lUnVsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6On5XZWJLaXRDU1NLZXlmcmFtZVJ1
bGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlOjpzdHlsZSk6Cisg
ICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUtleWZyYW1lOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVLZXlmcmFtZTo6a2V5VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUtl
eWZyYW1lOjpzZXRLZXlUZXh0KToKKyAgICAgICAgKFN0eWxlS2V5ZnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVLZXlmcmFtZTo6cHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZUtleWZyYW1lOjpTdHlsZUtleWZyYW1lKToKKyAgICAgICAgKFdlYktpdENTU0tleWZyYW1l
UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6OmtleVRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlOjpzZXRLZXlUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0tleWZyYW1lUnVsZTo6Y3NzVGV4dCk6CisgICAg
ICAgIAorICAgICAgICAgICAgU3BsaXQgdG8gaW50ZXJuYWwgYW5kIENTU09NIHdyYXBwZXIgdHlw
ZS4gVGhlIHdyYXBwZXIgcmVmcyBTdHlsZUtleWZyYW1lLiAKKyAgICAgICAgCisgICAgICAgICog
Y3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZTo6fldlYktpdENTU0tleWZyYW1lc1J1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6cGFyc2VyQXBwZW5kS2V5ZnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6aW5zZXJ0UnVsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjpkZWxldGVSdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdENTU0tleWZyYW1lc1J1bGU6OmZpbmRSdWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdENTU0tleWZyYW1lc1J1bGU6OmZpbmRLZXlmcmFtZUluZGV4KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdENTU0tleWZyYW1lc1J1bGU6OmNzc1RleHQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjpp
dGVtKToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjprZXlm
cmFtZXMpOgorICAgICAgICAoV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjpsZW5ndGgpOgorICAgICAgICAKKyAgICAgICAg
ICAgIEtlZXAgU3R5bGVLZXlmcmFtZXMgYW5kIHRoZSB3cmFwcGVycyAoV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlcykgaW4gc2VwYXJhdGUgdmVjdG9ycy4KKyAgICAgICAgICAgIENvbnN0cnVjdCB0aGUg
d3JhcHBlciB2ZWN0b3IgYW5kIHdyYXBwZXJzIHRoZW1zZWx2ZXMgb24gZGVtYW5kLgorICAgICAg
ICAgICAgS2VlcCB0aGUgdmVjdG9ycyBpbiBzeW5jIGR1cmluZyBtdXRhdGlvbnMuCisgICAgICAg
IAorICAgICAgICAqIGNzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmg6CisgICAgICAgIAorICAgICAg
ICAgICAgQWRhcHQgdG8gTGl2ZUNTU1J1bGVMaXN0IGNoYW5nZXMuCisKIDIwMTItMDMtMjggIEVy
aWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIHNldE5lZWRzTGF5b3V0KHRy
dWUsIGZhbHNlKSBpcyBzdXBlciBjb25mdXNpbmcgdG8gcmVhZCBhbmQgc2hvdWxkIHVzZSBhbiBl
bnVtIGluc3RlYWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQkocmV2aXNpb24gMTEyMzc2
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQkod29ya2luZyBjb3B5KQpAQCAt
ODEsNyArODEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogICAgIENTU1BhcnNlclZh
bHVlIHZhbHVlOwogICAgIENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0OwogICAgIFZlY3Rv
cjxPd25QdHI8TWVkaWFRdWVyeUV4cD4gPiogbWVkaWFRdWVyeUV4cExpc3Q7Ci0gICAgV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlKiBrZXlmcmFtZVJ1bGU7CisgICAgU3R5bGVLZXlmcmFtZSoga2V5ZnJh
bWU7CiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSoga2V5ZnJhbWVzUnVsZTsKICAgICBmbG9h
dCB2YWw7CiB9CkBAIC0yNDUsNyArMjQ1LDcgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBF
KiB5eWx2YWwsIHZvaQogJXR5cGUgPG1lZGlhUXVlcnlFeHBMaXN0PiBtYXliZV9hbmRfbWVkaWFf
cXVlcnlfZXhwX2xpc3QKIAogJXR5cGUgPHN0cmluZz4ga2V5ZnJhbWVfbmFtZQotJXR5cGUgPGtl
eWZyYW1lUnVsZT4ga2V5ZnJhbWVfcnVsZQorJXR5cGUgPGtleWZyYW1lPiBrZXlmcmFtZV9ydWxl
CiAldHlwZSA8a2V5ZnJhbWVzUnVsZT4ga2V5ZnJhbWVzX3J1bGUKICV0eXBlIDx2YWx1ZUxpc3Q+
IGtleV9saXN0CiAldHlwZSA8dmFsdWU+IGtleQpAQCAtNjI3LDEzICs2MjcsMTMgQEAga2V5ZnJh
bWVzX3J1bGU6CiAgICAgfCBrZXlmcmFtZXNfcnVsZSBrZXlmcmFtZV9ydWxlIG1heWJlX3NwYWNl
IHsKICAgICAgICAgJCQgPSAkMTsKICAgICAgICAgaWYgKCQyKQotICAgICAgICAgICAgJCQtPmFw
cGVuZCgkMik7CisgICAgICAgICAgICAkJC0+cGFyc2VyQXBwZW5kS2V5ZnJhbWUoJDIpOwogICAg
IH0KICAgICA7CiAKIGtleWZyYW1lX3J1bGU6CiAgICAga2V5X2xpc3QgbWF5YmVfc3BhY2UgJ3sn
IG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uX2xpc3QgJ30nIHsKLSAgICAgICAgJCQgPSBzdGF0aWNf
Y2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVLZXlmcmFtZVJ1bGUoJDEpOworICAgICAg
ICAkJCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlciktPmNyZWF0ZUtleWZyYW1lKCQx
KTsKICAgICB9CiAgICAgOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCShyZXZp
c2lvbiAxMTIzNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDYgKzUzLDEwIEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIHJ1bGVD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRSdWxlcy5zaXplKCk7IH0KICAgICBDU1NSdWxl
KiBydWxlQXQodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRSdWxlc1tpbmRl
eF0uZ2V0KCk7IH0KKyAgICAKKyAgICAvLyBGb3IgQ1NTUnVsZUxpc3QKKyAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBydWxlQ291bnQoKTsgfQorICAgIENTU1J1bGUqIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgcnVsZUNvdW50KCkgPyBydWxl
QXQoaW5kZXgpIDogMDsgfQogCiBwcml2YXRlOgogICAgIENTU01lZGlhUnVsZShDU1NTdHlsZVNo
ZWV0KiBwYXJlbnQsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4sIFZlY3RvcjxSZWZQdHI8Q1NT
UnVsZT4gPiYgYWRvcHRSdWxlcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2
aXNpb24gMTEyMzc2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxOSw3ICszMTksNyBAQCBQYXNzUmVmUHRyPENTU1J1bGU+IENTU1BhcnNl
cjo6cGFyc2VSdWxlCiAgICAgcmV0dXJuIG1fcnVsZS5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlPiBDU1NQYXJzZXI6OnBhcnNlS2V5ZnJhbWVSdWxlKENT
U1N0eWxlU2hlZXQgKnNoZWV0LCBjb25zdCBTdHJpbmcgJnN0cmluZykKK1Bhc3NSZWZQdHI8U3R5
bGVLZXlmcmFtZT4gQ1NTUGFyc2VyOjpwYXJzZUtleWZyYW1lUnVsZShDU1NTdHlsZVNoZWV0ICpz
aGVldCwgY29uc3QgU3RyaW5nICZzdHJpbmcpCiB7CiAgICAgc2V0U3R5bGVTaGVldChzaGVldCk7
CiAgICAgc2V0dXBQYXJzZXIoIkAtd2Via2l0LWtleWZyYW1lLXJ1bGV7ICIsIHN0cmluZywgIn0g
Iik7CkBAIC05MjY1LDcgKzkyNjUsNyBAQCB2b2lkIENTU1BhcnNlcjo6ZGVsZXRlRm9udEZhY2VP
bmx5VmFsdWVzCiAgICAgfQogfQogCi1XZWJLaXRDU1NLZXlmcmFtZVJ1bGUqIENTU1BhcnNlcjo6
Y3JlYXRlS2V5ZnJhbWVSdWxlKENTU1BhcnNlclZhbHVlTGlzdCoga2V5cykKK1N0eWxlS2V5ZnJh
bWUqIENTU1BhcnNlcjo6Y3JlYXRlS2V5ZnJhbWUoQ1NTUGFyc2VyVmFsdWVMaXN0KiBrZXlzKQog
ewogICAgIC8vIENyZWF0ZSBhIGtleSBzdHJpbmcgZnJvbSB0aGUgcGFzc2VkIGtleXMKICAgICBT
dHJpbmcga2V5U3RyaW5nOwpAQCAtOTI3NywxNCArOTI3NywxNCBAQCBXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUqIENTU1BhcnNlcjo6Y3JlYXRlCiAgICAgICAgIGtleVN0cmluZyArPSAiJSI7CiAgICAg
fQogCi0gICAgUmVmUHRyPFdlYktpdENTU0tleWZyYW1lUnVsZT4ga2V5ZnJhbWUgPSBXZWJLaXRD
U1NLZXlmcmFtZVJ1bGU6OmNyZWF0ZShtX3N0eWxlU2hlZXQpOworICAgIFJlZlB0cjxTdHlsZUtl
eWZyYW1lPiBrZXlmcmFtZSA9IFN0eWxlS2V5ZnJhbWU6OmNyZWF0ZSgpOwogICAgIGtleWZyYW1l
LT5zZXRLZXlUZXh0KGtleVN0cmluZyk7Ci0gICAga2V5ZnJhbWUtPnNldERlY2xhcmF0aW9uKFN0
eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShtX3BhcnNlZFByb3BlcnRpZXMuZGF0YSgpLCBtX3BhcnNl
ZFByb3BlcnRpZXMuc2l6ZSgpLCBpblN0cmljdE1vZGUoKSkpOworICAgIGtleWZyYW1lLT5zZXRQ
cm9wZXJ0aWVzKFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShtX3BhcnNlZFByb3BlcnRpZXMuZGF0
YSgpLCBtX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpLCBpblN0cmljdE1vZGUoKSkpOwogCiAgICAg
Y2xlYXJQcm9wZXJ0aWVzKCk7CiAKLSAgICBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUqIGtleWZyYW1l
UHRyID0ga2V5ZnJhbWUuZ2V0KCk7Ci0gICAgbV9wYXJzZWRSdWxlcy5hcHBlbmQoa2V5ZnJhbWUu
cmVsZWFzZSgpKTsKKyAgICBTdHlsZUtleWZyYW1lKiBrZXlmcmFtZVB0ciA9IGtleWZyYW1lLmdl
dCgpOworICAgIG1fcGFyc2VkS2V5ZnJhbWVzLmFwcGVuZChrZXlmcmFtZS5yZWxlYXNlKCkpOwog
ICAgIHJldHVybiBrZXlmcmFtZVB0cjsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAko
cmV2aXNpb24gMTEyMzc2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw4ICs1OSw4IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFR
dWVyeUV4cDsKIGNsYXNzIE1lZGlhUXVlcnlTZXQ7CiBjbGFzcyBTdHlsZVByb3BlcnR5U2V0Owor
Y2xhc3MgU3R5bGVLZXlmcmFtZTsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7Ci1jbGFzcyBXZWJLaXRD
U1NLZXlmcmFtZVJ1bGU7CiBjbGFzcyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOwogCiBjbGFzcyBD
U1NQYXJzZXIgewpAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhcnNlU2hl
ZXQoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAw
LCBTdHlsZVJ1bGVSYW5nZU1hcCogcnVsZVJhbmdlTWFwID0gMCk7CiAgICAgUGFzc1JlZlB0cjxD
U1NSdWxlPiBwYXJzZVJ1bGUoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYpOwotICAgIFBh
c3NSZWZQdHI8V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlPiBwYXJzZUtleWZyYW1lUnVsZShDU1NTdHls
ZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CisgICAgUGFzc1JlZlB0cjxTdHlsZUtleWZyYW1lPiBw
YXJzZUtleWZyYW1lUnVsZShDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CiAgICAgc3Rh
dGljIGJvb2wgcGFyc2VWYWx1ZShTdHlsZVByb3BlcnR5U2V0KiwgaW50IHByb3BJZCwgY29uc3Qg
U3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgc3RyaWN0LCBDU1NTdHlsZVNoZWV0KiBjb250
ZXh0U3R5bGVTaGVldCk7CiAgICAgc3RhdGljIGJvb2wgcGFyc2VDb2xvcihSR0JBMzImIGNvbG9y
LCBjb25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9IGZhbHNlKTsKICAgICBzdGF0aWMgYm9vbCBw
YXJzZVN5c3RlbUNvbG9yKFJHQkEzMiYgY29sb3IsIGNvbnN0IFN0cmluZyYsIERvY3VtZW50Kik7
CkBAIC0yNDksNyArMjQ5LDcgQEAgcHVibGljOgogCiAgICAgTWVkaWFRdWVyeVNldCogY3JlYXRl
TWVkaWFRdWVyeVNldCgpOwogICAgIENTU1J1bGUqIGNyZWF0ZUltcG9ydFJ1bGUoY29uc3QgQ1NT
UGFyc2VyU3RyaW5nJiwgTWVkaWFRdWVyeVNldCopOwotICAgIFdlYktpdENTU0tleWZyYW1lUnVs
ZSogY3JlYXRlS2V5ZnJhbWVSdWxlKENTU1BhcnNlclZhbHVlTGlzdCopOworICAgIFN0eWxlS2V5
ZnJhbWUqIGNyZWF0ZUtleWZyYW1lKENTU1BhcnNlclZhbHVlTGlzdCopOwogICAgIFdlYktpdENT
U0tleWZyYW1lc1J1bGUqIGNyZWF0ZUtleWZyYW1lc1J1bGUoKTsKIAogICAgIHR5cGVkZWYgVmVj
dG9yPFJlZlB0cjxDU1NSdWxlPiA+IFJ1bGVMaXN0OwpAQCAtMjkyLDcgKzI5Miw3IEBAIHB1Ymxp
YzoKICAgICBpbnQgbV9pZDsKICAgICBDU1NTdHlsZVNoZWV0KiBtX3N0eWxlU2hlZXQ7CiAgICAg
UmVmUHRyPENTU1J1bGU+IG1fcnVsZTsKLSAgICBSZWZQdHI8V2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
PiBtX2tleWZyYW1lOworICAgIFJlZlB0cjxTdHlsZUtleWZyYW1lPiBtX2tleWZyYW1lOwogICAg
IE93blB0cjxNZWRpYVF1ZXJ5PiBtX21lZGlhUXVlcnk7CiAgICAgT3duUHRyPENTU1BhcnNlclZh
bHVlTGlzdD4gbV92YWx1ZUxpc3Q7CiAgICAgVmVjdG9yPENTU1Byb3BlcnR5LCAyNTY+IG1fcGFy
c2VkUHJvcGVydGllczsKQEAgLTQxMSw2ICs0MTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9h
bGxvd05hbWVzcGFjZURlY2xhcmF0aW9uczsKIAogICAgIFZlY3RvcjxSZWZQdHI8Q1NTUnVsZT4g
PiBtX3BhcnNlZFJ1bGVzOworICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiBtX3Bh
cnNlZEtleWZyYW1lczsKICAgICBWZWN0b3I8UmVmUHRyPE1lZGlhUXVlcnlTZXQ+ID4gbV9wYXJz
ZWRNZWRpYVF1ZXJ5U2V0czsKICAgICBWZWN0b3I8T3duUHRyPFJ1bGVMaXN0PiA+IG1fcGFyc2Vk
UnVsZUxpc3RzOwogICAgIEhhc2hTZXQ8Q1NTUGFyc2VyU2VsZWN0b3IqPiBtX2Zsb2F0aW5nU2Vs
ZWN0b3JzOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmgJKHJldmlzaW9uIDExMjM3NikK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04
Miw4ICs4Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7IG1fcnVsZS0+
ZGVyZWYoKTsgfQogICAgIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fcnVsZS0+cnVsZUNvdW50KCk7IH0KLSAgICB2aXJ0dWFsIENTU1J1
bGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0ICB7IHJldHVybiBpbmRleCA8IG1fcnVsZS0+
cnVsZUNvdW50KCkgPyBtX3J1bGUtPnJ1bGVBdChpbmRleCkgOiAwOyB9CisgICAgdmlydHVhbCB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3J1bGUtPmxlbmd0aCgpOyB9CisgICAg
dmlydHVhbCBDU1NSdWxlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCAgeyByZXR1cm4gbV9y
dWxlLT5pdGVtKGluZGV4KTsgfQogICAgIHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVsZS0+cGFyZW50U3R5bGVTaGVldCgpOyB9CiAgICAgCiAg
ICAgUnVsZSogbV9ydWxlOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkocmV2aXNpb24gMTEyMzgyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjI5LDExICsxNjI5LDExIEBAIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3IKICAgICByZXR1cm4gbV9zdHlsZS5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0
eWxlRm9yS2V5ZnJhbWUoY29uc3QgUmVuZGVyU3R5bGUqIGVsZW1lbnRTdHlsZSwgY29uc3QgV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlKiBrZXlmcmFtZVJ1bGUsIEtleWZyYW1lVmFsdWUmIGtleWZyYW1l
KQorUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQ1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JLZXlm
cmFtZShjb25zdCBSZW5kZXJTdHlsZSogZWxlbWVudFN0eWxlLCBjb25zdCBTdHlsZUtleWZyYW1l
KiBrZXlmcmFtZSwgS2V5ZnJhbWVWYWx1ZSYga2V5ZnJhbWVWYWx1ZSkKIHsKICAgICBNYXRjaFJl
c3VsdCByZXN1bHQ7Ci0gICAgaWYgKGtleWZyYW1lUnVsZS0+ZGVjbGFyYXRpb24oKSkKLSAgICAg
ICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0LCBrZXlmcmFtZVJ1bGUtPmRlY2xhcmF0aW9u
KCkpOworICAgIGlmIChrZXlmcmFtZS0+cHJvcGVydGllcygpKQorICAgICAgICBhZGRNYXRjaGVk
UHJvcGVydGllcyhyZXN1bHQsIGtleWZyYW1lLT5wcm9wZXJ0aWVzKCkpOwogCiAgICAgQVNTRVJU
KCFtX3N0eWxlKTsKIApAQCAtMTY0NSw3ICsxNjQ1LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gQ1NTU3R5bGVTZWxlY3RvcgogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYm90aGVyIHdpdGgg
IWltcG9ydGFudC4gU2luY2UgdGhlcmUgaXMgb25seSBldmVyIG9uZQogICAgIC8vIGRlY2wsIHRo
ZXJlJ3Mgbm90aGluZyB0byBvdmVycmlkZS4gU28ganVzdCBhZGQgdGhlIGZpcnN0IHByb3BlcnRp
ZXMuCiAgICAgYm9vbCBpbmhlcml0ZWRPbmx5ID0gZmFsc2U7Ci0gICAgaWYgKGtleWZyYW1lUnVs
ZS0+c3R5bGUoKSkKKyAgICBpZiAoa2V5ZnJhbWUtPnByb3BlcnRpZXMoKSkKICAgICAgICAgYXBw
bHlNYXRjaGVkUHJvcGVydGllczx0cnVlPihyZXN1bHQsIGZhbHNlLCAwLCByZXN1bHQubWF0Y2hl
ZFByb3BlcnRpZXMuc2l6ZSgpIC0gMSwgaW5oZXJpdGVkT25seSk7CiAKICAgICAvLyBJZiBvdXIg
Zm9udCBnb3QgZGlydGllZCwgZ28gYWhlYWQgYW5kIHVwZGF0ZSBpdCBub3cuCkBAIC0xNjU2LDcg
KzE2NTYsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yCiAgICAg
ICAgIGFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlMaW5lSGVpZ2h0LCBtX2xpbmVIZWlnaHRWYWx1
ZSk7CiAKICAgICAvLyBOb3cgZG8gcmVzdCBvZiB0aGUgcHJvcGVydGllcy4KLSAgICBpZiAoa2V5
ZnJhbWVSdWxlLT5zdHlsZSgpKQorICAgIGlmIChrZXlmcmFtZS0+cHJvcGVydGllcygpKQogICAg
ICAgICBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzPGZhbHNlPihyZXN1bHQsIGZhbHNlLCAwLCByZXN1
bHQubWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgpIC0gMSwgaW5oZXJpdGVkT25seSk7CiAKICAgICAv
LyBJZiBvdXIgZm9udCBnb3QgZGlydGllZCBieSBvbmUgb2YgdGhlIG5vbi1lc3NlbnRpYWwgZm9u
dCBwcm9wcywKQEAgLTE2NzIsMTQgKzE2NzIsMTQgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
Q1NTU3R5bGVTZWxlY3RvcgogI2VuZGlmCiAKICAgICAvLyBBZGQgYWxsIHRoZSBhbmltYXRpbmcg
cHJvcGVydGllcyB0byB0aGUga2V5ZnJhbWUuCi0gICAgaWYgKFN0eWxlUHJvcGVydHlTZXQqIHN0
eWxlRGVjbGFyYXRpb24gPSBrZXlmcmFtZVJ1bGUtPmRlY2xhcmF0aW9uKCkpIHsKKyAgICBpZiAo
U3R5bGVQcm9wZXJ0eVNldCogc3R5bGVEZWNsYXJhdGlvbiA9IGtleWZyYW1lLT5wcm9wZXJ0aWVz
KCkpIHsKICAgICAgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCA9IHN0eWxlRGVjbGFyYXRpb24t
PnByb3BlcnR5Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3Bl
cnR5Q291bnQ7ICsraSkgewogICAgICAgICAgICAgaW50IHByb3BlcnR5ID0gc3R5bGVEZWNsYXJh
dGlvbi0+cHJvcGVydHlBdChpKS5pZCgpOwogICAgICAgICAgICAgLy8gVGltaW5nLWZ1bmN0aW9u
IHdpdGhpbiBrZXlmcmFtZXMgaXMgc3BlY2lhbCwgYmVjYXVzZSBpdCBpcyBub3QgYW5pbWF0ZWQ7
IGl0IGp1c3QKICAgICAgICAgICAgIC8vIGRlc2NyaWJlcyB0aGUgdGltaW5nIGZ1bmN0aW9uIGJl
dHdlZW4gdGhpcyBrZXlmcmFtZSBhbmQgdGhlIG5leHQuCiAgICAgICAgICAgICBpZiAocHJvcGVy
dHkgIT0gQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbikKLSAgICAgICAg
ICAgICAgICBrZXlmcmFtZS5hZGRQcm9wZXJ0eShwcm9wZXJ0eSk7CisgICAgICAgICAgICAgICAg
a2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShwcm9wZXJ0eSk7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTE3MDMsNDIgKzE3MDMsNDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjprZXlmcmFtZVN0
eWxlc0ZvcgogICAgIGNvbnN0IFdlYktpdENTU0tleWZyYW1lc1J1bGUqIGtleWZyYW1lc1J1bGUg
PSBpdC0+c2Vjb25kLmdldCgpOwogCiAgICAgLy8gQ29uc3RydWN0IGFuZCBwb3B1bGF0ZSB0aGUg
c3R5bGUgZm9yIGVhY2gga2V5ZnJhbWUKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwga2V5
ZnJhbWVzUnVsZS0+cnVsZUNvdW50KCk7ICsraSkgeworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
U3R5bGVLZXlmcmFtZT4gPiYga2V5ZnJhbWVzID0ga2V5ZnJhbWVzUnVsZS0+a2V5ZnJhbWVzKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGtleWZyYW1lcy5zaXplKCk7ICsraSkgewog
ICAgICAgICAvLyBBcHBseSB0aGUgZGVjbGFyYXRpb24gdG8gdGhlIHN0eWxlLiBUaGlzIGlzIGEg
c2ltcGxpZmllZCB2ZXJzaW9uIG9mIHRoZSBsb2dpYyBpbiBzdHlsZUZvckVsZW1lbnQKICAgICAg
ICAgaW5pdEVsZW1lbnQoZSk7CiAgICAgICAgIGluaXRGb3JTdHlsZVJlc29sdmUoZSk7CiAKLSAg
ICAgICAgY29uc3QgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKiBrZXlmcmFtZVJ1bGUgPSBrZXlmcmFt
ZXNSdWxlLT5ydWxlQXQoaSk7CisgICAgICAgIGNvbnN0IFN0eWxlS2V5ZnJhbWUqIGtleWZyYW1l
ID0ga2V5ZnJhbWVzW2ldLmdldCgpOwogCi0gICAgICAgIEtleWZyYW1lVmFsdWUga2V5ZnJhbWUo
MCwgMCk7Ci0gICAgICAgIGtleWZyYW1lLnNldFN0eWxlKHN0eWxlRm9yS2V5ZnJhbWUoZWxlbWVu
dFN0eWxlLCBrZXlmcmFtZVJ1bGUsIGtleWZyYW1lKSk7CisgICAgICAgIEtleWZyYW1lVmFsdWUg
a2V5ZnJhbWVWYWx1ZSgwLCAwKTsKKyAgICAgICAga2V5ZnJhbWVWYWx1ZS5zZXRTdHlsZShzdHls
ZUZvcktleWZyYW1lKGVsZW1lbnRTdHlsZSwga2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKIAog
ICAgICAgICAvLyBBZGQgdGhpcyBrZXlmcmFtZSBzdHlsZSB0byBhbGwgdGhlIGluZGljYXRlZCBr
ZXkgdGltZXMKICAgICAgICAgVmVjdG9yPGZsb2F0PiBrZXlzOwotICAgICAgICBrZXlmcmFtZVJ1
bGUtPmdldEtleXMoa2V5cyk7CisgICAgICAgIGtleWZyYW1lLT5nZXRLZXlzKGtleXMpOwogICAg
ICAgICBmb3IgKHNpemVfdCBrZXlJbmRleCA9IDA7IGtleUluZGV4IDwga2V5cy5zaXplKCk7ICsr
a2V5SW5kZXgpIHsKLSAgICAgICAgICAgIGtleWZyYW1lLnNldEtleShrZXlzW2tleUluZGV4XSk7
Ci0gICAgICAgICAgICBsaXN0Lmluc2VydChrZXlmcmFtZSk7CisgICAgICAgICAgICBrZXlmcmFt
ZVZhbHVlLnNldEtleShrZXlzW2tleUluZGV4XSk7CisgICAgICAgICAgICBsaXN0Lmluc2VydChr
ZXlmcmFtZVZhbHVlKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIElmIHRoZSAwJSBrZXlm
cmFtZSBpcyBtaXNzaW5nLCBjcmVhdGUgaXQgKGJ1dCBvbmx5IGlmIHRoZXJlIGlzIGF0IGxlYXN0
IG9uZSBvdGhlciBrZXlmcmFtZSkKICAgICBpbnQgaW5pdGlhbExpc3RTaXplID0gbGlzdC5zaXpl
KCk7CiAgICAgaWYgKGluaXRpYWxMaXN0U2l6ZSA+IDAgJiYgbGlzdFswXS5rZXkoKSAhPSAwKSB7
Ci0gICAgICAgIFJlZlB0cjxXZWJLaXRDU1NLZXlmcmFtZVJ1bGU+IGtleWZyYW1lUnVsZSA9IFdl
YktpdENTU0tleWZyYW1lUnVsZTo6Y3JlYXRlKCk7Ci0gICAgICAgIGtleWZyYW1lUnVsZS0+c2V0
S2V5VGV4dCgiMCUiKTsKLSAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZSgwLCAwKTsKLSAg
ICAgICAga2V5ZnJhbWUuc2V0U3R5bGUoc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50U3R5bGUsIGtl
eWZyYW1lUnVsZS5nZXQoKSwga2V5ZnJhbWUpKTsKLSAgICAgICAgbGlzdC5pbnNlcnQoa2V5ZnJh
bWUpOworICAgICAgICBzdGF0aWMgU3R5bGVLZXlmcmFtZSogemVyb1BlcmNlbnRLZXlmcmFtZTsK
KyAgICAgICAgaWYgKCF6ZXJvUGVyY2VudEtleWZyYW1lKSB7CisgICAgICAgICAgICB6ZXJvUGVy
Y2VudEtleWZyYW1lID0gU3R5bGVLZXlmcmFtZTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgICAg
ICAgICAgemVyb1BlcmNlbnRLZXlmcmFtZS0+c2V0S2V5VGV4dCgiMCUiKTsKKyAgICAgICAgfQor
ICAgICAgICBLZXlmcmFtZVZhbHVlIGtleWZyYW1lVmFsdWUoMCwgMCk7CisgICAgICAgIGtleWZy
YW1lVmFsdWUuc2V0U3R5bGUoc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50U3R5bGUsIHplcm9QZXJj
ZW50S2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKKyAgICAgICAgbGlzdC5pbnNlcnQoa2V5ZnJh
bWVWYWx1ZSk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhlIDEwMCUga2V5ZnJhbWUgaXMgbWlzc2lu
ZywgY3JlYXRlIGl0IChidXQgb25seSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgb3RoZXIga2V5
ZnJhbWUpCiAgICAgaWYgKGluaXRpYWxMaXN0U2l6ZSA+IDAgJiYgKGxpc3RbbGlzdC5zaXplKCkg
LSAxXS5rZXkoKSAhPSAxKSkgewotICAgICAgICBSZWZQdHI8V2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
PiBrZXlmcmFtZVJ1bGUgPSBXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6OmNyZWF0ZSgpOwotICAgICAg
ICBrZXlmcmFtZVJ1bGUtPnNldEtleVRleHQoIjEwMCUiKTsKLSAgICAgICAgS2V5ZnJhbWVWYWx1
ZSBrZXlmcmFtZSgxLCAwKTsKLSAgICAgICAga2V5ZnJhbWUuc2V0U3R5bGUoc3R5bGVGb3JLZXlm
cmFtZShlbGVtZW50U3R5bGUsIGtleWZyYW1lUnVsZS5nZXQoKSwga2V5ZnJhbWUpKTsKLSAgICAg
ICAgbGlzdC5pbnNlcnQoa2V5ZnJhbWUpOworICAgICAgICBzdGF0aWMgU3R5bGVLZXlmcmFtZSog
aHVuZHJlZFBlcmNlbnRLZXlmcmFtZTsKKyAgICAgICAgaWYgKCFodW5kcmVkUGVyY2VudEtleWZy
YW1lKSB7CisgICAgICAgICAgICBodW5kcmVkUGVyY2VudEtleWZyYW1lID0gU3R5bGVLZXlmcmFt
ZTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgICAgICAgICAgaHVuZHJlZFBlcmNlbnRLZXlmcmFt
ZS0+c2V0S2V5VGV4dCgiMTAwJSIpOworICAgICAgICB9CisgICAgICAgIEtleWZyYW1lVmFsdWUg
a2V5ZnJhbWVWYWx1ZSgxLCAwKTsKKyAgICAgICAga2V5ZnJhbWVWYWx1ZS5zZXRTdHlsZShzdHls
ZUZvcktleWZyYW1lKGVsZW1lbnRTdHlsZSwgaHVuZHJlZFBlcmNlbnRLZXlmcmFtZSwga2V5ZnJh
bWVWYWx1ZSkpOworICAgICAgICBsaXN0Lmluc2VydChrZXlmcmFtZVZhbHVlKTsKICAgICB9CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAkocmV2aXNpb24gMTEy
Mzc2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtNzAsNiArNzAsNyBAQCBjbGFzcyBSdWxlU2V0OwogY2xhc3MgU2V0dGluZ3M7CiBj
bGFzcyBTdGF0aWNDU1NSdWxlTGlzdDsKIGNsYXNzIFN0eWxlSW1hZ2U7CitjbGFzcyBTdHlsZUtl
eWZyYW1lOwogY2xhc3MgU3R5bGVQZW5kaW5nSW1hZ2U7CiBjbGFzcyBTdHlsZVByb3BlcnR5U2V0
OwogY2xhc3MgU3R5bGVSdWxlOwpAQCAtNzcsNyArNzgsNiBAQCBjbGFzcyBTdHlsZVNoYWRlcjsK
IGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxlZEVs
ZW1lbnQ7Ci1jbGFzcyBXZWJLaXRDU1NLZXlmcmFtZVJ1bGU7CiBjbGFzcyBXZWJLaXRDU1NLZXlm
cmFtZXNSdWxlOwogY2xhc3MgV2ViS2l0Q1NTRmlsdGVyVmFsdWU7CiBjbGFzcyBXZWJLaXRDU1NS
ZWdpb25SdWxlOwpAQCAtMTUxLDcgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgU3R5bGVkRWxlbWVu
dCogZmluZFNpYmxpbmdGb3JTdHlsZVNoYXJpbmcoTm9kZSosIHVuc2lnbmVkJiBjb3VudCkgY29u
c3Q7CiAgICAgYm9vbCBjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCopIGNv
bnN0OwogCi0gICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JLZXlmcmFtZShjb25z
dCBSZW5kZXJTdHlsZSosIGNvbnN0IFdlYktpdENTU0tleWZyYW1lUnVsZSosIEtleWZyYW1lVmFs
dWUmKTsKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvcktleWZyYW1lKGNvbnN0
IFJlbmRlclN0eWxlKiwgY29uc3QgU3R5bGVLZXlmcmFtZSosIEtleWZyYW1lVmFsdWUmKTsKIAog
I2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCiAgICAgdm9pZCBwdXNoU2NvcGUoY29uc3QgQ29udGFp
bmVyTm9kZSogc2NvcGUsIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlUGFyZW50KTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCShyZXZpc2lv
biAxMTIzNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjcsMzggKzI3LDE3IEBACiAjaW5jbHVkZSAiV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLmgiCiAKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCisjaW5jbHVk
ZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdl
YktpdENTU0tleWZyYW1lUnVsZTo6V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKENTU1N0eWxlU2hlZXQq
IHBhcmVudCkKLSAgICA6IENTU1J1bGUocGFyZW50LCBDU1NSdWxlOjpXRUJLSVRfS0VZRlJBTUVf
UlVMRSkKLXsKLX0KLQotV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlOjp+V2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlKCkKLXsKLSAgICBpZiAobV9zdHlsZSkKLSAgICAgICAgbV9zdHlsZS0+Y2xlYXJQYXJlbnRS
dWxlKHRoaXMpOwotfQotCi1TdHJpbmcgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlOjpjc3NUZXh0KCkg
Y29uc3QKLXsKLSAgICBTdHJpbmcgcmVzdWx0ID0gbV9rZXk7Ci0KLSAgICByZXN1bHQgKz0gIiB7
ICI7Ci0gICAgcmVzdWx0ICs9IG1fc3R5bGUtPmFzVGV4dCgpOwotICAgIHJlc3VsdCArPSAifSI7
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIFdlYktpdENTU0tleWZyYW1lUnVsZTo6
c2V0RGVjbGFyYXRpb24oUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSkKKyAgICAK
K3ZvaWQgU3R5bGVLZXlmcmFtZTo6c2V0UHJvcGVydGllcyhQYXNzUmVmUHRyPFN0eWxlUHJvcGVy
dHlTZXQ+IHByb3BlcnRpZXMpCiB7Ci0gICAgbV9zdHlsZSA9IHN0eWxlOworICAgIG1fcHJvcGVy
dGllcyA9IHByb3BlcnRpZXM7CiB9CiAKIC8qIHN0YXRpYyAqLwotdm9pZCBXZWJLaXRDU1NLZXlm
cmFtZVJ1bGU6OnBhcnNlS2V5U3RyaW5nKGNvbnN0IFN0cmluZyYgcywgVmVjdG9yPGZsb2F0PiYg
a2V5cykKK3ZvaWQgU3R5bGVLZXlmcmFtZTo6cGFyc2VLZXlTdHJpbmcoY29uc3QgU3RyaW5nJiBz
LCBWZWN0b3I8ZmxvYXQ+JiBrZXlzKQogewogICAgIGtleXMuY2xlYXIoKTsKICAgICBWZWN0b3I8
U3RyaW5nPiBzdHJpbmdzOwpAQCAtNjcsNyArNDYsNyBAQCB2b2lkIFdlYktpdENTU0tleWZyYW1l
UnVsZTo6cGFyc2VLZXlTdHJpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdHJpbmdzLnNp
emUoKTsgKytpKSB7CiAgICAgICAgIGZsb2F0IGtleSA9IC0xOwogICAgICAgICBTdHJpbmcgY3Vy
ID0gc3RyaW5nc1tpXS5zdHJpcFdoaXRlU3BhY2UoKTsKLQorICAgICAgICAKICAgICAgICAgLy8g
Rm9yIG5vdyB0aGUgc3ludGF4IE1VU1QgYmUgJ3h4eCUnIG9yICdmcm9tJyBvciAndG8nLCB3aGVy
ZSB4eHggaXMgYSBsZWdhbCBmbG9hdGluZyBwb2ludCBudW1iZXIKICAgICAgICAgaWYgKGN1ciA9
PSAiZnJvbSIpCiAgICAgICAgICAgICBrZXkgPSAwOwpAQCAtNzgsNyArNTcsNiBAQCB2b2lkIFdl
YktpdENTU0tleWZyYW1lUnVsZTo6cGFyc2VLZXlTdHJpCiAgICAgICAgICAgICBpZiAoayA+PSAw
ICYmIGsgPD0gMTAwKQogICAgICAgICAgICAgICAgIGtleSA9IGsvMTAwOwogICAgICAgICB9Ci0K
ICAgICAgICAgaWYgKGtleSA8IDApIHsKICAgICAgICAgICAgIGtleXMuY2xlYXIoKTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTg4LDQgKzY2LDMyIEBAIHZvaWQgV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlOjpwYXJzZUtleVN0cmkKICAgICB9CiB9CiAKK1N0cmluZyBTdHlsZUtleWZyYW1lOjpjc3NU
ZXh0KCkgY29uc3QKK3sKKyAgICBTdHJpbmcgcmVzdWx0ID0ga2V5VGV4dCgpOworCisgICAgcmVz
dWx0ICs9ICIgeyAiOworICAgIHJlc3VsdCArPSBtX3Byb3BlcnRpZXMtPmFzVGV4dCgpOworICAg
IHJlc3VsdCArPSAifSI7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitXZWJLaXRDU1NLZXlm
cmFtZVJ1bGU6OldlYktpdENTU0tleWZyYW1lUnVsZShTdHlsZUtleWZyYW1lKiBrZXlmcmFtZSwg
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSogcGFyZW50KQorICAgIDogQ1NTUnVsZSgwLCBDU1NSdWxl
OjpXRUJLSVRfS0VZRlJBTUVfUlVMRSkKKyAgICAsIG1fa2V5ZnJhbWUoa2V5ZnJhbWUpCit7Cisg
ICAgc2V0UGFyZW50UnVsZShwYXJlbnQpOworfQorCitXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6On5X
ZWJLaXRDU1NLZXlmcmFtZVJ1bGUoKQoreworICAgIG1fa2V5ZnJhbWUtPnByb3BlcnRpZXMoKS0+
Y2xlYXJQYXJlbnRSdWxlKHRoaXMpOworfQorCitDU1NTdHlsZURlY2xhcmF0aW9uKiBXZWJLaXRD
U1NLZXlmcmFtZVJ1bGU6OnN0eWxlKCkgY29uc3QgCit7IAorICAgIHJldHVybiBtX2tleWZyYW1l
LT5wcm9wZXJ0aWVzKCkgPyBtX2tleWZyYW1lLT5wcm9wZXJ0aWVzKCktPmVuc3VyZVJ1bGVDU1NT
dHlsZURlY2xhcmF0aW9uKHRoaXMpIDogMDsgCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgJKHJldmlz
aW9uIDExMjM3NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNDYgKzI3LDYwIEBACiAjZGVmaW5lIFdlYktpdENTU0tl
eWZyYW1lUnVsZV9oCiAKICNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi10eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZTsKIAotY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIDogcHVibGljIENTU1J1bGUgewor
Y2xhc3MgU3R5bGVLZXlmcmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPFN0eWxlS2V5ZnJhbWU+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDU1NLZXlmcmFtZVJ1bGU+IGNy
ZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdENTU0tleWZy
YW1lUnVsZSgwKSk7Ci0gICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdENTU0tleWZy
YW1lUnVsZT4gY3JlYXRlKENTU1N0eWxlU2hlZXQqIHBhcmVudCkKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHlsZUtleWZyYW1lPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUocGFyZW50KSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3R5bGVLZXlmcmFtZSgpKTsKICAgICB9CiAKLSAgICB+V2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlKCk7Ci0KLSAgICBTdHJpbmcga2V5VGV4dCgpIGNvbnN0ICAgICAgICAgICAgICB7
IHJldHVybiBtX2tleTsgfQotICAgIHZvaWQgc2V0S2V5VGV4dChjb25zdCBTdHJpbmcmIHMpICAg
IHsgbV9rZXkgPSBzOyB9CisgICAgU3RyaW5nIGtleVRleHQoKSBjb25zdCB7IHJldHVybiBtX2tl
eTsgfQorICAgIHZvaWQgc2V0S2V5VGV4dChjb25zdCBTdHJpbmcmIHMpIHsgbV9rZXkgPSBzOyB9
CiAKICAgICB2b2lkIGdldEtleXMoVmVjdG9yPGZsb2F0PiYga2V5cykgY29uc3QgICB7IHBhcnNl
S2V5U3RyaW5nKG1fa2V5LCBrZXlzKTsgfQorICAgIAorICAgIFN0eWxlUHJvcGVydHlTZXQqIHBy
b3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7IH0KKyAgICB2b2lk
IHNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0Pik7CisgICAgCisgICAg
U3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKworcHJpdmF0ZTogICAgCisgICAgU3R5bGVLZXlmcmFt
ZSgpIHsgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHBhcnNlS2V5U3RyaW5nKGNvbnN0IFN0cmlu
ZyYsIFZlY3RvcjxmbG9hdD4mIGtleXMpOworICAgIAorICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5
U2V0PiBtX3Byb3BlcnRpZXM7CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgcGFyc2Vk
IHZlY3RvciBvZiBmbG9hdHMuCisgICAgLy8gY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Yga2V5cwor
ICAgIFN0cmluZyBtX2tleTsKK307CiAKLSAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUgPyBtX3N0eWxlLT5lbnN1cmVSdWxlQ1NTU3R5bGVEZWNs
YXJhdGlvbih0aGlzKSA6IDA7IH0KK2NsYXNzIFdlYktpdENTU0tleWZyYW1lUnVsZSA6IHB1Ymxp
YyBDU1NSdWxlIHsKK3B1YmxpYzoKKyAgICB+V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKCk7CiAKLSAg
ICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyBrZXlUZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9rZXlmcmFtZS0+a2V5VGV4dCgpOyB9CisgICAgdm9pZCBzZXRLZXlUZXh0KGNvbnN0
IFN0cmluZyYgcykgeyBtX2tleWZyYW1lLT5zZXRLZXlUZXh0KHMpOyB9CiAKLSAgICBTdHlsZVBy
b3BlcnR5U2V0KiBkZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0K
LSAgICB2b2lkIHNldERlY2xhcmF0aW9uKFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4pOwor
ICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKCkgY29uc3Q7CiAKLXByaXZhdGU6Ci0gICAg
c3RhdGljIHZvaWQgcGFyc2VLZXlTdHJpbmcoY29uc3QgU3RyaW5nJiBzLCBWZWN0b3I8ZmxvYXQ+
JiBrZXlzKTsKKyAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5ZnJhbWUt
PmNzc1RleHQoKTsgfQogCi0gICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKENTU1N0eWxlU2hlZXQq
IHBhcmVudCk7Citwcml2YXRlOgorICAgIFdlYktpdENTU0tleWZyYW1lUnVsZShTdHlsZUtleWZy
YW1lKiwgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSogcGFyZW50KTsKIAotICAgIFJlZlB0cjxTdHls
ZVByb3BlcnR5U2V0PiBtX3N0eWxlOwotICAgIFN0cmluZyBtX2tleTsgICAgICAgIC8vIGNvbW1h
IHNlcGFyYXRlZCBsaXN0IG9mIGtleXMKKyAgICBSZWZQdHI8U3R5bGVLZXlmcmFtZT4gbV9rZXlm
cmFtZTsKKyAgICAKKyAgICBmcmllbmQgY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAJKHJldmlzaW9uIDExMjM3NikKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDIsOCArNDIsMTMgQEAgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6V2ViS2l0Q1NTS2V5ZnJhbQog
CiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjp+V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSgpCiB7Ci0g
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRSdWxlcy5zaXplKCk7ICsraSkKLSAg
ICAgICAgbV9jaGlsZFJ1bGVzW2ldLT5zZXRQYXJlbnRSdWxlKDApOworICAgIGlmIChtX2NoaWxk
UnVsZUNTU09NV3JhcHBlcnMpIHsKKyAgICAgICAgQVNTRVJUKG1fY2hpbGRSdWxlQ1NTT01XcmFw
cGVycy0+c2l6ZSgpID09IG1fa2V5ZnJhbWVzLnNpemUoKSk7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMtPnNpemUoKTsgKytpKSB7Cisg
ICAgICAgICAgICBpZiAobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLT5hdChpKSkKKyAgICAgICAg
ICAgICAgICBtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMtPmF0KGkpLT5zZXRQYXJlbnRSdWxlKDAp
OworICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIFdlYktpdENTU0tleWZyYW1lc1J1bGU6OnNl
dE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtNTYsNDEgKzYxLDQ5IEBAIHZvaWQgV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZTo6c2V0TmFtZShjb24KICAgICAgICAgc3R5bGVTaGVldC0+c3R5bGVT
aGVldENoYW5nZWQoKTsKIH0KIAotdm9pZCBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjphcHBlbmQo
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKiBydWxlKQordm9pZCBXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
OjpwYXJzZXJBcHBlbmRLZXlmcmFtZShQYXNzUmVmUHRyPFN0eWxlS2V5ZnJhbWU+IGtleWZyYW1l
KQogewotICAgIGlmICghcnVsZSkKKyAgICBBU1NFUlQoIW1fY2hpbGRSdWxlQ1NTT01XcmFwcGVy
cyk7CisgICAgaWYgKCFrZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jaGlsZFJ1
bGVzLmFwcGVuZChydWxlKTsKLSAgICBydWxlLT5zZXRQYXJlbnRSdWxlKHRoaXMpOworICAgIG1f
a2V5ZnJhbWVzLmFwcGVuZChrZXlmcmFtZSk7CiB9CiAKLXZvaWQgV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZTo6aW5zZXJ0UnVsZShjb25zdCBTdHJpbmcmIHJ1bGUpCit2b2lkIFdlYktpdENTU0tleWZy
YW1lc1J1bGU6Omluc2VydFJ1bGUoY29uc3QgU3RyaW5nJiBydWxlVGV4dCkKIHsKICAgICBDU1NQ
YXJzZXIgcCh1c2VTdHJpY3RQYXJzaW5nKCkpOwotICAgIFJlZlB0cjxXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGU+IG5ld1J1bGUgPSBwLnBhcnNlS2V5ZnJhbWVSdWxlKHBhcmVudFN0eWxlU2hlZXQoKSwg
cnVsZSk7Ci0gICAgaWYgKG5ld1J1bGUpCi0gICAgICAgIGFwcGVuZChuZXdSdWxlLmdldCgpKTsK
KyAgICBSZWZQdHI8U3R5bGVLZXlmcmFtZT4ga2V5ZnJhbWUgPSBwLnBhcnNlS2V5ZnJhbWVSdWxl
KHBhcmVudFN0eWxlU2hlZXQoKSwgcnVsZVRleHQpOworICAgIGlmICgha2V5ZnJhbWUpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fa2V5ZnJhbWVzLmFwcGVuZChrZXlmcmFtZSk7CisKKyAgICBp
ZiAobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKQorICAgICAgICBtX2NoaWxkUnVsZUNTU09NV3Jh
cHBlcnMtPmdyb3cobV9rZXlmcmFtZXMuc2l6ZSgpKTsKIH0KIAogdm9pZCBXZWJLaXRDU1NLZXlm
cmFtZXNSdWxlOjpkZWxldGVSdWxlKGNvbnN0IFN0cmluZyYgcykKIHsKLSAgICBpbnQgaSA9IGZp
bmRSdWxlSW5kZXgocyk7CisgICAgaW50IGkgPSBmaW5kS2V5ZnJhbWVJbmRleChzKTsKICAgICBp
ZiAoaSA8IDApCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYktpdENTU0tleWZyYW1lUnVsZSog
cnVsZSA9IGl0ZW0oaSk7Ci0gICAgcnVsZS0+c2V0UGFyZW50UnVsZSgwKTsKLSAgICBtX2NoaWxk
UnVsZXMucmVtb3ZlKGkpOworICAgIG1fa2V5ZnJhbWVzLnJlbW92ZShpKTsKKworICAgIGlmICht
X2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpIHsKKyAgICAgICAgaWYgKG1fY2hpbGRSdWxlQ1NTT01X
cmFwcGVycy0+YXQoaSkpCisgICAgICAgICAgICBtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMtPmF0
KGkpLT5zZXRQYXJlbnRSdWxlKDApOworICAgICAgICBtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMt
PnJlbW92ZShpKTsKKyAgICB9CiB9CiAKIFdlYktpdENTU0tleWZyYW1lUnVsZSogV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZTo6ZmluZFJ1bGUoY29uc3QgU3RyaW5nJiBzKQogewotICAgIGludCBpID0g
ZmluZFJ1bGVJbmRleChzKTsKLSAgICByZXR1cm4gKGkgPj0gMCkgPyBtX2NoaWxkUnVsZXNbaV0u
Z2V0KCkgOiAwOworICAgIGludCBpID0gZmluZEtleWZyYW1lSW5kZXgocyk7CisgICAgcmV0dXJu
IChpID49IDApID8gaXRlbShpKSA6IDA7CiB9CiAKLWludCBXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
OjpmaW5kUnVsZUluZGV4KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAoraW50IFdlYktpdENTU0tl
eWZyYW1lc1J1bGU6OmZpbmRLZXlmcmFtZUluZGV4KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAog
ewogICAgIFN0cmluZyBwZXJjZW50YWdlU3RyaW5nOwogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShrZXksICJmcm9tIikpCkBAIC0xMDAsOCArMTEzLDggQEAgaW50IFdlYktpdENTU0tleWZyYW1l
c1J1bGU6OmZpbmRSdWxlSW5kZQogICAgIGVsc2UKICAgICAgICAgcGVyY2VudGFnZVN0cmluZyA9
IGtleTsKIAotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkUnVsZXMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgaWYgKG1fY2hpbGRSdWxlc1tpXS0+a2V5VGV4dCgpID09IHBlcmNl
bnRhZ2VTdHJpbmcpCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fa2V5ZnJhbWVzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2tleWZyYW1lc1tpXS0+a2V5VGV4dCgpID09IHBl
cmNlbnRhZ2VTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gaTsKICAgICB9CiAKQEAgLTExNSwx
NiArMTI4LDMxIEBAIFN0cmluZyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjpjc3NUZXh0KCkKICAg
ICByZXN1bHQuYXBwZW5kKG1fbmFtZSk7CiAgICAgcmVzdWx0LmFwcGVuZCgiIHsgXG4iKTsKIAot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkUnVsZXMuc2l6ZSgpOyArK2kpIHsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9rZXlmcmFtZXMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICAiKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChtX2No
aWxkUnVsZXNbaV0tPmNzc1RleHQoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9rZXlmcmFt
ZXNbaV0tPmNzc1RleHQoKSk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxuIik7CiAgICAgfQog
CiAgICAgcmVzdWx0LmFwcGVuZCgifSIpOwogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
IH0KLSAgICAKKworV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAoreyAKKyAgICBpZiAoaW5kZXggPj0gbV9rZXlm
cmFtZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIW1fY2hpbGRSdWxlQ1NT
T01XcmFwcGVycykKKyAgICAgICAgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzID0gYWRvcHRQdHIo
bmV3IFZlY3RvcjxSZWZQdHI8V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlPiA+KG1fa2V5ZnJhbWVzLnNp
emUoKSkpOworCisgICAgQVNTRVJUKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycy0+c2l6ZSgpID09
IG1fa2V5ZnJhbWVzLnNpemUoKSk7CisgICAgUmVmUHRyPFdlYktpdENTU0tleWZyYW1lUnVsZT4m
IHJ1bGUgPSBtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMtPmF0KGluZGV4KTsKKyAgICBpZiAoIXJ1
bGUpCisgICAgICAgIHJ1bGUgPSBhZG9wdFJlZihuZXcgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKG1f
a2V5ZnJhbWVzW2luZGV4XS5nZXQoKSwgY29uc3RfY2FzdDxXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
Kj4odGhpcykpKTsKKworICAgIHJldHVybiBydWxlLmdldCgpOyAKK30KKwogQ1NTUnVsZUxpc3Qq
IFdlYktpdENTU0tleWZyYW1lc1J1bGU6OmNzc1J1bGVzKCkKIHsKICAgICBpZiAoIW1fcnVsZUxp
c3RDU1NPTVdyYXBwZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmgJKHJldmlzaW9uIDExMjM3NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTUnVsZUxpc3Q7CitjbGFzcyBTdHlsZUtleWZy
YW1lOwogY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlOwogCiB0eXBlZGVmIGludCBFeGNlcHRp
b25Db2RlOwpAQCAtNzEsMjQgKzcyLDI0IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgY3NzVGV4dCgp
IGNvbnN0OwogCiAgICAgLy8gTm90IHBhcnQgb2YgdGhlIENTU09NLgotICAgIHVuc2lnbmVkIHJ1
bGVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRSdWxlcy5zaXplKCk7IH0KLSAgICBXZWJL
aXRDU1NLZXlmcmFtZVJ1bGUqIHJ1bGVBdCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4g
bV9jaGlsZFJ1bGVzW2luZGV4XS5nZXQoKTsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5
bGVLZXlmcmFtZT4gPiYga2V5ZnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9rZXlmcmFtZXM7IH0K
IAotICAgIHZvaWQgYXBwZW5kKFdlYktpdENTU0tleWZyYW1lUnVsZSopOworICAgIHZvaWQgcGFy
c2VyQXBwZW5kS2V5ZnJhbWUoUGFzc1JlZlB0cjxTdHlsZUtleWZyYW1lPik7CiAgICAgCi0gICAg
Ly8gRm9yIEluZGV4ZWRHZXR0ZXIuCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gcnVsZUNvdW50KCk7IH0KLSAgICBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUqIGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgcnVsZUNvdW50KCkgPyBydWxlQXQoaW5k
ZXgpIDogMDsgfQorICAgIC8vIEZvciBJbmRleGVkR2V0dGVyIGFuZCBDU1NSdWxlTGlzdC4KKyAg
ICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1lcy5zaXplKCk7IH0K
KyAgICBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIFdlYktpdENTU0tleWZyYW1lc1J1bGUoQ1NTU3R5bGVTaGVldCogcGFy
ZW50KTsKIAotICAgIGludCBmaW5kUnVsZUluZGV4KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsK
KyAgICBpbnQgZmluZEtleWZyYW1lSW5kZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OwogCi0g
ICAgVmVjdG9yPFJlZlB0cjxXZWJLaXRDU1NLZXlmcmFtZVJ1bGU+ID4gbV9jaGlsZFJ1bGVzOwor
ICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4gPiBtX2tleWZyYW1lczsKICAgICBBdG9t
aWNTdHJpbmcgbV9uYW1lOwotICAgIAotICAgIE93blB0cjxDU1NSdWxlTGlzdD4gbV9ydWxlTGlz
dENTU09NV3JhcHBlcjsKKworICAgIG11dGFibGUgT3duUHRyPFZlY3RvcjxSZWZQdHI8V2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlPiA+ID4gbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzOworICAgIG11dGFi
bGUgT3duUHRyPENTU1J1bGVMaXN0PiBtX3J1bGVMaXN0Q1NTT01XcmFwcGVyOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1Jl
Z2lvblJ1bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVn
aW9uUnVsZS5oCShyZXZpc2lvbiAxMTIzNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTUmVnaW9uUnVsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1NywxMSBAQCBwdWJsaWM6
CiAKICAgICAvLyBOb3QgcGFydCBvZiB0aGUgQ1NTT00uCiAgICAgdW5zaWduZWQgcnVsZUNvdW50
KCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZFJ1bGVzLnNpemUoKTsgfQotICAgIENTU1J1bGUqIHJ1
bGVBdCh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9jaGlsZFJ1bGVzW2luZGV4XS5nZXQoKTsg
fQorICAgIENTU1J1bGUqIHJ1bGVBdCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9j
aGlsZFJ1bGVzW2luZGV4XS5nZXQoKTsgfQorICAgIAorICAgIC8vIEZvciBDU1NSdWxlTGlzdAor
ICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHJ1bGVDb3VudCgpOyB9CisgICAg
Q1NTUnVsZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBydWxl
Q291bnQoKSA/IHJ1bGVBdChpbmRleCkgOiAwOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViS2l0Q1NT
UmVnaW9uUnVsZShDU1NTdHlsZVNoZWV0KiBwYXJlbnQsIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+ID4qIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxDU1NSdWxlPiA+Jik7Cg==
</data>
<flag name="review"
          id="138625"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>