<?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>95264</bug_id>
          
          <creation_ts>2012-08-28 16:49:26 -0700</creation_ts>
          <short_desc>[EFL] Move several files to remove webkit1 dependency from WebCore.</short_desc>
          <delta_ts>2012-08-29 01:02:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (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>95307</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>706879</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-28 16:49:26 -0700</bug_when>
    <thetext>Below files are WebKit1 specfic files so that they should be in WebKit/efl.
- platform/efl/ColorChooserEfl.cpp
- platform/efl/PopupMenuEfl.cpp
- platform/efl/SearchPopupMenuEfl.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706889</commentid>
    <comment_count>1</comment_count>
      <attachid>161093</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-28 17:00:21 -0700</bug_when>
    <thetext>Created attachment 161093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706933</commentid>
    <comment_count>2</comment_count>
      <attachid>161093</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-08-28 17:49:16 -0700</bug_when>
    <thetext>Comment on attachment 161093
Patch

Not having a dependency on WebCoreSupport in WebCore is definitely a plus. Do you know if these files are normally in the WebKit layer for other ports as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706951</commentid>
    <comment_count>3</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-28 18:07:16 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 161093 [details])
&gt; Not having a dependency on WebCoreSupport in WebCore is definitely a plus. Do you know if these files are normally in the WebKit layer for other ports as well?

It depends on port.
For Qt, they are in WebCoreSupport.
But for gtk, they are in WebCore/platform.

In case of Gtk port, they don&apos;t have dependency on WebCoreSupport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706991</commentid>
    <comment_count>4</comment_count>
      <attachid>161093</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-28 19:06:22 -0700</bug_when>
    <thetext>Comment on attachment 161093
Patch

Attachment 161093 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13690002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706998</commentid>
    <comment_count>5</comment_count>
      <attachid>161117</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-28 19:19:57 -0700</bug_when>
    <thetext>Created attachment 161117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707185</commentid>
    <comment_count>6</comment_count>
      <attachid>161117</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-29 00:42:06 -0700</bug_when>
    <thetext>Comment on attachment 161117
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=161117&amp;action=review

LGTM

&gt; Source/WebKit/efl/WebCoreSupport/PopupMenuEfl.h:36
&gt; +    PopupMenuEfl(PopupMenuClient*);

Could you please add *explicit* keyword in new bug ?

&gt; Source/WebKit/efl/WebCoreSupport/SearchPopupMenuEfl.h:31
&gt; +    SearchPopupMenuEfl(PopupMenuClient*);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707201</commentid>
    <comment_count>7</comment_count>
      <attachid>161117</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 01:02:31 -0700</bug_when>
    <thetext>Comment on attachment 161117
Patch

Clearing flags on attachment: 161117

Committed r126971: &lt;http://trac.webkit.org/changeset/126971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707202</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 01:02:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161093</attachid>
            <date>2012-08-28 17:00:21 -0700</date>
            <delta_ts>2012-08-28 19:19:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95264-20120829090010.patch</filename>
            <type>text/plain</type>
            <size>32997</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZmYzJjNjAwMjM3ZjQ5
ZTdlZTY1YzczMGFhMWVlOTFmYWU0MTE5ZS4uNDJlOTUwN2ZiYzdiNGI0ZTJiNzNkNDNmY2E5ZjZk
MjBkNThkYThmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA4LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIHNl
dmVyYWwgZmlsZXMgdG8gcmVtb3ZlIHdlYmtpdDEgZGVwZW5kZW5jeSBmcm9tIFdlYkNvcmUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTI2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbG9yQ2hvb3Nl
ckVmbC5jcHAsIFBvcHVwTWVudUVmbC5jcHAgYW5kIFNlYXJjaFBvcHVwTWVudUVmbC5jcHAgYXJl
IFdlYktpdDEvRWZsCisgICAgICAgIHNwZWNpZmljIGZpbGVzIGFuZCB0aGV5IGNhbiBub3QgYmUg
c2hhcmVkIHdpdGggV2ViS2l0Mi9FZmwuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gcmVtb3ZlIFdl
YktpdCBkZXBlbmRlbmN5IGZyb20gV2ViQ29yZSwgdGhpcyBwYXRjaCBtb3ZlcyB0aGVtCisgICAg
ICAgIHRvIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQuCisKKyAgICAgICAgTm8gYmVoYXZpb3Ig
Y2hhbmdlLiBKdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFr
ZTogcmVtb3ZlZCBmaWxlcyB3aGljaCBtb3ZlZCBmcm9tIHNvdXJjZXMgYW5kIFdlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQgZnJvbSBpbmNsdWRlcy4KKwogMjAxMi0wOC0yNyAgQWxleGFuZHJ1IENo
aWN1bGl0YSAgPGFjaGljdUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBGaWx0ZXJzXSBGaWx0
ZXJzIHNob3VsZCByZW5kZXIgdXNpbmcgc1JHQiB1bnRpbCB0aGUgc3BlY2lmaWNhdGlvbiBzYXlz
IGhvdyBpdCB3b3JrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4NGY0ZTNkYmY3Nzc5NTRlM2Q0OTEzM2EwM2RjZTY5
YzU2NjJkOTc4Li4wOGVkZDNlZDQ5NDQ1MWNlMWM4N2FmOTRlNDcwOTI5NTk1ODgxNWNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA4LTI4ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hv
aUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIHNldmVyYWwgZmlsZXMgdG8gcmVt
b3ZlIHdlYmtpdDEgZGVwZW5kZW5jeSBmcm9tIFdlYkNvcmUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkIGZp
bGVzIHdoaWNoIGlzIG1vdmVkLgorCiAyMDEyLTA4LTI4ICBUaGlhZ28gTWFyY29zIFAuIFNhbnRv
cyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFJlbmFtZSBrbm9i
IGltYWdlcyB0byB0aHVtYiBvbiB0aGUgZGVmYXVsdCB0aGVtZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4
IDU5ZGY0YWU2Y2I4YjIxMWMxOTQxMjUxNWM1N2IxMjgwMzIxMTRlZTcuLmM5MDg1MmE1MmYyNjhi
ZDc3N2ExNjBhNTZiNDc5MzlhYzRkYTVhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
OCBAQAorMjAxMi0wOC0yOCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF0gTW92ZSBzZXZlcmFsIGZpbGVzIHRvIHJlbW92ZSB3ZWJraXQxIGRlcGVu
ZGVuY3kgZnJvbSBXZWJDb3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTUyNjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDb2xvckNob29zZXJFZmwuY3BwLCBQb3B1cE1lbnVFZmwuY3BwIGFuZCBTZWFy
Y2hQb3B1cE1lbnVFZmwuY3BwIGFyZSBXZWJLaXQxL0VmbAorICAgICAgICBzcGVjaWZpYyBmaWxl
cyBhbmQgdGhleSBjYW4gbm90IGJlIHNoYXJlZCB3aXRoIFdlYktpdDIvRWZsLgorCisgICAgICAg
IEluIG9yZGVyIHRvIHJlbW92ZSBXZWJLaXQgZGVwZW5kZW5jeSBmcm9tIFdlYkNvcmUsIHRoaXMg
cGF0Y2ggbW92ZXMgdGhlbQorICAgICAgICB0byBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29sb3JDaG9vc2VyRWZsLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuY3BwLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJFZmw6OkNvbG9y
Q2hvb3NlckVmbCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJFZmw6On5Db2xvckNo
b29zZXJFZmwpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyRWZsOjpzZXRTZWxlY3Rl
ZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckVmbDo6ZW5kQ2hvb3Nlcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29sb3JDaG9vc2VyRWZsLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmguCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKENvbG9yQ2hvb3NlckVmbCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvUG9wdXBNZW51RWZsLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVFZmw6On5Qb3B1cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51RWZsOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6aGlkZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6ZGlzY29ubmVjdENsaWVudCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51RWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVFZmw6OmNsaWVu
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
Y3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVFZmw6OlNlYXJjaFBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVFZmw6OnBvcHVwTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVF
Zmw6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnVFZmw6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnVFZmw6OmVuYWJsZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVw
TWVudUVmbC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJj
aFBvcHVwTWVudUVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTZWFyY2hQb3B1
cE1lbnVFZmwpOgorCiAyMDEyLTA4LTI4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI2OTE0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAyNWMzNWQ1N2NmMjQzNjM2NDg0NjYzMmJkOTAx
ZGY4YjA0ZGVmMmI2Li44ODhkNTQ1MjZhMGQyMTE5NWU4OTY3ZmRjNGI5YzcyMmE5ODVjYWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTMsNyArMTMsNiBAQCBMSVNUKEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25l
dHdvcmsvc291cCIKICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZWZsIgogICAiJHtX
RUJDT1JFX0RJUn0vcGx1Z2lucy9lZmwiCi0gICIke1dFQktJVF9ESVJ9L2VmbC9XZWJDb3JlU3Vw
cG9ydCIKICkKIAogTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCkBAIC0yMyw3ICsyMiw2IEBA
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICBwbGF0Zm9ybS9DdXJzb3IuY3BwCiAgIHBs
YXRmb3JtL2VmbC9CYXR0ZXJ5UHJvdmlkZXJFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9DbGlwYm9h
cmRFZmwuY3BwCi0gIHBsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuY3BwCiAgIHBsYXRmb3Jt
L2VmbC9Db250ZXh0TWVudUVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVm
bC5jcHAKICAgcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKQEAgLTQ2LDE0ICs0NCwxMiBAQCBM
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VF
dmVudEVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAogICBwbGF0
Zm9ybS9lZmwvUGxhdGZvcm1XaGVlbEV2ZW50RWZsLmNwcAotICBwbGF0Zm9ybS9lZmwvUG9wdXBN
ZW51RWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvUmVmUHRyRWZsLmNwcAogICBwbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9SdW5Mb29wRWZsLmNwcAogICBwbGF0
Zm9ybS9lZmwvU2Nyb2xsVmlld0VmbC5jcHAKICAgcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5j
cHAKICAgcGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmNwcAotICBwbGF0Zm9ybS9lZmwv
U2VhcmNoUG9wdXBNZW51RWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvU2hhcmVkQnVmZmVyRWZsLmNw
cAogICBwbGF0Zm9ybS9lZmwvU2hhcmVkVGltZXJFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9Tb3Vu
ZEVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db2xvckNo
b29zZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbG9yQ2hvb3NlckVm
bC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMDNiZTFlNWUzM2Y4ZTY1MTg3
YmFiM2YzMmFhNWRlYTBkYmJkZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbG9yQ2hvb3NlckVmbC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAy
MDEyLCBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6Ci0gKgotICogKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKLSAqICAgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
LSAqICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbgotICogICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRl
bCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5Ci0gKiAg
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQKLSAqICAgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UKLSAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotICogTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotICogUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCi0KLSNpbmNsdWRlICJDb2xvckNob29zZXJFZmwuaCIKLQotI2luY2x1ZGUgIkNo
cm9tZUNsaWVudEVmbC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNvbG9yQ2hvb3NlckVm
bDo6Q29sb3JDaG9vc2VyRWZsKENocm9tZUNsaWVudEVmbCogY2hyb21lQ2xpZW50KQotICAgIDog
bV9jaHJvbWVDbGllbnQoY2hyb21lQ2xpZW50KQotewotICAgIEFTU0VSVChtX2Nocm9tZUNsaWVu
dCk7Ci19Ci0KLUNvbG9yQ2hvb3NlckVmbDo6fkNvbG9yQ2hvb3NlckVmbCgpCi17Ci19Ci0KLXZv
aWQgQ29sb3JDaG9vc2VyRWZsOjpzZXRTZWxlY3RlZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikK
LXsKLSAgICBtX2Nocm9tZUNsaWVudC0+dXBkYXRlQ29sb3JDaG9vc2VyKGNvbG9yKTsKLX0KLQot
dm9pZCBDb2xvckNob29zZXJFZmw6OmVuZENob29zZXIoKQotewotICAgIG1fY2hyb21lQ2xpZW50
LT5yZW1vdmVDb2xvckNob29zZXIoKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29s
b3JDaG9vc2VyRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2Vy
RWZsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxYzhkMDYyZGYyYjExZWZmZDk4
YTEyZmY3YTg4ZDFjY2EyN2QzMWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbG9yQ2hvb3NlckVmbC5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAx
MiwgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgotICoKLSAqICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gKiAgIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0g
KiAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24KLSAqICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAqIE5laXRoZXIgdGhlIG5hbWUgb2YgSW50ZWwg
Q29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQotICogICBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0Ci0gKiAgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKLSAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgQ29sb3JDaG9vc2VyRWZsX2gKLSNkZWZpbmUgQ29sb3JDaG9v
c2VyRWZsX2gKLQotI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgi
Ci0KLSNpbmNsdWRlIDxFdmFzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2hy
b21lQ2xpZW50RWZsOwotCi1jbGFzcyBDb2xvckNob29zZXJFZmwgOiBwdWJsaWMgQ29sb3JDaG9v
c2VyIHsKLXB1YmxpYzoKLSAgICBDb2xvckNob29zZXJFZmwoQ2hyb21lQ2xpZW50RWZsKik7Ci0g
ICAgfkNvbG9yQ2hvb3NlckVmbCgpOwotCi0gICAgLy8gQ29sb3JDaG9vc2VyIGltcGxlbWVudGF0
aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IENvbG9yJik7Ci0g
ICAgdmlydHVhbCB2b2lkIGVuZENob29zZXIoKTsKLQotcHJpdmF0ZToKLSAgICBDaHJvbWVDbGll
bnRFZmwqIG1fY2hyb21lQ2xpZW50OwotfTsKLQotfQotCi0jZW5kaWYgLy8gQ29sb3JDaG9vc2Vy
RWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVF
ZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxOTVjY2M1ZjllNWYxN2U0ODQxNmJlOTViNzEz
NGMxZTM4M2MzNWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw4MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRU
IC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKLSAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgotCi0jaW5jbHVkZSAiQ2hyb21lLmgiCi0jaW5j
bHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBhZ2Uu
aCIKLSNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1Qb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAg
ICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQotICAgICwgbV92aWV3KDApCi17Ci19Ci0KLVBvcHVw
TWVudUVmbDo6flBvcHVwTWVudUVmbCgpCi17Ci0gICAgLy8gVGVsbCBjbGllbnQgdG8gZGVzdHJv
eSBkYXRhIHJlbGF0ZWQgdG8gdGhpcyBwb3B1cCBzaW5jZSB0aGlzIG9iamVjdCBpcwotICAgIC8v
IGdvaW5nIGF3YXkuCi0gICAgaWYgKG1fdmlldykKLSAgICAgICAgaGlkZSgpOwotfQotCi12b2lk
IFBvcHVwTWVudUVmbDo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcs
IGludCBpbmRleCkKLXsKLSAgICBBU1NFUlQobV9wb3B1cENsaWVudCk7Ci0gICAgQ2hyb21lQ2xp
ZW50RWZsKiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRFZmwqPih2aWV3
LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7Ci0gICAgQVNTRVJUKGNocm9t
ZUNsaWVudCk7Ci0KLSAgICBtX3ZpZXcgPSB2aWV3OwotICAgIGNocm9tZUNsaWVudC0+Y3JlYXRl
U2VsZWN0UG9wdXAobV9wb3B1cENsaWVudCwgaW5kZXgsIHJlY3QpOwotfQotCi12b2lkIFBvcHVw
TWVudUVmbDo6aGlkZSgpCi17Ci0gICAgQVNTRVJUKG1fdmlldyk7Ci0gICAgQ2hyb21lQ2xpZW50
RWZsKiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRFZmwqPihtX3ZpZXct
PmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKLSAgICBBU1NFUlQoY2hyb21l
Q2xpZW50KTsKLQotICAgIGNocm9tZUNsaWVudC0+ZGVzdHJveVNlbGVjdFBvcHVwKCk7Ci19Ci0K
LXZvaWQgUG9wdXBNZW51RWZsOjp1cGRhdGVGcm9tRWxlbWVudCgpCi17Ci0gICAgY2xpZW50KCkt
PnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2VsZWN0ZWRJbmRleCgpKTsKLX0KLQotdm9pZCBQ
b3B1cE1lbnVFZmw6OmRpc2Nvbm5lY3RDbGllbnQoKQotewotICAgIG1fcG9wdXBDbGllbnQgPSAw
OwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBN
ZW51RWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhMmRiZmM4NDcwNGM4NDZiNzhkOTkyNzEwNGU1
MDc4NzU4YjQ0ZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5oCisrKyAvZGV2L251
bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgUG9wdXBNZW51RWZs
X2gKLSNkZWZpbmUgUG9wdXBNZW51RWZsX2gKLQotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNs
dWRlICJQb3B1cE1lbnUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRnJhbWVW
aWV3OwotY2xhc3MgU2Nyb2xsYmFyOwotY2xhc3MgUG9wdXBNZW51Q2xpZW50OwotCi1jbGFzcyBQ
b3B1cE1lbnVFZmwgOiBwdWJsaWMgUG9wdXBNZW51IHsKLXB1YmxpYzoKLSAgICBQb3B1cE1lbnVF
ZmwoUG9wdXBNZW51Q2xpZW50Kik7Ci0gICAgflBvcHVwTWVudUVmbCgpOwotCi0gICAgdmlydHVh
bCB2b2lkIHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCBpbmRleCk7Ci0gICAg
dmlydHVhbCB2b2lkIGhpZGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpOwotCi1wcml2YXRlOgotICAg
IFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsg
fQotCi0gICAgUG9wdXBNZW51Q2xpZW50KiBtX3BvcHVwQ2xpZW50OwotICAgIEZyYW1lVmlldyog
bV92aWV3OwotfTsKLQotfQotCi0jZW5kaWYgLy8gUG9wdXBNZW51RWZsX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZWNiMDkyZGIyM2M3OTVjNDA3ZWQwYjg5MjgzOTBjZjE2
NWM0ZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0g
SW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0g
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
RWZsLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLVNlYXJjaFBvcHVwTWVudUVmbDo6U2VhcmNoUG9wdXBNZW51RWZsKFBvcHVwTWVudUNs
aWVudCogY2xpZW50KQotICAgIDogbV9wb3B1cChhZG9wdFJlZihuZXcgUG9wdXBNZW51RWZsKGNs
aWVudCkpKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLVBvcHVwTWVudSogU2VhcmNo
UG9wdXBNZW51RWZsOjpwb3B1cE1lbnUoKQotewotICAgIHJldHVybiBtX3BvcHVwLmdldCgpOwot
fQotCi12b2lkIFNlYXJjaFBvcHVwTWVudUVmbDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCi12b2lkIFNlYXJjaFBvcHVwTWVudUVmbDo6bG9hZFJlY2VudFNlYXJjaGVzKGNv
bnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCi1ib29sIFNlYXJjaFBvcHVwTWVudUVmbDo6ZW5hYmxlZCgpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZmZiNjJlNDE5NjJmNzM3ZjQ2NDBkYzQ1Zjg5NTc0NDkyN2VjNDRhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuaAorKysgL2Rldi9udWxsCkBAIC0x
LDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVF
ZmxfaAotI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVFZmxfaAotCi0jaW5jbHVkZSAiUG9wdXBNZW51
RWZsLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgU2VhcmNoUG9wdXBNZW51RWZsIDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7
Ci1wdWJsaWM6Ci0gICAgU2VhcmNoUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCopOwotCi0g
ICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOwotICAgIHZpcnR1YWwgdm9pZCBzYXZl
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc2VhcmNoSXRlbXMpOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwot
ICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFBvcHVw
TWVudUVmbD4gbV9wb3B1cDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudUVm
bF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA4YWUyNWMxYmM0ZjE4YzkzYjAwZThlYWU1
MGI5YmIwYzliODM4ZDc5Li5kOGQyZmI1OGMxMzdiMjQ3ODY0MDJlYjgxYTBkNjQyNmQwMmY3MDgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTg4LDYgKzg4LDcgQEAgTElTVChBUFBFTkQg
V2ViS2l0X1NPVVJDRVMKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVt
cy5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVmbC5jcHAKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3Vw
cG9ydC9Db2xvckNob29zZXJFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RldmljZU9y
aWVudGF0aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rp
b25DbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRFZmwuY3Bw
CkBAIC0xMDMsNiArMTA0LDggQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwv
V2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50RWZsLmNwcAogICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9y
dC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwIAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Qb3B1
cE1lbnVFZmwuY3BwCisgICAgZWZsL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5j
cHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvU3RvcmFnZVRyYWNrZXJDbGllbnRFZmwuY3BwCiAg
ICAgZWZsL1dlYkNvcmVTdXBwb3J0L1ZpYnJhdGlvbkNsaWVudEVmbC5jcHAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29sb3JDaG9vc2VyRWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbG9yQ2hvb3NlckVmbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODAwM2JlMWU1ZTMzZjhlNjUxODdiYWIzZjMyYWE1ZGVhMGRiYmRlZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbG9yQ2hvb3Nl
ckVmbC5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiwgSW50
ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Ogor
ICoKKyAqICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCisgKiAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24KKyAqICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAqIE5laXRoZXIgdGhlIG5hbWUgb2YgSW50ZWwgQ29ycG9y
YXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogICBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0CisgKiAgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQorCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyRWZsLmgiCisKKyNpbmNsdWRlICJDaHJvbWVDbGll
bnRFZmwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb2xvckNob29zZXJFZmw6OkNvbG9y
Q2hvb3NlckVmbChDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVudCkKKyAgICA6IG1fY2hyb21l
Q2xpZW50KGNocm9tZUNsaWVudCkKK3sKKyAgICBBU1NFUlQobV9jaHJvbWVDbGllbnQpOworfQor
CitDb2xvckNob29zZXJFZmw6On5Db2xvckNob29zZXJFZmwoKQoreworfQorCit2b2lkIENvbG9y
Q2hvb3NlckVmbDo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAg
bV9jaHJvbWVDbGllbnQtPnVwZGF0ZUNvbG9yQ2hvb3Nlcihjb2xvcik7Cit9CisKK3ZvaWQgQ29s
b3JDaG9vc2VyRWZsOjplbmRDaG9vc2VyKCkKK3sKKyAgICBtX2Nocm9tZUNsaWVudC0+cmVtb3Zl
Q29sb3JDaG9vc2VyKCk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29sb3JD
aG9vc2VyRWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db2xvckNob29z
ZXJFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMWM4ZDA2MmRmMmIxMWVmZmQ5OGExMmZmN2E4OGQxY2NhMjdk
MzFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q29sb3JDaG9vc2VyRWZsLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg
MjAxMiwgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorICoKKyAqICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCisgKiAgIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us
CisgKiAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAqIE5laXRoZXIgdGhlIG5hbWUgb2YgSW50
ZWwgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICog
ICBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0CisgKiAgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQ29sb3JDaG9vc2VyRWZsX2gKKyNkZWZpbmUgQ29sb3JD
aG9vc2VyRWZsX2gKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiQ29sb3JDaG9vc2Vy
LmgiCisKKyNpbmNsdWRlIDxFdmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
Q2hyb21lQ2xpZW50RWZsOworCitjbGFzcyBDb2xvckNob29zZXJFZmwgOiBwdWJsaWMgQ29sb3JD
aG9vc2VyIHsKK3B1YmxpYzoKKyAgICBDb2xvckNob29zZXJFZmwoQ2hyb21lQ2xpZW50RWZsKik7
CisgICAgfkNvbG9yQ2hvb3NlckVmbCgpOworCisgICAgLy8gQ29sb3JDaG9vc2VyIGltcGxlbWVu
dGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IENvbG9yJik7
CisgICAgdmlydHVhbCB2b2lkIGVuZENob29zZXIoKTsKKworcHJpdmF0ZToKKyAgICBDaHJvbWVD
bGllbnRFZmwqIG1fY2hyb21lQ2xpZW50OworfTsKKworfQorCisjZW5kaWYgLy8gQ29sb3JDaG9v
c2VyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxOTVjY2M1ZjllNWYxN2U0ODQxNmJlOTViNzEzNGMxZTM4
M2MzNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9Qb3B1cE1lbnVFZmwuY3BwCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51RWZsLmgiCisKKyNpbmNsdWRlICJD
aHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1BvcHVwTWVudUVmbDo6UG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KQorICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCisgICAgLCBtX3ZpZXcoMCkK
K3sKK30KKworUG9wdXBNZW51RWZsOjp+UG9wdXBNZW51RWZsKCkKK3sKKyAgICAvLyBUZWxsIGNs
aWVudCB0byBkZXN0cm95IGRhdGEgcmVsYXRlZCB0byB0aGlzIHBvcHVwIHNpbmNlIHRoaXMgb2Jq
ZWN0IGlzCisgICAgLy8gZ29pbmcgYXdheS4KKyAgICBpZiAobV92aWV3KQorICAgICAgICBoaWRl
KCk7Cit9CisKK3ZvaWQgUG9wdXBNZW51RWZsOjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZy
YW1lVmlldyogdmlldywgaW50IGluZGV4KQoreworICAgIEFTU0VSVChtX3BvcHVwQ2xpZW50KTsK
KyAgICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNs
aWVudEVmbCo+KHZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpKTsKKyAg
ICBBU1NFUlQoY2hyb21lQ2xpZW50KTsKKworICAgIG1fdmlldyA9IHZpZXc7CisgICAgY2hyb21l
Q2xpZW50LT5jcmVhdGVTZWxlY3RQb3B1cChtX3BvcHVwQ2xpZW50LCBpbmRleCwgcmVjdCk7Cit9
CisKK3ZvaWQgUG9wdXBNZW51RWZsOjpoaWRlKCkKK3sKKyAgICBBU1NFUlQobV92aWV3KTsKKyAg
ICBDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVu
dEVmbCo+KG1fdmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOworICAg
IEFTU0VSVChjaHJvbWVDbGllbnQpOworCisgICAgY2hyb21lQ2xpZW50LT5kZXN0cm95U2VsZWN0
UG9wdXAoKTsKK30KKwordm9pZCBQb3B1cE1lbnVFZmw6OnVwZGF0ZUZyb21FbGVtZW50KCkKK3sK
KyAgICBjbGllbnQoKS0+c2V0VGV4dEZyb21JdGVtKGNsaWVudCgpLT5zZWxlY3RlZEluZGV4KCkp
OworfQorCit2b2lkIFBvcHVwTWVudUVmbDo6ZGlzY29ubmVjdENsaWVudCgpCit7CisgICAgbV9w
b3B1cENsaWVudCA9IDA7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudUVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEyZGJmYzg0NzA0Yzg0NmI3OGQ5OTI3
MTA0ZTUwNzg3NThiNDRkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudUVmbC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaWZuZGVmIFBvcHVwTWVudUVmbF9oCisjZGVmaW5lIFBvcHVwTWVudUVmbF9oCisKKyNp
bmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiUG9wdXBNZW51LmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFNjcm9sbGJhcjsKK2NsYXNzIFBv
cHVwTWVudUNsaWVudDsKKworY2xhc3MgUG9wdXBNZW51RWZsIDogcHVibGljIFBvcHVwTWVudSB7
CitwdWJsaWM6CisgICAgUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCopOworICAgIH5Qb3B1
cE1lbnVFZmwoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFt
ZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RD
bGllbnQoKTsKKworcHJpdmF0ZToKKyAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcG9wdXBDbGllbnQ7IH0KKworICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1
cENsaWVudDsKKyAgICBGcmFtZVZpZXcqIG1fdmlldzsKK307CisKK30KKworI2VuZGlmIC8vIFBv
cHVwTWVudUVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvU2VhcmNoUG9wdXBNZW51RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGVjYjA5MmRiMjNjNzk1YzQw
N2VkMGI4OTI4MzkwY2YxNjVjNGYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmNwcApAQCAtMCwwICsxLDU2IEBA
CisvKgorICogIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRl
Y25vbG9naWEKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQg
c3lzdGVtcworICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51RWZsLmgiCisKKyNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NlYXJjaFBvcHVwTWVu
dUVmbDo6U2VhcmNoUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAgIDog
bV9wb3B1cChhZG9wdFJlZihuZXcgUG9wdXBNZW51RWZsKGNsaWVudCkpKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK1BvcHVwTWVudSogU2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1l
bnUoKQoreworICAgIHJldHVybiBtX3BvcHVwLmdldCgpOworfQorCit2b2lkIFNlYXJjaFBvcHVw
TWVudUVmbDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFNlYXJj
aFBvcHVwTWVudUVmbDo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFNlYXJj
aFBvcHVwTWVudUVmbDo6ZW5hYmxlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmZiNjJlNDE5NjJmNzM3
ZjQ2NDBkYzQ1Zjg5NTc0NDkyN2VjNDRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmgKQEAgLTAsMCArMSw0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFNlYXJjaFBvcHVwTWVudUVmbF9oCisjZGVm
aW5lIFNlYXJjaFBvcHVwTWVudUVmbF9oCisKKyNpbmNsdWRlICJQb3B1cE1lbnVFZmwuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTZWFyY2hQb3B1cE1lbnVFZmwgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKK3B1YmxpYzoK
KyAgICBTZWFyY2hQb3B1cE1lbnVFZmwoUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFs
IFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFy
Y2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVh
bCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8UG9wdXBNZW51RWZsPiBt
X3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51RWZsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161117</attachid>
            <date>2012-08-28 19:19:57 -0700</date>
            <delta_ts>2012-08-29 01:02:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95264-20120829111946.patch</filename>
            <type>text/plain</type>
            <size>34036</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc3NTNlNGZkM2VjNjFk
ZGVmYWIyZjZmNjQ3MjQzMzgyODdiMThiZS4uM2Q0ZGZjZjNkZDUwNWNiY2I4ODZmNmRkMzFhMWM1
YmJhY2Q4MzQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA4LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIHNl
dmVyYWwgZmlsZXMgdG8gcmVtb3ZlIHdlYmtpdDEgZGVwZW5kZW5jeSBmcm9tIFdlYkNvcmUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTI2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbG9yQ2hvb3Nl
ckVmbC5jcHAsIFBvcHVwTWVudUVmbC5jcHAgYW5kIFNlYXJjaFBvcHVwTWVudUVmbC5jcHAgYXJl
IFdlYktpdDEvRWZsCisgICAgICAgIHNwZWNpZmljIGZpbGVzIGFuZCB0aGV5IGNhbiBub3QgYmUg
c2hhcmVkIHdpdGggV2ViS2l0Mi9FZmwuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gcmVtb3ZlIFdl
YktpdCBkZXBlbmRlbmN5IGZyb20gV2ViQ29yZSwgdGhpcyBwYXRjaCBtb3ZlcyB0aGVtCisgICAg
ICAgIHRvIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQuCisKKyAgICAgICAgTm8gYmVoYXZpb3Ig
Y2hhbmdlLiBKdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFr
ZTogUmVtb3ZlZCBmaWxlcyB3aGljaCBtb3ZlZCBmcm9tIHNvdXJjZXMgYW5kIFdlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQgZnJvbSBpbmNsdWRlcy4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERp
dHRvLgorCiAyMDEyLTA4LTI4ICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIENTUCBkb2Vzbid0IHR1cm4gb2ZmIGV2YWwsIGV0Yy4gaW4gV2ViIFdvcmtlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggODRmNGUzZGJmNzc3OTU0ZTNkNDkxMzNhMDNkY2U2OWM1NjYyZDk3OC4uMDhlZGQz
ZWQ0OTQ0NTFjZTFjODdhZjk0ZTQ3MDkyOTU5NTg4MTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxMi0wOC0yOCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF0gTW92ZSBzZXZlcmFsIGZpbGVzIHRvIHJlbW92ZSB3ZWJraXQxIGRlcGVu
ZGVuY3kgZnJvbSBXZWJDb3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTUyNjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBBZGRlZCBmaWxlcyB3aGljaCBpcyBtb3Zl
ZC4KKwogMjAxMi0wOC0yOCAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9z
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBSZW5hbWUga25vYiBpbWFnZXMgdG8gdGh1bWIg
b24gdGhlIGRlZmF1bHQgdGhlbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1OWRmNGFlNmNiOGIyMTFj
MTk0MTI1MTVjNTdiMTI4MDMyMTE0ZWU3Li5jOTA4NTJhNTJmMjY4YmQ3NzdhMTYwYTU2YjQ3OTM5
YWM0ZGE1YWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTItMDgtMjgg
IFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIE1v
dmUgc2V2ZXJhbCBmaWxlcyB0byByZW1vdmUgd2Via2l0MSBkZXBlbmRlbmN5IGZyb20gV2ViQ29y
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MjY0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29sb3JD
aG9vc2VyRWZsLmNwcCwgUG9wdXBNZW51RWZsLmNwcCBhbmQgU2VhcmNoUG9wdXBNZW51RWZsLmNw
cCBhcmUgV2ViS2l0MS9FZmwKKyAgICAgICAgc3BlY2lmaWMgZmlsZXMgYW5kIHRoZXkgY2FuIG5v
dCBiZSBzaGFyZWQgd2l0aCBXZWJLaXQyL0VmbC4KKworICAgICAgICBJbiBvcmRlciB0byByZW1v
dmUgV2ViS2l0IGRlcGVuZGVuY3kgZnJvbSBXZWJDb3JlLCB0aGlzIHBhdGNoIG1vdmVzIHRoZW0K
KyAgICAgICAgdG8gV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0NvbG9yQ2hvb3NlckVmbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyRWZsOjpDb2xvckNob29zZXJFZmwpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyRWZsOjp+Q29sb3JDaG9vc2VyRWZsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckVmbDo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAg
IChXZWJDb3JlOjpDb2xvckNob29zZXJFZmw6OmVuZENob29zZXIpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0NvbG9yQ2hvb3NlckVmbC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0NvbG9yQ2hvb3NlckVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDb2xvckNob29zZXJFZmwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dUVmbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUG9wdXBN
ZW51RWZsLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51RWZsOjpQb3B1cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51RWZsOjp+
UG9wdXBNZW51RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudUVmbDo6c2hvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVFZmw6OmhpZGUpOgorICAgICAgICAoV2ViQ29yZTo6
UG9wdXBNZW51RWZsOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1
cE1lbnVFZmw6OmRpc2Nvbm5lY3RDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudUVmbC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bv
cHVwTWVudUVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQb3B1cE1lbnVFZmwp
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51RWZsOjpjbGllbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNwcC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpTZWFyY2hQb3B1
cE1lbnVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpwb3B1cE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpzYXZlUmVjZW50U2Vh
cmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjpsb2FkUmVjZW50
U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51RWZsOjplbmFibGVk
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVFZmwuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuaC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2VhcmNoUG9wdXBNZW51RWZsKToKKwogMjAx
Mi0wOC0yOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNjkxNC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwu
Y21ha2UKaW5kZXggMjVjMzVkNTdjZjI0MzYzNjQ4NDY2MzJiZDkwMWRmOGIwNGRlZjJiNi4uODg4
ZDU0NTI2YTBkMjExOTVlODk2N2ZkYzRiOWM3MjJhOTg1Y2FkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTEzLDcgKzEzLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VmbCIKICAgIiR7V0VCQ09SRV9ESVJ9L3BsdWdp
bnMvZWZsIgotICAiJHtXRUJLSVRfRElSfS9lZmwvV2ViQ29yZVN1cHBvcnQiCiApCiAKIExJU1Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwpAQCAtMjMsNyArMjIsNiBAQCBMSVNUKEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAogICBwbGF0Zm9ybS9lZmwvQmF0dGVy
eVByb3ZpZGVyRWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAotICBwbGF0
Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVF
ZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCiAgIHBsYXRmb3Jt
L2VmbC9DdXJzb3JFZmwuY3BwCkBAIC00NiwxNCArNDQsMTIgQEAgTElTVChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCiAgIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybU1vdXNlRXZlbnRFZmwuY3BwCiAgIHBs
YXRmb3JtL2VmbC9QbGF0Zm9ybVNjcmVlbkVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL1BsYXRmb3Jt
V2hlZWxFdmVudEVmbC5jcHAKLSAgcGxhdGZvcm0vZWZsL1BvcHVwTWVudUVmbC5jcHAKICAgcGxh
dGZvcm0vZWZsL1JlZlB0ckVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNw
cAogICBwbGF0Zm9ybS9lZmwvUnVuTG9vcEVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL1Njcm9sbFZp
ZXdFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwCiAgIHBsYXRmb3JtL2Vm
bC9TY3JvbGxiYXJUaGVtZUVmbC5jcHAKLSAgcGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVm
bC5jcHAKICAgcGxhdGZvcm0vZWZsL1NoYXJlZEJ1ZmZlckVmbC5jcHAKICAgcGxhdGZvcm0vZWZs
L1NoYXJlZFRpbWVyRWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvU291bmRFZmwuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNWU3MmQ0Mzc0NWRjOGE1NTRiYTlhNDc0NGM2NTUxZTA4ZmNiMjNlNC4uMjNk
MTViMTZiNjE3NzIxOTM0OGY2MDk5YWEwOTRjOTI1ZmI3OTU0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMzQ5NSw4ICszNDk1LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9lZmwvUGxhdGZvcm1N
b3VzZUV2ZW50RWZsLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZWZsL1BsYXRmb3JtU2Ny
ZWVuRWZsLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVu
dEVmbC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwuY3BwJywK
LSAgICAgICAgICAgICdwbGF0Zm9ybS9lZmwvUG9wdXBNZW51RWZsLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2VmbC9SZW5kZXJUaGVtZUVmbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9lZmwvU2Nyb2xs
Vmlld0VmbC5jcHAnLApAQCAtMzUwNCw4ICszNTAyLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9lZmwvU2Nyb2xsYmFyRWZsLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2VmbC9TY3JvbGxi
YXJUaGVtZUVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVt
ZUVmbC5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmNw
cCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZWZsL1NlYXJjaFBvcHVwTWVudUVmbC5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9lZmwvU2hhcmVkQnVmZmVyRWZsLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZWZsL1NoYXJlZFRpbWVyRWZsLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZWZsL1NvdW5kRWZsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9D
b2xvckNob29zZXJFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDAzYmUx
ZTVlMzNmOGU2NTE4N2JhYjNmMzJhYTVkZWEwZGJiZGVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db2xv
ckNob29zZXJFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoYykgMjAxMiwgSW50ZWwgQ29ycG9yYXRpb24KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUgbWV0OgotICoKLSAqICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCi0gKiAgIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCi0gKiAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAqICAgYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgSW50ZWwgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0
b3JzIG1heQotICogICBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0Ci0gKiAgIHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLSAqIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKLSAqIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQotCi0jaW5jbHVkZSAiQ29sb3JDaG9vc2VyRWZsLmgiCi0K
LSNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1D
b2xvckNob29zZXJFZmw6OkNvbG9yQ2hvb3NlckVmbChDaHJvbWVDbGllbnRFZmwqIGNocm9tZUNs
aWVudCkKLSAgICA6IG1fY2hyb21lQ2xpZW50KGNocm9tZUNsaWVudCkKLXsKLSAgICBBU1NFUlQo
bV9jaHJvbWVDbGllbnQpOwotfQotCi1Db2xvckNob29zZXJFZmw6On5Db2xvckNob29zZXJFZmwo
KQotewotfQotCi12b2lkIENvbG9yQ2hvb3NlckVmbDo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBD
b2xvciYgY29sb3IpCi17Ci0gICAgbV9jaHJvbWVDbGllbnQtPnVwZGF0ZUNvbG9yQ2hvb3Nlcihj
b2xvcik7Ci19Ci0KLXZvaWQgQ29sb3JDaG9vc2VyRWZsOjplbmRDaG9vc2VyKCkKLXsKLSAgICBt
X2Nocm9tZUNsaWVudC0+cmVtb3ZlQ29sb3JDaG9vc2VyKCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8v
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL0NvbG9yQ2hvb3NlckVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NvbG9yQ2hvb3NlckVmbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWM4ZDA2
MmRmMmIxMWVmZmQ5OGExMmZmN2E4OGQxY2NhMjdkMzFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db2xv
ckNob29zZXJFZmwuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMTIsIEludGVsIENvcnBvcmF0aW9uCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwotICogICBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlLAotICogICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gKiAgIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEludGVsIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkKLSAqICAgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAotICogICBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi0gKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi0gKiBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENvbG9yQ2hvb3NlckVmbF9oCi0jZGVm
aW5lIENvbG9yQ2hvb3NlckVmbF9oCi0KLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgIkNv
bG9yQ2hvb3Nlci5oIgotCi0jaW5jbHVkZSA8RXZhcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENocm9tZUNsaWVudEVmbDsKLQotY2xhc3MgQ29sb3JDaG9vc2VyRWZsIDogcHVi
bGljIENvbG9yQ2hvb3NlciB7Ci1wdWJsaWM6Ci0gICAgQ29sb3JDaG9vc2VyRWZsKENocm9tZUNs
aWVudEVmbCopOwotICAgIH5Db2xvckNob29zZXJFZmwoKTsKLQotICAgIC8vIENvbG9yQ2hvb3Nl
ciBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25z
dCBDb2xvciYpOwotICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9vc2VyKCk7Ci0KLXByaXZhdGU6Ci0g
ICAgQ2hyb21lQ2xpZW50RWZsKiBtX2Nocm9tZUNsaWVudDsKLX07Ci0KLX0KLQotI2VuZGlmIC8v
IENvbG9yQ2hvb3NlckVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUG9wdXBNZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1l
bnVFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTk1Y2NjNWY5ZTVmMTdl
NDg0MTZiZTk1YjcxMzRjMWUzODNjMzVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcwotICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQb3B1cE1lbnVFZmwuaCIKLQotI2luY2x1ZGUgIkNo
cm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgotI2luY2x1ZGUgIkZyYW1lLmgi
Ci0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNp
bmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotUG9wdXBNZW51RWZsOjpQb3B1cE1lbnVFZmwoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpCi0gICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKLSAgICAsIG1fdmlldygwKQot
ewotfQotCi1Qb3B1cE1lbnVFZmw6On5Qb3B1cE1lbnVFZmwoKQotewotICAgIC8vIFRlbGwgY2xp
ZW50IHRvIGRlc3Ryb3kgZGF0YSByZWxhdGVkIHRvIHRoaXMgcG9wdXAgc2luY2UgdGhpcyBvYmpl
Y3QgaXMKLSAgICAvLyBnb2luZyBhd2F5LgotICAgIGlmIChtX3ZpZXcpCi0gICAgICAgIGhpZGUo
KTsKLX0KLQotdm9pZCBQb3B1cE1lbnVFZmw6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJh
bWVWaWV3KiB2aWV3LCBpbnQgaW5kZXgpCi17Ci0gICAgQVNTRVJUKG1fcG9wdXBDbGllbnQpOwot
ICAgIENocm9tZUNsaWVudEVmbCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xp
ZW50RWZsKj4odmlldy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCkpOwotICAg
IEFTU0VSVChjaHJvbWVDbGllbnQpOwotCi0gICAgbV92aWV3ID0gdmlldzsKLSAgICBjaHJvbWVD
bGllbnQtPmNyZWF0ZVNlbGVjdFBvcHVwKG1fcG9wdXBDbGllbnQsIGluZGV4LCByZWN0KTsKLX0K
LQotdm9pZCBQb3B1cE1lbnVFZmw6OmhpZGUoKQotewotICAgIEFTU0VSVChtX3ZpZXcpOwotICAg
IENocm9tZUNsaWVudEVmbCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50
RWZsKj4obV92aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7Ci0gICAg
QVNTRVJUKGNocm9tZUNsaWVudCk7Ci0KLSAgICBjaHJvbWVDbGllbnQtPmRlc3Ryb3lTZWxlY3RQ
b3B1cCgpOwotfQotCi12b2lkIFBvcHVwTWVudUVmbDo6dXBkYXRlRnJvbUVsZW1lbnQoKQotewot
ICAgIGNsaWVudCgpLT5zZXRUZXh0RnJvbUl0ZW0oY2xpZW50KCktPnNlbGVjdGVkSW5kZXgoKSk7
Ci19Ci0KLXZvaWQgUG9wdXBNZW51RWZsOjpkaXNjb25uZWN0Q2xpZW50KCkKLXsKLSAgICBtX3Bv
cHVwQ2xpZW50ID0gMDsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1BvcHVwTWVudUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BvcHVw
TWVudUVmbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTJkYmZjODQ3MDRjODQ2
Yjc4ZDk5MjcxMDRlNTA3ODc1OGI0NGQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Qb3B1cE1lbnVFZmwu
aAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVm
IFBvcHVwTWVudUVmbF9oCi0jZGVmaW5lIFBvcHVwTWVudUVmbF9oCi0KLSNpbmNsdWRlICJJbnRS
ZWN0LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEZyYW1lVmlldzsKLWNsYXNzIFNjcm9sbGJhcjsKLWNsYXNzIFBvcHVwTWVudUNsaWVu
dDsKLQotY2xhc3MgUG9wdXBNZW51RWZsIDogcHVibGljIFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0g
ICAgUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCopOwotICAgIH5Qb3B1cE1lbnVFZmwoKTsK
LQotICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQg
aW5kZXgpOwotICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZyb21FbGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKTsKLQot
cHJpdmF0ZToKLSAgICBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9wdXBDbGllbnQ7IH0KLQotICAgIFBvcHVwTWVudUNsaWVudCogbV9wb3B1cENsaWVudDsKLSAg
ICBGcmFtZVZpZXcqIG1fdmlldzsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFBvcHVwTWVudUVmbF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51
RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGVjYjA5MmRiMjNjNzk1YzQwN2Vk
MGI4OTI4MzkwY2YxNjVjNGYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudUVmbC5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1TZWFyY2hQb3B1cE1lbnVFZmw6OlNlYXJjaFBvcHVwTWVudUVm
bChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fcG9wdXAoYWRvcHRSZWYobmV3IFBv
cHVwTWVudUVmbChjbGllbnQpKSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1Qb3B1
cE1lbnUqIFNlYXJjaFBvcHVwTWVudUVmbDo6cG9wdXBNZW51KCkKLXsKLSAgICByZXR1cm4gbV9w
b3B1cC5nZXQoKTsKLX0KLQotdm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OnNhdmVSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OmxvYWRSZWNl
bnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9vbCBTZWFyY2hQb3B1cE1lbnVFZmw6OmVuYWJsZWQo
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TZWFyY2hQb3B1cE1lbnVFZmwuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZmYjYyZTQxOTYyZjczN2Y0NjQwZGM0NWY4OTU3
NDQ5MjdlYzQ0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2VhcmNoUG9wdXBNZW51RWZsLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgU2Vh
cmNoUG9wdXBNZW51RWZsX2gKLSNkZWZpbmUgU2VhcmNoUG9wdXBNZW51RWZsX2gKLQotI2luY2x1
ZGUgIlBvcHVwTWVudUVmbC5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNlYXJjaFBvcHVwTWVudUVmbCA6IHB1YmxpYyBTZWFy
Y2hQb3B1cE1lbnUgewotcHVibGljOgotICAgIFNlYXJjaFBvcHVwTWVudUVmbChQb3B1cE1lbnVD
bGllbnQqKTsKLQotICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNl
YXJjaEl0ZW1zKTsKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwotCi1wcml2YXRlOgotICAg
IFJlZlB0cjxQb3B1cE1lbnVFZmw+IG1fcG9wdXA7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBTZWFy
Y2hQb3B1cE1lbnVFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5j
bWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOGFlMjVjMWJjNGYx
OGM5M2IwMGU4ZWFlNTBiOWJiMGM5YjgzOGQ3OS4uZDhkMmZiNThjMTM3YjI0Nzg2NDAyZWI4MWEw
ZDY0MjZkMDJmNzA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC04OCw2ICs4OCw3IEBA
IExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRF
ZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKyAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvQ29sb3JDaG9vc2VyRWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlTW90aW9uQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9EcmFn
Q2xpZW50RWZsLmNwcApAQCAtMTAzLDYgKzEwNCw4IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VS
Q0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudEVm
bC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVmbC5jcHAKICAgICBlZmwv
V2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcCAKKyAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvUG9wdXBNZW51RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQ
b3B1cE1lbnVFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L1N0b3JhZ2VUcmFja2VyQ2xp
ZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9WaWJyYXRpb25DbGllbnRFZmwuY3Bw
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbG9yQ2hv
b3NlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db2xvckNob29z
ZXJFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMDNiZTFlNWUzM2Y4ZTY1MTg3YmFiM2YzMmFhNWRlYTBk
YmJkZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9Db2xvckNob29zZXJFZmwuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTIsIEludGVsIENvcnBvcmF0aW9uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlIG1ldDoKKyAqCisgKiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcworICogICBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlLAorICogICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEludGVsIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkK
KyAqICAgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogICBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKKworI2luY2x1ZGUgIkNvbG9yQ2hvb3NlckVmbC5oIgorCisjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50RWZsLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29sb3JDaG9v
c2VyRWZsOjpDb2xvckNob29zZXJFZmwoQ2hyb21lQ2xpZW50RWZsKiBjaHJvbWVDbGllbnQpCisg
ICAgOiBtX2Nocm9tZUNsaWVudChjaHJvbWVDbGllbnQpCit7CisgICAgQVNTRVJUKG1fY2hyb21l
Q2xpZW50KTsKK30KKworQ29sb3JDaG9vc2VyRWZsOjp+Q29sb3JDaG9vc2VyRWZsKCkKK3sKK30K
Kwordm9pZCBDb2xvckNob29zZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yKQoreworICAgIG1fY2hyb21lQ2xpZW50LT51cGRhdGVDb2xvckNob29zZXIoY29sb3IpOwor
fQorCit2b2lkIENvbG9yQ2hvb3NlckVmbDo6ZW5kQ2hvb3NlcigpCit7CisgICAgbV9jaHJvbWVD
bGllbnQtPnJlbW92ZUNvbG9yQ2hvb3NlcigpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0NvbG9yQ2hvb3NlckVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ29sb3JDaG9vc2VyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFjOGQwNjJkZjJiMTFlZmZkOThhMTJm
ZjdhODhkMWNjYTI3ZDMxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0NvbG9yQ2hvb3NlckVmbC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTIsIEludGVsIENvcnBvcmF0aW9uCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcworICogICBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEludGVsIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkKKyAqICAgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogICBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbG9yQ2hvb3NlckVmbF9oCisj
ZGVmaW5lIENvbG9yQ2hvb3NlckVmbF9oCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUg
IkNvbG9yQ2hvb3Nlci5oIgorCisjaW5jbHVkZSA8RXZhcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIENocm9tZUNsaWVudEVmbDsKKworY2xhc3MgQ29sb3JDaG9vc2VyRWZsIDog
cHVibGljIENvbG9yQ2hvb3NlciB7CitwdWJsaWM6CisgICAgQ29sb3JDaG9vc2VyRWZsKENocm9t
ZUNsaWVudEVmbCopOworICAgIH5Db2xvckNob29zZXJFZmwoKTsKKworICAgIC8vIENvbG9yQ2hv
b3NlciBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihj
b25zdCBDb2xvciYpOworICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9vc2VyKCk7CisKK3ByaXZhdGU6
CisgICAgQ2hyb21lQ2xpZW50RWZsKiBtX2Nocm9tZUNsaWVudDsKK307CisKK30KKworI2VuZGlm
IC8vIENvbG9yQ2hvb3NlckVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9Qb3B1cE1lbnVFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvUG9wdXBNZW51RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTk1Y2NjNWY5ZTVmMTdlNDg0MTZi
ZTk1YjcxMzRjMWUzODNjMzVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51RWZsLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9n
aWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1z
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgor
CisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50RWZsLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQb3B1cE1lbnVFZmw6OlBvcHVwTWVudUVmbChQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXBDbGllbnQoY2xpZW50KQorICAg
ICwgbV92aWV3KDApCit7Cit9CisKK1BvcHVwTWVudUVmbDo6flBvcHVwTWVudUVmbCgpCit7Cisg
ICAgLy8gVGVsbCBjbGllbnQgdG8gZGVzdHJveSBkYXRhIHJlbGF0ZWQgdG8gdGhpcyBwb3B1cCBz
aW5jZSB0aGlzIG9iamVjdCBpcworICAgIC8vIGdvaW5nIGF3YXkuCisgICAgaWYgKG1fdmlldykK
KyAgICAgICAgaGlkZSgpOworfQorCit2b2lkIFBvcHVwTWVudUVmbDo6c2hvdyhjb25zdCBJbnRS
ZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKK3sKKyAgICBBU1NFUlQobV9w
b3B1cENsaWVudCk7CisgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJvbWVDbGllbnQgPSBzdGF0aWNf
Y2FzdDxDaHJvbWVDbGllbnRFZmwqPih2aWV3LT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5j
bGllbnQoKSk7CisgICAgQVNTRVJUKGNocm9tZUNsaWVudCk7CisKKyAgICBtX3ZpZXcgPSB2aWV3
OworICAgIGNocm9tZUNsaWVudC0+Y3JlYXRlU2VsZWN0UG9wdXAobV9wb3B1cENsaWVudCwgaW5k
ZXgsIHJlY3QpOworfQorCit2b2lkIFBvcHVwTWVudUVmbDo6aGlkZSgpCit7CisgICAgQVNTRVJU
KG1fdmlldyk7CisgICAgQ2hyb21lQ2xpZW50RWZsKiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2Fz
dDxDaHJvbWVDbGllbnRFZmwqPihtX3ZpZXctPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNs
aWVudCgpKTsKKyAgICBBU1NFUlQoY2hyb21lQ2xpZW50KTsKKworICAgIGNocm9tZUNsaWVudC0+
ZGVzdHJveVNlbGVjdFBvcHVwKCk7Cit9CisKK3ZvaWQgUG9wdXBNZW51RWZsOjp1cGRhdGVGcm9t
RWxlbWVudCgpCit7CisgICAgY2xpZW50KCktPnNldFRleHRGcm9tSXRlbShjbGllbnQoKS0+c2Vs
ZWN0ZWRJbmRleCgpKTsKK30KKwordm9pZCBQb3B1cE1lbnVFZmw6OmRpc2Nvbm5lY3RDbGllbnQo
KQoreworICAgIG1fcG9wdXBDbGllbnQgPSAwOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVFZmwuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhMmRiZmM4NDcw
NGM4NDZiNzhkOTkyNzEwNGU1MDc4NzU4YjQ0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVFZmwuaApAQCAtMCwwICsxLDUzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBQb3B1cE1lbnVFZmxfaAorI2RlZmluZSBQb3B1cE1l
bnVFZmxfaAorCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBvcHVwTWVudS5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBTY3JvbGxi
YXI7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CisKK2NsYXNzIFBvcHVwTWVudUVmbCA6IHB1Ymxp
YyBQb3B1cE1lbnUgeworcHVibGljOgorICAgIFBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQq
KTsKKyAgICB+UG9wdXBNZW51RWZsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJ
bnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgp
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaXNjb25uZWN0Q2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgUG9wdXBNZW51Q2xpZW50KiBj
bGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CisKKyAgICBQb3B1cE1lbnVD
bGllbnQqIG1fcG9wdXBDbGllbnQ7CisgICAgRnJhbWVWaWV3KiBtX3ZpZXc7Cit9OworCit9CisK
KyNlbmRpZiAvLyBQb3B1cE1lbnVFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBlY2Iw
OTJkYjIzYzc5NWM0MDdlZDBiODkyODM5MGNmMTY1YzRmMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5jcHAKQEAg
LTAsMCArMSw1NiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0
byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVT
SU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5n
IEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUVmbC5oIgor
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
ZWFyY2hQb3B1cE1lbnVFZmw6OlNlYXJjaFBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkKKyAgICA6IG1fcG9wdXAoYWRvcHRSZWYobmV3IFBvcHVwTWVudUVmbChjbGllbnQpKSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitQb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVu
dUVmbDo6cG9wdXBNZW51KCkKK3sKKyAgICByZXR1cm4gbV9wb3B1cC5nZXQoKTsKK30KKwordm9p
ZCBTZWFyY2hQb3B1cE1lbnVFZmw6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworYm9vbCBTZWFyY2hQb3B1cE1lbnVFZmw6OmVuYWJsZWQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5oIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZm
YjYyZTQxOTYyZjczN2Y0NjQwZGM0NWY4OTU3NDQ5MjdlYzQ0YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBTZWFyY2hQb3B1cE1l
bnVFZmxfaAorI2RlZmluZSBTZWFyY2hQb3B1cE1lbnVFZmxfaAorCisjaW5jbHVkZSAiUG9wdXBN
ZW51RWZsLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2VhcmNoUG9wdXBNZW51RWZsIDogcHVibGljIFNlYXJjaFBvcHVwTWVu
dSB7CitwdWJsaWM6CisgICAgU2VhcmNoUG9wdXBNZW51RWZsKFBvcHVwTWVudUNsaWVudCopOwor
CisgICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2VhcmNoSXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMp
OworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFBv
cHVwTWVudUVmbD4gbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVu
dUVmbF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>