<?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>156483</bug_id>
          
          <creation_ts>2016-04-11 16:46:40 -0700</creation_ts>
          <short_desc>REGRESSION(r199310): This change turns many indexeddb tests into crashes (Requested by jwtan on #webkit).</short_desc>
          <delta_ts>2016-04-11 22:02:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>156472</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>jiewen_tan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1182878</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:46:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/199310 broke the build:
This change turns many indexeddb tests into crashes (Requested by jwtan on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182882</commentid>
    <comment_count>1</comment_count>
      <attachid>276189</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:47:15 -0700</bug_when>
    <thetext>Created attachment 276189
ROLLOUT of r199310

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182883</commentid>
    <comment_count>2</comment_count>
      <attachid>276189</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:49:30 -0700</bug_when>
    <thetext>Comment on attachment 276189
ROLLOUT of r199310

Clearing flags on attachment: 276189

Committed r199323: &lt;http://trac.webkit.org/changeset/199323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182884</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:49:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182983</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-04-11 22:02:01 -0700</bug_when>
    <thetext>*** Bug 156478 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276189</attachid>
            <date>2016-04-11 16:47:15 -0700</date>
            <delta_ts>2016-04-11 16:49:30 -0700</delta_ts>
            <desc>ROLLOUT of r199310</desc>
            <filename>bug-156483-20160411164724.patch</filename>
            <type>text/plain</type>
            <size>45299</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNkZGEwZDFhNjJkNDYy
NTdhOGZjN2ZmYWNkMjhlZmNiNTRlNzI0OC4uMjU1NDI2Zjg2MjhhNTdkNzllZDYzNTYyZTAyZTlm
MmI3NmM0OWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDE2LTA0LTExICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAorICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTk5MzEwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU2NDgzCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgdHVybnMgbWFueSBp
bmRleGVkZGIgdGVzdHMgaW50byBjcmFzaGVzIChSZXF1ZXN0ZWQKKyAgICAgICAgYnkgand0YW4g
b24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJD
bGVhbiB1cCBJREJCaW5kaW5nVXRpbGl0aWVzLiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjQ3MgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xOTkzMTAKKworMjAxNi0wNC0xMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CisKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5
OTMxNS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NjQ4MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
bnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmNwcAppbmRl
eCAzZGU5NjQxNDBkNGM4ODA4YjlhYTZjOWE2Yzg2N2Q3OGQyY2E4MGJkLi44ZmFiZDIzODBjNTVh
NDQ4MzVkYjVjYmQ2ZjY2OWYyMDIyZGQ4MzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJBbnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkFueS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgSURCQW55OjpJREJBbnkoY29u
c3QgSURCS2V5UGF0aCYga2V5UGF0aCkKIHsKIH0KIAotSURCQW55OjpJREJBbnkoY29uc3QgSlND
OjpKU1ZhbHVlJiB2YWx1ZSkKK0lEQkFueTo6SURCQW55KGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlJiB2YWx1ZSkKICAgICA6IG1fdHlwZShJREJBbnk6OlR5cGU6OlNjcmlwdFZhbHVlKQog
ICAgICwgbV9zY3JpcHRWYWx1ZSh2YWx1ZSkKIHsKQEAgLTEzMyw3ICsxMzMsNyBAQCBSZWZQdHI8
SURCVHJhbnNhY3Rpb24+IElEQkFueTo6aWRiVHJhbnNhY3Rpb24oKQogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi1KU0M6OkpTVmFsdWUgSURCQW55OjpzY3JpcHRWYWx1ZSgpCitjb25zdCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSYgSURCQW55OjpzY3JpcHRWYWx1ZSgpCiB7CiAgICAgcmV0dXJu
IG1fc2NyaXB0VmFsdWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJBbnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFu
eS5oCmluZGV4IDI4NTBhZTdkOWZkODJmN2EzNzVkMDZkNjczMDJlN2UyNjAyMTQ4YzIuLjlmMWM3
OTU0YWVjMzNiN2RhNDE0NGM1NTQ2NmMyMTFiZWIyMDIwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJJ
REJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCi0jaW5jbHVkZSA8cnVu
dGltZS9KU0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03MCw3
ICs3MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJBbnkoa2V5
UGF0aCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWZQdHI8SURCQW55PiBjcmVhdGUoY29uc3Qg
SlNDOjpKU1ZhbHVlJiB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmUHRyPElEQkFueT4gY3JlYXRlKGNv
bnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSURCQW55KHZhbHVlKSk7CiAgICAgfQpAQCAtMTA4LDcgKzEwOCw3IEBA
IHB1YmxpYzoKICAgICBSZWZQdHI8SURCSW5kZXg+IGlkYkluZGV4KCk7CiAgICAgUmVmUHRyPElE
Qk9iamVjdFN0b3JlPiBpZGJPYmplY3RTdG9yZSgpOwogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlv
bj4gaWRiVHJhbnNhY3Rpb24oKTsKLSAgICBKU0M6OkpTVmFsdWUgc2NyaXB0VmFsdWUoKTsKKyAg
ICBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgc2NyaXB0VmFsdWUoKTsKICAgICBpbnQ2
NF90IGludGVnZXIoKTsKICAgICBjb25zdCBTdHJpbmcmIHN0cmluZygpOwogICAgIGNvbnN0IElE
QktleVBhdGgmIGtleVBhdGgoKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIGV4
cGxpY2l0IElEQkFueShSZWY8SURCSW5kZXg+JiYpOwogICAgIGV4cGxpY2l0IElEQkFueShSZWY8
SURCQ3Vyc29yPiYmKTsKICAgICBleHBsaWNpdCBJREJBbnkoY29uc3QgSURCS2V5UGF0aCYpOwot
ICAgIGV4cGxpY2l0IElEQkFueShjb25zdCBKU0M6OkpTVmFsdWUmKTsKKyAgICBleHBsaWNpdCBJ
REJBbnkoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmKTsKIAogICAgIElEQkFueTo6VHlw
ZSBtX3R5cGUgeyBJREJBbnk6OlR5cGU6OlVuZGVmaW5lZCB9OwogICAgIFJlZlB0cjxJREJEYXRh
YmFzZT4gbV9kYXRhYmFzZTsKQEAgLTEzMCw3ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxJREJDdXJzb3JXaXRoVmFsdWU+IG1fY3Vyc29yV2l0aFZhbHVlOwogCiAgICAgY29uc3QgSURC
S2V5UGF0aCBtX2lkYktleVBhdGg7Ci0gICAgY29uc3QgSlNDOjpKU1ZhbHVlIG1fc2NyaXB0VmFs
dWU7CisgICAgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgbV9zY3JpcHRWYWx1ZTsKICAg
ICBjb25zdCBTdHJpbmcgbV9zdHJpbmc7CiAgICAgY29uc3QgaW50NjRfdCBtX2ludGVnZXIgeyAw
IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAKaW5kZXggMDJlMjE0NTZhNWQxMjVhYmVlYmI3YmZhMzIwYTM5MmEyMzI5ZDEwZi4uOTk4MDgy
ODRjOGMxYmViN2VjOGU3NzU1ZDY1MDEzMDk4MmU1ZTg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC00MCw4ICs0MCw2IEBACiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCkKQEAgLTE1OSwx
OSArMTU3LDE5IEBAIGNvbnN0IFN0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb24oKSBjb25zdAog
ICAgIHJldHVybiBJREJDdXJzb3I6OmRpcmVjdGlvblRvU3RyaW5nKG1faW5mby5jdXJzb3JEaXJl
Y3Rpb24oKSk7CiB9CiAKLUpTVmFsdWUgSURCQ3Vyc29yOjprZXkoRXhlY1N0YXRlJikgY29uc3QK
K2NvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBJREJDdXJzb3I6OmtleSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fY3VycmVudEtleTsKKyAgICByZXR1cm4gbV9kZXByZWNhdGVkQ3VycmVu
dEtleTsKIH0KIAotSlNWYWx1ZSBJREJDdXJzb3I6OnByaW1hcnlLZXkoRXhlY1N0YXRlJikgY29u
c3QKK2NvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBJREJDdXJzb3I6OnByaW1hcnlLZXko
KSBjb25zdAogewotICAgIHJldHVybiBtX2N1cnJlbnRQcmltYXJ5S2V5OworICAgIHJldHVybiBt
X2RlcHJlY2F0ZWRDdXJyZW50UHJpbWFyeUtleTsKIH0KIAotSlNWYWx1ZSBJREJDdXJzb3I6OnZh
bHVlKEV4ZWNTdGF0ZSYpIGNvbnN0Citjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgSURC
Q3Vyc29yOjp2YWx1ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY3VycmVudFZhbHVlOworICAg
IHJldHVybiBtX2RlcHJlY2F0ZWRDdXJyZW50VmFsdWU7CiB9CiAKIElEQkFueSogSURCQ3Vyc29y
Ojpzb3VyY2UoKQpAQCAtMjI2LDcgKzIyNCw3IEBAIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0
PiBJREJDdXJzb3I6OnVwZGF0ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgRGVwcmVjYXRlZDo6CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHJlcXVlc3QgPSBlZmZlY3RpdmVPYmplY3RTdG9y
ZSgpLnB1dEZvckN1cnNvclVwZGF0ZShleGVjLCB2YWx1ZS5qc1ZhbHVlKCksIG1fY3VycmVudFBy
aW1hcnlLZXksIGVjKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBlZmZlY3RpdmVPYmplY3RTdG9yZSgp
LnB1dEZvckN1cnNvclVwZGF0ZShleGVjLCB2YWx1ZS5qc1ZhbHVlKCksIG1fZGVwcmVjYXRlZEN1
cnJlbnRQcmltYXJ5S2V5LmpzVmFsdWUoKSwgZWMpOwogICAgIGlmIChlYy5jb2RlKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjgyLDkgKzI4MCwxMCBAQCB2b2lkIElEQkN1cnNvcjo6
Y29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRXhjZXB0aW9uQ29kZVdp
dGhNZXNzYQogCiB2b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5VmFs
dWUsIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2FnZSYgZWMpCiB7CisgICAgRE9NUmVxdWVzdFN0YXRl
IHJlcXVlc3RTdGF0ZSgmY29udGV4dCk7CiAgICAgUmVmUHRyPElEQktleT4ga2V5OwogICAgIGlm
ICgha2V5VmFsdWUuanNWYWx1ZSgpLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIGtleSA9IHNjcmlw
dFZhbHVlVG9JREJLZXkoY29udGV4dCwga2V5VmFsdWUpOworICAgICAgICBrZXkgPSBzY3JpcHRW
YWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUsIGtleVZhbHVlKTsKIAogICAgIGNvbnRpbnVlRnVu
Y3Rpb24oa2V5LmdldCgpLCBlYyk7CiB9CkBAIC0zODEsNyArMzgwLDcgQEAgUmVmUHRyPFdlYkNv
cmU6OklEQlJlcXVlc3Q+IElEQkN1cnNvcjo6ZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY28KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBy
ZXF1ZXN0ID0gZWZmZWN0aXZlT2JqZWN0U3RvcmUoKS5tb2Rlcm5EZWxldGUoY29udGV4dCwgbV9j
dXJyZW50UHJpbWFyeUtleSwgZWMpOworICAgIGF1dG8gcmVxdWVzdCA9IGVmZmVjdGl2ZU9iamVj
dFN0b3JlKCkubW9kZXJuRGVsZXRlKGNvbnRleHQsIG1fZGVwcmVjYXRlZEN1cnJlbnRQcmltYXJ5
S2V5LmpzVmFsdWUoKSwgZWMpOwogICAgIGlmIChlYy5jb2RlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIApAQCAtNDAxLDI1ICs0MDAsMjUgQEAgdm9pZCBJREJDdXJzb3I6OnNldEdldFJlc3Vs
dChJREJSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBJREJHZXRSZXN1bHQmIGdldFJlc3VsdCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFnZXRSZXN1bHQuaXNEZWZpbmVkKCkpIHsKLSAgICAg
ICAgbV9jdXJyZW50S2V5ID0geyB9OworICAgICAgICBtX2RlcHJlY2F0ZWRDdXJyZW50S2V5ID0g
eyB9OwogICAgICAgICBtX2N1cnJlbnRLZXlEYXRhID0geyB9OwotICAgICAgICBtX2N1cnJlbnRQ
cmltYXJ5S2V5ID0geyB9OworICAgICAgICBtX2RlcHJlY2F0ZWRDdXJyZW50UHJpbWFyeUtleSA9
IHsgfTsKICAgICAgICAgbV9jdXJyZW50UHJpbWFyeUtleURhdGEgPSB7IH07Ci0gICAgICAgIG1f
Y3VycmVudFZhbHVlID0geyB9OworICAgICAgICBtX2RlcHJlY2F0ZWRDdXJyZW50VmFsdWUgPSB7
IH07CiAKICAgICAgICAgbV9nb3RWYWx1ZSA9IGZhbHNlOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgbV9jdXJyZW50S2V5ID0gaWRiS2V5RGF0YVRvU2NyaXB0VmFsdWUoKmNvbnRleHQs
IGdldFJlc3VsdC5rZXlEYXRhKCkpOworICAgIG1fZGVwcmVjYXRlZEN1cnJlbnRLZXkgPSBpZGJL
ZXlEYXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0LCBnZXRSZXN1bHQua2V5RGF0YSgpKTsKICAgICBt
X2N1cnJlbnRLZXlEYXRhID0gZ2V0UmVzdWx0LmtleURhdGEoKTsKLSAgICBtX2N1cnJlbnRQcmlt
YXJ5S2V5ID0gaWRiS2V5RGF0YVRvU2NyaXB0VmFsdWUoKmNvbnRleHQsIGdldFJlc3VsdC5wcmlt
YXJ5S2V5RGF0YSgpKTsKKyAgICBtX2RlcHJlY2F0ZWRDdXJyZW50UHJpbWFyeUtleSA9IGlkYktl
eURhdGFUb1NjcmlwdFZhbHVlKGNvbnRleHQsIGdldFJlc3VsdC5wcmltYXJ5S2V5RGF0YSgpKTsK
ICAgICBtX2N1cnJlbnRQcmltYXJ5S2V5RGF0YSA9IGdldFJlc3VsdC5wcmltYXJ5S2V5RGF0YSgp
OwogCiAgICAgaWYgKGlzS2V5Q3Vyc29yKCkpCi0gICAgICAgIG1fY3VycmVudFZhbHVlID0geyB9
OworICAgICAgICBtX2RlcHJlY2F0ZWRDdXJyZW50VmFsdWUgPSB7IH07CiAgICAgZWxzZQotICAg
ICAgICBtX2N1cnJlbnRWYWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKCpj
b250ZXh0LCBnZXRSZXN1bHQudmFsdWUoKS5kYXRhKCkpOworICAgICAgICBtX2RlcHJlY2F0ZWRD
dXJyZW50VmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlRGF0YSgqY29udGV4dCwgZ2V0UmVzdWx0
LnZhbHVlKCkuZGF0YSgpKTsKIAogICAgIG1fZ290VmFsdWUgPSB0cnVlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAppbmRleCBiMjhhMWUyNDliNjg5
Y2I4NWEwZTk3ZjgxNjM4ZGVmM2M2NDgxMDNkLi44NGY4Yjk3ZjVjNDA3ZDc5MTk0ODJkODhjZmZj
NzBhYmFkMjA1YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCi0jaW5jbHVkZSA8
cnVudGltZS9KU0NKU1ZhbHVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsOSAr
NTYsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBJbXBsZW1lbnQgdGhlIElETAogICAgIGNvbnN0IFN0
cmluZyYgZGlyZWN0aW9uKCkgY29uc3Q7Ci0gICAgSlNDOjpKU1ZhbHVlIGtleShKU0M6OkV4ZWNT
dGF0ZSYpIGNvbnN0OwotICAgIEpTQzo6SlNWYWx1ZSBwcmltYXJ5S2V5KEpTQzo6RXhlY1N0YXRl
JikgY29uc3Q7Ci0gICAgSlNDOjpKU1ZhbHVlIHZhbHVlKEpTQzo6RXhlY1N0YXRlJikgY29uc3Q7
CisgICAgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSgpIGNvbnN0OworICAgIGNv
bnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBwcmltYXJ5S2V5KCkgY29uc3Q7CisgICAgY29u
c3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKCkgY29uc3Q7CiAgICAgSURCQW55KiBz
b3VyY2UoKTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiB1cGRhdGUoSlNDOjpF
eGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYsIEV4Y2VwdGlvbkNvZGVXaXRoTWVz
c2FnZSYpOwpAQCAtMTEyLDkgKzExMSwxMSBAQCBwcml2YXRlOgogICAgIElEQktleURhdGEgbV9j
dXJyZW50S2V5RGF0YTsKICAgICBJREJLZXlEYXRhIG1fY3VycmVudFByaW1hcnlLZXlEYXRhOwog
Ci0gICAgSlNDOjpKU1ZhbHVlIG1fY3VycmVudEtleTsKLSAgICBKU0M6OkpTVmFsdWUgbV9jdXJy
ZW50UHJpbWFyeUtleTsKLSAgICBKU0M6OkpTVmFsdWUgbV9jdXJyZW50VmFsdWU7CisgICAgLy8g
RklYTUU6IFdoZW4gZGl0Y2hpbmcgTGVnYWN5IElEQiBhbmQgY29tYmluaW5nIHRoaXMgaW1wbGVt
ZW50YXRpb24gd2l0aCB0aGUgYWJzdHJhY3QgSURCQ3Vyc29yLAorICAgIC8vIHRoZXNlIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIG1lbWJlcnMgc2hvdWxkIGJlIEpTVmFsdWVzIGluc3RlYWQuCisg
ICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgbV9kZXByZWNhdGVkQ3VycmVudEtleTsKKyAgICBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBtX2RlcHJlY2F0ZWRDdXJyZW50UHJpbWFyeUtleTsKKyAg
ICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBtX2RlcHJlY2F0ZWRDdXJyZW50VmFsdWU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmlkbAppbmRleCAxNzdhZDRkMDE2MDc4M2IxYTcwYjNhMzdmOGQ3YzU0
YTA1OTFiNzViLi4wNDZmOTA1YjVhNTAxNDlmMTNlOWM1YmU0YWM2ZTczZDRlNjRmYzA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5pZGwKQEAgLTMy
LDggKzMyLDggQEAKIF0gaW50ZXJmYWNlIElEQkN1cnNvciB7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIElEQkFueSBzb3VyY2U7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkaXJl
Y3Rpb247Ci0gICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBJbXBsZW1lbnRhdGlvblJldHVyblR5
cGU9SlNWYWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBrZXk7Ci0gICAgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlLCBJbXBsZW1lbnRhdGlvblJldHVyblR5cGU9SlNWYWx1ZV0gcmVhZG9ubHkgYXR0
cmlidXRlIGFueSBwcmltYXJ5S2V5OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkga2V5Owor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgcHJpbWFyeUtleTsKIAogICAgIFtDYWxsV2l0aD1T
Y3JpcHRTdGF0ZSwgUmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2VdIElEQlJlcXVlc3QgdXBkYXRl
KGFueSB2YWx1ZSk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlXSB2b2lkIGFkdmFu
Y2UoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBjb3VudCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmlkbAppbmRl
eCBjNmMzN2NkOTFiMWM3NzdiZDA0NDU0MzI0ZDAzZTBjOTRkZmQ5MGM1Li44NTJlMTQ3ODdhZGZi
ZjY3YzM3Mjk5MDQzMWQ3YzQ0NGU1OTM5MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5pZGwKQEAgLTMwLDUgKzMw
LDUgQEAKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlv
biwKIF0gaW50ZXJmYWNlIElEQkN1cnNvcldpdGhWYWx1ZSA6IElEQkN1cnNvciB7Ci0gICAgW0Nh
bGxXaXRoPVNjcmlwdFN0YXRlLCBJbXBsZW1lbnRhdGlvblJldHVyblR5cGU9SlNWYWx1ZV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGFueSB2YWx1ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYW55IHZh
bHVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5jcHAKaW5kZXggMTNmYTNhZmZjZjFlNDk5MzNlOWJkN2RhZGIxM2M2Mjk4ZTk5YzM5MS4uMzY4
ZWMwYTUzMjkzNDdkNmY1NDI0Y2M0ZTRmYmIwNzJmMjAzMWIzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKQEAgLTE0OSw4ICsxNDksOSBA
QCBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udAogCiBzaG9ydCBJREJGYWN0b3J5OjpjbXAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IGZpcnN0VmFsdWUsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBzZWNvbmRWYWx1ZSwg
RXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlJiBlYykKIHsKLSAgICBSZWZQdHI8SURCS2V5PiBmaXJz
dCA9IHNjcmlwdFZhbHVlVG9JREJLZXkoY29udGV4dCwgZmlyc3RWYWx1ZSk7Ci0gICAgUmVmUHRy
PElEQktleT4gc2Vjb25kID0gc2NyaXB0VmFsdWVUb0lEQktleShjb250ZXh0LCBzZWNvbmRWYWx1
ZSk7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZSgmY29udGV4dCk7CisgICAgUmVm
UHRyPElEQktleT4gZmlyc3QgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUsIGZp
cnN0VmFsdWUpOworICAgIFJlZlB0cjxJREJLZXk+IHNlY29uZCA9IHNjcmlwdFZhbHVlVG9JREJL
ZXkoJnJlcXVlc3RTdGF0ZSwgc2Vjb25kVmFsdWUpOwogCiAgICAgQVNTRVJUKGZpcnN0KTsKICAg
ICBBU1NFUlQoc2Vjb25kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4LmNwcAppbmRleCBmYTIzM2U0ODhlYzMzNTgwMGJjYjk1MzE3YzliZTE5M2U0OGJiMTZl
Li5jNjQ3MzE3YTNjYzEzODZkMjMwMDMzNTE2MjBiOTUyOWQzODZlMDQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCkBAIC0xNjAsNyArMTYwLDgg
QEAgUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4Ojpjb3VudChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBjb25zdCBEZXByZWMKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCSW5k
ZXg6OmNvdW50Iik7CiAKLSAgICBSZWZQdHI8SURCS2V5PiBpZGJLZXkgPSBzY3JpcHRWYWx1ZVRv
SURCS2V5KGNvbnRleHQsIGtleSk7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZSgm
Y29udGV4dCk7CisgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gc2NyaXB0VmFsdWVUb0lEQktl
eSgmcmVxdWVzdFN0YXRlLCBrZXkpOwogICAgIGlmICghaWRiS2V5IHx8IGlkYktleS0+dHlwZSgp
ID09IEtleVR5cGU6OkludmFsaWQpIHsKICAgICAgICAgZWMuY29kZSA9IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIkZh
aWxlZCB0byBleGVjdXRlICdjb3VudCcgb24gJ0lEQkluZGV4JzogVGhlIHBhcmFtZXRlciBpcyBu
b3QgYSB2YWxpZCBrZXkuIik7CkBAIC0yNDEsNyArMjQyLDggQEAgUmVmUHRyPElEQlJlcXVlc3Q+
IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGVw
cmVjYXQKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCSW5kZXg6OmdldCIpOwogCi0gICAgUmVm
UHRyPElEQktleT4gaWRiS2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShjb250ZXh0LCBrZXkpOwor
ICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoJmNvbnRleHQpOworICAgIFJlZlB0cjxJ
REJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0ZSwga2V5KTsK
ICAgICBpZiAoIWlkYktleSB8fCBpZGJLZXktPnR5cGUoKSA9PSBLZXlUeXBlOjpJbnZhbGlkKSB7
CiAgICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwogICAg
ICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnZ2V0JyBv
biAnSURCSW5kZXgnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleS4iKTsKQEAgLTI4
NSw3ICsyODcsOCBAQCBSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldEtleShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBEZXByZQogewogICAgIExPRyhJbmRleGVk
REIsICJJREJJbmRleDo6Z2V0S2V5Iik7CiAKLSAgICBSZWZQdHI8SURCS2V5PiBpZGJLZXkgPSBz
Y3JpcHRWYWx1ZVRvSURCS2V5KGNvbnRleHQsIGtleSk7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJl
cXVlc3RTdGF0ZSgmY29udGV4dCk7CisgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gc2NyaXB0
VmFsdWVUb0lEQktleSgmcmVxdWVzdFN0YXRlLCBrZXkpOwogICAgIGlmICghaWRiS2V5IHx8IGlk
YktleS0+dHlwZSgpID09IEtleVR5cGU6OkludmFsaWQpIHsKICAgICAgICAgZWMuY29kZSA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJ
SUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdnZXRLZXknIG9uICdJREJJbmRleCc6IFRoZSBw
YXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCmluZGV4IDBlYzc2YjZkNzkzYzQ4ZDUxNWE0
OGJhNzFmMjA3ODI4NDU2M2QxMDQuLjllMTk0NWRhZTQ3NDA5NmZjNWExODM4ZDhjMmJhZjE3Y2M4
MDUzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlS
YW5nZS5jcHAKQEAgLTMwLDEyICszMCw5IEBACiAjaW5jbHVkZSAiSURCQmluZGluZ1V0aWxpdGll
cy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCS2V5
LmgiCi0jaW5jbHVkZSAiSURCS2V5RGF0YS5oIgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVm
PElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6Y3JlYXRlKFJlZlB0cjxJREJLZXk+JiYga2V5KQpA
QCAtNTIsMTQgKzQ5LDE2IEBAIElEQktleVJhbmdlOjpJREJLZXlSYW5nZShSZWZQdHI8SURCS2V5
PiYmIGxvd2VyLCBSZWZQdHI8SURCS2V5PiYmIHVwcGVyLCBMb3dlckJvCiB7CiB9CiAKLUpTVmFs
dWUgSURCS2V5UmFuZ2U6Omxvd2VyVmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCkgY29uc3QKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIElEQktleVJhbmdlOjpsb3dlclZhbHVl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlk
YktleURhdGFUb1NjcmlwdFZhbHVlKGNvbnRleHQsIElEQktleURhdGEobV9sb3dlci5nZXQoKSkp
OworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoJmNvbnRleHQpOworICAgIHJldHVy
biBpZGJLZXlUb1NjcmlwdFZhbHVlKCZyZXF1ZXN0U3RhdGUsIG1fbG93ZXIpOwogfQogCi1KU1Zh
bHVlIElEQktleVJhbmdlOjp1cHBlclZhbHVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpIGNvbnN0CitEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJREJLZXlSYW5nZTo6dXBwZXJWYWx1
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIHJldHVybiBp
ZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0LCBJREJLZXlEYXRhKG1fdXBwZXIuZ2V0KCkp
KTsKKyAgICBET01SZXF1ZXN0U3RhdGUgcmVxdWVzdFN0YXRlKCZjb250ZXh0KTsKKyAgICByZXR1
cm4gaWRiS2V5VG9TY3JpcHRWYWx1ZSgmcmVxdWVzdFN0YXRlLCBtX3VwcGVyKTsKIH0KIAogUmVm
UHRyPElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6b25seShSZWZQdHI8SURCS2V5PiYmIGtleSwg
RXhjZXB0aW9uQ29kZSYgZWMpCkBAIC03NCw3ICs3Myw4IEBAIFJlZlB0cjxJREJLZXlSYW5nZT4g
SURCS2V5UmFuZ2U6Om9ubHkoUmVmUHRyPElEQktleT4mJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVj
KQogCiBSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjpvbmx5KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXlWYWx1
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPElEQktleT4ga2V5ID0gc2NyaXB0
VmFsdWVUb0lEQktleShjb250ZXh0LCBrZXlWYWx1ZSk7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJl
cXVlc3RTdGF0ZSgmY29udGV4dCk7CisgICAgUmVmUHRyPElEQktleT4ga2V5ID0gc2NyaXB0VmFs
dWVUb0lEQktleSgmcmVxdWVzdFN0YXRlLCBrZXlWYWx1ZSk7CiAgICAgaWYgKCFrZXkgfHwgIWtl
eS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFF
cnJvcjsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC04NSw3ICs4NSw4IEBAIFJlZlB0cjxJ
REJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6Om9ubHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRGVwCiAKIFJlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6Omxvd2Vy
Qm91bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmIGJvdW5kVmFsdWUsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgUmVmUHRyPElEQktleT4gYm91bmQgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KGNvbnRleHQs
IGJvdW5kVmFsdWUpOworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoJmNvbnRleHQp
OworICAgIFJlZlB0cjxJREJLZXk+IGJvdW5kID0gc2NyaXB0VmFsdWVUb0lEQktleSgmcmVxdWVz
dFN0YXRlLCBib3VuZFZhbHVlKTsKICAgICBpZiAoIWJvdW5kIHx8ICFib3VuZC0+aXNWYWxpZCgp
KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CkBAIC05Niw3ICs5Nyw4IEBAIFJlZlB0cjxJREJLZXlSYW5nZT4g
SURCS2V5UmFuZ2U6Omxvd2VyQm91bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
Y29uCiAKIFJlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OnVwcGVyQm91bmQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IGJvdW5kVmFsdWUsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRy
PElEQktleT4gYm91bmQgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KGNvbnRleHQsIGJvdW5kVmFsdWUp
OworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoJmNvbnRleHQpOworICAgIFJlZlB0
cjxJREJLZXk+IGJvdW5kID0gc2NyaXB0VmFsdWVUb0lEQktleSgmcmVxdWVzdFN0YXRlLCBib3Vu
ZFZhbHVlKTsKICAgICBpZiAoIWJvdW5kIHx8ICFib3VuZC0+aXNWYWxpZCgpKSB7CiAgICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0xMDcsOCArMTA5LDkgQEAgUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlSYW5n
ZTo6dXBwZXJCb3VuZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb24KIAogUmVm
UHRyPElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6Ym91bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGxvd2VyVmFsdWUsIGNv
bnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB1cHBlclZhbHVlLCBib29sIGxvd2VyT3Blbiwg
Ym9vbCB1cHBlck9wZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxJREJLZXk+
IGxvd2VyID0gc2NyaXB0VmFsdWVUb0lEQktleShjb250ZXh0LCBsb3dlclZhbHVlKTsKLSAgICBS
ZWZQdHI8SURCS2V5PiB1cHBlciA9IHNjcmlwdFZhbHVlVG9JREJLZXkoY29udGV4dCwgdXBwZXJW
YWx1ZSk7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZSgmY29udGV4dCk7CisgICAg
UmVmUHRyPElEQktleT4gbG93ZXIgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUs
IGxvd2VyVmFsdWUpOworICAgIFJlZlB0cjxJREJLZXk+IHVwcGVyID0gc2NyaXB0VmFsdWVUb0lE
QktleSgmcmVxdWVzdFN0YXRlLCB1cHBlclZhbHVlKTsKIAogICAgIGlmICghbG93ZXIgfHwgIWxv
d2VyLT5pc1ZhbGlkKCkgfHwgIXVwcGVyIHx8ICF1cHBlci0+aXNWYWxpZCgpKSB7CiAgICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oCmluZGV4IGQ2NjZkMjlhM2ZiNmFiNTll
NjEyNWZhZGY3MmI5YzgxNzZiYmZjYjQuLjFiZGE3Zjc0NWUyNDg1Y2U1OTY1MmM2YjgxZDE5NTMz
YjlkMDUxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleVJhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UmFuZ2UuaApAQCAtNTgsOCArNTgsOCBAQCBwdWJsaWM6CiAgICAgSURCS2V5KiBsb3dlcigpIGNv
bnN0IHsgcmV0dXJuIG1fbG93ZXIuZ2V0KCk7IH0KICAgICBJREJLZXkqIHVwcGVyKCkgY29uc3Qg
eyByZXR1cm4gbV91cHBlci5nZXQoKTsgfQogCi0gICAgSlNDOjpKU1ZhbHVlICBsb3dlclZhbHVl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKLSAgICBKU0M6OkpTVmFsdWUgdXBwZXJW
YWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUgbG93ZXJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgdXBwZXJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JikgY29uc3Q7CiAgICAgYm9vbCBsb3dlck9wZW4oKSBjb25zdCB7IHJldHVybiBtX2xvd2VyVHlw
ZSA9PSBMb3dlckJvdW5kT3BlbjsgfQogICAgIGJvb2wgdXBwZXJPcGVuKCkgY29uc3QgeyByZXR1
cm4gbV91cHBlclR5cGUgPT0gVXBwZXJCb3VuZE9wZW47IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsCmluZGV4IDEwNDIyMGQ3NmY2NGI3
ZjY5YjVlNTdlZGFhMjZlODhhZDA3YmRjYmEuLmYwNjAwZmZjMzgyYTVkNTgyN2ZlZDA2MmVjNTZm
YjUyYjU0OGJjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleVJhbmdlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZS5pZGwKQEAgLTI4LDggKzI4LDggQEAKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9SW5kZXhlZERCLAogXSBpbnRlcmZhY2UgSURC
S2V5UmFuZ2UgewotICAgIFtJbXBsZW1lbnRlZEFzPWxvd2VyVmFsdWUsIENhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVudGF0aW9uUmV0dXJuVHlwZT1KU1ZhbHVlXSByZWFk
b25seSBhdHRyaWJ1dGUgYW55IGxvd2VyOwotICAgIFtJbXBsZW1lbnRlZEFzPXVwcGVyVmFsdWUs
IENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVudGF0aW9uUmV0dXJuVHlw
ZT1KU1ZhbHVlXSByZWFkb25seSBhdHRyaWJ1dGUgYW55IHVwcGVyOworICAgIFtJbXBsZW1lbnRl
ZEFzPWxvd2VyVmFsdWUsQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkg
YXR0cmlidXRlIGFueSBsb3dlcjsKKyAgICBbSW1wbGVtZW50ZWRBcz11cHBlclZhbHVlLENhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgdXBwZXI7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG93ZXJPcGVuOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHVwcGVyT3BlbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IDdjM2IxMTBiMmNmN2Nm
MDQ0YzJlYTMwZjgzMWU0NjQ0NGI3MzhkZDUuLjhlZDViMDkzOWZlYzU3YmNkMDFiMmYxYzllNzNm
NDIwMDQ0ODE2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTE4Miw3ICsxODIsOCBAQCBSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBj
b25zdCBEZQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBSZWZQdHI8SURC
S2V5PiBpZGJLZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KGNvbnRleHQsIGtleSk7CisgICAgRE9N
UmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZSgmY29udGV4dCk7CisgICAgUmVmUHRyPElEQktleT4g
aWRiS2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleSgmcmVxdWVzdFN0YXRlLCBrZXkpOwogICAgIGlm
ICghaWRiS2V5IHx8IGlkYktleS0+dHlwZSgpID09IEtleVR5cGU6OkludmFsaWQpIHsKICAgICAg
ICAgZWMuY29kZSA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAgIGVj
Lm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdnZXQnIG9uICdJREJP
YmplY3RTdG9yZSc6IFRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5LiIpOwpAQCAtMzk4
LDcgKzM5OSw4IEBAIFJlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6ZGVsZXRlRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4CiAKIFJlZlB0cjxJREJSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZTo6bW9kZXJuRGVsZXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIEpTQzo6SlNWYWx1ZSBrZXksIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2FnZSYgZWMpCiB7
Ci0gICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShjb250ZXh0
LCBrZXkpOworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoJmNvbnRleHQpOworICAg
IFJlZlB0cjxJREJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0
ZSwga2V5KTsKICAgICBpZiAoIWlkYktleSB8fCBpZGJLZXktPnR5cGUoKSA9PSBLZXlUeXBlOjpJ
bnZhbGlkKSB7CiAgICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVy
cm9yOwogICAgICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0
ZSAnZGVsZXRlJyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZh
bGlkIGtleS4iKTsKQEAgLTU5Miw3ICs1OTQsOCBAQCBSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmU6OmNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0CiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQk9iamVjdFN0b3JlOjpjb3VudCIpOwogCi0gICAgUmVm
UHRyPElEQktleT4gaWRiS2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShjb250ZXh0LCBrZXkpOwor
ICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoJmNvbnRleHQpOworICAgIFJlZlB0cjxJ
REJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0ZSwga2V5KTsK
ICAgICBpZiAoIWlkYktleSB8fCBpZGJLZXktPnR5cGUoKSA9PSBLZXlUeXBlOjpJbnZhbGlkKSB7
CiAgICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwogICAg
ICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAnY291bnQn
IG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5LiIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApp
bmRleCBkNzk0ZTZhODRhNjQ3YjM3YTE1N2E5NTYyOTc1ZmVjMjhlZGZkZjZjLi5mZTY5NTBiYzg0
NDc0ZWRmMjljMTA0NDJlNzFlZjMzMzM1NjJmMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMzI2LDEzICszMjYsMTMgQEAgdm9p
ZCBJREJSZXF1ZXN0Ojp1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCkKIAogdm9pZCBJ
REJSZXF1ZXN0OjpzZXRSZXN1bHQoY29uc3QgSURCS2V5RGF0YSoga2V5RGF0YSkKIHsKLSAgICBh
dXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4
dCB8fCAha2V5RGF0YSkgeworICAgIGlmICgha2V5RGF0YSkgewogICAgICAgICBtX3Jlc3VsdCA9
IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Jlc3VsdCA9IElEQkFu
eTo6Y3JlYXRlKGlkYktleURhdGFUb1NjcmlwdFZhbHVlKCpjb250ZXh0LCAqa2V5RGF0YSkpOwor
ICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVlID0gaWRiS2V5RGF0YVRvU2NyaXB0VmFs
dWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqa2V5RGF0YSk7CisgICAgbV9yZXN1bHQgPSBJ
REJBbnk6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSk7CiB9CiAKIHZvaWQgSURCUmVxdWVzdDo6c2V0
UmVzdWx0KHVpbnQ2NF90IG51bWJlcikKQEAgLTM0OSw3ICszNDksNyBAQCB2b2lkIElEQlJlcXVl
c3Q6OnNldFJlc3VsdFRvU3RydWN0dXJlZENsb25lKGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVy
JiB2YWx1ZURhdAogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKCpjb250ZXh0LCB2YWx1
ZURhdGEpOworICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJ
REJWYWx1ZURhdGEoKmNvbnRleHQsIHZhbHVlRGF0YSk7CiAgICAgbV9yZXN1bHQgPSBJREJBbnk6
OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCmlu
ZGV4IDFlY2QxNzg4ODdmNGRiYzEwYzUwMzFmYWIxODgxZGEwMmU0ZjgwN2QuLjhiOGNkNzVmMWUz
MTg5MjU1ZDU5MjljN2Q5MjI0NDM2M2JkZWVmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cApAQCAtMzAxLDcgKzMwMSw3IEBAIElEQkVycm9yIE1lbW9yeU9iamVjdFN0b3JlOjp1cGRhdGVJ
bmRleGVzRm9yUHV0UmVjb3JkKGNvbnN0IElEQktleURhdGEmIGtleSwgY29uCiB7CiAgICAgSlNM
b2NrSG9sZGVyIGxvY2tlcihVbmlxdWVJREJEYXRhYmFzZTo6ZGF0YWJhc2VUaHJlYWRWTSgpKTsK
IAotICAgIGF1dG8ganNWYWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKFVu
aXF1ZUlEQkRhdGFiYXNlOjpkYXRhYmFzZVRocmVhZEV4ZWNTdGF0ZSgpLCB2YWx1ZSk7CisgICAg
YXV0byBqc1ZhbHVlID0gaWRiVmFsdWVEYXRhVG9KU1ZhbHVlKFVuaXF1ZUlEQkRhdGFiYXNlOjpk
YXRhYmFzZVRocmVhZEV4ZWNTdGF0ZSgpLCB2YWx1ZSk7CiAgICAgaWYgKGpzVmFsdWUuaXNVbmRl
ZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtMzM5LDcgKzMzOSw3IEBA
IElEQkVycm9yIE1lbW9yeU9iamVjdFN0b3JlOjpwb3B1bGF0ZUluZGV4V2l0aEV4aXN0aW5nUmVj
b3JkcyhNZW1vcnlJbmRleCYgaW5kZXgpCiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcihVbmlxdWVJ
REJEYXRhYmFzZTo6ZGF0YWJhc2VUaHJlYWRWTSgpKTsKIAogICAgIGZvciAoYXV0byBpdGVyYXRv
ciA6ICptX2tleVZhbHVlU3RvcmUpIHsKLSAgICAgICAgYXV0byBqc1ZhbHVlID0gZGVzZXJpYWxp
emVJREJWYWx1ZURhdGFUb0pTVmFsdWUoVW5pcXVlSURCRGF0YWJhc2U6OmRhdGFiYXNlVGhyZWFk
RXhlY1N0YXRlKCksIGl0ZXJhdG9yLnZhbHVlKTsKKyAgICAgICAgYXV0byBqc1ZhbHVlID0gaWRi
VmFsdWVEYXRhVG9KU1ZhbHVlKFVuaXF1ZUlEQkRhdGFiYXNlOjpkYXRhYmFzZVRocmVhZEV4ZWNT
dGF0ZSgpLCBpdGVyYXRvci52YWx1ZSk7CiAgICAgICAgIGlmIChqc1ZhbHVlLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IGI5MmNlNjgyODQw
ZWY4YmZiNTcyMDI0MDcwZjk5MWM5NmY3ZTM3YTMuLjY3MTdiMWUyZmI2NjNhMjljZWVhYTQ4NzVm
MTJlNWEzOGRkYjZhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0zNywxMSArMzcsOSBAQAogI2luY2x1ZGUgIkluZGV4
S2V5LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgot
I2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5j
bHVkZSAiVGhyZWFkU2FmZURhdGFCdWZmZXIuaCIKIAotI2luY2x1ZGUgPGJpbmRpbmdzL1Njcmlw
dFZhbHVlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9EYXRlSW5zdGFuY2UuaD4KICNpbmNsdWRlIDxy
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+CiAKQEAgLTc5LDYgKzc3LDQzIEBAIHN0YXRpYyBi
b29sIHNldChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUmIG9iamVjdCwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoRWxlbWVudCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorSlNWYWx1ZSBpZGJLZXlEYXRh
VG9KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiBleGVjLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRh
KQoreworICAgIGlmIChrZXlEYXRhLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKKworICAgIExvY2tlcjxKU0xvY2s+IGxvY2tlcihleGVjLnZtKCkuYXBpTG9jaygpKTsK
KworICAgIHN3aXRjaCAoa2V5RGF0YS50eXBlKCkpIHsKKyAgICBjYXNlIEtleVR5cGU6OkFycmF5
OgorICAgICAgICB7CisgICAgICAgICAgICBjb25zdCBWZWN0b3I8SURCS2V5RGF0YT4mIGluQXJy
YXkgPSBrZXlEYXRhLmFycmF5KCk7CisgICAgICAgICAgICBzaXplX3Qgc2l6ZSA9IGluQXJyYXku
c2l6ZSgpOworICAgICAgICAgICAgSlNBcnJheSogb3V0QXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFy
cmF5KCZleGVjLCAwLCBleGVjLmxleGljYWxHbG9iYWxPYmplY3QoKSwgc2l6ZSk7CisgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgICAg
IGF1dG8mIGFycmF5S2V5ID0gaW5BcnJheS5hdChpKTsKKyAgICAgICAgICAgICAgICBvdXRBcnJh
eS0+cHV0RGlyZWN0SW5kZXgoJmV4ZWMsIGksIGlkYktleURhdGFUb0pTVmFsdWUoZXhlYywgYXJy
YXlLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKG91dEFy
cmF5KTsKKyAgICAgICAgfQorICAgIGNhc2UgS2V5VHlwZTo6U3RyaW5nOgorICAgICAgICByZXR1
cm4ganNTdHJpbmdXaXRoQ2FjaGUoJmV4ZWMsIGtleURhdGEuc3RyaW5nKCkpOworICAgIGNhc2Ug
S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgcmV0dXJuIGpzRGF0ZU9yTnVsbCgmZXhlYywga2V5RGF0
YS5kYXRlKCkpOworICAgIGNhc2UgS2V5VHlwZTo6TnVtYmVyOgorICAgICAgICByZXR1cm4ganNO
dW1iZXIoa2V5RGF0YS5udW1iZXIoKSk7CisgICAgY2FzZSBLZXlUeXBlOjpNaW46CisgICAgY2Fz
ZSBLZXlUeXBlOjpNYXg6CisgICAgY2FzZSBLZXlUeXBlOjpJbnZhbGlkOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisK
K30KKwogc3RhdGljIEpTVmFsdWUgaWRiS2V5VG9KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSURCS2V5KiBrZXkpCiB7CiAgICAgaWYgKCFrZXkg
fHwgIWV4ZWMpIHsKQEAgLTE2NiwxMyArMjAxLDEzIEBAIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBj
cmVhdGVJREJLZXlGcm9tVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAg
IHJldHVybiBJREJLZXk6OmNyZWF0ZUludmFsaWQoKTsKIH0KIAotSURCS2V5UGF0aCBpZGJLZXlQ
YXRoRnJvbVZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgSlNWYWx1ZSBrZXlQYXRoVmFsdWUpCitJREJL
ZXlQYXRoIGlkYktleVBhdGhGcm9tVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleVBh
dGhWYWx1ZSkKIHsKICAgICBJREJLZXlQYXRoIGtleVBhdGg7CiAgICAgaWYgKGlzSlNBcnJheShr
ZXlQYXRoVmFsdWUpKQotICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0aCh0b05hdGl2ZUFycmF5
PFN0cmluZz4oJmV4ZWMsIGtleVBhdGhWYWx1ZSkpOworICAgICAgICBrZXlQYXRoID0gSURCS2V5
UGF0aCh0b05hdGl2ZUFycmF5PFN0cmluZz4oZXhlYywga2V5UGF0aFZhbHVlKSk7CiAgICAgZWxz
ZQotICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0aChrZXlQYXRoVmFsdWUudG9TdHJpbmcoJmV4
ZWMpLT52YWx1ZSgmZXhlYykpOworICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0aChrZXlQYXRo
VmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICByZXR1cm4ga2V5UGF0aDsK
IH0KIApAQCAtMjM4LDYgKzI3MywzMiBAQCBzdGF0aWMgYm9vbCBjYW5JbmplY3ROdGhWYWx1ZU9u
S2V5UGF0aChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcm9vdFZhbHVlLCBjb25zdAogICAgIHJl
dHVybiB0cnVlOwogfQogCitib29sIGluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShET01SZXF1
ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUmIHZhbHVlLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoKQoreworICAg
IExPRyhTdG9yYWdlQVBJLCAiaW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlIik7CisKKyAgICBB
U1NFUlQoa2V5UGF0aC50eXBlKCkgPT0gSW5kZXhlZERCOjpLZXlQYXRoVHlwZTo6U3RyaW5nKTsK
KworICAgIFZlY3RvcjxTdHJpbmc+IGtleVBhdGhFbGVtZW50czsKKyAgICBJREJLZXlQYXRoUGFy
c2VFcnJvciBlcnJvcjsKKyAgICBJREJQYXJzZUtleVBhdGgoa2V5UGF0aC5zdHJpbmcoKSwga2V5
UGF0aEVsZW1lbnRzLCBlcnJvcik7CisgICAgQVNTRVJUKGVycm9yID09IElEQktleVBhdGhQYXJz
ZUVycm9yOjpOb25lKTsKKworICAgIGlmIChrZXlQYXRoRWxlbWVudHMuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSByZXF1ZXN0U3RhdGUt
PmV4ZWMoKTsKKworICAgIEpTVmFsdWUgcGFyZW50ID0gZW5zdXJlTnRoVmFsdWVPbktleVBhdGgo
ZXhlYywgdmFsdWUuanNWYWx1ZSgpLCBrZXlQYXRoRWxlbWVudHMsIGtleVBhdGhFbGVtZW50cy5z
aXplKCkgLSAxKTsKKyAgICBpZiAocGFyZW50LmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmICghc2V0KGV4ZWMsIHBhcmVudCwga2V5UGF0aEVsZW1lbnRzLmxh
c3QoKSwgaWRiS2V5VG9KU1ZhbHVlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwg
a2V5LmdldCgpKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCiBib29sIGluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhl
YywgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBjb25zdCBJ
REJLZXlQYXRoJiBrZXlQYXRoKQogewogICAgIExPRyhJbmRleGVkREIsICJpbmplY3RJREJLZXlJ
bnRvU2NyaXB0VmFsdWUiKTsKQEAgLTI2Niw2ICszMjcsNDcgQEAgYm9vbCBpbmplY3RJREJLZXlJ
bnRvU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUmIGV4ZWMsIGNvbnN0IElEQktleURhdGEmIGtl
eURhdGEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5
RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCkKK3sKKyAg
ICBMT0coU3RvcmFnZUFQSSwgImNyZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBhdGgi
KTsKKyAgICBBU1NFUlQoIWtleVBhdGguaXNOdWxsKCkpOworCisgICAgaWYgKGtleVBhdGgudHlw
ZSgpID09IEluZGV4ZWREQjo6S2V5UGF0aFR5cGU6OkFycmF5KSB7CisgICAgICAgIFZlY3RvcjxS
ZWZQdHI8SURCS2V5Pj4gcmVzdWx0OworICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXJy
YXkgPSBrZXlQYXRoLmFycmF5KCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJy
YXkuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IGludGVy
bmFsQ3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChleGVjLCB2YWx1ZSwgYXJy
YXlbaV0pOworICAgICAgICAgICAgaWYgKCFrZXkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGtleSk7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIElEQktleTo6Y3JlYXRlQXJyYXkocmVzdWx0KTsKKyAgICB9CisKKyAgICBBU1NF
UlQoa2V5UGF0aC50eXBlKCkgPT0gSW5kZXhlZERCOjpLZXlQYXRoVHlwZTo6U3RyaW5nKTsKKyAg
ICByZXR1cm4gaW50ZXJuYWxDcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKGV4
ZWMsIHZhbHVlLCBrZXlQYXRoLnN0cmluZygpKTsKK30KKworUmVmUHRyPElEQktleT4gbWF5YmVD
cmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKEV4ZWNTdGF0ZSYgZXhlYywgY29u
c3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQ
YXRoKQoreworICAgIEFTU0VSVCgha2V5UGF0aC5pc051bGwoKSk7CisKKyAgICBpZiAoa2V5UGF0
aC50eXBlKCkgPT0gSW5kZXhlZERCOjpLZXlQYXRoVHlwZTo6QXJyYXkpIHsKKyAgICAgICAgVmVj
dG9yPFJlZlB0cjxJREJLZXk+PiByZXN1bHQ7CisgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBhcnJheSA9IGtleVBhdGguYXJyYXkoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBhcnJheS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgUmVmUHRyPElEQktleT4ga2V5ID0g
aW50ZXJuYWxDcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKCZleGVjLCB2YWx1
ZSwgYXJyYXlbaV0pOworICAgICAgICAgICAgaWYgKCFrZXkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGtleSk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlQXJyYXkocmVzdWx0KTsKKyAgICB9CisKKyAg
ICBBU1NFUlQoa2V5UGF0aC50eXBlKCkgPT0gSW5kZXhlZERCOjpLZXlQYXRoVHlwZTo6U3RyaW5n
KTsKKyAgICByZXR1cm4gaW50ZXJuYWxDcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQ
YXRoKCZleGVjLCB2YWx1ZSwga2V5UGF0aC5zdHJpbmcoKSk7Cit9CisKIFJlZlB0cjxJREJLZXk+
IG1heWJlQ3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChFeGVjU3RhdGUmIGV4
ZWMsIGNvbnN0IEpTQzo6SlNWYWx1ZSYgdmFsdWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgp
CiB7CiAgICAgQVNTRVJUKCFrZXlQYXRoLmlzTnVsbCgpKTsKQEAgLTI4Nyw2ICszODksMTcgQEAg
UmVmUHRyPElEQktleT4gbWF5YmVDcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRo
KEV4ZWNTdGF0ZSYgZXhlYywgY29uc3QKICAgICByZXR1cm4gaW50ZXJuYWxDcmVhdGVJREJLZXlG
cm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKCZleGVjLCB2YWx1ZSwga2V5UGF0aC5zdHJpbmcoKSk7
CiB9CiAKK2Jvb2wgY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0
ZSogcmVxdWVzdFN0YXRlLCBjb25zdCBKU0M6OkpTVmFsdWUmIHNjcmlwdFZhbHVlLCBjb25zdCBJ
REJLZXlQYXRoJiBrZXlQYXRoKQoreworICAgIExPRyhTdG9yYWdlQVBJLCAiY2FuSW5qZWN0SURC
S2V5SW50b1NjcmlwdFZhbHVlIik7CisKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IHJlcXVl
c3RTdGF0ZS0+ZXhlYygpOworICAgIGlmICghZXhlYykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIGNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1ZSgqZXhlYywgc2NyaXB0
VmFsdWUsIGtleVBhdGgpOworfQorCiBib29sIGNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1
ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBjb25zdCBKU0M6OkpTVmFsdWUmIHNjcmlwdFZh
bHVlLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAi
Y2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlIik7CkBAIC0zMDMsMTYgKzQxNiwzMCBAQCBi
b29sIGNhbkluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlY1N0
YXRlLCBjb25zdCBKU0M6OkpTVmFsdQogICAgIHJldHVybiBjYW5JbmplY3ROdGhWYWx1ZU9uS2V5
UGF0aCgmZXhlY1N0YXRlLCBzY3JpcHRWYWx1ZSwga2V5UGF0aEVsZW1lbnRzLCBrZXlQYXRoRWxl
bWVudHMuc2l6ZSgpIC0gMSk7CiB9CiAKLUpTVmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZURhdGFU
b0pTVmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVGhyZWFkU2Fm
ZURhdGFCdWZmZXImIHZhbHVlRGF0YSkKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFs
aXplSURCVmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBwcnBWYWx1ZSkKIHsKLSAgICBhdXRvKiBzdGF0ZSA9IGNvbnRl
eHQuZXhlY1N0YXRlKCk7Ci0gICAgaWYgKCFzdGF0ZSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgp
OworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJlcXVlc3RTdGF0ZS0+ZXhlYygpOworICAgIFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRWYWx1ZSA9IHBycFZhbHVlOworICAg
IEpTVmFsdWUgcmVzdWx0OworICAgIGlmIChzZXJpYWxpemVkVmFsdWUpCisgICAgICAgIHJlc3Vs
dCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxpemUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLCAwKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGpzTnVsbCgpOworICAg
IHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgpLCByZXN1bHQpOworfQog
Ci0gICAgcmV0dXJuIGRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKCpzdGF0ZSwgdmFs
dWVEYXRhKTsKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVEYXRh
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVm
ZmVyJiB2YWx1ZURhdGEpCit7CisgICAgRE9NUmVxdWVzdFN0YXRlIHN0YXRlKCZjb250ZXh0KTsK
KyAgICBhdXRvKiBleGVjU3RhdGUgPSBzdGF0ZS5leGVjKCk7CisKKyAgICBpZiAoIWV4ZWNTdGF0
ZSkKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCk7CisKKyAgICByZXR1
cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoZXhlY1N0YXRlLT52bSgpLCBkZXNlcmlhbGl6ZUlE
QlZhbHVlRGF0YVRvSlNWYWx1ZSgqZXhlY1N0YXRlLCB2YWx1ZURhdGEpKTsKIH0KIAotSlNWYWx1
ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlYywg
Y29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSkKK0pTQzo6SlNWYWx1ZSBkZXNl
cmlhbGl6ZUlEQlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlYywgY29uc3Qg
VGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSkKIHsKICAgICBpZiAoIXZhbHVlRGF0YS5k
YXRhKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMzMxLDI0ICs0NTgsNzQg
QEAgSlNWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSYgZXhlYywgY29uc3QgVGhyZWFkU2FmZUQKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1SZWZQ
dHI8SURCS2V5PiBzY3JpcHRWYWx1ZVRvSURCS2V5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEpTQzo6SlNWYWx1ZSYgc2NyaXB0VmFsdWUpCitEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlQnVmZmVyKERPTVJlcXVlc3RTdGF0ZSogcmVxdWVz
dFN0YXRlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwQnVmZmVyLCBib29sIGtleUlzRGVm
aW5lZCkKIHsKLSAgICByZXR1cm4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKGNvbnRleHQuZXhlY1N0
YXRlKCksIHNjcmlwdFZhbHVlKTsKKyAgICBpZiAocHJwQnVmZmVyKSB7CisgICAgICAgIFZlY3Rv
cjx1aW50OF90PiB2YWx1ZTsKKyAgICAgICAgdmFsdWUuYXBwZW5kKHBycEJ1ZmZlci0+ZGF0YSgp
LCBwcnBCdWZmZXItPnNpemUoKSk7CisgICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZUlEQlZhbHVl
QnVmZmVyKHJlcXVlc3RTdGF0ZS0+ZXhlYygpLCBXVEZNb3ZlKHZhbHVlKSwga2V5SXNEZWZpbmVk
KTsKKyAgICB9CisKKyAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUocmVxdWVzdFN0
YXRlLT5leGVjKCktPnZtKCksIGpzTnVsbCgpKTsKIH0KIAotUmVmUHRyPElEQktleT4gc2NyaXB0
VmFsdWVUb0lEQktleShFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBKU0M6OkpTVmFsdWUmIHNjcmlw
dFZhbHVlKQorc3RhdGljIEpTVmFsdWUgaWRiVmFsdWVEYXRhVG9KU1ZhbHVlKEpTQzo6RXhlY1N0
YXRlJiBleGVjLCBWZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZUlEQktleUZyb21WYWx1ZSgmc3RhdGUsIHNjcmlwdFZhbHVlKTsKKyAgICBpZiAoYnVmZmVyLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworCisgICAgUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpj
cmVhdGVGcm9tV2lyZUJ5dGVzKFdURk1vdmUoYnVmZmVyKSk7CisgICAgcmV0dXJuIHNlcmlhbGl6
ZWRWYWx1ZS0+ZGVzZXJpYWxpemUoJmV4ZWMsIGV4ZWMubGV4aWNhbEdsb2JhbE9iamVjdCgpLCAw
LCBOb25UaHJvd2luZyk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJLZXlEYXRhJiBrZXlE
YXRhKQorRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBib29sIGtleUlz
RGVmaW5lZCkKIHsKLSAgICBhdXRvKiBleGVjID0gY29udGV4dC5leGVjU3RhdGUoKTsKLSAgICBp
ZiAoIWV4ZWMpCisgICAgQVNTRVJUKGV4ZWMpOworCisgICAgLy8gSWYgdGhlIGtleSBkb2Vzbid0
IGV4aXN0LCB0aGVuIHRoZSB2YWx1ZSBtdXN0IGJlIHVuZGVmaW5lZCAoYXMgb3Bwb3NlZCB0byBu
dWxsKS4KKyAgICBpZiAoIWtleUlzRGVmaW5lZCkgeworICAgICAgICAvLyBXZSBlaXRoZXIgc2hv
dWxkbid0IGhhdmUgYSBidWZmZXIgb3IgaXQgc2hvdWxkIGJlIG9mIHNpemUgMC4KKyAgICAgICAg
QVNTRVJUKCFidWZmZXIuc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlKGV4ZWMtPnZtKCksIGpzVW5kZWZpbmVkKCkpOworICAgIH0KKworICAgIEpTVmFsdWUg
cmVzdWx0ID0gaWRiVmFsdWVEYXRhVG9KU1ZhbHVlKCpleGVjLCBXVEZNb3ZlKGJ1ZmZlcikpOwor
ICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52bSgpLCByZXN1bHQpOwor
fQorCitKU1ZhbHVlIGlkYlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYgZXhlYywg
Y29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSkKK3sKKyAgICBpZiAoIXZhbHVl
RGF0YS5kYXRhKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCisgICAgcmV0dXJu
IGlkYlZhbHVlRGF0YVRvSlNWYWx1ZShleGVjLCBWZWN0b3I8dWludDhfdD4oKnZhbHVlRGF0YS5k
YXRhKCkpKTsKK30KKworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgaWRiS2V5VG9TY3JpcHRWYWx1
ZShET01SZXF1ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkK
K3sKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSByZXF1ZXN0U3RhdGUtPmV4ZWMoKTsKKyAgICBpZiAo
IWV4ZWMpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUoZXhlYy0+dm0oKSwgaWRiS2V5VG9KU1ZhbHVlKGV4ZWMsIGpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGtleS5nZXQoKSkpOwor
fQorCitSZWZQdHI8SURCS2V5PiBzY3JpcHRWYWx1ZVRvSURCS2V5KERPTVJlcXVlc3RTdGF0ZSog
cmVxdWVzdFN0YXRlLCBjb25zdCBKU0M6OkpTVmFsdWUmIHNjcmlwdFZhbHVlKQoreworICAgIEV4
ZWNTdGF0ZSogZXhlYyA9IHJlcXVlc3RTdGF0ZS0+ZXhlYygpOworICAgIHJldHVybiBjcmVhdGVJ
REJLZXlGcm9tVmFsdWUoZXhlYywgc2NyaXB0VmFsdWUpOworfQorCitSZWZQdHI8SURCS2V5PiBz
Y3JpcHRWYWx1ZVRvSURCS2V5KEV4ZWNTdGF0ZSYgZXhlYywgY29uc3QgSlNDOjpKU1ZhbHVlJiBz
Y3JpcHRWYWx1ZSkKK3sKKyAgICByZXR1cm4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKCZleGVjLCBz
Y3JpcHRWYWx1ZSk7Cit9CisKK0RlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGlkYktleURhdGFUb1Nj
cmlwdFZhbHVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IElEQktleURh
dGEmIGtleURhdGEpCit7CiAgICAgUmVmUHRyPElEQktleT4ga2V5ID0ga2V5RGF0YS5tYXliZUNy
ZWF0ZUlEQktleSgpOwotICAgIHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZShleGVjLT52
bSgpLCBpZGJLZXlUb0pTVmFsdWUoZXhlYywganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwga2V5LmdldCgpKSkuanNWYWx1ZSgpOworICAgIERP
TVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CisgICAgcmV0dXJuIGlkYktleVRv
U2NyaXB0VmFsdWUoJnJlcXVlc3RTdGF0ZSwga2V5LmdldCgpKTsKIH0KIAogc3RhdGljIFZlY3Rv
cjxJREJLZXlEYXRhPiBjcmVhdGVLZXlQYXRoQXJyYXkoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVl
IHZhbHVlLCBjb25zdCBJREJJbmRleEluZm8mIGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggNjM0YzgxOTQyYzY4YmJmODMy
Mzc3MzAxYzMwMWQ0ODgzMDk1MmY4OS4uYzE3MGQxNjM1ODM2OWJmMmVhMzcxMjI0NmRmNGUwYzRm
MWY3NDg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGlu
Z1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdV
dGlsaXRpZXMuaApAQCAtMjksMzIgKzI5LDQ5IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0
VmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERPTVJlcXVlc3RTdGF0ZTsKIGNsYXNzIElEQkluZGV4SW5mbzsKIGNsYXNzIElE
QktleTsKIGNsYXNzIElEQktleURhdGE7CiBjbGFzcyBJREJLZXlQYXRoOwogY2xhc3MgSW5kZXhL
ZXk7CitjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKIAot
SURCS2V5UGF0aCBpZGJLZXlQYXRoRnJvbVZhbHVlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1Zh
bHVlKTsKK0lEQktleVBhdGggaWRiS2V5UGF0aEZyb21WYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSk7CiAKK2Jvb2wgaW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKERPTVJlcXVl
c3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5PiwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBj
b25zdCBJREJLZXlQYXRoJik7Citib29sIGluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShKU0M6
OkV4ZWNTdGF0ZSYsIGNvbnN0IElEQktleURhdGEmLCBKU0M6OkpTVmFsdWUsIGNvbnN0IElEQktl
eVBhdGgmKTsKKworUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5k
S2V5UGF0aChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwg
Y29uc3QgSURCS2V5UGF0aCYpOworUmVmUHRyPElEQktleT4gbWF5YmVDcmVhdGVJREJLZXlGcm9t
U2NyaXB0VmFsdWVBbmRLZXlQYXRoKEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmLCBjb25zdCBJREJLZXlQYXRoJik7CiBSZWZQdHI8SURCS2V5PiBtYXliZUNy
ZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBhdGgoSlNDOjpFeGVjU3RhdGUmLCBjb25z
dCBKU0M6OkpTVmFsdWUmLCBjb25zdCBJREJLZXlQYXRoJik7CisKK2Jvb2wgY2FuSW5qZWN0SURC
S2V5SW50b1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIGNvbnN0IEpTQzo6SlNWYWx1ZSYs
IGNvbnN0IElEQktleVBhdGgmKTsKIGJvb2wgY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVl
KEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgSlNDOjpKU1ZhbHVlJiwgY29uc3QgSURCS2V5UGF0aCYp
OwotYm9vbCBpbmplY3RJREJLZXlJbnRvU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBjb25z
dCBJREJLZXlEYXRhJiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBJREJLZXlQYXRoJik7CiAKLUpTQzo6
SlNWYWx1ZSBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgSURCS2V5RGF0YSYpOwotdm9pZCBnZW5lcmF0ZUluZGV4S2V5Rm9yVmFsdWUoSlNDOjpF
eGVjU3RhdGUmLCBjb25zdCBJREJJbmRleEluZm8mLCBKU0M6OkpTVmFsdWUsIEluZGV4S2V5JiBv
dXRLZXkpOworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShET01S
ZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOworRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZURhdGEoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEpOworRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZUJ1ZmZlcihET01SZXF1ZXN0U3Rh
dGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGJvb2wga2V5SXNEZWZpbmVkKTsKK1dFQkNP
UkVfRVhQT1JUIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVCdWZm
ZXIoSlNDOjpFeGVjU3RhdGUqLCBWZWN0b3I8dWludDhfdD4mJiwgYm9vbCBrZXlJc0RlZmluZWQp
OwogCi1KU0M6OkpTVmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZURhdGFUb0pTVmFsdWUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEp
OwogSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKEpTQzo6RXhl
Y1N0YXRlJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSk7CiAKLVJlZlB0
cjxJREJLZXk+IHNjcmlwdFZhbHVlVG9JREJLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNv
bnN0IEpTQzo6SlNWYWx1ZSYpOworRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgaWRiS2V5VG9TY3Jp
cHRWYWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPElEQktleT4pOworUmVmUHRyPElE
QktleT4gc2NyaXB0VmFsdWVUb0lEQktleShET01SZXF1ZXN0U3RhdGUqLCBjb25zdCBKU0M6OkpT
VmFsdWUmKTsKIFJlZlB0cjxJREJLZXk+IHNjcmlwdFZhbHVlVG9JREJLZXkoSlNDOjpFeGVjU3Rh
dGUmLCBjb25zdCBKU0M6OkpTVmFsdWUmKTsKIAorRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgaWRi
S2V5RGF0YVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IElEQktl
eURhdGEmKTsKKworSlNDOjpKU1ZhbHVlIGlkYlZhbHVlRGF0YVRvSlNWYWx1ZShKU0M6OkV4ZWNT
dGF0ZSYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEpOwordm9pZCBnZW5l
cmF0ZUluZGV4S2V5Rm9yVmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBJREJJbmRleEluZm8m
LCBKU0M6OkpTVmFsdWUsIEluZGV4S2V5JiBvdXRLZXkpOworSlNDOjpKU1ZhbHVlIGlkYktleURh
dGFUb0pTVmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBJREJLZXlEYXRhJik7CisKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwCmluZGV4IGI3ZmE5ZWYxNjVkZGRmOTY2NTJiZWZk
Mjk3ZDEyYzJhZWNiNTNiNmIuLjdkNmYzZDk2Y2Q2NmI0MGMzZGU2YjhlMTFkMGQ0YTc2ZDUwNjRj
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAK
QEAgLTk4LDcgKzk4LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSURCQW55KiBpZGJBbnkpCiAgICAgY2FzZSBJREJBbnk6
OlR5cGU6OklEQlRyYW5zYWN0aW9uOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIGlkYkFueS0+aWRiVHJhbnNhY3Rpb24oKSk7CiAgICAgY2FzZSBJREJBbnk6OlR5cGU6
OlNjcmlwdFZhbHVlOgotICAgICAgICByZXR1cm4gaWRiQW55LT5zY3JpcHRWYWx1ZSgpOworICAg
ICAgICByZXR1cm4gaWRiQW55LT5zY3JpcHRWYWx1ZSgpLmpzVmFsdWUoKTsKICAgICBjYXNlIElE
QkFueTo6VHlwZTo6U3RyaW5nOgogICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhl
YywgaWRiQW55LT5zdHJpbmcoKSk7CiAgICAgY2FzZSBJREJBbnk6OlR5cGU6OkludGVnZXI6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkRhdGFiYXNlQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VDdXN0b20uY3Bw
CmluZGV4IDRhZGVmZTA0NDhmN2NhNjIxNzM0NGJhZmMzNThhZTUwZjQyZjA1MzQuLmQ3ZjU4MWFh
ODdhZTgyNzEwOGZhZTBmYzkyMTUxNDlmM2ZhNGQzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSURCRGF0YWJhc2VDdXN0b20uY3BwCkBAIC02Niw3ICs2Niw3IEBA
IEpTVmFsdWUgSlNJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUoRXhlY1N0YXRlJiBzdGF0
ZSkKICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgICAgIGlmICgha2V5
UGF0aFZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgICAgIGtleVBhdGggPSBp
ZGJLZXlQYXRoRnJvbVZhbHVlKHN0YXRlLCBrZXlQYXRoVmFsdWUpOworICAgICAgICAgICAga2V5
UGF0aCA9IGlkYktleVBhdGhGcm9tVmFsdWUoJnN0YXRlLCBrZXlQYXRoVmFsdWUpOwogICAgICAg
ICAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwCmluZGV4IDQxZDdjOGNhN2Q4ZTk3MzA2
NmI0MDk2MDM3MTBlN2E3NDk2NjNkMGEuLjc0NGQ5YTM2YWQ3OGMzYmRkZjFiMzRiY2NjNDA3ZGUx
ZTNjY2JiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCT2Jq
ZWN0U3RvcmVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURC
T2JqZWN0U3RvcmVDdXN0b20uY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgSlNWYWx1ZSBKU0lEQk9i
amVjdFN0b3JlOjpjcmVhdGVJbmRleChFeGVjU3RhdGUmIHN0YXRlKQogICAgIElEQktleVBhdGgg
a2V5UGF0aDsKICAgICBKU1ZhbHVlIGtleVBhdGhWYWx1ZSA9IHN0YXRlLmFyZ3VtZW50KDEpOwog
ICAgIGlmICgha2V5UGF0aFZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIGtleVBh
dGggPSBpZGJLZXlQYXRoRnJvbVZhbHVlKHN0YXRlLCBrZXlQYXRoVmFsdWUpOworICAgICAgICBr
ZXlQYXRoID0gaWRiS2V5UGF0aEZyb21WYWx1ZSgmc3RhdGUsIGtleVBhdGhWYWx1ZSk7CiAgICAg
ZWxzZSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2FnZSBlYzsKICAgICAgICAgZWMu
Y29kZSA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpTeW50YXhFcnJvcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggODcwZWZj
NWU1OTlhNjY4Y2EyMzFhZjQ2MjE0YTRjYzhiY2E1NzVmMS4uMTFkNWI1NTFkMDE5YTkxOGVjNWY1
MGI3OTE4MzY2MzI1YWYwNTcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTQzNDksMTIgKzQzNDksOSBAQCBzdWIgTmF0
aXZlVG9KU1ZhbHVlCiAgICAgICAgIHJldHVybiAianNBcnJheShzdGF0ZSwgJHRoaXNWYWx1ZS0+
Z2xvYmFsT2JqZWN0KCksICR2YWx1ZSkiOwogICAgIH0KIAotICAgIG15ICRyZXR1cm5UeXBlID0g
JHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGF0aW9uUmV0dXJuVHlw
ZSJ9OwogICAgIGlmICgkdHlwZSBlcSAiYW55IikgewogICAgICAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIkRvY3VtZW50IikgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgiLCAkY29uZGl0aW9uYWwpOwotICAgICAgICB9IGVsc2lm
IChkZWZpbmVkICRyZXR1cm5UeXBlIGFuZCAkcmV0dXJuVHlwZSBlcSAiSlNWYWx1ZSIpIHsKLSAg
ICAgICAgICAgIHJldHVybiAiJHZhbHVlIjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHJldHVybiAiKCR2YWx1ZS5oYXNOb1ZhbHVlKCkgPyBqc051bGwoKSA6ICR2YWx1ZS5qc1ZhbHVl
KCkpIjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMQXR0cmlidXRlcy50eHQKaW5kZXggNDZkYmIwMmNiM2VmY2QwMzNiMzkzYmU1MWZjMThhNDU4
ZjE3YTY5Mi4uMDM0NjRkNGJlYTQzZTFhYzA4ZTNhOTFjOWQ4Yjk3ZGE2ZTNhZjBlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBA
IC02NywxMCArNjcsOSBAQCBHZXR0ZXJSYWlzZXNFeGNlcHRpb24KIEdldHRlclJhaXNlc0V4Y2Vw
dGlvbldpdGhNZXNzYWdlCiBHbG9iYWxDb250ZXh0PURPTVdpbmRvd3xXb3JrZXJHbG9iYWxTY29w
ZXxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQogSW1tdXRhYmxlCi1JbXBsZW1lbnRlZEFzPSoK
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKIEltcGxlbWVudGF0aW9uTmFtZXNwYWNlPSoKLUlt
cGxlbWVudGF0aW9uUmV0dXJuVHlwZT0qCitJbXBsZW1lbnRlZEFzPSoKIEltcGxpY2l0VGhpcwog
SW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5hbWU9KgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IGFmYWYyYzM5Zjk3
Y2E4NWZmMjc1NDcxMDViNTE1ZmYzMTEwNTIyZWIuLjdiYTI2ZDk0MWQ1YTU1OTVlOTVjYjk4YWFk
ZDdkMWYyNTU3NjkzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKQEAgLTQ4NywxNSArNDg3LDQgQEAgYm9vbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
SlNDOjpFeGVjU3RhdGUqIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmV4ZWNTdGF0ZSgpCi17Ci0g
ICAgaWYgKGlzPERvY3VtZW50PigqdGhpcykpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCp0aGlzKTsKLSAgICAgICAgcmV0dXJuIGV4ZWNTdGF0ZUZy
b21QYWdlKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBkb2N1bWVudC5wYWdlKCkpOwotICAgIH0K
LQotICAgIFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSA9IHN0YXRpY19jYXN0
PFdvcmtlckdsb2JhbFNjb3BlKj4odGhpcyk7Ci0gICAgcmV0dXJuIGV4ZWNTdGF0ZUZyb21Xb3Jr
ZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4
IDEwNTE1YzU1MjkzZGI2ZGM5ZmVlOTM3MjY5MjM3OGZkZmYzZWI1OTUuLmE2NjRlYjkzNDA5MjVl
NjQ1NmI0YzQ5YTVlMjFlODM0NDNkZmRjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTg4LDggKzE4OCw2IEBAIHB1YmxpYzoKICAgICBpbnQg
dGltZXJOZXN0aW5nTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX3RpbWVyTmVzdGluZ0xldmVsOyB9
CiAgICAgdm9pZCBzZXRUaW1lck5lc3RpbmdMZXZlbChpbnQgdGltZXJOZXN0aW5nTGV2ZWwpIHsg
bV90aW1lck5lc3RpbmdMZXZlbCA9IHRpbWVyTmVzdGluZ0xldmVsOyB9CiAKLSAgICBKU0M6OkV4
ZWNTdGF0ZSogZXhlY1N0YXRlKCk7Ci0KIHByb3RlY3RlZDoKICAgICBjbGFzcyBBZGRDb25zb2xl
TWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggMmJi
MDhmOWUwODY1NGRiYjI4OWIwMjE3YjdkNThlNzQxZTlmZGUyMS4uM2QyZGJlMGY2MGU5YWFjMjBk
ZTZjOThlYmZlNWZjNjNmMDNkNTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJREJCaW5kaW5nVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAi
SURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiSURCQ3Vyc29yV2l0aFZhbHVlLmgiCiAjaW5jbHVkZSAi
SURCRGF0YWJhc2UuaCIKQEAgLTMzNCw3ICszMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biB0aGlzID09ICZvdGhlcjsKICAgICB9CiAKLSAgICB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV2ZW50KiBldmVudCkgb3ZlcnJpZGUKKyAgICB2b2lk
IGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCogZXZlbnQpIG92ZXJy
aWRlCiAgICAgewogICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkuc3Vj
Y2Vzc0V2ZW50KSB7CiAgICAgICAgICAgICBtX3JlcXVlc3RDYWxsYmFjay0+c2VuZEZhaWx1cmUo
IlVuZXhwZWN0ZWQgZXZlbnQgdHlwZS4iKTsKQEAgLTM4MSwxNCArMzgwLDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIEpTQzo6RXhlY1N0YXRl
KiBzdGF0ZSA9IGNvbnRleHQgPyBjb250ZXh0LT5leGVjU3RhdGUoKSA6IG51bGxwdHI7Ci0gICAg
ICAgIGlmICghc3RhdGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgUmVmUHRyPERh
dGFFbnRyeT4gZGF0YUVudHJ5ID0gRGF0YUVudHJ5OjpjcmVhdGUoKQotICAgICAgICAgICAgLnNl
dEtleShtX2luamVjdGVkU2NyaXB0LndyYXBPYmplY3QoeyBzdGF0ZS0+dm0oKSwgaWRiQ3Vyc29y
LT5rZXkoKnN0YXRlKSB9LCBTdHJpbmcoKSwgdHJ1ZSkpCi0gICAgICAgICAgICAuc2V0UHJpbWFy
eUtleShtX2luamVjdGVkU2NyaXB0LndyYXBPYmplY3QoeyBzdGF0ZS0+dm0oKSwgaWRiQ3Vyc29y
LT5wcmltYXJ5S2V5KCpzdGF0ZSkgfSwgU3RyaW5nKCksIHRydWUpKQotICAgICAgICAgICAgLnNl
dFZhbHVlKG1faW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdCh7IHN0YXRlLT52bSgpLCBpZGJDdXJz
b3ItPnZhbHVlKCpzdGF0ZSkgfSwgU3RyaW5nKCksIHRydWUpKQorICAgICAgICAgICAgLnNldEtl
eShtX2luamVjdGVkU2NyaXB0LndyYXBPYmplY3QoaWRiQ3Vyc29yLT5rZXkoKSwgU3RyaW5nKCks
IHRydWUpKQorICAgICAgICAgICAgLnNldFByaW1hcnlLZXkobV9pbmplY3RlZFNjcmlwdC53cmFw
T2JqZWN0KGlkYkN1cnNvci0+cHJpbWFyeUtleSgpLCBTdHJpbmcoKSwgdHJ1ZSkpCisgICAgICAg
ICAgICAuc2V0VmFsdWUobV9pbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KGlkYkN1cnNvci0+dmFs
dWUoKSwgU3RyaW5nKCksIHRydWUpKQogICAgICAgICAgICAgLnJlbGVhc2UoKTsKICAgICAgICAg
bV9yZXN1bHQtPmFkZEl0ZW0oV1RGTW92ZShkYXRhRW50cnkpKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>