<?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>154445</bug_id>
          
          <creation_ts>2016-02-19 02:09:32 -0800</creation_ts>
          <short_desc>[EFL] Merge WebView and WebViewEfl</short_desc>
          <delta_ts>2016-02-22 23:59:05 -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>WebKit EFL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>152037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>yoon</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1166372</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2016-02-19 02:09:32 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166376</commentid>
    <comment_count>1</comment_count>
      <attachid>271742</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2016-02-19 02:17:48 -0800</bug_when>
    <thetext>Created attachment 271742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167311</commentid>
    <comment_count>2</comment_count>
      <attachid>271742</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-02-22 22:14:49 -0800</bug_when>
    <thetext>Comment on attachment 271742
Patch

WebViewEfl is merged into WebView because no port uses Coordinated Graphics WebView except for EFL port. And we guess no port will use it in future as well. rs=me.

But I&apos;d like to listen GTK&apos;s sounds before landing. yoon, zan, any comment on this or do you have any plan to use it ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167314</commentid>
    <comment_count>3</comment_count>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2016-02-22 22:24:25 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 271742 [details]
&gt; Patch
&gt; 
&gt; WebViewEfl is merged into WebView because no port uses Coordinated Graphics
&gt; WebView except for EFL port. And we guess no port will use it in future as
&gt; well. rs=me.
&gt; 
&gt; But I&apos;d like to listen GTK&apos;s sounds before landing. yoon, zan, any comment
&gt; on this or do you have any plan to use it ?

I like this change. We are going to add UI side compositing support using Coordinated Graphics to the GTK port, but not this time.
And I&apos;ll try to simplify UI sides code when GTK supports UI side compositing, so this patch makes me easier to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167326</commentid>
    <comment_count>4</comment_count>
      <attachid>271742</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-22 23:58:58 -0800</bug_when>
    <thetext>Comment on attachment 271742
Patch

Clearing flags on attachment: 271742

Committed r196972: &lt;http://trac.webkit.org/changeset/196972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167327</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-22 23:59:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271742</attachid>
            <date>2016-02-19 02:17:48 -0800</date>
            <delta_ts>2016-02-22 23:58:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154445-20160219191728.patch</filename>
            <type>text/plain</type>
            <size>44658</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWZjZWIwODVlMmM3ZTg0
ZTE3YWYzNjE2Y2I5ZWU1NmY4ZTNlOTJjZi4uMzM3MjQ2ZmM4ZjBkMTM5ZGE0MDNlMjljZTJiNDg5
ZWEzMDc0NDY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTAyLTE5ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtFRkxdIE1lcmdl
IFdlYlZpZXcgYW5kIFdlYlZpZXdFZmwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDQ0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IFJlbW92ZWQgV2ViVmlld0VmbC5j
cHAgZnJvbSBzb3VyY2UgbGlzdC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmll
d0VmbC5jcHA6IFJlbW92ZWQgdHlwZSBjYXN0IGZvciBXZWJWaWV3RWZsLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJl
Y29nbml6ZXIuY3BwOiBSZW1vdmVkIHR5cGUgY2FzdCBmb3IgV2ViVmlld0VmbC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9XZWJBY2Nlc3NpYmlsaXR5LmNwcDogUmVtb3ZlZCB1bm5lY2Vz
c2FyeSBpbmNsdWRlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6
IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHA6IERpdHRv
LgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyQ2xpZW50Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbG9yUGlja2VyRWZsOjpXZWJDb2xvclBpY2tlckVmbCk6CisgICAgICAgICogVUlQ
cm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xv
clBpY2tlckVmbDo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvV2ViVmlld0VmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9X
ZWJWaWV3RWZsLmg6IERpdHRvLgorCiAyMDE2LTAyLTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBGaXggSURCR2V0UmVzdWx0IGVuY29k
ZXIvZGVjb2Rlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMjU5NGQzMTE0NjE0MmZk
NmNlOTg4YWUxNDM2NDEzNWU4ZjliNDdjZS4uODFjNmEwMjMxZDlkODI0NDJhYzdjOGY0NmFkMTZi
ZGM0MTRhN2VlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTE4NCw3ICsxODQsNiBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZWZsL1dlYlVJUG9w
dXBNZW51Q2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKICAgICBVSVBy
b2Nlc3MvZWZsL1dlYlZpZXdDbGllbnQuY3BwCi0gICAgVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZs
LmNwcAogCiAgICAgVUlQcm9jZXNzL2dzdHJlYW1lci9JbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
c1Blcm1pc3Npb25SZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvV2ViUGFnZVBy
b3h5R1N0cmVhbWVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS1ZpZXdFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS1ZpZXdFZmwuY3BwCmluZGV4IDEwMDg3ZjE4ZDgxNDQ2NmMzNDkyNWE0OTE0N2I1ZGExYmM4
YWJkMjEuLjJjZGYxNzI2ZDkxOGNkOWNiNWZhMTYwZWNjNjNiMGFlNWJhYWUwNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5jcHAKQEAgLTI4
LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkV3a1ZpZXcuaCIKICNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKLSNpbmNsdWRlICJXZWJWaWV3RWZsLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1
ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tJbWFnZUNhaXJvLmg+CiAKQEAgLTM3LDcg
KzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHZvaWQgV0tWaWV3U2V0Q29sb3JQaWNr
ZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNl
KiB3a0NsaWVudCkKIHsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGF0aWNf
Y2FzdDxXZWJWaWV3RWZsKj4odG9JbXBsKHZpZXdSZWYpKS0+aW5pdGlhbGl6ZUNvbG9yUGlja2Vy
Q2xpZW50KHdrQ2xpZW50KTsKKyAgICB0b0ltcGwodmlld1JlZiktPmluaXRpYWxpemVDb2xvclBp
Y2tlckNsaWVudCh3a0NsaWVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh2aWV3UmVmKTsK
ICAgICBVTlVTRURfUEFSQU0od2tDbGllbnQpOwpAQCAtNDYsMjQgKzQ2LDI0IEBAIHZvaWQgV0tW
aWV3U2V0Q29sb3JQaWNrZXJDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IFdLQ29sb3JQ
aWNrZXJDbGllbnRCYXNlCiAKIHZvaWQgV0tWaWV3UGFpbnRUb0NhaXJvU3VyZmFjZShXS1ZpZXdS
ZWYgdmlld1JlZiwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlKQogewotICAgIHN0YXRpY19jYXN0
PFdlYlZpZXdFZmwqPih0b0ltcGwodmlld1JlZikpLT5wYWludFRvQ2Fpcm9TdXJmYWNlKHN1cmZh
Y2UpOworICAgIHRvSW1wbCh2aWV3UmVmKS0+cGFpbnRUb0NhaXJvU3VyZmFjZShzdXJmYWNlKTsK
IH0KIAogV0tJbWFnZVJlZiBXS1ZpZXdDcmVhdGVTbmFwc2hvdChXS1ZpZXdSZWYgdmlld1JlZikK
IHsKLSAgICBFd2tWaWV3KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHRvSW1w
bCh2aWV3UmVmKSktPmV3a1ZpZXcoKTsKKyAgICBFd2tWaWV3KiBld2tWaWV3ID0gdG9JbXBsKHZp
ZXdSZWYpLT5ld2tWaWV3KCk7CiAgICAgcmV0dXJuIFdLSW1hZ2VDcmVhdGVGcm9tQ2Fpcm9TdXJm
YWNlKGV3a1ZpZXctPnRha2VTbmFwc2hvdCgpLmdldCgpLCAwIC8qIG9wdGlvbnMgKi8pOwogfQog
CiB2b2lkIFdLVmlld1NldFRoZW1lUGF0aChXS1ZpZXdSZWYgdmlld1JlZiwgV0tTdHJpbmdSZWYg
dGhlbWUpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3UmVmKSkt
PnNldFRoZW1lUGF0aCh0b0ltcGwodGhlbWUpLT5zdHJpbmcoKSk7CisgICAgdG9JbXBsKHZpZXdS
ZWYpLT5zZXRUaGVtZVBhdGgodG9JbXBsKHRoZW1lKS0+c3RyaW5nKCkpOwogfQogCiB2b2lkIFdL
Vmlld1NlbmRUb3VjaEV2ZW50KFdLVmlld1JlZiB2aWV3UmVmLCBXS1RvdWNoRXZlbnRSZWYgdG91
Y2hFdmVudFJlZikKIHsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIHN0YXRpY19jYXN0
PFdlYlZpZXdFZmwqPih0b0ltcGwodmlld1JlZikpLT5zZW5kVG91Y2hFdmVudCh0b0ltcGwodG91
Y2hFdmVudFJlZikpOworICAgIHRvSW1wbCh2aWV3UmVmKS0+c2VuZFRvdWNoRXZlbnQodG9JbXBs
KHRvdWNoRXZlbnRSZWYpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHZpZXdSZWYpOwogICAg
IFVOVVNFRF9QQVJBTSh0b3VjaEV2ZW50UmVmKTsKQEAgLTcyLDI3ICs3MiwyNyBAQCB2b2lkIFdL
Vmlld1NlbmRUb3VjaEV2ZW50KFdLVmlld1JlZiB2aWV3UmVmLCBXS1RvdWNoRXZlbnRSZWYgdG91
Y2hFdmVudFJlZikKIAogdm9pZCBXS1ZpZXdTZW5kTW91c2VEb3duRXZlbnQoV0tWaWV3UmVmIHZp
ZXdSZWYsIEV2YXNfRXZlbnRfTW91c2VfRG93biogZXZlbnQpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8
V2ViVmlld0VmbCo+KHRvSW1wbCh2aWV3UmVmKSktPnNlbmRNb3VzZUV2ZW50KGV2ZW50KTsKKyAg
ICB0b0ltcGwodmlld1JlZiktPnNlbmRNb3VzZUV2ZW50KGV2ZW50KTsKIH0KIAogdm9pZCBXS1Zp
ZXdTZW5kTW91c2VVcEV2ZW50KFdLVmlld1JlZiB2aWV3UmVmLCBFdmFzX0V2ZW50X01vdXNlX1Vw
KiBldmVudCkKIHsKLSAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4odG9JbXBsKHZpZXdSZWYp
KS0+c2VuZE1vdXNlRXZlbnQoZXZlbnQpOworICAgIHRvSW1wbCh2aWV3UmVmKS0+c2VuZE1vdXNl
RXZlbnQoZXZlbnQpOwogfQogCiB2b2lkIFdLVmlld1NlbmRNb3VzZU1vdmVFdmVudChXS1ZpZXdS
ZWYgdmlld1JlZiwgRXZhc19FdmVudF9Nb3VzZV9Nb3ZlKiBldmVudCkKIHsKLSAgICBzdGF0aWNf
Y2FzdDxXZWJWaWV3RWZsKj4odG9JbXBsKHZpZXdSZWYpKS0+c2VuZE1vdXNlRXZlbnQoZXZlbnQp
OworICAgIHRvSW1wbCh2aWV3UmVmKS0+c2VuZE1vdXNlRXZlbnQoZXZlbnQpOwogfQogCiB2b2lk
IFdLVmlld1NldEJhY2tncm91bmRDb2xvcihXS1ZpZXdSZWYgdmlld1JlZiwgaW50IHJlZCwgaW50
IGdyZWVuLCBpbnQgYmx1ZSwgaW50IGFscGhhKQogewotICAgIHN0YXRpY19jYXN0PFdlYlZpZXdF
ZmwqPih0b0ltcGwodmlld1JlZikpLT5zZXRWaWV3QmFja2dyb3VuZENvbG9yKFdlYkNvcmU6OkNv
bG9yKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKSk7CisgICAgdG9JbXBsKHZpZXdSZWYpLT5zZXRW
aWV3QmFja2dyb3VuZENvbG9yKFdlYkNvcmU6OkNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhh
KSk7CiB9CiAKIHZvaWQgV0tWaWV3R2V0QmFja2dyb3VuZENvbG9yKFdLVmlld1JlZiB2aWV3UmVm
LCBpbnQqIHJlZCwgaW50KiBncmVlbiwgaW50KiBibHVlLCBpbnQqIGFscGhhKQogewotICAgIFdl
YkNvcmU6OkNvbG9yIGJhY2tncm91bmRDb2xvciA9IHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih0
b0ltcGwodmlld1JlZikpLT52aWV3QmFja2dyb3VuZENvbG9yKCk7CisgICAgV2ViQ29yZTo6Q29s
b3IgYmFja2dyb3VuZENvbG9yID0gdG9JbXBsKHZpZXdSZWYpLT52aWV3QmFja2dyb3VuZENvbG9y
KCk7CiAKICAgICBpZiAocmVkKQogICAgICAgICAqcmVkID0gYmFja2dyb3VuZENvbG9yLnJlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCBm
NDIzZDFlMTgwOGI1MmViYjkyNzA1Yzk1NTRlN2QxNjMxYTNlNGZhLi5lMzBkMjBiYmM3NTAyMmFm
OGE3YjIzMjRmNWZhNTUzNWFkYTc1ZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1ZGUgIldLUG9wdXBJ
dGVtLmgiCiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNpbmNsdWRlICJXS1ZpZXcuaCIKLSNpbmNs
dWRlICJXS1ZpZXdFZmwuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgpAQCAtMzEwLDggKzMwOSw3IEBA
IEV3a1ZpZXc6OkV3a1ZpZXcoV2ViVmlldyogdmlldywgRXZhc19PYmplY3QqIGV2YXNPYmplY3Qp
CiAgICAgQVNTRVJUKG1fZXZhc09iamVjdCk7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7CiAKLSAg
ICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gcG9zc2libGUuCi0gICAgc3RhdGljX2Nhc3Q8V2ViVmll
d0VmbCo+KG1fd2ViVmlldy5nZXQoKSktPnNldEV3a1ZpZXcodGhpcyk7CisgICAgbV93ZWJWaWV3
LT5zZXRFd2tWaWV3KHRoaXMpOwogCiAgICAgLy8gRklYTUU6IENvbnNpZGVyIGl0IHRvIG1vdmUg
aW50byBFdmFzR0xDb250ZXh0LgogICAgIG1fZXZhc0dMID0gZXZhc19nbF9uZXcoZXZhc19vYmpl
Y3RfZXZhc19nZXQobV9ldmFzT2JqZWN0KSk7CkBAIC01NzQsNyArNTcyLDcgQEAgdm9pZCBFd2tW
aWV3OjpkaXNwbGF5VGltZXJGaXJlZCgpCiAgICAgICAgIGlmICghc3VyZmFjZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4obV93ZWJWaWV3
LmdldCgpKS0+cGFpbnRUb0NhaXJvU3VyZmFjZShzdXJmYWNlLmdldCgpKTsKKyAgICAgICAgbV93
ZWJWaWV3LT5wYWludFRvQ2Fpcm9TdXJmYWNlKHN1cmZhY2UuZ2V0KCkpOwogCiAgICAgICAgIGV2
YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAsIDAsIHNkLT52aWV3
LncsIHNkLT52aWV3LmgpOwogICAgICAgICByZXR1cm47CkBAIC02OTIsNyArNjkwLDcgQEAgY29u
c3QgY2hhciogRXdrVmlldzo6dGhlbWVQYXRoKCkgY29uc3QKIHZvaWQgRXdrVmlldzo6c2V0VGhl
bWVQYXRoKGNvbnN0IGNoYXIqIHRoZW1lKQogewogICAgIG1fdGhlbWUgPSB0aGVtZTsKLSAgICBz
dGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4obV93ZWJWaWV3LmdldCgpKS0+c2V0VGhlbWVQYXRoKFN0
cmluZzo6ZnJvbVVURjgobV90aGVtZSwgbV90aGVtZS5sZW5ndGgoKSkpOworICAgIG1fd2ViVmll
dy0+c2V0VGhlbWVQYXRoKFN0cmluZzo6ZnJvbVVURjgobV90aGVtZSwgbV90aGVtZS5sZW5ndGgo
KSkpOwogfQogCiB2b2lkIEV3a1ZpZXc6OnNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoY29uc3Qg
Y2hhciogY3VzdG9tRW5jb2RpbmcpCkBAIC03OTQsNyArNzkyLDcgQEAgdm9pZCBFd2tWaWV3Ojpm
ZWVkVG91Y2hFdmVudChFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBjb25zdCBFaW5hX0xpc3Qq
IHBvaW50cywKICAgICB9CiAgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gd2tUb3VjaFBvaW50
cyhBZG9wdFdLLCBXS0FycmF5Q3JlYXRlQWRvcHRpbmdWYWx1ZXModG91Y2hQb2ludHMuZ2V0KCks
IGxlbmd0aCkpOwogCi0gICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KG1fd2ViVmlldy5nZXQo
KSktPnNlbmRUb3VjaEV2ZW50KEV3a1RvdWNoRXZlbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxXS0V2
ZW50VHlwZT4odHlwZSksIHdrVG91Y2hQb2ludHMuZ2V0KCksIHRvV0tFdmVudE1vZGlmaWVycyht
b2RpZmllcnMpLCBlY29yZV90aW1lX2dldCgpKS5nZXQoKSk7CisgICAgbV93ZWJWaWV3LT5zZW5k
VG91Y2hFdmVudChFd2tUb3VjaEV2ZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8V0tFdmVudFR5cGU+
KHR5cGUpLCB3a1RvdWNoUG9pbnRzLmdldCgpLCB0b1dLRXZlbnRNb2RpZmllcnMobW9kaWZpZXJz
KSwgZWNvcmVfdGltZV9nZXQoKSkuZ2V0KCkpOwogfQogCiB2b2lkIEV3a1ZpZXc6OnNldFRvdWNo
RXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCkBAIC0xMjk5LDcgKzEyOTcsNyBAQCB2b2lkIEV3
a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDb2xvclNldChFdmFzX09iamVjdCogZXZhc09iamVjdCwg
aW50IHJlZCwgaW50IGdyZQogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHRv
U21hcnREYXRhKGV2YXNPYmplY3QpOwogICAgIEFTU0VSVChzbWFydERhdGEpOwogCi0gICAgQ29s
b3IgYmFja2dyb3VuZENvbG9yID0gc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHRvRXdrVmlldyhz
bWFydERhdGEpLT53ZWJWaWV3KCkpLT52aWV3QmFja2dyb3VuZENvbG9yKCk7CisgICAgQ29sb3Ig
YmFja2dyb3VuZENvbG9yID0gdG9Fd2tWaWV3KHNtYXJ0RGF0YSktPndlYlZpZXcoKS0+dmlld0Jh
Y2tncm91bmRDb2xvcigpOwogCiAgICAgZXZhc19vYmplY3RfaW1hZ2VfYWxwaGFfc2V0KHNtYXJ0
RGF0YS0+aW1hZ2UsIGFscGhhIDwgMjU1IHx8IGJhY2tncm91bmRDb2xvci5hbHBoYSgpIDwgMjU1
KTsKICAgICBwYXJlbnRTbWFydENsYXNzLmNvbG9yX3NldChldmFzT2JqZWN0LCByZWQsIGdyZWVu
LCBibHVlLCBhbHBoYSk7CkBAIC0xMzg2LDcgKzEzODQsNyBAQCB2b2lkIEV3a1ZpZXc6OmZlZWRU
b3VjaEV2ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQog
ICAgIH0KICAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiB3a1RvdWNoUG9pbnRzKEFkb3B0V0ss
IFdLQXJyYXlDcmVhdGVBZG9wdGluZ1ZhbHVlcyh0b3VjaFBvaW50cy5nZXQoKSwgbGVuZ3RoKSk7
CiAKLSAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4obV93ZWJWaWV3LmdldCgpKS0+c2VuZFRv
dWNoRXZlbnQoRXdrVG91Y2hFdmVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PFdLRXZlbnRUeXBlPih0
eXBlKSwgd2tUb3VjaFBvaW50cy5nZXQoKSwgdG9XS0V2ZW50TW9kaWZpZXJzKGV2YXNfa2V5X21v
ZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSksIHRpbWVzdGFtcCkuZ2V0KCkpOworICAgIG1fd2Vi
Vmlldy0+c2VuZFRvdWNoRXZlbnQoRXdrVG91Y2hFdmVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PFdL
RXZlbnRUeXBlPih0eXBlKSwgd2tUb3VjaFBvaW50cy5nZXQoKSwgdG9XS0V2ZW50TW9kaWZpZXJz
KGV2YXNfa2V5X21vZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSksIHRpbWVzdGFtcCkuZ2V0KCkp
OwogfQogCiB2b2lkIEV3a1ZpZXc6OmhhbmRsZU1vdXNlRG93bkZvclRvdWNoKHZvaWQqLCBFdmFz
KiwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKQEAgLTE0OTQsMTIgKzE0
OTIsMTIgQEAgdm9pZCBFd2tWaWV3OjpzZXRCYWNrZ3JvdW5kQ29sb3IoaW50IHJlZCwgaW50IGdy
ZWVuLCBpbnQgYmx1ZSwgaW50IGFscGhhKQogICAgIGV2YXNfb2JqZWN0X2NvbG9yX2dldChpbWFn
ZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgJm9iamVjdEFscGhhKTsKICAgICBldmFzX29i
amVjdF9pbWFnZV9hbHBoYV9zZXQoaW1hZ2UsIGFscGhhIDwgMjU1IHx8IG9iamVjdEFscGhhIDwg
MjU1KTsKIAotICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPihtX3dlYlZpZXcuZ2V0KCkpLT5z
ZXRWaWV3QmFja2dyb3VuZENvbG9yKFdlYkNvcmU6OkNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUsIGFs
cGhhKSk7CisgICAgbV93ZWJWaWV3LT5zZXRWaWV3QmFja2dyb3VuZENvbG9yKFdlYkNvcmU6OkNv
bG9yKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKSk7CiB9CiAKIENvbG9yIEV3a1ZpZXc6OmJhY2tn
cm91bmRDb2xvcigpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPihtX3dl
YlZpZXcuZ2V0KCkpLT52aWV3QmFja2dyb3VuZENvbG9yKCk7CisgICAgcmV0dXJuIG1fd2ViVmll
dy0+dmlld0JhY2tncm91bmRDb2xvcigpOwogfQogCiBFdmFzX1NtYXJ0X0NsYXNzIEV3a1ZpZXc6
OnBhcmVudFNtYXJ0Q2xhc3MgPSBFVkFTX1NNQVJUX0NMQVNTX0lOSVRfTlVMTDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCA3YjYzYmUxM2FkNTRkMjdk
MDFhNWNlMTRmNTc5ZmMzNGU5NWIyZmEwLi5iMzBhNTJiODk5MzY4NDNiNWIzYjQ1MjhkMjk5ZThm
ODJkMTQ2YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5o
CkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dEVmbC5oIgogI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgogI2luY2x1ZGUgIldLUmV0
YWluUHRyLmgiCi0jaW5jbHVkZSAiV2ViVmlld0VmbC5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0
RmxhZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5jcHAKaW5kZXggMzdm
N2IxOWY1ODYzOTU4NDBkNzQ1OWY2M2RlMDRjMWExZDY2N2QwNi4uMzE3YmZmNzdjY2VlMjUwMDZh
NGE5NDI5YjVjODgyMWY5MjRhYjcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvR2VzdHVyZVJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmNwcApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIkV3a1ZpZXcuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldLVmlld0VmbC5oIgogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKIApAQCAtMTM1LDcgKzEzNCw3IEBAIHZvaWQgR2VzdHVyZUhhbmRs
ZXI6OmhhbmRsZVNpbmdsZVRhcChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiAgICAgbW91c2VN
b3ZlLnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKICAgICBtb3VzZU1vdmUuZXZl
bnRfZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKICAgICBtb3VzZU1vdmUuZGV2ID0gMDsK
LSAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4obV9ld2tWaWV3LT53ZWJWaWV3KCkpLT5zZW5k
TW91c2VFdmVudCgmbW91c2VNb3ZlKTsKKyAgICBtX2V3a1ZpZXctPndlYlZpZXcoKS0+c2VuZE1v
dXNlRXZlbnQoJm1vdXNlTW92ZSk7CiAKICAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gbW91c2VE
b3duOwogICAgIG1vdXNlRG93bi5idXR0b24gPSAxOwpAQCAtMTQ4LDcgKzE0Nyw3IEBAIHZvaWQg
R2VzdHVyZUhhbmRsZXI6OmhhbmRsZVNpbmdsZVRhcChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24p
CiAgICAgbW91c2VEb3duLnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKICAgICBt
b3VzZURvd24uZXZlbnRfZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKICAgICBtb3VzZURv
d24uZGV2ID0gMDsKLSAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4obV9ld2tWaWV3LT53ZWJW
aWV3KCkpLT5zZW5kTW91c2VFdmVudCgmbW91c2VEb3duKTsKKyAgICBtX2V3a1ZpZXctPndlYlZp
ZXcoKS0+c2VuZE1vdXNlRXZlbnQoJm1vdXNlRG93bik7CiAKICAgICBFdmFzX0V2ZW50X01vdXNl
X1VwIG1vdXNlVXA7CiAgICAgbW91c2VVcC5idXR0b24gPSAxOwpAQCAtMTYxLDcgKzE2MCw3IEBA
IHZvaWQgR2VzdHVyZUhhbmRsZXI6OmhhbmRsZVNpbmdsZVRhcChjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24pCiAgICAgbW91c2VVcC50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CiAg
ICAgbW91c2VVcC5ldmVudF9mbGFncyA9IEVWQVNfRVZFTlRfRkxBR19OT05FOwogICAgIG1vdXNl
VXAuZGV2ID0gMDsKLSAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4obV9ld2tWaWV3LT53ZWJW
aWV3KCkpLT5zZW5kTW91c2VFdmVudCgmbW91c2VVcCk7CisgICAgbV9ld2tWaWV3LT53ZWJWaWV3
KCktPnNlbmRNb3VzZUV2ZW50KCZtb3VzZVVwKTsKIH0KIAogdm9pZCBHZXN0dXJlSGFuZGxlcjo6
aGFuZGxlRG91YmxlVGFwKGNvbnN0IEludFBvaW50JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1dlYkFjY2Vzc2liaWxpdHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvV2ViQWNjZXNzaWJpbGl0eS5jcHAKaW5kZXggMWE0YzExYjlk
YzgzYjVlODNiMjQ1OTRmMzE4Yzc3NGQ4YWE5NWY3My4uOWI4MzA0NTI4M2U3ZDg2NjFmZmVkODJm
NjVmYWRmZDdhNzlhMDNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvV2ViQWNjZXNzaWJpbGl0eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvV2ViQWNjZXNzaWJpbGl0eS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpICYmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQogCiAjaW5jbHVkZSAiRXdr
Vmlldy5oIgotI2luY2x1ZGUgIldLVmlld0VmbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggMTI2MmYyM2I5MzFjODk1ZGMzMmZkNjky
YWM4YzJkMmVmNTc2NDFjMi4uN2VmMjFhZmNkOTM0OGI2NTI2ODJlMjFhOTA3NmIxMDA0NDM3ODVl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApA
QCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1N0cmluZy5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1VSTC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KLSNpbmNsdWRlIDxX
ZWJLaXQvV0tWaWV3RWZsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9WaWV3Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmll
d0NsaWVudEVmbC5jcHAKaW5kZXggMDc1NThjNWYxYmNiYWQ3YjQ5M2QxY2NiZjRjZTZiYzk4NWJi
MmYwZC4uMzg0ZDNlNzBiMmQ0MGNlOTNkOGQ2NDhhZDhiMmU0NDJiMDFhMWE0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCkBAIC0zMyw3ICsz
Myw2IEBACiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKICNpbmNsdWRlIDxXZWJLaXQvV0tTdHJpbmcu
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLVmlld0Vm
bC5oPgogCiB1c2luZyBuYW1lc3BhY2UgRXdrVmlld0NhbGxiYWNrczsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwpAQCAtMTk4LDcgKzE5Nyw3IEBAIFZpZXdDbGllbnRFZmw6OlZpZXdDbGllbnRF
ZmwoRXdrVmlldyogdmlldykKICAgICBjb2xvclBpY2tlckNsaWVudC5iYXNlLmNsaWVudEluZm8g
PSB0aGlzOwogICAgIGNvbG9yUGlja2VyQ2xpZW50LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xv
clBpY2tlcjsKICAgICBjb2xvclBpY2tlckNsaWVudC5lbmRDb2xvclBpY2tlciA9IGVuZENvbG9y
UGlja2VyOwotICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPihtX3ZpZXctPndlYlZpZXcoKSkt
PmluaXRpYWxpemVDb2xvclBpY2tlckNsaWVudCgmY29sb3JQaWNrZXJDbGllbnQuYmFzZSk7Cisg
ICAgbV92aWV3LT53ZWJWaWV3KCktPmluaXRpYWxpemVDb2xvclBpY2tlckNsaWVudCgmY29sb3JQ
aWNrZXJDbGllbnQuYmFzZSk7CiAjZW5kaWYKIH0KIApAQCAtMjA3LDcgKzIwNiw3IEBAIFZpZXdD
bGllbnRFZmw6On5WaWV3Q2xpZW50RWZsKCkKICAgICBtX3ZpZXctPndlYlZpZXcoKS0+aW5pdGlh
bGl6ZUNsaWVudChudWxscHRyKTsKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAg
IHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPihtX3ZpZXctPndlYlZpZXcoKSktPmluaXRpYWxpemVD
b2xvclBpY2tlckNsaWVudChudWxscHRyKTsKKyAgICBtX3ZpZXctPndlYlZpZXcoKS0+aW5pdGlh
bGl6ZUNvbG9yUGlja2VyQ2xpZW50KG51bGxwdHIpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKaW5k
ZXggZjlhOWNjODZhMTc2ZTMzMTQ5ZGI4MGQ5MjBhNGNjNTBmOGRlZWZjOS4uZjdiNTE4MDlhZmEy
YTY0MzczYzY0N2E0OWE3NzM0ZTgwOTdmYjJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5jcHAKQEAgLTI2LDYgKzI2LDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb2xvclBpY2tlckNsaWVudC5o
IgogCisjaW5jbHVkZSAiV2ViVmlldy5oIgorCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJDb2xvclBpY2tlckNsaWVudC5oCmluZGV4IDA4ZGMyMDUwOGIyM2RmZDI2YWU5MmZh
OTdlY2VlZTk0NDY0NjAzZWEuLjVhZGE1ZTcxMWM2Yzk3MWQxMThjYjRiMTQyOWYzNWE1OTU4ZTgw
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNr
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlj
a2VyQ2xpZW50LmgKQEAgLTI4LDggKzI4LDggQEAKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQogI2luY2x1ZGUgIkFQSUNsaWVudC5oIgotI2luY2x1ZGUgIldLVmlld0VmbC5oIgotI2lu
Y2x1ZGUgIldlYlZpZXcuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3RWZsLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBBUEkgewogdGVtcGxhdGU8PiBz
dHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlPiB7CkBAIC0zOSw2ICsz
OSw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0NvbG9yUGlja2VyQ2xpZW50
QmFzZT4gewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViVmlldzsKKwogY2xhc3Mg
V2ViQ29sb3JQaWNrZXJDbGllbnQ6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbG9yUGlja2VyQ2xp
ZW50QmFzZT4gewogcHVibGljOgogICAgIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdlYlZpZXcqLCBj
b25zdCBTdHJpbmcmLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcAppbmRleCAw
NWQxNmRkNDcwNTdmNmNhNjgxMjZhYWMzZGQ3ZTE5NWFmY2JkZjcyLi5kMmYyNmYxNDVhNmRmYTRm
Y2Q2ODNlYThiYzgxZDY3OWRkOTY0ZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkNvbG9yUGlja2VyRWZsLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotV2ViQ29sb3JQaWNrZXJFZmw6OldlYkNvbG9yUGlja2VyRWZsKFdl
YlZpZXdFZmwqIHdlYlZpZXcsIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKQorV2ViQ29sb3JQaWNrZXJFZmw6OldlYkNvbG9yUGlja2VyRWZsKFdl
YlZpZXcqIHdlYlZpZXcsIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImKQogICAgIDogV2ViQ29sb3JQaWNrZXIoY2xpZW50KQogICAgICwgbV93ZWJW
aWV3KHdlYlZpZXcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYkNvbG9yUGlja2VyRWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNv
bG9yUGlja2VyRWZsLmgKaW5kZXggZTdjMjkxNGMyZmRmOTJkNzRiNGIwN2Y3YzMwNjkzNTU0NDk2
MWFhOC4uMGI5ZWU0ZGYzNGJmY2Y5ZWI2NGMwM2QyZTU5MGM5NTU1NGMyZjE4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb2xvclBpY2tlckVmbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29sb3JQaWNrZXJFZmwuaApAQCAtMjks
MTMgKzI5LDEzIEBACiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAjaW5jbHVkZSAiV2Vi
Q29sb3JQaWNrZXIuaCIKICNpbmNsdWRlICJXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHkuaCIKLSNpbmNsdWRlICJXZWJWaWV3RWZsLmgiCisjaW5jbHVkZSAiV2ViVmlldy5oIgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29sb3JQaWNrZXJFZmwgOiBwdWJsaWMgV2Vi
Q29sb3JQaWNrZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlj
a2VyRWZsPiBjcmVhdGUoV2ViVmlld0VmbCogd2ViVmlldywgV2ViQ29sb3JQaWNrZXI6OkNsaWVu
dCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyRWZsPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldywg
V2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5p
dGlhbENvbG9yKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBp
Y2tlckVmbCh3ZWJWaWV3LCBjbGllbnQsIGluaXRpYWxDb2xvcikpOwogICAgIH0KQEAgLTQ4LDkg
KzQ4LDkgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6
Q29sb3ImKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb2xvclBpY2tlckVmbChXZWJWaWV3RWZsKiwg
V2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgV2Vi
Q29sb3JQaWNrZXJFZmwoV2ViVmlldyosIFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYpOwogCi0gICAgV2ViVmlld0VmbCogbV93ZWJWaWV3OworICAgIFdlYlZp
ZXcqIG1fd2ViVmlldzsKICAgICBSZWZQdHI8V2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5PiBtX2NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3LmNwcAppbmRleCBiNzM0OGE1ZmZiNTVhYTFkMTdhMDJiMmI4MmQ1
NDVjMTFiYTdiZGRhLi5kMWQyZTFlMjE2NTVhZGQzZjg0MDk5OTM2YzRkZGNjODBkYTE3YzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKQEAgLTMyLDI1ICszMiw0
OCBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUg
IkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5LmgiCisjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyRWZsLmgiCisjaW5jbHVk
ZSAiRG93bmxvYWRQcm94eS5oIgorI2luY2x1ZGUgIkV3a1ZpZXcuaCIKKyNpbmNsdWRlICJJbnB1
dE1ldGhvZENvbnRleHRFZmwuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNs
dWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtLmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgorI2luY2x1ZGUgIldlYkNv
bnRleHRNZW51UHJveHlFZmwuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKLSNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQb3B1cE1lbnVMaXN0ZW5lckVmbC5oIgor
I2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtQ29udGV4dENhaXJvLmg+CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAjaW5jbHVk
ZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQorI2luY2x1ZGUgIkV3a1RvdWNoRXZlbnQuaCIKKyNlbmRpZgorCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXJFZmwuaCIKKyNl
bmRpZgorCit1c2luZyBuYW1lc3BhY2UgRXdrVmlld0NhbGxiYWNrczsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorUmVmPFdlYlZpZXc+IFdlYlZpZXc6
OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wsIEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b24mIHBhZ2VDb25maXVyYXRpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVmll
dyhwcm9jZXNzUG9vbCwgcGFnZUNvbmZpdXJhdGlvbikpOworfQorCiBXZWJWaWV3OjpXZWJWaWV3
KFdlYlByb2Nlc3NQb29sKiBjb250ZXh0LCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBwYWdlQ29u
ZmlndXJhdGlvbikKLSAgICA6IG1fZm9jdXNlZChmYWxzZSkKKyAgICA6IG1fZXdrVmlldygwKQor
ICAgICwgbV9mb2N1c2VkKGZhbHNlKQogICAgICwgbV92aXNpYmxlKGZhbHNlKQorICAgICwgbV9o
YXNSZXF1ZXN0ZWRGdWxsU2NyZWVuKGZhbHNlKQogICAgICwgbV9vcGFjaXR5KDEuMCkKIHsKICAg
ICAvLyBOZWVkIHRvIGNhbGwgY3JlYXRlV2ViUGFnZSBhZnRlciBvdGhlciBkYXRhIG1lbWJlcnMs
IHNwZWNpZmljYWxseSBtX3Zpc2libGUsIGFyZSBpbml0aWFsaXplZC4KQEAgLTc0LDYgKzk3LDc2
IEBAIFdlYlZpZXc6On5XZWJWaWV3KCkKICAgICBtX3BhZ2UtPmNsb3NlKCk7CiB9CiAKK3ZvaWQg
V2ViVmlldzo6c2V0RXdrVmlldyhFd2tWaWV3KiBld2tWaWV3KQoreworICAgIG1fZXdrVmlldyA9
IGV3a1ZpZXc7Cit9CisKK3ZvaWQgV2ViVmlldzo6cGFpbnRUb0NhaXJvU3VyZmFjZShjYWlyb19z
dXJmYWNlX3QqIHN1cmZhY2UpCit7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2Vu
ZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpOworICAgIGlmICghc2NlbmUpCisgICAgICAg
IHJldHVybjsKKworICAgIFBsYXRmb3JtQ29udGV4dENhaXJvIGNvbnRleHQoY2Fpcm9fY3JlYXRl
KHN1cmZhY2UpKTsKKworICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uID0gY29udGVudFBv
c2l0aW9uKCk7CisgICAgZG91YmxlIGVmZmVjdGl2ZVNjYWxlID0gbV9wYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpICogY29udGVudFNjYWxlRmFjdG9yKCk7CisKKyAgICBjYWlyb19tYXRyaXhfdCB0
cmFuc2Zvcm0gPSB7IGVmZmVjdGl2ZVNjYWxlLCAwLCAwLCBlZmZlY3RpdmVTY2FsZSwgLSBwb3Np
dGlvbi54KCkgKiBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCksIC0gcG9zaXRpb24ueSgpICog
bV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpIH07CisgICAgY2Fpcm9fc2V0X21hdHJpeChjb250
ZXh0LmNyKCksICZ0cmFuc2Zvcm0pOworICAgIHNjZW5lLT5wYWludFRvR3JhcGhpY3NDb250ZXh0
KCZjb250ZXh0LCBtX3BhZ2UtPnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpLCBtX3BhZ2Ut
PmRyYXdzQmFja2dyb3VuZCgpKTsKK30KKwordm9pZCBXZWJWaWV3OjpzZXRUaGVtZVBhdGgoY29u
c3QgU3RyaW5nJiB0aGVtZSkKK3sKKyAgICBtX3BhZ2UtPnNldFRoZW1lUGF0aCh0aGVtZSk7Cit9
CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordm9pZCBXZWJWaWV3OjpzZW5kVG91Y2hFdmVu
dChFd2tUb3VjaEV2ZW50KiB0b3VjaEV2ZW50KQoreworICAgIEFTU0VSVCh0b3VjaEV2ZW50KTsK
KyAgICBtX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCh0b3VjaEV2
ZW50LCB0cmFuc2Zvcm1Gcm9tU2NlbmUoKSkpOworfQorI2VuZGlmCisKK3ZvaWQgV2ViVmlldzo6
c2VuZE1vdXNlRXZlbnQoY29uc3QgRXZhc19FdmVudF9Nb3VzZV9Eb3duKiBldmVudCkKK3sKKyAg
ICBBU1NFUlQoZXZlbnQpOworICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJN
b3VzZUV2ZW50KGV2ZW50LCB0cmFuc2Zvcm1Gcm9tU2NlbmUoKSwgbV91c2VyVmlld3BvcnRUcmFu
c2Zvcm0udG9BZmZpbmVUcmFuc2Zvcm0oKSkpOworfQorCit2b2lkIFdlYlZpZXc6OnNlbmRNb3Vz
ZUV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfVXAqIGV2ZW50KQoreworICAgIEFTU0VSVChl
dmVudCk7CisgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQo
ZXZlbnQsIHRyYW5zZm9ybUZyb21TY2VuZSgpLCBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybS50b0Fm
ZmluZVRyYW5zZm9ybSgpKSk7Cit9CisKK3ZvaWQgV2ViVmlldzo6c2VuZE1vdXNlRXZlbnQoY29u
c3QgRXZhc19FdmVudF9Nb3VzZV9Nb3ZlKiBldmVudCkKK3sKKyAgICBBU1NFUlQoZXZlbnQpOwor
ICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KGV2ZW50LCB0
cmFuc2Zvcm1Gcm9tU2NlbmUoKSwgbV91c2VyVmlld3BvcnRUcmFuc2Zvcm0udG9BZmZpbmVUcmFu
c2Zvcm0oKSkpOworfQorCit2b2lkIFdlYlZpZXc6OnNldFZpZXdCYWNrZ3JvdW5kQ29sb3IoY29u
c3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZSogc2NlbmUgPSBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKKyAgICBpZiAoIXNjZW5lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBzY2VuZS0+c2V0Vmlld0JhY2tncm91bmRDb2xvcihjb2xv
cik7Cit9CisKK1dlYkNvcmU6OkNvbG9yIFdlYlZpZXc6OnZpZXdCYWNrZ3JvdW5kQ29sb3IoKQor
eworICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogc2NlbmUgPSBjb29yZGluYXRlZEdyYXBo
aWNzU2NlbmUoKTsKKyAgICBpZiAoIXNjZW5lKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKwor
ICAgIHJldHVybiBzY2VuZS0+dmlld0JhY2tncm91bmRDb2xvcigpOworfQorCiB2b2lkIFdlYlZp
ZXc6OnNldENvbnRlbnRTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBtX3Bh
Z2UtPnNjYWxlUGFnZShzY2FsZUZhY3Rvciwgcm91bmRlZEludFBvaW50KGNvbnRlbnRQb3NpdGlv
bigpKSk7CkBAIC0xODcsNiArMjgwLDQwIEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGll
bnQmIFdlYlZpZXc6OmZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKQogewogICAgIHJldHVy
biAqdGhpczsKIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorLy8gV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudAorYm9vbCBXZWJWaWV3Ojppc0Z1bGxTY3JlZW4o
KQoreworICAgIHJldHVybiBtX2hhc1JlcXVlc3RlZEZ1bGxTY3JlZW47Cit9CisKK3ZvaWQgV2Vi
Vmlldzo6ZW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBpZiAoIW1fZXdrVmlldyB8fCBtX2hhc1Jl
cXVlc3RlZEZ1bGxTY3JlZW4pCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzUmVxdWVzdGVk
RnVsbFNjcmVlbiA9IHRydWU7CisKKyAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KiBtYW5h
Z2VyID0gbV9wYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpOworICAgIG1hbmFnZXItPndpbGxFbnRl
ckZ1bGxTY3JlZW4oKTsKKyAgICBtX2V3a1ZpZXctPmVudGVyRnVsbFNjcmVlbigpOworICAgIG1h
bmFnZXItPmRpZEVudGVyRnVsbFNjcmVlbigpOworfQorCit2b2lkIFdlYlZpZXc6OmV4aXRGdWxs
U2NyZWVuKCkKK3sKKyAgICBpZiAoIW1fZXdrVmlldyB8fCAhbV9oYXNSZXF1ZXN0ZWRGdWxsU2Ny
ZWVuKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2hhc1JlcXVlc3RlZEZ1bGxTY3JlZW4gPSBm
YWxzZTsKKworICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIG1hbmFnZXIgPSBtX3BhZ2Ut
PmZ1bGxTY3JlZW5NYW5hZ2VyKCk7CisgICAgbWFuYWdlci0+d2lsbEV4aXRGdWxsU2NyZWVuKCk7
CisgICAgbV9ld2tWaWV3LT5leGl0RnVsbFNjcmVlbigpOworICAgIG1hbmFnZXItPmRpZEV4aXRG
dWxsU2NyZWVuKCk7Cit9CiAKIGJvb2wgV2ViVmlldzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkK
IHsKQEAgLTM2OSw5ICs0OTYsOSBAQCB2b2lkIFdlYlZpZXc6OmRpZENvbW1pdExvYWRGb3JNYWlu
RnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKICAgICBtX2NvbnRlbnRzU2l6ZSA9IEludFNpemUo
KTsKIH0KIAotdm9pZCBXZWJWaWV3OjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikK
K3ZvaWQgV2ViVmlldzo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9ld2tWaWV3LT5zZXRDdXJzb3IoY3Vyc29y
KTsKIH0KIAogdm9pZCBXZWJWaWV3OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9v
bCkKQEAgLTQyMywyMyArNTUwLDI3IEBAIHZvaWQgV2ViVmlldzo6ZG9uZVdpdGhUb3VjaEV2ZW50
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50LCBib29sIHdhc0V2ZW50CiB9CiAjZW5k
aWYKIAotUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBXZWJWaWV3OjpjcmVhdGVQb3B1cE1lbnVQ
cm94eShXZWJQYWdlUHJveHkmKQorUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBXZWJWaWV3Ojpj
cmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gV2ViUG9wdXBNZW51TGlz
dGVuZXJFZmw6OmNyZWF0ZSgmcGFnZSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0
TWVudVByb3h5PiBXZWJWaWV3OjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYs
IGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCitzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29udGV4dE1lbnVQcm94eT4g
V2ViVmlldzo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0
IENvbnRleHRNZW51Q29udGV4dERhdGEmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbnRleHRNZW51UHJveHlFZmw+KG1fZXdrVmlldywg
cGFnZSwgY29udGV4dCwgdXNlckRhdGEpOwogfQorI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKLVJlZlB0cjxXZWJDb2xvclBpY2tlcj4gV2ViVmlldzo6Y3JlYXRlQ29sb3JQ
aWNrZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikKK3ZvaWQgV2ViVmlldzo6aW5pdGlhbGl6ZUNvbG9yUGlja2VyQ2xpZW50KGNv
bnN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlKiBjbGllbnQpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBtX2NvbG9yUGlja2VyQ2xpZW50LmluaXRp
YWxpemUoY2xpZW50KTsKK30KKworUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBXZWJWaWV3OjpjcmVh
dGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBj
b2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpCit7CisgICAgcmV0dXJuIFdlYkNvbG9yUGlj
a2VyRWZsOjpjcmVhdGUodGhpcywgcGFnZSwgY29sb3IpOwogfQogI2VuZGlmCiAKQEAgLTQ2MCwx
MiArNTkxLDE0IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCiAKIHZvaWQgV2ViVmlldzo6dXBkYXRlVGV4dElu
cHV0U3RhdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKElucHV0TWV0aG9k
Q29udGV4dEVmbCogaW5wdXRNZXRob2RDb250ZXh0ID0gbV9ld2tWaWV3LT5pbnB1dE1ldGhvZENv
bnRleHQoKSkKKyAgICAgICAgaW5wdXRNZXRob2RDb250ZXh0LT51cGRhdGVUZXh0SW5wdXRTdGF0
ZSgpOwogfQogCi12b2lkIFdlYlZpZXc6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFBy
b3h5KikKK3ZvaWQgV2ViVmlldzo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkq
IGRvd25sb2FkKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgRXdrQ29udGV4dCogY29u
dGV4dCA9IG1fZXdrVmlldy0+ZXdrQ29udGV4dCgpOworICAgIGNvbnRleHQtPmRvd25sb2FkTWFu
YWdlcigpLT5yZWdpc3RlckRvd25sb2FkSm9iKHRvQVBJKGRvd25sb2FkKSk7CiB9CiAKIEZsb2F0
UmVjdCBXZWJWaWV3Ojpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBGbG9hdFJlY3QmIHVzZXJS
ZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAppbmRleCA4M2RlNmVmZTU3
NzNlOTMxZmYwZTA1YjhmZjRiMTljYzQ0MGJiYzYxLi5hNzc2Y2ZiYjZiOGVlYjQ0NGZjMTM2MWE0
YjM2YWU1M2Y3YjFiYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaApA
QCAtMzIsMjAgKzMyLDI4IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiRGVm
YXVsdFVuZG9Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgorI2luY2x1ZGUg
IldlYkNvbG9yUGlja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVu
Y2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xp
ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS1ZpZXdFZmwuaD4KIAogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBQYWdlQ29u
ZmlndXJhdGlvbjsKIH0KIAorY2xhc3MgRXdrVmlldzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU7CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorY2xhc3MgRXdrVG91Y2hFdmVudDsKKyNlbmRpZgorCiBjbGFzcyBXZWJWaWV3IDogcHVibGlj
IEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4sIHB1YmxpYyBQYWdlQ2xp
ZW50CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICwgcHVibGljIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlDbGllbnQKQEAgLTEwMiwxMiArMTEwLDE1IEBAIHB1YmxpYzoKICAgICAv
LyBWaWV3IGNsaWVudC4KICAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xp
ZW50QmFzZSopOwogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdm9pZCBpbml0
aWFsaXplQ29sb3JQaWNrZXJDbGllbnQoY29uc3QgV0tDb2xvclBpY2tlckNsaWVudEJhc2UqKTsK
KyAgICBXZWJDb2xvclBpY2tlckNsaWVudCYgY29sb3JQaWNrZXJDbGllbnQoKSB7IHJldHVybiBt
X2NvbG9yUGlja2VyQ2xpZW50OyB9CisjZW5kaWYKKwogICAgIFdlYlBhZ2VQcm94eSogcGFnZSgp
IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCi0gICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CiAgICAgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgY29udGVudHNTaXplKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c1NpemU7IH0K
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdmlzaWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0OwotICAg
IHZvaWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBTaG91bGQgYmVj
b21lIHByaXZhdGUgd2hlbiBXZWIgRXZlbnRzIGNyZWF0aW9uIGlzIG1vdmVkIHRvIFdlYlZpZXcu
CiAgICAgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0
OwpAQCAtMTE2LDEyICsxMjcsMzAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T3BhY2l0eShkb3Vi
bGUgb3BhY2l0eSkgeyBtX29wYWNpdHkgPSBjbGFtcFRvKG9wYWNpdHksIDAuMCwgMS4wKTsgfQog
ICAgIGRvdWJsZSBvcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9vcGFjaXR5OyB9CiAKLXByb3Rl
Y3RlZDoKKyAgICB2b2lkIHNldEV3a1ZpZXcoRXdrVmlldyopOworICAgIEV3a1ZpZXcqIGV3a1Zp
ZXcoKSB7IHJldHVybiBtX2V3a1ZpZXc7IH0KKworICAgIHZvaWQgcGFpbnRUb0NhaXJvU3VyZmFj
ZShjYWlyb19zdXJmYWNlX3QqKTsKKyAgICB2b2lkIHNldFRoZW1lUGF0aChjb25zdCBTdHJpbmcm
KTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgdm9pZCBzZW5kVG91Y2hFdmVudChF
d2tUb3VjaEV2ZW50Kik7CisjZW5kaWYKKyAgICB2b2lkIHNlbmRNb3VzZUV2ZW50KGNvbnN0IEV2
YXNfRXZlbnRfTW91c2VfRG93biopOworICAgIHZvaWQgc2VuZE1vdXNlRXZlbnQoY29uc3QgRXZh
c19FdmVudF9Nb3VzZV9VcCopOworICAgIHZvaWQgc2VuZE1vdXNlRXZlbnQoY29uc3QgRXZhc19F
dmVudF9Nb3VzZV9Nb3ZlKik7CisKKyAgICB2b2lkIHNldFZpZXdCYWNrZ3JvdW5kQ29sb3IoY29u
c3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICBXZWJDb3JlOjpDb2xvciB2aWV3QmFja2dyb3VuZENv
bG9yKCk7CisKK3ByaXZhdGU6CiAgICAgV2ViVmlldyhXZWJQcm9jZXNzUG9vbCosIEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24mKTsKKwogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogY29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lKCk7CiAKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwog
ICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBkaXBTaXplKCkgY29uc3Q7CisKICAgICAvLyBQYWdlQ2xp
ZW50CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRl
RHJhd2luZ0FyZWFQcm94eSgpIG92ZXJyaWRlOwogCkBAIC0xNTQsOCArMTgzLDE1IEBAIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVuZGVyRnJhbWUo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjb3ZlcmVkUmVjdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VUcmFuc2l0
aW9uVmlld3BvcnRSZWFkeSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmluZFpvb21hYmxlQXJl
YShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVy
cmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRleHRJbnB1dFN0YXRlKCkg
b3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25s
b2FkUHJveHkqKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworCiAgICAgdmlydHVhbCB2b2lkIHNldEN1
cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOwogCkBAIC0xNzEs
MTkgKzIwNywxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBz
Y3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRleHRJbnB1dFN0
YXRlKCkgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0
KERvd25sb2FkUHJveHkqKSBvdmVycmlkZTsKLQogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aEtl
eUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKSBvdmVycmlkZTsKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aFRvdWNoRXZl
bnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKSBvdmVy
cmlkZTsKICNlbmRpZgogCiAgICAgdmlydHVhbCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNy
ZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51
UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgY29uc3QgQ29udGV4
dE1lbnVDb250ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CisjZW5kaWYKKwog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvbG9y
UGlja2VyPiBjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IGNyZWF0ZUNvbG9yUGlja2VyKFdlYlBh
Z2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CkBAIC0xOTMs
MTUgKzIyOCwxMCBAQCBwcm90ZWN0ZWQ6CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCYgZnVsbFNjcmVlbk1hbmFnZXJQcm94
eUNsaWVudCgpIG92ZXJyaWRlOwotCi0gICAgLy8gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCBjbG9zZUZ1bGxTY3JlZW5NYW5hZ2VyKCkgb3ZlcnJpZGUg
eyB9Ci0gICAgdmlydHVhbCBib29sIGlzRnVsbFNjcmVlbigpIG92ZXJyaWRlIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpIG92ZXJyaWRlIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCBiZWdh
bkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZEZpbGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSBvdmVycmlkZSBmaW5hbCB7
IH0KKwogICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJp
ZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlV2lsbEVuZChib29sLCBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5h
dmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKSBvdmVy
cmlkZSB7IH0KQEAgLTIwOSwxMSArMjM5LDM0IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikg
b3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJl
U25hcHNob3QoKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYWNr
Z3JvdW5kQ29sb3IoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGUgZmluYWwgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZSBmaW5hbCB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJpZGUgZmluYWwgeyB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGUgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVmVmlldygpIG92ZXJyaWRlIGZpbmFsIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZSBmaW5hbCB7IH0KKworI2lmIEVOQUJMRShWSURFTykg
JiYgVVNFKEdTVFJFQU1FUikKKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFs
bE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlh
UGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH07CisjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24o
KSBvdmVycmlkZSB7IH0KIAorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICAvLyBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIGNsb3NlRnVsbFNj
cmVlbk1hbmFnZXIoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsU2NyZWVu
KCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpIG92
ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigpIG92ZXJyaWRl
IGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CisjZW5kaWYKKworICAgIEV3
a1ZpZXcqIG1fZXdrVmlldzsKKwogICAgIFdlYlZpZXdDbGllbnQgbV9jbGllbnQ7CiAgICAgUmVm
UHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogICAgIERlZmF1bHRVbmRvQ29udHJvbGxlciBtX3Vu
ZG9Db250cm9sbGVyOwpAQCAtMjIxLDkgKzI3NCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViQ29y
ZTo6SW50U2l6ZSBtX3NpemU7IC8vIFNpemUgaW4gZGV2aWNlIHVuaXRzLgogICAgIGJvb2wgbV9m
b2N1c2VkOwogICAgIGJvb2wgbV92aXNpYmxlOworICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRGdWxs
U2NyZWVuOwogICAgIGRvdWJsZSBtX29wYWNpdHk7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBt
X2NvbnRlbnRQb3NpdGlvbjsgLy8gUG9zaXRpb24gaW4gVUkgdW5pdHMuCiAgICAgV2ViQ29yZTo6
SW50U2l6ZSBtX2NvbnRlbnRzU2l6ZTsKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
ICAgIFdlYkNvbG9yUGlja2VyQ2xpZW50IG1fY29sb3JQaWNrZXJDbGllbnQ7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViVmlld0VmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4M2QxMjYzMWEx
YmQwMzAwMjE5MGE2MjkzZGNjMzUzMzAwODI4YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3
RWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIyMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViVmlld0VmbC5oIgotCi0jaW5j
bHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgiCi0jaW5jbHVkZSAiRG93bmxvYWRNYW5h
Z2VyRWZsLmgiCi0jaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgotI2luY2x1ZGUgIkV3a1ZpZXcu
aCIKLSNpbmNsdWRlICJJbnB1dE1ldGhvZENvbnRleHRFZmwuaCIKLSNpbmNsdWRlICJOYXRpdmVX
ZWJNb3VzZUV2ZW50LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudVByb3h5RWZsLmgiCi0jaW5jbHVkZSAiV2ViUG9wdXBNZW51TGlzdGVuZXJF
ZmwuaCIKLSNpbmNsdWRlICJld2tfY29udGV4dF9wcml2YXRlLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUNvbnRleHRDYWlyby5oPgotCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQot
I2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKLSNlbmRpZgotCi0jaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLSNpbmNsdWRlICJFd2tUb3VjaEV2ZW50LmgiCi0jZW5kaWYKLQot
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyRWZs
LmgiCi0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIEV3a1ZpZXdDYWxsYmFja3M7Ci11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxXZWJWaWV3PiBX
ZWJWaWV3OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sLCBBUEk6OlBhZ2VDb25m
aWd1cmF0aW9uJiBwYWdlQ29uZml1cmF0aW9uKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYlZpZXdFZmwocHJvY2Vzc1Bvb2wsIHBhZ2VDb25maXVyYXRpb24pKTsKLX0KLQotV2ViVmll
d0VmbDo6V2ViVmlld0VmbChXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wsIEFQSTo6UGFnZUNv
bmZpZ3VyYXRpb24mIHBhZ2VDb25maXVyYXRpb24pCi0gICAgOiBXZWJWaWV3KHByb2Nlc3NQb29s
LCBwYWdlQ29uZml1cmF0aW9uKQotICAgICwgbV9ld2tWaWV3KDApCi0gICAgLCBtX2hhc1JlcXVl
c3RlZEZ1bGxTY3JlZW4oZmFsc2UpCi17Ci19Ci0KLXZvaWQgV2ViVmlld0VmbDo6c2V0RXdrVmll
dyhFd2tWaWV3KiBld2tWaWV3KQotewotICAgIG1fZXdrVmlldyA9IGV3a1ZpZXc7Ci19Ci0KLXZv
aWQgV2ViVmlld0VmbDo6cGFpbnRUb0NhaXJvU3VyZmFjZShjYWlyb19zdXJmYWNlX3QqIHN1cmZh
Y2UpCi17Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2VuZSA9IGNvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZSgpOwotICAgIGlmICghc2NlbmUpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFBsYXRmb3JtQ29udGV4dENhaXJvIGNvbnRleHQoY2Fpcm9fY3JlYXRlKHN1cmZhY2UpKTsKLQot
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uID0gY29udGVudFBvc2l0aW9uKCk7Ci0gICAg
ZG91YmxlIGVmZmVjdGl2ZVNjYWxlID0gbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpICogY29u
dGVudFNjYWxlRmFjdG9yKCk7Ci0KLSAgICBjYWlyb19tYXRyaXhfdCB0cmFuc2Zvcm0gPSB7IGVm
ZmVjdGl2ZVNjYWxlLCAwLCAwLCBlZmZlY3RpdmVTY2FsZSwgLSBwb3NpdGlvbi54KCkgKiBtX3Bh
Z2UtPmRldmljZVNjYWxlRmFjdG9yKCksIC0gcG9zaXRpb24ueSgpICogbV9wYWdlLT5kZXZpY2VT
Y2FsZUZhY3RvcigpIH07Ci0gICAgY2Fpcm9fc2V0X21hdHJpeChjb250ZXh0LmNyKCksICZ0cmFu
c2Zvcm0pOwotICAgIHNjZW5lLT5wYWludFRvR3JhcGhpY3NDb250ZXh0KCZjb250ZXh0LCBtX3Bh
Z2UtPnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpLCBtX3BhZ2UtPmRyYXdzQmFja2dyb3Vu
ZCgpKTsKLX0KLQotUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBXZWJWaWV3RWZsOjpjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCi17Ci0gICAgcmV0dXJuIFdlYlBvcHVw
TWVudUxpc3RlbmVyRWZsOjpjcmVhdGUoJnBhZ2UpOwotfQotCi0jaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gV2ViVmlld0VmbDo6
Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IENvbnRleHRN
ZW51Q29udGV4dERhdGEmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKLXsKLSAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJDb250ZXh0TWVudVByb3h5RWZsPihtX2V3a1Zp
ZXcsIHBhZ2UsIGNvbnRleHQsIHVzZXJEYXRhKTsKLX0KLSNlbmRpZgotCi12b2lkIFdlYlZpZXdF
Zmw6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKLXsKLSAgICBtX2V3a1ZpZXctPnNl
dEN1cnNvcihjdXJzb3IpOwotfQotCi12b2lkIFdlYlZpZXdFZmw6OnVwZGF0ZVRleHRJbnB1dFN0
YXRlKCkKLXsKLSAgICBpZiAoSW5wdXRNZXRob2RDb250ZXh0RWZsKiBpbnB1dE1ldGhvZENvbnRl
eHQgPSBtX2V3a1ZpZXctPmlucHV0TWV0aG9kQ29udGV4dCgpKQotICAgICAgICBpbnB1dE1ldGhv
ZENvbnRleHQtPnVwZGF0ZVRleHRJbnB1dFN0YXRlKCk7Ci19Ci0KLXZvaWQgV2ViVmlld0VmbDo6
aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqIGRvd25sb2FkKQotewotICAgIEV3
a0NvbnRleHQqIGNvbnRleHQgPSBtX2V3a1ZpZXctPmV3a0NvbnRleHQoKTsKLSAgICBjb250ZXh0
LT5kb3dubG9hZE1hbmFnZXIoKS0+cmVnaXN0ZXJEb3dubG9hZEpvYih0b0FQSShkb3dubG9hZCkp
OwotfQotCi12b2lkIFdlYlZpZXdFZmw6OnNldFRoZW1lUGF0aChjb25zdCBTdHJpbmcmIHRoZW1l
KQotewotICAgIG1fcGFnZS0+c2V0VGhlbWVQYXRoKHRoZW1lKTsKLX0KLQotI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCi12b2lkIFdlYlZpZXdFZmw6OnNlbmRUb3VjaEV2ZW50KEV3a1RvdWNoRXZl
bnQqIHRvdWNoRXZlbnQpCi17Ci0gICAgQVNTRVJUKHRvdWNoRXZlbnQpOwotICAgIG1fcGFnZS0+
aGFuZGxlVG91Y2hFdmVudChOYXRpdmVXZWJUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIHRyYW5zZm9y
bUZyb21TY2VuZSgpKSk7Ci19Ci0jZW5kaWYKLQotdm9pZCBXZWJWaWV3RWZsOjpzZW5kTW91c2VF
dmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGV2ZW50KQotewotICAgIEFTU0VSVChl
dmVudCk7Ci0gICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQo
ZXZlbnQsIHRyYW5zZm9ybUZyb21TY2VuZSgpLCBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybS50b0Fm
ZmluZVRyYW5zZm9ybSgpKSk7Ci19Ci0KLXZvaWQgV2ViVmlld0VmbDo6c2VuZE1vdXNlRXZlbnQo
Y29uc3QgRXZhc19FdmVudF9Nb3VzZV9VcCogZXZlbnQpCi17Ci0gICAgQVNTRVJUKGV2ZW50KTsK
LSAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudChldmVudCwg
dHJhbnNmb3JtRnJvbVNjZW5lKCksIG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtLnRvQWZmaW5lVHJh
bnNmb3JtKCkpKTsKLX0KLQotdm9pZCBXZWJWaWV3RWZsOjpzZW5kTW91c2VFdmVudChjb25zdCBF
dmFzX0V2ZW50X01vdXNlX01vdmUqIGV2ZW50KQotewotICAgIEFTU0VSVChldmVudCk7Ci0gICAg
bV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHRyYW5z
Zm9ybUZyb21TY2VuZSgpLCBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybS50b0FmZmluZVRyYW5zZm9y
bSgpKSk7Ci19Ci0KLXZvaWQgV2ViVmlld0VmbDo6c2V0Vmlld0JhY2tncm91bmRDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCi17Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
KiBzY2VuZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpOwotICAgIGlmICghc2NlbmUpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHNjZW5lLT5zZXRWaWV3QmFja2dyb3VuZENvbG9yKGNvbG9y
KTsKLX0KLQotV2ViQ29yZTo6Q29sb3IgV2ViVmlld0VmbDo6dmlld0JhY2tncm91bmRDb2xvcigp
Ci17Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2VuZSA9IGNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZSgpOwotICAgIGlmICghc2NlbmUpCi0gICAgICAgIHJldHVybiBDb2xvcigpOwot
Ci0gICAgcmV0dXJuIHNjZW5lLT52aWV3QmFja2dyb3VuZENvbG9yKCk7Ci19Ci0KLSNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCi0KLS8vIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQK
LWJvb2wgV2ViVmlld0VmbDo6aXNGdWxsU2NyZWVuKCkKLXsKLSAgICByZXR1cm4gbV9oYXNSZXF1
ZXN0ZWRGdWxsU2NyZWVuOwotfQotCi12b2lkIFdlYlZpZXdFZmw6OmVudGVyRnVsbFNjcmVlbigp
Ci17Ci0gICAgaWYgKCFtX2V3a1ZpZXcgfHwgbV9oYXNSZXF1ZXN0ZWRGdWxsU2NyZWVuKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX2hhc1JlcXVlc3RlZEZ1bGxTY3JlZW4gPSB0cnVlOwotCi0g
ICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogbWFuYWdlciA9IG1fcGFnZS0+ZnVsbFNjcmVl
bk1hbmFnZXIoKTsKLSAgICBtYW5hZ2VyLT53aWxsRW50ZXJGdWxsU2NyZWVuKCk7Ci0gICAgbV9l
d2tWaWV3LT5lbnRlckZ1bGxTY3JlZW4oKTsKLSAgICBtYW5hZ2VyLT5kaWRFbnRlckZ1bGxTY3Jl
ZW4oKTsKLX0KLQotdm9pZCBXZWJWaWV3RWZsOjpleGl0RnVsbFNjcmVlbigpCi17Ci0gICAgaWYg
KCFtX2V3a1ZpZXcgfHwgIW1faGFzUmVxdWVzdGVkRnVsbFNjcmVlbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV9oYXNSZXF1ZXN0ZWRGdWxsU2NyZWVuID0gZmFsc2U7Ci0KLSAgICBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5KiBtYW5hZ2VyID0gbV9wYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigp
OwotICAgIG1hbmFnZXItPndpbGxFeGl0RnVsbFNjcmVlbigpOwotICAgIG1fZXdrVmlldy0+ZXhp
dEZ1bGxTY3JlZW4oKTsKLSAgICBtYW5hZ2VyLT5kaWRFeGl0RnVsbFNjcmVlbigpOwotfQotI2Vu
ZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLQotdm9pZCBXZWJWaWV3RWZsOjpkaWRGaW5p
c2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLSNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXZvaWQgV2ViVmlld0VmbDo6aW5pdGlhbGl6ZUNv
bG9yUGlja2VyQ2xpZW50KGNvbnN0IFdLQ29sb3JQaWNrZXJDbGllbnRCYXNlKiBjbGllbnQpCi17
Ci0gICAgbV9jb2xvclBpY2tlckNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Ci19Ci0KLVJlZlB0
cjxXZWJDb2xvclBpY2tlcj4gV2ViVmlld0VmbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVBy
b3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKQotewotICAgIHJldHVybiBXZWJDb2xvclBpY2tlckVmbDo6Y3JlYXRlKHRoaXMsIHBh
Z2UsIGNvbG9yKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI0YmNkOTNhNjA5MGZmNzY0YjVmNjk2ZDViYzMwYmNkNzYwMmM4ZGIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWV3RWZsX2gKLSNkZWZpbmUgV2ViVmll
d0VmbF9oCi0KLSNpbmNsdWRlICJXZWJDb2xvclBpY2tlckNsaWVudC5oIgotI2luY2x1ZGUgIldl
YlZpZXcuaCIKLQotY2xhc3MgRXdrVmlldzsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLSNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotY2xhc3MgRXdrVG91Y2hFdmVudDsKLSNlbmRpZgotCi1jbGFz
cyBXZWJWaWV3RWZsIDogcHVibGljIFdlYlZpZXcKLSAgICB7Ci1wdWJsaWM6Ci0gICAgdm9pZCBz
ZXRFd2tWaWV3KEV3a1ZpZXcqKTsKLSAgICBFd2tWaWV3KiBld2tWaWV3KCkgeyByZXR1cm4gbV9l
d2tWaWV3OyB9Ci0KLSAgICB2b2lkIHBhaW50VG9DYWlyb1N1cmZhY2UoY2Fpcm9fc3VyZmFjZV90
Kik7Ci0gICAgdm9pZCBzZXRUaGVtZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0KLSNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIHZvaWQgc2VuZFRvdWNoRXZlbnQoRXdrVG91Y2hFdmVudCopOwot
I2VuZGlmCi0gICAgdm9pZCBzZW5kTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rv
d24qKTsKLSAgICB2b2lkIHNlbmRNb3VzZUV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfVXAq
KTsKLSAgICB2b2lkIHNlbmRNb3VzZUV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfTW92ZSop
OwotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdm9pZCBpbml0aWFsaXplQ29s
b3JQaWNrZXJDbGllbnQoY29uc3QgV0tDb2xvclBpY2tlckNsaWVudEJhc2UqKTsKLQotICAgIFdl
YkNvbG9yUGlja2VyQ2xpZW50JiBjb2xvclBpY2tlckNsaWVudCgpIHsgcmV0dXJuIG1fY29sb3JQ
aWNrZXJDbGllbnQ7IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRl
Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Ci0jZW5kaWYKLQotICAgIHZvaWQgc2V0Vmlld0Jh
Y2tncm91bmRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOwotICAgIFdlYkNvcmU6OkNvbG9y
IHZpZXdCYWNrZ3JvdW5kQ29sb3IoKTsKLXByaXZhdGU6Ci0gICAgV2ViVmlld0VmbChXZWJQcm9j
ZXNzUG9vbCosIEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mKTsKLQotICAgIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOwotICAgIFJlZlB0cjxXZWJQb3B1cE1l
bnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgaGFuZGxl
RG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBvdmVycmlkZTsKLQotI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51
UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgY29uc3QgQ29udGV4
dE1lbnVDb250ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7Ci0jZW5kaWYKLQot
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAvLyBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlRnVsbFNjcmVlbk1hbmFnZXIoKSBvdmVy
cmlkZSBmaW5hbCB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsU2NyZWVuKCkgb3ZlcnJpZGUg
ZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpIG92ZXJyaWRlIGZpbmFs
OwotICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigpIG92ZXJyaWRlIGZpbmFsOwotICAg
IHZpcnR1YWwgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlIGZpbmFsIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUgZmluYWwgeyB9Ci0jZW5kaWYKLQotICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
KSBvdmVycmlkZSBmaW5hbDsKLQotICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZSBmaW5hbCB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlIGZpbmFsIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZSBmaW5hbCB7IH0KLQotICAgIHZpcnR1YWwg
dm9pZCByZWZWaWV3KCkgb3ZlcnJpZGUgZmluYWwgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVm
VmlldygpIG92ZXJyaWRlIGZpbmFsIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVT
Y3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlIGZpbmFsIHsgfQotCi0jaWYgRU5BQkxFKFZJREVPKSAm
JiBVU0UoR1NUUkVBTUVSKQotICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQ
bHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKSBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBmYWxzZTsg
fTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIEV3a1ZpZXcqIG1fZXdrVmlldzsKLSAgICBib29s
IG1faGFzUmVxdWVzdGVkRnVsbFNjcmVlbjsKLQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQotICAgIFdlYkNvbG9yUGlja2VyQ2xpZW50IG1fY29sb3JQaWNrZXJDbGllbnQ7Ci0jZW5kaWYK
LQotICAgIGZyaWVuZCBjbGFzcyBXZWJWaWV3OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0KLSNlbmRpZiAvLyBXZWJWaWV3RWZsX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>