<?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>169231</bug_id>
          
          <creation_ts>2017-03-06 15:57:10 -0800</creation_ts>
          <short_desc>[WebCrypto] Support Elliptic Curve P-521</short_desc>
          <delta_ts>2017-09-21 02:51:54 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=166746</see_also>
          <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>
          <dependson>175659</dependson>
          <blocked>175199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284027</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-06 15:57:10 -0800</bug_when>
    <thetext>Support Elliptic Curve P-521.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284028</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-06 15:57:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/30881703&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285176</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 18:57:00 -0800</bug_when>
    <thetext>Consider writing a test to derive hmac key with length unset. Currently the smallest hmac default length key is 512. No way to derive such large keys from current ECDH.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337081</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-08-09 12:32:55 -0700</bug_when>
    <thetext>Jiewen, any plans for this?

I implemented some support for this in the WIP patch in bug #175199, but for the tests I focused on the W3C ones, and the libgcrypt implementation is capable of passing a big majority of them.

Do you have some work already lined up? Should we first come up with P-521 versions of the current WebKit layout tests covering EC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337085</commentid>
    <comment_count>4</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-08-09 12:47:35 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #3)
&gt; Jiewen, any plans for this?
&gt; 
&gt; I implemented some support for this in the WIP patch in bug #175199, but for
&gt; the tests I focused on the W3C ones, and the libgcrypt implementation is
&gt; capable of passing a big majority of them.
&gt; 
&gt; Do you have some work already lined up? Should we first come up with P-521
&gt; versions of the current WebKit layout tests covering EC?

No, I don&apos;t have any plans for supporting P-521 yet since it needs the underlying CommonCrypto&apos;s support. Given the security strength of P-521, I think it is not needed in a near future. Feel free to implement a GCrypt support with sufficient WebKit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343544</commentid>
    <comment_count>5</comment_count>
      <attachid>319363</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-08-30 08:47:38 -0700</bug_when>
    <thetext>Created attachment 319363
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343545</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-30 08:50:09 -0700</bug_when>
    <thetext>Attachment 319363 did not pass style-queue:


ERROR: Source/WebCore/crypto/keys/CryptoKeyEC.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 in 6 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>1344345</commentid>
    <comment_count>7</comment_count>
      <attachid>319587</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-09-01 01:51:46 -0700</bug_when>
    <thetext>Created attachment 319587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344346</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-01 01:53:28 -0700</bug_when>
    <thetext>Attachment 319587 did not pass style-queue:


ERROR: Source/WebCore/crypto/keys/CryptoKeyEC.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 6 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>1349480</commentid>
    <comment_count>9</comment_count>
      <attachid>319587</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-09-15 13:01:54 -0700</bug_when>
    <thetext>Comment on attachment 319587
Patch

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

Looks good to me. Thanks for adding the support for P-521.

&gt; Source/WebCore/crypto/mac/CryptoKeyECMac.cpp:226
&gt; +        ASSERT_NOT_REACHED();

Probably ASSERT_NOT_REACHED() is better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349481</commentid>
    <comment_count>10</comment_count>
      <attachid>319587</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-09-15 13:03:12 -0700</bug_when>
    <thetext>Comment on attachment 319587
Patch

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

&gt;&gt; Source/WebCore/crypto/mac/CryptoKeyECMac.cpp:226
&gt;&gt; +        ASSERT_NOT_REACHED();
&gt; 
&gt; Probably ASSERT_NOT_REACHED() is better?

Sorry, please ignore this comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351155</commentid>
    <comment_count>11</comment_count>
      <attachid>321416</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-09-21 02:09:03 -0700</bug_when>
    <thetext>Created attachment 321416
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351156</commentid>
    <comment_count>12</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-09-21 02:09:42 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #11)
&gt; Created attachment 321416 [details]
&gt; Patch for landing

Thanks for the review. This is just the rebased patch that I&apos;ll land in a moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351158</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 02:12:58 -0700</bug_when>
    <thetext>Attachment 321416 did not pass style-queue:


ERROR: Source/WebCore/crypto/keys/CryptoKeyEC.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 1 in 6 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>1351162</commentid>
    <comment_count>14</comment_count>
      <attachid>321416</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-09-21 02:51:50 -0700</bug_when>
    <thetext>Comment on attachment 321416
Patch for landing

Clearing flags on attachment: 321416

Committed r222316: &lt;http://trac.webkit.org/changeset/222316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351163</commentid>
    <comment_count>15</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-09-21 02:51:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319363</attachid>
            <date>2017-08-30 08:47:38 -0700</date>
            <delta_ts>2017-09-01 01:51:41 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-169231-20170830174736.patch</filename>
            <type>text/plain</type>
            <size>12416</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMjU2ZTJjOGVmODVk
ZDc0Y2NkZTBhNjMxZjBlN2JmMDRkZDcxOC4uYjA0MTkyNDlmM2I0MmU2ZmY1NzM1YTZkYWY2MGFl
ZjE5MWJlYTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA4LTMwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViQ3J5cHRvXSBT
dXBwb3J0IEVsbGlwdGljIEN1cnZlIFAtNTIxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGNy
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0FsZ29yaXRobUVDRFNBOjppbXBvcnRLZXkpOgorICAgICAgICAqIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvS2V5RUNHQ3J5cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3VydmVOYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OmN1cnZlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3Jl
OjpjdXJ2ZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Y3VydmVVbmNvbXByZXNzZWRGaWVsZEVs
ZW1lbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpwbGF0Zm9ybVN1cHBv
cnRlZEN1cnZlKToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0b05hbWVkQ3VydmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5
RUM6OmdlbmVyYXRlUGFpcik6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6aW1wb3J0
UmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjppbXBvcnRKd2spOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmltcG9ydFNwa2kpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvS2V5RUM6OmltcG9ydFBrY3M4KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVD
OjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6Om5hbWVk
Q3VydmVTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmFsZ29y
aXRobSBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAg
ICAgKiBjcnlwdG8vbWFjL0NyeXB0b0tleUVDTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRv
ZXNVbmNvbXByZXNzZWRQb2ludE1hdGNoTmFtZWRDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
b2VzRmllbGRFbGVtZW50TWF0Y2hOYW1lZEN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEtl
eVNpemVGcm9tTmFtZWRDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxh
dGZvcm1TdXBwb3J0ZWRDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRPSUQpOgorCiAyMDE3
LTA4LTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjIxMDI4NykgT24gZHJvcCwgZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEo
InRleHQiKSByZXR1cm5zIGFuIGVtcHR5IHN0cmluZyB3aGVuIGRyYWdnaW5nIGFuIGltYWdlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1FQ0RTQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1FQ0RTQS5jcHAKaW5kZXggNzY3NzkxZDZjOTIyY2MzMzFjOGFjZDk3OTkwMjY5YTU2ZDgx
NTA5Yi4uYzU1ZjUxNDQwZDlmNTUwMzJiNDRhOTY0NzdhNTRmMDE2NjBlMGMwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUVDRFNBLmNwcApAQCAtMzUsOCArMzUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0
aWMgY29uc3QgY2hhciogY29uc3QgQUxHMjU2ID0gIkVTMjU2IjsKIHN0YXRpYyBjb25zdCBjaGFy
KiBjb25zdCBBTEczODQgPSAiRVMzODQiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEFMRzUx
MiA9ICJFUzUxMiI7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgUDI1NiA9ICJQLTI1NiI7CiBz
dGF0aWMgY29uc3QgY2hhciogY29uc3QgUDM4NCA9ICJQLTM4NCI7CitzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgUDUyMSA9ICJQLTUyMSI7CiAKIFJlZjxDcnlwdG9BbGdvcml0aG0+IENyeXB0b0Fs
Z29yaXRobUVDRFNBOjpjcmVhdGUoKQogewpAQCAtMTE5LDYgKzEyMSw4IEBAIHZvaWQgQ3J5cHRv
QWxnb3JpdGhtRUNEU0E6OmltcG9ydEtleShDcnlwdG9LZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRh
JiYgZGF0YSwgY29uCiAgICAgICAgICAgICBpc01hdGNoZWQgPSBrZXkuYWxnLmlzTnVsbCgpIHx8
IGtleS5hbGcgPT0gQUxHMjU2OwogICAgICAgICBpZiAoa2V5LmNydiA9PSBQMzg0KQogICAgICAg
ICAgICAgaXNNYXRjaGVkID0ga2V5LmFsZy5pc051bGwoKSB8fCBrZXkuYWxnID09IEFMRzM4NDsK
KyAgICAgICAgaWYgKGtleS5jcnYgPT0gUDUyMSkKKyAgICAgICAgICAgIGlzTWF0Y2hlZCA9IGtl
eS5hbGcuaXNOdWxsKCkgfHwga2V5LmFsZyA9PSBBTEc1MTI7CiAgICAgICAgIGlmICghaXNNYXRj
aGVkKSB7CiAgICAgICAgICAgICBleGNlcHRpb25DYWxsYmFjayhEYXRhRXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9D
cnlwdG9LZXlFQ0dDcnlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0
b0tleUVDR0NyeXB0LmNwcAppbmRleCA1MTQxYTU0MTVkNzE5N2ViNjZlM2M0M2I2NmUzZTUzN2Ez
NzZlMDQzLi43MmQxMDI5Y2E0OTBmOWJiY2EyMjlmMjZjNTUyMjgwMDhmNWM2MmM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0tleUVDR0NyeXB0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0tleUVDR0NyeXB0LmNwcApA
QCAtNDUsNiArNDUsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogY3VydmVOYW1lKENyeXB0b0tleUVD
OjpOYW1lZEN1cnZlIGN1cnZlKQogICAgICAgICByZXR1cm4gIk5JU1QgUC0yNTYiOwogICAgIGNh
c2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiAiTklTVCBQ
LTM4NCI7CisgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01OCw2ICs2MCw4
IEBAIHN0YXRpYyBjb25zdCB1aW50OF90KiBjdXJ2ZUlkZW50aWZpZXIoQ3J5cHRvS2V5RUM6Ok5h
bWVkQ3VydmUgY3VydmUpCiAgICAgICAgIHJldHVybiBDcnlwdG9Db25zdGFudHM6OnNfc2VjcDI1
NnIxSWRlbnRpZmllci5kYXRhKCk7CiAgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6
UDM4NDoKICAgICAgICAgcmV0dXJuIENyeXB0b0NvbnN0YW50czo6c19zZWNwMzg0cjFJZGVudGlm
aWVyLmRhdGEoKTsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTcxLDYg
Kzc1LDggQEAgc3RhdGljIHNpemVfdCBjdXJ2ZVNpemUoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUg
Y3VydmUpCiAgICAgICAgIHJldHVybiAyNTY7CiAgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRD
dXJ2ZTo6UDM4NDoKICAgICAgICAgcmV0dXJuIDM4NDsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpO
YW1lZEN1cnZlOjpQNTIxOgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTg0LDYgKzkwLDggQEAgc3RhdGljIHVuc2lnbmVkIGN1cnZlVW5jb21w
cmVzc2VkRmllbGRFbGVtZW50U2l6ZShDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZSBjdXJ2ZSkKICAg
ICAgICAgcmV0dXJuIDMyOwogICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlAzODQ6
CiAgICAgICAgIHJldHVybiA0ODsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQ
NTIxOgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTEwOCw2ICsxMTYsMTEgQEAgc2l6ZV90IENyeXB0b0tleUVDOjprZXlTaXplSW5CaXRzKCkg
Y29uc3QKICAgICByZXR1cm4gc2l6ZTsKIH0KIAorYm9vbCBDcnlwdG9LZXlFQzo6cGxhdGZvcm1T
dXBwb3J0ZWRDdXJ2ZShOYW1lZEN1cnZlIGN1cnZlKQoreworICAgIHJldHVybiBjdXJ2ZSA9PSBO
YW1lZEN1cnZlOjpQMjU2IHx8IGN1cnZlID09IE5hbWVkQ3VydmU6OlAzODQ7Cit9CisKIHN0ZDo6
b3B0aW9uYWw8Q3J5cHRvS2V5UGFpcj4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtR2VuZXJhdGVQYWly
KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewogICAgIFBB
TDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9zZXhwX3Q+IGdlbmtleVNleHA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKaW5kZXggZDE0NWM2ZmNkNGE3NTViZGMxODY0
MmFlZWFmNTRlZGE0NmQzZjgwNC4uZTkxYjI4NGIxYjUwYmNiNGYyMzlkNzA5ZGEwYzY5NTNiNWY2
ZmQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcApAQCAt
MzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBj
b25zdCBQMjU2ID0gIlAtMjU2IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBQMzg0ID0gIlAt
Mzg0IjsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBQNTIxID0gIlAtNTIxIjsKIAogc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU+IHRvTmFtZWRDdXJ2ZShjb25z
dCBTdHJpbmcmIGN1cnZlKQogewpAQCAtNDMsNiArNDQsOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZT4gdG9OYW1lZEN1cnZlKGNvbnN0IFN0cmluZyYgY3Vy
dmUpCiAgICAgICAgIHJldHVybiBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDI1NjsKICAgICBp
ZiAoY3VydmUgPT0gUDM4NCkKICAgICAgICAgcmV0dXJuIENyeXB0b0tleUVDOjpOYW1lZEN1cnZl
OjpQMzg0OworICAgIGlmIChjdXJ2ZSA9PSBQNTIxKQorICAgICAgICByZXR1cm4gQ3J5cHRvS2V5
RUM6Ok5hbWVkQ3VydmU6OlA1MjE7CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQpAQCAt
NTcsNyArNjAsNyBAQCBDcnlwdG9LZXlFQzo6Q3J5cHRvS2V5RUMoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBpZGVudGlmaWVyLCBOYW1lZEN1cnZlIGN1cnZlLAogRXhjZXB0aW9uT3I8Q3J5cHRv
S2V5UGFpcj4gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgY3VydmUsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKIHsKICAgICBhdXRvIG5hbWVkQ3VydmUgPSB0b05h
bWVkQ3VydmUoY3VydmUpOwotICAgIGlmICghbmFtZWRDdXJ2ZSkKKyAgICBpZiAoIW5hbWVkQ3Vy
dmUgfHwgIXBsYXRmb3JtU3VwcG9ydGVkQ3VydmUoKm5hbWVkQ3VydmUpKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAogICAgIGF1dG8gcmVzdWx0ID0g
cGxhdGZvcm1HZW5lcmF0ZVBhaXIoaWRlbnRpZmllciwgKm5hbWVkQ3VydmUsIGV4dHJhY3RhYmxl
LCB1c2FnZXMpOwpAQCAtNzAsNyArNzMsNyBAQCBFeGNlcHRpb25PcjxDcnlwdG9LZXlQYWlyPiBD
cnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaQogUmVm
UHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBjdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+
JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2Vz
KQogewogICAgIGF1dG8gbmFtZWRDdXJ2ZSA9IHRvTmFtZWRDdXJ2ZShjdXJ2ZSk7Ci0gICAgaWYg
KCFuYW1lZEN1cnZlKQorICAgIGlmICghbmFtZWRDdXJ2ZSB8fCAhcGxhdGZvcm1TdXBwb3J0ZWRD
dXJ2ZSgqbmFtZWRDdXJ2ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJu
IHBsYXRmb3JtSW1wb3J0UmF3KGlkZW50aWZpZXIsICpuYW1lZEN1cnZlLCBXVEZNb3ZlKGtleURh
dGEpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKQEAgLTg4LDcgKzkxLDcgQEAgUmVmUHRyPENyeXB0
b0tleUVDPiBDcnlwdG9LZXlFQzo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aWRlbnRpZmllciwKICAgICBpZiAoa2V5RGF0YS5jcnYuaXNOdWxsKCkgfHwgY3VydmUgIT0ga2V5
RGF0YS5jcnYpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gbmFtZWRDdXJ2ZSA9
IHRvTmFtZWRDdXJ2ZShrZXlEYXRhLmNydik7Ci0gICAgaWYgKCFuYW1lZEN1cnZlKQorICAgIGlm
ICghbmFtZWRDdXJ2ZSB8fCAhcGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZSgqbmFtZWRDdXJ2ZSkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGtleURhdGEueC5pc051bGwoKSB8fCBr
ZXlEYXRhLnkuaXNOdWxsKCkpCkBAIC0xMTQsNyArMTE3LDcgQEAgUmVmUHRyPENyeXB0b0tleUVD
PiBDcnlwdG9LZXlFQzo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRp
ZmllciwKIFJlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OmltcG9ydFNwa2koQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGN1cnZlLCBWZWN0
b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJp
dG1hcCB1c2FnZXMpCiB7CiAgICAgYXV0byBuYW1lZEN1cnZlID0gdG9OYW1lZEN1cnZlKGN1cnZl
KTsKLSAgICBpZiAoIW5hbWVkQ3VydmUpCisgICAgaWYgKCFuYW1lZEN1cnZlIHx8ICFwbGF0Zm9y
bVN1cHBvcnRlZEN1cnZlKCpuYW1lZEN1cnZlKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICByZXR1cm4gcGxhdGZvcm1JbXBvcnRTcGtpKGlkZW50aWZpZXIsICpuYW1lZEN1cnZlLCBX
VEZNb3ZlKGtleURhdGEpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKQEAgLTEyMyw3ICsxMjYsNyBA
QCBSZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjppbXBvcnRTcGtpKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaWRlbnRpZmllcgogUmVmUHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlF
Qzo6aW1wb3J0UGtjczgoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMpCiB7CiAgICAgYXV0byBuYW1lZEN1cnZl
ID0gdG9OYW1lZEN1cnZlKGN1cnZlKTsKLSAgICBpZiAoIW5hbWVkQ3VydmUpCisgICAgaWYgKCFu
YW1lZEN1cnZlIHx8ICFwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKCpuYW1lZEN1cnZlKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gcGxhdGZvcm1JbXBvcnRQa2NzOChpZGVu
dGlmaWVyLCAqbmFtZWRDdXJ2ZSwgV1RGTW92ZShrZXlEYXRhKSwgZXh0cmFjdGFibGUsIHVzYWdl
cyk7CkBAIC0xNTEsNiArMTU0LDkgQEAgRXhjZXB0aW9uT3I8SnNvbldlYktleT4gQ3J5cHRvS2V5
RUM6OmV4cG9ydEp3aygpIGNvbnN0CiAgICAgY2FzZSBOYW1lZEN1cnZlOjpQMzg0OgogICAgICAg
ICByZXN1bHQuY3J2ID0gUDM4NDsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOYW1lZEN1cnZl
OjpQNTIxOgorICAgICAgICByZXN1bHQuY3J2ID0gUDUyMTsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJh
Y3RhYmxlKCk7CkBAIC0xODgsNiArMTk0LDggQEAgU3RyaW5nIENyeXB0b0tleUVDOjpuYW1lZEN1
cnZlU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFN0cmluZyhQMjU2KTsKICAgICBjYXNl
IE5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiBTdHJpbmcoUDM4NCk7CisgICAgY2Fz
ZSBOYW1lZEN1cnZlOjpQNTIxOgorICAgICAgICByZXR1cm4gU3RyaW5nKFA1MjEpOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjExLDYgKzIxOSw5IEBAIGF1dG8gQ3J5
cHRvS2V5RUM6OmFsZ29yaXRobSgpIGNvbnN0IC0+IEtleUFsZ29yaXRobQogICAgIGNhc2UgTmFt
ZWRDdXJ2ZTo6UDM4NDoKICAgICAgICAgcmVzdWx0Lm5hbWVkQ3VydmUgPSBBU0NJSUxpdGVyYWwo
UDM4NCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAg
ICAgcmVzdWx0Lm5hbWVkQ3VydmUgPSBBU0NJSUxpdGVyYWwoUDUyMSk7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMv
Q3J5cHRvS2V5RUMuaAppbmRleCA4MGRkZjZjMmE2ZWE3MTdkMzU5YjNmNWVkNWRhMGIzNGIwZWNh
NDJmLi43NGQ2ZDg1NzQ1OThlNzMyYjM4MjExZjUxM2ZmZDA2NjIyZTgyNTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKQEAgLTQ5LDEwICs0OSwxMCBAQCBzdHJ1
Y3QgSnNvbldlYktleTsKIAogY2xhc3MgQ3J5cHRvS2V5RUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
S2V5IHsKIHB1YmxpYzoKLSAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIEVsbGlwdGljIEN1
cnZlIFAtNTIxIChodHRwczovL3dlYmtpdC5vcmcvYi8xNjkyMzEpCiAgICAgZW51bSBjbGFzcyBO
YW1lZEN1cnZlIHsKICAgICAgICAgUDI1NiwKICAgICAgICAgUDM4NCwKKyAgICAgICAgUDUyMSwK
ICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxDcnlwdG9LZXlFQz4gY3JlYXRlKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgQ3J5cHRvS2V5VHlw
ZSB0eXBlLCBQbGF0Zm9ybUVDS2V5IHBsYXRmb3JtS2V5LCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMpCkBAIC04NSw2ICs4NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBLZXlBbGdvcml0aG0gYWxnb3JpdGhtKCkgY29uc3QgZmluYWw7CiAKKyAgICBzdGF0aWMgYm9v
bCBwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKE5hbWVkQ3VydmUpOwogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPENyeXB0b0tleVBhaXI+IHBsYXRmb3JtR2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
Qml0bWFwKTsKICAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0tleUVDPiBwbGF0Zm9ybUltcG9ydFJh
dyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4m
JiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCk7CiAgICAg
c3RhdGljIFJlZlB0cjxDcnlwdG9LZXlFQz4gcGxhdGZvcm1JbXBvcnRKV0tQdWJsaWMoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRDdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYgeCwgVmVj
dG9yPHVpbnQ4X3Q+JiYgeSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlFQ01hYy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleUVDTWFjLmNwcAppbmRleCA3
MzAwNGE4OGY4MWIxMGVlYTAwYWEzNjdjZjc5YzNmZjMwMzRmMzFlLi42ODU0MWM1MmZhOTZkMDIz
ZGUzMWM3ZGU2ZmUzZTNlMzFiY2VhNDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL0NyeXB0b0tleUVDTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0tleUVDTWFjLmNwcApAQCAtNTYsNiArNTYsOCBAQCBzdGF0aWMgYm9vbCBkb2VzVW5j
b21wcmVzc2VkUG9pbnRNYXRjaE5hbWVkQ3VydmUoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3Vy
dmUsCiAgICAgICAgIHJldHVybiBzaXplID09IDY1OwogICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5h
bWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiBzaXplID09IDk3OworICAgIGNhc2UgQ3J5
cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlA1MjE6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzAsNiArNzIsOCBAQCBzdGF0aWMgYm9vbCBkb2Vz
RmllbGRFbGVtZW50TWF0Y2hOYW1lZEN1cnZlKENyeXB0b0tleUVDOjpOYW1lZEN1cnZlIGN1cnZl
LCBzaXplXwogICAgICAgICByZXR1cm4gc2l6ZSA9PSAzMjsKICAgICBjYXNlIENyeXB0b0tleUVD
OjpOYW1lZEN1cnZlOjpQMzg0OgogICAgICAgICByZXR1cm4gc2l6ZSA9PSA0ODsKKyAgICBjYXNl
IENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTgzLDYgKzg3LDggQEAgc3RhdGljIHNpemVf
dCBnZXRLZXlTaXplRnJvbU5hbWVkQ3VydmUoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3VydmUp
CiAgICAgICAgIHJldHVybiAyNTY7CiAgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6
UDM4NDoKICAgICAgICAgcmV0dXJuIDM4NDsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1
cnZlOjpQNTIxOgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTEwMCw2ICsxMDYsMTEgQEAgc2l6ZV90IENyeXB0b0tleUVDOjprZXlTaXplSW5C
aXRzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0IDogMDsKIH0KIAorYm9vbCBD
cnlwdG9LZXlFQzo6cGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZShOYW1lZEN1cnZlIGN1cnZlKQorewor
ICAgIHJldHVybiBjdXJ2ZSA9PSBOYW1lZEN1cnZlOjpQMjU2IHx8IGN1cnZlID09IE5hbWVkQ3Vy
dmU6OlAzODQ7Cit9CisKIHN0ZDo6b3B0aW9uYWw8Q3J5cHRvS2V5UGFpcj4gQ3J5cHRvS2V5RUM6
OnBsYXRmb3JtR2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRt
YXAgdXNhZ2VzKQogewogICAgIHNpemVfdCBzaXplID0gZ2V0S2V5U2l6ZUZyb21OYW1lZEN1cnZl
KGN1cnZlKTsKQEAgLTIxMCw2ICsyMjEsMTIgQEAgc3RhdGljIHNpemVfdCBnZXRPSUQoQ3J5cHRv
S2V5RUM6Ok5hbWVkQ3VydmUgY3VydmUsIGNvbnN0IHVpbnQ4X3QqJiBvaWQpCiAgICAgY2FzZSBD
cnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDM4NDoKICAgICAgICAgb2lkID0gU2VjcDM4NHIxOwog
ICAgICAgICBvaWRTaXplID0gc2l6ZW9mKFNlY3AzODRyMSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlA1MjE6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBvaWQgPSBudWxscHRyOworICAgICAgICBvaWRTaXplID0gMDsK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBvaWRTaXplOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319587</attachid>
            <date>2017-09-01 01:51:46 -0700</date>
            <delta_ts>2017-09-21 02:08:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169231-20170901105144.patch</filename>
            <type>text/plain</type>
            <size>14709</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzgxNzY0ZjQ5Mjk5NDAy
OTM2ZWE3YTNkMDYxNzAzNmQ0ZmM5ODc3Zi4uMjNmY2Q1MjgwMzlmNjJiZTJmOTFhMTE1ZTUyYjM4
ZGI0YzIwMWFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE3LTA5LTAxICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViQ3J5cHRvXSBT
dXBwb3J0IEVsbGlwdGljIEN1cnZlIFAtNTIxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkyMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwODgx
NzAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciB0aGUgUC01MjEgZWxsaXB0aWMgY3VydmUgdG8gdGhlIENyeXB0b0tleUVD
IGNsYXNzLCBidXQKKyAgICAgICAgYWxsb3cgdGhlIHVuZGVybHlpbmcgcGxhdGZvcm0tc3BlY2lm
aWMgaW1wbGVtZW50YXRpb25zIHRvIG9wdCBvdXQgb2YKKyAgICAgICAgc3VwcG9ydGluZyB0aGlz
IGZlYXR1cmUuCisKKyAgICAgICAgVGhpcyBpcyBhY2hpZXZlZCB3aXRoIHRoZSBwbGF0Zm9ybVN1
cHBvcnRlZEN1cnZlKCkgc3RhdGljIGZ1bmN0aW9uIHRoYXQKKyAgICAgICAgZWFjaCBwbGF0Zm9y
bSBoYXMgdG8gaW1wbGVtZW50LCByZXR1cm5pbmcgdHJ1ZSBpZiB0aGUgcGFzc2VkLWluIGN1cnZl
CisgICAgICAgIHR5cGUgaXMgc3VwcG9ydGVkLiBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIGF0IGVh
Y2ggQ3J5cHRvS2V5RUMgZW50cnlwb2ludCwKKyAgICAgICAgdGhhdCBpcyBpbiBlYWNoIHN0YXRp
YyBmdW5jdGlvbiB0aGF0IGNvdWxkIGdlbmVyYXRlIGEgbmV3IENyeXB0b0tleUVDCisgICAgICAg
IG9iamVjdC4gVGhlc2UgZnVuY3Rpb25zIHJldHVybiBhIE5vdFN1cHBvcnRlZEVycm9yIGV4Y2Vw
dGlvbiBpbiBjYXNlIHRoZQorICAgICAgICBwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKCkgY2FsbCBy
ZXR1cm5zIGZhbHNlLgorCisgICAgICAgIFdoaWxlIHRoZSBsaWJnY3J5cHQtYmFzZWQgaW1wbGVt
ZW50YXRpb24gd2lsbCBzdXBwb3J0IFAtNTIxIGN1cnZlcyBpbgorICAgICAgICB0aGUgbmVhciBm
dXR1cmUsIHRoZSBDb21tb25DcnlwdG8tYmFzZWQgaW1wbGVtZW50YXRpb24gbWlnaHQgbm90LiBU
aGUgdXNlCisgICAgICAgIG9mIHBsYXRmb3JtU3VwcG9ydGVkQ3VydmUoKSBlbnN1cmVzIHRoYXQg
dGhlIGltcGxlbWVudGF0aW9ucyB0aGF0IGRvbid0CisgICAgICAgIHN1cHBvcnQgRUMgUC01MjEg
Y29udGludWUgdG8gcmV0dXJuIHRoZSBOb3RTdXBwb3J0ZWRFcnJvciBleGNlcHRpb24gYXQKKyAg
ICAgICAgdGhlc2UgZW50cnlwb2ludHMsIGluc3RlYWQgb2YgdGhlIE9wZXJhdGlvbkVycm9yIGV4
Y2VwdGlvbiB0aGF0J3MgcmV0dXJuZWQKKyAgICAgICAgd2hlbiB0aGUgcGxhdGZvcm0tc3BlY2lm
aWMgZXh0ZW5zaW9ucyBvZiB0aGVzZSBlbnRyeXBvaW50cyBmYWlsIGR1ZSB0byB0aGUKKyAgICAg
ICAgc3BlY2lmaWVkIGVsbGlwdGljIGN1cnZlIG5vdCBiZWluZyBzdXBwb3J0ZWQuCisKKyAgICAg
ICAgQm90aCBsaWJnY3J5cHQtYmFzZWQgYW5kIENvbW1vbkNyeXB0by1iYXNlZCBpbXBsZW1lbnRh
dGlvbnMgbWFyayBQLTI1NiBhbmQKKyAgICAgICAgUC0zODQgY3VydmVzIGFzIHN1cHBvcnRlZC4g
U3dpdGNoIHN0YXRlbWVudHMgaGFuZGxpbmcgTmFtZWRDdXJ2ZSB2YWx1ZXMKKyAgICAgICAgbXVz
dCBub3cgYWxzbyBoYW5kbGUgdGhlIE5hbWVkQ3VydmU6OlA1MjEgdmFsdWUsIGJ1dCBib3RoIGlt
cGxlbWVudGF0aW9ucworICAgICAgICB0cmVhdCB0aGF0IGFzIGFuIHVucmVhY2hhYmxlIGNhc2Ug
c2luY2Ugc3VwcG9ydCBpcyBub3QgaW5kaWNhdGVkIGluCisgICAgICAgIHBsYXRmb3JtU3VwcG9y
dGVkQ3VydmUoKSwgYW5kIGFsbCBDcnlwdG9LZXlFQyBvcGVyYXRpb25zIHNob3VsZCBoYXZlCisg
ICAgICAgIHJldHVybmVkIHdpdGggYW4gTm90U3VwcG9ydGVkRXJyb3IgZXhjZXB0aW9uIGJlZm9y
ZSBlbnRlcmluZworICAgICAgICBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlLiBUaGUgY29tbW9uIENy
eXB0b0tleUVDIGNvbnN0cnVjdG9yIHNpbWlsYXJseSBhc3NlcnRzCisgICAgICAgIHRoYXQgdGhl
IHNwZWNpZmllZCBjdXJ2ZSBpcyBzdXBwb3J0ZWQgYnkgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50
YXRpb24uCisKKyAgICAgICAgQ3J5cHRvQWxnb3JpdGhtRUNEU0EgaXMgbW9kaWZpZWQgdG8gbm93
IGFsc28gc3VwcG9ydCAnRVM1MTInIGFzIHRoZSBhbGdvcml0aG0KKyAgICAgICAgaWRlbnRpZmll
ciwgbWF0Y2hpbmcgaXQgYWdhaW5zdCB0aGUgJ1AtNTIxJyBjdXJ2ZSB2YWx1ZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgLS0gdGVzdHMgY292ZXJpbmcgRUMgUC01MjEgYWxyZWFkeSBleGlzdCwg
YnV0IG5vIHBsYXRmb3JtCisgICAgICAgIHJ1bnMgdGhlbSB5ZXQgZHVlIHRvIG1pc3NpbmcgaW1w
bGVtZW50YXRpb25zLgorCisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNEU0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtRUNEU0E6Omlt
cG9ydEtleSk6CisgICAgICAgICogY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlFQ0dDcnlwdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjdXJ2ZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Y3VydmVJ
ZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OmN1cnZlU2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjdXJ2ZVVuY29tcHJlc3NlZEZpZWxkRWxlbWVudFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3J5cHRvS2V5RUM6OnBsYXRmb3JtU3VwcG9ydGVkQ3VydmUpOgorICAgICAgICAqIGNyeXB0
by9rZXlzL0NyeXB0b0tleUVDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvTmFtZWRDdXJ2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6Q3J5cHRvS2V5RUMpOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcik6CisgICAgICAgIChXZWJDb3JlOjpD
cnlwdG9LZXlFQzo6aW1wb3J0UmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpp
bXBvcnRKd2spOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmltcG9ydFNwa2kpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmltcG9ydFBrY3M4KToKKyAgICAgICAgKFdl
YkNvcmU6OkNyeXB0b0tleUVDOjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvS2V5RUM6Om5hbWVkQ3VydmVTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvS2V5RUM6OmFsZ29yaXRobSBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0tleUVDTWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmRvZXNVbmNvbXByZXNzZWRQb2ludE1hdGNoTmFtZWRDdXJ2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpkb2VzRmllbGRFbGVtZW50TWF0Y2hOYW1lZEN1cnZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmdldEtleVNpemVGcm9tTmFtZWRDdXJ2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9LZXlFQzo6cGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpnZXRPSUQpOgorCiAyMDE3LTA4LTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IFdpbmRvd3MgYnVpbGQgYWZ0ZXIgcjIyMTQyMgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNEU0EuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtRUNEU0EuY3BwCmluZGV4IDc2Nzc5MWQ2YzkyMmNjMzMxYzhhY2Q5Nzk5MDI2OWE1NmQ4
MTUwOWIuLmM1NWY1MTQ0MGQ5ZjU1MDMyYjQ0YTk2NDc3YTU0ZjAxNjYwZTBjMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNB
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1FQ0RTQS5jcHAKQEAgLTM1LDggKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0IEFMRzI1NiA9ICJFUzI1NiI7CiBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgQUxHMzg0ID0gIkVTMzg0IjsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBBTEc1
MTIgPSAiRVM1MTIiOwogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IFAyNTYgPSAiUC0yNTYiOwog
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IFAzODQgPSAiUC0zODQiOworc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IFA1MjEgPSAiUC01MjEiOwogCiBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBDcnlwdG9B
bGdvcml0aG1FQ0RTQTo6Y3JlYXRlKCkKIHsKQEAgLTExOSw2ICsxMjEsOCBAQCB2b2lkIENyeXB0
b0FsZ29yaXRobUVDRFNBOjppbXBvcnRLZXkoQ3J5cHRvS2V5Rm9ybWF0IGZvcm1hdCwgS2V5RGF0
YSYmIGRhdGEsIGNvbgogICAgICAgICAgICAgaXNNYXRjaGVkID0ga2V5LmFsZy5pc051bGwoKSB8
fCBrZXkuYWxnID09IEFMRzI1NjsKICAgICAgICAgaWYgKGtleS5jcnYgPT0gUDM4NCkKICAgICAg
ICAgICAgIGlzTWF0Y2hlZCA9IGtleS5hbGcuaXNOdWxsKCkgfHwga2V5LmFsZyA9PSBBTEczODQ7
CisgICAgICAgIGlmIChrZXkuY3J2ID09IFA1MjEpCisgICAgICAgICAgICBpc01hdGNoZWQgPSBr
ZXkuYWxnLmlzTnVsbCgpIHx8IGtleS5hbGcgPT0gQUxHNTEyOwogICAgICAgICBpZiAoIWlzTWF0
Y2hlZCkgewogICAgICAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soRGF0YUVycm9yKTsKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQv
Q3J5cHRvS2V5RUNHQ3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9Dcnlw
dG9LZXlFQ0dDcnlwdC5jcHAKaW5kZXggNTE0MWE1NDE1ZDcxOTdlYjY2ZTNjNDNiNjZlM2U1Mzdh
Mzc2ZTA0My4uNzJkMTAyOWNhNDkwZjliYmNhMjI5ZjI2YzU1MjI4MDA4ZjVjNjJjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlFQ0dDcnlwdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlFQ0dDcnlwdC5jcHAK
QEAgLTQ1LDYgKzQ1LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIGN1cnZlTmFtZShDcnlwdG9LZXlF
Qzo6TmFtZWRDdXJ2ZSBjdXJ2ZSkKICAgICAgICAgcmV0dXJuICJOSVNUIFAtMjU2IjsKICAgICBj
YXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMzg0OgogICAgICAgICByZXR1cm4gIk5JU1Qg
UC0zODQiOworICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlA1MjE6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTgsNiArNjAs
OCBAQCBzdGF0aWMgY29uc3QgdWludDhfdCogY3VydmVJZGVudGlmaWVyKENyeXB0b0tleUVDOjpO
YW1lZEN1cnZlIGN1cnZlKQogICAgICAgICByZXR1cm4gQ3J5cHRvQ29uc3RhbnRzOjpzX3NlY3Ay
NTZyMUlkZW50aWZpZXIuZGF0YSgpOwogICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6
OlAzODQ6CiAgICAgICAgIHJldHVybiBDcnlwdG9Db25zdGFudHM6OnNfc2VjcDM4NHIxSWRlbnRp
Zmllci5kYXRhKCk7CisgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDUyMToKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC03MSw2
ICs3NSw4IEBAIHN0YXRpYyBzaXplX3QgY3VydmVTaXplKENyeXB0b0tleUVDOjpOYW1lZEN1cnZl
IGN1cnZlKQogICAgICAgICByZXR1cm4gMjU2OwogICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVk
Q3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiAzODQ7CisgICAgY2FzZSBDcnlwdG9LZXlFQzo6
TmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC04NCw2ICs5MCw4IEBAIHN0YXRpYyB1bnNpZ25lZCBjdXJ2ZVVuY29t
cHJlc3NlZEZpZWxkRWxlbWVudFNpemUoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3VydmUpCiAg
ICAgICAgIHJldHVybiAzMjsKICAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMzg0
OgogICAgICAgICByZXR1cm4gNDg7CisgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6
UDUyMToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0xMDgsNiArMTE2LDExIEBAIHNpemVfdCBDcnlwdG9LZXlFQzo6a2V5U2l6ZUluQml0cygp
IGNvbnN0CiAgICAgcmV0dXJuIHNpemU7CiB9CiAKK2Jvb2wgQ3J5cHRvS2V5RUM6OnBsYXRmb3Jt
U3VwcG9ydGVkQ3VydmUoTmFtZWRDdXJ2ZSBjdXJ2ZSkKK3sKKyAgICByZXR1cm4gY3VydmUgPT0g
TmFtZWRDdXJ2ZTo6UDI1NiB8fCBjdXJ2ZSA9PSBOYW1lZEN1cnZlOjpQMzg0OworfQorCiBzdGQ6
Om9wdGlvbmFsPENyeXB0b0tleVBhaXI+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRlUGFp
cihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKIHsKICAgICBQ
QUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlfc2V4cF90PiBnZW5rZXlTZXhwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCmluZGV4IGQxNDVjNmZjZDRhNzU1YmRjMTg2
NDJhZWVhZjU0ZWRhNDZkM2Y4MDQuLjc0ZWM1ZTA0MjQ5ZDBhMGY2ZTViMTA3NGYwZjg4ODk0ZDA5
NmE2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3QgUDI1NiA9ICJQLTI1NiI7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgUDM4NCA9ICJQ
LTM4NCI7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgUDUyMSA9ICJQLTUyMSI7CiAKIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENyeXB0b0tleUVDOjpOYW1lZEN1cnZlPiB0b05hbWVkQ3VydmUoY29u
c3QgU3RyaW5nJiBjdXJ2ZSkKIHsKQEAgLTQzLDYgKzQ0LDggQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8Q3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU+IHRvTmFtZWRDdXJ2ZShjb25zdCBTdHJpbmcmIGN1
cnZlKQogICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlAyNTY7CiAgICAg
aWYgKGN1cnZlID09IFAzODQpCiAgICAgICAgIHJldHVybiBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2
ZTo6UDM4NDsKKyAgICBpZiAoY3VydmUgPT0gUDUyMSkKKyAgICAgICAgcmV0dXJuIENyeXB0b0tl
eUVDOjpOYW1lZEN1cnZlOjpQNTIxOwogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KQEAg
LTUyLDEyICs1NSwxNCBAQCBDcnlwdG9LZXlFQzo6Q3J5cHRvS2V5RUMoQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBpZGVudGlmaWVyLCBOYW1lZEN1cnZlIGN1cnZlLAogICAgICwgbV9wbGF0Zm9y
bUtleShwbGF0Zm9ybUtleSkKICAgICAsIG1fY3VydmUoY3VydmUpCiB7CisgICAgLy8gT25seSBD
cnlwdG9LZXlFQyBvYmplY3RzIGZvciBzdXBwb3J0ZWQgY3VydmVzIHNob3VsZCBiZSBjcmVhdGVk
LgorICAgIEFTU0VSVChwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKGN1cnZlKSk7CiB9CiAKIEV4Y2Vw
dGlvbk9yPENyeXB0b0tleVBhaXI+IENyeXB0b0tleUVDOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGN1cnZlLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMpCiB7CiAgICAgYXV0byBuYW1l
ZEN1cnZlID0gdG9OYW1lZEN1cnZlKGN1cnZlKTsKLSAgICBpZiAoIW5hbWVkQ3VydmUpCisgICAg
aWYgKCFuYW1lZEN1cnZlIHx8ICFwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKCpuYW1lZEN1cnZlKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiAKICAgICBh
dXRvIHJlc3VsdCA9IHBsYXRmb3JtR2VuZXJhdGVQYWlyKGlkZW50aWZpZXIsICpuYW1lZEN1cnZl
LCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKQEAgLTcwLDcgKzc1LDcgQEAgRXhjZXB0aW9uT3I8Q3J5
cHRvS2V5UGFpcj4gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGkKIFJlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgY3VydmUsIFZl
Y3Rvcjx1aW50OF90PiYmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
Qml0bWFwIHVzYWdlcykKIHsKICAgICBhdXRvIG5hbWVkQ3VydmUgPSB0b05hbWVkQ3VydmUoY3Vy
dmUpOwotICAgIGlmICghbmFtZWRDdXJ2ZSkKKyAgICBpZiAoIW5hbWVkQ3VydmUgfHwgIXBsYXRm
b3JtU3VwcG9ydGVkQ3VydmUoKm5hbWVkQ3VydmUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIHJldHVybiBwbGF0Zm9ybUltcG9ydFJhdyhpZGVudGlmaWVyLCAqbmFtZWRDdXJ2ZSwg
V1RGTW92ZShrZXlEYXRhKSwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CkBAIC04OCw3ICs5Myw3IEBA
IFJlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OmltcG9ydEp3ayhDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgaWYgKGtleURhdGEuY3J2LmlzTnVsbCgpIHx8
IGN1cnZlICE9IGtleURhdGEuY3J2KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRv
IG5hbWVkQ3VydmUgPSB0b05hbWVkQ3VydmUoa2V5RGF0YS5jcnYpOwotICAgIGlmICghbmFtZWRD
dXJ2ZSkKKyAgICBpZiAoIW5hbWVkQ3VydmUgfHwgIXBsYXRmb3JtU3VwcG9ydGVkQ3VydmUoKm5h
bWVkQ3VydmUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChrZXlEYXRhLngu
aXNOdWxsKCkgfHwga2V5RGF0YS55LmlzTnVsbCgpKQpAQCAtMTE0LDcgKzExOSw3IEBAIFJlZlB0
cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OmltcG9ydEp3ayhDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGlkZW50aWZpZXIsCiBSZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjppbXBv
cnRTcGtpKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBjdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewogICAgIGF1dG8gbmFtZWRDdXJ2ZSA9IHRvTmFt
ZWRDdXJ2ZShjdXJ2ZSk7Ci0gICAgaWYgKCFuYW1lZEN1cnZlKQorICAgIGlmICghbmFtZWRDdXJ2
ZSB8fCAhcGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZSgqbmFtZWRDdXJ2ZSkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgcmV0dXJuIHBsYXRmb3JtSW1wb3J0U3BraShpZGVudGlmaWVyLCAq
bmFtZWRDdXJ2ZSwgV1RGTW92ZShrZXlEYXRhKSwgZXh0cmFjdGFibGUsIHVzYWdlcyk7CkBAIC0x
MjMsNyArMTI4LDcgQEAgUmVmUHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6aW1wb3J0U3Br
aShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIKIFJlZlB0cjxDcnlwdG9LZXlF
Qz4gQ3J5cHRvS2V5RUM6OmltcG9ydFBrY3M4KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBjdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewogICAgIGF1
dG8gbmFtZWRDdXJ2ZSA9IHRvTmFtZWRDdXJ2ZShjdXJ2ZSk7Ci0gICAgaWYgKCFuYW1lZEN1cnZl
KQorICAgIGlmICghbmFtZWRDdXJ2ZSB8fCAhcGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZSgqbmFtZWRD
dXJ2ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIHBsYXRmb3JtSW1w
b3J0UGtjczgoaWRlbnRpZmllciwgKm5hbWVkQ3VydmUsIFdURk1vdmUoa2V5RGF0YSksIGV4dHJh
Y3RhYmxlLCB1c2FnZXMpOwpAQCAtMTUxLDYgKzE1Niw5IEBAIEV4Y2VwdGlvbk9yPEpzb25XZWJL
ZXk+IENyeXB0b0tleUVDOjpleHBvcnRKd2soKSBjb25zdAogICAgIGNhc2UgTmFtZWRDdXJ2ZTo6
UDM4NDoKICAgICAgICAgcmVzdWx0LmNydiA9IFAzODQ7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgcmVzdWx0LmNydiA9IFA1MjE7CisgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICByZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3Vs
dC5leHQgPSBleHRyYWN0YWJsZSgpOwpAQCAtMTg4LDYgKzE5Niw4IEBAIFN0cmluZyBDcnlwdG9L
ZXlFQzo6bmFtZWRDdXJ2ZVN0cmluZygpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHJpbmcoUDI1
Nik7CiAgICAgY2FzZSBOYW1lZEN1cnZlOjpQMzg0OgogICAgICAgICByZXR1cm4gU3RyaW5nKFAz
ODQpOworICAgIGNhc2UgTmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgcmV0dXJuIFN0cmluZyhQ
NTIxKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIxMSw2ICsyMjEs
OSBAQCBhdXRvIENyeXB0b0tleUVDOjphbGdvcml0aG0oKSBjb25zdCAtPiBLZXlBbGdvcml0aG0K
ICAgICBjYXNlIE5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJlc3VsdC5uYW1lZEN1cnZlID0g
QVNDSUlMaXRlcmFsKFAzODQpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIE5hbWVkQ3VydmU6
OlA1MjE6CisgICAgICAgIHJlc3VsdC5uYW1lZEN1cnZlID0gQVNDSUlMaXRlcmFsKFA1MjEpOwor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5kZXggODBkZGY2YzJhNmVhNzE3ZDM1OWIzZjVl
ZDVkYTBiMzRiMGVjYTQyZi4uNzRkNmQ4NTc0NTk4ZTczMmIzODIxMWY1MTNmZmQwNjYyMmU4MjU3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCkBAIC00OSwxMCAr
NDksMTAgQEAgc3RydWN0IEpzb25XZWJLZXk7CiAKIGNsYXNzIENyeXB0b0tleUVDIGZpbmFsIDog
cHVibGljIENyeXB0b0tleSB7CiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZv
ciBFbGxpcHRpYyBDdXJ2ZSBQLTUyMSAoaHR0cHM6Ly93ZWJraXQub3JnL2IvMTY5MjMxKQogICAg
IGVudW0gY2xhc3MgTmFtZWRDdXJ2ZSB7CiAgICAgICAgIFAyNTYsCiAgICAgICAgIFAzODQsCisg
ICAgICAgIFA1MjEsCiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8Q3J5cHRvS2V5RUM+IGNyZWF0
ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUs
IENyeXB0b0tleVR5cGUgdHlwZSwgUGxhdGZvcm1FQ0tleSBwbGF0Zm9ybUtleSwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQpAQCAtODUsNiArODUsNyBAQCBw
cml2YXRlOgogCiAgICAgS2V5QWxnb3JpdGhtIGFsZ29yaXRobSgpIGNvbnN0IGZpbmFsOwogCisg
ICAgc3RhdGljIGJvb2wgcGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZShOYW1lZEN1cnZlKTsKICAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDcnlwdG9LZXlQYWlyPiBwbGF0Zm9ybUdlbmVyYXRlUGFpcihD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZUJpdG1hcCk7CiAgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9LZXlFQz4gcGxh
dGZvcm1JbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRDdXJ2ZSwgVmVj
dG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VC
aXRtYXApOwogICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvS2V5RUM+IHBsYXRmb3JtSW1wb3J0SldL
UHVibGljKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIFZlY3Rvcjx1aW50
OF90PiYmIHgsIFZlY3Rvcjx1aW50OF90PiYmIHksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tl
eVVzYWdlQml0bWFwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5
cHRvS2V5RUNNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlFQ01h
Yy5jcHAKaW5kZXggNzMwMDRhODhmODFiMTBlZWEwMGFhMzY3Y2Y3OWMzZmYzMDM0ZjMxZS4uNjg1
NDFjNTJmYTk2ZDAyM2RlMzFjN2RlNmZlM2UzZTMxYmNlYTQ3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlFQ01hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9LZXlFQ01hYy5jcHAKQEAgLTU2LDYgKzU2LDggQEAgc3RhdGlj
IGJvb2wgZG9lc1VuY29tcHJlc3NlZFBvaW50TWF0Y2hOYW1lZEN1cnZlKENyeXB0b0tleUVDOjpO
YW1lZEN1cnZlIGN1cnZlLAogICAgICAgICByZXR1cm4gc2l6ZSA9PSA2NTsKICAgICBjYXNlIENy
eXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMzg0OgogICAgICAgICByZXR1cm4gc2l6ZSA9PSA5NzsK
KyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAgICAgICBicmVhazsK
ICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTcwLDYgKzcyLDggQEAgc3Rh
dGljIGJvb2wgZG9lc0ZpZWxkRWxlbWVudE1hdGNoTmFtZWRDdXJ2ZShDcnlwdG9LZXlFQzo6TmFt
ZWRDdXJ2ZSBjdXJ2ZSwgc2l6ZV8KICAgICAgICAgcmV0dXJuIHNpemUgPT0gMzI7CiAgICAgY2Fz
ZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDM4NDoKICAgICAgICAgcmV0dXJuIHNpemUgPT0g
NDg7CisgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04Myw2ICs4Nyw4IEBA
IHN0YXRpYyBzaXplX3QgZ2V0S2V5U2l6ZUZyb21OYW1lZEN1cnZlKENyeXB0b0tleUVDOjpOYW1l
ZEN1cnZlIGN1cnZlKQogICAgICAgICByZXR1cm4gMjU2OwogICAgIGNhc2UgQ3J5cHRvS2V5RUM6
Ok5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiAzODQ7CisgICAgY2FzZSBDcnlwdG9L
ZXlFQzo6TmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDAsNiArMTA2LDExIEBAIHNpemVfdCBDcnlwdG9LZXlF
Qzo6a2V5U2l6ZUluQml0cygpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdCA/IHJlc3VsdCA6IDA7
CiB9CiAKK2Jvb2wgQ3J5cHRvS2V5RUM6OnBsYXRmb3JtU3VwcG9ydGVkQ3VydmUoTmFtZWRDdXJ2
ZSBjdXJ2ZSkKK3sKKyAgICByZXR1cm4gY3VydmUgPT0gTmFtZWRDdXJ2ZTo6UDI1NiB8fCBjdXJ2
ZSA9PSBOYW1lZEN1cnZlOjpQMzg0OworfQorCiBzdGQ6Om9wdGlvbmFsPENyeXB0b0tleVBhaXI+
IENyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlQml0bWFwIHVzYWdlcykKIHsKICAgICBzaXplX3Qgc2l6ZSA9IGdldEtleVNpemVG
cm9tTmFtZWRDdXJ2ZShjdXJ2ZSk7CkBAIC0yMTAsNiArMjIxLDEyIEBAIHN0YXRpYyBzaXplX3Qg
Z2V0T0lEKENyeXB0b0tleUVDOjpOYW1lZEN1cnZlIGN1cnZlLCBjb25zdCB1aW50OF90KiYgb2lk
KQogICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIG9pZCA9
IFNlY3AzODRyMTsKICAgICAgICAgb2lkU2l6ZSA9IHNpemVvZihTZWNwMzg0cjEpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgb2lkID0gbnVsbHB0cjsKKyAgICAgICAg
b2lkU2l6ZSA9IDA7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gb2lkU2l6ZTsK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321416</attachid>
            <date>2017-09-21 02:09:03 -0700</date>
            <delta_ts>2017-09-21 02:09:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169231-20170921110901.patch</filename>
            <type>text/plain</type>
            <size>14753</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJmNzU4ODUzMGYwM2I2
MDdmMGU1NWFjYTgwMTMwYjI5N2ZiYWFmMC4uYjQyYzA4YjczYzY3ZDQ0MGFkZWJmMzg0ZTQxYmJj
ZTRhZTNlYjFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE3LTA5LTIxICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViQ3J5cHRvXSBT
dXBwb3J0IEVsbGlwdGljIEN1cnZlIFAtNTIxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkyMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwODgx
NzAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEppZXdlbiBUYW4uCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHRoZSBQLTUyMSBlbGxpcHRpYyBjdXJ2ZSB0byB0aGUgQ3J5cHRvS2V5RUMgY2xh
c3MsIGJ1dAorICAgICAgICBhbGxvdyB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybS1zcGVjaWZpYyBp
bXBsZW1lbnRhdGlvbnMgdG8gb3B0IG91dCBvZgorICAgICAgICBzdXBwb3J0aW5nIHRoaXMgZmVh
dHVyZS4KKworICAgICAgICBUaGlzIGlzIGFjaGlldmVkIHdpdGggdGhlIHBsYXRmb3JtU3VwcG9y
dGVkQ3VydmUoKSBzdGF0aWMgZnVuY3Rpb24gdGhhdAorICAgICAgICBlYWNoIHBsYXRmb3JtIGhh
cyB0byBpbXBsZW1lbnQsIHJldHVybmluZyB0cnVlIGlmIHRoZSBwYXNzZWQtaW4gY3VydmUKKyAg
ICAgICAgdHlwZSBpcyBzdXBwb3J0ZWQuIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgYXQgZWFjaCBD
cnlwdG9LZXlFQyBlbnRyeXBvaW50LAorICAgICAgICB0aGF0IGlzIGluIGVhY2ggc3RhdGljIGZ1
bmN0aW9uIHRoYXQgY291bGQgZ2VuZXJhdGUgYSBuZXcgQ3J5cHRvS2V5RUMKKyAgICAgICAgb2Jq
ZWN0LiBUaGVzZSBmdW5jdGlvbnMgcmV0dXJuIGEgTm90U3VwcG9ydGVkRXJyb3IgZXhjZXB0aW9u
IGluIGNhc2UgdGhlCisgICAgICAgIHBsYXRmb3JtU3VwcG9ydGVkQ3VydmUoKSBjYWxsIHJldHVy
bnMgZmFsc2UuCisKKyAgICAgICAgV2hpbGUgdGhlIGxpYmdjcnlwdC1iYXNlZCBpbXBsZW1lbnRh
dGlvbiB3aWxsIHN1cHBvcnQgUC01MjEgY3VydmVzIGluCisgICAgICAgIHRoZSBuZWFyIGZ1dHVy
ZSwgdGhlIENvbW1vbkNyeXB0by1iYXNlZCBpbXBsZW1lbnRhdGlvbiBtaWdodCBub3QuIFRoZSB1
c2UKKyAgICAgICAgb2YgcGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZSgpIGVuc3VyZXMgdGhhdCB0aGUg
aW1wbGVtZW50YXRpb25zIHRoYXQgZG9uJ3QKKyAgICAgICAgc3VwcG9ydCBFQyBQLTUyMSBjb250
aW51ZSB0byByZXR1cm4gdGhlIE5vdFN1cHBvcnRlZEVycm9yIGV4Y2VwdGlvbiBhdAorICAgICAg
ICB0aGVzZSBlbnRyeXBvaW50cywgaW5zdGVhZCBvZiB0aGUgT3BlcmF0aW9uRXJyb3IgZXhjZXB0
aW9uIHRoYXQncyByZXR1cm5lZAorICAgICAgICB3aGVuIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBl
eHRlbnNpb25zIG9mIHRoZXNlIGVudHJ5cG9pbnRzIGZhaWwgZHVlIHRvIHRoZQorICAgICAgICBz
cGVjaWZpZWQgZWxsaXB0aWMgY3VydmUgbm90IGJlaW5nIHN1cHBvcnRlZC4KKworICAgICAgICBC
b3RoIGxpYmdjcnlwdC1iYXNlZCBhbmQgQ29tbW9uQ3J5cHRvLWJhc2VkIGltcGxlbWVudGF0aW9u
cyBtYXJrIFAtMjU2IGFuZAorICAgICAgICBQLTM4NCBjdXJ2ZXMgYXMgc3VwcG9ydGVkLiBTd2l0
Y2ggc3RhdGVtZW50cyBoYW5kbGluZyBOYW1lZEN1cnZlIHZhbHVlcworICAgICAgICBtdXN0IG5v
dyBhbHNvIGhhbmRsZSB0aGUgTmFtZWRDdXJ2ZTo6UDUyMSB2YWx1ZSwgYnV0IGJvdGggaW1wbGVt
ZW50YXRpb25zCisgICAgICAgIHRyZWF0IHRoYXQgYXMgYW4gdW5yZWFjaGFibGUgY2FzZSBzaW5j
ZSBzdXBwb3J0IGlzIG5vdCBpbmRpY2F0ZWQgaW4KKyAgICAgICAgcGxhdGZvcm1TdXBwb3J0ZWRD
dXJ2ZSgpLCBhbmQgYWxsIENyeXB0b0tleUVDIG9wZXJhdGlvbnMgc2hvdWxkIGhhdmUKKyAgICAg
ICAgcmV0dXJuZWQgd2l0aCBhbiBOb3RTdXBwb3J0ZWRFcnJvciBleGNlcHRpb24gYmVmb3JlIGVu
dGVyaW5nCisgICAgICAgIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUuIFRoZSBjb21tb24gQ3J5cHRv
S2V5RUMgY29uc3RydWN0b3Igc2ltaWxhcmx5IGFzc2VydHMKKyAgICAgICAgdGhhdCB0aGUgc3Bl
Y2lmaWVkIGN1cnZlIGlzIHN1cHBvcnRlZCBieSB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlv
bi4KKworICAgICAgICBDcnlwdG9BbGdvcml0aG1FQ0RTQSBpcyBtb2RpZmllZCB0byBub3cgYWxz
byBzdXBwb3J0ICdFUzUxMicgYXMgdGhlIGFsZ29yaXRobQorICAgICAgICBpZGVudGlmaWVyLCBt
YXRjaGluZyBpdCBhZ2FpbnN0IHRoZSAnUC01MjEnIGN1cnZlIHZhbHVlLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAtLSB0ZXN0cyBjb3ZlcmluZyBFQyBQLTUyMSBhbHJlYWR5IGV4aXN0LCBidXQg
bm8gcGxhdGZvcm0KKyAgICAgICAgcnVucyB0aGVtIHlldCBkdWUgdG8gbWlzc2luZyBpbXBsZW1l
bnRhdGlvbnMuCisKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1F
Q0RTQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1FQ0RTQTo6aW1wb3J0
S2V5KToKKyAgICAgICAgKiBjcnlwdG8vZ2NyeXB0L0NyeXB0b0tleUVDR0NyeXB0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmN1cnZlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpjdXJ2ZUlkZW50
aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3VydmVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OmN1cnZlVW5jb21wcmVzc2VkRmllbGRFbGVtZW50U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
cnlwdG9LZXlFQzo6cGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZSk6CisgICAgICAgICogY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5RUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9OYW1lZEN1cnZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpDcnlwdG9LZXlFQyk6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0
b0tleUVDOjppbXBvcnRSYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmltcG9y
dEp3ayk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6aW1wb3J0U3BraSk6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6aW1wb3J0UGtjczgpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3J5cHRvS2V5RUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9LZXlFQzo6bmFtZWRDdXJ2ZVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9LZXlFQzo6YWxnb3JpdGhtIGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlFQy5oOgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvS2V5RUNNYWMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZG9lc1VuY29tcHJlc3NlZFBvaW50TWF0Y2hOYW1lZEN1cnZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvZXNGaWVsZEVsZW1lbnRNYXRjaE5hbWVkQ3VydmUpOgorICAgICAgICAo
V2ViQ29yZTo6Z2V0S2V5U2l6ZUZyb21OYW1lZEN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNy
eXB0b0tleUVDOjpwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dE9JRCk6CisKIDIwMTctMDktMjAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIGluc3BlY3Rvci9kb20vY29udGVudC1ub2RlLXJlZ2lvbi1pbmZvLmh0bWwgYW5k
IGluc3BlY3Rvci9kb20vY29udGVudC1mbG93IHRlc3RzIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5j
cHAKaW5kZXggOTA0OTQ5M2EzOTAwMDlhZTE5MTkxNWIwYzlmNDQ0ZTNiMWY2YjJjMC4uMTMxZGRj
ZTVjNDg4NDRjNmFkNTIxOWIwOGUxZWVjMmRlNDM2NmNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmNwcApA
QCAtMzYsOCArMzYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgQUxHMjU2ID0gIkVTMjU2IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBBTEcz
ODQgPSAiRVMzODQiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEFMRzUxMiA9ICJFUzUxMiI7
CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgUDI1NiA9ICJQLTI1NiI7CiBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3QgUDM4NCA9ICJQLTM4NCI7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgUDUy
MSA9ICJQLTUyMSI7CiAKIFJlZjxDcnlwdG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobUVDRFNB
OjpjcmVhdGUoKQogewpAQCAtMTIwLDYgKzEyMiw4IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtRUNE
U0E6OmltcG9ydEtleShDcnlwdG9LZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRhJiYgZGF0YSwgY29u
CiAgICAgICAgICAgICBpc01hdGNoZWQgPSBrZXkuYWxnLmlzTnVsbCgpIHx8IGtleS5hbGcgPT0g
QUxHMjU2OwogICAgICAgICBpZiAoa2V5LmNydiA9PSBQMzg0KQogICAgICAgICAgICAgaXNNYXRj
aGVkID0ga2V5LmFsZy5pc051bGwoKSB8fCBrZXkuYWxnID09IEFMRzM4NDsKKyAgICAgICAgaWYg
KGtleS5jcnYgPT0gUDUyMSkKKyAgICAgICAgICAgIGlzTWF0Y2hlZCA9IGtleS5hbGcuaXNOdWxs
KCkgfHwga2V5LmFsZyA9PSBBTEc1MTI7CiAgICAgICAgIGlmICghaXNNYXRjaGVkKSB7CiAgICAg
ICAgICAgICBleGNlcHRpb25DYWxsYmFjayhEYXRhRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlFQ0dD
cnlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0tleUVDR0NyeXB0
LmNwcAppbmRleCA1MTQxYTU0MTVkNzE5N2ViNjZlM2M0M2I2NmUzZTUzN2EzNzZlMDQzLi43MmQx
MDI5Y2E0OTBmOWJiY2EyMjlmMjZjNTUyMjgwMDhmNWM2MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0tleUVDR0NyeXB0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0tleUVDR0NyeXB0LmNwcApAQCAtNDUsNiArNDUs
OCBAQCBzdGF0aWMgY29uc3QgY2hhciogY3VydmVOYW1lKENyeXB0b0tleUVDOjpOYW1lZEN1cnZl
IGN1cnZlKQogICAgICAgICByZXR1cm4gIk5JU1QgUC0yNTYiOwogICAgIGNhc2UgQ3J5cHRvS2V5
RUM6Ok5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiAiTklTVCBQLTM4NCI7CisgICAg
Y2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01OCw2ICs2MCw4IEBAIHN0YXRpYyBj
b25zdCB1aW50OF90KiBjdXJ2ZUlkZW50aWZpZXIoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3Vy
dmUpCiAgICAgICAgIHJldHVybiBDcnlwdG9Db25zdGFudHM6OnNfc2VjcDI1NnIxSWRlbnRpZmll
ci5kYXRhKCk7CiAgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDM4NDoKICAgICAg
ICAgcmV0dXJuIENyeXB0b0NvbnN0YW50czo6c19zZWNwMzg0cjFJZGVudGlmaWVyLmRhdGEoKTsK
KyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAgICAgICBicmVhazsK
ICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTcxLDYgKzc1LDggQEAgc3Rh
dGljIHNpemVfdCBjdXJ2ZVNpemUoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3VydmUpCiAgICAg
ICAgIHJldHVybiAyNTY7CiAgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDM4NDoK
ICAgICAgICAgcmV0dXJuIDM4NDsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQ
NTIxOgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTg0LDYgKzkwLDggQEAgc3RhdGljIHVuc2lnbmVkIGN1cnZlVW5jb21wcmVzc2VkRmllbGRF
bGVtZW50U2l6ZShDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZSBjdXJ2ZSkKICAgICAgICAgcmV0dXJu
IDMyOwogICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJl
dHVybiA0ODsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEwOCw2ICsx
MTYsMTEgQEAgc2l6ZV90IENyeXB0b0tleUVDOjprZXlTaXplSW5CaXRzKCkgY29uc3QKICAgICBy
ZXR1cm4gc2l6ZTsKIH0KIAorYm9vbCBDcnlwdG9LZXlFQzo6cGxhdGZvcm1TdXBwb3J0ZWRDdXJ2
ZShOYW1lZEN1cnZlIGN1cnZlKQoreworICAgIHJldHVybiBjdXJ2ZSA9PSBOYW1lZEN1cnZlOjpQ
MjU2IHx8IGN1cnZlID09IE5hbWVkQ3VydmU6OlAzODQ7Cit9CisKIHN0ZDo6b3B0aW9uYWw8Q3J5
cHRvS2V5UGFpcj4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtR2VuZXJhdGVQYWlyKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgYm9vbCBleHRyYWN0
YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewogICAgIFBBTDo6R0NyeXB0OjpI
YW5kbGU8Z2NyeV9zZXhwX3Q+IGdlbmtleVNleHA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlFQy5jcHAKaW5kZXggZDE0NWM2ZmNkNGE3NTViZGMxODY0MmFlZWFmNTRlZGE0
NmQzZjgwNC4uNzRlYzVlMDQyNDlkMGEwZjZlNWIxMDc0ZjBmODg4OTRkMDk2YTYwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcApAQCAtMzYsNiArMzYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBQMjU2ID0g
IlAtMjU2IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBQMzg0ID0gIlAtMzg0IjsKK3N0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBQNTIxID0gIlAtNTIxIjsKIAogc3RhdGljIHN0ZDo6b3B0aW9u
YWw8Q3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU+IHRvTmFtZWRDdXJ2ZShjb25zdCBTdHJpbmcmIGN1
cnZlKQogewpAQCAtNDMsNiArNDQsOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxDcnlwdG9LZXlF
Qzo6TmFtZWRDdXJ2ZT4gdG9OYW1lZEN1cnZlKGNvbnN0IFN0cmluZyYgY3VydmUpCiAgICAgICAg
IHJldHVybiBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDI1NjsKICAgICBpZiAoY3VydmUgPT0g
UDM4NCkKICAgICAgICAgcmV0dXJuIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMzg0OworICAg
IGlmIChjdXJ2ZSA9PSBQNTIxKQorICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RUM6Ok5hbWVkQ3Vy
dmU6OlA1MjE7CiAKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQpAQCAtNTIsMTIgKzU1LDE0
IEBAIENyeXB0b0tleUVDOjpDcnlwdG9LZXlFQyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUsCiAgICAgLCBtX3BsYXRmb3JtS2V5KHBsYXRmb3Jt
S2V5KQogICAgICwgbV9jdXJ2ZShjdXJ2ZSkKIHsKKyAgICAvLyBPbmx5IENyeXB0b0tleUVDIG9i
amVjdHMgZm9yIHN1cHBvcnRlZCBjdXJ2ZXMgc2hvdWxkIGJlIGNyZWF0ZWQuCisgICAgQVNTRVJU
KHBsYXRmb3JtU3VwcG9ydGVkQ3VydmUoY3VydmUpKTsKIH0KIAogRXhjZXB0aW9uT3I8Q3J5cHRv
S2V5UGFpcj4gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgY3VydmUsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKIHsKICAgICBhdXRvIG5hbWVkQ3VydmUgPSB0b05h
bWVkQ3VydmUoY3VydmUpOwotICAgIGlmICghbmFtZWRDdXJ2ZSkKKyAgICBpZiAoIW5hbWVkQ3Vy
dmUgfHwgIXBsYXRmb3JtU3VwcG9ydGVkQ3VydmUoKm5hbWVkQ3VydmUpKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAogICAgIGF1dG8gcmVzdWx0ID0g
cGxhdGZvcm1HZW5lcmF0ZVBhaXIoaWRlbnRpZmllciwgKm5hbWVkQ3VydmUsIGV4dHJhY3RhYmxl
LCB1c2FnZXMpOwpAQCAtNzAsNyArNzUsNyBAQCBFeGNlcHRpb25PcjxDcnlwdG9LZXlQYWlyPiBD
cnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaQogUmVm
UHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBjdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+
JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2Vz
KQogewogICAgIGF1dG8gbmFtZWRDdXJ2ZSA9IHRvTmFtZWRDdXJ2ZShjdXJ2ZSk7Ci0gICAgaWYg
KCFuYW1lZEN1cnZlKQorICAgIGlmICghbmFtZWRDdXJ2ZSB8fCAhcGxhdGZvcm1TdXBwb3J0ZWRD
dXJ2ZSgqbmFtZWRDdXJ2ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJu
IHBsYXRmb3JtSW1wb3J0UmF3KGlkZW50aWZpZXIsICpuYW1lZEN1cnZlLCBXVEZNb3ZlKGtleURh
dGEpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKQEAgLTg4LDcgKzkzLDcgQEAgUmVmUHRyPENyeXB0
b0tleUVDPiBDcnlwdG9LZXlFQzo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aWRlbnRpZmllciwKICAgICBpZiAoa2V5RGF0YS5jcnYuaXNOdWxsKCkgfHwgY3VydmUgIT0ga2V5
RGF0YS5jcnYpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gbmFtZWRDdXJ2ZSA9
IHRvTmFtZWRDdXJ2ZShrZXlEYXRhLmNydik7Ci0gICAgaWYgKCFuYW1lZEN1cnZlKQorICAgIGlm
ICghbmFtZWRDdXJ2ZSB8fCAhcGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZSgqbmFtZWRDdXJ2ZSkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGtleURhdGEueC5pc051bGwoKSB8fCBr
ZXlEYXRhLnkuaXNOdWxsKCkpCkBAIC0xMTQsNyArMTE5LDcgQEAgUmVmUHRyPENyeXB0b0tleUVD
PiBDcnlwdG9LZXlFQzo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRp
ZmllciwKIFJlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OmltcG9ydFNwa2koQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGN1cnZlLCBWZWN0
b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJp
dG1hcCB1c2FnZXMpCiB7CiAgICAgYXV0byBuYW1lZEN1cnZlID0gdG9OYW1lZEN1cnZlKGN1cnZl
KTsKLSAgICBpZiAoIW5hbWVkQ3VydmUpCisgICAgaWYgKCFuYW1lZEN1cnZlIHx8ICFwbGF0Zm9y
bVN1cHBvcnRlZEN1cnZlKCpuYW1lZEN1cnZlKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICByZXR1cm4gcGxhdGZvcm1JbXBvcnRTcGtpKGlkZW50aWZpZXIsICpuYW1lZEN1cnZlLCBX
VEZNb3ZlKGtleURhdGEpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKQEAgLTEyMyw3ICsxMjgsNyBA
QCBSZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjppbXBvcnRTcGtpKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaWRlbnRpZmllcgogUmVmUHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlF
Qzo6aW1wb3J0UGtjczgoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMpCiB7CiAgICAgYXV0byBuYW1lZEN1cnZl
ID0gdG9OYW1lZEN1cnZlKGN1cnZlKTsKLSAgICBpZiAoIW5hbWVkQ3VydmUpCisgICAgaWYgKCFu
YW1lZEN1cnZlIHx8ICFwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKCpuYW1lZEN1cnZlKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gcGxhdGZvcm1JbXBvcnRQa2NzOChpZGVu
dGlmaWVyLCAqbmFtZWRDdXJ2ZSwgV1RGTW92ZShrZXlEYXRhKSwgZXh0cmFjdGFibGUsIHVzYWdl
cyk7CkBAIC0xNTEsNiArMTU2LDkgQEAgRXhjZXB0aW9uT3I8SnNvbldlYktleT4gQ3J5cHRvS2V5
RUM6OmV4cG9ydEp3aygpIGNvbnN0CiAgICAgY2FzZSBOYW1lZEN1cnZlOjpQMzg0OgogICAgICAg
ICByZXN1bHQuY3J2ID0gUDM4NDsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOYW1lZEN1cnZl
OjpQNTIxOgorICAgICAgICByZXN1bHQuY3J2ID0gUDUyMTsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJh
Y3RhYmxlKCk7CkBAIC0xODgsNiArMTk2LDggQEAgU3RyaW5nIENyeXB0b0tleUVDOjpuYW1lZEN1
cnZlU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFN0cmluZyhQMjU2KTsKICAgICBjYXNl
IE5hbWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiBTdHJpbmcoUDM4NCk7CisgICAgY2Fz
ZSBOYW1lZEN1cnZlOjpQNTIxOgorICAgICAgICByZXR1cm4gU3RyaW5nKFA1MjEpOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjExLDYgKzIyMSw5IEBAIGF1dG8gQ3J5
cHRvS2V5RUM6OmFsZ29yaXRobSgpIGNvbnN0IC0+IEtleUFsZ29yaXRobQogICAgIGNhc2UgTmFt
ZWRDdXJ2ZTo6UDM4NDoKICAgICAgICAgcmVzdWx0Lm5hbWVkQ3VydmUgPSBBU0NJSUxpdGVyYWwo
UDM4NCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAg
ICAgcmVzdWx0Lm5hbWVkQ3VydmUgPSBBU0NJSUxpdGVyYWwoUDUyMSk7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMv
Q3J5cHRvS2V5RUMuaAppbmRleCA4MGRkZjZjMmE2ZWE3MTdkMzU5YjNmNWVkNWRhMGIzNGIwZWNh
NDJmLi43NGQ2ZDg1NzQ1OThlNzMyYjM4MjExZjUxM2ZmZDA2NjIyZTgyNTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKQEAgLTQ5LDEwICs0OSwxMCBAQCBzdHJ1
Y3QgSnNvbldlYktleTsKIAogY2xhc3MgQ3J5cHRvS2V5RUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
S2V5IHsKIHB1YmxpYzoKLSAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIEVsbGlwdGljIEN1
cnZlIFAtNTIxIChodHRwczovL3dlYmtpdC5vcmcvYi8xNjkyMzEpCiAgICAgZW51bSBjbGFzcyBO
YW1lZEN1cnZlIHsKICAgICAgICAgUDI1NiwKICAgICAgICAgUDM4NCwKKyAgICAgICAgUDUyMSwK
ICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxDcnlwdG9LZXlFQz4gY3JlYXRlKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgQ3J5cHRvS2V5VHlw
ZSB0eXBlLCBQbGF0Zm9ybUVDS2V5IHBsYXRmb3JtS2V5LCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMpCkBAIC04NSw2ICs4NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBLZXlBbGdvcml0aG0gYWxnb3JpdGhtKCkgY29uc3QgZmluYWw7CiAKKyAgICBzdGF0aWMgYm9v
bCBwbGF0Zm9ybVN1cHBvcnRlZEN1cnZlKE5hbWVkQ3VydmUpOwogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPENyeXB0b0tleVBhaXI+IHBsYXRmb3JtR2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
Qml0bWFwKTsKICAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0tleUVDPiBwbGF0Zm9ybUltcG9ydFJh
dyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4m
JiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCk7CiAgICAg
c3RhdGljIFJlZlB0cjxDcnlwdG9LZXlFQz4gcGxhdGZvcm1JbXBvcnRKV0tQdWJsaWMoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRDdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYgeCwgVmVj
dG9yPHVpbnQ4X3Q+JiYgeSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlFQ01hYy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleUVDTWFjLmNwcAppbmRleCA3
MzAwNGE4OGY4MWIxMGVlYTAwYWEzNjdjZjc5YzNmZjMwMzRmMzFlLi42ODU0MWM1MmZhOTZkMDIz
ZGUzMWM3ZGU2ZmUzZTNlMzFiY2VhNDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL0NyeXB0b0tleUVDTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0tleUVDTWFjLmNwcApAQCAtNTYsNiArNTYsOCBAQCBzdGF0aWMgYm9vbCBkb2VzVW5j
b21wcmVzc2VkUG9pbnRNYXRjaE5hbWVkQ3VydmUoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3Vy
dmUsCiAgICAgICAgIHJldHVybiBzaXplID09IDY1OwogICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5h
bWVkQ3VydmU6OlAzODQ6CiAgICAgICAgIHJldHVybiBzaXplID09IDk3OworICAgIGNhc2UgQ3J5
cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlA1MjE6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzAsNiArNzIsOCBAQCBzdGF0aWMgYm9vbCBkb2Vz
RmllbGRFbGVtZW50TWF0Y2hOYW1lZEN1cnZlKENyeXB0b0tleUVDOjpOYW1lZEN1cnZlIGN1cnZl
LCBzaXplXwogICAgICAgICByZXR1cm4gc2l6ZSA9PSAzMjsKICAgICBjYXNlIENyeXB0b0tleUVD
OjpOYW1lZEN1cnZlOjpQMzg0OgogICAgICAgICByZXR1cm4gc2l6ZSA9PSA0ODsKKyAgICBjYXNl
IENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQNTIxOgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTgzLDYgKzg3LDggQEAgc3RhdGljIHNpemVf
dCBnZXRLZXlTaXplRnJvbU5hbWVkQ3VydmUoQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmUgY3VydmUp
CiAgICAgICAgIHJldHVybiAyNTY7CiAgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6
UDM4NDoKICAgICAgICAgcmV0dXJuIDM4NDsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1
cnZlOjpQNTIxOgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTEwMCw2ICsxMDYsMTEgQEAgc2l6ZV90IENyeXB0b0tleUVDOjprZXlTaXplSW5C
aXRzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0IDogMDsKIH0KIAorYm9vbCBD
cnlwdG9LZXlFQzo6cGxhdGZvcm1TdXBwb3J0ZWRDdXJ2ZShOYW1lZEN1cnZlIGN1cnZlKQorewor
ICAgIHJldHVybiBjdXJ2ZSA9PSBOYW1lZEN1cnZlOjpQMjU2IHx8IGN1cnZlID09IE5hbWVkQ3Vy
dmU6OlAzODQ7Cit9CisKIHN0ZDo6b3B0aW9uYWw8Q3J5cHRvS2V5UGFpcj4gQ3J5cHRvS2V5RUM6
OnBsYXRmb3JtR2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRt
YXAgdXNhZ2VzKQogewogICAgIHNpemVfdCBzaXplID0gZ2V0S2V5U2l6ZUZyb21OYW1lZEN1cnZl
KGN1cnZlKTsKQEAgLTIxMCw2ICsyMjEsMTIgQEAgc3RhdGljIHNpemVfdCBnZXRPSUQoQ3J5cHRv
S2V5RUM6Ok5hbWVkQ3VydmUgY3VydmUsIGNvbnN0IHVpbnQ4X3QqJiBvaWQpCiAgICAgY2FzZSBD
cnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDM4NDoKICAgICAgICAgb2lkID0gU2VjcDM4NHIxOwog
ICAgICAgICBvaWRTaXplID0gc2l6ZW9mKFNlY3AzODRyMSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlA1MjE6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBvaWQgPSBudWxscHRyOworICAgICAgICBvaWRTaXplID0gMDsK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBvaWRTaXplOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>