<?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>237131</bug_id>
          
          <creation_ts>2022-02-23 23:25:37 -0800</creation_ts>
          <short_desc>REGRESSION(r290284): It is preventing the fuzzer from finding other bugs</short_desc>
          <delta_ts>2022-02-23 23:31:19 -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>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>
          
          <blocked>236747</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>heycam</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845524</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-02-23 23:25:37 -0800</bug_when>
    <thetext>https://commits.webkit.org/r290284 introduced a regression:
It is preventing the fuzzer from finding other bugs

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>1845526</commentid>
    <comment_count>1</comment_count>
      <attachid>453078</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-02-23 23:25:49 -0800</bug_when>
    <thetext>Created attachment 453078
REVERT of r290284

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><long_desc isprivate="0" >
    <commentid>1845529</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-23 23:30:02 -0800</bug_when>
    <thetext>Committed r290414 (247722@main): &lt;https://commits.webkit.org/247722@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453078.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845530</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-23 23:31:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/89402265&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453078</attachid>
            <date>2022-02-23 23:25:49 -0800</date>
            <delta_ts>2022-02-23 23:30:04 -0800</delta_ts>
            <desc>REVERT of r290284</desc>
            <filename>bug-237131-20220223232548.patch</filename>
            <type>text/plain</type>
            <size>35416</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTRlZTA3OWEwNDZlNzkw
MzQwYmU2MTg5ZTY4MDNiODVmZDIxYTE4OS4uMWZhNmRhNDdhYmU2NjRhZjg5NzMyNzBhZGJlODM4
M2M0ZmZiYzRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTIzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI5MDI4NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNzEzMQorCisgICAgICAgIEl0IGlzIHByZXZlbnRpbmcgdGhlIGZ1enpl
ciBmcm9tIGZpbmRpbmcgb3RoZXIgYnVncworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoK
KworICAgICAgICAiTWFrZSBpbnB1dCBlbGVtZW50IFVBIHNoYWRvdyB0cmVlIGNyZWF0aW9uIGxh
enkiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
NDcKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI5MDI4NAorCiAyMDIyLTAy
LTIzICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIG9mIHNob3dN
b2RhbERpYWxvZyBzaG91bGQgYXBwZWFyIGFzIGEgd2FybmluZyBpbiBXSSBjb25zb2xlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXgg
Y2Y3Y2MzMWYzNDJmN2I1YTc0NzQ3NWU0Y2NhMTg5YmQxM2E3NDEzZS4uY2JmNjEyMDBlZTY5MTYx
Y2FmYTU2OTE5ZTdlZjljMWFmZGEzNWM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKICAg
ICB9CiB9CiAKLXZvaWQgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0
cmVlKCkKK3ZvaWQgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
QW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KGJvb2wpCiB7CiAgICAgQVNTRVJU
KG5lZWRzU2hhZG93U3VidHJlZSgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKQEAgLTMzNCw5
ICszMzQsNiBAQCB2b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1
YnRyZWUoKQogdm9pZCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZh
bHVlKCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKLQotICAgIGNyZWF0ZVNoYWRvd1N1YnRy
ZWVJZk5lZWRlZCgpOwotCiAgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpIHsKICAgICAg
ICAgYXV0byBub2RlID0gZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKTsKICAgICAgICAgaWYgKCFpczxIVE1MRWxlbWVudD4obm9kZSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBiNjg1ZjhlMTlmZmI0
ODg1NWY0ZTJmZTgyZTNiMTIxYmU0OTNhNzNkLi4zZWI2ZDU1ZjFjYTM5ZjExOWJjMDUyNzVlY2Fj
MWUwZTVlMWIyNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNNb3Vz
ZUZvY3VzYWJsZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2
ZW50KEV2ZW50Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmlu
YWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVu
dEVkaXRhYmlsaXR5KGJvb2wpIGZpbmFsOwogICAgIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUo
KSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCkgZmluYWw7CiAgICAgYm9v
bCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuY3BwCmluZGV4IGYxMTllODJiMzc3ZGRiNDFmY2Q5ZThiOTNhYTdmY2VmYTBm
NWRjMGQuLjA2NjUzZmQzY2Q1Njc1OTE3MWY1ZDA2YTZiNTNiZGJmY2IxMTdkNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgQ29sb3Ig
Q29sb3JJbnB1dFR5cGU6OnZhbHVlQXNDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIHBhcnNlU2lt
cGxlQ29sb3JWYWx1ZShlbGVtZW50KCktPnZhbHVlKCkpLnZhbHVlKCk7CiB9CiAKLXZvaWQgQ29s
b3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQordm9pZCBDb2xvcklucHV0VHlwZTo6
Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShi
b29sKQogewogICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKaW5kZXggMTE2ZGFiMTE3
Yjk3NTliMjM2MTczNzBlZDQ4Mzc5YThjNzdhMzM3OS4uOWI1NzBkMDg4MDIyZDU0ZDc5ZmVmNDVi
ODAwZDYwNTI0Zjk0OTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaApAQCAt
NjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0
IGZpbmFsOwogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgU3Ry
aW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVl
QW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KGJvb2wpIGZpbmFsOwogICAgIHZv
aWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpIGZpbmFsOwogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJikgZmluYWw7CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50
JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBlYTdkZmFj
ZjYyYjc4MjU1OWQ2NWUzYmZiNmIzZDBjY2RmZTI1MjFjLi5lODM4ZTVjODc0YmZhZDgyNmUyNzE4
YTcxZGU4MTFhNDYxY2VmYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAK
QEAgLTI2MiwyMCArMjYyLDE4IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKICAgICBlbGVtZW50KCktPmlu
dmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKK3ZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShib29sKQogewogICAgIEFTU0VS
VChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKLQotICAgIGF1dG8gYnV0dG9uID0gZWxlbWVu
dCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUo
ZWxlbWVudCgpLT5kb2N1bWVudCgpKSA6IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVt
ZW50KCktPmRvY3VtZW50KCkpOwotICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgp
LT5hcHBlbmRDaGlsZChDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIs
IGJ1dHRvbik7Ci0gICAgZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKKyAgICBlbGVtZW50KCktPnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFu
Z2U6OlNvdXJjZTo6UGFyc2VyLCBlbGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25F
bGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkpOiBVcGxvYWRC
dXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSk7CiB9CiAKIHZvaWQg
RmlsZUlucHV0VHlwZTo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQogewogICAgIEFTU0VSVChlbGVt
ZW50KCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAKICAgICBhdXRv
IHJvb3QgPSBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICBpZiAoIXJvb3Qp
CkBAIC0yODksNiArMjg3LDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gbXVsdGlwbGVB
dHRyKSB7CiAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoZWxlbWVudC0+c2hhZG93Um9vdCgpKTsKICAgICAgICAgICAgIGlm
IChhdXRvIHJvb3QgPSBlbGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290KCkpIHsKICAgICAgICAg
ICAgICAgICBpZiAoUmVmUHRyIGJ1dHRvbiA9IGNoaWxkcmVuT2ZUeXBlPFVwbG9hZEJ1dHRvbkVs
ZW1lbnQ+KCpyb290KS5maXJzdCgpKQogICAgICAgICAgICAgICAgICAgICBidXR0b24tPnNldFZh
bHVlKGVsZW1lbnQtPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xh
YmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuaAppbmRleCA5MTU3YjE3OTAyOTIwMGYzYzQzMDg4Y2I2YTRjNmJlNTVlMDAwMjNh
Li43YjJjMDk2NjFkNTVhMzU0Mjk0NDU2YjFjYmU2NGQ4NDBkYjU3MWZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICAgICBJY29uKiBpY29uKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0
cmVlKCkgZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJU
ZXh0RWxlbWVudEVkaXRhYmlsaXR5KGJvb2wpIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZWRTdGF0
ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGZpbmFsOwogICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZGQxNGIzYzgz
YWVlODA3ZGNkYTdjNDJlYWFmZTQ5NmYzMzg2M2YwNC4uZjEwYzQ4M2E1NDZjODA5NWIxYzIzOTFh
ZmU4ZDRiMzc3MDczZGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC0xMzYsOCArMTM2LDggQEAgSFRNTElucHV0RWxlbWVudDo6SFRNTElucHV0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICNlbmRpZgog
ICAgICwgbV9pc1NwZWxsY2hlY2tEaXNhYmxlZEV4Y2VwdFRleHRSZXBsYWNlbWVudChmYWxzZSkK
IHsKLSAgICAvLyBtX2lucHV0VHlwZSBpcyBsYXppbHkgY3JlYXRlZCB3aGVuIGNvbnN0cnVjdGVk
IGJ5IHRoZSBwYXJzZXIgdG8gYXZvaWQgY29uc3RydWN0aW5nIHVubmVjZXNzYXJpbHkgYSB0ZXh0
IGlucHV0VHlwZSwKLSAgICAvLyBqdXN0IHRvIGRlc3Ryb3kgdGhlbSB3aGVuIHRoZSB8dHlwZXwg
YXR0cmlidXRlIGdldHMgc2V0IGJ5IHRoZSBwYXJzZXIgdG8gc29tZXRoaW5nIGVsc2UgdGhhbiAn
dGV4dCcuCisgICAgLy8gbV9pbnB1dFR5cGUgaXMgbGF6aWx5IGNyZWF0ZWQgd2hlbiBjb25zdHJ1
Y3RlZCBieSB0aGUgcGFyc2VyIHRvIGF2b2lkIGNvbnN0cnVjdGluZyB1bm5lY2Vzc2FyaWx5IGEg
dGV4dCBpbnB1dFR5cGUgYW5kCisgICAgLy8gaXRzIHNoYWRvdyBzdWJ0cmVlLCBqdXN0IHRvIGRl
c3Ryb3kgdGhlbSB3aGVuIHRoZSB8dHlwZXwgYXR0cmlidXRlIGdldHMgc2V0IGJ5IHRoZSBwYXJz
ZXIgdG8gc29tZXRoaW5nIGVsc2UgdGhhbiAndGV4dCcuCiAgICAgaWYgKCFjcmVhdGVkQnlQYXJz
ZXIpCiAgICAgICAgIG1faW5wdXRUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGVUZXh0KCp0aGlzKTsK
IApAQCAtMTQ3LDcgKzE0NywxNCBAQCBIVE1MSW5wdXRFbGVtZW50OjpIVE1MSW5wdXRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogCiBSZWY8SFRN
TElucHV0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MSW5w
dXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtLCBjcmVhdGVkQnlQYXJzZXIpKTsKKyAg
ICBib29sIHNob3VsZENyZWF0ZVNoYWRvd1Jvb3RMYXppbHkgPSBjcmVhdGVkQnlQYXJzZXI7Cisg
ICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0RWxlbWVudCA9IGFkb3B0UmVmKCpuZXcgSFRN
TElucHV0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3JlYXRlZEJ5UGFyc2VyKSk7
CisgICAgaWYgKCFzaG91bGRDcmVhdGVTaGFkb3dSb290TGF6aWx5KSB7CisgICAgICAgIEFTU0VS
VChpbnB1dEVsZW1lbnQtPm1faW5wdXRUeXBlLT5uZWVkc1NoYWRvd1N1YnRyZWUoKSk7CisgICAg
ICAgIGlucHV0RWxlbWVudC0+Y3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCgpOworICAgICAgICBp
bnB1dEVsZW1lbnQtPmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50
RWRpdGFiaWxpdHkoKTsKKyAgICB9CisgICAgcmV0dXJuIGlucHV0RWxlbWVudDsKIH0KIAogSFRN
TEltYWdlTG9hZGVyJiBIVE1MSW5wdXRFbGVtZW50OjplbnN1cmVJbWFnZUxvYWRlcigpCkBAIC0x
NTcsNiArMTY0LDEyIEBAIEhUTUxJbWFnZUxvYWRlciYgSFRNTElucHV0RWxlbWVudDo6ZW5zdXJl
SW1hZ2VMb2FkZXIoKQogICAgIHJldHVybiAqbV9pbWFnZUxvYWRlcjsKIH0KIAordm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVu
dEVkaXRhYmlsaXR5KCkKK3sKKyAgICBSZWY8SW5wdXRUeXBlPiBwcm90ZWN0ZWRJbnB1dFR5cGUo
Km1faW5wdXRUeXBlKTsKKyAgICBwcm90ZWN0ZWRJbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRy
ZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoaXNJbm5lclRleHRFbGVtZW50
RWRpdGFibGUoKSk7Cit9CisKIEhUTUxJbnB1dEVsZW1lbnQ6On5IVE1MSW5wdXRFbGVtZW50KCkK
IHsKICAgICBpZiAobmVlZHNTdXNwZW5zaW9uQ2FsbGJhY2soKSkKQEAgLTE5OSwxMSArMjEyLDYg
QEAgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6
aW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pbm5lclRl
eHRFbGVtZW50KCk7CiB9CiAKLVJlZlB0cjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IEhU
TUxJbnB1dEVsZW1lbnQ6OmlubmVyVGV4dEVsZW1lbnRDcmVhdGluZ1NoYWRvd1N1YnRyZWVJZk5l
ZWRlZCgpCi17Ci0gICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pbm5lclRleHRFbGVtZW50Q3JlYXRp
bmdTaGFkb3dTdWJ0cmVlSWZOZWVkZWQoKTsKLX0KLQogSFRNTEVsZW1lbnQqIEhUTUxJbnB1dEVs
ZW1lbnQ6OmlubmVyQmxvY2tFbGVtZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5
cGUtPmlubmVyQmxvY2tFbGVtZW50KCk7CkBAIC01NzIsNyArNTgwLDEwIEBAIHZvaWQgSFRNTElu
cHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAgICAgbV9pbnB1dFR5cGUtPmRldGFjaEZyb21FbGVt
ZW50KCk7CiAKICAgICBtX2lucHV0VHlwZSA9IFdURk1vdmUobmV3VHlwZSk7Ci0gICAgbV9pbnB1
dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWVJZk5lZWRlZCgpOworICAgIGlmIChtX2lucHV0VHlw
ZS0+bmVlZHNTaGFkb3dTdWJ0cmVlKCkpIHsKKyAgICAgICAgZW5zdXJlVXNlckFnZW50U2hhZG93
Um9vdCgpOworICAgICAgICBjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmlsaXR5KCk7CisgICAgfQogCiAgICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFs
aWRpdHkoKTsKIApAQCAtNzI1LDEyICs3MzYsMTkgQEAgaW5saW5lIHZvaWQgSFRNTElucHV0RWxl
bWVudDo6aW5pdGlhbGl6ZUlucHV0VHlwZSgpCiAgICAgY29uc3QgQXRvbVN0cmluZyYgdHlwZSA9
IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odHlwZUF0dHIpOwogICAgIGlmICh0eXBl
LmlzTnVsbCgpKSB7CiAgICAgICAgIG1faW5wdXRUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGVUZXh0
KCp0aGlzKTsKKyAgICAgICAgQVNTRVJUKG1faW5wdXRUeXBlLT5uZWVkc1NoYWRvd1N1YnRyZWUo
KSk7CisgICAgICAgIGNyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAgICAgY3JlYXRl
U2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpOwogICAg
ICAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgbV9oYXNUeXBlID0gdHJ1ZTsKICAgICBtX2lucHV0VHlwZSA9IElucHV0VHlw
ZTo6Y3JlYXRlKCp0aGlzLCB0eXBlKTsKKyAgICBpZiAobV9pbnB1dFR5cGUtPm5lZWRzU2hhZG93
U3VidHJlZSgpKSB7CisgICAgICAgIGNyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAg
ICAgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0
eSgpOworICAgIH0KICAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOwogICAgIHJl
Z2lzdGVyRm9yU3VzcGVuc2lvbkNhbGxiYWNrSWZOZWVkZWQoKTsKICAgICBydW5Qb3N0VHlwZVVw
ZGF0ZVRhc2tzKCk7CkBAIC0xNTgxLDggKzE1OTksMTAgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkKICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpOwogICAgIGlmIChpc0luVHJlZVNjb3BlKCkgJiYg
IWZvcm0oKSkKICAgICAgICAgYWRkVG9SYWRpb0J1dHRvbkdyb3VwKCk7Ci0gICAgaWYgKGlzQ29u
bmVjdGVkKCkpCi0gICAgICAgIG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVk
ZWQoKTsKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBpZiAoaXNDb25uZWN0ZWQo
KSAmJiBtX2hhc05vbkVtcHR5TGlzdCkKKyAgICAgICAgZGF0YUxpc3RNYXlIYXZlQ2hhbmdlZCgp
OworI2VuZGlmCiB9CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3Rv
cihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1v
dmVkVHJlZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggOWY1MTg1
YzBmODU5M2Y2NTkyYmRkY2JlNTRkOGNkOGU3MTQ0OTM1MS4uOTMwNzI5Yzk1NmI0Y2ZkNDQ0MGZi
MDg5MjgxODk1YzUwYzZiZDMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgSFRNTEVsZW1lbnQqIGNvbnRhaW5l
ckVsZW1lbnQoKSBjb25zdDsKICAgICAKICAgICBSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRF
bGVtZW50PiBpbm5lclRleHRFbGVtZW50KCkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudD4gaW5uZXJUZXh0RWxlbWVudENyZWF0aW5nU2hhZG93U3Vi
dHJlZUlmTmVlZGVkKCkgZmluYWw7CiAgICAgUmVuZGVyU3R5bGUgY3JlYXRlSW5uZXJUZXh0U3R5
bGUoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKIAogICAgIEhUTUxFbGVtZW50KiBpbm5lckJs
b2NrRWxlbWVudCgpIGNvbnN0OwpAQCAtMzU3LDggKzM1Niw2IEBAIHB1YmxpYzoKIAogICAgIFN0
cmluZyByZXN1bHRGb3JEaWFsb2dTdWJtaXQoKSBjb25zdCBmaW5hbDsKIAotICAgIGJvb2wgaXNJ
bm5lclRleHRFbGVtZW50RWRpdGFibGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAhaGFzQXV0b0Zp
bGxTdHJvbmdQYXNzd29yZEJ1dHRvbigpICYmIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpp
c0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpOyB9Ci0KIHByb3RlY3RlZDoKICAgICBIVE1MSW5w
dXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVu
dCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIApAQCAtMzc0LDYgKzM3MSw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2Rl
JikgZmluYWw7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9j
dW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7CiAKKyAgICB2b2lkIGNyZWF0ZVNo
YWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKKwogICAg
IGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc0N1c3RvbUZv
Y3VzTG9naWMoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5
Ym9hcmRFdmVudCopIGNvbnN0IGZpbmFsOwpAQCAtMzg1LDYgKzM4NCw4IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3QgZmluYWw7CiAKKyAgICBib29s
IGlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIWhhc0F1
dG9GaWxsU3Ryb25nUGFzc3dvcmRCdXR0b24oKSAmJiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6aXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUoKTsgfQorCiAgICAgYm9vbCBjYW5UcmlnZ2Vy
SW1wbGljaXRTdWJtaXNzaW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gaXNUZXh0RmllbGQoKTsg
fQogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBhYTUy
ZjAwZGI1ZGMwNmRkMzA0ODE2ZTEzMzE1NWE3MzlhNGExMjNiLi42NjhkZDdmOWRmZDZhNTg3Yjk4
MmFiOTU0NGJmOTYxZTUwNjMyZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKQEAgLTM0NSwxMSArMzQ1LDYgQEAgUmVmUHRyPFRleHRDb250cm9sSW5u
ZXJUZXh0RWxlbWVudD4gSFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVudCgpIGNv
bnMKICAgICByZXR1cm4gY2hpbGRyZW5PZlR5cGU8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50
Pigqcm9vdCkuZmlyc3QoKTsKIH0KIAotUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dD4gSFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVudENyZWF0aW5nU2hhZG93U3Vi
dHJlZUlmTmVlZGVkKCkKLXsKLSAgICByZXR1cm4gaW5uZXJUZXh0RWxlbWVudCgpOwotfQotCiB2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlbmRlcmVyV2lsbEJlRGVzdHJveWVkKCkKIHsKICAg
ICB1cGRhdGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
aAppbmRleCAwMDc3ZjAyNTMyNmQ3OGYwMjFkYWMwY2IyNzFkOWM5NjhmY2NiYWRlLi4zYmU1YWU5
NmMyMzljNTZkYTI5MjJkOGI1YmFkODlmNWU2MGViMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtNTcsNyArNTcsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1ZhbGlkVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgCiAgICAgV0VCQ09SRV9F
WFBPUlQgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gaW5uZXJUZXh0RWxlbWVu
dCgpIGNvbnN0IGZpbmFsOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxUZXh0Q29udHJvbElu
bmVyVGV4dEVsZW1lbnQ+IGlubmVyVGV4dEVsZW1lbnRDcmVhdGluZ1NoYWRvd1N1YnRyZWVJZk5l
ZWRlZCgpIGZpbmFsOwogICAgIFJlbmRlclN0eWxlIGNyZWF0ZUlubmVyVGV4dFN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJikgZmluYWw7CiAgICAgdm9pZCBjb3B5Tm9uQXR0cmlidXRlUHJvcGVydGll
c0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3OTBkZDBjZjRj
ODZlZDlkZmIxODZiMDI5N2FmZThkNGE5OTA1NmUzLi45NjRjYzFhMjFkMDM1MWUwNTk1ZDdiN2Zl
YmM4OWY2MjFmYzBmMTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMTU3LDkgKzE1Nyw3IEBAIHZvaWQgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OmZvcndhcmRFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYg
KGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50IHx8IGV2ZW50LnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuZm9jdXNFdmVudCkKICAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGF1
dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0RWxlbWVudCgpKQotICAgICAgICBpbm5lclRleHQtPmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgIGlubmVyVGV4dEVsZW1lbnQoKS0+ZGVmYXVs
dEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKIHN0YXRpYyBib29sIGlzTm90TGluZUJyZWFrKFVD
aGFyIGNoKSB7IHJldHVybiBjaCAhPSBuZXdsaW5lQ2hhcmFjdGVyICYmIGNoICE9IGNhcnJpYWdl
UmV0dXJuOyB9CkBAIC0zMTEsNyArMzA5LDcgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBUZXh0RmllbGQKICAg
ICBlbmQgPSBzdGQ6Om1heChlbmQsIDApOwogICAgIHN0YXJ0ID0gc3RkOjptaW4oc3RkOjptYXgo
c3RhcnQsIDApLCBlbmQpOwogCi0gICAgYXV0byBpbm5lclRleHQgPSBpbm5lclRleHRFbGVtZW50
Q3JlYXRpbmdTaGFkb3dTdWJ0cmVlSWZOZWVkZWQoKTsKKyAgICBhdXRvIGlubmVyVGV4dCA9IGlu
bmVyVGV4dEVsZW1lbnQoKTsKICAgICBib29sIGhhc0ZvY3VzID0gZG9jdW1lbnQoKS5mb2N1c2Vk
RWxlbWVudCgpID09IHRoaXM7CiAgICAgaWYgKCFoYXNGb2N1cyAmJiBpbm5lclRleHQpIHsKICAg
ICAgICAgaWYgKCFpc0Nvbm5lY3RlZCgpKSB7CkBAIC0zNzEsNyArMzY5LDYgQEAgaW50IEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjppbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHAKIAogVmlzaWJsZVBvc2l0aW9uIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50Ojp2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQgaW5kZXgpIGNvbnN0CiB7Ci0gICAgQVNT
RVJUKGlubmVyVGV4dEVsZW1lbnQoKSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uID0g
cG9zaXRpb25Gb3JJbmRleChpbm5lclRleHRFbGVtZW50KCkuZ2V0KCksIGluZGV4KTsKICAgICBB
U1NFUlQoaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pID09IGluZGV4KTsKICAgICBy
ZXR1cm4gcG9zaXRpb247CkBAIC01OTAsNyArNTg3LDcgQEAgc3RhdGljIFN0cmluZyBpbm5lclRl
eHRWYWx1ZUZyb20oVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50JiBpbm5lclRleHQpCiB2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbHVlKQogewogICAgIExheW91dERpc2FsbG93ZWRTY29wZSBsYXlvdXREaXNhbGxvd2Vk
U2NvcGUoTGF5b3V0RGlzYWxsb3dlZFNjb3BlOjpSZWFzb246OlBlcmZvcm1hbmNlT3B0aW1pemF0
aW9uKTsKLSAgICBhdXRvIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1lbnRDcmVhdGluZ1NoYWRv
d1N1YnRyZWVJZk5lZWRlZCgpOworICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0RWxlbWVu
dCgpOwogICAgIGlmICghaW5uZXJUZXh0KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCBhMDMxZTE0
NjhlYzFjODI0ZWEwNWNmMTVmY2QxMzI5MzMzNmRjMjIyLi45OTg2YWM1NTQwOGViYTcwM2E1NzYy
MjUxODBmZjFkZmE0NmM5ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC04OSw3ICs4OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgUmVmUHRyPFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudD4gaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsKLSAg
ICB2aXJ0dWFsIFJlZlB0cjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGlubmVyVGV4dEVs
ZW1lbnRDcmVhdGluZ1NoYWRvd1N1YnRyZWVJZk5lZWRlZCgpID0gMDsKICAgICB2aXJ0dWFsIFJl
bmRlclN0eWxlIGNyZWF0ZUlubmVyVGV4dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJikgPSAwOwog
CiAgICAgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKGJvb2wgc2hvdWxkRmlyZVNlbGVjdEV2ZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA3NGUwZGRlYjE4YzBiNjAyMGU4NWM5MTQy
MWExNGI2MmZiN2RkOWVjLi43YTA1MDUwMmIzZWFiZWQ1Y2QxNzFmZWY4ZjNmNmI1MTk2ZWEzMzJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01NjEsNyArNTYxLDcgQEAgdm9pZCBJ
bnB1dFR5cGU6OmJsdXIoKQogICAgIGVsZW1lbnQoKS0+ZGVmYXVsdEJsdXIoKTsKIH0KIAotdm9p
ZCBJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQordm9pZCBJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoYm9vbCkK
IHsKIH0KIApAQCAtMTExOSwyNiArMTExOSwxMCBAQCBSZWZQdHI8VGV4dENvbnRyb2xJbm5lclRl
eHRFbGVtZW50PiBJbnB1dFR5cGU6OmlubmVyVGV4dEVsZW1lbnQoKSBjb25zdAogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1SZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBJbnB1
dFR5cGU6OmlubmVyVGV4dEVsZW1lbnRDcmVhdGluZ1NoYWRvd1N1YnRyZWVJZk5lZWRlZCgpCi17
Ci0gICAgY3JlYXRlU2hhZG93U3VidHJlZUlmTmVlZGVkKCk7Ci0gICAgcmV0dXJuIGlubmVyVGV4
dEVsZW1lbnQoKTsKLX0KLQogU3RyaW5nIElucHV0VHlwZTo6cmVzdWx0Rm9yRGlhbG9nU3VibWl0
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudCgp
LT52YWx1ZSgpOwogfQogCi12b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUlmTmVl
ZGVkKCkKLXsKLSAgICBpZiAobV9oYXNDcmVhdGVkU2hhZG93U3VidHJlZSB8fCAhbmVlZHNTaGFk
b3dTdWJ0cmVlKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0
aGlzIH07Ci0gICAgZWxlbWVudCgpLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7Ci0gICAg
bV9oYXNDcmVhdGVkU2hhZG93U3VidHJlZSA9IHRydWU7Ci0gICAgY3JlYXRlU2hhZG93U3VidHJl
ZSgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApp
bmRleCA4MTJkNTg4YjZlZDhkMDM4OTJjNGJiM2QzZGNmMGVmMTBmNmU2OGRjLi4wNDVmZjQ1N2Zi
MzJlZTZhYjkxMDViNTNhYTIwZDY3OGM4OTMxY2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
QEAgLTIwNiw3ICsyMDYsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29u
c3Q7CiAgICAgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0OwogICAgIGJvb2wgbmVlZHNTaGFk
b3dTdWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gIW5vblNoYWRvd1Jvb3RUeXBlcy5jb250YWlucyht
X3R5cGUpOyB9Ci0gICAgYm9vbCBoYXNDcmVhdGVkU2hhZG93U3VidHJlZSgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzQ3JlYXRlZFNoYWRvd1N1YnRyZWU7IH0KIAogICAgIC8vIEZvcm0gdmFsdWUgZnVu
Y3Rpb25zLgogCkBAIC0zMDcsOCArMzA2LDcgQEAgcHVibGljOgogCiAgICAgLy8gU2hhZG93IHRy
ZWUgaGFuZGxpbmcuCiAKLSAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVJZk5lZWRlZCgpOwot
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAgdmlydHVhbCB2b2lk
IGNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHko
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiAKICAgICB2
aXJ0dWFsIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbnVs
bHB0cjsgfQpAQCAtMzI1LDcgKzMyMyw2IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoREFUQUxJU1Rf
RUxFTUVOVCkKICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBkYXRhTGlzdEJ1dHRvbkVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKLSAgICBSZWZQdHI8VGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50PiBpbm5lclRleHRFbGVtZW50Q3JlYXRpbmdTaGFkb3dTdWJ0cmVl
SWZOZWVkZWQoKTsKIAogICAgIC8vIE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zLgogCkBAIC00MTYs
NyArNDEzLDYgQEAgcHJpdmF0ZToKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBhcHBseVN0ZXAoaW50
IGNvdW50LCBBbnlTdGVwSGFuZGxpbmcsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpOwogCiAgICAg
Y29uc3QgVHlwZSBtX3R5cGU7Ci0gICAgYm9vbCBtX2hhc0NyZWF0ZWRTaGFkb3dTdWJ0cmVlIHsg
ZmFsc2UgfTsKICAgICAvLyBtX2VsZW1lbnQgaXMgbnVsbCBpZiB0aGlzIElucHV0VHlwZSBpcyBu
byBsb25nZXIgYXNzb2NpYXRlZCB3aXRoIGFuIGVsZW1lbnQgKGVpdGhlciB0aGUgZWxlbWVudCBk
aWVkIG9yIGNoYW5nZWQgaW5wdXQgdHlwZSkuCiAgICAgV2Vha1B0cjxIVE1MSW5wdXRFbGVtZW50
PiBtX2VsZW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRl
eCBmOTI5NjdjNDQxNjNlMGYwNzQ1OTQ5YzFiOGI0OTM1MTI0ZjBlMzI0Li44MDlkNTg5Y2YzZDg3
MTJlYmM3MWMzMTMwYzQ0MzJkZGU4MTVlOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcApAQCAtMTMzLDEwICsxMzMsNiBAQCBTdGVwUmFuZ2UgUmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAog
dm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCYgZXZl
bnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0KLSAgICBpZiAoIWhhc0NyZWF0ZWRTaGFk
b3dTdWJ0cmVlKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChlbGVtZW50KCktPmlzRGlz
YWJsZWRGb3JtQ29udHJvbCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE1NSwxNSArMTUxLDEw
IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQm
IGV2ZW50KQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpo
YW5kbGVUb3VjaEV2ZW50KFRvdWNoRXZlbnQmIGV2ZW50KQogewotICAgIEFTU0VSVChlbGVtZW50
KCkpOwotCi0gICAgaWYgKCFoYXNDcmVhdGVkU2hhZG93U3VidHJlZSgpKQotICAgICAgICByZXR1
cm47Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHR5cGVkU2xpZGVyVGh1bWJFbGVt
ZW50KCkuaGFuZGxlVG91Y2hFdmVudChldmVudCk7CiAjZWxpZiBFTkFCTEUoVE9VQ0hfU0xJREVS
KQotCisgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgaWYgKGVsZW1lbnQoKS0+aXNEaXNhYmxl
ZEZvcm1Db250cm9sKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTkyLDE4ICsxODMsMTIgQEAg
Ym9vbCBSYW5nZUlucHV0VHlwZTo6aGFzVG91Y2hFdmVudEhhbmRsZXIoKSBjb25zdAogCiB2b2lk
IFJhbmdlSW5wdXRUeXBlOjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKCFoYXND
cmVhdGVkU2hhZG93U3VidHJlZSgpKQotICAgICAgICByZXR1cm47CiAgICAgdHlwZWRTbGlkZXJU
aHVtYkVsZW1lbnQoKS5ob3N0RGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKIH0KIAogYXV0byBSYW5n
ZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KSAtPiBT
aG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlcgogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwotCi0g
ICAgaWYgKCFoYXNDcmVhdGVkU2hhZG93U3VidHJlZSgpKQotICAgICAgICByZXR1cm4gU2hvdWxk
Q2FsbEJhc2VFdmVudEhhbmRsZXI6OlllczsKLQogICAgIGlmIChlbGVtZW50KCktPmlzRGlzYWJs
ZWRGb3JtQ29udHJvbCgpKQogICAgICAgICByZXR1cm4gU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRs
ZXI6OlllczsKIApAQCAtMjU2LDcgKzI0MSw3IEBAIGF1dG8gUmFuZ2VJbnB1dFR5cGU6OmhhbmRs
ZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkgLT4gU2hvdWxkQ2FsbEJhc2VFCiAg
ICAgcmV0dXJuIFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyOjpZZXM7CiB9CiAKLXZvaWQgUmFu
Z2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQordm9pZCBSYW5nZUlucHV0VHlwZTo6
Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShi
b29sKQogewogICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CkBAIC0yNzQsMTAgKzI1OSw2IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogSFRNTEVsZW1lbnQqIFJhbmdlSW5wdXRUeXBlOjpzbGlkZXJUcmFj
a0VsZW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwotCi0gICAgaWYgKCFo
YXNDcmVhdGVkU2hhZG93U3VidHJlZSgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAg
IEFTU0VSVChlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOyAvLyBjb250YWlu
ZXIKICAgICBBU1NFUlQoZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKS0+aXNIVE1MRWxlbWVudCgpKTsKQEAgLTI5Niw3ICsyNzcsNiBAQCBIVE1MRWxlbWVudCog
UmFuZ2VJbnB1dFR5cGU6OnNsaWRlclRyYWNrRWxlbWVudCgpIGNvbnN0CiAKIFNsaWRlclRodW1i
RWxlbWVudCYgUmFuZ2VJbnB1dFR5cGU6OnR5cGVkU2xpZGVyVGh1bWJFbGVtZW50KCkgY29uc3QK
IHsKLSAgICBBU1NFUlQoaGFzQ3JlYXRlZFNoYWRvd1N1YnRyZWUoKSk7CiAgICAgQVNTRVJUKHNs
aWRlclRyYWNrRWxlbWVudCgpLT5maXJzdENoaWxkKCkpOyAvLyB0aHVtYgogICAgIEFTU0VSVChz
bGlkZXJUcmFja0VsZW1lbnQoKS0+Zmlyc3RDaGlsZCgpLT5pc0hUTUxFbGVtZW50KCkpOwogCkBA
IC0zNDIsOCArMzIyLDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKQogICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmhhc0Rp
cnR5VmFsdWUoKSkKICAgICAgICAgICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZShlbGVtZW50LT52
YWx1ZSgpKTsKICAgICAgICAgfQotICAgICAgICBpZiAoaGFzQ3JlYXRlZFNoYWRvd1N1YnRyZWUo
KSkKLSAgICAgICAgICAgIHR5cGVkU2xpZGVyVGh1bWJFbGVtZW50KCkuc2V0UG9zaXRpb25Gcm9t
VmFsdWUoKTsKKyAgICAgICAgdHlwZWRTbGlkZXJUaHVtYkVsZW1lbnQoKS5zZXRQb3NpdGlvbkZy
b21WYWx1ZSgpOwogICAgIH0KICAgICBJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7
CiB9CkBAIC0zNjAsOCArMzM5LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEUKICAgICAgICAg
ZWxlbWVudCgpLT5zZXRUZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KHZhbHVlKTsK
ICAgICB9CiAKLSAgICBpZiAoaGFzQ3JlYXRlZFNoYWRvd1N1YnRyZWUoKSkKLSAgICAgICAgdHlw
ZWRTbGlkZXJUaHVtYkVsZW1lbnQoKS5zZXRQb3NpdGlvbkZyb21WYWx1ZSgpOworICAgIHR5cGVk
U2xpZGVyVGh1bWJFbGVtZW50KCkuc2V0UG9zaXRpb25Gcm9tVmFsdWUoKTsKIH0KIAogU3RyaW5n
IFJhbmdlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29uc3QKQEAgLTM5MCw3ICszNjgsNyBA
QCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpkYXRhTGlzdE1heUhhdmVDaGFuZ2VkKCkKIHsKICAgICBt
X3RpY2tNYXJrVmFsdWVzRGlydHkgPSB0cnVlOwogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gc2xp
ZGVyVHJhY2tFbGVtZW50ID0gdGhpcy0+c2xpZGVyVHJhY2tFbGVtZW50KCk7Ci0gICAgaWYgKHNs
aWRlclRyYWNrRWxlbWVudCAmJiBzbGlkZXJUcmFja0VsZW1lbnQtPnJlbmRlcmVyKCkpCisgICAg
aWYgKHNsaWRlclRyYWNrRWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgc2xpZGVyVHJhY2tF
bGVtZW50LT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggMTBmZDNhNzJlN2Q2ZDBiMDE3ZWY2YmIyYjRiOTU1MDQ4
YzAxNTlhMy4uMjk2NGM2NGU5ZDNkZjQwZmU5NWJiNTcyYjkxNzYzZDQzZmVjN2NiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCYpIGZpbmFsOwogICAgIFNo
b3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50
JikgZmluYWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVy
ZXIoUmVuZGVyU3R5bGUmJikgZmluYWw7Ci0gICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkg
ZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmlsaXR5KGJvb2wpIGZpbmFsOwogICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihj
b25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHNl
cmlhbGl6ZShjb25zdCBEZWNpbWFsJikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBhY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFy
Y2hJbnB1dFR5cGUuY3BwCmluZGV4IDZlNWIxZTdmYmU3MmJiZDMxYmI5ODQ1N2UwMmVjZDRjNmE0
N2RlNWYuLmY3MGIxMmUyNDM3ZmZjMWE4NjQ1ZWEwMzk4YWQ5NDBkNTI1MDI2NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTEwMiwxMyArMTAyLDEzIEBAIGJv
b2wgU2VhcmNoSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKK3Zv
aWQgU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0
RWxlbWVudEVkaXRhYmlsaXR5KGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpCiB7CiAg
ICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKICAgICBBU1NFUlQoIW1fcmVzdWx0c0J1
dHRvbik7CiAgICAgQVNTRVJUKCFtX2NhbmNlbEJ1dHRvbik7CiAKLSAgICBUZXh0RmllbGRJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKKyAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoaXNJ
bm5lclRleHRFbGVtZW50RWRpdGFibGUpOwogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFp
bmVyID0gY29udGFpbmVyRWxlbWVudCgpOwogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gdGV4dFdy
YXBwZXIgPSBpbm5lckJsb2NrRWxlbWVudCgpOwogICAgIEFTU0VSVChjb250YWluZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKaW5kZXggMjNhNjI5NzRlMjJkYTc1N2RlMjJk
OTdhMjgzODcwNzc0ODgxZWY0YS4uMjJmNjhjOTI1ZDg2Nzk2NDEzMGU4ZWYzMTc5N2JjOTBlZGI4
ZWY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCkBAIC01MSw3ICs1MSw3
IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVu
ZGVyZXIoUmVuZGVyU3R5bGUmJikgZmluYWw7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBuZWVkc0NvbnRhaW5lcigpIGNvbnN0
IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQg
Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShi
b29sKSBmaW5hbDsKICAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CiAgICAg
SFRNTEVsZW1lbnQqIHJlc3VsdHNCdXR0b25FbGVtZW50KCkgY29uc3QgZmluYWw7CiAgICAgSFRN
TEVsZW1lbnQqIGNhbmNlbEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCAzNzA1NmU0NWViMWE3NWMxNGZk
NDNlNjU2ZjEzMTQ5ZmE1MWYwMzA0Li41ZTg3NzhiYmQ5MDA5YTVkYWI3ODFlMmRmZTM3ODhlOTA5
N2ZhYzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBA
IC0xMDgsMTEgKzEwOCw3IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjppc01vdXNlRm9jdXNh
YmxlKCkgY29uc3QKIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjppc0VtcHR5VmFsdWUoKSBjb25z
dAogewogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0RWxlbWVudCgpOwotICAgIGlmICgh
aW5uZXJUZXh0KSB7Ci0gICAgICAgIC8vIFNpbmNlIHdlIGFsd2F5cyBjcmVhdGUgdGhlIHNoYWRv
dyBzdWJ0cmVlIGlmIGEgdmFsdWUgaXMgc2V0LCB3ZSBrbm93Ci0gICAgICAgIC8vIHRoYXQgdGhl
IHZhbHVlIGlzIGVtcHR5LgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgQVNTRVJU
KGlubmVyVGV4dCk7CiAKICAgICBmb3IgKFRleHQqIHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6
Zmlyc3RXaXRoaW4oKmlubmVyVGV4dCk7IHRleHQ7IHRleHQgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6
bmV4dCgqdGV4dCwgaW5uZXJUZXh0LmdldCgpKSkgewogICAgICAgICBpZiAodGV4dC0+bGVuZ3Ro
KCkpCkBAIC0yMjUsOCArMjIxLDYgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUtl
eWRvd25FdmVudEZvclNwaW5CdXR0b24oS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAKIHZvaWQgVGV4
dEZpZWxkSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQoRXZlbnQmIGV2ZW50KQogewotICAgIEFTU0VS
VChlbGVtZW50KCkpOwotCiAgICAgaWYgKG1faW5uZXJTcGluQnV0dG9uKSB7CiAgICAgICAgIG1f
aW5uZXJTcGluQnV0dG9uLT5mb3J3YXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBpZiAoZXZlbnQu
ZGVmYXVsdEhhbmRsZWQoKSkKQEAgLTIzNyw4ICsyMzEsMTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1
dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCYgZXZlbnQpCiAgICAgYm9vbCBpc0JsdXJFdmVudCA9
IGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50OwogICAgIGlmIChpc0ZvY3Vz
RXZlbnQgfHwgaXNCbHVyRXZlbnQpCiAgICAgICAgIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdl
ZCgpOwotICAgIGlmIChldmVudC5pc01vdXNlRXZlbnQoKSB8fCBpc0ZvY3VzRXZlbnQgfHwgaXNC
bHVyRXZlbnQpCisgICAgaWYgKGV2ZW50LmlzTW91c2VFdmVudCgpIHx8IGlzRm9jdXNFdmVudCB8
fCBpc0JsdXJFdmVudCkgeworICAgICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICAgICAgZWxl
bWVudCgpLT5mb3J3YXJkRXZlbnQoZXZlbnQpOworICAgIH0KIH0KIAogdm9pZCBUZXh0RmllbGRJ
bnB1dFR5cGU6OmVsZW1lbnREaWRCbHVyKCkKQEAgLTMyMCwxMiArMzE2LDExIEBAIGJvb2wgVGV4
dEZpZWxkSW5wdXRUeXBlOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoKSBjb25zdAogICAg
IHJldHVybiBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNh
dG9yKCplbGVtZW50KCkpOwogfQogCi12b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSgpCit2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShib29sIGlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKQogewogICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAg
QVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsK
LSAgICBBU1NFUlQoIWVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5oYXNDaGlsZE5vZGVzKCkpOwog
CiAgICAgQVNTRVJUKCFtX2lubmVyVGV4dCk7CiAgICAgQVNTRVJUKCFtX2lubmVyQmxvY2spOwpA
QCAtMzM2LDE3ICszMzEsOSBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgp
OwogICAgIGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24gPSB0aGlzLT5zaG91bGRIYXZlU3BpbkJ1
dHRvbigpOwogICAgIGJvb2wgc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yID0gdGhpcy0+c2hv
dWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKCk7Ci0gICAgYm9vbCBzaG91bGREcmF3QXV0b0ZpbGxC
dXR0b24gPSB0aGlzLT5zaG91bGREcmF3QXV0b0ZpbGxCdXR0b24oKTsKLSNpZiBFTkFCTEUoREFU
QUxJU1RfRUxFTUVOVCkKLSAgICBib29sIGhhc0RhdGFMaXN0ID0gZWxlbWVudCgpLT5saXN0KCk7
Ci0jZW5kaWYKLSAgICBib29sIGNyZWF0ZXNDb250YWluZXIgPSBzaG91bGRIYXZlU3BpbkJ1dHRv
biB8fCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IgfHwgc2hvdWxkRHJhd0F1dG9GaWxsQnV0
dG9uCi0jaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCi0gICAgICAgIHx8IGhhc0RhdGFMaXN0
Ci0jZW5kaWYKLSAgICAgICAgfHwgbmVlZHNDb250YWluZXIoKTsKKyAgICBib29sIGNyZWF0ZXND
b250YWluZXIgPSBzaG91bGRIYXZlU3BpbkJ1dHRvbiB8fCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRp
Y2F0b3IgfHwgbmVlZHNDb250YWluZXIoKTsKIAotICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGVsZW1lbnQoKS0+aXNJbm5lclRl
eHRFbGVtZW50RWRpdGFibGUoKSk7CisgICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVy
VGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUp
OwogCiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7CiAgICAgICAgIGVsZW1lbnQoKS0+dXNl
ckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChDb250YWluZXJOb2RlOjpDaGlsZENoYW5n
ZTo6U291cmNlOjpQYXJzZXIsICptX2lubmVyVGV4dCk7CkBAIC0zNzEsMTIgKzM1OCw3IEBAIHZv
aWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgICAgICBt
X2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6UGFyc2VyLCAqbV9jYXBzTG9ja0luZGljYXRvcik7CiAgICAgfQotCiAgICAgdXBkYXRlQXV0
b0ZpbGxCdXR0b24oKTsKLQotI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQotICAgIGRhdGFM
aXN0TWF5SGF2ZUNoYW5nZWQoKTsKLSNlbmRpZgogfQogCiBIVE1MRWxlbWVudCogVGV4dEZpZWxk
SW5wdXRUeXBlOjpjb250YWluZXJFbGVtZW50KCkgY29uc3QKQEAgLTM5MSw2ICszNzMsNyBAQCBI
VE1MRWxlbWVudCogVGV4dEZpZWxkSW5wdXRUeXBlOjppbm5lckJsb2NrRWxlbWVudCgpIGNvbnN0
CiAKIFJlZlB0cjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IFRleHRGaWVsZElucHV0VHlw
ZTo6aW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1faW5uZXJUZXh0KTsK
ICAgICByZXR1cm4gbV9pbm5lclRleHQ7CiB9CiAKQEAgLTQ0Miw5ICs0MjUsNiBAQCB2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lKQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQog
ewotICAgIGlmICghaGFzQ3JlYXRlZFNoYWRvd1N1YnRyZWUoKSkKLSAgICAgICAgcmV0dXJuOwot
CiAgICAgaWYgKG1faW5uZXJTcGluQnV0dG9uKQogICAgICAgICBtX2lubmVyU3BpbkJ1dHRvbi0+
cmVsZWFzZUNhcHR1cmUoKTsKICAgICBjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKQEAg
LTQ1Myw5ICs0MzMsNiBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6ZGlzYWJsZWRTdGF0ZUNo
YW5nZWQoKQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6cmVhZE9ubHlTdGF0ZUNoYW5nZWQo
KQogewotICAgIGlmICghaGFzQ3JlYXRlZFNoYWRvd1N1YnRyZWUoKSkKLSAgICAgICAgcmV0dXJu
OwotCiAgICAgaWYgKG1faW5uZXJTcGluQnV0dG9uKQogICAgICAgICBtX2lubmVyU3BpbkJ1dHRv
bi0+cmVsZWFzZUNhcHR1cmUoKTsKICAgICBjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsK
QEAgLTYzOSwxNCArNjE2LDkgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZFJlc3Bl
Y3RMaXN0QXR0cmlidXRlKCkKIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNl
aG9sZGVyVGV4dCgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0KLSAgICBpZiAoIWhhc0Ny
ZWF0ZWRTaGFkb3dTdWJ0cmVlKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmICghc3VwcG9y
dHNQbGFjZWhvbGRlcigpKQogICAgICAgICByZXR1cm47Ci0KKyAgICBBU1NFUlQoZWxlbWVudCgp
KTsKICAgICBTdHJpbmcgcGxhY2Vob2xkZXJUZXh0ID0gZWxlbWVudCgpLT5wbGFjZWhvbGRlcigp
OwogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3Bs
YWNlaG9sZGVyKSB7CkBAIC04NDQsMTcgKzgxNiwxMyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9u
VAogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlQXV0b0ZpbGxCdXR0b24oKQogewot
ICAgIEFTU0VSVChlbGVtZW50KCkpOwotCi0gICAgaWYgKCFoYXNDcmVhdGVkU2hhZG93U3VidHJl
ZSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQo
KTsKIAogICAgIGlmIChzaG91bGREcmF3QXV0b0ZpbGxCdXR0b24oKSkgewogICAgICAgICBpZiAo
IW1fY29udGFpbmVyKQogICAgICAgICAgICAgY3JlYXRlQ29udGFpbmVyKCk7CiAKKyAgICAgICAg
QVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgICAgIEF1dG9GaWxsQnV0dG9uVHlwZSBhdXRvRmlsbEJ1
dHRvblR5cGUgPSBlbGVtZW50KCktPmF1dG9GaWxsQnV0dG9uVHlwZSgpOwogICAgICAgICBpZiAo
IW1fYXV0b0ZpbGxCdXR0b24pCiAgICAgICAgICAgICBjcmVhdGVBdXRvRmlsbEJ1dHRvbihhdXRv
RmlsbEJ1dHRvblR5cGUpOwpAQCAtODc4LDkgKzg0Niw2IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRU
eXBlOjp1cGRhdGVBdXRvRmlsbEJ1dHRvbigpCiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpk
YXRhTGlzdE1heUhhdmVDaGFuZ2VkKCkKIHsKLSAgICBpZiAoIWhhc0NyZWF0ZWRTaGFkb3dTdWJ0
cmVlKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fY2FjaGVkU3VnZ2VzdGlvbnMgPSB7IH07
CiAKICAgICBpZiAoIW1fZGF0YUxpc3REcm9wZG93bkluZGljYXRvcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmluZGV4IDRlMWJiMTU0YzVhN2I1NjFjYjU0NGZlMmQ2
ZmZiODdmMDJhYzllM2EuLjVhMjQzMjc2NWYxY2Q2OGE0NjFhODg1MzUzMjU4Mjg1ZmU0OTlmNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaApAQCAtNzAsNyArNzAs
NyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRhaW5l
cigpIGNvbnN0OwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIG92ZXJyaWRlOworICAg
IHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eShib29sKSBvdmVycmlkZTsKICAgICB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpc2FibGVkU3RhdGVDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MjVmYTg5Yzg4NjFhNDFjNGY5Y2U5ZWQyYTg0M2RkZGU1NDYwYjJmNS4uNTRmZGRjY2M4NTYwY2Qw
MWJmOWRmODczNTdkZTU4MThiNWZhZWFiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAy
LTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI5MDI4NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzEzMQorCisgICAgICAgIEl0IGlzIHByZXZlbnRpbmcg
dGhlIGZ1enplciBmcm9tIGZpbmRpbmcgb3RoZXIgYnVncworCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldDoKKworICAgICAgICAiTWFrZSBpbnB1dCBlbGVtZW50IFVBIHNoYWRvdyB0cmVlIGNy
ZWF0aW9uIGxhenkiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzY3NDcKKyAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvcjI5MDI4NAor
CiAyMDIyLTAyLTIzICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IG9mIHNob3dNb2RhbERpYWxvZyBzaG91bGQgYXBwZWFyIGFzIGEgd2FybmluZyBpbiBXSSBjb25z
b2xlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xhenktc2hhZG93LXRyZWUt
Y3JlYXRpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGF6eS1zaGFk
b3ctdHJlZS1jcmVhdGlvbi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5YTYyY2M0NDBhZTRkMTA2M2JjNDc4MDIyNDg4YTY0YzI5MzFkY2NhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvbGF6eS1zaGFkb3ctdHJlZS1jcmVhdGlvbi1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Imxh
enktc2hhZG93LXRyZWUtY3JlYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXJ1bih7IHVz
ZVBhcnNlcjogdHJ1ZSB9KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9sYXp5LXNoYWRvdy10cmVlLWNyZWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2xhenktc2hhZG93LXRyZWUtY3JlYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDYyOGEwZDliOWU0Zjc5ZjQ0NGFkOTA0NWVkM2M5MjU5ZWIwYWM3Zi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2xhenktc2hhZG93LXRyZWUtY3JlYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJsYXp5
LXNoYWRvdy10cmVlLWNyZWF0aW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1ydW4oeyB1c2VQ
YXJzZXI6IGZhbHNlIH0pOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2xhenktc2hhZG93LXRyZWUtY3JlYXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2xhenktc2hhZG93LXRyZWUtY3JlYXRpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDliOGZiOWY5ZmM5Y2Y1YTUzM2MwNWJmMWQ3NmIwOTMxNTM3N2Q5NDUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9sYXp5LXNoYWRvdy10cmVlLWNyZWF0aW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTcg
KzAsMCBAQAotY29uc3QgdHlwZXMgPSB7Ci0gICAgImNvbG9yIjogeyB2YWx1ZTogIiMwMDgwMDAi
IH0sCi0gICAgImRhdGUiOiB7IHZhbHVlOiAiMjAyMi0wMS0wMSIgfSwKLSAgICAiZGF0ZXRpbWUt
bG9jYWwiOiB7IHZhbHVlOiAiMjAyMi0wMS0wMSIgfSwKLSAgICAiZW1haWwiOiB7IHZhbHVlOiAi
aGVsbG9AZXhhbXBsZS5jb20iIH0sCi0gICAgImZpbGUiOiB7IH0sCi0gICAgIm1vbnRoIjogeyB2
YWx1ZTogIjIwMjItMDEiIH0sCi0gICAgIm51bWJlciI6IHsgdmFsdWU6ICIxMjMiIH0sCi0gICAg
InBhc3N3b3JkIjogeyB9LAotICAgICJyYW5nZSI6IHsgdmFsdWU6ICI3NSIgfSwKLSAgICAic2Vh
cmNoIjogeyB2YWx1ZTogImFiYyIgfSwKLSAgICAidGVsZXBob25lIjogeyB2YWx1ZTogIis2MTMw
MDAwMDAwMCIgfSwKLSAgICAidGV4dCI6IHsgdmFsdWU6ICJhYmMiIH0sCi0gICAgInRpbWUiOiB7
IHZhbHVlOiAiMTA6MDAiIH0sCi0gICAgInVybCI6IHsgdmFsdWU6ICJodHRwczovL2V4YW1wbGUu
Y29tLyIgfSwKLSAgICAid2VlayI6IHsgdmFsdWU6ICIyMDIyLVcxIiB9LAotfTsKLQotZnVuY3Rp
b24gc3VwcG9ydHNUeXBlKHR5cGVOYW1lKSB7Ci0gICAgbGV0IGUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbnB1dCIpOwotICAgIGUudHlwZSA9IHR5cGVOYW1lOwotICAgIHJldHVybiBlLnR5
cGUgPT0gdHlwZU5hbWU7Ci19Ci0KLWZ1bmN0aW9uIG1ha2VBbmRBcHBlbmRJbnB1dChvcHRpb25z
LCB0eXBlTmFtZSwgYXR0cmlidXRlcyA9IHsgfSkgewotICAgIGxldCBzcGFuID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHNwYW4pOwot
Ci0gICAgaWYgKG9wdGlvbnMudXNlUGFyc2VyKSB7Ci0gICAgICAgIGxldCB0YWcgPSBgPGlucHV0
IHR5cGU9IiR7dHlwZU5hbWV9ImA7Ci0gICAgICAgIGZvciAobGV0IG5hbWUgaW4gYXR0cmlidXRl
cykKLSAgICAgICAgICAgIHRhZyArPSBgICR7bmFtZX09IiR7YXR0cmlidXRlc1tuYW1lXX0iYDsK
LSAgICAgICAgdGFnICs9ICI+IjsKLSAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB0YWc7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5w
dXQiKTsKLSAgICAgICAgaW5wdXQudHlwZSA9IHR5cGVOYW1lOwotICAgICAgICBmb3IgKGxldCBu
YW1lIGluIGF0dHJpYnV0ZXMpCi0gICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUobmFtZSwg
YXR0cmlidXRlc1tuYW1lXSk7Ci0gICAgICAgIHNwYW4uYXBwZW5kKGlucHV0KTsKLSAgICB9Ci19
Ci0KLWZ1bmN0aW9uIHJ1bihvcHRpb25zKSB7Ci0gICAgZm9yIChsZXQgdHlwZU5hbWUgaW4gdHlw
ZXMpIHsKLSAgICAgICAgaWYgKCFzdXBwb3J0c1R5cGUodHlwZU5hbWUpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgbGV0IHR5cGUgPSB0eXBlc1t0eXBlTmFtZV07Ci0gICAgICAg
IG1ha2VBbmRBcHBlbmRJbnB1dChvcHRpb25zLCB0eXBlTmFtZSk7Ci0KLSAgICAgICAgaWYgKHR5
cGUudmFsdWUpCi0gICAgICAgICAgICBtYWtlQW5kQXBwZW5kSW5wdXQob3B0aW9ucywgdHlwZU5h
bWUsIHsgdmFsdWU6IHR5cGUudmFsdWUgfSk7Ci0KLSAgICAgICAgbWFrZUFuZEFwcGVuZElucHV0
KG9wdGlvbnMsIHR5cGVOYW1lLCB7IHZhbHVlOiB0eXBlLnZhbHVlLCBkaXNhYmxlZDogImRpc2Fi
bGVkIiB9KTsKLSAgICB9Ci19Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>