<?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>216822</bug_id>
          
          <creation_ts>2020-09-22 06:23:52 -0700</creation_ts>
          <short_desc>[GTK][WPE] Move TLS errors API from WebKitContext to WebKitWebsiteDataManager</short_desc>
          <delta_ts>2020-09-24 02:02:45 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=216911</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=216919</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>216041</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>lmoura</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1690669</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-22 06:23:52 -0700</bug_when>
    <thetext>Make it per session instead of global to the network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690674</commentid>
    <comment_count>1</comment_count>
      <attachid>409358</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-22 06:59:19 -0700</bug_when>
    <thetext>Created attachment 409358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690675</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-09-22 07:00:04 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691271</commentid>
    <comment_count>3</comment_count>
      <attachid>409358</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-23 14:45:50 -0700</bug_when>
    <thetext>Comment on attachment 409358
Patch

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

&gt; Source/WebCore/platform/network/soup/SoupNetworkSession.h:82
&gt; +    bool m_ignoreTLSErrors { false };

You may want to have this be consistent with its default value on WebsiteDataStore.
You may also want to have the default be false, but it was true on WebProcessPool so this is maintaining the status quo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691276</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-23 15:14:20 -0700</bug_when>
    <thetext>Committed r267502: &lt;https://trac.webkit.org/changeset/267502&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409358.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691375</commentid>
    <comment_count>5</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-09-23 20:36:53 -0700</bug_when>
    <thetext>GTK and WPE layout test bots are exiting early after this change:

https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20(Tests)/r267504%20(16003)/results.html

Maybe something missing in WTR?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691378</commentid>
    <comment_count>6</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-09-23 20:58:33 -0700</bug_when>
    <thetext>Using http/tests/ssl/verify-ssl-enabled.php (a failure) and enabling logging, the only network request/response that appears is:

set 24 00:52:47 lauro-desktop WebKitNetworkProcess[1575042]: &lt; HTTP/1.1 1 Cancelled
set 24 00:52:47 lauro-desktop WebKitNetworkProcess[1575042]: &lt; Soup-Debug-Timestamp: 1600919567
set 24 00:52:47 lauro-desktop WebKitNetworkProcess[1575042]: &lt; Soup-Debug: SoupMessage 0 (0x563077e470d0)
set 24 00:52:47 lauro-desktop WebKitNetworkProcess[1575042]: 

(Instead of the regular GET request)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691417</commentid>
    <comment_count>7</comment_count>
      <attachid>409358</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-24 01:01:53 -0700</bug_when>
    <thetext>Comment on attachment 409358
Patch

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

&gt;&gt; Source/WebCore/platform/network/soup/SoupNetworkSession.h:82
&gt;&gt; +    bool m_ignoreTLSErrors { false };
&gt; 
&gt; You may want to have this be consistent with its default value on WebsiteDataStore.
&gt; You may also want to have the default be false, but it was true on WebProcessPool so this is maintaining the status quo.

The default is false for the GLib API, but true internally so that TLS errors are ignored by default in WTR. But it seems I broke it, see bug #216911</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409358</attachid>
            <date>2020-09-22 06:59:19 -0700</date>
            <delta_ts>2020-09-23 15:14:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ignore-tls-session.diff</filename>
            <type>text/plain</type>
            <size>57526</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYTAzYTUyN2RkODYuLjIwNjBjYjRjZjk0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDIwLTA5LTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIE1vdmUgVExTIGVycm9ycyBBUEkgZnJv
bSBXZWJLaXRDb250ZXh0IHRvIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2ODIyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpZ25vcmVUTFNFcnJvcnMg
YSBtZW1iZXIgb2YgU291cE5ldHdvcmtTZXNzaW9uLCBpbnN0ZWFkIG9mIGJlaW5nIGdsb2JhbC4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cE5ldHdvcmtTZXNzaW9uOjpzZXRJZ25vcmVUTFNFcnJv
cnMpOgorICAgICAgICAoV2ViQ29yZTo6U291cE5ldHdvcmtTZXNzaW9uOjpjaGVja1RMU0Vycm9y
cyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VwTmV0d29ya1Nlc3Npb246OnNldFNob3VsZElnbm9y
ZVRMU0Vycm9ycyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Nv
dXBOZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd3NBbnlTU0xD
ZXJ0aWZpY2F0ZSk6IERvIG5vdCB1c2UgU291cE5ldHdvcmtTZXNzaW9uIGluIHRoZSB3ZWIgcHJv
Y2Vzcy4KKwogMjAyMC0wOS0yMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIEJ1bXAgY2Fpcm8gdmVyc2lvbiB0byBzdXBwb3J0IEhp
RFBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291
cE5ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDY0Nzk1ZjQ3NTBlMS4uYzg5ZjgwNTFmNTNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5l
dHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDQsOCArNDQsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBib29sIGdJZ25vcmVUTFNFcnJvcnM7Ci0KIHN0YXRpYyBDU3Ry
aW5nJiBpbml0aWFsQWNjZXB0TGFuZ3VhZ2VzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q1N0cmluZz4gc3RvcmFnZTsKQEAgLTMyNSwxNyArMzIzLDE0IEBAIHZvaWQgU291cE5ldHdv
cmtTZXNzaW9uOjpzZXRBY2NlcHRMYW5ndWFnZXMoY29uc3QgQ1N0cmluZyYgbGFuZ3VhZ2VzKQog
ICAgIGdfb2JqZWN0X3NldChtX3NvdXBTZXNzaW9uLmdldCgpLCAiYWNjZXB0LWxhbmd1YWdlIiwg
bGFuZ3VhZ2VzLmRhdGEoKSwgbnVsbHB0cik7CiB9CiAKLXZvaWQgU291cE5ldHdvcmtTZXNzaW9u
OjpzZXRTaG91bGRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCit2b2lkIFNv
dXBOZXR3b3JrU2Vzc2lvbjo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJyb3Jz
KQogewotICAgIGdJZ25vcmVUTFNFcnJvcnMgPSBpZ25vcmVUTFNFcnJvcnM7CisgICAgbV9pZ25v
cmVUTFNFcnJvcnMgPSBpZ25vcmVUTFNFcnJvcnM7CiB9CiAKIE9wdGlvbmFsPFJlc291cmNlRXJy
b3I+IFNvdXBOZXR3b3JrU2Vzc2lvbjo6Y2hlY2tUTFNFcnJvcnMoY29uc3QgVVJMJiByZXF1ZXN0
VVJMLCBHVGxzQ2VydGlmaWNhdGUqIGNlcnRpZmljYXRlLCBHVGxzQ2VydGlmaWNhdGVGbGFncyB0
bHNFcnJvcnMpCiB7Ci0gICAgaWYgKGdJZ25vcmVUTFNFcnJvcnMpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0KLSAgICBpZiAoIXRsc0Vycm9ycykKKyAgICBpZiAobV9pZ25vcmVUTFNF
cnJvcnMgfHwgIXRsc0Vycm9ycykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAg
IGF1dG8gaXQgPSBhbGxvd2VkQ2VydGlmaWNhdGVzKCkuZmluZChyZXF1ZXN0VVJMLmhvc3QoKS50
b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDliOWNiODc0
YjNkNy4uZDA2ZDc3ZWY0MWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oCkBAIC02Niw4ICs2Niw4IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRJbml0aWFsQWNjZXB0TGFuZ3VhZ2VzKGNvbnN0
IENTdHJpbmcmKTsKICAgICB2b2lkIHNldEFjY2VwdExhbmd1YWdlcyhjb25zdCBDU3RyaW5nJik7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRTaG91bGRJZ25vcmVUTFNFcnJv
cnMoYm9vbCk7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFJlc291cmNlRXJyb3I+IGNoZWNrVExTRXJy
b3JzKGNvbnN0IFVSTCYsIEdUbHNDZXJ0aWZpY2F0ZSosIEdUbHNDZXJ0aWZpY2F0ZUZsYWdzKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhib29sKTsKKyAgICBP
cHRpb25hbDxSZXNvdXJjZUVycm9yPiBjaGVja1RMU0Vycm9ycyhjb25zdCBVUkwmLCBHVGxzQ2Vy
dGlmaWNhdGUqLCBHVGxzQ2VydGlmaWNhdGVGbGFncyk7CiAgICAgc3RhdGljIHZvaWQgYWxsb3dT
cGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNv
bnN0IFN0cmluZyYgaG9zdCk7CiAKICAgICB2b2lkIGdldEhvc3ROYW1lc1dpdGhIU1RTQ2FjaGUo
SGFzaFNldDxTdHJpbmc+Jik7CkBAIC03OSw2ICs3OSw3IEBAIHByaXZhdGU6CiAKICAgICBHUmVm
UHRyPFNvdXBTZXNzaW9uPiBtX3NvdXBTZXNzaW9uOwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vz
c2lvbklEOworICAgIGJvb2wgbV9pZ25vcmVUTFNFcnJvcnMgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKaW5kZXggNmE1YjZmNGFlNDIwLi42YjI2YjUwNjQ4NWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtNDcsMTAgKzQ3LDYgQEAKICNp
bmNsdWRlICJDb2xvckNob29zZXIuaCIKICNlbmRpZgogCi0jaWYgVVNFKFNPVVApCi0jaW5jbHVk
ZSAiU291cE5ldHdvcmtTZXNzaW9uLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJfQVVESU8p
CiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjZW5kaWYKQEAgLTg5OCw5ICs4OTQsNiBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRGcmFtZUZsYXR0ZW5pbmcoRnJh
bWVGbGF0dGVuaW5nVmFsdWUgZnJhbQogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93c0FueUNlcnRpZmljYXRlKQogewogICAgIERlcHJl
Y2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYWxsb3dzQW55
Q2VydGlmaWNhdGUpOwotI2lmIFVTRShTT1VQKQotICAgIFNvdXBOZXR3b3JrU2Vzc2lvbjo6c2V0
U2hvdWxkSWdub3JlVExTRXJyb3JzKGFsbG93c0FueUNlcnRpZmljYXRlKTsKLSNlbmRpZgogfQog
CiBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbFNldHRpbmdzOjpkZWZlcnJlZENTU1BhcnNlckVu
YWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBkMDMyZjM5MTU2MGQuLjk5NjQ3ZDhmMjBhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2OCBAQAorMjAyMC0wOS0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBNb3ZlIFRMUyBlcnJvcnMgQVBJ
IGZyb20gV2ViS2l0Q29udGV4dCB0byBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjgyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgVExTIGVycm9ycyBw
b2xpY3kgcGVyIHNlc3Npb24gaW5zdGVhZCBvZiBnbG9iYWwgdG8gdGhlIG5ldHdvcmsgcHJvY2Vz
cy4gVGhlIHdlYiBjb250ZXh0IEFQSSBub3cgc2ltcGx5CisgICAgICAgIGZvcndhcmRzIHRoZSBy
ZXF1ZXN0IHRvIHRoZSB3ZWJzaXRlIGRhdGEgbWFuYWdlci4gVGhlIHdlYnNpdGUgZGF0YSBtYW5h
Z2VyIGNyZWF0ZWQgZm9yIGFuIGVwaGVtZXJhbCB3ZWIgdmlldworICAgICAgICB3aWxsIGluaGVy
aXQgdGhlIG5ldHdvcmsgc2V0dGluZ3MgZnJvbSB0aGUgd2ViIGNvbnRleHQgd2Vic2l0ZSBkYXRh
IG1hbmFnZXIuIFRoaXMgZW5zdXJlcyBiYWNrd2FyZHMKKyAgICAgICAgY29tcGF0aWJpbGl0eSwg
YnV0IGl0J3MgYWxzbyBjb252ZW5pZW50LCBzaW5jZSBpdCdzIHRoZSBkZXNpcmVkIGJlaGF2aW9y
IGluIG1vc3Qgb2YgdGhlIGNhc2VzLiBBcHBzIGNhbiBzdGlsbAorICAgICAgICBjaGFuZ2UgdGhl
IG5ldHdvcmsgc2V0dGluZ3Mgb2YgdGhlIHdlYiB2aWV3IGJ5IGdldHRpbmcgdGhlIHdlYnNpdGUg
ZGF0YSBtYW5hZ2VyLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6dGxzQ29ubmVjdGlvbkFjY2VwdENlcnRp
ZmljYXRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRJ
Z25vcmVUTFNFcnJvcnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nl
c3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpOZXR3
b3JrU2Vzc2lvblNvdXApOgorICAgICAgICAoV2ViS2l0Ojp3ZWJTb2NrZXRBY2NlcHRDZXJ0aWZp
Y2F0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6d2ViU29ja2V0TWVzc2FnZU5ldHdvcmtF
dmVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpjcmVh
dGVXZWJTb2NrZXRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Tb3VwOjpz
ZXRJZ25vcmVUTFNFcnJvcnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Nlc3Npb25Tb3VwLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dG9t
YXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKHdlYmtpdEF1dG9tYXRpb25TZXNzaW9uQ3JlYXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJDb250ZXh0Q29uc3RydWN0ZWQpOgorICAgICAgICAod2Via2l0X3dl
Yl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeSk6CisgICAgICAgICh3ZWJraXRfd2ViX2Nv
bnRleHRfZ2V0X3Rsc19lcnJvcnNfcG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uc3RydWN0ZWQp
OgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0
V2ViVmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYnNp
dGVEYXRhTWFuYWdlckNvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdFdlYnNpdGVEYXRhTWFu
YWdlckdldERhdGFTdG9yZSk6CisgICAgICAgICh3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJf
c2V0X3Rsc19lcnJvcnNfcG9saWN5KToKKyAgICAgICAgKHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFu
YWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRXZWJDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vi
c2l0ZURhdGFNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUt
MS4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjppZ25vcmVUTFNFcnJvcnMgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0SWdub3JlVExTRXJy
b3JzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0SWdub3JlVExT
RXJyb3JzKTogRGVsZXRlZC4KKwogMjAyMC0wOS0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIE1lZGlhUmVjb3JkZXIgYnkgZGVmYXVsdCBvbiBp
T1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRl
eCBhYTczMzc3YjczMmYuLmRmNGZjZmQ4NGVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtNDQ1LDcgKzQ0NSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBmbHVzaENvb2tpZXMoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogCiAjaWYgVVNFKFNPVVApCi0gICAgdm9pZCBzZXRJZ25vcmVUTFNF
cnJvcnMoYm9vbCk7CisgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoUEFMOjpTZXNzaW9uSUQs
IGJvb2wpOwogICAgIHZvaWQgdXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVj
dG9yPFN0cmluZz4mKTsKICAgICB2b2lkIHNldE5ldHdvcmtQcm94eVNldHRpbmdzKGNvbnN0IFdl
YkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyYpOwogICAgIHZvaWQgc2V0UGVyc2lzdGVu
dENyZWRlbnRpYWxTdG9yYWdlRW5hYmxlZChQQUw6OlNlc3Npb25JRCwgYm9vbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCBkOWRkZGU0OWU0YzUuLjg0ZTMzNDAzNGMzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBA
IC0yOCw3ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoT3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiBjb25uZWN0aW9uSWRlbnRpZmllciwgZW51
bTp1aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9s
aWN5KSBBc3luYwogCiAjaWYgVVNFKFNPVVApCi0gICAgU2V0SWdub3JlVExTRXJyb3JzKGJvb2wg
aWdub3JlVExTRXJyb3JzKQorICAgIFNldElnbm9yZVRMU0Vycm9ycyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGJvb2wgaWdub3JlVExTRXJyb3JzKQogICAgIFVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNDaGFuZ2VkKFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcykKICAgICBTZXROZXR3b3JrUHJveHlT
ZXR0aW5ncyhzdHJ1Y3QgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzIHNldHRpbmdz
KQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0bmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKaW5kZXggOTkwMWM1Y2I3M2M3Li4wZjg0ZmQ2ZGU3NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC01OCw3ICs1OCw2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCBkZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVyczsKICNpZiBVU0Uo
U09VUCkKICAgICBlbmNvZGVyIDw8IGNvb2tpZUFjY2VwdFBvbGljeTsKLSAgICBlbmNvZGVyIDw8
IGlnbm9yZVRMU0Vycm9yczsKICAgICBlbmNvZGVyIDw8IGxhbmd1YWdlczsKICAgICBlbmNvZGVy
IDw8IHByb3h5U2V0dGluZ3M7CiAjZW5kaWYKQEAgLTEyNSw4ICsxMjQsNiBAQCBib29sIE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBOZXR3b3JrUHJvYwogI2lmIFVTRShTT1VQKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmNvb2tpZUFjY2VwdFBvbGljeSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pZ25vcmVUTFNFcnJvcnMpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubGFuZ3VhZ2VzKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnByb3h5U2V0
dGluZ3MpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDExY2E1YTE5OWZjZi4u
Nzc2MjE4MmNjMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC03NSw3ICs3
NSw2IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgCiAj
aWYgVVNFKFNPVVApCiAgICAgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVB
Y2NlcHRQb2xpY3kgeyBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5OjpBbHdheXNBY2Nl
cHQgfTsKLSAgICBib29sIGlnbm9yZVRMU0Vycm9ycyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFN0
cmluZz4gbGFuZ3VhZ2VzOwogICAgIFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyBw
cm94eVNldHRpbmdzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmlu
ZGV4IDFhZDVhZTc3ZjM4Ny4uNzhlZjA5OWE0ZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApAQCAtNjMsNiArNjMsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoOwogICAgIGVuY29kZXIgPDwgY29va2ll
UGVyc2lzdGVudFN0b3JhZ2VUeXBlOwogICAgIGVuY29kZXIgPDwgcGVyc2lzdGVudENyZWRlbnRp
YWxTdG9yYWdlRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IGlnbm9yZVRMU0Vycm9yczsKICNlbmRp
ZgogI2lmIFVTRShDVVJMKQogICAgIGVuY29kZXIgPDwgY29va2llUGVyc2lzdGVudFN0b3JhZ2VG
aWxlOwpAQCAtMTgxLDYgKzE4MiwxMSBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGRl
Y29kZXIgPj4gcGVyc2lzdGVudENyZWRlbnRpYWxTdG9yYWdlRW5hYmxlZDsKICAgICBpZiAoIXBl
cnNpc3RlbnRDcmVkZW50aWFsU3RvcmFnZUVuYWJsZWQpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBPcHRpb25hbDxib29sPiBpZ25vcmVUTFNFcnJvcnM7CisgICAgZGVjb2Rl
ciA+PiBpZ25vcmVUTFNFcnJvcnM7CisgICAgaWYgKCFpZ25vcmVUTFNFcnJvcnMpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAjZW5kaWYKIAogI2lmIFVTRShDVVJMKQpAQCAtMjk5LDYg
KzMwNSw3IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgICAgICwgV1RGTW92ZSgqY29v
a2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoKQogICAgICAgICAsIFdURk1vdmUoKmNvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlVHlwZSkKICAgICAgICAgLCBXVEZNb3ZlKCpwZXJzaXN0ZW50Q3JlZGVudGlh
bFN0b3JhZ2VFbmFibGVkKQorICAgICAgICAsIFdURk1vdmUoKmlnbm9yZVRMU0Vycm9ycykKICNl
bmRpZgogI2lmIFVTRShDVVJMKQogICAgICAgICAsIFdURk1vdmUoKmNvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlRmlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAxZWIyMjkwYjE3
NzQuLmZiMGVmMTZkNGI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNzUs
NiArNzUsNyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IFN0cmluZyBjb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGg7CiAgICAgU291cENvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlVHlwZSBjb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUgeyBTb3VwQ29va2ll
UGVyc2lzdGVudFN0b3JhZ2VUeXBlOjpUZXh0IH07CiAgICAgYm9vbCBwZXJzaXN0ZW50Q3JlZGVu
dGlhbFN0b3JhZ2VFbmFibGVkIHsgdHJ1ZSB9OworICAgIGJvb2wgaWdub3JlVExTRXJyb3JzIHsg
ZmFsc2UgfTsKICNlbmRpZgogI2lmIFVTRShDVVJMKQogICAgIFN0cmluZyBjb29raWVQZXJzaXN0
ZW50U3RvcmFnZUZpbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggYmFhNjc4MzJiNTllLi41NDU2
MjZjYWQ1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTQ0NCw3ICs0NDQsNyBAQCBib29sIE5l
dHdvcmtEYXRhVGFza1NvdXA6OnRsc0Nvbm5lY3Rpb25BY2NlcHRDZXJ0aWZpY2F0ZShHVGxzQ2Vy
dGlmaWNhdGUqIGNlcnRpZgogewogICAgIEFTU0VSVChtX3NvdXBSZXF1ZXN0KTsKICAgICBVUkwg
dXJsID0gc291cFVSSVRvVVJMKHNvdXBfcmVxdWVzdF9nZXRfdXJpKG1fc291cFJlcXVlc3QuZ2V0
KCkpKTsKLSAgICBhdXRvIGVycm9yID0gU291cE5ldHdvcmtTZXNzaW9uOjpjaGVja1RMU0Vycm9y
cyh1cmwsIGNlcnRpZmljYXRlLCB0bHNFcnJvcnMpOworICAgIGF1dG8gZXJyb3IgPSBzdGF0aWNf
Y2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigqbV9zZXNzaW9uKS5zb3VwTmV0d29ya1Nlc3Npb24o
KS5jaGVja1RMU0Vycm9ycyh1cmwsIGNlcnRpZmljYXRlLCB0bHNFcnJvcnMpOwogICAgIGlmICgh
ZXJyb3IpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCmluZGV4IDQxYWZk
Y2M2MWFkYy4uNjRiMWE3NzI2Y2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcApAQCAtMTM2LDggKzEzNiw2
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNz
KGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpCiAKICAgICBpZiAoIXBhcmFtZXRlcnMubGFuZ3Vh
Z2VzLmlzRW1wdHkoKSkKICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQocGFy
YW1ldGVycy5sYW5ndWFnZXMpOwotCi0gICAgc2V0SWdub3JlVExTRXJyb3JzKHBhcmFtZXRlcnMu
aWdub3JlVExTRXJyb3JzKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbj4gTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3Jh
Z2VTZXNzaW9uKCkgY29uc3QKQEAgLTE0NSw5ICsxNDMsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQ3Jl
YXRlRGUKICAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24+KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogfQogCi12b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBib29sIGlnbm9yZVRMU0Vycm9ycykKIHsKLSAgICBTb3VwTmV0d29ya1Nlc3Npb246OnNl
dFNob3VsZElnbm9yZVRMU0Vycm9ycyhpZ25vcmVUTFNFcnJvcnMpOworICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8
TmV0d29ya1Nlc3Npb25Tb3VwJj4oKnNlc3Npb24pLnNldElnbm9yZVRMU0Vycm9ycyhpZ25vcmVU
TFNFcnJvcnMpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8s
IGNvbnN0IFN0cmluZyYgaG9zdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKaW5kZXggZjU3NWYzYjU5MzhkLi4y
ZWYzZmNiYmY5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCkBAIC00Nyw2ICs0Nyw4IEBAIE5ldHdvcmtT
ZXNzaW9uU291cDo6TmV0d29ya1Nlc3Npb25Tb3VwKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJv
Y2VzcywgTmV0d29ya1NlCiAgICAgYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKTsKICAgICBBU1NFUlQoc3RvcmFnZVNlc3Npb24pOwogCisgICAgc2V0SWdub3Jl
VExTRXJyb3JzKHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzKTsKKwogICAgIGlmICghcGFyYW1l
dGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGguaXNFbXB0eSgpKQogICAgICAgICBzZXRD
b29raWVQZXJzaXN0ZW50U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
UGF0aCwgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwogICAgIGVsc2UK
QEAgLTk4LDIwICsxMDAsMjIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvblNvdXA6OmNsZWFyQ3JlZGVu
dGlhbHMoKQogI2VuZGlmCiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJTb2NrZXRBY2NlcHRDZXJ0
aWZpY2F0ZUNhbGxiYWNrKEdUbHNDb25uZWN0aW9uKiwgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZp
Y2F0ZSwgR1Rsc0NlcnRpZmljYXRlRmxhZ3MgZXJyb3JzLCBTb3VwTWVzc2FnZSogc291cE1lc3Nh
Z2UpCitzdGF0aWMgZ2Jvb2xlYW4gd2ViU29ja2V0QWNjZXB0Q2VydGlmaWNhdGVDYWxsYmFjayhH
VGxzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSwg
R1Rsc0NlcnRpZmljYXRlRmxhZ3MgZXJyb3JzLCBOZXR3b3JrU2Vzc2lvblNvdXAqIHNlc3Npb24p
CiB7CiAgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6YWxsb3dzQW55U1NMQ2VydGlm
aWNhdGUoKSkKICAgICAgICAgcmV0dXJuIFRSVUU7CiAKLSAgICByZXR1cm4gIVNvdXBOZXR3b3Jr
U2Vzc2lvbjo6Y2hlY2tUTFNFcnJvcnMoc291cFVSSVRvVVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJp
KHNvdXBNZXNzYWdlKSksIGNlcnRpZmljYXRlLCBlcnJvcnMpOworICAgIGF1dG8qIHNvdXBNZXNz
YWdlID0gc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVD
VChjb25uZWN0aW9uKSwgIndrLXNvdXAtbWVzc2FnZSIpKTsKKyAgICByZXR1cm4gIXNlc3Npb24t
PnNvdXBOZXR3b3JrU2Vzc2lvbigpLmNoZWNrVExTRXJyb3JzKHNvdXBVUklUb1VSTChzb3VwX21l
c3NhZ2VfZ2V0X3VyaShzb3VwTWVzc2FnZSkpLCBjZXJ0aWZpY2F0ZSwgZXJyb3JzKTsKIH0KIAot
c3RhdGljIHZvaWQgd2ViU29ja2V0TWVzc2FnZU5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXNz
YWdlKiBzb3VwTWVzc2FnZSwgR1NvY2tldENsaWVudEV2ZW50IGV2ZW50LCBHSU9TdHJlYW0qIGNv
bm5lY3Rpb24pCitzdGF0aWMgdm9pZCB3ZWJTb2NrZXRNZXNzYWdlTmV0d29ya0V2ZW50Q2FsbGJh
Y2soU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBHU29ja2V0Q2xpZW50RXZlbnQgZXZlbnQsIEdJ
T1N0cmVhbSogY29ubmVjdGlvbiwgTmV0d29ya1Nlc3Npb25Tb3VwKiBzZXNzaW9uKQogewogICAg
IGlmIChldmVudCAhPSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLSU5HKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBnX3NpZ25hbF9jb25uZWN0KGNvbm5lY3Rpb24sICJhY2NlcHQtY2VydGlm
aWNhdGUiLCBHX0NBTExCQUNLKHdlYlNvY2tldEFjY2VwdENlcnRpZmljYXRlQ2FsbGJhY2spLCBz
b3VwTWVzc2FnZSk7CisgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoY29ubmVjdGlvbiks
ICJ3ay1zb3VwLW1lc3NhZ2UiLCBzb3VwTWVzc2FnZSk7CisgICAgZ19zaWduYWxfY29ubmVjdChj
b25uZWN0aW9uLCAiYWNjZXB0LWNlcnRpZmljYXRlIiwgR19DQUxMQkFDSyh3ZWJTb2NrZXRBY2Nl
cHRDZXJ0aWZpY2F0ZUNhbGxiYWNrKSwgc2Vzc2lvbik7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvblNvdXA6OmNyZWF0ZVdlYlNvY2tldFRhc2soTmV0
d29ya1NvY2tldENoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKQEAgLTEyMyw4ICsxMjcsMTMgQEAgc3RkOjp1bmlx
dWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uU291cDo6Y3JlYXRlV2ViU29ja2V0
VGFzayhOZXR3b3JrU28KICAgICBHUmVmUHRyPFNvdXBNZXNzYWdlPiBzb3VwTWVzc2FnZSA9IGFk
b3B0R1JlZihzb3VwX21lc3NhZ2VfbmV3X2Zyb21fdXJpKFNPVVBfTUVUSE9EX0dFVCwgc291cFVS
SS5nZXQoKSkpOwogICAgIHJlcXVlc3QudXBkYXRlU291cE1lc3NhZ2Uoc291cE1lc3NhZ2UuZ2V0
KCksIGJsb2JSZWdpc3RyeSgpKTsKICAgICBpZiAocmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJ3
c3MiKSkKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChzb3VwTWVzc2FnZS5nZXQoKSwgIm5ldHdv
cmstZXZlbnQiLCBHX0NBTExCQUNLKHdlYlNvY2tldE1lc3NhZ2VOZXR3b3JrRXZlbnRDYWxsYmFj
ayksIG51bGxwdHIpOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNvdXBNZXNzYWdlLmdldCgp
LCAibmV0d29yay1ldmVudCIsIEdfQ0FMTEJBQ0sod2ViU29ja2V0TWVzc2FnZU5ldHdvcmtFdmVu
dENhbGxiYWNrKSwgdGhpcyk7CiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4o
Y2hhbm5lbCwgc291cFNlc3Npb24oKSwgc291cE1lc3NhZ2UuZ2V0KCksIHByb3RvY29sKTsKIH0K
IAordm9pZCBOZXR3b3JrU2Vzc2lvblNvdXA6OnNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9y
ZVRMU0Vycm9ycykKK3sKKyAgICBtX25ldHdvcmtTZXNzaW9uLT5zZXRJZ25vcmVUTFNFcnJvcnMo
aWdub3JlVExTRXJyb3JzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgK
aW5kZXggZWJkYWM1OTliNmZlLi5hYzM0ZmU5YmM5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgKQEAgLTU3LDYg
KzU3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGVyc2lzdGVudENyZWRlbnRpYWxTdG9yYWdl
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9wZXJzaXN0ZW50Q3JlZGVudGlhbFN0b3JhZ2VFbmFi
bGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgcGVyc2lzdGVudENyZWRlbnRpYWxTdG9yYWdlRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVyc2lzdGVudENyZWRlbnRpYWxTdG9yYWdlRW5hYmxl
ZDsgfQogCisgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCk7CisKIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdlYlNvY2tldFRhc2soTmV0
d29ya1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBTdHJpbmcmIHByb3RvY29sKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBkYmJmNWU5ZThkZDYuLjM3ZjBhNDRm
ZmY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMzUwLDcgKzM1MCw4IEBAIFdlYktp
dEF1dG9tYXRpb25TZXNzaW9uKiB3ZWJraXRBdXRvbWF0aW9uU2Vzc2lvbkNyZWF0ZShXZWJLaXRX
ZWJDb250ZXh0KiB3ZWJDb250CiAgICAgYXV0byogc2Vzc2lvbiA9IFdFQktJVF9BVVRPTUFUSU9O
X1NFU1NJT04oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0FVVE9NQVRJT05fU0VTU0lPTiwgImlk
Iiwgc2Vzc2lvbklELCBudWxscHRyKSk7CiAgICAgc2Vzc2lvbi0+cHJpdi0+d2ViQ29udGV4dCA9
IHdlYkNvbnRleHQ7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5hY2NlcHRJbnNlY3VyZUNlcnRpZmlj
YXRlcykKLSAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeSh3
ZWJDb250ZXh0LCBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdOT1JFKTsKKyAgICAgICAgd2Vi
a2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJraXRfd2Vi
X2NvbnRleHRfZ2V0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyKHdlYkNvbnRleHQpLCBXRUJLSVRfVExT
X0VSUk9SU19QT0xJQ1lfSUdOT1JFKTsKKwogICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBj
YXBhYmlsaXRpZXMuY2VydGlmaWNhdGVzKSB7CiAgICAgICAgIEdSZWZQdHI8R1Rsc0NlcnRpZmlj
YXRlPiB0bHNDZXJ0aWZpY2F0ZSA9IGFkb3B0R1JlZihnX3Rsc19jZXJ0aWZpY2F0ZV9uZXdfZnJv
bV9maWxlKGNlcnRpZmljYXRlLnNlY29uZC51dGY4KCkuZGF0YSgpLCBudWxscHRyKSk7CiAgICAg
ICAgIGlmICh0bHNDZXJ0aWZpY2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggODliZTU2YWQ3MWQ3Li5mYWU2
MjM1ZWE0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0yMjIsNyArMjIyLDYgQEAgc3RydWN0IF9XZWJLaXRX
ZWJDb250ZXh0UHJpdmF0ZSB7CiAgICAgR1JlZlB0cjxXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXI+
IHdlYnNpdGVEYXRhTWFuYWdlcjsKIAogICAgIENTdHJpbmcgZmF2aWNvbkRhdGFiYXNlRGlyZWN0
b3J5OwotICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSB0bHNFcnJvcnNQb2xpY3k7CiAgICAgV2Vi
S2l0UHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbDsKIAogICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5
SWRlbnRpZmllciwgV2ViS2l0V2ViVmlldyo+IHdlYlZpZXdzOwpAQCAtNDE0LDkgKzQxMyw2IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYkNvbnRleHRDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3Qp
CiAKICAgICB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJBZGRQcm9jZXNzUG9vbChwcml2LT53ZWJz
aXRlRGF0YU1hbmFnZXIuZ2V0KCksICpwcml2LT5wcm9jZXNzUG9vbCk7CiAKLSAgICBwcml2LT50
bHNFcnJvcnNQb2xpY3kgPSBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTDsKLSAgICBwcml2
LT5wcm9jZXNzUG9vbC0+c2V0SWdub3JlVExTRXJyb3JzKGZhbHNlKTsKLQogICAgIHByaXYtPnBy
b2Nlc3NNb2RlbCA9IFdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9D
RVNTRVM7CiAKICNpZiBFTkFCTEUoTUVNT1JZX1NBTVBMRVIpCkBAIC0xNDk2LDE4ICsxNDkyLDE0
IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzKFdlYktp
dFdlYkNvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgKiBAcG9saWN5OiBhICNXZWJLaXRUTFNFcnJv
cnNQb2xpY3kKICAqCiAgKiBTZXQgdGhlIFRMUyBlcnJvcnMgcG9saWN5IG9mIEBjb250ZXh0IGFz
IEBwb2xpY3kKKyAqCisgKiBEZXByZWNhdGVkOiAyLjMyLiBVc2Ugd2Via2l0X3dlYnNpdGVfZGF0
YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSgpIGluc3RlYWQuCiAgKi8KIHZvaWQgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShXZWJLaXRXZWJDb250ZXh0KiBj
b250ZXh0LCBXZWJLaXRUTFNFcnJvcnNQb2xpY3kgcG9saWN5KQogewogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpKTsKIAotICAgIGlmIChjb250ZXh0
LT5wcml2LT50bHNFcnJvcnNQb2xpY3kgPT0gcG9saWN5KQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBjb250ZXh0LT5wcml2LT50bHNFcnJvcnNQb2xpY3kgPSBwb2xpY3k7Ci0gICAgYm9vbCBpZ25v
cmVUTFNFcnJvcnMgPSBwb2xpY3kgPT0gV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0lHTk9SRTsK
LSAgICBpZiAoY29udGV4dC0+cHJpdi0+cHJvY2Vzc1Bvb2wtPmlnbm9yZVRMU0Vycm9ycygpICE9
IGlnbm9yZVRMU0Vycm9ycykKLSAgICAgICAgY29udGV4dC0+cHJpdi0+cHJvY2Vzc1Bvb2wtPnNl
dElnbm9yZVRMU0Vycm9ycyhpZ25vcmVUTFNFcnJvcnMpOworICAgIHdlYmtpdF93ZWJzaXRlX2Rh
dGFfbWFuYWdlcl9zZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dC0+cHJpdi0+d2Vic2l0ZURh
dGFNYW5hZ2VyLmdldCgpLCBwb2xpY3kpOwogfQogCiAvKioKQEAgLTE1MTcsMTIgKzE1MDksMTQg
QEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Rsc19lcnJvcnNfcG9saWN5KFdlYktpdFdl
YkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFQKICAqIEdldCB0aGUgVExTIGVycm9ycyBwb2xpY3kg
b2YgQGNvbnRleHQKICAqCiAgKiBSZXR1cm5zOiBhICNXZWJLaXRUTFNFcnJvcnNQb2xpY3kKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjMyLiBVc2Ugd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dl
dF90bHNfZXJyb3JzX3BvbGljeSgpIGluc3RlYWQuCiAgKi8KIFdlYktpdFRMU0Vycm9yc1BvbGlj
eSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Rsc19lcnJvcnNfcG9saWN5KFdlYktpdFdlYkNvbnRl
eHQqIGNvbnRleHQpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9D
T05URVhUKGNvbnRleHQpLCBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdOT1JFKTsKIAotICAg
IHJldHVybiBjb250ZXh0LT5wcml2LT50bHNFcnJvcnNQb2xpY3k7CisgICAgcmV0dXJuIHdlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dC0+cHJp
di0+d2Vic2l0ZURhdGFNYW5hZ2VyLmdldCgpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDE5MTAwN2I2
YmI2Ni4uYjM3NzAwNzlmODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtNzU1LDYgKzc1NSw4IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlZpZXdDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAKICAgICBpZiAocHJp
di0+aXNFcGhlbWVyYWwgJiYgIXdlYmtpdF93ZWJfY29udGV4dF9pc19lcGhlbWVyYWwocHJpdi0+
Y29udGV4dC5nZXQoKSkpIHsKICAgICAgICAgcHJpdi0+d2Vic2l0ZURhdGFNYW5hZ2VyID0gYWRv
cHRHUmVmKHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9uZXdfZXBoZW1lcmFsKCkpOworICAg
ICAgICBhdXRvKiBjb250ZXh0RGF0YU1hbmFnZXIgPSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3dl
YnNpdGVfZGF0YV9tYW5hZ2VyKHByaXYtPmNvbnRleHQuZ2V0KCkpOworICAgICAgICB3ZWJraXRf
d2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X3Rsc19lcnJvcnNfcG9saWN5KHByaXYtPndlYnNpdGVE
YXRhTWFuYWdlci5nZXQoKSwgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF90bHNfZXJy
b3JzX3BvbGljeShjb250ZXh0RGF0YU1hbmFnZXIpKTsKICAgICAgICAgd2Via2l0V2Vic2l0ZURh
dGFNYW5hZ2VyQWRkUHJvY2Vzc1Bvb2wocHJpdi0+d2Vic2l0ZURhdGFNYW5hZ2VyLmdldCgpLCB3
ZWJraXRXZWJDb250ZXh0R2V0UHJvY2Vzc1Bvb2wocHJpdi0+Y29udGV4dC5nZXQoKSkpOwogICAg
IH0KIApAQCAtMTE5Miw5ICsxMTk0LDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19j
bGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqIFdoZXRo
ZXIgdGhlICNXZWJLaXRXZWJWaWV3IGlzIGVwaGVtZXJhbC4gQW4gZXBoZW1lcmFsIHdlYiB2aWV3
IG5ldmVyIHdyaXRlcwogICAgICAqIHdlYnNpdGUgZGF0YSB0byB0aGUgY2xpZW50IHN0b3JhZ2Us
IG5vIG1hdHRlciB3aGF0ICNXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIKICAgICAgKiBpdHMgY29u
dGV4dCBpcyB1c2luZy4gVGhpcyBpcyBub3JtYWxseSB1c2VkIHRvIGltcGxlbWVudCBwcml2YXRl
IGJyb3dzaW5nIG1vZGUuCi0gICAgICogVGhpcyBpcyBhICVHX1BBUkFNX0NPTlNUUlVDVF9PTkxZ
IHByb3BlcnR5LCBzbyB5b3UgaGF2ZSB0byBjcmVhdGUgYSBlcGhlbWVyYWwKLSAgICAgKiAjV2Vi
S2l0V2ViVmlldyBhbmQgaXQgY2FuJ3QgYmUgY2hhbmdlZC4gTm90ZSB0aGF0IGFsbCAjV2ViS2l0
V2ViVmlldzwhLS0gLS0+cwotICAgICAqIGNyZWF0ZWQgd2l0aCBhbiBlcGhlbWVyYWwgI1dlYktp
dFdlYkNvbnRleHQgd2lsbCBiZSBlcGhlbWVyYWwgYXV0b21hdGljYWxseS4KKyAgICAgKiBUaGlz
IGlzIGEgJUdfUEFSQU1fQ09OU1RSVUNUX09OTFkgcHJvcGVydHksIHNvIHlvdSBoYXZlIHRvIGNy
ZWF0ZSBhbiBlcGhlbWVyYWwKKyAgICAgKiAjV2ViS2l0V2ViVmlldyBhbmQgaXQgY2FuJ3QgYmUg
Y2hhbmdlZC4gVGhlIGVwaGVtZXJhbCAjV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyCisgICAgICog
Y3JlYXRlZCBmb3IgdGhlICNXZWJLaXRXZWJWaWV3IHdpbGwgaW5oZXJpdCB0aGUgbmV0d29yayBz
ZXR0aW5ncyBmcm9tIHRoZQorICAgICAqICNXZWJLaXRXZWJDb250ZXh0PCEtLSAtLT4ncyAjV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyLiBUbyB1c2UgZGlmZmVyZW50IHNldHRpbmdzCisgICAgICog
eW91IGNhbiBnZXQgdGhlICNXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgd2l0aCB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyKCkKKyAgICAgKiBhbmQgc2V0IHRoZSBuZXcg
b25lcy4KKyAgICAgKiBOb3RlIHRoYXQgYWxsICNXZWJLaXRXZWJWaWV3PCEtLSAtLT5zIGNyZWF0
ZWQgd2l0aCBhbiBlcGhlbWVyYWwgI1dlYktpdFdlYkNvbnRleHQKKyAgICAgKiB3aWxsIGJlIGVw
aGVtZXJhbCBhdXRvbWF0aWNhbGx5LgogICAgICAqIFNlZSBhbHNvIHdlYmtpdF93ZWJfY29udGV4
dF9uZXdfZXBoZW1lcmFsKCkuCiAgICAgICoKICAgICAgKiBTaW5jZTogMi4xNgpAQCAtMjM1Niw3
ICsyMzYzLDggQEAgdm9pZCB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZFdpdGhUTFNFcnJvcnMoV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hhciogZmEKIHsKICAgICB3ZWJraXRXZWJWaWV3
Q29tcGxldGVBdXRoZW50aWNhdGlvblJlcXVlc3Qod2ViVmlldyk7CiAKLSAgICBXZWJLaXRUTFNF
cnJvcnNQb2xpY3kgdGxzRXJyb3JzUG9saWN5ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF90bHNf
ZXJyb3JzX3BvbGljeSh3ZWJWaWV3LT5wcml2LT5jb250ZXh0LmdldCgpKTsKKyAgICBhdXRvKiB3
ZWJzaXRlRGF0YU1hbmFnZXIgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfZGF0YV9tYW5h
Z2VyKHdlYlZpZXcpOworICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSB0bHNFcnJvcnNQb2xpY3kg
PSB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3Rsc19lcnJvcnNfcG9saWN5KHdlYnNp
dGVEYXRhTWFuYWdlcik7CiAgICAgaWYgKHRsc0Vycm9yc1BvbGljeSA9PSBXRUJLSVRfVExTX0VS
Uk9SU19QT0xJQ1lfRkFJTCkgewogICAgICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKICAgICAg
ICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW0xPQURfRkFJTEVEX1dJVEhfVExTX0VS
Uk9SU10sIDAsIGZhaWxpbmdVUkksIGNlcnRpZmljYXRlLCB0bHNFcnJvcnMsICZyZXR1cm5WYWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAppbmRleCBlNDhjNzA1NzA5NGIuLmNkZWYxODIy
ZmNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC0xMTEsNiArMTExLDcgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlIHsKICAgICBHVW5pcXVlUHRyPGNo
YXI+IGl0cERpcmVjdG9yeTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IHN3UmVnaXN0cmF0aW9uc0Rp
cmVjdG9yeTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRvbUNhY2hlRGlyZWN0b3J5OworICAgIFdl
YktpdFRMU0Vycm9yc1BvbGljeSB0bHNFcnJvcnNQb2xpY3k7CiAKICAgICBHUmVmUHRyPFdlYktp
dENvb2tpZU1hbmFnZXI+IGNvb2tpZU1hbmFnZXI7CiAgICAgVmVjdG9yPFdlYlByb2Nlc3NQb29s
Kj4gcHJvY2Vzc1Bvb2xzOwpAQCAtMjQxLDYgKzI0Miw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdl
YnNpdGVEYXRhTWFuYWdlckNvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICAgICAgaWYg
KCFwcml2LT5kb21DYWNoZURpcmVjdG9yeSkKICAgICAgICAgICAgIHByaXYtPmRvbUNhY2hlRGly
ZWN0b3J5LnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUocHJpdi0+YmFzZUNhY2hlRGlyZWN0b3J5Lmdl
dCgpLCAiQ2FjaGVTdG9yYWdlIiwgbnVsbHB0cikpOwogICAgIH0KKworICAgIHByaXYtPnRsc0Vy
cm9yc1BvbGljeSA9IFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9GQUlMOwogfQogCiBzdGF0aWMg
dm9pZCB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfY2xhc3NfaW5pdChXZWJLaXRXZWJzaXRl
RGF0YU1hbmFnZXJDbGFzcyogZmluZENsYXNzKQpAQCAtNDg5LDYgKzQ5Miw3IEBAIFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZSYgd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2VyR2V0RGF0YVN0b3JlKFdl
YktpdFdlYnNpdGVEYXRhCiAgICAgICAgIGlmIChwcml2LT5kb21DYWNoZURpcmVjdG9yeSkKICAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShGaWxlU3lz
dGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHByaXYtPmRvbUNhY2hlRGly
ZWN0b3J5LmdldCgpKSk7CiAgICAgICAgIHByaXYtPndlYnNpdGVEYXRhU3RvcmUgPSBXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OmNyZWF0ZShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICAgICAgcHJpdi0+d2Vic2l0ZURhdGFT
dG9yZS0+c2V0SWdub3JlVExTRXJyb3JzKHByaXYtPnRsc0Vycm9yc1BvbGljeSA9PSBXRUJLSVRf
VExTX0VSUk9SU19QT0xJQ1lfSUdOT1JFKTsKICAgICB9CiAKICAgICByZXR1cm4gKnByaXYtPndl
YnNpdGVEYXRhU3RvcmU7CkBAIC05MDksNiArOTEzLDQzIEBAIGdib29sZWFuIHdlYmtpdF93ZWJz
aXRlX2RhdGFfbWFuYWdlcl9nZXRfcGVyc2lzdGVudF9jcmVkZW50aWFsX3N0b3JhZ2VfZW5hYmxl
ZChXCiAgICAgcmV0dXJuIHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckdldERhdGFTdG9yZShtYW5h
Z2VyKS5wZXJzaXN0ZW50Q3JlZGVudGlhbFN0b3JhZ2VFbmFibGVkKCk7CiB9CiAKKy8qKgorICog
d2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeToKKyAqIEBt
YW5hZ2VyOiBhICNXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIKKyAqIEBwb2xpY3k6IGEgI1dlYktp
dFRMU0Vycm9yc1BvbGljeQorICoKKyAqIFNldCB0aGUgVExTIGVycm9ycyBwb2xpY3kgb2YgQG1h
bmFnZXIgYXMgQHBvbGljeQorICoKKyAqIFNpbmNlOiAyLjMyCisgKi8KK3ZvaWQgd2Via2l0X3dl
YnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeShXZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIqIG1hbmFnZXIsIFdlYktpdFRMU0Vycm9yc1BvbGljeSBwb2xpY3kpCit7CisgICAg
Z19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCU0lURV9EQVRBX01BTkFHRVIobWFuYWdlcikp
OworCisgICAgaWYgKG1hbmFnZXItPnByaXYtPnRsc0Vycm9yc1BvbGljeSA9PSBwb2xpY3kpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1hbmFnZXItPnByaXYtPnRsc0Vycm9yc1BvbGljeSA9IHBv
bGljeTsKKyAgICB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJHZXREYXRhU3RvcmUobWFuYWdlciku
c2V0SWdub3JlVExTRXJyb3JzKHBvbGljeSA9PSBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdO
T1JFKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3Rsc19l
cnJvcnNfcG9saWN5OgorICogQG1hbmFnZXI6IGEgI1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlcgor
ICoKKyAqIEdldCB0aGUgVExTIGVycm9ycyBwb2xpY3kgb2YgQG1hbmFnZXIKKyAqCisgKiBSZXR1
cm5zOiBhICNXZWJLaXRUTFNFcnJvcnNQb2xpY3kKKyAqCisgKiBTaW5jZTogMi4zMgorICovCitX
ZWJLaXRUTFNFcnJvcnNQb2xpY3kgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF90bHNf
ZXJyb3JzX3BvbGljeShXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIqIG1hbmFnZXIpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQlNJVEVfREFUQV9NQU5BR0VSKG1hbmFn
ZXIpLCBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTCk7CisKKyAgICByZXR1cm4gbWFuYWdl
ci0+cHJpdi0+dGxzRXJyb3JzUG9saWN5OworfQorCiBzdGF0aWMgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gdG9XZWJzaXRlRGF0YVR5cGVzKFdlYktpdFdlYnNpdGVEYXRhVHlwZXMgdHlwZXMp
CiB7CiAgICAgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gcmV0dXJuVmFsdWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oCmluZGV4
IGRiZjYyYmNmMTY4Yi4uNTA3OGJjN2Q5ZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaApAQCAtODgsMjEgKzg4LDYgQEAgdHlw
ZWRlZiBlbnVtIHsKICAgICBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllf
UFJPQ0VTU0VTLAogfSBXZWJLaXRQcm9jZXNzTW9kZWw7CiAKLS8qKgotICogV2ViS2l0VExTRXJy
b3JzUG9saWN5OgotICogQFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkU6IElnbm9yZSBU
TFMgZXJyb3JzLgotICogQFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9GQUlMOiBUTFMgZXJyb3Jz
IHdpbGwgZW1pdAotICogICAjV2ViS2l0V2ViVmlldzo6bG9hZC1mYWlsZWQtd2l0aC10bHMtZXJy
b3JzIGFuZCwgaWYgdGhlIHNpZ25hbCBpcyBoYW5kbGVkLAotICogICBmaW5pc2ggdGhlIGxvYWQu
IEluIGNhc2UgdGhlIHNpZ25hbCBpcyBub3QgaGFuZGxlZCwKLSAqICAgI1dlYktpdFdlYlZpZXc6
OmxvYWQtZmFpbGVkIGlzIGVtaXR0ZWQgYmVmb3JlIHRoZSBsb2FkIGZpbmlzaGVzLgotICoKLSAq
IEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIHRoZSBUTFMgZXJyb3JzIHBvbGljeS4KLSAqLwot
dHlwZWRlZiBlbnVtIHsKLSAgICBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdOT1JFLAotICAg
IFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9GQUlMCi19IFdlYktpdFRMU0Vycm9yc1BvbGljeTsK
LQogLyoqCiAgKiBXZWJLaXROZXR3b3JrUHJveHlNb2RlOgogICogQFdFQktJVF9ORVRXT1JLX1BS
T1hZX01PREVfREVGQVVMVDogVXNlIHRoZSBkZWZhdWx0IHByb3h5IG9mIHRoZSBzeXN0ZW0uCkBA
IC0yNzgsMTEgKzI2MywxMSBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfY29udGV4dF9z
ZXRfcHJlZmVycmVkX2xhbmd1YWdlcyAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAg
ICAgICAgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAgICAgICpsYW5ndWFnZXMpOwog
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfd2Vic2l0ZV9k
YXRhX21hbmFnZXJfc2V0X3Rsc19lcnJvcnNfcG9saWN5KSB2b2lkCiB3ZWJraXRfd2ViX2NvbnRl
eHRfc2V0X3Rsc19lcnJvcnNfcG9saWN5ICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAg
ICAgICAgICAgICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXRUTFNFcnJvcnNQb2xpY3kgICAgICAgICAgcG9saWN5KTsK
IAotV0VCS0lUX0FQSSBXZWJLaXRUTFNFcnJvcnNQb2xpY3kKK1dFQktJVF9ERVBSRUNBVEVEX0ZP
Uih3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3Rsc19lcnJvcnNfcG9saWN5KSBXZWJL
aXRUTFNFcnJvcnNQb2xpY3kKIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9yc19wb2xp
Y3kgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOwog
CiBXRUJLSVRfQVBJIHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oCmluZGV4IDZhZjZjMDJjYzE0Ni4u
M2Y2N2IwNDEzNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmgKQEAgLTM4LDYgKzM4LDIxIEBAIEdf
QkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0lTX1dFQlNJVEVfREFUQV9NQU5BR0VSX0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dF
QlNJVEVfREFUQV9NQU5BR0VSKSkKICNkZWZpbmUgV0VCS0lUX1dFQlNJVEVfREFUQV9NQU5BR0VS
X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJ
VF9UWVBFX1dFQlNJVEVfREFUQV9NQU5BR0VSLCBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJDbGFz
cykpCiAKKy8qKgorICogV2ViS2l0VExTRXJyb3JzUG9saWN5OgorICogQFdFQktJVF9UTFNfRVJS
T1JTX1BPTElDWV9JR05PUkU6IElnbm9yZSBUTFMgZXJyb3JzLgorICogQFdFQktJVF9UTFNfRVJS
T1JTX1BPTElDWV9GQUlMOiBUTFMgZXJyb3JzIHdpbGwgZW1pdAorICogICAjV2ViS2l0V2ViVmll
dzo6bG9hZC1mYWlsZWQtd2l0aC10bHMtZXJyb3JzIGFuZCwgaWYgdGhlIHNpZ25hbCBpcyBoYW5k
bGVkLAorICogICBmaW5pc2ggdGhlIGxvYWQuIEluIGNhc2UgdGhlIHNpZ25hbCBpcyBub3QgaGFu
ZGxlZCwKKyAqICAgI1dlYktpdFdlYlZpZXc6OmxvYWQtZmFpbGVkIGlzIGVtaXR0ZWQgYmVmb3Jl
IHRoZSBsb2FkIGZpbmlzaGVzLgorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIHRo
ZSBUTFMgZXJyb3JzIHBvbGljeS4KKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBXRUJLSVRfVExT
X0VSUk9SU19QT0xJQ1lfSUdOT1JFLAorICAgIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9GQUlM
Cit9IFdlYktpdFRMU0Vycm9yc1BvbGljeTsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYnNp
dGVEYXRhTWFuYWdlciAgICAgICAgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyOwogdHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlckNsYXNzICAgV2ViS2l0V2Vic2l0ZURhdGFN
YW5hZ2VyQ2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJp
dmF0ZSBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlOwpAQCAtMTE5LDYgKzEzNCwxMyBA
QCB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfY3JlZGVudGlhbF9z
dG9yYWdlX2VuYWJsZWQgKFdlYktpdFdlYgogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dl
YnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9wZXJzaXN0ZW50X2NyZWRlbnRpYWxfc3RvcmFnZV9lbmFi
bGVkIChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIpOwogCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9zZXRfdGxzX2Vycm9yc19wb2xpY3kgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRUTFNFcnJvcnNQb2xpY3kgICAgIHBvbGljeSk7CisKK1dFQktJVF9B
UEkgV2ViS2l0VExTRXJyb3JzUG9saWN5Cit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0
X3Rsc19lcnJvcnNfcG9saWN5ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRh
TWFuYWdlciAqbWFuYWdlcik7CisKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYnNpdGVfZGF0
YV9tYW5hZ2VyX2ZldGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYnNp
dGVEYXRhVHlwZXMgICAgdHlwZXMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRl
eCAyZGFiY2NjNDRkNzcuLjFkY2VhMDE5NGMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlv
bnMudHh0CkBAIC0yNiw3ICsyNiw2IEBAIFdFQktJVF9ERVBSRUNBVEVEX0ZPUgogV2ViS2l0V2Vi
Q29udGV4dAogV2ViS2l0Q2FjaGVNb2RlbAogV2ViS2l0UHJvY2Vzc01vZGVsCi1XZWJLaXRUTFNF
cnJvcnNQb2xpY3kKIFdlYktpdE5ldHdvcmtQcm94eU1vZGUKIHdlYmtpdF93ZWJfY29udGV4dF9n
ZXRfZGVmYXVsdAogd2Via2l0X3dlYl9jb250ZXh0X25ldwpAQCAtMTQ1Myw2ICsxNDUyLDcgQEAg
d2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfdHlwZQogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXI8L0ZJTEU+CiBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIKK1dlYktp
dFRMU0Vycm9yc1BvbGljeQogd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX25ldwogd2Via2l0
X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX25ld19lcGhlbWVyYWwKIHdlYmtpdF93ZWJzaXRlX2RhdGFf
bWFuYWdlcl9pc19lcGhlbWVyYWwKQEAgLTE0NzIsNiArMTQ3Miw4IEBAIHdlYmtpdF93ZWJzaXRl
X2RhdGFfbWFuYWdlcl9zZXRfaXRwX2VuYWJsZWQKIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdl
cl9nZXRfaXRwX2VuYWJsZWQKIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9zZXRfcGVyc2lz
dGVudF9jcmVkZW50aWFsX3N0b3JhZ2VfZW5hYmxlZAogd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5h
Z2VyX2dldF9wZXJzaXN0ZW50X2NyZWRlbnRpYWxfc3RvcmFnZV9lbmFibGVkCit3ZWJraXRfd2Vi
c2l0ZV9kYXRhX21hbmFnZXJfc2V0X3Rsc19lcnJvcnNfcG9saWN5Cit3ZWJraXRfd2Vic2l0ZV9k
YXRhX21hbmFnZXJfZ2V0X3Rsc19lcnJvcnNfcG9saWN5CiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21h
bmFnZXJfZmV0Y2gKIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9mZXRjaF9maW5pc2gKIHdl
YmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9yZW1vdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJDb250ZXh0LmgKaW5kZXggOThkNjkyOWEyMGIyLi4y
Y2M3MDQ3NzhkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0V2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0V2ViQ29udGV4dC5oCkBAIC04OCwyMSArODgsNiBAQCB0eXBlZGVmIGVudW0gewogICAg
IFdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVMsCiB9IFdl
YktpdFByb2Nlc3NNb2RlbDsKIAotLyoqCi0gKiBXZWJLaXRUTFNFcnJvcnNQb2xpY3k6Ci0gKiBA
V0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0lHTk9SRTogSWdub3JlIFRMUyBlcnJvcnMuCi0gKiBA
V0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0ZBSUw6IFRMUyBlcnJvcnMgd2lsbCBlbWl0Ci0gKiAg
ICNXZWJLaXRXZWJWaWV3Ojpsb2FkLWZhaWxlZC13aXRoLXRscy1lcnJvcnMgYW5kLCBpZiB0aGUg
c2lnbmFsIGlzIGhhbmRsZWQsCi0gKiAgIGZpbmlzaCB0aGUgbG9hZC4gSW4gY2FzZSB0aGUgc2ln
bmFsIGlzIG5vdCBoYW5kbGVkLAotICogICAjV2ViS2l0V2ViVmlldzo6bG9hZC1mYWlsZWQgaXMg
ZW1pdHRlZCBiZWZvcmUgdGhlIGxvYWQgZmluaXNoZXMuCi0gKgotICogRW51bSB2YWx1ZXMgdXNl
ZCB0byBkZW5vdGUgdGhlIFRMUyBlcnJvcnMgcG9saWN5LgotICovCi10eXBlZGVmIGVudW0gewot
ICAgIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkUsCi0gICAgV0VCS0lUX1RMU19FUlJP
UlNfUE9MSUNZX0ZBSUwKLX0gV2ViS2l0VExTRXJyb3JzUG9saWN5OwotCiAvKioKICAqIFdlYktp
dE5ldHdvcmtQcm94eU1vZGU6CiAgKiBAV0VCS0lUX05FVFdPUktfUFJPWFlfTU9ERV9ERUZBVUxU
OiBVc2UgdGhlIGRlZmF1bHQgcHJveHkgb2YgdGhlIHN5c3RlbS4KQEAgLTI3OCwxMSArMjYzLDEx
IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFu
Z3VhZ2VzICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgKiBjb25zdCAgICAgICAgICAgKmxhbmd1YWdlcyk7CiAKLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURURfRk9SKHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9zZXRf
dGxzX2Vycm9yc19wb2xpY3kpIHZvaWQKIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfdGxzX2Vycm9y
c19wb2xpY3kgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRl
eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYktpdFRMU0Vycm9yc1BvbGljeSAgICAgICAgICBwb2xpY3kpOwogCi1XRUJLSVRfQVBJIFdl
YktpdFRMU0Vycm9yc1BvbGljeQorV0VCS0lUX0RFUFJFQ0FURURfRk9SKHdlYmtpdF93ZWJzaXRl
X2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kpIFdlYktpdFRMU0Vycm9yc1BvbGlj
eQogd2Via2l0X3dlYl9jb250ZXh0X2dldF90bHNfZXJyb3JzX3BvbGljeSAgICAgICAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9p
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJz
aXRlRGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
V2Vic2l0ZURhdGFNYW5hZ2VyLmgKaW5kZXggNDIzMTIxNmIyNzZiLi4zOWY0ZTg3NDIyMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vic2l0ZURh
dGFNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuaApAQCAtMzgsNiArMzgsMjEgQEAgR19CRUdJTl9ERUNMUwogI2Rl
ZmluZSBXRUJLSVRfSVNfV0VCU0lURV9EQVRBX01BTkFHRVJfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCU0lURV9EQVRBX01BTkFH
RVIpKQogI2RlZmluZSBXRUJLSVRfV0VCU0lURV9EQVRBX01BTkFHRVJfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfV0VCU0lURV9E
QVRBX01BTkFHRVIsIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlckNsYXNzKSkKIAorLyoqCisgKiBX
ZWJLaXRUTFNFcnJvcnNQb2xpY3k6CisgKiBAV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0lHTk9S
RTogSWdub3JlIFRMUyBlcnJvcnMuCisgKiBAV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0ZBSUw6
IFRMUyBlcnJvcnMgd2lsbCBlbWl0CisgKiAgICNXZWJLaXRXZWJWaWV3Ojpsb2FkLWZhaWxlZC13
aXRoLXRscy1lcnJvcnMgYW5kLCBpZiB0aGUgc2lnbmFsIGlzIGhhbmRsZWQsCisgKiAgIGZpbmlz
aCB0aGUgbG9hZC4gSW4gY2FzZSB0aGUgc2lnbmFsIGlzIG5vdCBoYW5kbGVkLAorICogICAjV2Vi
S2l0V2ViVmlldzo6bG9hZC1mYWlsZWQgaXMgZW1pdHRlZCBiZWZvcmUgdGhlIGxvYWQgZmluaXNo
ZXMuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhlIFRMUyBlcnJvcnMgcG9s
aWN5LgorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9J
R05PUkUsCisgICAgV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0ZBSUwKK30gV2ViS2l0VExTRXJy
b3JzUG9saWN5OworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICAg
ICAgICBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXI7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vi
c2l0ZURhdGFNYW5hZ2VyQ2xhc3MgICBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJDbGFzczsKIHR5
cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXJQcml2YXRlIFdlYktpdFdlYnNp
dGVEYXRhTWFuYWdlclByaXZhdGU7CkBAIC0xMTksNiArMTM0LDEzIEBAIHdlYmtpdF93ZWJzaXRl
X2RhdGFfbWFuYWdlcl9zZXRfcGVyc2lzdGVudF9jcmVkZW50aWFsX3N0b3JhZ2VfZW5hYmxlZCAo
V2ViS2l0V2ViCiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFn
ZXJfZ2V0X3BlcnNpc3RlbnRfY3JlZGVudGlhbF9zdG9yYWdlX2VuYWJsZWQgKFdlYktpdFdlYnNp
dGVEYXRhTWFuYWdlciAqbWFuYWdlcik7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYnNp
dGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSAgICAgICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dFRMU0Vycm9yc1BvbGljeSAgICAgcG9saWN5KTsKKworV0VCS0lUX0FQSSBXZWJLaXRUTFNFcnJv
cnNQb2xpY3kKK3dlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xp
Y3kgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2Vy
KTsKKwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZmV0Y2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFu
YWdlciAqbWFuYWdlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2Vic2l0ZURhdGFUeXBlcyAgICB0
eXBlcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9j
cy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCAxNTVhZTY1OWU5YzkuLjhiYTkyMjZlNTJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAt
c2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtNCw3ICs0LDYgQEAKIFdlYktpdFdlYkNvbnRleHQKIFdl
YktpdENhY2hlTW9kZWwKIFdlYktpdFByb2Nlc3NNb2RlbAotV2ViS2l0VExTRXJyb3JzUG9saWN5
CiBXZWJLaXROZXR3b3JrUHJveHlNb2RlCiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQK
IHdlYmtpdF93ZWJfY29udGV4dF9uZXcKQEAgLTEzODcsNiArMTM4Niw3IEBAIHdlYmtpdF9zZWN1
cml0eV9vcmlnaW5fZ2V0X3R5cGUKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0V2Vic2l0ZURhdGFN
YW5hZ2VyPC9GSUxFPgogV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyCitXZWJLaXRUTFNFcnJvcnNQ
b2xpY3kKIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9uZXcKIHdlYmtpdF93ZWJzaXRlX2Rh
dGFfbWFuYWdlcl9uZXdfZXBoZW1lcmFsCiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfaXNf
ZXBoZW1lcmFsCkBAIC0xNDA2LDYgKzE0MDYsOCBAQCB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFn
ZXJfc2V0X2l0cF9lbmFibGVkCiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2l0cF9l
bmFibGVkCiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfY3JlZGVu
dGlhbF9zdG9yYWdlX2VuYWJsZWQKIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfcGVy
c2lzdGVudF9jcmVkZW50aWFsX3N0b3JhZ2VfZW5hYmxlZAord2Via2l0X3dlYnNpdGVfZGF0YV9t
YW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeQord2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X2dldF90bHNfZXJyb3JzX3BvbGljeQogd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2ZldGNo
CiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZmV0Y2hfZmluaXNoCiB3ZWJraXRfd2Vic2l0
ZV9kYXRhX21hbmFnZXJfcmVtb3ZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCBkMWYxZmU5NjE1MDYuLmQ0YmExODA4NGQ0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MTQsMTEgKzQxNCw2IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgd2luZG93U2VydmVyQ29ubmVjdGlvblN0YXRlQ2hhbmdlZCgpOwogCi0jaWYgVVNF
KFNPVVApCi0gICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCk7Ci0gICAgYm9vbCBpZ25v
cmVUTFNFcnJvcnMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZVRMU0Vycm9yczsgfQotI2VuZGlm
Ci0KICAgICBzdGF0aWMgdm9pZCBzZXRJbnZhbGlkTWVzc2FnZUNhbGxiYWNrKHZvaWQgKCopKFdL
U3RyaW5nUmVmKSk7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6TWVzc2FnZU5hbWUpOwogCkBAIC03MTgsMTAgKzcxMyw2IEBAIHByaXZhdGU6CiAKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPj4gbV9kaWN0aW9uYXJ5
Q2FsbGJhY2tzOwogCi0jaWYgVVNFKFNPVVApCi0gICAgYm9vbCBtX2lnbm9yZVRMU0Vycm9ycyB7
IHRydWUgfTsKLSNlbmRpZgotCiAgICAgYm9vbCBtX21lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkZpbGVFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBTdHJpbmcgbV9qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCAwZGM5MWYyM2M0MTUuLjJhZGU3MjBiMDMzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApA
QCAtMjU5LDYgKzI1OSw4IEBAIHB1YmxpYzoKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldFBl
cnNpc3RlbnRDcmVkZW50aWFsU3RvcmFnZUVuYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBwZXJzaXN0
ZW50Q3JlZGVudGlhbFN0b3JhZ2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50
Q3JlZGVudGlhbFN0b3JhZ2VFbmFibGVkICYmIGlzUGVyc2lzdGVudCgpOyB9CisgICAgdm9pZCBz
ZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCk7CisgICAgYm9vbCBpZ25vcmVUTFNFcnJvcnMoKSBjb25z
dCB7IHJldHVybiBtX2lnbm9yZVRMU0Vycm9yczsgfQogI2VuZGlmCiAKICAgICBzdGF0aWMgdm9p
ZCBhbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMoKTsKQEAgLTM5NSw2ICszOTcs
NyBAQCBwcml2YXRlOgogCiAjaWYgVVNFKFNPVVApCiAgICAgYm9vbCBtX3BlcnNpc3RlbnRDcmVk
ZW50aWFsU3RvcmFnZUVuYWJsZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX2lnbm9yZVRMU0Vycm9y
cyB7IHRydWUgfTsKICNlbmRpZgogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpDb29raWU+IG1fcGVu
ZGluZ0Nvb2tpZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL3NvdXAvV2Vic2l0ZURhdGFTdG9yZVNvdXAuY3BwCmluZGV4IDEyZjlj
ZDgxOWI2ZC4uMGQ3MDYxYjMwNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNw
cApAQCAtNTYsNCArNTYsMTQgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRQZXJzaXN0ZW50
Q3JlZGVudGlhbFN0b3JhZ2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgcHJvY2Vzc1Bv
b2wtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
UGVyc2lzdGVudENyZWRlbnRpYWxTdG9yYWdlRW5hYmxlZChtX3Nlc3Npb25JRCwgbV9wZXJzaXN0
ZW50Q3JlZGVudGlhbFN0b3JhZ2VFbmFibGVkKSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJyb3JzKQoreworICAgIGlmICht
X2lnbm9yZVRMU0Vycm9ycyA9PSBpZ25vcmVUTFNFcnJvcnMpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1faWdub3JlVExTRXJyb3JzID0gaWdub3JlVExTRXJyb3JzOworICAgIGZvciAoYXV0byYg
cHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPnNlbmRU
b05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0SWdub3JlVExT
RXJyb3JzKG1fc2Vzc2lvbklELCBtX2lnbm9yZVRMU0Vycm9ycykpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2Vi
UHJvY2Vzc1Bvb2xTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJv
Y2Vzc1Bvb2xTb3VwLmNwcAppbmRleCBiZmJiZjk2NjRlNDguLmY5NzBkZjQ1NmNiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNw
cApAQCAtMzksMjMgKzM5LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhCiB7CiAgICAgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmIGRlZmF1bHRTZXNzaW9uUGFyYW1ldGVycyA9
IHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzOwogICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29r
aWVQZXJzaXN0ZW50U3RvcmFnZShkZWZhdWx0U2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklELCBk
ZWZhdWx0U2Vzc2lvblBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBkZWZh
dWx0U2Vzc2lvblBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKLSAgICBp
ZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpIHsKICAg
ICAgICAgZGVmYXVsdFNlc3Npb25QYXJhbWV0ZXJzLnBlcnNpc3RlbnRDcmVkZW50aWFsU3RvcmFn
ZUVuYWJsZWQgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPnBlcnNpc3RlbnRDcmVkZW50aWFsU3RvcmFn
ZUVuYWJsZWQoKTsKKyAgICAgICAgZGVmYXVsdFNlc3Npb25QYXJhbWV0ZXJzLmlnbm9yZVRMU0Vy
cm9ycyA9IG1fd2Vic2l0ZURhdGFTdG9yZS0+aWdub3JlVExTRXJyb3JzKCk7CisgICAgfQogCiAg
ICAgcGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQQ29va2llQWNj
ZXB0UG9saWN5OwotICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0gbV9pZ25vcmVUTFNF
cnJvcnM7CiAgICAgcGFyYW1ldGVycy5sYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KCk7CiAgICAgcGFyYW1ldGVycy5wcm94eVNldHRpbmdzID0gbV9uZXR3b3JrUHJveHlTZXR0aW5n
czsKICAgICBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlID0gdHJ1ZTsKIH0KIAot
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wgaWdub3JlVExTRXJy
b3JzKQotewotICAgIG1faWdub3JlVExTRXJyb3JzID0gaWdub3JlVExTRXJyb3JzOwotICAgIGlm
IChuZXR3b3JrUHJvY2VzcygpKQotICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0SWdub3JlVExTRXJyb3JzKG1faWdub3JlVExTRXJyb3Jz
KSwgMCk7Ci19Ci0KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldE5ldHdvcmtQcm94eVNldHRpbmdz
KGNvbnN0IFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAg
ICAgbV9uZXR3b3JrUHJveHlTZXR0aW5ncyA9IHNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNiM2QwNjQ0OGQ2ZS4uNWU2ZDEwMDE1
NjJhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMDktMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gTW92ZSBUTFMgZXJyb3JzIEFQSSBm
cm9tIFdlYktpdENvbnRleHQgdG8gV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY4MjIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdHMgdG8gdXNl
IHRoZSBuZXcgQVBJIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgb25lLiBBbHNvIHVwZGF0ZSB0
aGUgVExTRXJyb3JzUG9saWN5IHRlc3QgdG8gYWxzbworICAgICAgICBjaGVjayB0aGF0IGVwaGVt
ZXJhbCB3ZWIgdmlld3MgaW5oZXJpdCB0aGUgbmV0d29yayBzZXR0aW5ncyBmcm9tIGl0cyB3ZWIg
Y29udGV4dC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
U1NMLmNwcDoKKyAgICAgICAgKHRlc3RTU0wpOgorICAgICAgICAodGVzdEluc2VjdXJlQ29udGVu
dCk6CisgICAgICAgICh0ZXN0VExTRXJyb3JzUG9saWN5KToKKyAgICAgICAgKHRlc3RUTFNFcnJv
cnNSZWRpcmVjdCk6CisgICAgICAgICh0ZXN0VExTRXJyb3JzSFRUUEF1dGgpOgorICAgICAgICAo
dGVzdExvYWRGYWlsZWRXaXRoVExTRXJyb3JzKToKKyAgICAgICAgKHRlc3RTdWJyZXNvdXJjZUxv
YWRGYWlsZWRXaXRoVExTRXJyb3JzKToKKyAgICAgICAgKHRlc3RXZWJTb2NrZXRUTFNFcnJvcnMp
OgorCiAyMDIwLTA5LTIxICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0NNYWtlXSBVc2UgaW1wb3J0ZWQgdGFyZ2V0cyBpbiBmaW5kIG1vZHVs
ZSBmb3IgdGhlIEFUSyBTUEkyIGJyaWRnZSBkZXBlbmRlbmN5CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFNTTC5jcHAKaW5kZXggMTIyOTBlMmViNGZiLi45
ZjQ4OWRiOGQwNDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0U1NMLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFNTTC5jcHAKQEAgLTY2LDkgKzY2LDkgQEAgcHVibGljOgogCiBzdGF0aWMgdm9pZCB0
ZXN0U1NMKFNTTFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgV2ViS2l0V2ViQ29u
dGV4dCogY29udGV4dCA9IHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dCh0ZXN0LT5tX3dlYlZp
ZXcpOwotICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSBvcmlnaW5hbFBvbGljeSA9IHdlYmtpdF93
ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCk7Ci0gICAgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250ZXh0LCBXRUJLSVRfVExTX0VSUk9S
U19QT0xJQ1lfSUdOT1JFKTsKKyAgICBhdXRvKiB3ZWJzaXRlRGF0YU1hbmFnZXIgPSB3ZWJraXRf
d2ViX2NvbnRleHRfZ2V0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyKHRlc3QtPm1fd2ViQ29udGV4dC5n
ZXQoKSk7CisgICAgV2ViS2l0VExTRXJyb3JzUG9saWN5IG9yaWdpbmFsUG9saWN5ID0gd2Via2l0
X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJzaXRlRGF0YU1h
bmFnZXIpOworICAgIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9zZXRfdGxzX2Vycm9yc19w
b2xpY3kod2Vic2l0ZURhdGFNYW5hZ2VyLCBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdOT1JF
KTsKIAogICAgIHRlc3QtPmxvYWRVUkkoa0h0dHBzU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvIiku
ZGF0YSgpKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKQEAgLTg1LDcgKzg1
LDcgQEAgc3RhdGljIHZvaWQgdGVzdFNTTChTU0xUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQog
ICAgIGdfYXNzZXJ0X251bGwodGVzdC0+bV9jZXJ0aWZpY2F0ZSk7CiAgICAgZ19hc3NlcnRfY21w
dWludCh0ZXN0LT5tX3Rsc0Vycm9ycywgPT0sIDApOwogCi0gICAgd2Via2l0X3dlYl9jb250ZXh0
X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250ZXh0LCBvcmlnaW5hbFBvbGljeSk7CisgICAgd2Vi
a2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJzaXRlRGF0
YU1hbmFnZXIsIG9yaWdpbmFsUG9saWN5KTsKIH0KIAogY2xhc3MgSW5zZWN1cmVDb250ZW50VGVz
dDogcHVibGljIFdlYlZpZXdUZXN0IHsKQEAgLTExNiw5ICsxMTYsOSBAQCBwdWJsaWM6CiAKIHN0
YXRpYyB2b2lkIHRlc3RJbnNlY3VyZUNvbnRlbnQoSW5zZWN1cmVDb250ZW50VGVzdCogdGVzdCwg
Z2NvbnN0cG9pbnRlcikKIHsKLSAgICBXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0ID0gd2Via2l0
X3dlYl92aWV3X2dldF9jb250ZXh0KHRlc3QtPm1fd2ViVmlldyk7Ci0gICAgV2ViS2l0VExTRXJy
b3JzUG9saWN5IG9yaWdpbmFsUG9saWN5ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF90bHNfZXJy
b3JzX3BvbGljeShjb250ZXh0KTsKLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Rsc19lcnJv
cnNfcG9saWN5KGNvbnRleHQsIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkUpOworICAg
IGF1dG8qIHdlYnNpdGVEYXRhTWFuYWdlciA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfd2Vic2l0
ZV9kYXRhX21hbmFnZXIodGVzdC0+bV93ZWJDb250ZXh0LmdldCgpKTsKKyAgICBXZWJLaXRUTFNF
cnJvcnNQb2xpY3kgb3JpZ2luYWxQb2xpY3kgPSB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJf
Z2V0X3Rsc19lcnJvcnNfcG9saWN5KHdlYnNpdGVEYXRhTWFuYWdlcik7CisgICAgd2Via2l0X3dl
YnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJzaXRlRGF0YU1hbmFn
ZXIsIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkUpOwogCiAgICAgdGVzdC0+bG9hZFVS
SShrSHR0cHNTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9pbnNlY3VyZS1jb250ZW50LyIpLmRhdGEo
KSk7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CkBAIC0xMjgsMTYgKzEyOCwx
NiBAQCBzdGF0aWMgdm9pZCB0ZXN0SW5zZWN1cmVDb250ZW50KEluc2VjdXJlQ29udGVudFRlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjQ2OQogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9pbnNlY3VyZUNv
bnRlbnREaXNwbGF5ZWQpOwogCi0gICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3Jz
X3BvbGljeShjb250ZXh0LCBvcmlnaW5hbFBvbGljeSk7CisgICAgd2Via2l0X3dlYnNpdGVfZGF0
YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJzaXRlRGF0YU1hbmFnZXIsIG9yaWdp
bmFsUG9saWN5KTsKIH0KIAogc3RhdGljIGJvb2wgYXNzZXJ0SWZTU0xSZXF1ZXN0UHJvY2Vzc2Vk
ID0gZmFsc2U7CiAKIHN0YXRpYyB2b2lkIHRlc3RUTFNFcnJvcnNQb2xpY3koU1NMVGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0ID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9jb250ZXh0KHRlc3QtPm1fd2ViVmlldyk7CisgICAgYXV0byogd2Vi
c2l0ZURhdGFNYW5hZ2VyID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF93ZWJzaXRlX2RhdGFfbWFu
YWdlcih0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCkpOwogICAgIC8vIFRMUyBlcnJvcnMgYXJlIHRy
ZWF0ZWQgYXMgdHJhbnNwb3J0IGZhaWx1cmVzIGJ5IGRlZmF1bHQuCi0gICAgZ19hc3NlcnRfY21w
aW50KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCksID09
LCBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTCk7CisgICAgZ19hc3NlcnRfY21waW50KHdl
YmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kod2Vic2l0ZURh
dGFNYW5hZ2VyKSwgPT0sIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9GQUlMKTsKIAogICAgIGFz
c2VydElmU1NMUmVxdWVzdFByb2Nlc3NlZCA9IHRydWU7CiAgICAgdGVzdC0+bG9hZFVSSShrSHR0
cHNTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi8iKS5kYXRhKCkpOwpAQCAtMTQ3LDIzICsxNDcsMzcg
QEAgc3RhdGljIHZvaWQgdGVzdFRMU0Vycm9yc1BvbGljeShTU0xUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogICAgIGdfYXNzZXJ0X2ZhbHNlKHRlc3QtPm1fbG9hZEV2ZW50cy5jb250YWlucyhM
b2FkVHJhY2tpbmdUZXN0OjpMb2FkQ29tbWl0dGVkKSk7CiAgICAgYXNzZXJ0SWZTU0xSZXF1ZXN0
UHJvY2Vzc2VkID0gZmFsc2U7CiAKLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Rsc19lcnJv
cnNfcG9saWN5KGNvbnRleHQsIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkUpOwotICAg
IGdfYXNzZXJ0X2NtcGludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Rsc19lcnJvcnNfcG9saWN5
KGNvbnRleHQpLCA9PSwgV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0lHTk9SRSk7CisgICAgd2Vi
a2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJzaXRlRGF0
YU1hbmFnZXIsIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkUpOworICAgIGdfYXNzZXJ0
X2NtcGludCh3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3Rsc19lcnJvcnNfcG9saWN5
KHdlYnNpdGVEYXRhTWFuYWdlciksID09LCBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfSUdOT1JF
KTsKIAogICAgIHRlc3QtPm1fbG9hZEZhaWxlZCA9IGZhbHNlOwogICAgIHRlc3QtPmxvYWRVUkko
a0h0dHBzU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvIikuZGF0YSgpKTsKICAgICB0ZXN0LT53YWl0
VW50aWxMb2FkRmluaXNoZWQoKTsKICAgICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xvYWRGYWls
ZWQpOwogCi0gICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250
ZXh0LCBXRUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTCk7Ci0gICAgZ19hc3NlcnRfY21waW50
KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCksID09LCBX
RUJLSVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTCk7CisgICAgLy8gQW4gZXBoZW1lcmFsIHdlYiB2
aWV3IHNob3VsZCBrZWVwIHRoZSBzYW1lIG5ldHdvcmsgc2V0dGluZ3MgYnkgZGVmYXVsdC4KKyAg
ICBhdXRvIHdlYlZpZXcgPSBUZXN0OjphZG9wdFZpZXcoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X1dFQl9WSUVXLAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgImJhY2tlbmQiLCBUZXN0Ojpj
cmVhdGVXZWJWaWV3QmFja2VuZCgpLAorI2VuZGlmCisgICAgICAgICJ3ZWItY29udGV4dCIsIHRl
c3QtPm1fd2ViQ29udGV4dC5nZXQoKSwKKyAgICAgICAgImlzLWVwaGVtZXJhbCIsIFRSVUUsCisg
ICAgICAgIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19pc19l
cGhlbWVyYWwod2ViVmlldy5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJf
Y29udGV4dF9pc19lcGhlbWVyYWwodGVzdC0+bV93ZWJDb250ZXh0LmdldCgpKSk7CisgICAgYXV0
byogd2ViVmlld0RhdGFNYW5hZ2VyID0gd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX2RhdGFf
bWFuYWdlcih3ZWJWaWV3LmdldCgpKTsKKyAgICBnX2Fzc2VydF9mYWxzZSh3ZWJzaXRlRGF0YU1h
bmFnZXIgPT0gd2ViVmlld0RhdGFNYW5hZ2VyKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQod2Via2l0
X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJzaXRlRGF0YU1h
bmFnZXIpLCA9PSwgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF90bHNfZXJyb3JzX3Bv
bGljeSh3ZWJWaWV3RGF0YU1hbmFnZXIpKTsKKworICAgIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFu
YWdlcl9zZXRfdGxzX2Vycm9yc19wb2xpY3kod2Vic2l0ZURhdGFNYW5hZ2VyLCBXRUJLSVRfVExT
X0VSUk9SU19QT0xJQ1lfRkFJTCk7CisgICAgZ19hc3NlcnRfY21waW50KHdlYmtpdF93ZWJzaXRl
X2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kod2Vic2l0ZURhdGFNYW5hZ2VyKSwg
PT0sIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9GQUlMKTsKIH0KIAogc3RhdGljIHZvaWQgdGVz
dFRMU0Vycm9yc1JlZGlyZWN0KFNTTFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAg
V2ViS2l0V2ViQ29udGV4dCogY29udGV4dCA9IHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dCh0
ZXN0LT5tX3dlYlZpZXcpOwotICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSBvcmlnaW5hbFBvbGlj
eSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCk7Ci0g
ICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250ZXh0LCBXRUJL
SVRfVExTX0VSUk9SU19QT0xJQ1lfRkFJTCk7CisgICAgYXV0byogd2Vic2l0ZURhdGFNYW5hZ2Vy
ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlcih0ZXN0LT5tX3dl
YkNvbnRleHQuZ2V0KCkpOworICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSBvcmlnaW5hbFBvbGlj
eSA9IHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kod2Vi
c2l0ZURhdGFNYW5hZ2VyKTsKKyAgICB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X3Rs
c19lcnJvcnNfcG9saWN5KHdlYnNpdGVEYXRhTWFuYWdlciwgV0VCS0lUX1RMU19FUlJPUlNfUE9M
SUNZX0ZBSUwpOwogCiAgICAgYXNzZXJ0SWZTU0xSZXF1ZXN0UHJvY2Vzc2VkID0gdHJ1ZTsKICAg
ICB0ZXN0LT5sb2FkVVJJKGtIdHRwc1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3JlZGlyZWN0Iiku
ZGF0YSgpKTsKQEAgLTE3Myw3ICsxODcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VExTRXJyb3JzUmVk
aXJlY3QoU1NMVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydF9mYWxzZSh0
ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6TG9hZENvbW1pdHRl
ZCkpOwogICAgIGFzc2VydElmU1NMUmVxdWVzdFByb2Nlc3NlZCA9IGZhbHNlOwogCi0gICAgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250ZXh0LCBvcmlnaW5hbFBv
bGljeSk7CisgICAgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3Bv
bGljeSh3ZWJzaXRlRGF0YU1hbmFnZXIsIG9yaWdpbmFsUG9saWN5KTsKIH0KIAogc3RhdGljIGdi
b29sZWFuIHdlYlZpZXdBdXRoZW50aWNhdGlvbkNhbGxiYWNrKFdlYktpdFdlYlZpZXcqLCBXZWJL
aXRBdXRoZW50aWNhdGlvblJlcXVlc3QqIHJlcXVlc3QpCkBAIC0xODUsOSArMTk5LDkgQEAgc3Rh
dGljIGdib29sZWFuIHdlYlZpZXdBdXRoZW50aWNhdGlvbkNhbGxiYWNrKFdlYktpdFdlYlZpZXcq
LCBXZWJLaXRBdXRoZW50aWNhdGkKIAogc3RhdGljIHZvaWQgdGVzdFRMU0Vycm9yc0hUVFBBdXRo
KFNTTFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgV2ViS2l0V2ViQ29udGV4dCog
Y29udGV4dCA9IHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dCh0ZXN0LT5tX3dlYlZpZXcpOwot
ICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSBvcmlnaW5hbFBvbGljeSA9IHdlYmtpdF93ZWJfY29u
dGV4dF9nZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCk7Ci0gICAgd2Via2l0X3dlYl9jb250
ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250ZXh0LCBXRUJLSVRfVExTX0VSUk9SU19QT0xJ
Q1lfRkFJTCk7CisgICAgYXV0byogd2Vic2l0ZURhdGFNYW5hZ2VyID0gd2Via2l0X3dlYl9jb250
ZXh0X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlcih0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCkpOwor
ICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSBvcmlnaW5hbFBvbGljeSA9IHdlYmtpdF93ZWJzaXRl
X2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kod2Vic2l0ZURhdGFNYW5hZ2VyKTsK
KyAgICB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X3Rsc19lcnJvcnNfcG9saWN5KHdl
YnNpdGVEYXRhTWFuYWdlciwgV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0ZBSUwpOwogCiAgICAg
YXNzZXJ0SWZTU0xSZXF1ZXN0UHJvY2Vzc2VkID0gdHJ1ZTsKICAgICBnX3NpZ25hbF9jb25uZWN0
KHRlc3QtPm1fd2ViVmlldywgImF1dGhlbnRpY2F0ZSIsIEdfQ0FMTEJBQ0sod2ViVmlld0F1dGhl
bnRpY2F0aW9uQ2FsbGJhY2spLCBOVUxMKTsKQEAgLTE5OCw3ICsyMTIsNyBAQCBzdGF0aWMgdm9p
ZCB0ZXN0VExTRXJyb3JzSFRUUEF1dGgoU1NMVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAg
ICBnX2Fzc2VydF9mYWxzZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5n
VGVzdDo6TG9hZENvbW1pdHRlZCkpOwogICAgIGFzc2VydElmU1NMUmVxdWVzdFByb2Nlc3NlZCA9
IGZhbHNlOwogCi0gICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShj
b250ZXh0LCBvcmlnaW5hbFBvbGljeSk7CisgICAgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X3NldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJzaXRlRGF0YU1hbmFnZXIsIG9yaWdpbmFsUG9saWN5
KTsKIH0KIAogY2xhc3MgVExTRXJyb3JzVGVzdDogcHVibGljIFNTTFRlc3QgewpAQCAtMjQyLDkg
KzI1Niw5IEBAIHByaXZhdGU6CiAKIHN0YXRpYyB2b2lkIHRlc3RMb2FkRmFpbGVkV2l0aFRMU0Vy
cm9ycyhUTFNFcnJvcnNUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIFdlYktpdFdl
YkNvbnRleHQqIGNvbnRleHQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHQodGVzdC0+bV93
ZWJWaWV3KTsKLSAgICBXZWJLaXRUTFNFcnJvcnNQb2xpY3kgb3JpZ2luYWxQb2xpY3kgPSB3ZWJr
aXRfd2ViX2NvbnRleHRfZ2V0X3Rsc19lcnJvcnNfcG9saWN5KGNvbnRleHQpOwotICAgIHdlYmtp
dF93ZWJfY29udGV4dF9zZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCwgV0VCS0lUX1RMU19F
UlJPUlNfUE9MSUNZX0ZBSUwpOworICAgIGF1dG8qIHdlYnNpdGVEYXRhTWFuYWdlciA9IHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfd2Vic2l0ZV9kYXRhX21hbmFnZXIodGVzdC0+bV93ZWJDb250ZXh0
LmdldCgpKTsKKyAgICBXZWJLaXRUTFNFcnJvcnNQb2xpY3kgb3JpZ2luYWxQb2xpY3kgPSB3ZWJr
aXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3Rsc19lcnJvcnNfcG9saWN5KHdlYnNpdGVEYXRh
TWFuYWdlcik7CisgICAgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3Jz
X3BvbGljeSh3ZWJzaXRlRGF0YU1hbmFnZXIsIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9GQUlM
KTsKIAogICAgIGFzc2VydElmU1NMUmVxdWVzdFByb2Nlc3NlZCA9IHRydWU7CiAgICAgLy8gVGhl
IGxvYWQtZmFpbGVkLXdpdGgtdGxzLWVycm9ycyBzaWduYWwgc2hvdWxkIGJlIGVtaXR0ZWQgd2hl
biB0aGVyZSBpcyBhIFRMUyBmYWlsdXJlLgpAQCAtMjU5LDcgKzI3Myw3IEBAIHN0YXRpYyB2b2lk
IHRlc3RMb2FkRmFpbGVkV2l0aFRMU0Vycm9ycyhUTFNFcnJvcnNUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogICAgIGFzc2VydElmU1NMUmVxdWVzdFByb2Nlc3NlZCA9IGZhbHNlOwogCiAgICAg
Ly8gVGVzdCBhbGxvd2luZyBhbiBleGNlcHRpb24gZm9yIHRoaXMgY2VydGlmaWNhdGUgb24gdGhp
cyBob3N0LgotICAgIHdlYmtpdF93ZWJfY29udGV4dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9y
X2hvc3QoY29udGV4dCwgdGVzdC0+Y2VydGlmaWNhdGUoKSwgdGVzdC0+aG9zdCgpKTsKKyAgICB3
ZWJraXRfd2ViX2NvbnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KHRlc3QtPm1f
d2ViQ29udGV4dC5nZXQoKSwgdGVzdC0+Y2VydGlmaWNhdGUoKSwgdGVzdC0+aG9zdCgpKTsKICAg
ICAvLyBUaGUgcGFnZSBzaG91bGQgbm93IGxvYWQgd2l0aG91dCBlcnJvcnMuCiAgICAgdGVzdC0+
bG9hZFVSSShrSHR0cHNTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi90ZXN0LXRscy8iKS5kYXRhKCkp
OwogICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOwpAQCAtMjY5LDcgKzI4Myw3IEBA
IHN0YXRpYyB2b2lkIHRlc3RMb2FkRmFpbGVkV2l0aFRMU0Vycm9ycyhUTFNFcnJvcnNUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X2NtcGludCh0ZXN0LT5tX2xvYWRFdmVu
dHNbMl0sID09LCBMb2FkVHJhY2tpbmdUZXN0OjpMb2FkRmluaXNoZWQpOwogICAgIGdfYXNzZXJ0
X2NtcHN0cih3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlKHRlc3QtPm1fd2ViVmlldyksID09LCBU
TFNFeHBlY3RlZFN1Y2Nlc3NUaXRsZSk7CiAKLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Rs
c19lcnJvcnNfcG9saWN5KGNvbnRleHQsIG9yaWdpbmFsUG9saWN5KTsKKyAgICB3ZWJraXRfd2Vi
c2l0ZV9kYXRhX21hbmFnZXJfc2V0X3Rsc19lcnJvcnNfcG9saWN5KHdlYnNpdGVEYXRhTWFuYWdl
ciwgb3JpZ2luYWxQb2xpY3kpOwogfQogCiBjbGFzcyBUTFNTdWJyZXNvdXJjZVRlc3QgOiBwdWJs
aWMgV2ViVmlld1Rlc3QgewpAQCAtMzI4LDggKzM0Miw4IEBAIHB1YmxpYzoKIAogc3RhdGljIHZv
aWQgdGVzdFN1YnJlc291cmNlTG9hZEZhaWxlZFdpdGhUTFNFcnJvcnMoVExTU3VicmVzb3VyY2VU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHQodGVzdC0+bV93ZWJWaWV3KTsKLSAgICB3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Rsc19lcnJvcnNfcG9saWN5KGNvbnRleHQsIFdFQktJVF9U
TFNfRVJST1JTX1BPTElDWV9GQUlMKTsKKyAgICBhdXRvKiB3ZWJzaXRlRGF0YU1hbmFnZXIgPSB3
ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyKHRlc3QtPm1fd2ViQ29u
dGV4dC5nZXQoKSk7CisgICAgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJy
b3JzX3BvbGljeSh3ZWJzaXRlRGF0YU1hbmFnZXIsIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9G
QUlMKTsKIAogICAgIGFzc2VydElmU1NMUmVxdWVzdFByb2Nlc3NlZCA9IHRydWU7CiAgICAgdGVz
dC0+bG9hZFVSSShrSHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0aCgiLyIpLmRhdGEoKSk7CkBAIC00
MTAsOSArNDI0LDkgQEAgcHVibGljOgogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViU29ja2V0VExTRXJy
b3JzKFdlYlNvY2tldFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgV2ViS2l0V2Vi
Q29udGV4dCogY29udGV4dCA9IHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dCh0ZXN0LT5tX3dl
YlZpZXcpOwotICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSBvcmlnaW5hbFBvbGljeSA9IHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCk7Ci0gICAgd2Via2l0
X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250ZXh0LCBXRUJLSVRfVExTX0VS
Uk9SU19QT0xJQ1lfRkFJTCk7CisgICAgYXV0byogd2Vic2l0ZURhdGFNYW5hZ2VyID0gd2Via2l0
X3dlYl9jb250ZXh0X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlcih0ZXN0LT5tX3dlYkNvbnRleHQu
Z2V0KCkpOworICAgIFdlYktpdFRMU0Vycm9yc1BvbGljeSBvcmlnaW5hbFBvbGljeSA9IHdlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfdGxzX2Vycm9yc19wb2xpY3kod2Vic2l0ZURhdGFN
YW5hZ2VyKTsKKyAgICB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X3Rsc19lcnJvcnNf
cG9saWN5KHdlYnNpdGVEYXRhTWFuYWdlciwgV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0ZBSUwp
OwogCiAgICAgLy8gRmlyc3QsIGNoZWNrIHRoYXQgaW5zZWN1cmUgd3M6Ly8gd2ViIHNvY2tldHMg
d29yayBmaW5lLgogICAgIHVuc2lnbmVkIGV2ZW50cyA9IHRlc3QtPmNvbm5lY3RUb1NlcnZlckFu
ZFdhaXRGb3JFdmVudHMoa0h0dHBTZXJ2ZXIpOwpAQCAtNDMwLDEzICs0NDQsMTMgQEAgc3RhdGlj
IHZvaWQgdGVzdFdlYlNvY2tldFRMU0Vycm9ycyhXZWJTb2NrZXRUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogICAgIGdfYXNzZXJ0X3RydWUoZXZlbnRzICYgV2ViU29ja2V0VGVzdDo6RXZlbnRG
bGFnczo6RGlkQ2xvc2UpOwogCiAgICAgLy8gTm93IHRyeSB3c3M6Ly8gYWdhaW4sIHRoaXMgdGlt
ZSBpZ25vcmluZyBUTFMgZXJyb3JzLgotICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfdGxzX2Vy
cm9yc19wb2xpY3koY29udGV4dCwgV0VCS0lUX1RMU19FUlJPUlNfUE9MSUNZX0lHTk9SRSk7Cisg
ICAgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF90bHNfZXJyb3JzX3BvbGljeSh3ZWJz
aXRlRGF0YU1hbmFnZXIsIFdFQktJVF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkUpOwogICAgIGV2
ZW50cyA9IHRlc3QtPmNvbm5lY3RUb1NlcnZlckFuZFdhaXRGb3JFdmVudHMoa0h0dHBzU2VydmVy
KTsKICAgICBnX2Fzc2VydF90cnVlKGV2ZW50cyAmIFdlYlNvY2tldFRlc3Q6OkV2ZW50RmxhZ3M6
OkRpZFNlcnZlckNvbXBsZXRlSGFuZHNoYWtlKTsKICAgICBnX2Fzc2VydF90cnVlKGV2ZW50cyAm
IFdlYlNvY2tldFRlc3Q6OkV2ZW50RmxhZ3M6OkRpZE9wZW4pOwogICAgIGdfYXNzZXJ0X2ZhbHNl
KGV2ZW50cyAmIFdlYlNvY2tldFRlc3Q6OkV2ZW50RmxhZ3M6OkRpZENsb3NlKTsKIAotICAgIHdl
YmtpdF93ZWJfY29udGV4dF9zZXRfdGxzX2Vycm9yc19wb2xpY3koY29udGV4dCwgb3JpZ2luYWxQ
b2xpY3kpOworICAgIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9zZXRfdGxzX2Vycm9yc19w
b2xpY3kod2Vic2l0ZURhdGFNYW5hZ2VyLCBvcmlnaW5hbFBvbGljeSk7CiB9CiAKIHN0YXRpYyB2
b2lkIGh0dHBzU2VydmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSog
bWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNvdXBDbGllbnRDb250ZXh0
KiwgZ3BvaW50ZXIpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>