<?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>232875</bug_id>
          
          <creation_ts>2021-11-09 05:49:51 -0800</creation_ts>
          <short_desc>REGRESSION(r285486): as it has made fast/ruby/generated-before-counter-doesnt-crash.html flaky, possibly indicating perf problem</short_desc>
          <delta_ts>2022-02-28 03:45:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>232236</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1813098</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-09 05:49:51 -0800</bug_when>
    <thetext>https://commits.webkit.org/r285486 introduced a regression:
as it has made fast/ruby/generated-before-counter-doesnt-crash.html flaky, possibly indicating perf problem

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>1813100</commentid>
    <comment_count>1</comment_count>
      <attachid>443685</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-09 05:50:03 -0800</bug_when>
    <thetext>Created attachment 443685
REVERT of r285486

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443685</attachid>
            <date>2021-11-09 05:50:03 -0800</date>
            <delta_ts>2022-02-28 03:45:16 -0800</delta_ts>
            <desc>REVERT of r285486</desc>
            <filename>bug-232875-20211109055002.patch</filename>
            <type>text/plain</type>
            <size>35436</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWIxODU3NDNiNjk4NDYx
ZGNlYmNlYzE1ZjBmZDA1ZDBmNGI1MDhlYi4uZTNjYjc5MWU5NDVmNDI1Zjk2NzAyNzFjNGE2ZjMy
OTcyOTliODZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTExLTA5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI4NTQ4Ni4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMjg3NQorCisgICAgICAgIGFzIGl0IGhhcyBtYWRlIGZhc3QvcnVieS9n
ZW5lcmF0ZWQtYmVmb3JlLWNvdW50ZXItZG9lc250LQorICAgICAgICBjcmFzaC5odG1sIGZsYWt5
LCBwb3NzaWJseSBpbmRpY2F0aW5nIHBlcmYgcHJvYmxlbQorCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldDoKKworICAgICAgICAiW0NTUyBDYXNjYWRlIExheWVyc10gU3VwcG9ydCAncmV2ZXJ0
LWxheWVyJyB2YWx1ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMjIzNgorICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjg1NDg2
CisKIDIwMjEtMTEtMDkgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciBjb25zdW1lV2lsbENoYW5nZSgpIHRvIG1ha2UgYmV0dGVyIHVzZSBvZiBjb25zdW1l
Q3VzdG9tSWRlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCA4
NWFhYzdkM2Y1ZjI3YWYzYWE2NjJlYWEyNjMzMzkwNjc3OTllOGJkLi41MTQ4YTRjYjJlNDc1NDNj
ZWYxNzRhZDJiODAzMTAyYmI0MDlhMzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuaApAQCAtMTIwLDcgKzEyMCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5oZXJpdFZh
bHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlSW5oZXJpdDsgfQogICAg
IGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVl
VW5zZXQ7IH0KICAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZUlE
KCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KLSAgICBib29sIGlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVJldmVydExheWVyOyB9CiAgICAgYm9v
bCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2
ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlSUQgdmFsdWVJRCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlEKSk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuY3BwCmluZGV4IDM5NmZjYmYyYTNjZWM4N2VlOGM4ZTVlMTRjMGU2N2E0ODE5MDBhNDQuLjRm
M2Y0NWFlODRhOWQ4ZGY1M2I2OWI2YjMzMzY2MGQ4YzNjZmJjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlLmNwcApAQCAtNTEwLDExICs1MTAsNiBAQCBib29sIENTU1ZhbHVlOjppc1JldmVydFZhbHVl
KCkgY29uc3QKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3du
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0VmFsdWUoKTsKIH0KIAotYm9v
bCBDU1NWYWx1ZTo6aXNSZXZlcnRMYXllclZhbHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaXM8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
KnRoaXMpLmlzUmV2ZXJ0TGF5ZXJWYWx1ZSgpOwotfQotCiBib29sIENTU1ZhbHVlOjppc0NTU1dp
ZGVLZXl3b3JkKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0
aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzQ1NTV2lkZUtleXdv
cmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggMzM4ZWQ1NWQzYTM0NDhhMDA4MGE1Y2FkZDgy
MzczZWJlNWVlNTE4OS4uMjllYTRiNmQxMTY2NDI5NmE3N2YxZGQ5Njc2ZTYwMjhkNTdiZDUzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTExMSw3ICsxMTEsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3Q7
CiAgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1JldmVydExheWVy
VmFsdWUoKSBjb25zdDsKICAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25zdDsKICAgICBi
b29sIHRyZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAgICAgYm9vbCB0
cmVhdEFzSW5oZXJpdGVkVmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IGEzYTk1NzA2YWI3ZDdjNjI0MzgzYTY3ZWRjMGY5
OTgwYjcxMjE1YTAuLjEyYWE3NWFlNTQ2YjIwZDY0MDVmMTJhMDZlOTZhZjA1YTQxYTc2YzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC01LDcgKzUsNiBAQCBpbmhl
cml0CiBpbml0aWFsCiB1bnNldAogcmV2ZXJ0Ci1yZXZlcnQtbGF5ZXIKIAogLy8KIC8vIENTU19Q
Uk9QX09VVExJTkVfU1RZTEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklk
aW9tcy5oCmluZGV4IGUyNTQyYWQyMGJkYTg5OTAzMjE4YWZmZjk2M2Q5OTlmN2ViZjM5OWEuLmRl
ZjIyMjAwOTI1NDRlNTZmYzk2MmYxMWNhMWU0ZjY0ZDExMjE4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaApAQCAtNjAsMjEgKzYwLDEyIEBAIGJvb2wg
aXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVlQWxsb3dlZElu
TW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKLWlubGluZSBib29sIGlzQ1NT
V2lkZUtleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZUlEKQorc3RhdGljIGlubGluZSBib29sIGlzQ1NT
V2lkZUtleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewotICAgIHN3aXRjaCAodmFsdWVJRCkg
ewotICAgIGNhc2UgQ1NTVmFsdWVJbml0aWFsOgotICAgIGNhc2UgQ1NTVmFsdWVJbmhlcml0Ogot
ICAgIGNhc2UgQ1NTVmFsdWVVbnNldDoKLSAgICBjYXNlIENTU1ZhbHVlUmV2ZXJ0OgotICAgIGNh
c2UgQ1NTVmFsdWVSZXZlcnRMYXllcjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH07CisgICAgcmV0dXJuIHZhbHVlSUQgPT0g
Q1NTVmFsdWVJbml0aWFsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0IHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVVbnNldCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmV2ZXJ0OwogfQogCi1pbmxp
bmUgYm9vbCBpc1ZhbGlkQ3VzdG9tSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZhbHVlSUQpCitzdGF0
aWMgaW5saW5lIGJvb2wgaXNWYWxpZEN1c3RvbUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2YWx1ZUlE
KQogewogICAgIC8vICJkZWZhdWx0IiBpcyBvYnNvbGV0ZSBhcyBhIENTUy13aWRlIGtleXdvcmQg
YnV0IGlzIHN0aWxsIG5vdCBhbGxvd2VkIGFzIGEgY3VzdG9tIGlkZW50aWZpZXIuCiAgICAgcmV0
dXJuICFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVEZWZh
dWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2FzY2FkZUxldmVsLmggYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaAppbmRleCBjMmQyYTFiMTgyMGMwNWY1
N2Q1ZGFlOGZjMzM5ZjM1NDBlZDJiMmIyLi5hMmUzMmE4NzE1Y2E3MmQ1ZjNiNWMwNDZkMjk3MDgx
MTMzZWRlMzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9DYXNjYWRlTGV2ZWwuaApAQCAtMzYsMTggKzM2
LDcgQEAgZW51bSBjbGFzcyBDYXNjYWRlTGV2ZWwgOiB1aW50OF90IHsKICAgICBBdXRob3IgICAg
ICA9IDEgPDwgMgogfTsKIAotaW5saW5lIENhc2NhZGVMZXZlbCYgb3BlcmF0b3ItLShDYXNjYWRl
TGV2ZWwmIGxldmVsKQotewotICAgIHN3aXRjaCAobGV2ZWwpIHsKLSAgICBjYXNlIENhc2NhZGVM
ZXZlbDo6QXV0aG9yOgotICAgICAgICByZXR1cm4gbGV2ZWwgPSBDYXNjYWRlTGV2ZWw6OlVzZXI7
Ci0gICAgY2FzZSBDYXNjYWRlTGV2ZWw6OlVzZXI6Ci0gICAgICAgIHJldHVybiBsZXZlbCA9IENh
c2NhZGVMZXZlbDo6VXNlckFnZW50OwotICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQ6
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbGV2ZWw7Ci0g
ICAgfQotfQorc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBhbGxDYXNj
YWRlTGV2ZWxzKCkgeyByZXR1cm4geyBDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCwgQ2FzY2FkZUxl
dmVsOjpVc2VyLCBDYXNjYWRlTGV2ZWw6OkF1dGhvciB9OyB9CiAKIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA0NDk4NWM4NDgxYTg0
MGZlMzM3OWQwZThiNDU0YjYxMjk1M2EzOGExLi5iZWI4OTY3ZmRiY2RlNDMyODU0ZDE1M2JhOWNl
MjZjNjc3M2UzMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
Y2xlYXJNYXRjaGVkUnVsZXMoKQogICAgIG1fbWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4ID0gMDsK
IH0KIAotaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRTdHlsZVBy
b3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcm9wZXJ0eVNldCwgYm9vbCBpc0NhY2hl
YWJsZSwgRnJvbVN0eWxlQXR0cmlidXRlIGZyb21TdHlsZUF0dHJpYnV0ZSkKK2lubGluZSB2b2lk
IEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0
eWxlUHJvcGVydGllcyogcHJvcGVydHlTZXQsIGJvb2wgaXNDYWNoZWFibGUpCiB7CiAgICAgaWYg
KCFwcm9wZXJ0eVNldCB8fCBwcm9wZXJ0eVNldC0+aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47
CkBAIC0xMzIsOSArMTMyLDcgQEAgaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFk
ZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWUKICAgICBpZiAoIWlz
Q2FjaGVhYmxlKQogICAgICAgICBtX3Jlc3VsdC5pc0NhY2hlYWJsZSA9IGZhbHNlOwogCi0gICAg
YXV0byBtYXRjaGVkUHJvcGVydHkgPSBNYXRjaGVkUHJvcGVydGllcyB7IHByb3BlcnR5U2V0IH07
Ci0gICAgbWF0Y2hlZFByb3BlcnR5LmZyb21TdHlsZUF0dHJpYnV0ZSA9IGZyb21TdHlsZUF0dHJp
YnV0ZTsKLSAgICBhZGRNYXRjaGVkUHJvcGVydGllcyhXVEZNb3ZlKG1hdGNoZWRQcm9wZXJ0eSks
IERlY2xhcmF0aW9uT3JpZ2luOjpBdXRob3IpOworICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHsg
cHJvcGVydHlTZXQgfSwgRGVjbGFyYXRpb25PcmlnaW46OkF1dGhvcik7CiB9CiAKIHZvaWQgRWxl
bWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNvbnN0IE1hdGNoUmVxdWVz
dCYgbWF0Y2hSZXF1ZXN0KQpAQCAtMjA1LDggKzIwMyw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OnRyYW5zZmVyTWF0Y2hlZFJ1bGVzKERlY2xhcmF0aW9uT3JpZ2luIGRlY2xhcmF0aW9u
T3JpCiAgICAgICAgICAgICAmbWF0Y2hlZFJ1bGUucnVsZURhdGEtPnN0eWxlUnVsZSgpLnByb3Bl
cnRpZXMoKSwKICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQxNl90PihtYXRjaGVkUnVsZS5y
dWxlRGF0YS0+bGlua01hdGNoVHlwZSgpKSwKICAgICAgICAgICAgIG1hdGNoZWRSdWxlLnJ1bGVE
YXRhLT5wcm9wZXJ0eUFsbG93bGlzdCgpLAotICAgICAgICAgICAgbWF0Y2hlZFJ1bGUuc3R5bGVT
Y29wZU9yZGluYWwsCi0gICAgICAgICAgICBtYXRjaGVkUnVsZS5jYXNjYWRlTGF5ZXJQcmlvcml0
eQorICAgICAgICAgICAgbWF0Y2hlZFJ1bGUuc3R5bGVTY29wZU9yZGluYWwKICAgICAgICAgfSwg
ZGVjbGFyYXRpb25PcmlnaW4pOwogICAgIH0KIH0KQEAgLTU2Myw3ICs1NjAsNyBAQCB2b2lkIEVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50SW5saW5lU3R5bGVQcm9wZXJ0aWVzKGJvb2wg
aW5jbHVkZVNNSUxQcm9wZQogICAgIGlmIChhdXRvKiBpbmxpbmVTdHlsZSA9IGRvd25jYXN0PFN0
eWxlZEVsZW1lbnQ+KGVsZW1lbnQoKSkuaW5saW5lU3R5bGUoKSkgewogICAgICAgICAvLyBGSVhN
RTogTWVkaWEgY29udHJvbCBzaGFkb3cgdHJlZXMgc2VlbSB0byBoYXZlIHByb2JsZW1zIHdpdGgg
Y2FjaGluZy4KICAgICAgICAgYm9vbCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlID0gIWlubGluZVN0
eWxlLT5pc011dGFibGUoKSAmJiAhZWxlbWVudCgpLmlzSW5TaGFkb3dUcmVlKCk7Ci0gICAgICAg
IGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoaW5saW5lU3R5bGUsIGlzSW5saW5lU3R5bGVDYWNo
ZWFibGUsIEZyb21TdHlsZUF0dHJpYnV0ZTo6WWVzKTsKKyAgICAgICAgYWRkRWxlbWVudFN0eWxl
UHJvcGVydGllcyhpbmxpbmVTdHlsZSwgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSk7CiAgICAgfQog
CiAgICAgaWYgKGluY2x1ZGVTTUlMUHJvcGVydGllcyAmJiBpczxTVkdFbGVtZW50PihlbGVtZW50
KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKaW5kZXgg
OWU0NzlhOTM1Yzk2YjZmNWZhYWM1Zjk3ODM5OTc4NGRhMDMxMzQ1OC4uYjg1ZmMzYTM5OWIxYWRk
MzAxNDc5ZmY3ZGU5ZDI5ODRmZDQ0NTk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5oCkBAIC02MywxOCArNjMsMTQgQEAgc3RydWN0IE1hdGNoZWRSdWxl
IHsKICAgICBjb25zdCBSdWxlRGF0YSogcnVsZURhdGE7CiAgICAgdW5zaWduZWQgc3BlY2lmaWNp
dHk7CiAgICAgU2NvcGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsOwotICAgIENhc2NhZGVMYXll
clByaW9yaXR5IGNhc2NhZGVMYXllclByaW9yaXR5OworICAgIHVuc2lnbmVkIGNhc2NhZGVMYXll
clByaW9yaXR5OwogfTsKIAotZW51bSBjbGFzcyBGcm9tU3R5bGVBdHRyaWJ1dGUgOiBib29sIHsg
Tm8sIFllcyB9OwotCiBzdHJ1Y3QgTWF0Y2hlZFByb3BlcnRpZXMgewogICAgIFJlZlB0cjxjb25z
dCBTdHlsZVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiAgICAgdWludDE2X3QgbGlua01hdGNoVHlw
ZSB7IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwgfTsKICAgICBQcm9wZXJ0eUFsbG93bGlzdCBh
bGxvd2xpc3RUeXBlIHsgUHJvcGVydHlBbGxvd2xpc3Q6Ok5vbmUgfTsKICAgICBTY29wZU9yZGlu
YWwgc3R5bGVTY29wZU9yZGluYWwgeyBTY29wZU9yZGluYWw6OkVsZW1lbnQgfTsKLSAgICBDYXNj
YWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0eSB7IFJ1bGVTZXQ6OmNhc2NhZGVM
YXllclByaW9yaXR5Rm9yVW5sYXllcmVkIH07Ci0gICAgRnJvbVN0eWxlQXR0cmlidXRlIGZyb21T
dHlsZUF0dHJpYnV0ZSB7IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8gfTsKIH07CiAKIHN0cnVjdCBN
YXRjaFJlc3VsdCB7CkBAIC0xMjUsNyArMTIxLDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlkTWF0
Y2hVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kaWRNYXRjaFVu
Y29tbW9uQXR0cmlidXRlU2VsZWN0b3I7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZEVsZW1l
bnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJs
ZSA9IHRydWUsIEZyb21TdHlsZUF0dHJpYnV0ZSA9IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8pOwor
ICAgIHZvaWQgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMq
LCBib29sIGlzQ2FjaGVhYmxlID0gdHJ1ZSk7CiAKICAgICB2b2lkIG1hdGNoVUFSdWxlcyhjb25z
dCBSdWxlU2V0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5
Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCmlu
ZGV4IGRhYmRhNjA4NzhiYTBjMDU3N2YxZDRlYmVjYTVjMjRjMzUxODk2N2UuLjUwNTE1MjdjNjNj
MjE3MDZiYWRlZDNiNTJjOTA1ZWNlMWE0Y2YyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJv
cGVydHlDYXNjYWRlLmNwcApAQCAtNzEsMzUgKzcxLDMwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
aG91bGRBcHBseVByb3BlcnR5SW5QYXJzZU9yZGVyKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkK
ICAgICB9CiB9CiAKLVByb3BlcnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNjYWRlKGNvbnN0IE1hdGNo
UmVzdWx0JiBtYXRjaFJlc3VsdCwgQ2FzY2FkZUxldmVsIG1heGltdW1DYXNjYWRlTGV2ZWwsIElu
Y2x1ZGVkUHJvcGVydGllcyBpbmNsdWRlZFByb3BlcnRpZXMsIERpcmVjdGlvbiBkaXJlY3Rpb24p
CitQcm9wZXJ0eUNhc2NhZGU6OlByb3BlcnR5Q2FzY2FkZShjb25zdCBNYXRjaFJlc3VsdCYgbWF0
Y2hSZXN1bHQsIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZlbHMsIEluY2x1ZGVk
UHJvcGVydGllcyBpbmNsdWRlZFByb3BlcnRpZXMsIERpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAg
OiBtX21hdGNoUmVzdWx0KG1hdGNoUmVzdWx0KQogICAgICwgbV9pbmNsdWRlZFByb3BlcnRpZXMo
aW5jbHVkZWRQcm9wZXJ0aWVzKQotICAgICwgbV9tYXhpbXVtQ2FzY2FkZUxldmVsKG1heGltdW1D
YXNjYWRlTGV2ZWwpCiAgICAgLCBtX2RpcmVjdGlvbihkaXJlY3Rpb24pCiB7Ci0gICAgYnVpbGRD
YXNjYWRlKCk7CisgICAgYnVpbGRDYXNjYWRlKGNhc2NhZGVMZXZlbHMpOwogfQogCi1Qcm9wZXJ0
eUNhc2NhZGU6OlByb3BlcnR5Q2FzY2FkZShjb25zdCBQcm9wZXJ0eUNhc2NhZGUmIHBhcmVudCwg
Q2FzY2FkZUxldmVsIG1heGltdW1DYXNjYWRlTGV2ZWwsIENhc2NhZGVMYXllclByaW9yaXR5IG1h
eGltdW1DYXNjYWRlTGF5ZXJQcmlvcml0eSkKK1Byb3BlcnR5Q2FzY2FkZTo6UHJvcGVydHlDYXNj
YWRlKGNvbnN0IFByb3BlcnR5Q2FzY2FkZSYgcGFyZW50LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVs
PiBjYXNjYWRlTGV2ZWxzKQogICAgIDogbV9tYXRjaFJlc3VsdChwYXJlbnQubV9tYXRjaFJlc3Vs
dCkKICAgICAsIG1faW5jbHVkZWRQcm9wZXJ0aWVzKHBhcmVudC5tX2luY2x1ZGVkUHJvcGVydGll
cykKLSAgICAsIG1fbWF4aW11bUNhc2NhZGVMZXZlbChtYXhpbXVtQ2FzY2FkZUxldmVsKQotICAg
ICwgbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkobWF4aW11bUNhc2NhZGVMYXllclByaW9y
aXR5KQogICAgICwgbV9kaXJlY3Rpb24ocGFyZW50LmRpcmVjdGlvbigpKQogICAgICwgbV9kaXJl
Y3Rpb25Jc1VucmVzb2x2ZWQoZmFsc2UpCiB7Ci0gICAgYnVpbGRDYXNjYWRlKCk7CisgICAgYnVp
bGRDYXNjYWRlKGNhc2NhZGVMZXZlbHMpOwogfQogCiBQcm9wZXJ0eUNhc2NhZGU6On5Qcm9wZXJ0
eUNhc2NhZGUoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgUHJvcGVydHlDYXNjYWRlOjpidWlsZENhc2Nh
ZGUoKQordm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmJ1aWxkQ2FzY2FkZShPcHRpb25TZXQ8Q2FzY2Fk
ZUxldmVsPiBjYXNjYWRlTGV2ZWxzKQogewogICAgIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNh
c2NhZGVMZXZlbHNXaXRoSW1wb3J0YW50OwogCi0gICAgZm9yIChhdXRvIGNhc2NhZGVMZXZlbCA6
IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQsIENhc2NhZGVMZXZlbDo6VXNlciwgQ2FzY2FkZUxl
dmVsOjpBdXRob3IgfSkgewotICAgICAgICBpZiAoY2FzY2FkZUxldmVsID4gbV9tYXhpbXVtQ2Fz
Y2FkZUxldmVsKQotICAgICAgICAgICAgYnJlYWs7CisgICAgZm9yIChhdXRvIGNhc2NhZGVMZXZl
bCA6IGNhc2NhZGVMZXZlbHMpIHsKICAgICAgICAgYm9vbCBoYXNJbXBvcnRhbnQgPSBhZGROb3Jt
YWxNYXRjaGVzKGNhc2NhZGVMZXZlbCk7CiAgICAgICAgIGlmIChoYXNJbXBvcnRhbnQpCiAgICAg
ICAgICAgICBjYXNjYWRlTGV2ZWxzV2l0aEltcG9ydGFudC5hZGQoY2FzY2FkZUxldmVsKTsKQEAg
LTExOCw4ICsxMTMsNiBAQCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6c2V0UHJvcGVydHlJbnRlcm5h
bChQcm9wZXJ0eSYgcHJvcGVydHksIENTU1Byb3BlcnR5SUQgaWQsCiAgICAgcHJvcGVydHkuaWQg
PSBpZDsKICAgICBwcm9wZXJ0eS5sZXZlbCA9IGNhc2NhZGVMZXZlbDsKICAgICBwcm9wZXJ0eS5z
dHlsZVNjb3BlT3JkaW5hbCA9IG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsOwot
ICAgIHByb3BlcnR5LmNhc2NhZGVMYXllclByaW9yaXR5ID0gbWF0Y2hlZFByb3BlcnRpZXMuY2Fz
Y2FkZUxheWVyUHJpb3JpdHk7Ci0KICAgICBpZiAobWF0Y2hlZFByb3BlcnRpZXMubGlua01hdGNo
VHlwZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsKSB7CiAgICAgICAgIHByb3BlcnR5LmNz
c1ZhbHVlWzBdID0gJmNzc1ZhbHVlOwogICAgICAgICBwcm9wZXJ0eS5jc3NWYWx1ZVtTZWxlY3Rv
ckNoZWNrZXI6Ok1hdGNoTGlua10gPSAmY3NzVmFsdWU7CkBAIC0xNzcsOSArMTcwLDYgQEAgdm9p
ZCBQcm9wZXJ0eUNhc2NhZGU6OnNldERlZmVycmVkKENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVl
JiBjc3NWYWx1ZSwgY29uc3QgTWEKIAogYm9vbCBQcm9wZXJ0eUNhc2NhZGU6OmFkZE1hdGNoKGNv
bnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBtYXRjaGVkUHJvcGVydGllcywgQ2FzY2FkZUxldmVsIGNh
c2NhZGVMZXZlbCwgYm9vbCBpbXBvcnRhbnQpCiB7Ci0gICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVz
LmNhc2NhZGVMYXllclByaW9yaXR5ID4gbV9tYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkgJiYg
Y2FzY2FkZUxldmVsID09IG1fbWF4aW11bUNhc2NhZGVMZXZlbCAmJiBtYXRjaGVkUHJvcGVydGll
cy5zdHlsZVNjb3BlT3JkaW5hbCA9PSBTY29wZU9yZGluYWw6OkVsZW1lbnQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQogICAgIGF1dG8mIHN0eWxlUHJvcGVydGllcyA9ICptYXRjaGVkUHJvcGVy
dGllcy5wcm9wZXJ0aWVzOwogICAgIGF1dG8gcHJvcGVydHlBbGxvd2xpc3QgPSBtYXRjaGVkUHJv
cGVydGllcy5hbGxvd2xpc3RUeXBlOwogICAgIGJvb2wgaGFzSW1wb3J0YW50UHJvcGVydGllcyA9
IGZhbHNlOwpAQCAtMjQ3LDE0ICsyMzcsMTIgQEAgc3RhdGljIGJvb2wgaGFzSW1wb3J0YW50UHJv
cGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMmIHByb3BlcnRpZXMpCiAKIHZvaWQgUHJvcGVy
dHlDYXNjYWRlOjphZGRJbXBvcnRhbnRNYXRjaGVzKENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwp
CiB7Ci0gICAgc3RydWN0IEltcG9ydGFudE1hdGNoIHsKKyAgICBzdHJ1Y3QgSW5kZXhBbmRPcmRp
bmFsIHsKICAgICAgICAgdW5zaWduZWQgaW5kZXg7CiAgICAgICAgIFNjb3BlT3JkaW5hbCBvcmRp
bmFsOwotICAgICAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBsYXllclByaW9yaXR5OwotICAgICAg
ICBGcm9tU3R5bGVBdHRyaWJ1dGUgZnJvbVN0eWxlQXR0cmlidXRlOwogICAgIH07Ci0gICAgVmVj
dG9yPEltcG9ydGFudE1hdGNoPiBpbXBvcnRhbnRNYXRjaGVzOwotICAgIGJvb2wgaGFzTWF0Y2hl
c0Zyb21PdGhlclNjb3Blc09yTGF5ZXJzID0gZmFsc2U7CisgICAgVmVjdG9yPEluZGV4QW5kT3Jk
aW5hbD4gaW1wb3J0YW50TWF0Y2hlczsKKyAgICBib29sIGhhc01hdGNoZXNGcm9tT3RoZXJTY29w
ZXMgPSBmYWxzZTsKIAogICAgIGF1dG8mIG1hdGNoZWREZWNsYXJhdGlvbnMgPSBkZWNsYXJhdGlv
bnNGb3JDYXNjYWRlTGV2ZWwobV9tYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVsKTsKIApAQCAtMjY0
LDI1ICsyNTIsMjAgQEAgdm9pZCBQcm9wZXJ0eUNhc2NhZGU6OmFkZEltcG9ydGFudE1hdGNoZXMo
Q2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCkKICAgICAgICAgaWYgKCFoYXNJbXBvcnRhbnRQcm9w
ZXJ0aWVzKCptYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIGltcG9ydGFudE1hdGNoZXMuYXBwZW5kKHsgaSwgbWF0Y2hlZFByb3Bl
cnRpZXMuc3R5bGVTY29wZU9yZGluYWwsIG1hdGNoZWRQcm9wZXJ0aWVzLmNhc2NhZGVMYXllclBy
aW9yaXR5LCBtYXRjaGVkUHJvcGVydGllcy5mcm9tU3R5bGVBdHRyaWJ1dGUgfSk7CisgICAgICAg
IGltcG9ydGFudE1hdGNoZXMuYXBwZW5kKHsgaSwgbWF0Y2hlZFByb3BlcnRpZXMuc3R5bGVTY29w
ZU9yZGluYWwgfSk7CiAKLSAgICAgICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVP
cmRpbmFsICE9IFNjb3BlT3JkaW5hbDo6RWxlbWVudCB8fCBtYXRjaGVkUHJvcGVydGllcy5jYXNj
YWRlTGF5ZXJQcmlvcml0eSAhPSBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclVubGF5
ZXJlZCkKLSAgICAgICAgICAgIGhhc01hdGNoZXNGcm9tT3RoZXJTY29wZXNPckxheWVycyA9IHRy
dWU7CisgICAgICAgIGlmIChtYXRjaGVkUHJvcGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCAhPSBT
Y29wZU9yZGluYWw6OkVsZW1lbnQpCisgICAgICAgICAgICBoYXNNYXRjaGVzRnJvbU90aGVyU2Nv
cGVzID0gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoaW1wb3J0YW50TWF0Y2hlcy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzT3JM
YXllcnMpIHsKKyAgICBpZiAoaGFzTWF0Y2hlc0Zyb21PdGhlclNjb3BlcykgeworICAgICAgICAv
LyBGb3IgIWltcG9ydGFudCBwcm9wZXJ0aWVzIGEgbGF0ZXIgc2hhZG93IHRyZWUgd2lucy4KICAg
ICAgICAgLy8gTWF0Y2ggcmVzdWx0cyBhcmUgc29ydGVkIGluIHJldmVyc2UgdHJlZSBjb250ZXh0
IG9yZGVyIHNvIHRoaXMgaXMgbm90IG5lZWRlZCBmb3Igbm9ybWFsIHByb3BlcnRpZXMuCi0gICAg
ICAgIHN0ZDo6c3RhYmxlX3NvcnQoaW1wb3J0YW50TWF0Y2hlcy5iZWdpbigpLCBpbXBvcnRhbnRN
YXRjaGVzLmVuZCgpLCBbXSAoYXV0byYgYSwgYXV0byYgYikgewotICAgICAgICAgICAgLy8gRm9y
ICFpbXBvcnRhbnQgcHJvcGVydGllcyBhIGxhdGVyIHNoYWRvdyB0cmVlIHdpbnMuCi0gICAgICAg
ICAgICBpZiAoYS5vcmRpbmFsICE9IGIub3JkaW5hbCkKLSAgICAgICAgICAgICAgICByZXR1cm4g
YS5vcmRpbmFsIDwgYi5vcmRpbmFsOwotICAgICAgICAgICAgLy8gTG93ZXIgcHJpb3JpdHkgbGF5
ZXIgd2lucywgZXhjZXB0IGlmIHN0eWxlIGF0dHJpYnV0ZSBpcyBpbnZvbHZlZC4KLSAgICAgICAg
ICAgIGlmIChhLmZyb21TdHlsZUF0dHJpYnV0ZSAhPSBiLmZyb21TdHlsZUF0dHJpYnV0ZSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gYS5mcm9tU3R5bGVBdHRyaWJ1dGUgPT0gRnJvbVN0eWxlQXR0
cmlidXRlOjpObzsKLSAgICAgICAgICAgIHJldHVybiBhLmxheWVyUHJpb3JpdHkgPiBiLmxheWVy
UHJpb3JpdHk7CisgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQoaW1wb3J0YW50TWF0Y2hlcy5iZWdp
bigpLCBpbXBvcnRhbnRNYXRjaGVzLmVuZCgpLCBbXSAoY29uc3QgSW5kZXhBbmRPcmRpbmFsJiBh
LCBjb25zdCBJbmRleEFuZE9yZGluYWwmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBhLm9yZGlu
YWwgPCBiLm9yZGluYWw7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMjkwLDYgKzI3MywzMCBA
QCB2b2lkIFByb3BlcnR5Q2FzY2FkZTo6YWRkSW1wb3J0YW50TWF0Y2hlcyhDYXNjYWRlTGV2ZWwg
Y2FzY2FkZUxldmVsKQogICAgICAgICBhZGRNYXRjaChtYXRjaGVkRGVjbGFyYXRpb25zW21hdGNo
LmluZGV4XSwgY2FzY2FkZUxldmVsLCB0cnVlKTsKIH0KIAorY29uc3QgUHJvcGVydHlDYXNjYWRl
KiBQcm9wZXJ0eUNhc2NhZGU6OnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKENhc2NhZGVMZXZl
bCBjYXNjYWRlTGV2ZWwpIGNvbnN0Cit7CisgICAgc3dpdGNoIChjYXNjYWRlTGV2ZWwpIHsKKyAg
ICBjYXNlIENhc2NhZGVMZXZlbDo6QXV0aG9yOgorICAgICAgICBpZiAoIW1fYXV0aG9yUm9sbGJh
Y2tDYXNjYWRlKSB7CisgICAgICAgICAgICBhdXRvIGNhc2NhZGVMZXZlbHMgPSBPcHRpb25TZXQ8
Q2FzY2FkZUxldmVsPiB7IENhc2NhZGVMZXZlbDo6VXNlckFnZW50LCBDYXNjYWRlTGV2ZWw6OlVz
ZXIgfTsKKyAgICAgICAgICAgIG1fYXV0aG9yUm9sbGJhY2tDYXNjYWRlID0gbWFrZVVuaXF1ZTxj
b25zdCBQcm9wZXJ0eUNhc2NhZGU+KCp0aGlzLCBjYXNjYWRlTGV2ZWxzKTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gbV9hdXRob3JSb2xsYmFja0Nhc2NhZGUuZ2V0KCk7CisKKyAgICBjYXNl
IENhc2NhZGVMZXZlbDo6VXNlcjoKKyAgICAgICAgaWYgKCFtX3VzZXJSb2xsYmFja0Nhc2NhZGUp
IHsKKyAgICAgICAgICAgIGF1dG8gY2FzY2FkZUxldmVscyA9IE9wdGlvblNldDxDYXNjYWRlTGV2
ZWw+IHsgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfTsKKyAgICAgICAgICAgIG1fdXNlclJvbGxi
YWNrQ2FzY2FkZSA9IG1ha2VVbmlxdWU8Y29uc3QgUHJvcGVydHlDYXNjYWRlPigqdGhpcywgY2Fz
Y2FkZUxldmVscyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fdXNlclJvbGxiYWNrQ2Fz
Y2FkZS5nZXQoKTsKKworICAgIGNhc2UgQ2FzY2FkZUxldmVsOjpVc2VyQWdlbnQ6CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwogUHJvcGVydHlDYXNjYWRlOjpEaXJlY3Rpb24gUHJvcGVydHlD
YXNjYWRlOjpyZXNvbHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUoRGlyZWN0aW9uIGluaGVyaXRl
ZERpcmVjdGlvbikgY29uc3QKIHsKICAgICBEaXJlY3Rpb24gcmVzdWx0ID0gaW5oZXJpdGVkRGly
ZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuaAppbmRleCA4MzdlZmNh
ZDQxNmZjZGQ3ZmNkYTJjY2JlZTg0YTRhZWQ4MjI2MTdmLi4zZmExZjhiZDQyMzJmMjJjNWQyYTQ3
ZmYyMmVkMjcwZGY4YmM1MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9w
ZXJ0eUNhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUu
aApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlOwogICAgIH07CiAKLSAgICBQcm9wZXJ0eUNhc2NhZGUoY29uc3QgTWF0Y2hSZXN1bHQmLCBD
YXNjYWRlTGV2ZWwsIEluY2x1ZGVkUHJvcGVydGllcywgRGlyZWN0aW9uKTsKLSAgICBQcm9wZXJ0
eUNhc2NhZGUoY29uc3QgUHJvcGVydHlDYXNjYWRlJiwgQ2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5
ZXJQcmlvcml0eSBtYXhpbXVtQ2FzY2FkZUxheWVyUHJpb3JpdHkgPSBSdWxlU2V0OjpjYXNjYWRl
TGF5ZXJQcmlvcml0eUZvclVubGF5ZXJlZCk7CisgICAgUHJvcGVydHlDYXNjYWRlKGNvbnN0IE1h
dGNoUmVzdWx0JiwgT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4sIEluY2x1ZGVkUHJvcGVydGllcywg
RGlyZWN0aW9uKTsKKyAgICBQcm9wZXJ0eUNhc2NhZGUoY29uc3QgUHJvcGVydHlDYXNjYWRlJiwg
T3B0aW9uU2V0PENhc2NhZGVMZXZlbD4pOwogCiAgICAgflByb3BlcnR5Q2FzY2FkZSgpOwogCkBA
IC01NSw3ICs1NSw2IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTUHJvcGVydHlJRCBpZDsKICAgICAg
ICAgQ2FzY2FkZUxldmVsIGxldmVsOwogICAgICAgICBTY29wZU9yZGluYWwgc3R5bGVTY29wZU9y
ZGluYWw7Ci0gICAgICAgIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclByaW9yaXR5
OwogICAgICAgICBDU1NWYWx1ZSogY3NzVmFsdWVbM107IC8vIFZhbHVlcyBmb3IgbGluayBtYXRj
aCBzdGF0ZXMgTWF0Y2hEZWZhdWx0LCBNYXRjaExpbmsgYW5kIE1hdGNoVmlzaXRlZAogICAgIH07
CiAKQEAgLTcwLDExICs2OSwxMCBAQCBwdWJsaWM6CiAKICAgICBEaXJlY3Rpb24gZGlyZWN0aW9u
KCkgY29uc3Q7CiAKLSAgICBhdXRvIG1heGltdW1DYXNjYWRlTGV2ZWwoKSBjb25zdCB7IHJldHVy
biBtX21heGltdW1DYXNjYWRlTGV2ZWw7IH0KLSAgICBhdXRvIG1heGltdW1DYXNjYWRlTGF5ZXJQ
cmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5OyB9
CisgICAgY29uc3QgUHJvcGVydHlDYXNjYWRlKiBwcm9wZXJ0eUNhc2NhZGVGb3JSb2xsYmFjayhD
YXNjYWRlTGV2ZWwpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZvaWQgYnVpbGRDYXNjYWRlKCk7
CisgICAgdm9pZCBidWlsZENhc2NhZGUoT3B0aW9uU2V0PENhc2NhZGVMZXZlbD4pOwogICAgIGJv
b2wgYWRkTm9ybWFsTWF0Y2hlcyhDYXNjYWRlTGV2ZWwpOwogICAgIHZvaWQgYWRkSW1wb3J0YW50
TWF0Y2hlcyhDYXNjYWRlTGV2ZWwpOwogICAgIGJvb2wgYWRkTWF0Y2goY29uc3QgTWF0Y2hlZFBy
b3BlcnRpZXMmLCBDYXNjYWRlTGV2ZWwsIGJvb2wgaW1wb3J0YW50KTsKQEAgLTg3LDggKzg1LDYg
QEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IE1hdGNoUmVzdWx0JiBtX21hdGNoUmVzdWx0OwogICAg
IGNvbnN0IEluY2x1ZGVkUHJvcGVydGllcyBtX2luY2x1ZGVkUHJvcGVydGllczsKLSAgICBjb25z
dCBDYXNjYWRlTGV2ZWwgbV9tYXhpbXVtQ2FzY2FkZUxldmVsOwotICAgIGNvbnN0IENhc2NhZGVM
YXllclByaW9yaXR5IG1fbWF4aW11bUNhc2NhZGVMYXllclByaW9yaXR5IHsgUnVsZVNldDo6Y2Fz
Y2FkZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQgfTsKICAgICBtdXRhYmxlIERpcmVjdGlvbiBt
X2RpcmVjdGlvbjsKICAgICBtdXRhYmxlIGJvb2wgbV9kaXJlY3Rpb25Jc1VucmVzb2x2ZWQgeyB0
cnVlIH07CiAKQEAgLTk3LDYgKzkzLDkgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxQcm9wZXJ0
eSwgOD4gbV9kZWZlcnJlZFByb3BlcnRpZXM7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBQcm9w
ZXJ0eT4gbV9jdXN0b21Qcm9wZXJ0aWVzOworCisgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8
Y29uc3QgUHJvcGVydHlDYXNjYWRlPiBtX2F1dGhvclJvbGxiYWNrQ2FzY2FkZTsKKyAgICBtdXRh
YmxlIHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+IG1fdXNlclJvbGxiYWNr
Q2FzY2FkZTsKIH07CiAKIGlubGluZSBib29sIFByb3BlcnR5Q2FzY2FkZTo6aGFzUHJvcGVydHko
Q1NTUHJvcGVydHlJRCBpZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAppbmRleCAxYTk1ZDU3
MDZiYzA4YWRhOTczYzA2MWZlNzliZTFmYjRiOTZkZTVkLi5mMDRhNzIwMzAzNzY1MjFmOGIzNTY1
MTA0MTBjNjJhNTA3MGYxZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC00Myw4ICs0Myw2
IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBSZXNvbHZlcjsKIGNsYXNzIFJ1bGVTZXQ7CiAK
LXVzaW5nIENhc2NhZGVMYXllclByaW9yaXR5ID0gdWludDMyX3Q7Ci0KIHVzaW5nIEludmFsaWRh
dGlvblJ1bGVTZXRWZWN0b3IgPSBWZWN0b3I8UmVmUHRyPGNvbnN0IFJ1bGVTZXQ+LCAxPjsKIAog
c3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXMgewpAQCAtMTA1LDggKzEw
Myw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcygpIGNv
bnN0IHsgcmV0dXJuICFtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcy5pc0VtcHR5KCk7IH0KICAg
ICBib29sIGhhc0hvc3RQc2V1ZG9DbGFzc1J1bGVzTWF0Y2hpbmdJblNoYWRvd1RyZWUoKSBjb25z
dCB7IHJldHVybiBtX2hhc0hvc3RQc2V1ZG9DbGFzc1J1bGVzTWF0Y2hpbmdJblNoYWRvd1RyZWU7
IH0KIAotICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvclVu
bGF5ZXJlZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8Q2FzY2FkZUxheWVyUHJpb3JpdHk+OjptYXgo
KTsKLSAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcihjb25z
dCBSdWxlRGF0YSYpIGNvbnN0OworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYXNjYWRlTGF5
ZXJQcmlvcml0eUZvclVubGF5ZXJlZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKTsKKyAgICB1bnNpZ25lZCBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcihjb25zdCBSdWxlRGF0
YSYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSdWxlU2V0QnVpbGRlcjsK
QEAgLTEzOCw3ICsxMzYsNyBAQCBwcml2YXRlOgogICAgIH07CiAgICAgQ2FzY2FkZUxheWVyJiBj
YXNjYWRlTGF5ZXJGb3JJZGVudGlmaWVyKENhc2NhZGVMYXllcklkZW50aWZpZXIgaWRlbnRpZmll
cikgeyByZXR1cm4gbV9jYXNjYWRlTGF5ZXJzW2lkZW50aWZpZXIgLSAxXTsgfQogICAgIGNvbnN0
IENhc2NhZGVMYXllciYgY2FzY2FkZUxheWVyRm9ySWRlbnRpZmllcihDYXNjYWRlTGF5ZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fY2FzY2FkZUxheWVyc1tpZGVudGlm
aWVyIC0gMV07IH0KLSAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0
eUZvcklkZW50aWZpZXIoQ2FzY2FkZUxheWVySWRlbnRpZmllcikgY29uc3Q7CisgICAgdW5zaWdu
ZWQgY2FzY2FkZUxheWVyUHJpb3JpdHlGb3JJZGVudGlmaWVyKENhc2NhZGVMYXllcklkZW50aWZp
ZXIpIGNvbnN0OwogCiAgICAgc3RydWN0IER5bmFtaWNNZWRpYVF1ZXJ5UnVsZXMgewogICAgICAg
ICBWZWN0b3I8UmVmPGNvbnN0IE1lZGlhUXVlcnlTZXQ+PiBtZWRpYVF1ZXJ5U2V0czsKQEAgLTE5
NSwxNCArMTkzLDE0IEBAIGlubGluZSBjb25zdCBSdWxlU2V0OjpSdWxlRGF0YVZlY3RvciogUnVs
ZVNldDo6dGFnUnVsZXMoY29uc3QgQXRvbVN0cmluZyYga2V5LCBiCiAgICAgcmV0dXJuIHRhZ1J1
bGVzLT5nZXQoa2V5KTsKIH0KIAotaW5saW5lIENhc2NhZGVMYXllclByaW9yaXR5IFJ1bGVTZXQ6
OmNhc2NhZGVMYXllclByaW9yaXR5Rm9ySWRlbnRpZmllcihDYXNjYWRlTGF5ZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpIGNvbnN0CitpbmxpbmUgdW5zaWduZWQgUnVsZVNldDo6Y2FzY2FkZUxheWVy
UHJpb3JpdHlGb3JJZGVudGlmaWVyKENhc2NhZGVMYXllcklkZW50aWZpZXIgaWRlbnRpZmllcikg
Y29uc3QKIHsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBjYXNjYWRlTGF5
ZXJQcmlvcml0eUZvclVubGF5ZXJlZDsKICAgICByZXR1cm4gY2FzY2FkZUxheWVyRm9ySWRlbnRp
ZmllcihpZGVudGlmaWVyKS5wcmlvcml0eTsKIH0KIAotaW5saW5lIENhc2NhZGVMYXllclByaW9y
aXR5IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yKGNvbnN0IFJ1bGVEYXRhJiBydWxl
RGF0YSkgY29uc3QKK2lubGluZSB1bnNpZ25lZCBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0
eUZvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpIGNvbnN0CiB7CiAgICAgaWYgKG1fY2FzY2Fk
ZUxheWVySWRlbnRpZmllckZvclJ1bGVQb3NpdGlvbi5zaXplKCkgPD0gcnVsZURhdGEucG9zaXRp
b24oKSkKICAgICAgICAgcmV0dXJuIGNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKaW5kZXggMzMxMTNkYzAxOWNkNjY1OGQx
ZWMxMTU0OTdhZTQ3ZjQ3NmY5N2YxNC4uOWQ2YzZiNDM5OTBhOGE5YmUxMGI2MjI3M2QwNzkyYjk4
YmU1OGE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCkBAIC04MCw4ICs4
MCw4IEBAIGlubGluZSBib29sIGlzVmFsaWRWaXNpdGVkTGlua1Byb3BlcnR5KENTU1Byb3BlcnR5
SUQgaWQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1CdWlsZGVyOjpCdWlsZGVyKFJlbmRlclN0
eWxlJiBzdHlsZSwgQnVpbGRlckNvbnRleHQmJiBjb250ZXh0LCBjb25zdCBNYXRjaFJlc3VsdCYg
bWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbCBjYXNjYWRlTGV2ZWwsIFByb3BlcnR5Q2FzY2FkZTo6
SW5jbHVkZWRQcm9wZXJ0aWVzIGluY2x1ZGVkUHJvcGVydGllcykKLSAgICA6IG1fY2FzY2FkZSht
YXRjaFJlc3VsdCwgY2FzY2FkZUxldmVsLCBpbmNsdWRlZFByb3BlcnRpZXMsIGRpcmVjdGlvbkZy
b21TdHlsZShzdHlsZSkpCitCdWlsZGVyOjpCdWlsZGVyKFJlbmRlclN0eWxlJiBzdHlsZSwgQnVp
bGRlckNvbnRleHQmJiBjb250ZXh0LCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIE9w
dGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZlbHMsIFByb3BlcnR5Q2FzY2FkZTo6SW5j
bHVkZWRQcm9wZXJ0aWVzIGluY2x1ZGVkUHJvcGVydGllcykKKyAgICA6IG1fY2FzY2FkZShtYXRj
aFJlc3VsdCwgY2FzY2FkZUxldmVscywgaW5jbHVkZWRQcm9wZXJ0aWVzLCBkaXJlY3Rpb25Gcm9t
U3R5bGUoc3R5bGUpKQogICAgICwgbV9zdGF0ZSgqdGhpcywgc3R5bGUsIFdURk1vdmUoY29udGV4
dCkpCiB7CiB9CkBAIC0xMjEsNiArMTIxLDE2IEBAIHZvaWQgQnVpbGRlcjo6YXBwbHlMb3dQcmlv
cml0eVByb3BlcnRpZXMoKQogICAgIEFTU0VSVCghbV9zdGF0ZS5mb250RGlydHkoKSk7CiB9CiAK
K3ZvaWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCwgQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybjsK
KworICAgIGFwcGx5UHJvcGVydHkocHJvcGVydHlJRCwgKnZhbHVlLCBTZWxlY3RvckNoZWNrZXI6
Ok1hdGNoRGVmYXVsdCk7CisKKyAgICBtX3N0YXRlLnVwZGF0ZUZvbnQoKTsKK30KKwogdm9pZCBC
dWlsZGVyOjphcHBseURlZmVycmVkUHJvcGVydGllcygpCiB7CiAgICAgZm9yIChhdXRvJiBwcm9w
ZXJ0eSA6IG1fY2FzY2FkZS5kZWZlcnJlZFByb3BlcnRpZXMoKSkKQEAgLTIzNSw3ICsyNDUsNiBA
QCBpbmxpbmUgdm9pZCBCdWlsZGVyOjphcHBseUNhc2NhZGVQcm9wZXJ0eShjb25zdCBQcm9wZXJ0
eUNhc2NhZGU6OlByb3BlcnR5JiBwcm9wZQogewogICAgIG1fc3RhdGUubV9jYXNjYWRlTGV2ZWwg
PSBwcm9wZXJ0eS5sZXZlbDsKICAgICBtX3N0YXRlLm1fc3R5bGVTY29wZU9yZGluYWwgPSBwcm9w
ZXJ0eS5zdHlsZVNjb3BlT3JkaW5hbDsKLSAgICBtX3N0YXRlLm1fY2FzY2FkZUxheWVyUHJpb3Jp
dHkgPSBwcm9wZXJ0eS5jYXNjYWRlTGF5ZXJQcmlvcml0eTsKIAogICAgIGF1dG8gYXBwbHlXaXRo
TGlua01hdGNoID0gWyZdKFNlbGVjdG9yQ2hlY2tlcjo6TGlua01hdGNoTWFzayBsaW5rTWF0Y2gp
IHsKICAgICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaF0pIHsKQEAgLTI4Niwy
NyArMjk1LDIxIEBAIHZvaWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlk
LCBDU1NWYWx1ZSYgdmFsdWUsIFNlbGVjdG9yQ2hlY2tlcjo6CiAKICAgICBib29sIGlzVW5zZXQg
PSB2YWx1ZVRvQXBwbHktPmlzVW5zZXRWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9
PSBDU1NWYWx1ZVVuc2V0OwogICAgIGJvb2wgaXNSZXZlcnQgPSB2YWx1ZVRvQXBwbHktPmlzUmV2
ZXJ0VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQ7Ci0g
ICAgYm9vbCBpc1JldmVydExheWVyID0gdmFsdWVUb0FwcGx5LT5pc1JldmVydExheWVyVmFsdWUo
KSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnRMYXllcjsKLQotICAg
IGlmIChpc1JldmVydCB8fCBpc1JldmVydExheWVyKSB7Ci0gICAgICAgIGF1dG8qIHJvbGxiYWNr
Q2FzY2FkZSA9IGlzUmV2ZXJ0Ci0gICAgICAgICAgICA/IGVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZv
clJldmVydChtX3N0YXRlLm1fY2FzY2FkZUxldmVsKQotICAgICAgICAgICAgOiBlbnN1cmVSb2xs
YmFja0Nhc2NhZGVGb3JSZXZlcnRMYXllcihtX3N0YXRlLm1fY2FzY2FkZUxldmVsLCBtX3N0YXRl
Lm1fY2FzY2FkZUxheWVyUHJpb3JpdHkpOwogCi0gICAgICAgIGlmIChyb2xsYmFja0Nhc2NhZGUp
IHsKKyAgICBpZiAoaXNSZXZlcnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIHJvbGxiYWNrID0gbV9j
YXNjYWRlLnByb3BlcnR5Q2FzY2FkZUZvclJvbGxiYWNrKG1fc3RhdGUubV9jYXNjYWRlTGV2ZWwp
KSB7CiAgICAgICAgICAgICAvLyBXaXRoIHRoZSByb2xsYmFjayBjYXNjYWRlIGJ1aWx0LCB3ZSBu
ZWVkIHRvIG9idGFpbiB0aGUgcHJvcGVydHkgYW5kIGFwcGx5IGl0LiBJZiB0aGUgcHJvcGVydHkg
aXMKLSAgICAgICAgICAgIC8vIG5vdCBwcmVzZW50LCB0aGVuIHdlIGJlaGF2ZSBsaWtlICJ1bnNl
dC4iIE90aGVyd2lzZSB3ZSBhcHBseSB0aGUgcHJvcGVydHkgaW5zdGVhZCBvZiBvdXIgb3duLgot
ICAgICAgICAgICAgU2V0Rm9yU2NvcGUgY2FzY2FkZUxldmVsU2NvcGUobV9zdGF0ZS5tX2Nhc2Nh
ZGVMZXZlbCwgcm9sbGJhY2tDYXNjYWRlLT5tYXhpbXVtQ2FzY2FkZUxldmVsKCkpOwotICAgICAg
ICAgICAgU2V0Rm9yU2NvcGUgY2FzY2FkZUxheWVyUHJpb3JpdHlTY29wZShtX3N0YXRlLm1fY2Fz
Y2FkZUxheWVyUHJpb3JpdHksIHJvbGxiYWNrQ2FzY2FkZS0+bWF4aW11bUNhc2NhZGVMYXllclBy
aW9yaXR5KCkpOworICAgICAgICAgICAgLy8gbm90IHByZXNlbnQsIHRoZW4gd2UgYmVoYXZlIGxp
a2UgInVuc2V0LiIgT3RoZXJ3aXNlIHdlIGFwcGx5IHRoZSBwcm9wZXJ0eSBpbnN0ZWFkIG9mCisg
ICAgICAgICAgICAvLyBvdXIgb3duLgogICAgICAgICAgICAgaWYgKGN1c3RvbVByb3BlcnR5VmFs
dWUpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3VzdG9tUHJvcGVydHlSZWdpc3RlcmVkICYmIGN1
c3RvbVByb3BlcnR5UmVnaXN0ZXJlZC0+aW5oZXJpdHMgJiYgcm9sbGJhY2tDYXNjYWRlLT5oYXND
dXN0b21Qcm9wZXJ0eShjdXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1lKCkpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGF1dG8gcHJvcGVydHkgPSByb2xsYmFja0Nhc2NhZGUtPmN1c3RvbVByb3BlcnR5
KGN1c3RvbVByb3BlcnR5VmFsdWUtPm5hbWUoKSk7CisgICAgICAgICAgICAgICAgaWYgKGN1c3Rv
bVByb3BlcnR5UmVnaXN0ZXJlZCAmJiBjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQtPmluaGVyaXRz
ICYmIHJvbGxiYWNrLT5oYXNDdXN0b21Qcm9wZXJ0eShjdXN0b21Qcm9wZXJ0eVZhbHVlLT5uYW1l
KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcHJvcGVydHkgPSByb2xsYmFjay0+Y3Vz
dG9tUHJvcGVydHkoY3VzdG9tUHJvcGVydHlWYWx1ZS0+bmFtZSgpKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKHByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2tdKQogICAgICAgICAgICAg
ICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eShwcm9wZXJ0eS5pZCwgKnByb3BlcnR5LmNzc1ZhbHVl
W2xpbmtNYXRjaE1hc2tdLCBsaW5rTWF0Y2hNYXNrKTsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAocm9sbGJhY2tD
YXNjYWRlLT5oYXNQcm9wZXJ0eShpZCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiBwcm9wZXJ0
eSA9IHJvbGxiYWNrQ2FzY2FkZS0+cHJvcGVydHkoaWQpOworICAgICAgICAgICAgfSBlbHNlIGlm
IChyb2xsYmFjay0+aGFzUHJvcGVydHkoaWQpKSB7CisgICAgICAgICAgICAgICAgYXV0byYgcHJv
cGVydHkgPSByb2xsYmFjay0+cHJvcGVydHkoaWQpOwogICAgICAgICAgICAgICAgIGlmIChwcm9w
ZXJ0eS5jc3NWYWx1ZVtsaW5rTWF0Y2hNYXNrXSkKICAgICAgICAgICAgICAgICAgICAgYXBwbHlQ
cm9wZXJ0eShwcm9wZXJ0eS5pZCwgKnByb3BlcnR5LmNzc1ZhbHVlW2xpbmtNYXRjaE1hc2tdLCBs
aW5rTWF0Y2hNYXNrKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0zNzAsMzIgKzM3Myw1
IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQnVpbGRlcjo6cmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QKICAgICByZXR1cm4gQ1NTUGFyc2VyKG1fc3RhdGUu
ZG9jdW1lbnQoKSkucGFyc2VWYWx1ZVdpdGhWYXJpYWJsZVJlZmVyZW5jZXMocHJvcGVydHlJRCwg
dmFsdWUsIG1fc3RhdGUpOwogfQogCi1jb25zdCBQcm9wZXJ0eUNhc2NhZGUqIEJ1aWxkZXI6OmVu
c3VyZVJvbGxiYWNrQ2FzY2FkZUZvclJldmVydChDYXNjYWRlTGV2ZWwgcm9sbGJhY2tDYXNjYWRl
TGV2ZWwpCi17Ci0gICAgaWYgKHJvbGxiYWNrQ2FzY2FkZUxldmVsID09IENhc2NhZGVMZXZlbDo6
VXNlckFnZW50KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8ga2V5ID0gbWFr
ZVJvbGxiYWNrQ2FzY2FkZUtleShyb2xsYmFja0Nhc2NhZGVMZXZlbCwgUnVsZVNldDo6Y2FzY2Fk
ZUxheWVyUHJpb3JpdHlGb3JVbmxheWVyZWQpOwotICAgIHJldHVybiBtX3JvbGxiYWNrQ2FzY2Fk
ZXMuZW5zdXJlKGtleSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8Y29uc3QgUHJv
cGVydHlDYXNjYWRlPihtX2Nhc2NhZGUsIC0tcm9sbGJhY2tDYXNjYWRlTGV2ZWwsIFJ1bGVTZXQ6
OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yVW5sYXllcmVkKTsKLSAgICB9KS5pdGVyYXRvci0+dmFs
dWUuZ2V0KCk7Ci19Ci0KLWNvbnN0IFByb3BlcnR5Q2FzY2FkZSogQnVpbGRlcjo6ZW5zdXJlUm9s
bGJhY2tDYXNjYWRlRm9yUmV2ZXJ0TGF5ZXIoQ2FzY2FkZUxldmVsIGNhc2NhZGVMZXZlbCwgQ2Fz
Y2FkZUxheWVyUHJpb3JpdHkgcm9sbGJhY2tMYXllclByaW9yaXR5KQotewotICAgIGlmICghcm9s
bGJhY2tMYXllclByaW9yaXR5KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8g
a2V5ID0gbWFrZVJvbGxiYWNrQ2FzY2FkZUtleShjYXNjYWRlTGV2ZWwsIHJvbGxiYWNrTGF5ZXJQ
cmlvcml0eSk7Ci0gICAgcmV0dXJuIG1fcm9sbGJhY2tDYXNjYWRlcy5lbnN1cmUoa2V5LCBbJl0g
ewotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxjb25zdCBQcm9wZXJ0eUNhc2NhZGU+KG1fY2Fz
Y2FkZSwgY2FzY2FkZUxldmVsLCByb2xsYmFja0xheWVyUHJpb3JpdHkgLSAxKTsKLSAgICB9KS5p
dGVyYXRvci0+dmFsdWUuZ2V0KCk7Ci19Ci0KLWF1dG8gQnVpbGRlcjo6bWFrZVJvbGxiYWNrQ2Fz
Y2FkZUtleShDYXNjYWRlTGV2ZWwgY2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5ZXJQcmlvcml0eSBj
YXNjYWRlTGF5ZXJQcmlvcml0eSkgLT4gUm9sbGJhY2tDYXNjYWRlS2V5Ci17Ci0gICAgcmV0dXJu
IHsgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhc2NhZGVMZXZlbCksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihjYXNjYWRlTGF5ZXJQcmlvcml0eSkgfTsKLX0KLQogfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXIuaAppbmRleCA3NWYzYTIzNmExOGE2MDg1YzMxYTM5ZTM3MmJiNzJkYWYyMDg1
MTliLi4xMGFlNjc2MjI1OTZlMTRhNjQxYTMwMGVhZjM4ZGViYzNkMGIyZjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgU3R5bGUg
ewogY2xhc3MgQnVpbGRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgQnVpbGRlcihSZW5kZXJTdHlsZSYsIEJ1aWxkZXJDb250ZXh0JiYsIGNvbnN0IE1hdGNo
UmVzdWx0JiwgQ2FzY2FkZUxldmVsLCBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGll
cyA9IFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzOjpBbGwpOworICAgIEJ1aWxk
ZXIoUmVuZGVyU3R5bGUmLCBCdWlsZGVyQ29udGV4dCYmLCBjb25zdCBNYXRjaFJlc3VsdCYsIE9w
dGlvblNldDxDYXNjYWRlTGV2ZWw+LCBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGll
cyA9IFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzOjpBbGwpOwogICAgIH5CdWls
ZGVyKCk7CiAKICAgICB2b2lkIGFwcGx5QWxsUHJvcGVydGllcygpOwpAQCAtNDUsNiArNDUsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCkgeyBhcHBseVByb3BlcnRpZXMocHJvcGVydHlJRCwgcHJvcGVydHlJRCk7IH0KICAgICB2b2lk
IGFwcGx5Q3VzdG9tUHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAorICAgIHZvaWQgYXBw
bHlQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlKik7CisKICAgICBCdWlsZGVy
U3RhdGUmIHN0YXRlKCkgeyByZXR1cm4gbV9zdGF0ZTsgfQogCiBwcml2YXRlOgpAQCAtNjEsMTYg
KzYzLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8Q1NTVmFsdWU+IHJlc29sdmVWYWx1ZShDU1NQcm9w
ZXJ0eUlELCBDU1NWYWx1ZSYpOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcmVzb2x2ZWRWYXJpYWJs
ZVZhbHVlKENTU1Byb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlJik7CiAKLSAgICBjb25zdCBQcm9w
ZXJ0eUNhc2NhZGUqIGVuc3VyZVJvbGxiYWNrQ2FzY2FkZUZvclJldmVydChDYXNjYWRlTGV2ZWwp
OwotICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSogZW5zdXJlUm9sbGJhY2tDYXNjYWRlRm9yUmV2
ZXJ0TGF5ZXIoQ2FzY2FkZUxldmVsLCBDYXNjYWRlTGF5ZXJQcmlvcml0eSk7Ci0KLSAgICB1c2lu
ZyBSb2xsYmFja0Nhc2NhZGVLZXkgPSBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPjsKLSAg
ICBSb2xsYmFja0Nhc2NhZGVLZXkgbWFrZVJvbGxiYWNrQ2FzY2FkZUtleShDYXNjYWRlTGV2ZWws
IENhc2NhZGVMYXllclByaW9yaXR5KTsKLQogICAgIGNvbnN0IFByb3BlcnR5Q2FzY2FkZSBtX2Nh
c2NhZGU7Ci0gICAgLy8gUm9sbGJhY2sgY2FzY2FkZXMgYXJlIGJ1aWxkIG9uIGRlbWFuZCB0byBy
ZXNvbHZlICdyZXZlcnQnIGFuZCAncmV2ZXJ0LWxheWVyJyBrZXl3b3Jkcy4KLSAgICBIYXNoTWFw
PFJvbGxiYWNrQ2FzY2FkZUtleSwgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFByb3BlcnR5Q2FzY2Fk
ZT4+IG1fcm9sbGJhY2tDYXNjYWRlczsKLQogICAgIEJ1aWxkZXJTdGF0ZSBtX3N0YXRlOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmgKaW5kZXggZWExYTViNTFk
ZDhhMmRlZjM2NjVkNjVjZGI0ZDliNWNjM2M5YjZlYy4uMmViYzFkYjc3YmMzZDZhYWNiMmY4MjBj
MTVlZTdmOTRjZDIwOGI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVC
dWlsZGVyU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0
ZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ1NTVG9TdHlsZU1hcC5oIgogI2luY2x1
ZGUgIkNhc2NhZGVMZXZlbC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSAi
UnVsZVNldC5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUgPHd0Zi9C
aXRtYXAuaD4KIApAQCAtMTM3LDcgKzEzNiw2IEBAIHByaXZhdGU6CiAKICAgICBDYXNjYWRlTGV2
ZWwgbV9jYXNjYWRlTGV2ZWwgeyB9OwogICAgIFNjb3BlT3JkaW5hbCBtX3N0eWxlU2NvcGVPcmRp
bmFsIHsgfTsKLSAgICBDYXNjYWRlTGF5ZXJQcmlvcml0eSBtX2Nhc2NhZGVMYXllclByaW9yaXR5
IHsgfTsKICAgICBTZWxlY3RvckNoZWNrZXI6OkxpbmtNYXRjaE1hc2sgbV9saW5rTWF0Y2ggeyB9
OwogCiAgICAgYm9vbCBtX2ZvbnREaXJ0eSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDhlYTM5Y2JkMDNjOGEzYTRkOTI2OWQ2MDhlODUyYTM3YTMz
NmNkY2IuLmQ2YTY2MjVjZmZiMDFlZTgzMmNmYzk2MmIxZDQyNjhhZDhjYzhlOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZlcjo6c3R5bGVGb3JLZXlmcmFtZShjb25zdCBF
bGVtZW50JiBlbGVtZW50LAogICAgIHN0YXRlLnNldFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0
cigqZWxlbWVudFN0eWxlKSk7CiAgICAgc3RhdGUuc2V0UGFyZW50U3R5bGUoUmVuZGVyU3R5bGU6
OmNsb25lUHRyKGNvbnRleHQucGFyZW50U3R5bGUgPyAqY29udGV4dC5wYXJlbnRTdHlsZSA6ICpl
bGVtZW50U3R5bGUpKTsKIAotICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVp
bGRlckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9yKTsKKyAgICBC
dWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVz
dWx0LCB7IENhc2NhZGVMZXZlbDo6QXV0aG9yIH0pOwogICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9w
ZXJ0aWVzKCk7CiAKICAgICBBZGp1c3RlciBhZGp1c3Rlcihkb2N1bWVudCgpLCAqc3RhdGUucGFy
ZW50U3R5bGUoKSwgbnVsbHB0ciwgbnVsbHB0cik7CkBAIC00MzYsNyArNDM2LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBwYWdlSW5k
ZXgpCiAKICAgICBhdXRvJiByZXN1bHQgPSBjb2xsZWN0b3IubWF0Y2hSZXN1bHQoKTsKIAotICAg
IEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCBy
ZXN1bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9yKTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRl
LnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgcmVzdWx0LCB7IENhc2NhZGVMZXZlbDo6
QXV0aG9yIH0pOwogICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAKICAgICAvLyBO
b3cgcmV0dXJuIHRoZSBzdHlsZS4KQEAgLTU1NSwxMyArNTU1LDEzIEBAIHZvaWQgUmVzb2x2ZXI6
OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoU3RhdGUmIHN0YXRlLCBjb25zdCBNYXRjaFJlc3VsdCYg
bWF0Y2hSZXN1CiAgICAgICAgIC8vIElmIHNvLCB3ZSBjYWNoZSB0aGUgYm9yZGVyIGFuZCBiYWNr
Z3JvdW5kIHN0eWxlcyBzbyB0aGF0IFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZSgpCiAgICAgICAg
IC8vIGNhbiBsb29rIGF0IHRoZW0gbGF0ZXIgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGEgc3R5
bGVkIGZvcm0gY29udHJvbCBvciBub3QuCiAgICAgICAgIGF1dG8gdXNlckFnZW50U3R5bGUgPSBS
ZW5kZXJTdHlsZTo6Y2xvbmVQdHIoc3R5bGUpOwotICAgICAgICBCdWlsZGVyIGJ1aWxkZXIoKnVz
ZXJBZ2VudFN0eWxlLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIG1hdGNoUmVzdWx0LCBDYXNjYWRl
TGV2ZWw6OlVzZXJBZ2VudCk7CisgICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5
bGUsIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIHsgQ2FzY2FkZUxldmVsOjpV
c2VyQWdlbnQgfSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAKICAg
ICAgICAgc3RhdGUuc2V0VXNlckFnZW50QXBwZWFyYW5jZVN0eWxlKFdURk1vdmUodXNlckFnZW50
U3R5bGUpKTsKICAgICB9CiAKLSAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1
aWxkZXJDb250ZXh0KHN0YXRlKSwgbWF0Y2hSZXN1bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9yLCBp
bmNsdWRlZFByb3BlcnRpZXMpOworICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwg
YnVpbGRlckNvbnRleHQoc3RhdGUpLCBtYXRjaFJlc3VsdCwgYWxsQ2FzY2FkZUxldmVscygpLCBp
bmNsdWRlZFByb3BlcnRpZXMpOwogCiAgICAgLy8gSGlnaCBwcmlvcml0eSBwcm9wZXJ0aWVzIG1h
eSBhZmZlY3QgcmVzb2x1dGlvbiBvZiBvdGhlciBwcm9wZXJ0aWVzICh0aGV5IGFyZSBtb3N0bHkg
Zm9udCByZWxhdGVkKS4KICAgICBidWlsZGVyLmFwcGx5SGlnaFByaW9yaXR5UHJvcGVydGllcygp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDdhOGJlMTM5YzM1OGNkMTUzYTk2MWFiYzE2NDBlNmZiN2Q5NmU2YTcuLmZjMjkx
ODkzZGNlMGMyZDNmODc4N2IwMzI5MTAwNzY1NDgwYTUyYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMS0xMS0wOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODU0ODYuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NzUKKworICAgICAgICBhcyBpdCBo
YXMgbWFkZSBmYXN0L3J1YnkvZ2VuZXJhdGVkLWJlZm9yZS1jb3VudGVyLWRvZXNudC0KKyAgICAg
ICAgY3Jhc2guaHRtbCBmbGFreSwgcG9zc2libHkgaW5kaWNhdGluZyBwZXJmIHByb2JsZW0KKwor
ICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIltDU1MgQ2FzY2FkZSBMYXll
cnNdIFN1cHBvcnQgJ3JldmVydC1sYXllcicgdmFsdWUiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgaHR0cHM6Ly9jb21taXRz
LndlYmtpdC5vcmcvcjI4NTQ4NgorCiAyMDIxLTExLTA5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIENhc2NhZGUgTGF5ZXJzXSBTdXBwb3J0ICdyZXZl
cnQtbGF5ZXInIHZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0ZWU0ZDk4
ODVlZTg4YTUyNTFkMTQ2ZTQ4ZDg2NjMzZGQxMzU3ODY1Li5jYTVmYmVhZjZmNjZmOTBjMjcwZjA3
YzI5NjY2NjY0ZDA5NjQxZTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0xMS0wOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODU0ODYuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI4NzUKKworICAgICAg
ICBhcyBpdCBoYXMgbWFkZSBmYXN0L3J1YnkvZ2VuZXJhdGVkLWJlZm9yZS1jb3VudGVyLWRvZXNu
dC0KKyAgICAgICAgY3Jhc2guaHRtbCBmbGFreSwgcG9zc2libHkgaW5kaWNhdGluZyBwZXJmIHBy
b2JsZW0KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIltDU1MgQ2Fz
Y2FkZSBMYXllcnNdIFN1cHBvcnQgJ3JldmVydC1sYXllcicgdmFsdWUiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyMzYKKyAgICAgICAgaHR0cHM6
Ly9jb21taXRzLndlYmtpdC5vcmcvcjI4NTQ4NgorCiAyMDIxLTExLTA5ICBUaW0gTmd1eWVuICA8
bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSB3aWxsLWNoYW5nZS1pbnZhbGlk
Lmh0bWwgYWZ0ZXIgcjI4NTQ4NyAmIHIyODU0ODYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRiNmNm
MTAwMGVhYjA4ZjIyYzc1YmVhNTBmODIyNjg4MGFkZTY3OWIuLmFmZDdiOTMyN2U1MjNiYmJhNmI2
MWE0ZjdkNTc1MDQ4NDNkMmRhODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE0OSw2ICsyMTQ5
LDEzIEBAIHdlYmtpdC5vcmcvYi8xNDg2NTAgZmFzdC9yZXBhaW50L2FkZC10YWJsZS1vdmVycGFp
bnQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jYXNjYWRlL2ltcG9ydGFudC1wcm9wLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xODcwOTMgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL2FsbC1wcm9wLWluaXRpYWwteG1sLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dl
YmtpdC5vcmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNhc2NhZGUvcmV2ZXJ0LWxheWVyLTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvMjMyMjM2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
YXNjYWRlL3JldmVydC1sYXllci0wMDUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQord2Via2l0
Lm9yZy9iLzIzMjIzNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2Fz
Y2FkZS9yZXZlcnQtbGF5ZXItMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5v
cmcvYi8yMzIyMzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2Nh
ZGUvcmV2ZXJ0LWxheWVyLTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5v
cmcvYi8xNDg4MDEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9y
L3Q0MjItcmdiYS1vbnNjcmVlbi1iLnhodCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzE0ODgwMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29sb3Iv
dDQyMi1yZ2JhLW9uc2NyZWVuLW11bHRpcGxlLWJveGVzLWMueGh0IFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtbGF5ZXItMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3Jl
dmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CmluZGV4IDEyN2I2ZjNiNTQyYmJlYTg4Njg4YzQ1
MzY0ZjY0N2M4NzcyZmYwZGEuLjcxNDFhYzBiMDM5MDNmMjI3NjQxMzM1OGM1YmRiODY2MzY2Mzg0
ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRl
L3JldmVydC1sYXllci0wMDgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1QQVNTICdy
ZXZlcnQtbGF5ZXInIHNob3VsZCByZXZlcnQgZm9udC1zaXplIHRvIDIwcHggYW5kIHRyaWdnZXIg
YSBzbW9vdGggdHJhbnNpdGlvbgorRkFJTCAncmV2ZXJ0LWxheWVyJyBzaG91bGQgcmV2ZXJ0IGZv
bnQtc2l6ZSB0byAyMHB4IGFuZCB0cmlnZ2VyIGEgc21vb3RoIHRyYW5zaXRpb24gYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIjE1cHgiIGJ1dCBnb3QgIjEwcHgiCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>