<?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>194902</bug_id>
          
          <creation_ts>2019-02-21 08:24:29 -0800</creation_ts>
          <short_desc>[LFC][Floats] Add support for placing formatting roots in-between floats.</short_desc>
          <delta_ts>2019-02-21 09:59:35 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508524</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-02-21 08:24:29 -0800</bug_when>
    <thetext>and not just after the last float -(like where a float would normally go)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508527</commentid>
    <comment_count>1</comment_count>
      <attachid>362611</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-02-21 08:32:30 -0800</bug_when>
    <thetext>Created attachment 362611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508534</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-02-21 08:59:27 -0800</bug_when>
    <thetext>Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508541</commentid>
    <comment_count>3</comment_count>
      <attachid>362614</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-02-21 09:19:24 -0800</bug_when>
    <thetext>Created attachment 362614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508550</commentid>
    <comment_count>4</comment_count>
      <attachid>362614</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-21 09:58:20 -0800</bug_when>
    <thetext>Comment on attachment 362614
Patch

Clearing flags on attachment: 362614

Committed r241869: &lt;https://trac.webkit.org/changeset/241869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508551</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-21 09:58:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508552</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-21 09:59:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/48279434&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362611</attachid>
            <date>2019-02-21 08:32:30 -0800</date>
            <delta_ts>2019-02-21 09:19:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194902-20190221083221.patch</filename>
            <type>text/plain</type>
            <size>26770</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E2YjYxM2RiNDQ3NDcz
N2JmMTMxMDlhMmU1NGVjMmIxZTk4YWQxMC4uNmZkMDU3OGIzMTRkYmFiZGZjMjA3MTczZDkzMzhl
NmI3Mjc3NzA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE5LTAyLTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRzXSBBZGQg
c3VwcG9ydCBmb3IgcGxhY2luZyBmb3JtYXR0aW5nIHJvb3RzIGluLWJldHdlZW4gZmxvYXRzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTAyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGQgc3VwcG9ydCBmb3IgcGxhY2luZyBhIGZvcm1hdHRpbmcgcm9vdCBib3ggaW4tYmV0d2Vl
biBleGlzdGluZyBmbG9hdHMuCisgICAgICAgIFRoZSBpbml0aWFsIHZlcnRpY2FsIHBvc2l0aW9u
IG9mIGEgZm9ybWF0dGluZyByb290IGlzIGl0cyBzdGF0aWMgcG9zaXRpb24gd2hpY2ggY2FuIG1h
a2UgdGhlIGJveAorICAgICAgICBwbGFjZWQgYWJvdmUgZXhzaXRpbmcgZmxvYXRzICh3aGVyZWFz
IHdlIGNhbiBuZXZlciBwbGFjZSBhIHJlZ3VsYXIgZmxvYXQgYWJvdmUgZXhpc3RpbmcgZmxvYXRz
LikKKworICAgICAgICBUZXN0OiBmYXN0L2Jsb2NrL2Jsb2NrLW9ubHkvZmxvYXRzLWFuZC1ibG9j
ay1mb3JtYXR0aW5nLXJvb3RzLmh0bWwKKworICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRQYWlyOjpMZWZ0UmlnaHRJbmRleDo6aXNFbXB0eSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFpcjo6aXNFbXB0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFpcjo6b3BlcmF0b3IqIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SXRlcmF0b3I6Om9wZXJhdG9yKiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmJlZ2luKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0Ojpw
b3NpdGlvbkZvckZsb2F0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRp
bmdDb250ZXh0Ojpwb3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OmZpbmRBdmFpbGFibGVQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6ZmluZFBvc2l0aW9uRm9yRmxvYXRCb3gg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6OmZpbmRQ
b3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZsb2F0UGFpcjo6RmxvYXRQYWlyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6RmxvYXRQYWlyOjpsZWZ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rmxv
YXRQYWlyOjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFp
cjo6aW50ZXJzZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFp
cjo6b3BlcmF0b3IgPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdFBh
aXI6Omhvcml6b250YWxDb25zdHJhaW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZsb2F0UGFpcjo6Ym90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJdGVyYXRv
cjo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdQYWlyOjppc0VtcHR5
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdQYWly
Ojp2ZXJ0aWNhbENvbnN0cmFpbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6OnBvc2l0aW9uRm9yRmxvYXRBdm9pZGluZyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6Zmxv
YXRpbmdQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZsb2F0aW5nUGFpcjo6RmxvYXRpbmdQYWlyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6RmxvYXRpbmdQYWlyOjpsZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6RmxvYXRpbmdQYWlyOjpyaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nUGFpcjo6aW50ZXJzZWN0cyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nUGFpcjo6b3BlcmF0b3Ig
PT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1Bh
aXI6Omhvcml6b250YWxDb25zdHJhaW50cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZsb2F0aW5nUGFpcjo6Ym90dG9tIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5oOgorCiAyMDE5LTAyLTIwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWx3YXlz
IGNhbGwgQ29tcGxldGlvbkhhbmRsZXJzIGFmdGVyIHIyNDA5MDkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCmluZGV4IGM1NDljMjFmMjc4MTMxMDA3NzAwNWQxYjlmODI1ZDAyZTQzZTVi
MTYuLjc0ZTBiYWRhNWI0MDU2YzZmZjkyNDY4YWZiYzc4Njg5OGMwNjljYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGlu
Z0NvbnRleHQmCiAgICAgaWYgKGZsb2F0aW5nQ29udGV4dC5mbG9hdGluZ1N0YXRlKCkuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBhZGp1c3RlZFBvc2l0aW9uID0g
ZmxvYXRpbmdDb250ZXh0LnBvc2l0aW9uRm9yRmxvYXRBdm9pZGluZyhsYXlvdXRCb3gpKQorICAg
IGlmIChhdXRvIGFkanVzdGVkUG9zaXRpb24gPSBmbG9hdGluZ0NvbnRleHQucG9zaXRpb25Gb3JG
b3JtYXR0aW5nQ29udGV4dFJvb3QobGF5b3V0Qm94KSkKICAgICAgICAgbGF5b3V0U3RhdGUuZGlz
cGxheUJveEZvckxheW91dEJveChsYXlvdXRCb3gpLnNldFRvcExlZnQoKmFkanVzdGVkUG9zaXRp
b24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29u
dGV4dC5jcHAKaW5kZXggOThjZTJlOGVhMDUzMDM0YmU0YjA3MzczYTY4MjNjMzQ1NDY0YzE1OS4u
MDk1YWY5ZjA4ZGM4MTg4ZjY3N2RlNjBmMjE1OTc5YzBlMjUwNGIzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcApAQCAtNjIsMjUgKzYy
LDMxIEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGbG9hdGluZ0NvbnRleHQpOwogCiBj
bGFzcyBJdGVyYXRvcjsKIAotY2xhc3MgRmxvYXRpbmdQYWlyIHsKK2NsYXNzIEZsb2F0UGFpciB7
CiBwdWJsaWM6Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fbGVmdEluZGV4
ICYmICFtX3JpZ2h0SW5kZXg7IH0KKyAgICBzdHJ1Y3QgTGVmdFJpZ2h0SW5kZXggeworICAgICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbGVmdCAmJiAhcmlnaHQ7fQorCisgICAg
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBsZWZ0OworICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4g
cmlnaHQ7CisgICAgfTsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxv
YXRQYWlyLmlzRW1wdHkoKTsgfQogICAgIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0SXRlbSog
bGVmdCgpIGNvbnN0OwogICAgIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0SXRlbSogcmlnaHQo
KSBjb25zdDsKICAgICBib29sIGludGVyc2VjdHMoY29uc3QgRGlzcGxheTo6Qm94OjpSZWN0Jikg
Y29uc3Q7CiAgICAgUG9zaXRpb25JbkNvbnRleHRSb290IHZlcnRpY2FsQ29uc3RyYWludCgpIGNv
bnN0IHsgcmV0dXJuIG1fdmVydGljYWxQb3NpdGlvbjsgfQogICAgIEZsb2F0QXZvaWRlcjo6SG9y
aXpvbnRhbENvbnN0cmFpbnRzIGhvcml6b250YWxDb25zdHJhaW50cygpIGNvbnN0OwogICAgIFBv
c2l0aW9uSW5Db250ZXh0Um9vdCBib3R0b20oKSBjb25zdDsKLSAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgRmxvYXRpbmdQYWlyJikgY29uc3Q7CisgICAgTGVmdFJpZ2h0SW5kZXggb3BlcmF0b3Iq
KCkgY29uc3QgeyByZXR1cm4gbV9mbG9hdFBhaXI7IH07CisgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZsb2F0UGFpciYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBJdGVy
YXRvcjsKLSAgICBGbG9hdGluZ1BhaXIoY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRMaXN0Jik7
CisgICAgRmxvYXRQYWlyKGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0TGlzdCYpOwogCiAgICAg
Y29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRMaXN0JiBtX2Zsb2F0czsKLQotICAgIE9wdGlvbmFs
PHVuc2lnbmVkPiBtX2xlZnRJbmRleDsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gbV9yaWdodElu
ZGV4OworICAgIExlZnRSaWdodEluZGV4IG1fZmxvYXRQYWlyOwogICAgIFBvc2l0aW9uSW5Db250
ZXh0Um9vdCBtX3ZlcnRpY2FsUG9zaXRpb247CiB9OwogCkBAIC04OCw3ICs5NCw3IEBAIGNsYXNz
IEl0ZXJhdG9yIHsKIHB1YmxpYzoKICAgICBJdGVyYXRvcihjb25zdCBGbG9hdGluZ1N0YXRlOjpG
bG9hdExpc3QmLCBPcHRpb25hbDxQb3NpdGlvbkluQ29udGV4dFJvb3Q+IHZlcnRpY2FsUG9zaXRp
b24pOwogCi0gICAgY29uc3QgRmxvYXRpbmdQYWlyJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVy
biBtX2N1cnJlbnQ7IH0KKyAgICBjb25zdCBGbG9hdFBhaXImIG9wZXJhdG9yKigpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudDsgfQogICAgIEl0ZXJhdG9yJiBvcGVyYXRvcisrKCk7CiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEl0ZXJhdG9yJikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IEl0ZXJhdG9yJikgY29uc3Q7CkBAIC05NywxOCArMTAzLDE4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXQoUG9zaXRpb25JbkNvbnRleHRSb290IHZlcnRpY2FsUG9zaXRpb24pOwogCiAg
ICAgY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRMaXN0JiBtX2Zsb2F0czsKLSAgICBGbG9hdGlu
Z1BhaXIgbV9jdXJyZW50OworICAgIEZsb2F0UGFpciBtX2N1cnJlbnQ7CiB9OwogCi1zdGF0aWMg
SXRlcmF0b3IgYmVnaW4oY29uc3QgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSwgUG9zaXRp
b25JbkNvbnRleHRSb290IGluaXRpYWxWZXJ0aWNhbFBvc2l0aW9uKQorc3RhdGljIEl0ZXJhdG9y
IGJlZ2luKGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0TGlzdCYgZmxvYXRzLCBQb3NpdGlvbklu
Q29udGV4dFJvb3QgaW5pdGlhbFZlcnRpY2FsUG9zaXRpb24pCiB7CiAgICAgLy8gU3RhcnQgd2l0
aCB0aGUgaW5uZXItbW9zdCBmbG9hdGluZyBwYWlyIGZvciB0aGUgaW5pdGlhbCB2ZXJ0aWNhbCBw
b3NpdGlvbi4KLSAgICByZXR1cm4gSXRlcmF0b3IoZmxvYXRpbmdTdGF0ZS5mbG9hdHMoKSwgaW5p
dGlhbFZlcnRpY2FsUG9zaXRpb24pOworICAgIHJldHVybiBJdGVyYXRvcihmbG9hdHMsIGluaXRp
YWxWZXJ0aWNhbFBvc2l0aW9uKTsKIH0KIAotc3RhdGljIEl0ZXJhdG9yIGVuZChjb25zdCBGbG9h
dGluZ1N0YXRlJiBmbG9hdGluZ1N0YXRlKQorc3RhdGljIEl0ZXJhdG9yIGVuZChjb25zdCBGbG9h
dGluZ1N0YXRlOjpGbG9hdExpc3QmIGZsb2F0cykKIHsKLSAgICByZXR1cm4gSXRlcmF0b3IoZmxv
YXRpbmdTdGF0ZS5mbG9hdHMoKSwgV1RGOjpudWxsb3B0KTsKKyAgICByZXR1cm4gSXRlcmF0b3Io
ZmxvYXRzLCB7IH0pOwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMTcyLDExICsxNzgsMTEgQEAg
UG9pbnQgRmxvYXRpbmdDb250ZXh0Ojpwb3NpdGlvbkZvckZsb2F0KGNvbnN0IEJveCYgbGF5b3V0
Qm94KSBjb25zdAogCiAgICAgLy8gRmluZCB0aGUgdG9wIG1vc3QgcG9zaXRpb24gd2hlcmUgdGhl
IGZsb2F0IGJveCBmaXRzLgogICAgIEZsb2F0Qm94IGZsb2F0Qm94ID0geyBsYXlvdXRCb3gsIG1f
ZmxvYXRpbmdTdGF0ZSwgbGF5b3V0U3RhdGUoKSB9OwotICAgIGZsb2F0aW5nUG9zaXRpb24oZmxv
YXRCb3gpOworICAgIGZpbmRQb3NpdGlvbkZvckZsb2F0Qm94KGZsb2F0Qm94KTsKICAgICByZXR1
cm4gZmxvYXRCb3gucmVjdEluQ29udGFpbmluZ0Jsb2NrKCkudG9wTGVmdCgpOwogfQogCi1PcHRp
b25hbDxQb2ludD4gRmxvYXRpbmdDb250ZXh0Ojpwb3NpdGlvbkZvckZsb2F0QXZvaWRpbmcoY29u
c3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CitPcHRpb25hbDxQb2ludD4gRmxvYXRpbmdDb250ZXh0
Ojpwb3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIGxheW91dEJveCkg
Y29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5n
Q29udGV4dCgpKTsKICAgICBBU1NFUlQoIWxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgp
KTsKQEAgLTE4Nyw3ICsxOTMsNyBAQCBPcHRpb25hbDxQb2ludD4gRmxvYXRpbmdDb250ZXh0Ojpw
b3NpdGlvbkZvckZsb2F0QXZvaWRpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKICAgICBGbG9hdEF2b2lkZXIgZmxvYXRBdm9pZGVyID0geyBsYXlvdXRCb3gs
IG1fZmxvYXRpbmdTdGF0ZSwgbGF5b3V0U3RhdGUoKSB9OwotICAgIGZsb2F0aW5nUG9zaXRpb24o
ZmxvYXRBdm9pZGVyKTsKKyAgICBmaW5kUG9zaXRpb25Gb3JGb3JtYXR0aW5nQ29udGV4dFJvb3Qo
ZmxvYXRBdm9pZGVyKTsKICAgICByZXR1cm4geyBmbG9hdEF2b2lkZXIucmVjdEluQ29udGFpbmlu
Z0Jsb2NrKCkudG9wTGVmdCgpIH07CiB9CiAKQEAgLTI1OSw3OSArMjY1LDEyNyBAQCBGbG9hdGlu
Z0NvbnRleHQ6OkNsZWFyYW5jZVBvc2l0aW9uIEZsb2F0aW5nQ29udGV4dDo6dmVydGljYWxQb3Np
dGlvbldpdGhDbGVhcmFuYwogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgRmxvYXRpbmdDb250
ZXh0OjpmbG9hdGluZ1Bvc2l0aW9uKEZsb2F0QXZvaWRlciYgZmxvYXRBdm9pZGVyKSBjb25zdAor
c3RhdGljIEZsb2F0UGFpcjo6TGVmdFJpZ2h0SW5kZXggZmluZEF2YWlsYWJsZVBvc2l0aW9uKEZs
b2F0QXZvaWRlciYgZmxvYXRBdm9pZGVyLCBjb25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdExpc3Qm
IGZsb2F0cykKIHsKICAgICBPcHRpb25hbDxQb3NpdGlvbkluQ29udGV4dFJvb3Q+IGJvdHRvbU1v
c3Q7Ci0gICAgYXV0byBlbmQgPSBMYXlvdXQ6OmVuZChtX2Zsb2F0aW5nU3RhdGUpOwotICAgIGZv
ciAoYXV0byBpdGVyYXRvciA9IGJlZ2luKG1fZmxvYXRpbmdTdGF0ZSwgeyBmbG9hdEF2b2lkZXIu
cmVjdCgpLnRvcCgpIH0pOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRlcmF0b3IpIHsKKyAgICBPcHRp
b25hbDxGbG9hdFBhaXI6OkxlZnRSaWdodEluZGV4PiBpbm5lck1vc3RMZWZ0QW5kUmlnaHQ7Cisg
ICAgYXV0byBlbmQgPSBMYXlvdXQ6OmVuZChmbG9hdHMpOworICAgIGZvciAoYXV0byBpdGVyYXRv
ciA9IGJlZ2luKGZsb2F0cywgeyBmbG9hdEF2b2lkZXIucmVjdCgpLnRvcCgpIH0pOyBpdGVyYXRv
ciAhPSBlbmQ7ICsraXRlcmF0b3IpIHsKICAgICAgICAgQVNTRVJUKCEoKml0ZXJhdG9yKS5pc0Vt
cHR5KCkpOwotICAgICAgICBhdXRvIGZsb2F0cyA9ICppdGVyYXRvcjsKKyAgICAgICAgYXV0byBs
ZWZ0UmlnaHRGbG9hdFBhaXIgPSAqaXRlcmF0b3I7CisgICAgICAgIGlubmVyTW9zdExlZnRBbmRS
aWdodCA9IGlubmVyTW9zdExlZnRBbmRSaWdodC52YWx1ZU9yKCpsZWZ0UmlnaHRGbG9hdFBhaXIp
OwogCiAgICAgICAgIC8vIE1vdmUgdGhlIGJveCBob3Jpem9udGFsbHkgc28gdGhhdCBpdCBlaXRo
ZXIKICAgICAgICAgLy8gMS4gYWxpZ25zIHdpdGggdGhlIGN1cnJlbnQgZmxvYXRpbmcgcGFpcgog
ICAgICAgICAvLyAyLiBvciB3aXRoIHRoZSBjb250YWluaW5nIGJsb2NrJ3MgY29udGVudCBib3gg
aWYgdGhlcmUncyBubyBmbG9hdCB0byBhbGlnbiB3aXRoIGF0IHRoaXMgdmVydGljYWwgcG9zaXRp
b24uCi0gICAgICAgIGZsb2F0QXZvaWRlci5zZXRIb3Jpem9udGFsQ29uc3RyYWludHMoZmxvYXRz
Lmhvcml6b250YWxDb25zdHJhaW50cygpKTsKLSAgICAgICAgZmxvYXRBdm9pZGVyLnNldFZlcnRp
Y2FsQ29uc3RyYWludChmbG9hdHMudmVydGljYWxDb25zdHJhaW50KCkpOworICAgICAgICBmbG9h
dEF2b2lkZXIuc2V0SG9yaXpvbnRhbENvbnN0cmFpbnRzKGxlZnRSaWdodEZsb2F0UGFpci5ob3Jp
em9udGFsQ29uc3RyYWludHMoKSk7CisgICAgICAgIGZsb2F0QXZvaWRlci5zZXRWZXJ0aWNhbENv
bnN0cmFpbnQobGVmdFJpZ2h0RmxvYXRQYWlyLnZlcnRpY2FsQ29uc3RyYWludCgpKTsKIAogICAg
ICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgZmxvYXQgYXZvaWRlcgogICAgICAgICAvLyAxLiBkb2Vz
IG5vdCAib3ZlcmZsb3ciIGl0cyBjb250YWluaW5nIGJsb2NrIHdpdGggdGhlIGN1cnJlbnQgaG9y
aXp0b25hbCBjb25zdHJhaW50cy4gSXQgc2ltcGx5IG1lYW5zIHRoYXQgdGhlIGZsb2F0IGF2b2lk
ZXIncwogICAgICAgICAvLyBjb250YWluaW5nIGJsb2NrIGNvdWxkIHB1c2ggdGhlIGNhbmRpZGF0
ZSBwb3NpdGlvbiBiZXlvbmQgdGhlIGN1cnJlbnQgZmxvYXQgaG9yaXpvbnRhbGx5ICh0b28gZmFy
IHRvIHRoZSBsZWZ0L3JpZ2h0KQogICAgICAgICAvLyAyLiBhdm9pZHMgZmxvYXRzIG9uIGJvdGgg
c2lkZXMuCi0gICAgICAgIGlmICghZmxvYXRBdm9pZGVyLm92ZXJmbG93c0NvbnRhaW5pbmdCbG9j
aygpICYmICFmbG9hdHMuaW50ZXJzZWN0cyhmbG9hdEF2b2lkZXIucmVjdCgpKSkKLSAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgaWYgKCFmbG9hdEF2b2lkZXIub3ZlcmZsb3dzQ29udGFpbmlu
Z0Jsb2NrKCkgJiYgIWxlZnRSaWdodEZsb2F0UGFpci5pbnRlcnNlY3RzKGZsb2F0QXZvaWRlci5y
ZWN0KCkpKQorICAgICAgICAgICAgcmV0dXJuICppbm5lck1vc3RMZWZ0QW5kUmlnaHQ7CiAKLSAg
ICAgICAgYm90dG9tTW9zdCA9IGZsb2F0cy5ib3R0b20oKTsKKyAgICAgICAgYm90dG9tTW9zdCA9
IGxlZnRSaWdodEZsb2F0UGFpci5ib3R0b20oKTsKICAgICAgICAgLy8gTW92ZSB0byB0aGUgbmV4
dCBmbG9hdGluZyBwYWlyLgogICAgIH0KIAogICAgIC8vIFRoZSBjYW5kaWRhdGUgYm94IGlzIGFs
cmVhZHkgYmVsb3cgb2YgYWxsIHRoZSBmbG9hdHMuCiAgICAgaWYgKCFib3R0b21Nb3N0KQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICAvLyBQYXNzZWQgYWxsIHRo
ZSBmbG9hdHMgYW5kIHN0aWxsIGRvZXMgbm90IGZpdD8gUHVzaCBpdCBiZWxvdyB0aGUgbGFzdCBm
bG9hdC4KICAgICBmbG9hdEF2b2lkZXIuc2V0VmVydGljYWxDb25zdHJhaW50KCpib3R0b21Nb3N0
KTsKICAgICBmbG9hdEF2b2lkZXIuc2V0SG9yaXpvbnRhbENvbnN0cmFpbnRzKHsgfSk7CisgICAg
QVNTRVJUKGlubmVyTW9zdExlZnRBbmRSaWdodCk7CisgICAgcmV0dXJuICppbm5lck1vc3RMZWZ0
QW5kUmlnaHQ7Cit9CisKK3ZvaWQgRmxvYXRpbmdDb250ZXh0OjpmaW5kUG9zaXRpb25Gb3JGbG9h
dEJveChGbG9hdEJveCYgZmxvYXRCb3gpIGNvbnN0Cit7CisgICAgZmluZEF2YWlsYWJsZVBvc2l0
aW9uKGZsb2F0Qm94LCBtX2Zsb2F0aW5nU3RhdGUuZmxvYXRzKCkpOworfQorCit2b2lkIEZsb2F0
aW5nQ29udGV4dDo6ZmluZFBvc2l0aW9uRm9yRm9ybWF0dGluZ0NvbnRleHRSb290KEZsb2F0QXZv
aWRlciYgZmxvYXRBdm9pZGVyKSBjb25zdAoreworICAgIC8vIEEgbm9uLWZsb2F0aW5nIGZvcm1h
dHRpbmcgcm9vdCdzIGluaXRpYWwgdmVydGljYWwgcG9zaXRpb24gaXMgaXRzIHN0YXRpYyBwb3Np
dGlvbi4KKyAgICAvLyBJdCBtZWFucyB0aGF0IHN1Y2ggYm94ZXMgY2FuIGVuZCB1cCB2ZXJ0aWNh
bGx5IHBsYWNlZCBpbi1iZXR3ZWVuIGV4aXN0aW5nIGZsb2F0cyAod2hpY2ggaXMKKyAgICAvLyBu
ZXZlciB0aGUgY2FzZSBmb3IgZmxvYXRzLCBzaW5jZSB0aGV5IGNhbm5vdCBiZSBwbGFjZWQgYWJv
dmUgZXhpc3RpbmcgZmxvYXRzKS4KKyAgICAvLyAgX19fXyAgX19fXworICAgIC8vIHwgICAgfHwg
RjEgfAorICAgIC8vIHwgTDEgfCAtLS0tCisgICAgLy8gfCAgICB8ICBfX19fX19fXworICAgIC8v
ICAtLS0tICB8ICAgUjEgICB8CisgICAgLy8gICAgICAgICAtLS0tLS0tLQorICAgIC8vIERvY3Vt
ZW50IG9yZGVyOiAxLiBmbG9hdDogbGVmdCAoTDEpIDIuIGZsb2F0OiByaWdodCAoUjEpIDMuIGZv
cm1hdHRpbmcgcm9vdCAoRjEpCisgICAgLy8KKyAgICAvLyAxLiBQcm9iZSBmb3IgYXZhaWxhYmxl
IHBsYWNlbWVudCBhdCBpbml0aWFsIHBvc2l0aW9uIChub3RlIGl0IHJ1bnMgYSBiYWNrd2FyZCBw
cm9iaW5nIGFsZ29yaXRobSBhdCBhIHNwZWNpZmljIHZlcnRpY2FsIHBvc2l0aW9uKQorICAgIC8v
IDIuIENoZWNrIGlmIHRoZXJlJ3MgYW55IGludGVyc2VjaW5nIGZsb2F0IGJlbG93IChmb3J3YXJk
IHNlYWNoaW5nKQorICAgIC8vIDMuIEFsaWduIHRoZSBib3ggd2l0aCB0aGUgaW50ZXJzZWN0ZWQg
ZmxvYXQgYW5kIHByb2JlIGZvciBwbGFjZW1lbnQgYWdhaW4gKCMxKS4gCisgICAgYXV0byYgZmxv
YXRzID0gbV9mbG9hdGluZ1N0YXRlLmZsb2F0cygpOworICAgIHdoaWxlICh0cnVlKSB7CisgICAg
ICAgIGF1dG8gaW5uZXJNb3N0TGVmdEFuZFJpZ2h0ID0gZmluZEF2YWlsYWJsZVBvc2l0aW9uKGZs
b2F0QXZvaWRlciwgZmxvYXRzKTsKKyAgICAgICAgaWYgKGlubmVyTW9zdExlZnRBbmRSaWdodC5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBvdmVybGFwcGlu
Z0Zsb2F0Qm94ID0gWyZmbG9hdHNdKGF1dG8gc3RhcnRGbG9hdEluZGV4LCBhdXRvIGZsb2F0QXZv
aWRlclJlY3QpIC0+IGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0SXRlbSogeworICAgICAgICAg
ICAgZm9yIChhdXRvIGkgPSBzdGFydEZsb2F0SW5kZXg7IGkgPCBmbG9hdHMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgICAgICAgICBhdXRvJiBmbG9hdEJveCA9IGZsb2F0c1tpXTsKKyAgICAgICAg
ICAgICAgICBpZiAoZmxvYXRCb3gucmVjdFdpdGhNYXJnaW4oKS5pbnRlcnNlY3RzKGZsb2F0QXZv
aWRlclJlY3QpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gJmZsb2F0Qm94OworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH07CisKKyAgICAg
ICAgYXV0byBzdGFydEluZGV4ID0gc3RkOjptYXgoaW5uZXJNb3N0TGVmdEFuZFJpZ2h0LmxlZnQu
dmFsdWVPcigwKSwgaW5uZXJNb3N0TGVmdEFuZFJpZ2h0LnJpZ2h0LnZhbHVlT3IoMCkpICsgMTsK
KyAgICAgICAgYXV0byogaW50ZXJzZWN0ZWRGbG9hdEJveCA9IG92ZXJsYXBwaW5nRmxvYXRCb3go
c3RhcnRJbmRleCwgZmxvYXRBdm9pZGVyLnJlY3QoKSk7CisgICAgICAgIGlmICghaW50ZXJzZWN0
ZWRGbG9hdEJveCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZmxvYXRBdm9pZGVyLnNl
dFZlcnRpY2FsQ29uc3RyYWludCh7IGludGVyc2VjdGVkRmxvYXRCb3gtPnJlY3RXaXRoTWFyZ2lu
KCkudG9wKCkgfSk7CisgICAgfQogfQogCi1GbG9hdGluZ1BhaXI6OkZsb2F0aW5nUGFpcihjb25z
dCBGbG9hdGluZ1N0YXRlOjpGbG9hdExpc3QmIGZsb2F0cykKK0Zsb2F0UGFpcjo6RmxvYXRQYWly
KGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0TGlzdCYgZmxvYXRzKQogICAgIDogbV9mbG9hdHMo
ZmxvYXRzKQogewogfQogCi1jb25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW0qIEZsb2F0aW5n
UGFpcjo6bGVmdCgpIGNvbnN0Citjb25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW0qIEZsb2F0
UGFpcjo6bGVmdCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2xlZnRJbmRleCkKKyAgICBpZiAoIW1f
ZmxvYXRQYWlyLmxlZnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQVNTRVJUKG1f
ZmxvYXRzWyptX2xlZnRJbmRleF0uaXNMZWZ0UG9zaXRpb25lZCgpKTsKLSAgICByZXR1cm4gJm1f
ZmxvYXRzWyptX2xlZnRJbmRleF07CisgICAgQVNTRVJUKG1fZmxvYXRzWyptX2Zsb2F0UGFpci5s
ZWZ0XS5pc0xlZnRQb3NpdGlvbmVkKCkpOworICAgIHJldHVybiAmbV9mbG9hdHNbKm1fZmxvYXRQ
YWlyLmxlZnRdOwogfQogCi1jb25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdEl0ZW0qIEZsb2F0aW5n
UGFpcjo6cmlnaHQoKSBjb25zdAorY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRJdGVtKiBGbG9h
dFBhaXI6OnJpZ2h0KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmlnaHRJbmRleCkKKyAgICBpZiAo
IW1fZmxvYXRQYWlyLnJpZ2h0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEFTU0VS
VCghbV9mbG9hdHNbKm1fcmlnaHRJbmRleF0uaXNMZWZ0UG9zaXRpb25lZCgpKTsKLSAgICByZXR1
cm4gJm1fZmxvYXRzWyptX3JpZ2h0SW5kZXhdOworICAgIEFTU0VSVCghbV9mbG9hdHNbKm1fZmxv
YXRQYWlyLnJpZ2h0XS5pc0xlZnRQb3NpdGlvbmVkKCkpOworICAgIHJldHVybiAmbV9mbG9hdHNb
Km1fZmxvYXRQYWlyLnJpZ2h0XTsKIH0KIAotYm9vbCBGbG9hdGluZ1BhaXI6OmludGVyc2VjdHMo
Y29uc3QgRGlzcGxheTo6Qm94OjpSZWN0JiBmbG9hdEF2b2lkZXJSZWN0KSBjb25zdAorYm9vbCBG
bG9hdFBhaXI6OmludGVyc2VjdHMoY29uc3QgRGlzcGxheTo6Qm94OjpSZWN0JiBmbG9hdEF2b2lk
ZXJSZWN0KSBjb25zdAogewogICAgIGF1dG8gaW50ZXJzZWN0cyA9IFsmXShhdXRvKiBmbG9hdGlu
ZykgewogICAgICAgICByZXR1cm4gZmxvYXRpbmcgJiYgZmxvYXRpbmctPnJlY3RXaXRoTWFyZ2lu
KCkuaW50ZXJzZWN0cyhmbG9hdEF2b2lkZXJSZWN0KTsKICAgICB9OwogCi0gICAgQVNTRVJUKG1f
bGVmdEluZGV4IHx8IG1fcmlnaHRJbmRleCk7CisgICAgQVNTRVJUKCFtX2Zsb2F0UGFpci5pc0Vt
cHR5KCkpOwogICAgIHJldHVybiBpbnRlcnNlY3RzKGxlZnQoKSkgfHwgaW50ZXJzZWN0cyhyaWdo
dCgpKTsKIH0KIAotYm9vbCBGbG9hdGluZ1BhaXI6Om9wZXJhdG9yID09KGNvbnN0IEZsb2F0aW5n
UGFpciYgb3RoZXIpIGNvbnN0Citib29sIEZsb2F0UGFpcjo6b3BlcmF0b3IgPT0oY29uc3QgRmxv
YXRQYWlyJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4gbV9sZWZ0SW5kZXggPT0gb3RoZXIu
bV9sZWZ0SW5kZXggJiYgbV9yaWdodEluZGV4ID09IG90aGVyLm1fcmlnaHRJbmRleDsKKyAgICBy
ZXR1cm4gbV9mbG9hdFBhaXIubGVmdCA9PSBvdGhlci5tX2Zsb2F0UGFpci5sZWZ0ICYmIG1fZmxv
YXRQYWlyLnJpZ2h0ID09IG90aGVyLm1fZmxvYXRQYWlyLnJpZ2h0OwogfQogCi1GbG9hdEF2b2lk
ZXI6Okhvcml6b250YWxDb25zdHJhaW50cyBGbG9hdGluZ1BhaXI6Omhvcml6b250YWxDb25zdHJh
aW50cygpIGNvbnN0CitGbG9hdEF2b2lkZXI6Okhvcml6b250YWxDb25zdHJhaW50cyBGbG9hdFBh
aXI6Omhvcml6b250YWxDb25zdHJhaW50cygpIGNvbnN0CiB7CiAgICAgT3B0aW9uYWw8UG9zaXRp
b25JbkNvbnRleHRSb290PiBsZWZ0RWRnZTsKICAgICBPcHRpb25hbDxQb3NpdGlvbkluQ29udGV4
dFJvb3Q+IHJpZ2h0RWRnZTsKQEAgLTM0NSw3ICszOTksNyBAQCBGbG9hdEF2b2lkZXI6Okhvcml6
b250YWxDb25zdHJhaW50cyBGbG9hdGluZ1BhaXI6Omhvcml6b250YWxDb25zdHJhaW50cygpIGNv
bnN0CiAgICAgcmV0dXJuIHsgbGVmdEVkZ2UsIHJpZ2h0RWRnZSB9OwogfQogCi1Qb3NpdGlvbklu
Q29udGV4dFJvb3QgRmxvYXRpbmdQYWlyOjpib3R0b20oKSBjb25zdAorUG9zaXRpb25JbkNvbnRl
eHRSb290IEZsb2F0UGFpcjo6Ym90dG9tKCkgY29uc3QKIHsKICAgICBhdXRvKiBsZWZ0ID0gdGhp
cy0+bGVmdCgpOwogICAgIGF1dG8qIHJpZ2h0ID0gdGhpcy0+cmlnaHQoKTsKQEAgLTQyOCwxNSAr
NDgyLDE1IEBAIEl0ZXJhdG9yJiBJdGVyYXRvcjo6b3BlcmF0b3IrKygpCiAgICAgYXV0byB1cGRh
dGVSaWdodCA9IChsZWZ0Qm90dG9tID09IHJpZ2h0Qm90dG9tKSB8fCAoIWxlZnRCb3R0b20gfHwg
KHJpZ2h0Qm90dG9tICYmIGxlZnRCb3R0b20gPiByaWdodEJvdHRvbSkpOyAKIAogICAgIGlmICh1
cGRhdGVMZWZ0KSB7Ci0gICAgICAgIEFTU0VSVChtX2N1cnJlbnQubV9sZWZ0SW5kZXgpOworICAg
ICAgICBBU1NFUlQobV9jdXJyZW50Lm1fZmxvYXRQYWlyLmxlZnQpOwogICAgICAgICBtX2N1cnJl
bnQubV92ZXJ0aWNhbFBvc2l0aW9uID0gKmxlZnRCb3R0b207Ci0gICAgICAgIG1fY3VycmVudC5t
X2xlZnRJbmRleCA9IGZpbmRQcmV2aW91c0Zsb2F0aW5nV2l0aExvd2VyQm90dG9tKEZsb2F0OjpM
ZWZ0LCAqbV9jdXJyZW50Lm1fbGVmdEluZGV4KTsKKyAgICAgICAgbV9jdXJyZW50Lm1fZmxvYXRQ
YWlyLmxlZnQgPSBmaW5kUHJldmlvdXNGbG9hdGluZ1dpdGhMb3dlckJvdHRvbShGbG9hdDo6TGVm
dCwgKm1fY3VycmVudC5tX2Zsb2F0UGFpci5sZWZ0KTsKICAgICB9CiAgICAgCiAgICAgaWYgKHVw
ZGF0ZVJpZ2h0KSB7Ci0gICAgICAgIEFTU0VSVChtX2N1cnJlbnQubV9yaWdodEluZGV4KTsKKyAg
ICAgICAgQVNTRVJUKG1fY3VycmVudC5tX2Zsb2F0UGFpci5yaWdodCk7CiAgICAgICAgIG1fY3Vy
cmVudC5tX3ZlcnRpY2FsUG9zaXRpb24gPSAqcmlnaHRCb3R0b207Ci0gICAgICAgIG1fY3VycmVu
dC5tX3JpZ2h0SW5kZXggPSBmaW5kUHJldmlvdXNGbG9hdGluZ1dpdGhMb3dlckJvdHRvbShGbG9h
dDo6UmlnaHQsICptX2N1cnJlbnQubV9yaWdodEluZGV4KTsKKyAgICAgICAgbV9jdXJyZW50Lm1f
ZmxvYXRQYWlyLnJpZ2h0ID0gZmluZFByZXZpb3VzRmxvYXRpbmdXaXRoTG93ZXJCb3R0b20oRmxv
YXQ6OlJpZ2h0LCAqbV9jdXJyZW50Lm1fZmxvYXRQYWlyLnJpZ2h0KTsKICAgICB9CiAKICAgICBy
ZXR1cm4gKnRoaXM7CkBAIC00NDcsMTUgKzUwMSwxMSBAQCB2b2lkIEl0ZXJhdG9yOjpzZXQoUG9z
aXRpb25JbkNvbnRleHRSb290IHZlcnRpY2FsUG9zaXRpb24pCiAgICAgLy8gTW92ZSB0aGUgaXRl
cmF0b3IgdG8gdGhlIGluaXRpYWwgdmVydGljYWwgcG9zaXRpb24gYnkgc3RhcnRpbmcgYXQgdGhl
IGlubmVyLW1vc3QgZmxvYXRpbmcgcGFpciAobGFzdCBmbG9hdHMgb24gbGVmdC9yaWdodCkuCiAg
ICAgLy8gMS4gQ2hlY2sgaWYgdGhlIGlubmVyLW1vc3QgcGFpciBjb3ZlcnMgdGhlIHZlcnRpY2Fs
IHBvc2l0aW9uLgogICAgIC8vIDIuIE1vdmUgb3V0d2FyZHMgZnJvbSB0aGUgaW5uZXItbW9zdCBw
YWlyIHVudGlsIHRoZSB2ZXJ0aWNhbCBwb3N0aW9uIGludGVyc2VjdHMuCi0gICAgLy8gKE5vdGUg
dGhhdCB2ZXJ0aWNhbFBvc2l0aW9uIGhhcyBhbHJlYWR5IGJlZW4gYWRqdXN0ZWQgd2l0aCB0aGUg
dG9wIG9mIHRoZSBsYXN0IGZsb2F0LikKLQogICAgIG1fY3VycmVudC5tX3ZlcnRpY2FsUG9zaXRp
b24gPSB2ZXJ0aWNhbFBvc2l0aW9uOwogICAgIC8vIE5vIGZsb2F0cyBhdCBhbGw/CiAgICAgaWYg
KG1fZmxvYXRzLmlzRW1wdHkoKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLQot
ICAgICAgICBtX2N1cnJlbnQubV9sZWZ0SW5kZXggPSB7IH07Ci0gICAgICAgIG1fY3VycmVudC5t
X3JpZ2h0SW5kZXggPSB7IH07CisgICAgICAgIG1fY3VycmVudC5tX2Zsb2F0UGFpciA9IHsgfTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDYzLDcgKzUxMyw3IEBAIHZvaWQgSXRlcmF0
b3I6OnNldChQb3NpdGlvbkluQ29udGV4dFJvb3QgdmVydGljYWxQb3NpdGlvbikKIAogICAgICAg
ICBBU1NFUlQoIW1fZmxvYXRzLmlzRW1wdHkoKSk7CiAKLSAgICAgICAgYXV0byBpbmRleCA9IGZs
b2F0aW5nVHlwZSA9PSBGbG9hdDo6TGVmdCA/IG1fY3VycmVudC5tX2xlZnRJbmRleCA6IG1fY3Vy
cmVudC5tX3JpZ2h0SW5kZXg7CisgICAgICAgIGF1dG8gaW5kZXggPSBmbG9hdGluZ1R5cGUgPT0g
RmxvYXQ6OkxlZnQgPyBtX2N1cnJlbnQubV9mbG9hdFBhaXIubGVmdCA6IG1fY3VycmVudC5tX2Zs
b2F0UGFpci5yaWdodDsKICAgICAgICAgLy8gU3RhcnQgZnJvbSB0aGUgZW5kIGlmIHdlIGRvbid0
IGhhdmUgY3VycmVudCB5ZXQuCiAgICAgICAgIGluZGV4ID0gaW5kZXgudmFsdWVPcihtX2Zsb2F0
cy5zaXplKCkpOwogICAgICAgICB3aGlsZSAodHJ1ZSkgewpAQCAtNDcxLDIwICs1MjEsMjAgQEAg
dm9pZCBJdGVyYXRvcjo6c2V0KFBvc2l0aW9uSW5Db250ZXh0Um9vdCB2ZXJ0aWNhbFBvc2l0aW9u
KQogICAgICAgICAgICAgaWYgKCFpbmRleCkKICAgICAgICAgICAgICAgICByZXR1cm4geyB9Owog
Ci0gICAgICAgICAgICBhdXRvIGJvdHRvbSA9IG1fZmxvYXRzWyppbmRleF0ucmVjdFdpdGhNYXJn
aW4oKS5ib3R0b20oKTsKICAgICAgICAgICAgIC8vIElzIHRoaXMgZmxvYXRpbmcgaW50cnVzaXZl
IG9uIHRoaXMgcG9zaXRpb24/Ci0gICAgICAgICAgICBpZiAoYm90dG9tID4gdmVydGljYWxQb3Np
dGlvbikKKyAgICAgICAgICAgIGF1dG8gcmVjdCA9IG1fZmxvYXRzWyppbmRleF0ucmVjdFdpdGhN
YXJnaW4oKTsKKyAgICAgICAgICAgIGlmIChyZWN0LnRvcCgpIDw9IHZlcnRpY2FsUG9zaXRpb24g
JiYgcmVjdC5ib3R0b20oKSA+IHZlcnRpY2FsUG9zaXRpb24pCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGluZGV4OwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9OwogCi0g
ICAgbV9jdXJyZW50Lm1fbGVmdEluZGV4ID0gZmluZEZsb2F0aW5nQmVsb3coRmxvYXQ6OkxlZnQp
OwotICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBmaW5kRmxvYXRpbmdCZWxvdyhGbG9hdDo6
UmlnaHQpOworICAgIG1fY3VycmVudC5tX2Zsb2F0UGFpci5sZWZ0ID0gZmluZEZsb2F0aW5nQmVs
b3coRmxvYXQ6OkxlZnQpOworICAgIG1fY3VycmVudC5tX2Zsb2F0UGFpci5yaWdodCA9IGZpbmRG
bG9hdGluZ0JlbG93KEZsb2F0OjpSaWdodCk7CiAKLSAgICBBU1NFUlQoIW1fY3VycmVudC5tX2xl
ZnRJbmRleCB8fCAoKm1fY3VycmVudC5tX2xlZnRJbmRleCA8IG1fZmxvYXRzLnNpemUoKSAmJiBt
X2Zsb2F0c1sqbV9jdXJyZW50Lm1fbGVmdEluZGV4XS5pc0xlZnRQb3NpdGlvbmVkKCkpKTsKLSAg
ICBBU1NFUlQoIW1fY3VycmVudC5tX3JpZ2h0SW5kZXggfHwgKCptX2N1cnJlbnQubV9yaWdodElu
ZGV4IDwgbV9mbG9hdHMuc2l6ZSgpICYmICFtX2Zsb2F0c1sqbV9jdXJyZW50Lm1fcmlnaHRJbmRl
eF0uaXNMZWZ0UG9zaXRpb25lZCgpKSk7CisgICAgQVNTRVJUKCFtX2N1cnJlbnQubV9mbG9hdFBh
aXIubGVmdCB8fCAoKm1fY3VycmVudC5tX2Zsb2F0UGFpci5sZWZ0IDwgbV9mbG9hdHMuc2l6ZSgp
ICYmIG1fZmxvYXRzWyptX2N1cnJlbnQubV9mbG9hdFBhaXIubGVmdF0uaXNMZWZ0UG9zaXRpb25l
ZCgpKSk7CisgICAgQVNTRVJUKCFtX2N1cnJlbnQubV9mbG9hdFBhaXIucmlnaHQgfHwgKCptX2N1
cnJlbnQubV9mbG9hdFBhaXIucmlnaHQgPCBtX2Zsb2F0cy5zaXplKCkgJiYgIW1fZmxvYXRzWypt
X2N1cnJlbnQubV9mbG9hdFBhaXIucmlnaHRdLmlzTGVmdFBvc2l0aW9uZWQoKSkpOwogfQogCiBi
b29sIEl0ZXJhdG9yOjpvcGVyYXRvcj09KGNvbnN0IEl0ZXJhdG9yJiBvdGhlcikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5oCmluZGV4IDJm
NDYwZTBhZDM1NDU5MWQ4NzMxMjllOTQ4NDQyYmUzZTJiYzc1NzIuLjI2YjExNzc0YTg1MmRlNTQx
ZTBlYTA2N2MzZTY0ZTEyYjc4OGVlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zs
b2F0cy9GbG9hdGluZ0NvbnRleHQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgRmxv
YXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxvYXRpbmdTdGF0
ZTsgfQogCiAgICAgUG9pbnQgcG9zaXRpb25Gb3JGbG9hdChjb25zdCBCb3gmKSBjb25zdDsKLSAg
ICBPcHRpb25hbDxQb2ludD4gcG9zaXRpb25Gb3JGbG9hdEF2b2lkaW5nKGNvbnN0IEJveCYpIGNv
bnN0OworICAgIE9wdGlvbmFsPFBvaW50PiBwb3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9v
dChjb25zdCBCb3gmKSBjb25zdDsKIAogICAgIHN0cnVjdCBDbGVhcmFuY2VQb3NpdGlvbiB7CiAg
ICAgICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBwb3NpdGlvbjsKQEAgLTYyLDcgKzYyLDggQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX2Zsb2F0aW5nU3RhdGUubGF5b3V0U3RhdGUoKTsgfQogCi0gICAgdm9pZCBmbG9hdGlu
Z1Bvc2l0aW9uKEZsb2F0QXZvaWRlciYpIGNvbnN0OworICAgIHZvaWQgZmluZFBvc2l0aW9uRm9y
RmxvYXRCb3goRmxvYXRCb3gmKSBjb25zdDsKKyAgICB2b2lkIGZpbmRQb3NpdGlvbkZvckZvcm1h
dHRpbmdDb250ZXh0Um9vdChGbG9hdEF2b2lkZXImKSBjb25zdDsKIAogICAgIEZsb2F0aW5nU3Rh
dGUmIG1fZmxvYXRpbmdTdGF0ZTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMzFhOWIwMGFiZTRjMjc0MDIwODllOTBjOTU0NmFkNWQ0MmJh
YTcxZC4uNDVlZWQ1Zjg4ZGE1OWMyZTMyNWFhNGQ5YWM4NjhhY2YyMmY2MDI2YSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDE5LTAyLTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W0xGQ11bRmxvYXRzXSBBZGQgc3VwcG9ydCBmb3IgcGxhY2luZyBmb3JtYXR0aW5nIHJvb3RzIGlu
LWJldHdlZW4gZmxvYXRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk0OTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL0xGQy1wYXNzaW5nLXRlc3RzLnR4dDoKKwog
MjAxOS0wMi0yMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hj
b2RlXSBBZGQgU0RLVmFyaWFudC54Y2NvbmZpZyB0byB2YXJpb3VzIFhjb2RlIHByb2plY3RzCmRp
ZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL0xGQy1wYXNzaW5nLXRlc3RzLnR4
dCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvTEZDLXBhc3NpbmctdGVzdHMudHh0CmluZGV4
IDVhZmZjMjkyZjFkMjNmZTcyMDU2YTQzNDNkZjI1MGZmYTA2NjE0MzIuLmNlZDAwOWVkZDRiMjg5
OTViMjMwYjFkYTQ4YmQ4NjFjYzM0ZDIzY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL21pc2MvTEZDLXBhc3NpbmctdGVzdHMudHh0CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L21pc2MvTEZDLXBhc3NpbmctdGVzdHMudHh0CkBAIC04MSw2ICs4MSw3IEBAIGZhc3QvYmxvY2sv
YmxvY2stb25seS9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1pbi1ib2R5Lmh0bWwKIGZhc3QvYmxv
Y2svYmxvY2stb25seS9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy1tdWx0aXBsZS1saW5lcy5odG1s
CiBmYXN0L2Jsb2NrL2Jsb2NrLW9ubHkvZmxvYXRpbmctbXVsdGlwbGUtbGVmdHMuaHRtbAogZmFz
dC9ibG9jay9ibG9jay1vbmx5L2Zsb2F0aW5nLXdpdGgtbmV3LWJsb2NrLWZvcm1hdHRpbmctY29u
dGV4dC5odG1sCitmYXN0L2Jsb2NrL2Jsb2NrLW9ubHkvZmxvYXRzLWFuZC1ibG9jay1mb3JtYXR0
aW5nLXJvb3RzLmh0bWwKIGZhc3QvYmxvY2svYmxvY2stb25seS9pbmZsb3ctbWluLW1heC1oZWln
aHQuaHRtbAogZmFzdC9ibG9jay9ibG9jay1vbmx5L2luZmxvdy1taW4tbWF4LXdpZHRoLmh0bWwK
IGZhc3QvYmxvY2svYmxvY2stb25seS9tYXJnaW4tY29sbGFwc2UtYm90dG9tLWJvdHRvbS5odG1s
CkBAIC04NDMsOSArODQ0LDEwIEBAIGNzczIuMS8yMDExMDMyMy9mbG9hdC1yZXBsYWNlZC13aWR0
aC0wMDQuaHRtCiBjc3MyLjEvMjAxMTAzMjMvZmxvYXQtcmVwbGFjZWQtd2lkdGgtMDA1Lmh0bQog
Y3NzMi4xLzIwMTEwMzIzL2Zsb2F0LXJlcGxhY2VkLXdpZHRoLTAwNi5odG0KIGNzczIuMS8yMDEx
MDMyMy9mbG9hdC1yZXBsYWNlZC13aWR0aC0wMTEuaHRtCi1jc3MyLjEvMjAxMTAzMjMvZmxvYXRz
LXdyYXAtdG9wLWJlbG93LWJmYy0wMDJsLmh0bQogY3NzMi4xLzIwMTEwMzIzL2Zsb2F0cy0wMDEu
aHRtbAogY3NzMi4xLzIwMTEwMzIzL2Zsb2F0cy0xMDIuaHRtbAorY3NzMi4xLzIwMTEwMzIzL2Zs
b2F0cy13cmFwLXRvcC1iZWxvdy1iZmMtMDAybC5odG0KK2NzczIuMS8yMDExMDMyMy9mbG9hdHMt
d3JhcC10b3AtYmVsb3ctYmZjLTAwMnIuaHRtCiBjc3MyLjEvMjAxMTAzMjMvaW5saW5lLWJsb2Nr
LW5vbi1yZXBsYWNlZC13aWR0aC0wMDEuaHRtCiBjc3MyLjEvMjAxMTAzMjMvaW5saW5lLWJsb2Nr
LW5vbi1yZXBsYWNlZC13aWR0aC0wMDIuaHRtCiBjc3MyLjEvMjAxMTAzMjMvaW5saW5lLWJsb2Nr
LW5vbi1yZXBsYWNlZC13aWR0aC0wMDMuaHRtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDg5NGU3OGE0YjIwNGQyMjE5NDY1
ZGJiZTU1OTIwNDc3MjhmODJiMC4uZmNmYzg1YjA0MWUxYjRlYTU5MGVmYWQ1ZTRjYzEzNjE0ZmU5
ZWZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTAyLTIxICBBbGFuIEtpbnNsZXkgIDx6
YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRzXSBBZGQgc3VwcG9ydCBmb3Ig
cGxhY2luZyBmb3JtYXR0aW5nIHJvb3RzIGluLWJldHdlZW4gZmxvYXRzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Jsb2NrL2Jsb2NrLW9u
bHkvZmxvYXRzLWFuZC1ibG9jay1mb3JtYXR0aW5nLXJvb3RzLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvYmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5kLWJsb2NrLWZvcm1h
dHRpbmctcm9vdHMuaHRtbDogQWRkZWQuCisKIDIwMTktMDItMjAgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBkcmF3SW1hZ2UoKSBjbGVhcnMg
dGhlIGNhbnZhcyBpZiBpdCdzIHRoZSBzb3VyY2Ugb2YgdGhlIGltYWdlIGFuZCBnbG9iYWxDb21w
b3NpdGVPcGVyYXRpb24gaXMgImNvcHkiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Jsb2NrLW9ubHkvZmxvYXRzLWFuZC1ibG9jay1mb3JtYXR0aW5nLXJvb3RzLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Jsb2NrLW9ubHkvZmxvYXRzLWFuZC1ibG9j
ay1mb3JtYXR0aW5nLXJvb3RzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJhMjBlMTIwZmVh
YTg4NDgyYWMyZmFhNWMyNzBjNzZmN2JmMWYyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvYmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5kLWJsb2NrLWZvcm1hdHRpbmctcm9v
dHMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUxIEBACis8c3R5bGU+CisuY29udGFpbmVyIHsK
Kwl3aWR0aDogMzAwcHg7CisJaGVpZ2h0OiAxMDBweDsKK30KKworZGl2IHsKKwlwb3NpdGlvbjog
cmVsYXRpdmU7Cit9CisKKy5mbG9hdCB7CisJYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKwor
LnJvb3QgeworCWJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+CisKKzxkaXYgY2xh
c3M9Y29udGFpbmVyPgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIwcHg7IGxl
ZnQ6IDE5MHB4OyB3aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFz
cz1mbG9hdCBzdHlsZT0idG9wOiAtMjBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48
L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIwcHg7IGxlZnQ6IDE5MHB4OyB3
aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1yb290ICBzdHls
ZT0idG9wOiAtODBweDsgbGVmdDogMTAwcHg7IHdpZHRoOiA5MHB4OyBoZWlnaHQ6IDIwcHg7Ij48
L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPWNvbnRhaW5lcj4KKzxkaXYgY2xhc3M9ZmxvYXQg
c3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZs
b2F0IHN0eWxlPSJ0b3A6IC0yMHB4OyBsZWZ0OiAxOTBweDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6
IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIwcHg7IHdpZHRo
OiAyMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJ0
b3A6IC0yMHB4OyBsZWZ0OiAxOTBweDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rp
dj4KKzxkaXYgY2xhc3M9cm9vdCAgc3R5bGU9InRvcDogLTYwcHg7IGxlZnQ6IDIwMHB4OyB3aWR0
aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9Y29u
dGFpbmVyPgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIw
cHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIwcHg7IGxlZnQ6IDE5
MHB4OyB3aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1mbG9h
dCBzdHlsZT0idG9wOiAtMjBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4K
KzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIwcHg7IGxlZnQ6IDE5MHB4OyB3aWR0aDog
MTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1yb290ICBzdHlsZT0idG9w
OiAtNDBweDsgbGVmdDogMHB4OyB3aWR0aDogMTkwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
PC9kaXY+CisKKzxkaXYgY2xhc3M9Y29udGFpbmVyPgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5
bGU9InRvcDogLTIwcHg7IGxlZnQ6IDE5MHB4OyB3aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsi
PjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0idG9wOiAtMjBweDsgd2lkdGg6IDIwMHB4
OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIw
cHg7IGxlZnQ6IDE5MHB4OyB3aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRp
diBjbGFzcz1yb290ICBzdHlsZT0idG9wOiAtMjBweDsgbGVmdDogMHB4OyB3aWR0aDogMzAwcHg7
IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvYmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5kLWJsb2NrLWZvcm1hdHRpbmctcm9vdHMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5kLWJsb2Nr
LWZvcm1hdHRpbmctcm9vdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzczMmRlZGZmYjBjM2M0ZmZhNzkx
YjE0NzBjZjg1YTNmZDllMGVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9ibG9jay1vbmx5L2Zsb2F0cy1hbmQtYmxvY2stZm9ybWF0dGluZy1yb290cy5odG1sCkBA
IC0wLDAgKzEsNDcgQEAKKzxzdHlsZT4KKy5jb250YWluZXIgeworCXdpZHRoOiAzMDBweDsKKwlo
ZWlnaHQ6IDEwMHB4OworfQorCisuZmxvYXQgeworCWJhY2tncm91bmQtY29sb3I6IGJsdWU7Cit9
CisKKy5yb290IHsKKwlvdmVyZmxvdzogaGlkZGVuOworCWJhY2tncm91bmQtY29sb3I6IHJlZDsK
K30KKzwvc3R5bGU+CisKKzxkaXYgY2xhc3M9Y29udGFpbmVyPgorPGRpdiBjbGFzcz1mbG9hdCBz
dHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8
ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMTBweDsgaGVpZ2h0
OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lk
dGg6IDIwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9
ImZsb2F0OiByaWdodDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYg
Y2xhc3M9cm9vdCBzdHlsZT0id2lkdGg6IDkwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9k
aXY+CisKKzxkaXYgY2xhc3M9Y29udGFpbmVyPgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0iZmxv
YXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNz
PWZsb2F0IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMTBweDsgaGVpZ2h0OiAyMHB4OyI+
PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDIwMHB4
OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9ImZsb2F0OiBy
aWdodDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9cm9v
dCBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzwvZGl2PgorCis8
ZGl2IGNsYXNzPWNvbnRhaW5lcj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9ImZsb2F0OiBsZWZ0
OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBz
dHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
PGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMDBweDsgaGVpZ2h0
OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdp
ZHRoOiAxMTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPXJvb3Qgc3R5bGU9
IndpZHRoOiAxOTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFz
cz1jb250YWluZXI+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9ImZs
b2F0OiByaWdodDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xh
c3M9ZmxvYXQgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsi
PjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTEw
cHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1yb290IHN0eWxlPSJ3aWR0aDog
MzAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362614</attachid>
            <date>2019-02-21 09:19:24 -0800</date>
            <delta_ts>2019-02-21 09:58:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194902-20190221091915.patch</filename>
            <type>text/plain</type>
            <size>26688</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg0YzZlZGE3YTIzZDI1
NTI1OWIzOGIxYTUzM2I3N2Q4NjhhMGNmNC4uMjM5OWZhNWJlMTI0ZDA0MTJlMDY2NTg5OGZjOTVi
MDA1OTU2MjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE5LTAyLTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRzXSBBZGQg
c3VwcG9ydCBmb3IgcGxhY2luZyBmb3JtYXR0aW5nIHJvb3RzIGluLWJldHdlZW4gZmxvYXRzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTAyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGQgc3VwcG9ydCBmb3IgcGxhY2luZyBhIGZvcm1hdHRpbmcgcm9vdCBib3ggaW4tYmV0d2Vl
biBleGlzdGluZyBmbG9hdHMuCisgICAgICAgIFRoZSBpbml0aWFsIHZlcnRpY2FsIHBvc2l0aW9u
IG9mIGEgZm9ybWF0dGluZyByb290IGlzIGl0cyBzdGF0aWMgcG9zaXRpb24gd2hpY2ggY2FuIG1h
a2UgdGhlIGJveAorICAgICAgICBwbGFjZWQgYWJvdmUgZXhzaXRpbmcgZmxvYXRzICh3aGVyZWFz
IHdlIGNhbiBuZXZlciBwbGFjZSBhIHJlZ3VsYXIgZmxvYXQgYWJvdmUgZXhpc3RpbmcgZmxvYXRz
LikKKworICAgICAgICBUZXN0OiBmYXN0L2Jsb2NrL2Jsb2NrLW9ubHkvZmxvYXRzLWFuZC1ibG9j
ay1mb3JtYXR0aW5nLXJvb3RzLmh0bWwKKworICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRQYWlyOjpMZWZ0UmlnaHRJbmRleDo6aXNFbXB0eSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFpcjo6aXNFbXB0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFpcjo6b3BlcmF0b3IqIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SXRlcmF0b3I6Om9wZXJhdG9yKiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmJlZ2luKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0Ojpw
b3NpdGlvbkZvckZsb2F0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRp
bmdDb250ZXh0Ojpwb3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OmZpbmRBdmFpbGFibGVQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6ZmluZFBvc2l0aW9uRm9yRmxvYXRCb3gg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6OmZpbmRQ
b3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZsb2F0UGFpcjo6RmxvYXRQYWlyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6RmxvYXRQYWlyOjpsZWZ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rmxv
YXRQYWlyOjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFp
cjo6aW50ZXJzZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0UGFp
cjo6b3BlcmF0b3IgPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdFBh
aXI6Omhvcml6b250YWxDb25zdHJhaW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZsb2F0UGFpcjo6Ym90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJdGVyYXRv
cjo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdQYWlyOjppc0VtcHR5
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdQYWly
Ojp2ZXJ0aWNhbENvbnN0cmFpbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6OnBvc2l0aW9uRm9yRmxvYXRBdm9pZGluZyBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6Zmxv
YXRpbmdQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZsb2F0aW5nUGFpcjo6RmxvYXRpbmdQYWlyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6RmxvYXRpbmdQYWlyOjpsZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6RmxvYXRpbmdQYWlyOjpyaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nUGFpcjo6aW50ZXJzZWN0cyBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nUGFpcjo6b3BlcmF0b3Ig
PT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ1Bh
aXI6Omhvcml6b250YWxDb25zdHJhaW50cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZsb2F0aW5nUGFpcjo6Ym90dG9tIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5oOgorCiAyMDE5LTAyLTIxICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgVXBkYXRlIE1JTUUgdHlwZSBwYXJz
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGM1NDljMjFmMjc4MTMxMDA3
NzAwNWQxYjlmODI1ZDAyZTQzZTViMTYuLjc0ZTBiYWRhNWI0MDU2YzZmZjkyNDY4YWZiYzc4Njg5
OGMwNjljYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjkxLDcgKzI5
MSw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVBvc2l0aW9uVG9Bdm9p
ZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRleHQmCiAgICAgaWYgKGZsb2F0aW5nQ29udGV4dC5m
bG9hdGluZ1N0YXRlKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0
byBhZGp1c3RlZFBvc2l0aW9uID0gZmxvYXRpbmdDb250ZXh0LnBvc2l0aW9uRm9yRmxvYXRBdm9p
ZGluZyhsYXlvdXRCb3gpKQorICAgIGlmIChhdXRvIGFkanVzdGVkUG9zaXRpb24gPSBmbG9hdGlu
Z0NvbnRleHQucG9zaXRpb25Gb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QobGF5b3V0Qm94KSkKICAg
ICAgICAgbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveChsYXlvdXRCb3gpLnNldFRv
cExlZnQoKmFkanVzdGVkUG9zaXRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKaW5kZXggOThjZTJlOGVhMDUzMDM0YmU0YjA3
MzczYTY4MjNjMzQ1NDY0YzE1OS4uMDk1YWY5ZjA4ZGM4MTg4ZjY3N2RlNjBmMjE1OTc5YzBlMjUw
NGIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250
ZXh0LmNwcApAQCAtNjIsMjUgKzYyLDMxIEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChG
bG9hdGluZ0NvbnRleHQpOwogCiBjbGFzcyBJdGVyYXRvcjsKIAotY2xhc3MgRmxvYXRpbmdQYWly
IHsKK2NsYXNzIEZsb2F0UGFpciB7CiBwdWJsaWM6Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gIW1fbGVmdEluZGV4ICYmICFtX3JpZ2h0SW5kZXg7IH0KKyAgICBzdHJ1Y3QgTGVm
dFJpZ2h0SW5kZXggeworICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbGVm
dCAmJiAhcmlnaHQ7fQorCisgICAgICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBsZWZ0OworICAgICAg
ICBPcHRpb25hbDx1bnNpZ25lZD4gcmlnaHQ7CisgICAgfTsKKworICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fZmxvYXRQYWlyLmlzRW1wdHkoKTsgfQogICAgIGNvbnN0IEZsb2F0
aW5nU3RhdGU6OkZsb2F0SXRlbSogbGVmdCgpIGNvbnN0OwogICAgIGNvbnN0IEZsb2F0aW5nU3Rh
dGU6OkZsb2F0SXRlbSogcmlnaHQoKSBjb25zdDsKICAgICBib29sIGludGVyc2VjdHMoY29uc3Qg
RGlzcGxheTo6Qm94OjpSZWN0JikgY29uc3Q7CiAgICAgUG9zaXRpb25JbkNvbnRleHRSb290IHZl
cnRpY2FsQ29uc3RyYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxQb3NpdGlvbjsgfQog
ICAgIEZsb2F0QXZvaWRlcjo6SG9yaXpvbnRhbENvbnN0cmFpbnRzIGhvcml6b250YWxDb25zdHJh
aW50cygpIGNvbnN0OwogICAgIFBvc2l0aW9uSW5Db250ZXh0Um9vdCBib3R0b20oKSBjb25zdDsK
LSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRpbmdQYWlyJikgY29uc3Q7CisgICAgTGVm
dFJpZ2h0SW5kZXggb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gbV9mbG9hdFBhaXI7IH07Cisg
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0UGFpciYpIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBJdGVyYXRvcjsKLSAgICBGbG9hdGluZ1BhaXIoY29uc3QgRmxvYXRp
bmdTdGF0ZTo6RmxvYXRMaXN0Jik7CisgICAgRmxvYXRQYWlyKGNvbnN0IEZsb2F0aW5nU3RhdGU6
OkZsb2F0TGlzdCYpOwogCiAgICAgY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRMaXN0JiBtX2Zs
b2F0czsKLQotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBtX2xlZnRJbmRleDsKLSAgICBPcHRpb25h
bDx1bnNpZ25lZD4gbV9yaWdodEluZGV4OworICAgIExlZnRSaWdodEluZGV4IG1fZmxvYXRQYWly
OwogICAgIFBvc2l0aW9uSW5Db250ZXh0Um9vdCBtX3ZlcnRpY2FsUG9zaXRpb247CiB9OwogCkBA
IC04OCw3ICs5NCw3IEBAIGNsYXNzIEl0ZXJhdG9yIHsKIHB1YmxpYzoKICAgICBJdGVyYXRvcihj
b25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdExpc3QmLCBPcHRpb25hbDxQb3NpdGlvbkluQ29udGV4
dFJvb3Q+IHZlcnRpY2FsUG9zaXRpb24pOwogCi0gICAgY29uc3QgRmxvYXRpbmdQYWlyJiBvcGVy
YXRvciooKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQ7IH0KKyAgICBjb25zdCBGbG9hdFBhaXIm
IG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudDsgfQogICAgIEl0ZXJhdG9yJiBv
cGVyYXRvcisrKCk7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEl0ZXJhdG9yJikgY29uc3Q7
CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEl0ZXJhdG9yJikgY29uc3Q7CkBAIC05NywxOCAr
MTAzLDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXQoUG9zaXRpb25JbkNvbnRleHRSb290IHZl
cnRpY2FsUG9zaXRpb24pOwogCiAgICAgY29uc3QgRmxvYXRpbmdTdGF0ZTo6RmxvYXRMaXN0JiBt
X2Zsb2F0czsKLSAgICBGbG9hdGluZ1BhaXIgbV9jdXJyZW50OworICAgIEZsb2F0UGFpciBtX2N1
cnJlbnQ7CiB9OwogCi1zdGF0aWMgSXRlcmF0b3IgYmVnaW4oY29uc3QgRmxvYXRpbmdTdGF0ZSYg
ZmxvYXRpbmdTdGF0ZSwgUG9zaXRpb25JbkNvbnRleHRSb290IGluaXRpYWxWZXJ0aWNhbFBvc2l0
aW9uKQorc3RhdGljIEl0ZXJhdG9yIGJlZ2luKGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0TGlz
dCYgZmxvYXRzLCBQb3NpdGlvbkluQ29udGV4dFJvb3QgaW5pdGlhbFZlcnRpY2FsUG9zaXRpb24p
CiB7CiAgICAgLy8gU3RhcnQgd2l0aCB0aGUgaW5uZXItbW9zdCBmbG9hdGluZyBwYWlyIGZvciB0
aGUgaW5pdGlhbCB2ZXJ0aWNhbCBwb3NpdGlvbi4KLSAgICByZXR1cm4gSXRlcmF0b3IoZmxvYXRp
bmdTdGF0ZS5mbG9hdHMoKSwgaW5pdGlhbFZlcnRpY2FsUG9zaXRpb24pOworICAgIHJldHVybiBJ
dGVyYXRvcihmbG9hdHMsIGluaXRpYWxWZXJ0aWNhbFBvc2l0aW9uKTsKIH0KIAotc3RhdGljIEl0
ZXJhdG9yIGVuZChjb25zdCBGbG9hdGluZ1N0YXRlJiBmbG9hdGluZ1N0YXRlKQorc3RhdGljIEl0
ZXJhdG9yIGVuZChjb25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdExpc3QmIGZsb2F0cykKIHsKLSAg
ICByZXR1cm4gSXRlcmF0b3IoZmxvYXRpbmdTdGF0ZS5mbG9hdHMoKSwgV1RGOjpudWxsb3B0KTsK
KyAgICByZXR1cm4gSXRlcmF0b3IoZmxvYXRzLCB7IH0pOwogfQogCiAjaWZuZGVmIE5ERUJVRwpA
QCAtMTcyLDExICsxNzgsMTEgQEAgUG9pbnQgRmxvYXRpbmdDb250ZXh0Ojpwb3NpdGlvbkZvckZs
b2F0KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAogCiAgICAgLy8gRmluZCB0aGUgdG9wIG1v
c3QgcG9zaXRpb24gd2hlcmUgdGhlIGZsb2F0IGJveCBmaXRzLgogICAgIEZsb2F0Qm94IGZsb2F0
Qm94ID0geyBsYXlvdXRCb3gsIG1fZmxvYXRpbmdTdGF0ZSwgbGF5b3V0U3RhdGUoKSB9OwotICAg
IGZsb2F0aW5nUG9zaXRpb24oZmxvYXRCb3gpOworICAgIGZpbmRQb3NpdGlvbkZvckZsb2F0Qm94
KGZsb2F0Qm94KTsKICAgICByZXR1cm4gZmxvYXRCb3gucmVjdEluQ29udGFpbmluZ0Jsb2NrKCku
dG9wTGVmdCgpOwogfQogCi1PcHRpb25hbDxQb2ludD4gRmxvYXRpbmdDb250ZXh0Ojpwb3NpdGlv
bkZvckZsb2F0QXZvaWRpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CitPcHRpb25hbDxQ
b2ludD4gRmxvYXRpbmdDb250ZXh0Ojpwb3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChj
b25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmVzdGFi
bGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICBBU1NFUlQoIWxheW91dEJveC5p
c0Zsb2F0aW5nUG9zaXRpb25lZCgpKTsKQEAgLTE4Nyw3ICsxOTMsNyBAQCBPcHRpb25hbDxQb2lu
dD4gRmxvYXRpbmdDb250ZXh0Ojpwb3NpdGlvbkZvckZsb2F0QXZvaWRpbmcoY29uc3QgQm94JiBs
YXlvdXRCb3gpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBGbG9hdEF2b2lkZXIgZmxvYXRB
dm9pZGVyID0geyBsYXlvdXRCb3gsIG1fZmxvYXRpbmdTdGF0ZSwgbGF5b3V0U3RhdGUoKSB9Owot
ICAgIGZsb2F0aW5nUG9zaXRpb24oZmxvYXRBdm9pZGVyKTsKKyAgICBmaW5kUG9zaXRpb25Gb3JG
b3JtYXR0aW5nQ29udGV4dFJvb3QoZmxvYXRBdm9pZGVyKTsKICAgICByZXR1cm4geyBmbG9hdEF2
b2lkZXIucmVjdEluQ29udGFpbmluZ0Jsb2NrKCkudG9wTGVmdCgpIH07CiB9CiAKQEAgLTI1OSw3
OSArMjY1LDEyNyBAQCBGbG9hdGluZ0NvbnRleHQ6OkNsZWFyYW5jZVBvc2l0aW9uIEZsb2F0aW5n
Q29udGV4dDo6dmVydGljYWxQb3NpdGlvbldpdGhDbGVhcmFuYwogICAgIHJldHVybiB7IH07CiB9
CiAKLXZvaWQgRmxvYXRpbmdDb250ZXh0OjpmbG9hdGluZ1Bvc2l0aW9uKEZsb2F0QXZvaWRlciYg
ZmxvYXRBdm9pZGVyKSBjb25zdAorc3RhdGljIEZsb2F0UGFpcjo6TGVmdFJpZ2h0SW5kZXggZmlu
ZEF2YWlsYWJsZVBvc2l0aW9uKEZsb2F0QXZvaWRlciYgZmxvYXRBdm9pZGVyLCBjb25zdCBGbG9h
dGluZ1N0YXRlOjpGbG9hdExpc3QmIGZsb2F0cykKIHsKICAgICBPcHRpb25hbDxQb3NpdGlvbklu
Q29udGV4dFJvb3Q+IGJvdHRvbU1vc3Q7Ci0gICAgYXV0byBlbmQgPSBMYXlvdXQ6OmVuZChtX2Zs
b2F0aW5nU3RhdGUpOwotICAgIGZvciAoYXV0byBpdGVyYXRvciA9IGJlZ2luKG1fZmxvYXRpbmdT
dGF0ZSwgeyBmbG9hdEF2b2lkZXIucmVjdCgpLnRvcCgpIH0pOyBpdGVyYXRvciAhPSBlbmQ7ICsr
aXRlcmF0b3IpIHsKKyAgICBPcHRpb25hbDxGbG9hdFBhaXI6OkxlZnRSaWdodEluZGV4PiBpbm5l
ck1vc3RMZWZ0QW5kUmlnaHQ7CisgICAgYXV0byBlbmQgPSBMYXlvdXQ6OmVuZChmbG9hdHMpOwor
ICAgIGZvciAoYXV0byBpdGVyYXRvciA9IGJlZ2luKGZsb2F0cywgeyBmbG9hdEF2b2lkZXIucmVj
dCgpLnRvcCgpIH0pOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRlcmF0b3IpIHsKICAgICAgICAgQVNT
RVJUKCEoKml0ZXJhdG9yKS5pc0VtcHR5KCkpOwotICAgICAgICBhdXRvIGZsb2F0cyA9ICppdGVy
YXRvcjsKKyAgICAgICAgYXV0byBsZWZ0UmlnaHRGbG9hdFBhaXIgPSAqaXRlcmF0b3I7CisgICAg
ICAgIGlubmVyTW9zdExlZnRBbmRSaWdodCA9IGlubmVyTW9zdExlZnRBbmRSaWdodC52YWx1ZU9y
KCpsZWZ0UmlnaHRGbG9hdFBhaXIpOwogCiAgICAgICAgIC8vIE1vdmUgdGhlIGJveCBob3Jpem9u
dGFsbHkgc28gdGhhdCBpdCBlaXRoZXIKICAgICAgICAgLy8gMS4gYWxpZ25zIHdpdGggdGhlIGN1
cnJlbnQgZmxvYXRpbmcgcGFpcgogICAgICAgICAvLyAyLiBvciB3aXRoIHRoZSBjb250YWluaW5n
IGJsb2NrJ3MgY29udGVudCBib3ggaWYgdGhlcmUncyBubyBmbG9hdCB0byBhbGlnbiB3aXRoIGF0
IHRoaXMgdmVydGljYWwgcG9zaXRpb24uCi0gICAgICAgIGZsb2F0QXZvaWRlci5zZXRIb3Jpem9u
dGFsQ29uc3RyYWludHMoZmxvYXRzLmhvcml6b250YWxDb25zdHJhaW50cygpKTsKLSAgICAgICAg
ZmxvYXRBdm9pZGVyLnNldFZlcnRpY2FsQ29uc3RyYWludChmbG9hdHMudmVydGljYWxDb25zdHJh
aW50KCkpOworICAgICAgICBmbG9hdEF2b2lkZXIuc2V0SG9yaXpvbnRhbENvbnN0cmFpbnRzKGxl
ZnRSaWdodEZsb2F0UGFpci5ob3Jpem9udGFsQ29uc3RyYWludHMoKSk7CisgICAgICAgIGZsb2F0
QXZvaWRlci5zZXRWZXJ0aWNhbENvbnN0cmFpbnQobGVmdFJpZ2h0RmxvYXRQYWlyLnZlcnRpY2Fs
Q29uc3RyYWludCgpKTsKIAogICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgZmxvYXQgYXZvaWRl
cgogICAgICAgICAvLyAxLiBkb2VzIG5vdCAib3ZlcmZsb3ciIGl0cyBjb250YWluaW5nIGJsb2Nr
IHdpdGggdGhlIGN1cnJlbnQgaG9yaXp0b25hbCBjb25zdHJhaW50cy4gSXQgc2ltcGx5IG1lYW5z
IHRoYXQgdGhlIGZsb2F0IGF2b2lkZXIncwogICAgICAgICAvLyBjb250YWluaW5nIGJsb2NrIGNv
dWxkIHB1c2ggdGhlIGNhbmRpZGF0ZSBwb3NpdGlvbiBiZXlvbmQgdGhlIGN1cnJlbnQgZmxvYXQg
aG9yaXpvbnRhbGx5ICh0b28gZmFyIHRvIHRoZSBsZWZ0L3JpZ2h0KQogICAgICAgICAvLyAyLiBh
dm9pZHMgZmxvYXRzIG9uIGJvdGggc2lkZXMuCi0gICAgICAgIGlmICghZmxvYXRBdm9pZGVyLm92
ZXJmbG93c0NvbnRhaW5pbmdCbG9jaygpICYmICFmbG9hdHMuaW50ZXJzZWN0cyhmbG9hdEF2b2lk
ZXIucmVjdCgpKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCFmbG9hdEF2b2lk
ZXIub3ZlcmZsb3dzQ29udGFpbmluZ0Jsb2NrKCkgJiYgIWxlZnRSaWdodEZsb2F0UGFpci5pbnRl
cnNlY3RzKGZsb2F0QXZvaWRlci5yZWN0KCkpKQorICAgICAgICAgICAgcmV0dXJuICppbm5lck1v
c3RMZWZ0QW5kUmlnaHQ7CiAKLSAgICAgICAgYm90dG9tTW9zdCA9IGZsb2F0cy5ib3R0b20oKTsK
KyAgICAgICAgYm90dG9tTW9zdCA9IGxlZnRSaWdodEZsb2F0UGFpci5ib3R0b20oKTsKICAgICAg
ICAgLy8gTW92ZSB0byB0aGUgbmV4dCBmbG9hdGluZyBwYWlyLgogICAgIH0KIAogICAgIC8vIFRo
ZSBjYW5kaWRhdGUgYm94IGlzIGFscmVhZHkgYmVsb3cgb2YgYWxsIHRoZSBmbG9hdHMuCiAgICAg
aWYgKCFib3R0b21Nb3N0KQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICAvLyBQYXNzZWQgYWxsIHRoZSBmbG9hdHMgYW5kIHN0aWxsIGRvZXMgbm90IGZpdD8gUHVz
aCBpdCBiZWxvdyB0aGUgbGFzdCBmbG9hdC4KICAgICBmbG9hdEF2b2lkZXIuc2V0VmVydGljYWxD
b25zdHJhaW50KCpib3R0b21Nb3N0KTsKICAgICBmbG9hdEF2b2lkZXIuc2V0SG9yaXpvbnRhbENv
bnN0cmFpbnRzKHsgfSk7CisgICAgQVNTRVJUKGlubmVyTW9zdExlZnRBbmRSaWdodCk7CisgICAg
cmV0dXJuICppbm5lck1vc3RMZWZ0QW5kUmlnaHQ7Cit9CisKK3ZvaWQgRmxvYXRpbmdDb250ZXh0
OjpmaW5kUG9zaXRpb25Gb3JGbG9hdEJveChGbG9hdEJveCYgZmxvYXRCb3gpIGNvbnN0Cit7Cisg
ICAgZmluZEF2YWlsYWJsZVBvc2l0aW9uKGZsb2F0Qm94LCBtX2Zsb2F0aW5nU3RhdGUuZmxvYXRz
KCkpOworfQorCit2b2lkIEZsb2F0aW5nQ29udGV4dDo6ZmluZFBvc2l0aW9uRm9yRm9ybWF0dGlu
Z0NvbnRleHRSb290KEZsb2F0QXZvaWRlciYgZmxvYXRBdm9pZGVyKSBjb25zdAoreworICAgIC8v
IEEgbm9uLWZsb2F0aW5nIGZvcm1hdHRpbmcgcm9vdCdzIGluaXRpYWwgdmVydGljYWwgcG9zaXRp
b24gaXMgaXRzIHN0YXRpYyBwb3NpdGlvbi4KKyAgICAvLyBJdCBtZWFucyB0aGF0IHN1Y2ggYm94
ZXMgY2FuIGVuZCB1cCB2ZXJ0aWNhbGx5IHBsYWNlZCBpbi1iZXR3ZWVuIGV4aXN0aW5nIGZsb2F0
cyAod2hpY2ggaXMKKyAgICAvLyBuZXZlciB0aGUgY2FzZSBmb3IgZmxvYXRzLCBzaW5jZSB0aGV5
IGNhbm5vdCBiZSBwbGFjZWQgYWJvdmUgZXhpc3RpbmcgZmxvYXRzKS4KKyAgICAvLyAgX19fXyAg
X19fXworICAgIC8vIHwgICAgfHwgRjEgfAorICAgIC8vIHwgTDEgfCAtLS0tCisgICAgLy8gfCAg
ICB8ICBfX19fX19fXworICAgIC8vICAtLS0tICB8ICAgUjEgICB8CisgICAgLy8gICAgICAgICAt
LS0tLS0tLQorICAgIC8vIERvY3VtZW50IG9yZGVyOiAxLiBmbG9hdDogbGVmdCAoTDEpIDIuIGZs
b2F0OiByaWdodCAoUjEpIDMuIGZvcm1hdHRpbmcgcm9vdCAoRjEpCisgICAgLy8KKyAgICAvLyAx
LiBQcm9iZSBmb3IgYXZhaWxhYmxlIHBsYWNlbWVudCBhdCBpbml0aWFsIHBvc2l0aW9uIChub3Rl
IGl0IHJ1bnMgYSBiYWNrd2FyZCBwcm9iaW5nIGFsZ29yaXRobSBhdCBhIHNwZWNpZmljIHZlcnRp
Y2FsIHBvc2l0aW9uKQorICAgIC8vIDIuIENoZWNrIGlmIHRoZXJlJ3MgYW55IGludGVyc2VjaW5n
IGZsb2F0IGJlbG93IChmb3J3YXJkIHNlYWNoaW5nKQorICAgIC8vIDMuIEFsaWduIHRoZSBib3gg
d2l0aCB0aGUgaW50ZXJzZWN0ZWQgZmxvYXQgYW5kIHByb2JlIGZvciBwbGFjZW1lbnQgYWdhaW4g
KCMxKS4gCisgICAgYXV0byYgZmxvYXRzID0gbV9mbG9hdGluZ1N0YXRlLmZsb2F0cygpOworICAg
IHdoaWxlICh0cnVlKSB7CisgICAgICAgIGF1dG8gaW5uZXJNb3N0TGVmdEFuZFJpZ2h0ID0gZmlu
ZEF2YWlsYWJsZVBvc2l0aW9uKGZsb2F0QXZvaWRlciwgZmxvYXRzKTsKKyAgICAgICAgaWYgKGlu
bmVyTW9zdExlZnRBbmRSaWdodC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgYXV0byBvdmVybGFwcGluZ0Zsb2F0Qm94ID0gWyZmbG9hdHNdKGF1dG8gc3RhcnRGbG9h
dEluZGV4LCBhdXRvIGZsb2F0QXZvaWRlclJlY3QpIC0+IGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZs
b2F0SXRlbSogeworICAgICAgICAgICAgZm9yIChhdXRvIGkgPSBzdGFydEZsb2F0SW5kZXg7IGkg
PCBmbG9hdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBmbG9hdEJveCA9
IGZsb2F0c1tpXTsKKyAgICAgICAgICAgICAgICBpZiAoZmxvYXRCb3gucmVjdFdpdGhNYXJnaW4o
KS5pbnRlcnNlY3RzKGZsb2F0QXZvaWRlclJlY3QpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gJmZsb2F0Qm94OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBzdGFydEluZGV4ID0gc3RkOjptYXgoaW5uZXJN
b3N0TGVmdEFuZFJpZ2h0LmxlZnQudmFsdWVPcigwKSwgaW5uZXJNb3N0TGVmdEFuZFJpZ2h0LnJp
Z2h0LnZhbHVlT3IoMCkpICsgMTsKKyAgICAgICAgYXV0byogaW50ZXJzZWN0ZWRGbG9hdEJveCA9
IG92ZXJsYXBwaW5nRmxvYXRCb3goc3RhcnRJbmRleCwgZmxvYXRBdm9pZGVyLnJlY3QoKSk7Cisg
ICAgICAgIGlmICghaW50ZXJzZWN0ZWRGbG9hdEJveCkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgZmxvYXRBdm9pZGVyLnNldFZlcnRpY2FsQ29uc3RyYWludCh7IGludGVyc2VjdGVkRmxv
YXRCb3gtPnJlY3RXaXRoTWFyZ2luKCkudG9wKCkgfSk7CisgICAgfQogfQogCi1GbG9hdGluZ1Bh
aXI6OkZsb2F0aW5nUGFpcihjb25zdCBGbG9hdGluZ1N0YXRlOjpGbG9hdExpc3QmIGZsb2F0cykK
K0Zsb2F0UGFpcjo6RmxvYXRQYWlyKGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0TGlzdCYgZmxv
YXRzKQogICAgIDogbV9mbG9hdHMoZmxvYXRzKQogewogfQogCi1jb25zdCBGbG9hdGluZ1N0YXRl
OjpGbG9hdEl0ZW0qIEZsb2F0aW5nUGFpcjo6bGVmdCgpIGNvbnN0Citjb25zdCBGbG9hdGluZ1N0
YXRlOjpGbG9hdEl0ZW0qIEZsb2F0UGFpcjo6bGVmdCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2xl
ZnRJbmRleCkKKyAgICBpZiAoIW1fZmxvYXRQYWlyLmxlZnQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgQVNTRVJUKG1fZmxvYXRzWyptX2xlZnRJbmRleF0uaXNMZWZ0UG9zaXRpb25l
ZCgpKTsKLSAgICByZXR1cm4gJm1fZmxvYXRzWyptX2xlZnRJbmRleF07CisgICAgQVNTRVJUKG1f
ZmxvYXRzWyptX2Zsb2F0UGFpci5sZWZ0XS5pc0xlZnRQb3NpdGlvbmVkKCkpOworICAgIHJldHVy
biAmbV9mbG9hdHNbKm1fZmxvYXRQYWlyLmxlZnRdOwogfQogCi1jb25zdCBGbG9hdGluZ1N0YXRl
OjpGbG9hdEl0ZW0qIEZsb2F0aW5nUGFpcjo6cmlnaHQoKSBjb25zdAorY29uc3QgRmxvYXRpbmdT
dGF0ZTo6RmxvYXRJdGVtKiBGbG9hdFBhaXI6OnJpZ2h0KCkgY29uc3QKIHsKLSAgICBpZiAoIW1f
cmlnaHRJbmRleCkKKyAgICBpZiAoIW1fZmxvYXRQYWlyLnJpZ2h0KQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIEFTU0VSVCghbV9mbG9hdHNbKm1fcmlnaHRJbmRleF0uaXNMZWZ0UG9z
aXRpb25lZCgpKTsKLSAgICByZXR1cm4gJm1fZmxvYXRzWyptX3JpZ2h0SW5kZXhdOworICAgIEFT
U0VSVCghbV9mbG9hdHNbKm1fZmxvYXRQYWlyLnJpZ2h0XS5pc0xlZnRQb3NpdGlvbmVkKCkpOwor
ICAgIHJldHVybiAmbV9mbG9hdHNbKm1fZmxvYXRQYWlyLnJpZ2h0XTsKIH0KIAotYm9vbCBGbG9h
dGluZ1BhaXI6OmludGVyc2VjdHMoY29uc3QgRGlzcGxheTo6Qm94OjpSZWN0JiBmbG9hdEF2b2lk
ZXJSZWN0KSBjb25zdAorYm9vbCBGbG9hdFBhaXI6OmludGVyc2VjdHMoY29uc3QgRGlzcGxheTo6
Qm94OjpSZWN0JiBmbG9hdEF2b2lkZXJSZWN0KSBjb25zdAogewogICAgIGF1dG8gaW50ZXJzZWN0
cyA9IFsmXShhdXRvKiBmbG9hdGluZykgewogICAgICAgICByZXR1cm4gZmxvYXRpbmcgJiYgZmxv
YXRpbmctPnJlY3RXaXRoTWFyZ2luKCkuaW50ZXJzZWN0cyhmbG9hdEF2b2lkZXJSZWN0KTsKICAg
ICB9OwogCi0gICAgQVNTRVJUKG1fbGVmdEluZGV4IHx8IG1fcmlnaHRJbmRleCk7CisgICAgQVNT
RVJUKCFtX2Zsb2F0UGFpci5pc0VtcHR5KCkpOwogICAgIHJldHVybiBpbnRlcnNlY3RzKGxlZnQo
KSkgfHwgaW50ZXJzZWN0cyhyaWdodCgpKTsKIH0KIAotYm9vbCBGbG9hdGluZ1BhaXI6Om9wZXJh
dG9yID09KGNvbnN0IEZsb2F0aW5nUGFpciYgb3RoZXIpIGNvbnN0Citib29sIEZsb2F0UGFpcjo6
b3BlcmF0b3IgPT0oY29uc3QgRmxvYXRQYWlyJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9sZWZ0SW5kZXggPT0gb3RoZXIubV9sZWZ0SW5kZXggJiYgbV9yaWdodEluZGV4ID09IG90aGVy
Lm1fcmlnaHRJbmRleDsKKyAgICByZXR1cm4gbV9mbG9hdFBhaXIubGVmdCA9PSBvdGhlci5tX2Zs
b2F0UGFpci5sZWZ0ICYmIG1fZmxvYXRQYWlyLnJpZ2h0ID09IG90aGVyLm1fZmxvYXRQYWlyLnJp
Z2h0OwogfQogCi1GbG9hdEF2b2lkZXI6Okhvcml6b250YWxDb25zdHJhaW50cyBGbG9hdGluZ1Bh
aXI6Omhvcml6b250YWxDb25zdHJhaW50cygpIGNvbnN0CitGbG9hdEF2b2lkZXI6Okhvcml6b250
YWxDb25zdHJhaW50cyBGbG9hdFBhaXI6Omhvcml6b250YWxDb25zdHJhaW50cygpIGNvbnN0CiB7
CiAgICAgT3B0aW9uYWw8UG9zaXRpb25JbkNvbnRleHRSb290PiBsZWZ0RWRnZTsKICAgICBPcHRp
b25hbDxQb3NpdGlvbkluQ29udGV4dFJvb3Q+IHJpZ2h0RWRnZTsKQEAgLTM0NSw3ICszOTksNyBA
QCBGbG9hdEF2b2lkZXI6Okhvcml6b250YWxDb25zdHJhaW50cyBGbG9hdGluZ1BhaXI6Omhvcml6
b250YWxDb25zdHJhaW50cygpIGNvbnN0CiAgICAgcmV0dXJuIHsgbGVmdEVkZ2UsIHJpZ2h0RWRn
ZSB9OwogfQogCi1Qb3NpdGlvbkluQ29udGV4dFJvb3QgRmxvYXRpbmdQYWlyOjpib3R0b20oKSBj
b25zdAorUG9zaXRpb25JbkNvbnRleHRSb290IEZsb2F0UGFpcjo6Ym90dG9tKCkgY29uc3QKIHsK
ICAgICBhdXRvKiBsZWZ0ID0gdGhpcy0+bGVmdCgpOwogICAgIGF1dG8qIHJpZ2h0ID0gdGhpcy0+
cmlnaHQoKTsKQEAgLTQyOCwxNSArNDgyLDE1IEBAIEl0ZXJhdG9yJiBJdGVyYXRvcjo6b3BlcmF0
b3IrKygpCiAgICAgYXV0byB1cGRhdGVSaWdodCA9IChsZWZ0Qm90dG9tID09IHJpZ2h0Qm90dG9t
KSB8fCAoIWxlZnRCb3R0b20gfHwgKHJpZ2h0Qm90dG9tICYmIGxlZnRCb3R0b20gPiByaWdodEJv
dHRvbSkpOyAKIAogICAgIGlmICh1cGRhdGVMZWZ0KSB7Ci0gICAgICAgIEFTU0VSVChtX2N1cnJl
bnQubV9sZWZ0SW5kZXgpOworICAgICAgICBBU1NFUlQobV9jdXJyZW50Lm1fZmxvYXRQYWlyLmxl
ZnQpOwogICAgICAgICBtX2N1cnJlbnQubV92ZXJ0aWNhbFBvc2l0aW9uID0gKmxlZnRCb3R0b207
Ci0gICAgICAgIG1fY3VycmVudC5tX2xlZnRJbmRleCA9IGZpbmRQcmV2aW91c0Zsb2F0aW5nV2l0
aExvd2VyQm90dG9tKEZsb2F0OjpMZWZ0LCAqbV9jdXJyZW50Lm1fbGVmdEluZGV4KTsKKyAgICAg
ICAgbV9jdXJyZW50Lm1fZmxvYXRQYWlyLmxlZnQgPSBmaW5kUHJldmlvdXNGbG9hdGluZ1dpdGhM
b3dlckJvdHRvbShGbG9hdDo6TGVmdCwgKm1fY3VycmVudC5tX2Zsb2F0UGFpci5sZWZ0KTsKICAg
ICB9CiAgICAgCiAgICAgaWYgKHVwZGF0ZVJpZ2h0KSB7Ci0gICAgICAgIEFTU0VSVChtX2N1cnJl
bnQubV9yaWdodEluZGV4KTsKKyAgICAgICAgQVNTRVJUKG1fY3VycmVudC5tX2Zsb2F0UGFpci5y
aWdodCk7CiAgICAgICAgIG1fY3VycmVudC5tX3ZlcnRpY2FsUG9zaXRpb24gPSAqcmlnaHRCb3R0
b207Ci0gICAgICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBmaW5kUHJldmlvdXNGbG9hdGlu
Z1dpdGhMb3dlckJvdHRvbShGbG9hdDo6UmlnaHQsICptX2N1cnJlbnQubV9yaWdodEluZGV4KTsK
KyAgICAgICAgbV9jdXJyZW50Lm1fZmxvYXRQYWlyLnJpZ2h0ID0gZmluZFByZXZpb3VzRmxvYXRp
bmdXaXRoTG93ZXJCb3R0b20oRmxvYXQ6OlJpZ2h0LCAqbV9jdXJyZW50Lm1fZmxvYXRQYWlyLnJp
Z2h0KTsKICAgICB9CiAKICAgICByZXR1cm4gKnRoaXM7CkBAIC00NDcsMTUgKzUwMSwxMSBAQCB2
b2lkIEl0ZXJhdG9yOjpzZXQoUG9zaXRpb25JbkNvbnRleHRSb290IHZlcnRpY2FsUG9zaXRpb24p
CiAgICAgLy8gTW92ZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGluaXRpYWwgdmVydGljYWwgcG9zaXRp
b24gYnkgc3RhcnRpbmcgYXQgdGhlIGlubmVyLW1vc3QgZmxvYXRpbmcgcGFpciAobGFzdCBmbG9h
dHMgb24gbGVmdC9yaWdodCkuCiAgICAgLy8gMS4gQ2hlY2sgaWYgdGhlIGlubmVyLW1vc3QgcGFp
ciBjb3ZlcnMgdGhlIHZlcnRpY2FsIHBvc2l0aW9uLgogICAgIC8vIDIuIE1vdmUgb3V0d2FyZHMg
ZnJvbSB0aGUgaW5uZXItbW9zdCBwYWlyIHVudGlsIHRoZSB2ZXJ0aWNhbCBwb3N0aW9uIGludGVy
c2VjdHMuCi0gICAgLy8gKE5vdGUgdGhhdCB2ZXJ0aWNhbFBvc2l0aW9uIGhhcyBhbHJlYWR5IGJl
ZW4gYWRqdXN0ZWQgd2l0aCB0aGUgdG9wIG9mIHRoZSBsYXN0IGZsb2F0LikKLQogICAgIG1fY3Vy
cmVudC5tX3ZlcnRpY2FsUG9zaXRpb24gPSB2ZXJ0aWNhbFBvc2l0aW9uOwogICAgIC8vIE5vIGZs
b2F0cyBhdCBhbGw/CiAgICAgaWYgKG1fZmxvYXRzLmlzRW1wdHkoKSkgewogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLQotICAgICAgICBtX2N1cnJlbnQubV9sZWZ0SW5kZXggPSB7IH07
Ci0gICAgICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSB7IH07CisgICAgICAgIG1fY3VycmVu
dC5tX2Zsb2F0UGFpciA9IHsgfTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDYzLDcg
KzUxMyw3IEBAIHZvaWQgSXRlcmF0b3I6OnNldChQb3NpdGlvbkluQ29udGV4dFJvb3QgdmVydGlj
YWxQb3NpdGlvbikKIAogICAgICAgICBBU1NFUlQoIW1fZmxvYXRzLmlzRW1wdHkoKSk7CiAKLSAg
ICAgICAgYXV0byBpbmRleCA9IGZsb2F0aW5nVHlwZSA9PSBGbG9hdDo6TGVmdCA/IG1fY3VycmVu
dC5tX2xlZnRJbmRleCA6IG1fY3VycmVudC5tX3JpZ2h0SW5kZXg7CisgICAgICAgIGF1dG8gaW5k
ZXggPSBmbG9hdGluZ1R5cGUgPT0gRmxvYXQ6OkxlZnQgPyBtX2N1cnJlbnQubV9mbG9hdFBhaXIu
bGVmdCA6IG1fY3VycmVudC5tX2Zsb2F0UGFpci5yaWdodDsKICAgICAgICAgLy8gU3RhcnQgZnJv
bSB0aGUgZW5kIGlmIHdlIGRvbid0IGhhdmUgY3VycmVudCB5ZXQuCiAgICAgICAgIGluZGV4ID0g
aW5kZXgudmFsdWVPcihtX2Zsb2F0cy5zaXplKCkpOwogICAgICAgICB3aGlsZSAodHJ1ZSkgewpA
QCAtNDcxLDIwICs1MjEsMjAgQEAgdm9pZCBJdGVyYXRvcjo6c2V0KFBvc2l0aW9uSW5Db250ZXh0
Um9vdCB2ZXJ0aWNhbFBvc2l0aW9uKQogICAgICAgICAgICAgaWYgKCFpbmRleCkKICAgICAgICAg
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgICAgICAgICBhdXRvIGJvdHRvbSA9IG1fZmxvYXRz
WyppbmRleF0ucmVjdFdpdGhNYXJnaW4oKS5ib3R0b20oKTsKICAgICAgICAgICAgIC8vIElzIHRo
aXMgZmxvYXRpbmcgaW50cnVzaXZlIG9uIHRoaXMgcG9zaXRpb24/Ci0gICAgICAgICAgICBpZiAo
Ym90dG9tID4gdmVydGljYWxQb3NpdGlvbikKKyAgICAgICAgICAgIGF1dG8gcmVjdCA9IG1fZmxv
YXRzWyppbmRleF0ucmVjdFdpdGhNYXJnaW4oKTsKKyAgICAgICAgICAgIGlmIChyZWN0LnRvcCgp
IDw9IHZlcnRpY2FsUG9zaXRpb24gJiYgcmVjdC5ib3R0b20oKSA+IHZlcnRpY2FsUG9zaXRpb24p
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OwogICAgICAgICB9CiAKICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9OwogCi0gICAgbV9jdXJyZW50Lm1fbGVmdEluZGV4ID0gZmluZEZsb2F0
aW5nQmVsb3coRmxvYXQ6OkxlZnQpOwotICAgIG1fY3VycmVudC5tX3JpZ2h0SW5kZXggPSBmaW5k
RmxvYXRpbmdCZWxvdyhGbG9hdDo6UmlnaHQpOworICAgIG1fY3VycmVudC5tX2Zsb2F0UGFpci5s
ZWZ0ID0gZmluZEZsb2F0aW5nQmVsb3coRmxvYXQ6OkxlZnQpOworICAgIG1fY3VycmVudC5tX2Zs
b2F0UGFpci5yaWdodCA9IGZpbmRGbG9hdGluZ0JlbG93KEZsb2F0OjpSaWdodCk7CiAKLSAgICBB
U1NFUlQoIW1fY3VycmVudC5tX2xlZnRJbmRleCB8fCAoKm1fY3VycmVudC5tX2xlZnRJbmRleCA8
IG1fZmxvYXRzLnNpemUoKSAmJiBtX2Zsb2F0c1sqbV9jdXJyZW50Lm1fbGVmdEluZGV4XS5pc0xl
ZnRQb3NpdGlvbmVkKCkpKTsKLSAgICBBU1NFUlQoIW1fY3VycmVudC5tX3JpZ2h0SW5kZXggfHwg
KCptX2N1cnJlbnQubV9yaWdodEluZGV4IDwgbV9mbG9hdHMuc2l6ZSgpICYmICFtX2Zsb2F0c1sq
bV9jdXJyZW50Lm1fcmlnaHRJbmRleF0uaXNMZWZ0UG9zaXRpb25lZCgpKSk7CisgICAgQVNTRVJU
KCFtX2N1cnJlbnQubV9mbG9hdFBhaXIubGVmdCB8fCAoKm1fY3VycmVudC5tX2Zsb2F0UGFpci5s
ZWZ0IDwgbV9mbG9hdHMuc2l6ZSgpICYmIG1fZmxvYXRzWyptX2N1cnJlbnQubV9mbG9hdFBhaXIu
bGVmdF0uaXNMZWZ0UG9zaXRpb25lZCgpKSk7CisgICAgQVNTRVJUKCFtX2N1cnJlbnQubV9mbG9h
dFBhaXIucmlnaHQgfHwgKCptX2N1cnJlbnQubV9mbG9hdFBhaXIucmlnaHQgPCBtX2Zsb2F0cy5z
aXplKCkgJiYgIW1fZmxvYXRzWyptX2N1cnJlbnQubV9mbG9hdFBhaXIucmlnaHRdLmlzTGVmdFBv
c2l0aW9uZWQoKSkpOwogfQogCiBib29sIEl0ZXJhdG9yOjpvcGVyYXRvcj09KGNvbnN0IEl0ZXJh
dG9yJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9h
dHMvRmxvYXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0
aW5nQ29udGV4dC5oCmluZGV4IDJmNDYwZTBhZDM1NDU5MWQ4NzMxMjllOTQ4NDQyYmUzZTJiYzc1
NzIuLjI2YjExNzc0YTg1MmRlNTQxZTBlYTA2N2MzZTY0ZTEyYjc4OGVlZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuaApAQCAtNTEsNyArNTEs
NyBAQCBwdWJsaWM6CiAgICAgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZmxvYXRpbmdTdGF0ZTsgfQogCiAgICAgUG9pbnQgcG9zaXRpb25Gb3JGbG9hdChj
b25zdCBCb3gmKSBjb25zdDsKLSAgICBPcHRpb25hbDxQb2ludD4gcG9zaXRpb25Gb3JGbG9hdEF2
b2lkaW5nKGNvbnN0IEJveCYpIGNvbnN0OworICAgIE9wdGlvbmFsPFBvaW50PiBwb3NpdGlvbkZv
ckZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmKSBjb25zdDsKIAogICAgIHN0cnVjdCBD
bGVhcmFuY2VQb3NpdGlvbiB7CiAgICAgICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBwb3NpdGlvbjsK
QEAgLTYyLDcgKzYyLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBMYXlvdXRTdGF0ZSYgbGF5
b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zsb2F0aW5nU3RhdGUubGF5b3V0U3RhdGUoKTsg
fQogCi0gICAgdm9pZCBmbG9hdGluZ1Bvc2l0aW9uKEZsb2F0QXZvaWRlciYpIGNvbnN0OworICAg
IHZvaWQgZmluZFBvc2l0aW9uRm9yRmxvYXRCb3goRmxvYXRCb3gmKSBjb25zdDsKKyAgICB2b2lk
IGZpbmRQb3NpdGlvbkZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChGbG9hdEF2b2lkZXImKSBjb25z
dDsKIAogICAgIEZsb2F0aW5nU3RhdGUmIG1fZmxvYXRpbmdTdGF0ZTsKIH07CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWNiYmUyNWFlZTAxOGM3
MGFkMTNjOTdmOTY3OTJkMTQ1MTg5YzY3Ny4uZTE3OGY4N2MwOTY3MDhkOGY0MmY5ZGM3YTUxNTM4
MGQ1MDlkMzY4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTAyLTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRzXSBBZGQgc3VwcG9ydCBmb3IgcGxhY2lu
ZyBmb3JtYXR0aW5nIHJvb3RzIGluLWJldHdlZW4gZmxvYXRzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTAyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL0xGQy1w
YXNzaW5nLXRlc3RzLnR4dDoKKwogMjAxOS0wMi0yMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIERvIG5vdCBoYXJkY29kZSBXUEVC
YWNrZW5kLWZkbyBsaWJyYXJ5IG5hbWUgZm9yIGxpbmtpbmcgdGVzdHMKZGlmZiAtLWdpdCBhL1Rv
b2xzL0xheW91dFJlbG9hZGVkL21pc2MvTEZDLXBhc3NpbmctdGVzdHMudHh0IGIvVG9vbHMvTGF5
b3V0UmVsb2FkZWQvbWlzYy9MRkMtcGFzc2luZy10ZXN0cy50eHQKaW5kZXggNWFmZmMyOTJmMWQy
M2ZlNzIwNTZhNDM0M2RmMjUwZmZhMDY2MTQzMi4uY2VkMDA5ZWRkNGIyODk5NWIyMzBiMWRhNDhi
ZDg2MWNjMzRkMjNjYSAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9MRkMt
cGFzc2luZy10ZXN0cy50eHQKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9MRkMtcGFz
c2luZy10ZXN0cy50eHQKQEAgLTgxLDYgKzgxLDcgQEAgZmFzdC9ibG9jay9ibG9jay1vbmx5L2Zs
b2F0aW5nLW11bHRpcGxlLWxlZnRzLWluLWJvZHkuaHRtbAogZmFzdC9ibG9jay9ibG9jay1vbmx5
L2Zsb2F0aW5nLW11bHRpcGxlLWxlZnRzLW11bHRpcGxlLWxpbmVzLmh0bWwKIGZhc3QvYmxvY2sv
YmxvY2stb25seS9mbG9hdGluZy1tdWx0aXBsZS1sZWZ0cy5odG1sCiBmYXN0L2Jsb2NrL2Jsb2Nr
LW9ubHkvZmxvYXRpbmctd2l0aC1uZXctYmxvY2stZm9ybWF0dGluZy1jb250ZXh0Lmh0bWwKK2Zh
c3QvYmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5kLWJsb2NrLWZvcm1hdHRpbmctcm9vdHMuaHRt
bAogZmFzdC9ibG9jay9ibG9jay1vbmx5L2luZmxvdy1taW4tbWF4LWhlaWdodC5odG1sCiBmYXN0
L2Jsb2NrL2Jsb2NrLW9ubHkvaW5mbG93LW1pbi1tYXgtd2lkdGguaHRtbAogZmFzdC9ibG9jay9i
bG9jay1vbmx5L21hcmdpbi1jb2xsYXBzZS1ib3R0b20tYm90dG9tLmh0bWwKQEAgLTg0Myw5ICs4
NDQsMTAgQEAgY3NzMi4xLzIwMTEwMzIzL2Zsb2F0LXJlcGxhY2VkLXdpZHRoLTAwNC5odG0KIGNz
czIuMS8yMDExMDMyMy9mbG9hdC1yZXBsYWNlZC13aWR0aC0wMDUuaHRtCiBjc3MyLjEvMjAxMTAz
MjMvZmxvYXQtcmVwbGFjZWQtd2lkdGgtMDA2Lmh0bQogY3NzMi4xLzIwMTEwMzIzL2Zsb2F0LXJl
cGxhY2VkLXdpZHRoLTAxMS5odG0KLWNzczIuMS8yMDExMDMyMy9mbG9hdHMtd3JhcC10b3AtYmVs
b3ctYmZjLTAwMmwuaHRtCiBjc3MyLjEvMjAxMTAzMjMvZmxvYXRzLTAwMS5odG1sCiBjc3MyLjEv
MjAxMTAzMjMvZmxvYXRzLTEwMi5odG1sCitjc3MyLjEvMjAxMTAzMjMvZmxvYXRzLXdyYXAtdG9w
LWJlbG93LWJmYy0wMDJsLmh0bQorY3NzMi4xLzIwMTEwMzIzL2Zsb2F0cy13cmFwLXRvcC1iZWxv
dy1iZmMtMDAyci5odG0KIGNzczIuMS8yMDExMDMyMy9pbmxpbmUtYmxvY2stbm9uLXJlcGxhY2Vk
LXdpZHRoLTAwMS5odG0KIGNzczIuMS8yMDExMDMyMy9pbmxpbmUtYmxvY2stbm9uLXJlcGxhY2Vk
LXdpZHRoLTAwMi5odG0KIGNzczIuMS8yMDExMDMyMy9pbmxpbmUtYmxvY2stbm9uLXJlcGxhY2Vk
LXdpZHRoLTAwMy5odG0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzlkMzQxMGEyMDk1M2Q2ZGE3Y2MwNGQxMWJlMGUwOGI0
YjQyNGI5Li5mN2IwODk3OWE2NjVlZTU0OWIyZDcwM2FhZjYyOWZlMTZiM2QyYjI1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTktMDItMjEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtGbG9hdHNdIEFkZCBzdXBwb3J0IGZvciBwbGFjaW5nIGZvcm1h
dHRpbmcgcm9vdHMgaW4tYmV0d2VlbiBmbG9hdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ5MDIKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0
aSBLb2l2aXN0by4KKworICAgICAgICAqIGZhc3QvYmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5k
LWJsb2NrLWZvcm1hdHRpbmctcm9vdHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ibG9jay9ibG9jay1vbmx5L2Zsb2F0cy1hbmQtYmxvY2stZm9ybWF0dGluZy1yb290cy5o
dG1sOiBBZGRlZC4KKwogMjAxOS0wMi0yMSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIEdhcmRlbmluZyBmb3IgdW5leHBlY3RlZCBwYXNzZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5k
LWJsb2NrLWZvcm1hdHRpbmctcm9vdHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
YmxvY2svYmxvY2stb25seS9mbG9hdHMtYW5kLWJsb2NrLWZvcm1hdHRpbmctcm9vdHMtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MmEyMGUxMjBmZWFhODg0ODJhYzJmYWE1YzI3MGM3NmY3YmYx
ZjI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9ibG9jay1vbmx5
L2Zsb2F0cy1hbmQtYmxvY2stZm9ybWF0dGluZy1yb290cy1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsNTEgQEAKKzxzdHlsZT4KKy5jb250YWluZXIgeworCXdpZHRoOiAzMDBweDsKKwloZWlnaHQ6
IDEwMHB4OworfQorCitkaXYgeworCXBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKworLmZsb2F0IHsK
KwliYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisucm9vdCB7CisJYmFja2dyb3VuZC1jb2xv
cjogcmVkOworfQorPC9zdHlsZT4KKworPGRpdiBjbGFzcz1jb250YWluZXI+Cis8ZGl2IGNsYXNz
PWZsb2F0IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBj
bGFzcz1mbG9hdCBzdHlsZT0idG9wOiAtMjBweDsgbGVmdDogMTkwcHg7IHdpZHRoOiAxMTBweDsg
aGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJ0b3A6IC0yMHB4
OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBz
dHlsZT0idG9wOiAtMjBweDsgbGVmdDogMTkwcHg7IHdpZHRoOiAxMTBweDsgaGVpZ2h0OiAyMHB4
OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPXJvb3QgIHN0eWxlPSJ0b3A6IC04MHB4OyBsZWZ0OiAxMDBw
eDsgd2lkdGg6IDkwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xh
c3M9Y29udGFpbmVyPgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIwcHg7IGxl
ZnQ6IDE5MHB4OyB3aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFz
cz1mbG9hdCBzdHlsZT0idG9wOiAtMjBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48
L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9InRvcDogLTIwcHg7IGxlZnQ6IDE5MHB4OyB3
aWR0aDogMTEwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1yb290ICBzdHls
ZT0idG9wOiAtNjBweDsgbGVmdDogMjAwcHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAyMHB4OyI+
PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz1jb250YWluZXI+Cis8ZGl2IGNsYXNzPWZsb2F0
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1m
bG9hdCBzdHlsZT0idG9wOiAtMjBweDsgbGVmdDogMTkwcHg7IHdpZHRoOiAxMTBweDsgaGVpZ2h0
OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJ0b3A6IC0yMHB4OyB3aWR0
aDogMjAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0i
dG9wOiAtMjBweDsgbGVmdDogMTkwcHg7IHdpZHRoOiAxMTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9k
aXY+Cis8ZGl2IGNsYXNzPXJvb3QgIHN0eWxlPSJ0b3A6IC00MHB4OyBsZWZ0OiAwcHg7IHdpZHRo
OiAxOTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz1jb250
YWluZXI+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMjBw
eDsiPjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0idG9wOiAtMjBweDsgbGVmdDogMTkw
cHg7IHdpZHRoOiAxMTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0
IHN0eWxlPSJ0b3A6IC0yMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
PGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0idG9wOiAtMjBweDsgbGVmdDogMTkwcHg7IHdpZHRoOiAx
MTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPXJvb3QgIHN0eWxlPSJ0b3A6
IC0yMHB4OyBsZWZ0OiAwcHg7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8
L2Rpdj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9ibG9jay1vbmx5L2Zs
b2F0cy1hbmQtYmxvY2stZm9ybWF0dGluZy1yb290cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9ibG9jay1vbmx5L2Zsb2F0cy1hbmQtYmxvY2stZm9ybWF0dGluZy1yb290cy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMzNzMyZGVkZmZiMGMzYzRmZmE3OTFiMTQ3MGNmODVhM2ZkOWUwZWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Jsb2NrLW9ubHkvZmxvYXRzLWFu
ZC1ibG9jay1mb3JtYXR0aW5nLXJvb3RzLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPHN0eWxlPgor
LmNvbnRhaW5lciB7CisJd2lkdGg6IDMwMHB4OworCWhlaWdodDogMTAwcHg7Cit9CisKKy5mbG9h
dCB7CisJYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKworLnJvb3QgeworCW92ZXJmbG93OiBo
aWRkZW47CisJYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorPC9zdHlsZT4KKworPGRpdiBjbGFz
cz1jb250YWluZXI+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9ImZs
b2F0OiByaWdodDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xh
c3M9ZmxvYXQgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsi
PjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTEw
cHg7IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1yb290IHN0eWxlPSJ3aWR0aDog
OTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz1jb250YWlu
ZXI+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogbGVmdDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQgc3R5bGU9ImZsb2F0OiByaWdo
dDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ZmxvYXQg
c3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsiPjwvZGl2Pgor
PGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTEwcHg7IGhlaWdo
dDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1yb290IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDogMjBweDsiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9Y29udGFpbmVyPgorPGRp
diBjbGFzcz1mbG9hdCBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAy
MHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRo
OiAxMTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0IHN0eWxlPSJm
bG9hdDogbGVmdDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwcHg7Ij48L2Rpdj4KKzxkaXYgY2xh
c3M9ZmxvYXQgc3R5bGU9ImZsb2F0OiByaWdodDsgd2lkdGg6IDExMHB4OyBoZWlnaHQ6IDIwcHg7
Ij48L2Rpdj4KKzxkaXYgY2xhc3M9cm9vdCBzdHlsZT0id2lkdGg6IDE5MHB4OyBoZWlnaHQ6IDIw
cHg7Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPWNvbnRhaW5lcj4KKzxkaXYgY2xhc3M9
ZmxvYXQgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMjBweDsiPjwv
ZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMTEwcHg7
IGhlaWdodDogMjBweDsiPjwvZGl2PgorPGRpdiBjbGFzcz1mbG9hdCBzdHlsZT0iZmxvYXQ6IGxl
ZnQ7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+Cis8ZGl2IGNsYXNzPWZsb2F0
IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHdpZHRoOiAxMTBweDsgaGVpZ2h0OiAyMHB4OyI+PC9kaXY+
Cis8ZGl2IGNsYXNzPXJvb3Qgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAyMHB4OyI+PC9k
aXY+Cis8L2Rpdj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>