<?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>124738</bug_id>
          
          <creation_ts>2013-11-21 12:36:37 -0800</creation_ts>
          <short_desc>Implement WebCrypto wrapKey</short_desc>
          <delta_ts>2013-11-21 13:53:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>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>122679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>953237</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-21 12:36:37 -0800</bug_when>
    <thetext>Another chained operation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953241</commentid>
    <comment_count>1</comment_count>
      <attachid>217600</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-21 12:39:39 -0800</bug_when>
    <thetext>Created attachment 217600
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953280</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-21 13:53:03 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r159644&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217600</attachid>
            <date>2013-11-21 12:39:39 -0800</date>
            <delta_ts>2013-11-21 12:52:42 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>wrapKey.txt</filename>
            <type>text/plain</type>
            <size>19319</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTY0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTExLTIxICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJDcnlw
dG8gd3JhcEtleQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI0NzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGNyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUu
aHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwK
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmV4cG9ydEtleSk6IEZhY3RvcmVkIG91dCB0aGUgYWN0dWFsIG9wZXJhdGlv
biB0aGF0IGNhbiBiZSBjaGFpbmVkIHdpdGgKKyAgICAgICAgZW5jcnlwdGlvbiBmb3Igd3JhcEtl
eS4KKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpleHBvcnRLZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gZmFpbHVy
ZSBjb2RlIHBhdGguCisKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmlkbDogQWRkZWQg
d3JhcEtleS4KKwogMjAxMy0xMS0yMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXBsZW1lbnQgV2ViQ3J5cHRvIHVud3JhcEtleQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAko
cmV2aXNpb24gMTU5NjM3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVD
cnlwdG9DdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjMsNiArNTYzLDM4IEBAIEpTVmFs
dWUgSlNTdWJ0bGVDcnlwdG86OmltcG9ydEtleShFeGVjU3QKICAgICByZXR1cm4gcHJvbWlzZTsK
IH0KIAorc3RhdGljIHZvaWQgZXhwb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvS2V5Rm9y
bWF0IGtleUZvcm1hdCwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIENyeXB0b0FsZ29yaXRobTo6VmVj
dG9yQ2FsbGJhY2sgY2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjaykKK3sKKyAgICBpZiAoIWtleS5leHRyYWN0YWJsZSgpKSB7CisgICAgICAgIHRo
cm93VHlwZUVycm9yKGV4ZWMsICJLZXkgaXMgbm90IGV4dHJhY3RhYmxlIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGtleUZvcm1hdCkgeworICAgIGNhc2UgQ3J5cHRv
S2V5Rm9ybWF0OjpSYXc6IHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICAg
ICAgaWYgKENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OnNlcmlhbGl6ZShrZXksIHJlc3VsdCkp
CisgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBmYWlsdXJlQ2FsbGJhY2soKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQ3J5
cHRvS2V5Rm9ybWF0OjpKV0s6IHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IEpTQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbkpXSzo6c2VyaWFsaXplKGV4ZWMsIGtleSk7CisgICAgICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgQ1N0cmluZyB1
dGY4U3RyaW5nID0gcmVzdWx0LnV0ZjgoU3RyaWN0Q29udmVyc2lvbik7CisgICAgICAgIFZlY3Rv
cjx1aW50OF90PiByZXN1bHRCdWZmZXI7CisgICAgICAgIHJlc3VsdEJ1ZmZlci5hcHBlbmQodXRm
OFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBjYWxsYmFjayhy
ZXN1bHRCdWZmZXIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgIlVuc3VwcG9ydGVkIGtleSBmb3JtYXQgZm9yIGV4cG9y
dCIpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86
OmV4cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDIpCkBAIC01ODEsMzUgKzYxMyw4MyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpl
eHBvcnRLZXkoRXhlY1N0CiAgICAgSlNQcm9taXNlKiBwcm9taXNlID0gSlNQcm9taXNlOjpjcmVh
dGVXaXRoUmVzb2x2ZXIoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KCkpOwogICAgIFByb21pc2VX
cmFwcGVyIHByb21pc2VXcmFwcGVyKGdsb2JhbE9iamVjdCgpLCBwcm9taXNlKTsKIAotICAgIGlm
ICgha2V5LT5leHRyYWN0YWJsZSgpKSB7Ci0gICAgICAgIG1faW1wbC0+ZG9jdW1lbnQoKS0+YWRk
Q29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIktleSBp
cyBub3QgZXh0cmFjdGFibGUiKTsKKyAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFtwcm9taXNl
V3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICBwcm9taXNlV3JhcHBlci5mdWxmaWxsKHJlc3VsdCk7CisgICAgfTsKKyAgICBhdXRvIGZhaWx1
cmVDYWxsYmFjayA9IFtwcm9taXNlV3JhcHBlcl0oKSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlz
ZVdyYXBwZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICByZXR1cm4gcHJvbWlzZTsKKyAgICB9
OworCisgICAgV2ViQ29yZTo6ZXhwb3J0S2V5KGV4ZWMsIGtleUZvcm1hdCwgKmtleSwgc3VjY2Vz
c0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2spOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICByZXR1cm4gcHJvbWlzZTsK
K30KKworSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVjU3RhdGUqIGV4ZWMpCit7
CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDQpCisgICAgICAgIHJldHVybiBleGVj
LT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGV4ZWMpKTsKKworICAgIENyeXB0b0tleUZvcm1hdCBrZXlGb3JtYXQ7CisgICAgaWYgKCFjcnlw
dG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShleGVjLCBleGVjLT5hcmd1bWVudCgwKSwga2V5Rm9ybWF0
KSkgeworICAgICAgICBBU1NFUlQoZXhlYy0+aGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBzd2l0Y2ggKGtleUZvcm1hdCkgewotICAg
IGNhc2UgQ3J5cHRvS2V5Rm9ybWF0OjpSYXc6IHsKLSAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHJl
c3VsdDsKLSAgICAgICAgaWYgKENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OnNlcmlhbGl6ZSgq
a2V5LCByZXN1bHQpKQotICAgICAgICAgICAgcHJvbWlzZVdyYXBwZXIuZnVsZmlsbChyZXN1bHQp
OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1faW1wbC0+ZG9jdW1lbnQoKS0+YWRkQ29u
c29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIktleSBjYW5u
b3QgYmUgZXhwb3J0ZWQgdG8gcmF3IGZvcm1hdCIpOwotICAgICAgICAgICAgcHJvbWlzZVdyYXBw
ZXIucmVqZWN0KG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOworICAgIFJlZlB0
cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwor
CisgICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSB0b0NyeXB0b0tleShleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgaWYgKCFrZXkpCisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjKTsKKworCisgICAgYXV0byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0
aG1Gcm9tSlNWYWx1ZShleGVjLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgzKSk7CisgICAgaWYg
KCFhbGdvcml0aG0pIHsKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIGNhc2UgQ3J5cHRvS2V5Rm9y
bWF0OjpKV0s6IHsKLSAgICAgICAgU3RyaW5nIHJlc3VsdCA9IEpTQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbkpXSzo6c2VyaWFsaXplKGV4ZWMsICprZXkpOwotICAgICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgQ1N0
cmluZyB1dGY4U3RyaW5nID0gcmVzdWx0LnV0ZjgoU3RyaWN0Q29udmVyc2lvbik7Ci0gICAgICAg
IFZlY3Rvcjx1aW50OF90PiByZXN1bHRCdWZmZXI7Ci0gICAgICAgIHJlc3VsdEJ1ZmZlci5hcHBl
bmQodXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOwotICAgICAgICBwcm9t
aXNlV3JhcHBlci5mdWxmaWxsKHJlc3VsdEJ1ZmZlcik7Ci0gICAgICAgIGJyZWFrOworCisgICAg
YXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRW5jcnlwdChleGVjLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMykpOworICAgIGlmICghcGFyYW1ldGVycykgeworICAgICAgICBBU1NF
UlQoZXhlYy0+aGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
ICAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgIlVuc3Vw
cG9ydGVkIGtleSBmb3JtYXQgZm9yIGV4cG9ydCIpOworCisgICAgSlNQcm9taXNlKiBwcm9taXNl
ID0gSlNQcm9taXNlOjpjcmVhdGVXaXRoUmVzb2x2ZXIoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0
KCkpOworICAgIFByb21pc2VXcmFwcGVyIHByb21pc2VXcmFwcGVyKGdsb2JhbE9iamVjdCgpLCBw
cm9taXNlKTsKKworICAgIENyeXB0b0FsZ29yaXRobSogYWxnb3JpdGhtUHRyID0gYWxnb3JpdGht
LnJlbGVhc2UoKTsKKyAgICBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzUHRy
ID0gcGFyYW1ldGVycy5yZWxlYXNlKCk7CisKKyAgICBhdXRvIGV4cG9ydFN1Y2Nlc3NDYWxsYmFj
ayA9IFtrZXlGb3JtYXQsIGFsZ29yaXRobVB0ciwgcGFyYW1ldGVyc1B0ciwgd3JhcHBpbmdLZXks
IHByb21pc2VXcmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4cG9ydGVkS2V5RGF0YSkg
bXV0YWJsZSB7CisgICAgICAgIGF1dG8gZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayA9IFtwcm9taXNl
V3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBlbmNyeXB0ZWREYXRhKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIHByb21pc2VXcmFwcGVyLmZ1bGZpbGwoZW5jcnlwdGVkRGF0YSk7CisgICAg
ICAgIH07CisgICAgICAgIGF1dG8gZW5jcnlwdEZhaWx1cmVDYWxsYmFjayA9IFtwcm9taXNlV3Jh
cHBlcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHByb21pc2VXcmFwcGVyLnJlamVjdChudWxs
cHRyKTsKKyAgICAgICAgfTsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAg
IGFsZ29yaXRobVB0ci0+ZW5jcnlwdEZvcldyYXBLZXkoKnBhcmFtZXRlcnNQdHIsICp3cmFwcGlu
Z0tleSwgc3RkOjptYWtlX3BhaXIoZXhwb3J0ZWRLZXlEYXRhLmRhdGEoKSwgZXhwb3J0ZWRLZXlE
YXRhLnNpemUoKSksIHN0ZDo6bW92ZShlbmNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgc3RkOjptb3Zl
KGVuY3J5cHRGYWlsdXJlQ2FsbGJhY2spLCBlYyk7CisgICAgICAgIGlmIChlYykgeworICAgICAg
ICAgICAgLy8gRklYTUU6IFJlcG9ydCBmYWlsdXJlIGRldGFpbHMgdG8gY29uc29sZSwgYW5kIHBv
c3NpYmx5IHRvIGNhbGxpbmcgc2NyaXB0IG9uY2UgdGhlcmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5
IHRvIHBhc3MgZXJyb3JzIHRvIFdlYkNyeXB0byBwcm9taXNlIHJlamVjdCBmdW5jdGlvbnMuCisg
ICAgICAgICAgICBlbmNyeXB0RmFpbHVyZUNhbGxiYWNrKCk7CisgICAgICAgIH0KKyAgICB9Owor
CisgICAgYXV0byBleHBvcnRGYWlsdXJlQ2FsbGJhY2sgPSBbcHJvbWlzZVdyYXBwZXIsIGFsZ29y
aXRobVB0ciwgcGFyYW1ldGVyc1B0cl0oKSBtdXRhYmxlIHsKKyAgICAgICAgZGVsZXRlIGFsZ29y
aXRobVB0cjsKKyAgICAgICAgZGVsZXRlIHBhcmFtZXRlcnNQdHI7CisgICAgICAgIHByb21pc2VX
cmFwcGVyLnJlamVjdChudWxscHRyKTsKKyAgICB9OworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CisgICAgV2ViQ29yZTo6ZXhwb3J0S2V5KGV4ZWMsIGtleUZvcm1hdCwgKmtleSwgZXhwb3J0
U3VjY2Vzc0NhbGxiYWNrLCBleHBvcnRGYWlsdXJlQ2FsbGJhY2spOworICAgIGlmIChlYykgewor
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKICAgICB9CiAKQEAgLTY5MywyNSArNzczLDMwIEBAIEpTVmFsdWUgSlNTdWJ0bGVD
cnlwdG86OnVud3JhcEtleShFeGVjU3QKICAgICBDcnlwdG9BbGdvcml0aG0qIHVud3JhcHBlZEtl
eUFsZ29yaXRobVB0ciA9IHVud3JhcHBlZEtleUFsZ29yaXRobS5yZWxlYXNlKCk7CiAgICAgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyogdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyc1B0
ciA9IHVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMucmVsZWFzZSgpOwogCi0gICAgYXV0
byBmYWlsdXJlQ2FsbGJhY2sgPSBbcHJvbWlzZVdyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAg
IHByb21pc2VXcmFwcGVyLnJlamVjdChudWxscHRyKTsKLSAgICB9OwotCi0gICAgYXV0byBzdWNj
ZXNzQ2FsbGJhY2sgPSBbZG9tR2xvYmFsT2JqZWN0LCBrZXlGb3JtYXQsIHVud3JhcHBlZEtleUFs
Z29yaXRobVB0ciwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyc1B0ciwgZXh0cmFjdGFi
bGUsIGtleVVzYWdlcywgcHJvbWlzZVdyYXBwZXIsIGZhaWx1cmVDYWxsYmFja10oY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgeworICAgIGF1dG8gZGVjcnlwdFN1Y2Nlc3ND
YWxsYmFjayA9IFtkb21HbG9iYWxPYmplY3QsIGtleUZvcm1hdCwgdW53cmFwcGVkS2V5QWxnb3Jp
dGhtUHRyLCB1bndyYXBwZWRLZXlBbGdvcml0aG1QYXJhbWV0ZXJzUHRyLCBleHRyYWN0YWJsZSwg
a2V5VXNhZ2VzLCBwcm9taXNlV3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBhdXRvIGltcG9ydFN1Y2Nlc3NDYWxsYmFjayA9IFtwcm9taXNl
V3JhcHBlcl0oQ3J5cHRvS2V5JiBrZXkpIG11dGFibGUgewogICAgICAgICAgICAgcHJvbWlzZVdy
YXBwZXIuZnVsZmlsbCgma2V5KTsKICAgICAgICAgfTsKKyAgICAgICAgYXV0byBpbXBvcnRGYWls
dXJlQ2FsbGJhY2sgPSBbcHJvbWlzZVdyYXBwZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBw
cm9taXNlV3JhcHBlci5yZWplY3QobnVsbHB0cik7CisgICAgICAgIH07CiAgICAgICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IGRvbUdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICBXZWJD
b3JlOjppbXBvcnRLZXkoZXhlYywga2V5Rm9ybWF0LCBzdGQ6Om1ha2VfcGFpcihyZXN1bHQuZGF0
YSgpLCByZXN1bHQuc2l6ZSgpKSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUHRyLCB1bndyYXBwZWRL
ZXlBbGdvcml0aG1QYXJhbWV0ZXJzUHRyLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBpbXBvcnRT
dWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjayk7CisgICAgICAgIFdlYkNvcmU6OmltcG9y
dEtleShleGVjLCBrZXlGb3JtYXQsIHN0ZDo6bWFrZV9wYWlyKHJlc3VsdC5kYXRhKCksIHJlc3Vs
dC5zaXplKCkpLCB1bndyYXBwZWRLZXlBbGdvcml0aG1QdHIsIHVud3JhcHBlZEtleUFsZ29yaXRo
bVBhcmFtZXRlcnNQdHIsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIGltcG9ydFN1Y2Nlc3NDYWxs
YmFjaywgaW1wb3J0RmFpbHVyZUNhbGxiYWNrKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogUmVwb3J0IGV4Y2VwdGlvbiBkZXRhaWxz
IHRvIGNvbnNvbGUsIGFuZCBwb3NzaWJseSB0byBjYWxsaW5nIHNjcmlwdCBvbmNlIHRoZXJlIGlz
IGEgc3RhbmRhcmRpemVkIHdheSB0byBwYXNzIGVycm9ycyB0byBXZWJDcnlwdG8gcHJvbWlzZSBy
ZWplY3QgZnVuY3Rpb25zLgogICAgICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKLSAg
ICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOworICAgICAgICAgICAgaW1wb3J0RmFpbHVyZUNh
bGxiYWNrKCk7CiAgICAgICAgIH0KICAgICB9OwogCisgICAgYXV0byBkZWNyeXB0RmFpbHVyZUNh
bGxiYWNrID0gW3Byb21pc2VXcmFwcGVyLCB1bndyYXBwZWRLZXlBbGdvcml0aG1QdHIsIHVud3Jh
cHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnNQdHJdKCkgbXV0YWJsZSB7CisgICAgICAgIGRlbGV0
ZSB1bndyYXBwZWRLZXlBbGdvcml0aG1QdHI7CisgICAgICAgIGRlbGV0ZSB1bndyYXBwZWRLZXlB
bGdvcml0aG1QYXJhbWV0ZXJzUHRyOworICAgICAgICBwcm9taXNlV3JhcHBlci5yZWplY3QobnVs
bHB0cik7CisgICAgfTsKKwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHVud3JhcEFs
Z29yaXRobS0+ZGVjcnlwdEZvclVud3JhcEtleSgqdW53cmFwQWxnb3JpdGhtUGFyYW1ldGVycywg
KnVud3JhcHBpbmdLZXksIHdyYXBwZWRLZXlEYXRhLCBzdGQ6Om1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgc3RkOjptb3ZlKGZhaWx1cmVDYWxsYmFjayksIGVjKTsKKyAgICB1bndyYXBBbGdvcml0aG0t
PmRlY3J5cHRGb3JVbndyYXBLZXkoKnVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMsICp1bndyYXBw
aW5nS2V5LCB3cmFwcGVkS2V5RGF0YSwgc3RkOjptb3ZlKGRlY3J5cHRTdWNjZXNzQ2FsbGJhY2sp
LCBzdGQ6Om1vdmUoZGVjcnlwdEZhaWx1cmVDYWxsYmFjayksIGVjKTsKICAgICBpZiAoZWMpIHsK
ICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbAkocmV2
aXNpb24gMTU5NjM3KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDUgKzM3LDYgQEAKICAgICBbQ3VzdG9tXSBQcm9taXNlIGdl
bmVyYXRlS2V5KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFu
IGV4dHJhY3RhYmxlLCBvcHRpb25hbCBLZXlVc2FnZVtdIGtleVVzYWdlcyk7CiAgICAgW0N1c3Rv
bV0gUHJvbWlzZSBpbXBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRvT3BlcmF0aW9uRGF0
YSBrZXlEYXRhLCBBbGdvcml0aG1JZGVudGlmaWVyPyBhbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xl
YW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIEtleVVzYWdlW10ga2V5VXNhZ2VzKTsKICAgICBbQ3Vz
dG9tXSBQcm9taXNlIGV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKKyAgICBb
Q3VzdG9tXSBQcm9taXNlIHdyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgS2V5IGtleSwgS2V5IHdy
YXBwaW5nS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyIHdyYXBBbGdvcml0aG0pOwogICAgIFtDdXN0
b21dIFByb21pc2UgdW53cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b09wZXJhdGlvbkRh
dGEgd3JhcHBlZEtleSwgS2V5IHVud3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgdW53
cmFwQWxnb3JpdGhtLCBBbGdvcml0aG1JZGVudGlmaWVyPyB1bndyYXBwZWRLZXlBbGdvcml0aG0s
IG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlvbmFsIEtleVVzYWdlW10ga2V5VXNh
Z2VzKTsKIH07CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTk2NDEpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0xMS0yMSAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQ3J5
cHRvIHdyYXBLZXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNDczOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJs
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvYWVzLWNiYy13
cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3N1
YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogY3J5cHRvL3N1
YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3J5cHRvL3N1YnRs
ZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0OgorICAgICAgICBUaGVyZSBpcyBubyBsb25n
ZXIgYSBjb25zb2xlIG1lc3NhZ2UsIHRoZSBlcnJvciBpcyBpbiBhbiBleGNlcHRpb24uCisKIDIw
MTMtMTEtMjEgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgogCiAgICAgICAgIEFk
ZGVkIHRlc3QgZm9yIDpob3ZlciBhbmQgamF2YXNjcmlwdCBldmVudHMgb24gdGhlIHZpc3VhbCBv
dmVyZmxvdyBvZiBhIHJlZ2lvbi4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVz
LWNiYy13cmFwLXJzYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB3cmFwcGluZyBhbiBSU0Ega2V5
IHdpdGggQUVTLUNCQy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ltcG9ydGlu
ZyBhIGtleSB0byB3cmFwLi4uCitQQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAncnNhc3NhLXBr
Y3MxLXYxXzUnCitJbXBvcnRpbmcgYSBrZXkgZW5jcnlwdGlvbiBrZXkuLi4KK1BBU1Mgd3JhcHBp
bmdLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ2Flcy1jYmMnCitQQVNTIHdyYXBwZWRLZXkudG9TdHJp
bmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46bWltZS10eXBlCiMjIC0wLDAgKzEgIyMKK3RleHQvcGxhaW4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMj
CituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdy
YXAtcnNhLW5vbi1leHRyYWN0YWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitUZXN0IHdyYXBwaW5n
IGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4KK1BBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlz
ICdyc2Fzc2EtcGtjczEtdjFfNScKK0ltcG9ydGluZyBhIGtleSBlbmNyeXB0aW9uIGtleS4uLgor
UEFTUyB3cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAnYWVzLWNiYycKK3dyYXBwaW5nIHRo
ZSBrZXkuLi4KK1BBU1MgUmVqZWN0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiMjIC0wLDAgKzEgIyMKK3RleHQvcGxhaW4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAt
MCwwICsxICMjCituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJs
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13
cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0
aCBBRVMtQ0JDLiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxl
ID0gdHJ1ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOworCit2YXIgcHVibGljS2V5SlNP
TiA9IHsKKyAgICBrdHk6ICJSU0EiLAorICAgIGFsZzogIlJTMjU2IiwKKyAgICBuOiAicmNDVUN2
N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdY
WmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5
MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2Fz
OHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0Nu
eVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRl
WVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKKyAg
ICBlOiAiQVFBQiIsCisgICAgZXh0cmFjdGFibGU6IGZhbHNlLAorICAgIHVzZTogInNpZyIKK307
CisKK3ZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJp
bmdpZnkocHVibGljS2V5SlNPTikpOwordmFyIHdyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5n
VG9VaW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOworCitkZWJ1
ZygiSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4iKTsKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwg
InZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9IHJlc3VsdDsKKyAg
ICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidyc2Fzc2EtcGtjczEtdjFfNSciKTsK
KyAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IGVuY3J5cHRpb24ga2V5Li4uIik7CisgICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB3cmFwcGluZ0tleU9jdGV0cywgIkFF
Uy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ3cmFwS2V5Il0pOworfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsKKyAgICBzaG91bGRCZSgid3JhcHBp
bmdLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ2Flcy1jYmMnIik7CisgICAgdmFyIHdyYXBBbGdvcml0
aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIw
MzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKKyAgICBkZWJ1Zygid3JhcHBpbmcgdGhlIGtl
eS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoImp3ayIsIGtleSwgd3Jh
cHBpbmdLZXksIHdyYXBBbGdvcml0aG0pOworfSkudGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKCkg
eworICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsK
KworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUu
aHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiMjIC0wLDAgKzEgIyMKK3RleHQv
aHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Flcy1jYmMtd3JhcC1yc2EuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtd3JhcC1yc2EuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFF
Uy1DQkMuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0
cnVlOwordmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7CisKK3ZhciBwdWJsaWNLZXlKU09OID0g
eworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlMyNTYiLAorICAgIG46ICJyY0NVQ3Y3T2Mx
SFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0
eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6
RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dt
bE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2
OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0
eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6
ICJBUUFCIiwKKyAgICBleHRyYWN0YWJsZTogdHJ1ZSwKKyAgICB1c2U6ICJzaWciCit9OworCit2
YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KHB1YmxpY0tleUpTT04pKTsKK3ZhciB3cmFwcGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1RvVWlu
dDhBcnJheSgiMmEwMGUwZTc3NmU5NGU0ZGM4OWJmOTQ3Y2ViZGViZTEiKTsKKworZGVidWcoIklt
cG9ydGluZyBhIGtleSB0byB3cmFwLi4uIik7CitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandr
IiwgandrS2V5QXNBcnJheUJ1ZmZlciwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJp
ZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hv
dWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICIncnNhc3NhLXBrY3MxLXYxXzUnIik7CisgICAg
ZGVidWcoIkltcG9ydGluZyBhIGtleSBlbmNyeXB0aW9uIGtleS4uLiIpOworICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3Iiwgd3JhcHBpbmdLZXlPY3RldHMsICJBRVMtQ0JD
Iiwgbm9uRXh0cmFjdGFibGUsIFsid3JhcEtleSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgd3JhcHBpbmdLZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoIndyYXBwaW5nS2V5
LmFsZ29yaXRobS5uYW1lIiwgIidhZXMtY2JjJyIpOworICAgIHZhciB3cmFwQWxnb3JpdGhtID0g
e25hbWU6ICJBRVMtQ0JDIiwgaXY6IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1
MDYwNzA4MDkwYTBiMGMwZDBlMGYiKX07CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtl
eSgiandrIiwga2V5LCB3cmFwcGluZ0tleSwgd3JhcEFsZ29yaXRobSk7Cit9KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkQmUoIndy
YXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9KTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy13cmFwLXJz
YS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAsMCArMSAjIwordGV4
dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxNTk2MzYpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1leHBvcnQt
a2V5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDMgQEAKLUNPTlNPTEUg
TUVTU0FHRTogS2V5IGlzIG5vdCBleHRyYWN0YWJsZQotQ09OU09MRSBNRVNTQUdFOiBLZXkgaXMg
bm90IGV4dHJhY3RhYmxlCiBUZXN0IGV4cG9ydGluZyBhbiBBRVMga2V5LgogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZXhw
b3J0LWtleS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTk2MzYpCisrKyBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IEtleSBpcyBub3Qg
ZXh0cmFjdGFibGUKLUNPTlNPTEUgTUVTU0FHRTogS2V5IGlzIG5vdCBleHRyYWN0YWJsZQogVGVz
dCBleHBvcnRpbmcgYW4gQUVTIGtleS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgo=
</data>
<flag name="review"
          id="240770"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>